mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 15:20:10 +01:00
anv: do not subtract the base layer to compute depth in 3DSTATE_DEPTH_BUFFER
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.*
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
64bf78270d
commit
7ad692d8e2
1 changed files with 1 additions and 2 deletions
|
|
@ -2268,8 +2268,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 =
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue