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

Jason Ekstrand jason at jlekstrand.net
Fri Feb 24 15:25:41 UTC 2017

On Feb 23, 2017 11:40 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.

This fixes a number of new CTS tests that would crash otherwise:
 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_
index 40a72f4..3c7b544 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

          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;

Don't we still want the -1?

 #if GEN_GEN >= 8
          db.SurfaceQPitch =
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170224/85a6d82b/attachment.html>

More information about the mesa-dev mailing list