ac/nir: Only clamp shadow reference on radeonsi.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Mon, 23 Oct 2017 01:27:28 +0000 (03:27 +0200)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Mon, 23 Oct 2017 07:13:38 +0000 (09:13 +0200)
commita548b727a147b4ead1accef10499c4cf81af3057
treedbbbfdbfcad21ba2dd07543eb0baab6bee959af5
parentc07d719e8b683e1bf78f187dd17fe4716f4e5e9c
ac/nir: Only clamp shadow reference on radeonsi.

Vulkan CTS does not expect the value to be clamped (at least for D32),
and it makes a differences even though depth is in [0,1], due
to strict inequalities.

I couldn't find anything in the Vulkan spec about this, but the test
seemed to be copied from GL tests and the GL spec only specifies
clamping for fixed point formats. Hence I expect radeonsi to run into
this at some point as well, but given that they still have a usecase
with the Z16->Z32 promotion, I'll leave that for someone else to clean
up.

This at least fixes radv dEQP-VK.texture.shadow.* on VI.

Fixes: 0f9e32519bb 'ac/nir: clamp shadow texture comparison value on VI'
Reviewed-by: Dave Airlie <airlied@redhat.com>
src/amd/common/ac_nir_to_llvm.c
src/amd/common/ac_nir_to_llvm.h
src/amd/common/ac_shader_abi.h
src/gallium/drivers/radeonsi/si_shader_nir.c