OSDN Git Service

compiler/spirv: set is_shadow for depth comparitor sampling opcodes
authorIago Toral Quiroga <itoral@igalia.com>
Mon, 2 Apr 2018 09:39:41 +0000 (11:39 +0200)
committerIago Toral Quiroga <itoral@igalia.com>
Wed, 4 Apr 2018 05:57:58 +0000 (07:57 +0200)
commit41ac0b1443ca7c8c3481eab978a41b7caba5503a
treee2d5544e146cb19a089e02d376bf4ca3d1510bde
parent98b860e3115ff937152dbf4c843e1ecb9244734c
compiler/spirv: set is_shadow for depth comparitor sampling opcodes

From the SPIR-V spec, OpTypeImage:

"Depth is whether or not this image is a depth image. (Note that
 whether or not depth comparisons are actually done is a property of
 the sampling opcode, not of this type declaration.)"

The sampling opcodes that specify depth comparisons are
OpImageSample{Proj}Dref{Explicit,Implicit}Lod, so we should set
is_shadow only for these (we were using the deph property of the
image until now).

v2:
 - Do the same for OpImageDrefGather.
 - Set is_shadow to false if the sampling opcode is not one of these (Jason)
 - Reuse an existing switch statement instead of adding a new one (Jason)

Fixes crashes in:
dEQP-VK.spirv_assembly.instruction.graphics.image_sampler.depth_property.*

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Cc: mesa-stable@lists.freedesktop.org
src/compiler/spirv/spirv_to_nir.c