Mesa (main): i915g: Delete redundant i915_hw_sampler_views atom.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jun 30 17:49:20 UTC 2021


Module: Mesa
Branch: main
Commit: afe627ea70af7e2d74f2e65f1bf629e70be028f4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=afe627ea70af7e2d74f2e65f1bf629e70be028f4

Author: Emma Anholt <emma at anholt.net>
Date:   Tue Jun 29 20:46:13 2021 -0700

i915g: Delete redundant i915_hw_sampler_views atom.

The i915_hw_samplers atom already updated both samplers and maps, since
both samplers and maps depend on parts of both the gallium sampler state
and the sampler view.  Just move the samplers+views atom down to the
bottom of the file for legibility, and delete the views-only one.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11648>

---

 src/gallium/drivers/i915/i915_state_derived.c |  8 ++--
 src/gallium/drivers/i915/i915_state_sampler.c | 62 +++++++--------------------
 2 files changed, 18 insertions(+), 52 deletions(-)

diff --git a/src/gallium/drivers/i915/i915_state_derived.c b/src/gallium/drivers/i915/i915_state_derived.c
index 76ef6ab0e9c..2402c55e226 100644
--- a/src/gallium/drivers/i915/i915_state_derived.c
+++ b/src/gallium/drivers/i915/i915_state_derived.c
@@ -186,11 +186,9 @@ struct i915_tracked_state i915_update_vertex_layout = {
 /***********************************************************************
  */
 static struct i915_tracked_state *atoms[] = {
-   &i915_update_vertex_layout, &i915_hw_samplers,
-   &i915_hw_sampler_views,     &i915_hw_immediate,
-   &i915_hw_dynamic,           &i915_hw_fs,
-   &i915_hw_framebuffer,       &i915_hw_dst_buf_vars,
-   &i915_hw_constants,         NULL,
+   &i915_update_vertex_layout, &i915_hw_samplers,  &i915_hw_immediate,
+   &i915_hw_dynamic,           &i915_hw_fs,        &i915_hw_framebuffer,
+   &i915_hw_dst_buf_vars,      &i915_hw_constants, NULL,
 };
 
 void
diff --git a/src/gallium/drivers/i915/i915_state_sampler.c b/src/gallium/drivers/i915/i915_state_sampler.c
index 97d1d02c234..fdbc2e240d6 100644
--- a/src/gallium/drivers/i915/i915_state_sampler.c
+++ b/src/gallium/drivers/i915/i915_state_sampler.c
@@ -57,11 +57,6 @@
  * changes.
  */
 
-static void update_map(struct i915_context *i915, uint32_t unit,
-                       const struct i915_texture *tex,
-                       const struct i915_sampler_state *sampler,
-                       const struct pipe_sampler_view *view, uint32_t state[3]);
-
 /***********************************************************************
  * Samplers
  */
@@ -138,43 +133,6 @@ update_sampler(struct i915_context *i915, uint32_t unit,
    state[1] |= (unit << SS3_TEXTUREMAP_INDEX_SHIFT);
 }
 
-static void
-update_samplers(struct i915_context *i915)
-{
-   uint32_t unit;
-
-   i915->current.sampler_enable_nr = 0;
-   i915->current.sampler_enable_flags = 0x0;
-
-   for (unit = 0;
-        unit < i915->num_fragment_sampler_views && unit < i915->num_samplers;
-        unit++) {
-      /* determine unit enable/disable by looking for a bound texture */
-      /* could also examine the fragment program? */
-      if (i915->fragment_sampler_views[unit]) {
-         struct i915_texture *texture =
-            i915_texture(i915->fragment_sampler_views[unit]->texture);
-
-         update_sampler(i915, unit,
-                        i915->fragment_sampler[unit],   /* sampler state */
-                        texture,                        /* texture */
-                        i915->current.sampler[unit]);   /* the result */
-         update_map(i915, unit, texture,                /* texture */
-                    i915->fragment_sampler[unit],       /* sampler state */
-                    i915->fragment_sampler_views[unit], /* sampler view */
-                    i915->current.texbuffer[unit]);     /* the result */
-
-         i915->current.sampler_enable_nr++;
-         i915->current.sampler_enable_flags |= (1 << unit);
-      }
-   }
-
-   i915->hardware_dirty |= I915_HW_SAMPLER | I915_HW_MAP;
-}
-
-struct i915_tracked_state i915_hw_samplers = {
-   "samplers", update_samplers, I915_NEW_SAMPLER | I915_NEW_SAMPLER_VIEW};
-
 /***********************************************************************
  * Sampler views
  */
@@ -347,10 +305,13 @@ update_map(struct i915_context *i915, uint32_t unit,
 }
 
 static void
-update_maps(struct i915_context *i915)
+update_samplers(struct i915_context *i915)
 {
    uint32_t unit;
 
+   i915->current.sampler_enable_nr = 0;
+   i915->current.sampler_enable_flags = 0x0;
+
    for (unit = 0;
         unit < i915->num_fragment_sampler_views && unit < i915->num_samplers;
         unit++) {
@@ -360,15 +321,22 @@ update_maps(struct i915_context *i915)
          struct i915_texture *texture =
             i915_texture(i915->fragment_sampler_views[unit]->texture);
 
+         update_sampler(i915, unit,
+                        i915->fragment_sampler[unit],   /* sampler state */
+                        texture,                        /* texture */
+                        i915->current.sampler[unit]);   /* the result */
          update_map(i915, unit, texture,                /* texture */
                     i915->fragment_sampler[unit],       /* sampler state */
                     i915->fragment_sampler_views[unit], /* sampler view */
-                    i915->current.texbuffer[unit]);
+                    i915->current.texbuffer[unit]);     /* the result */
+
+         i915->current.sampler_enable_nr++;
+         i915->current.sampler_enable_flags |= (1 << unit);
       }
    }
 
-   i915->hardware_dirty |= I915_HW_MAP;
+   i915->hardware_dirty |= I915_HW_SAMPLER | I915_HW_MAP;
 }
 
-struct i915_tracked_state i915_hw_sampler_views = {"sampler_views", update_maps,
-                                                   I915_NEW_SAMPLER_VIEW};
+struct i915_tracked_state i915_hw_samplers = {
+   "samplers", update_samplers, I915_NEW_SAMPLER | I915_NEW_SAMPLER_VIEW};



More information about the mesa-commit mailing list