From 163801507c0bbe0d03371b10cdbe7e698938c0cb Mon Sep 17 00:00:00 2001 From: Conor McCarthy Date: Tue, 4 Feb 2025 13:22:48 +1000 Subject: [PATCH] tests/hlsl: Add typed buffer UAV 16-bit tests. --- tests/hlsl/uav-rwbuffer.shader_test | 128 ++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) diff --git a/tests/hlsl/uav-rwbuffer.shader_test b/tests/hlsl/uav-rwbuffer.shader_test index 7e7b918a..2c45a0c8 100644 --- a/tests/hlsl/uav-rwbuffer.shader_test +++ b/tests/hlsl/uav-rwbuffer.shader_test @@ -205,3 +205,131 @@ float4 main() : sv_target1 [test] todo(msl) draw quad probe uav 2 (0) rgba (11.1, 12.2, 13.3, 14.4) + +[require] +shader model >= 6.2 +native-16-bit + +[uav 1] +format r32g32b32a32-float +size (buffer, 1) +0 0 0 0 + +[compute shader] +uniform half4 h; +RWBuffer u : register(u1); + + [numthreads(1, 1, 1)] +void main() +{ + u[0] = h; +} + +[test] +uniform 0 uint4 0x4a204990 0x4b404ab0 0 0 +dispatch 1 1 1 +probe uav 1 (0) rgba(11.125, 12.25, 13.375, 14.5) + +[compute shader] +uniform half4 h; +RWBuffer u : register(u1); + + [numthreads(1, 1, 1)] +void main() +{ + u[0] = h; +} + +[test] +uniform 0 uint4 0x4a204990 0x4b404ab0 0 0 +dispatch 1 1 1 +probe uav 1 (0) rgba(11.125, 12.25, 13.375, 14.5) + +[compute shader] +uniform half h; +RWBuffer u : register(u1); + + [numthreads(1, 1, 1)] +void main() +{ + u[0] = h; +} + +[test] +uniform 0 uint 0x4990 +dispatch 1 1 1 +probe uav 1 (0) r(11.125) + +[uav 1] +format r32g32b32a32-uint +size (buffer, 1) +0 0 0 0 + +[compute shader] +uniform uint16_t4 h; +RWBuffer u : register(u1); + + [numthreads(1, 1, 1)] +void main() +{ + u[0] = h; +} + +[test] +uniform 0 uint4 0xfff4000b 0xefff3 0 0 +dispatch 1 1 1 +probe uav 1 (0) rgbaui(0xb, 0xfff4, 0xfff3, 0xe) + +[uav 1] +format r32g32b32a32-sint +size (buffer, 1) +0 0 0 0 + +[compute shader] +uniform int16_t4 h; +RWBuffer u : register(u1); + + [numthreads(1, 1, 1)] +void main() +{ + u[0] = h; +} + +[test] +uniform 0 uint4 0xfff4000b 0xefff3 0 0 +dispatch 1 1 1 +probe uav 1 (0) rgbai(11, -12, -13, 14) + +[uav 1] +format r32g32b32a32-sint +size (buffer, 1) +-65536 -1 1 65536 + +[pixel shader] +RWBuffer u : register(u1); + +int4 main() : sv_target +{ + return u[0]; +} + +[test] +draw quad +probe (0, 0) rgbai(-32768, -1, 1, 32767) + +[uav 1] +format r32g32b32a32-uint +size (buffer, 1) +0 1 0x10000 0xfffffffe + +[pixel shader] +RWBuffer u : register(u1); + +uint4 main() : sv_target +{ + return u[0]; +} + +[test] +draw quad +probe (0, 0) rgbaui(0, 1, 0xffff, 0xffff)