On Wed 13 Jul 2016, Jason Ekstrand wrote: > Reviewed-by: Topi Pohjolainen <topi.pohjolai...@intel.com> > --- > src/mesa/drivers/dri/i965/brw_state.h | 9 ++ > src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 184 > +++++++++++++++++++++++ > 2 files changed, 193 insertions(+)
> +void > +brw_update_texture_surface(struct gl_context *ctx, > + unsigned unit, > + uint32_t *surf_offset, > + bool for_gather, > + uint32_t plane) > +{ > + struct brw_context *brw = brw_context(ctx); > + struct gl_texture_object *obj = ctx->Texture.Unit[unit]._Current; > + > + if (obj->Target == GL_TEXTURE_BUFFER) { > + brw_update_buffer_texture_surface(ctx, unit, surf_offset); > + > + } else { > + struct intel_texture_object *intel_obj = intel_texture_object(obj); > + struct intel_mipmap_tree *mt = intel_obj->mt; > + struct gl_sampler_object *sampler = _mesa_get_samplerobj(ctx, unit); > + /* If this is a view with restricted NumLayers, then our effective > depth > + * is not just the miptree depth. > + */ > + const unsigned mt_num_layers = > + mt->logical_depth0 * (_mesa_is_cube_map_texture(mt->target) ? 6 : > 1); > + const unsigned depth = (obj->Immutable && obj->Target != GL_TEXTURE_3D > ? > + obj->NumLayers : mt_num_layers); Since 'depth' here is no longer depth, I would prefer that it be named better. Below, the code does 'view.array_len = depth', so the name 'view_array_len' or 'view_num_layers' seems appropriate. Just a suggestion. ... > + struct isl_view view = { > + .format = format, > + .base_level = obj->MinLevel + obj->BaseLevel, > + .levels = intel_obj->_MaxLevel - obj->BaseLevel + 1, > + .base_array_layer = obj->MinLayer, > + .array_len = depth, > + .channel_select = { > + swizzle_to_scs(GET_SWZ(swizzle, 0), need_green_to_blue), > + swizzle_to_scs(GET_SWZ(swizzle, 1), need_green_to_blue), > + swizzle_to_scs(GET_SWZ(swizzle, 2), need_green_to_blue), > + swizzle_to_scs(GET_SWZ(swizzle, 3), need_green_to_blue), > + }, > + .usage = ISL_SURF_USAGE_TEXTURE_BIT, > + }; > + > + if (obj->Target == GL_TEXTURE_CUBE_MAP || > + obj->Target == GL_TEXTURE_CUBE_MAP_ARRAY) > + view.usage |= ISL_SURF_USAGE_CUBE_BIT; > + > + brw_emit_surface_state(brw, mt, &view, > + surface_state_infos[brw->gen].tex_mocs, > for_gather, > + surf_offset, surf_index, > + I915_GEM_DOMAIN_SAMPLER, 0); > + } Looks good. Reviewed-by: Chad Versace <chad.vers...@intel.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev