On Wed, Apr 22, 2015 at 1:47 PM, Topi Pohjolainen <topi.pohjolai...@intel.com> wrote: > All hardware platforms have this in common, so do it in the > hardware independent dispatcher. > > Signed-off-by: Topi Pohjolainen <topi.pohjolai...@intel.com> > --- > src/mesa/drivers/dri/i965/brw_context.h | 4 ++- > src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 30 > ++++++++++++++++------- > src/mesa/drivers/dri/i965/gen7_wm_surface_state.c | 11 +++------ > src/mesa/drivers/dri/i965/gen8_surface_state.c | 16 +++--------- > 4 files changed, 30 insertions(+), 31 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_context.h > b/src/mesa/drivers/dri/i965/brw_context.h > index 76d4630..096bc4d 100644 > --- a/src/mesa/drivers/dri/i965/brw_context.h > +++ b/src/mesa/drivers/dri/i965/brw_context.h > @@ -963,7 +963,9 @@ struct brw_context > struct > { > void (*update_texture_surface)(struct gl_context *ctx, > - unsigned unit, > + const struct intel_mipmap_tree *mt, > + struct gl_texture_object *tObj, > + uint32_t tex_format, > uint32_t *surf_offset, > bool for_gather); > uint32_t (*update_renderbuffer_surface)(struct brw_context *brw, > diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c > b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c > index 0f739bb..d8faf82 100644 > --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c > +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c > @@ -309,23 +309,19 @@ update_buffer_texture_surface(struct gl_context *ctx, > > static void > brw_update_texture_surface(struct gl_context *ctx, > - unsigned unit, > + const struct intel_mipmap_tree *mt, > + struct gl_texture_object *tObj, > + uint32_t tex_format, > uint32_t *surf_offset, > bool for_gather) > { > struct brw_context *brw = brw_context(ctx); > - struct gl_texture_object *tObj = ctx->Texture.Unit[unit]._Current; > struct intel_texture_object *intelObj = intel_texture_object(tObj); > - struct intel_mipmap_tree *mt = intelObj->mt; > - struct gl_sampler_object *sampler = _mesa_get_samplerobj(ctx, unit); > uint32_t *surf; > > surf = brw_state_batch(brw, AUB_TRACE_SURFACE_STATE, > 6 * 4, 32, surf_offset); > > - uint32_t tex_format = translate_tex_format(brw, mt->format, > - sampler->sRGBDecode); > - > if (for_gather) { > /* Sandybridge's gather4 message is broken for integer formats. > * To work around this, we pretend the surface is UNORM for > @@ -796,14 +792,30 @@ update_texture_surface(struct gl_context *ctx, > bool for_gather) > { > struct brw_context *brw = brw_context(ctx); > - const struct gl_texture_object *tObj = ctx->Texture.Unit[unit]._Current; > + struct gl_texture_object *tObj = ctx->Texture.Unit[unit]._Current; > + struct intel_texture_object *intelObj = intel_texture_object(tObj); > + const struct intel_mipmap_tree *mt = intelObj->mt; > + const struct gl_texture_image *firstImage = > tObj->Image[0][tObj->BaseLevel]; > + const struct gl_sampler_object *sampler = _mesa_get_samplerobj(ctx, unit); > > if (tObj->Target == GL_TEXTURE_BUFFER) { > update_buffer_texture_surface(ctx, unit, surf_offset); > return; > } > > - brw->vtbl.update_texture_surface(ctx, unit, surf_offset, for_gather); > + mesa_format format = intelObj->_Format; > + if (tObj->StencilSampling && firstImage->_BaseFormat == GL_DEPTH_STENCIL) > { > + assert(brw->gen >= 8); > + mt = mt->stencil_mt; > + assert(mt->format == MESA_FORMAT_S_UINT8); > + format = mt->format; > + } > +
Extra whitespace on this line. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev