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: 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..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 *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; #if GEN_GEN >= 8 db.SurfaceQPitch = -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev