On 24 August 2012 03:06, Kenneth Graunke <span dir="ltr"><<a href="mailto:kenneth@whitecape.org" target="_blank">kenneth@whitecape.org</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
This represents the index into the sampler state table or sampler<br>
default color table (the two are identical).<br>
<br>
Right now, this is still the texture unit, but that will change shortly.<br>
<br>
Signed-off-by: Kenneth Graunke <<a href="mailto:kenneth@whitecape.org">kenneth@whitecape.org</a>><br>
---<br>
 src/mesa/drivers/dri/i965/brw_state.h            |  2 +-<br>
 src/mesa/drivers/dri/i965/brw_wm_sampler_state.c | 19 ++++++++++---------<br>
 src/mesa/drivers/dri/i965/gen7_sampler_state.c   |  6 +++---<br>
 3 files changed, 14 insertions(+), 13 deletions(-)<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/brw_state.h b/src/mesa/drivers/dri/i965/brw_state.h<br>
index 2540cd5..4e78fae 100644<br>
--- a/src/mesa/drivers/dri/i965/brw_state.h<br>
+++ b/src/mesa/drivers/dri/i965/brw_state.h<br>
@@ -225,7 +225,7 @@ void gen7_create_constant_surface(struct brw_context *brw,<br>
 uint32_t translate_wrap_mode(GLenum wrap, bool using_nearest);<br>
 void upload_default_color(struct brw_context *brw,<br>
                          struct gl_sampler_object *sampler,<br>
-                         int unit);<br>
+                         int unit, int ss_index);<br>
<br>
 /* gen6_sf_state.c */<br>
 uint32_t<br>
diff --git a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c<br>
index 27f0d70..10deb1d 100644<br>
--- a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c<br>
+++ b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c<br>
@@ -80,7 +80,7 @@ translate_wrap_mode(GLenum wrap, bool using_nearest)<br>
  */<br>
 void<br>
 upload_default_color(struct brw_context *brw, struct gl_sampler_object *sampler,<br>
-                    int unit)<br>
+                    int unit, int ss_index)<br>
 {<br>
    struct intel_context *intel = &brw->intel;<br>
    struct gl_context *ctx = &intel->ctx;<br>
@@ -109,7 +109,7 @@ upload_default_color(struct brw_context *brw, struct gl_sampler_object *sampler,<br>
       struct gen5_sampler_default_color *sdc;<br>
<br>
       sdc = brw_state_batch(brw, AUB_TRACE_SAMPLER_DEFAULT_COLOR,<br>
-                           sizeof(*sdc), 32, &brw->wm.sdc_offset[unit]);<br>
+                           sizeof(*sdc), 32, &brw->wm.sdc_offset[ss_index]);<br>
<br>
       memset(sdc, 0, sizeof(*sdc));<br>
<br>
@@ -146,7 +146,7 @@ upload_default_color(struct brw_context *brw, struct gl_sampler_object *sampler,<br>
       struct brw_sampler_default_color *sdc;<br>
<br>
       sdc = brw_state_batch(brw, AUB_TRACE_SAMPLER_DEFAULT_COLOR,<br>
-                           sizeof(*sdc), 32, &brw->wm.sdc_offset[unit]);<br>
+                           sizeof(*sdc), 32, &brw->wm.sdc_offset[ss_index]);<br>
<br>
       COPY_4V(sdc->color, color);<br>
    }<br>
@@ -158,6 +158,7 @@ upload_default_color(struct brw_context *brw, struct gl_sampler_object *sampler,<br>
  */<br>
 static void brw_update_sampler_state(struct brw_context *brw,<br>
                                     int unit,<br>
+                                     int ss_index,<br>
                                     struct brw_sampler_state *sampler)<br>
 {<br>
    struct intel_context *intel = &brw->intel;<br>
@@ -300,20 +301,20 @@ static void brw_update_sampler_state(struct brw_context *brw,<br>
       sampler->ss3.non_normalized_coord = 1;<br>
    }<br>
<br>
-   upload_default_color(brw, gl_sampler, unit);<br>
+   upload_default_color(brw, gl_sampler, unit, ss_index);<br>
<br>
    if (intel->gen >= 6) {<br>
-      sampler->ss2.default_color_pointer = brw->wm.sdc_offset[unit] >> 5;<br>
+      sampler->ss2.default_color_pointer = brw->wm.sdc_offset[ss_index] >> 5;<br>
    } else {<br>
       /* reloc */<br>
       sampler->ss2.default_color_pointer = (intel->batch.bo->offset +<br>
-                                           brw->wm.sdc_offset[unit]) >> 5;<br>
+                                           brw->wm.sdc_offset[ss_index]) >> 5;<br>
<br>
       drm_intel_bo_emit_reloc(intel-><a href="http://batch.bo" target="_blank">batch.bo</a>,<br>
                              brw->sampler.offset +<br>
-                             unit * sizeof(struct brw_sampler_state) +<br>
+                             ss_index * sizeof(struct brw_sampler_state) +<br>
                              offsetof(struct brw_sampler_state, ss2),<br>
-                             intel-><a href="http://batch.bo" target="_blank">batch.bo</a>, brw->wm.sdc_offset[unit],<br>
+                             intel-><a href="http://batch.bo" target="_blank">batch.bo</a>, brw->wm.sdc_offset[ss_index],<br>
                              I915_GEM_DOMAIN_SAMPLER, 0);<br>
    }<br>
<br>
@@ -351,7 +352,7 @@ brw_upload_samplers(struct brw_context *brw)<br>
<br>
    for (i = 0; i < brw->sampler.count; i++) {<br>
       if (ctx->Texture.Unit[i]._ReallyEnabled)<br>
-        brw_update_sampler_state(brw, i, &samplers[i]);<br>
+        brw_update_sampler_state(brw, i, i, &samplers[i]);<br>
    }<br>
<br>
    brw->state.dirty.cache |= CACHE_NEW_SAMPLER;<br>
diff --git a/src/mesa/drivers/dri/i965/gen7_sampler_state.c b/src/mesa/drivers/dri/i965/gen7_sampler_state.c<br>
index 3c8daf9..8969119 100644<br>
--- a/src/mesa/drivers/dri/i965/gen7_sampler_state.c<br>
+++ b/src/mesa/drivers/dri/i965/gen7_sampler_state.c<br>
@@ -33,7 +33,7 @@<br>
  * Sets the sampler state for a single unit.<br>
  */<br>
 static void<br>
-gen7_update_sampler_state(struct brw_context *brw, int unit,<br>
+gen7_update_sampler_state(struct brw_context *brw, int unit, int ss_index,<br>
                          struct gen7_sampler_state *sampler)<br>
 {<br>
    struct intel_context *intel = &brw->intel;<br>
@@ -168,7 +168,7 @@ gen7_update_sampler_state(struct brw_context *brw, int unit,<br>
       sampler->ss3.non_normalized_coord = 1;<br>
    }<br>
<br>
-   upload_default_color(brw, gl_sampler, unit);<br>
+   upload_default_color(brw, gl_sampler, unit, ss_index);<br>
<br>
    sampler->ss2.default_color_pointer = brw->wm.sdc_offset[unit] >> 5;<br></blockquote><div><br>I think this line needs to change to "...brw->wm.sdc_offset[ss_index] >> 5".<br><br>With that fixed, this patch is:<br>
<br>Reviewed-by: Paul Berry <<a href="mailto:stereotype441@gmail.com">stereotype441@gmail.com</a>><br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
@@ -206,7 +206,7 @@ gen7_upload_samplers(struct brw_context *brw)<br>
<br>
    for (i = 0; i < brw->sampler.count; i++) {<br>
       if (ctx->Texture.Unit[i]._ReallyEnabled)<br>
-        gen7_update_sampler_state(brw, i, &samplers[i]);<br>
+        gen7_update_sampler_state(brw, i, i, &samplers[i]);<br>
    }<br>
<br>
    brw->state.dirty.cache |= CACHE_NEW_SAMPLER;<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.7.11.4<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br>