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