[Mesa-dev] [PATCH 2/2 v2] anv: do not subtract the base layer to compute depth in 3DSTATE_DEPTH_BUFFER

Jason Ekstrand jason at jlekstrand.net
Thu Mar 2 07:49:35 UTC 2017


Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>

On Mar 1, 2017 11:16 PM, "Iago Toral Quiroga" <itoral at igalia.com> wrote:

> According to the PRM description of the Depth field:
>
>   "This field specifies the total number of levels for a volume texture
>    or the number of array elements allowed to be accessed starting at the
>    Minimum Array Element for arrayed surfaces"
>
> However, ISL defines array_len as the length of the range
> [base_array_layer, base_array_layer + array_len], so it already represents
> a value relative to the base array layer like the hardware expects.
>
> v2: Depth is defined as a U11-1 field, so subtract 1 from
>     the actual value (Jason)
>
> This fixes a number of new CTS tests that would crash otherwise:
> dEQP-VK.pipeline.render_to_image.*
> ---
>  src/intel/vulkan/genX_cmd_buffer.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/src/intel/vulkan/genX_cmd_buffer.c
> b/src/intel/vulkan/genX_cmd_buffer.c
> index 40a72f4..cf495dc 100644
> --- a/src/intel/vulkan/genX_cmd_buffer.c
> +++ b/src/intel/vulkan/genX_cmd_buffer.c
> @@ -2269,8 +2269,7 @@ cmd_buffer_emit_depth_stencil(struct anv_cmd_buffer
> *cmd_buffer)
>
>           assert(image->depth_surface.isl.dim != ISL_SURF_DIM_3D);
>           db.Depth =
> -         db.RenderTargetViewExtent =
> -            iview->isl.array_len - iview->isl.base_array_layer - 1;
> +         db.RenderTargetViewExtent = iview->isl.array_len - 1;
>
>  #if GEN_GEN >= 8
>           db.SurfaceQPitch =
> --
> 2.7.4
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170301/29ac825b/attachment.html>


More information about the mesa-dev mailing list