anv: do not subtract the base layer to compute depth in 3DSTATE_DEPTH_BUFFER
authorIago Toral Quiroga <itoral@igalia.com>
Wed, 22 Feb 2017 10:33:13 +0000 (11:33 +0100)
committerIago Toral Quiroga <itoral@igalia.com>
Thu, 2 Mar 2017 08:04:03 +0000 (09:04 +0100)
commit7ad692d8e2bf619f5855552e3d56aafa9f5f21af
tree84da15250bf469f990861b7b07297a479e9ad824
parent64bf78270df485fb1ccdf45bd5240fd06f21acac
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>
src/intel/vulkan/genX_cmd_buffer.c