diff options
Diffstat (limited to 'tests/bugs/vk-structured-buffer-load.hlsl')
| -rw-r--r-- | tests/bugs/vk-structured-buffer-load.hlsl | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/tests/bugs/vk-structured-buffer-load.hlsl b/tests/bugs/vk-structured-buffer-load.hlsl index daedc5b66..a5f518f93 100644 --- a/tests/bugs/vk-structured-buffer-load.hlsl +++ b/tests/bugs/vk-structured-buffer-load.hlsl @@ -1,5 +1,7 @@ //TEST:CROSS_COMPILE: -profile lib_6_3 -entry HitMain -stage closesthit -target spirv-assembly +#define USE_RCP 0 + struct ParameterBlockTest { SamplerState sam; @@ -19,7 +21,13 @@ void HitMain(inout RayHitInfoPacked RayData, BuiltInTriangleIntersectionAttribut float HitT = RayTCurrent(); RayData.PackedHitInfoA.x = HitT; uint offs = 0; + uint use_rcp = USE_RCP; float offsfloat = gParamBlock.sbuf.Load(offs); - - RayData.PackedHitInfoA.y = rsqrt(offsfloat); + + use_rcp |= HitT > 0.0; + + if (use_rcp) + RayData.PackedHitInfoA.y = rcp(offsfloat); + else + RayData.PackedHitInfoA.y = rsqrt(offsfloat); } |
