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

Reply via email to