mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
tests/shader_runner: Introduce the "u32" probe format.
This commit is contained in:
Notes:
Henri Verbeet
2025-06-10 18:06:45 +02:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1555
@@ -232,24 +232,24 @@ uniform 4 double2 2.0 4.0
|
||||
uniform 8 double2 5.0 7.0
|
||||
uniform 12 double2 6.0 8.0
|
||||
todo(sm<6) draw quad
|
||||
if(sm<6) probe (0, 0) rgbaui(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff)
|
||||
if(sm>=6) probe (0, 0) rgbaui(1, 1, 1, 1)
|
||||
if(sm<6) probe (0, 0) u32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff)
|
||||
if(sm>=6) probe (0, 0) u32(1, 1, 1, 1)
|
||||
|
||||
uniform 0 double2 1.0 4.0
|
||||
uniform 4 double2 2.0 3.0
|
||||
uniform 8 double2 5.0 8.0
|
||||
uniform 12 double2 6.0 7.0
|
||||
todo(sm<6) draw quad
|
||||
if(sm<6) probe (0, 0) rgbaui(0xffffffff, 0xffffffff, 0, 0)
|
||||
if(sm>=6) probe (0, 0) rgbaui(1, 1, 0, 0)
|
||||
if(sm<6) probe (0, 0) u32(0xffffffff, 0xffffffff, 0, 0)
|
||||
if(sm>=6) probe (0, 0) u32(1, 1, 0, 0)
|
||||
|
||||
uniform 0 double2 1.0 4.0
|
||||
uniform 4 double2 2.0 3.0
|
||||
uniform 8 double2 6.0 7.0
|
||||
uniform 12 double2 5.0 8.0
|
||||
todo(sm<6) draw quad
|
||||
if(sm<6) probe (0, 0) rgbaui(0xffffffff, 0, 0xffffffff, 0)
|
||||
if(sm>=6) probe (0, 0) rgbaui(1, 0, 1, 0)
|
||||
if(sm<6) probe (0, 0) u32(0xffffffff, 0, 0xffffffff, 0)
|
||||
if(sm>=6) probe (0, 0) u32(1, 0, 1, 0)
|
||||
|
||||
[rtv 0]
|
||||
format r32g32b32a32-float
|
||||
|
@@ -292,13 +292,13 @@ uniform 5 uint 2
|
||||
uniform 8 uint 2
|
||||
draw quad
|
||||
% In D3D12 with SM5 all reads to the array return 0
|
||||
if(sm>=6 | !d3d12) probe (0, 0) rgbaui(0xfffff803, 0x1ffd, 0, 0)
|
||||
if(sm>=6 | !d3d12) probe (0, 0) u32(0xfffff803, 0x1ffd, 0, 0)
|
||||
uniform 0 uint 0
|
||||
uniform 4 uint 0
|
||||
uniform 5 uint 0
|
||||
uniform 8 uint 0
|
||||
draw quad
|
||||
if(sm>=6 | !d3d12) probe (0, 0) rgbaui(1, 2, 0, 0)
|
||||
if(sm>=6 | !d3d12) probe (0, 0) u32(1, 2, 0, 0)
|
||||
|
||||
[pixel shader]
|
||||
uniform min16int u[4];
|
||||
|
@@ -107,7 +107,7 @@ uint4 main() : SV_TARGET
|
||||
[test]
|
||||
uniform 0 uint4 0xccaa5533 7 1 2
|
||||
todo(msl) draw quad
|
||||
probe (0, 0) rgbaui(0xff77, 0xf, 0x407f, 0x9)
|
||||
probe (0, 0) u32(0xff77, 0xf, 0x407f, 0x9)
|
||||
|
||||
% Minimum precision vectors in constant buffers have inconsistent behavior with
|
||||
% SM6 (see minimum-precision.shader_test), so we're reading with arrays instead.
|
||||
@@ -125,11 +125,11 @@ uint4 main() : sv_target
|
||||
uniform 0 uint 0
|
||||
uniform 4 uint 0
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(0xfff, 0x7ff, 0, 0)
|
||||
probe (0, 0) u32(0xfff, 0x7ff, 0, 0)
|
||||
uniform 0 uint 1
|
||||
uniform 4 uint 0xfff
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(0x1000, 0x17fe, 0, 0)
|
||||
probe (0, 0) u32(0x1000, 0x17fe, 0, 0)
|
||||
|
||||
[pixel shader]
|
||||
uniform min16uint u[2];
|
||||
@@ -149,13 +149,13 @@ uniform 5 uint 2
|
||||
uniform 8 uint 2
|
||||
draw quad
|
||||
% In D3D12 with SM5 all reads to the array return 0
|
||||
if(sm>=6 | !d3d12) probe (0, 0) rgbaui(0x801, 0x1ffd, 0, 0)
|
||||
if(sm>=6 | !d3d12) probe (0, 0) u32(0x801, 0x1ffd, 0, 0)
|
||||
uniform 0 uint 0
|
||||
uniform 4 uint 0
|
||||
uniform 5 uint 0
|
||||
uniform 8 uint 0
|
||||
draw quad
|
||||
if(sm>=6 | !d3d12) probe (0, 0) rgbaui(1, 2, 0, 0)
|
||||
if(sm>=6 | !d3d12) probe (0, 0) u32(1, 2, 0, 0)
|
||||
|
||||
[pixel shader]
|
||||
uniform min16uint u[4];
|
||||
@@ -172,7 +172,7 @@ uniform 4 uint 9
|
||||
uniform 8 uint 0xff9
|
||||
uniform 12 uint 0xff7
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(21, 45, 0x2feb, 0x4fd3)
|
||||
probe (0, 0) u32(21, 45, 0x2feb, 0x4fd3)
|
||||
|
||||
[pixel shader]
|
||||
uniform min16uint u[4];
|
||||
@@ -189,7 +189,7 @@ uniform 4 uint 0xb
|
||||
uniform 8 uint 0xffff
|
||||
uniform 12 uint 0xffff
|
||||
todo(msl | glsl) draw quad
|
||||
probe (0, 0) rgbaui(0x10, 2, 0x10, 0x3333)
|
||||
probe (0, 0) u32(0x10, 2, 0x10, 0x3333)
|
||||
|
||||
[require]
|
||||
shader model >= 6.2
|
||||
@@ -207,10 +207,10 @@ uint4 main() : sv_target
|
||||
[test]
|
||||
uniform 0 uint4 0 0 0 0
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(0x7fff, 0xffff, 0, 0)
|
||||
probe (0, 0) u32(0x7fff, 0xffff, 0, 0)
|
||||
uniform 0 uint4 0xffff0001 0 0 0
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(0x8000, 0xfffe, 0, 0)
|
||||
probe (0, 0) u32(0x8000, 0xfffe, 0, 0)
|
||||
|
||||
[pixel shader]
|
||||
uniform uint16_t4 u;
|
||||
@@ -225,10 +225,10 @@ uint4 main() : sv_target
|
||||
[test]
|
||||
uniform 0 uint4 0xfffe0002 0 2 0
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(0x8001, 0xfffd, 0, 0)
|
||||
probe (0, 0) u32(0x8001, 0xfffd, 0, 0)
|
||||
uniform 0 uint4 0 0 0 0
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(1, 2, 0, 0)
|
||||
probe (0, 0) u32(1, 2, 0, 0)
|
||||
|
||||
[pixel shader]
|
||||
uniform uint16_t4 u;
|
||||
@@ -243,7 +243,7 @@ uint4 main() : sv_target
|
||||
uniform 0 uint 0x90007
|
||||
uniform 1 uint 0xfff7fff9
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(21, 45, 0xffeb, 0xffd3)
|
||||
probe (0, 0) u32(21, 45, 0xffeb, 0xffd3)
|
||||
|
||||
[pixel shader]
|
||||
uniform uint16_t4 u;
|
||||
@@ -258,4 +258,4 @@ uint4 main() : sv_target
|
||||
uniform 0 uint 0x000bfffe
|
||||
uniform 1 uint 0xffffffff
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(0, 2, 1, 0x3333)
|
||||
probe (0, 0) u32(0, 2, 1, 0x3333)
|
||||
|
@@ -98,4 +98,4 @@ void main(uint local_idx : SV_GroupIndex, uint group_id : SV_GroupID)
|
||||
|
||||
[test]
|
||||
todo(glsl) dispatch 1 1 1
|
||||
probe uav 3 (0, 0, 1024, 1) rui(1024)
|
||||
probe uav 3 (0, 0, 1024, 1) u32(1024)
|
||||
|
@@ -227,13 +227,13 @@ uint4 main() : sv_target
|
||||
[test]
|
||||
uniform 0 uint4 0 0 0 0
|
||||
todo(sm<6) draw quad
|
||||
probe (0, 0) rgbaui (0, 0xffffffff, 0xffffffff, 0xffffffff)
|
||||
probe (0, 0) u32(0, 0xffffffff, 0xffffffff, 0xffffffff)
|
||||
uniform 0 uint4 0xffffffff 0xffffffff 0 0
|
||||
todo(sm<6) draw quad
|
||||
probe (0, 0) rgbaui (32, 0, 31, 0xffffffff)
|
||||
probe (0, 0) u32(32, 0, 31, 0xffffffff)
|
||||
uniform 0 uint4 0xcccccccc 0xcccccccc 0 0
|
||||
todo(sm<6) draw quad
|
||||
probe (0, 0) rgbaui (16, 2, 31, 29)
|
||||
probe (0, 0) u32(16, 2, 31, 29)
|
||||
|
||||
[rtv 0]
|
||||
format r32g32b32a32-float
|
||||
@@ -335,10 +335,10 @@ uint4 main() : sv_target
|
||||
[test]
|
||||
uniform 0 uint64_t2 0 0
|
||||
todo draw quad
|
||||
probe (0, 0) rgbaui (0, 0xffffffff, 0xffffffff, 0xffffffff)
|
||||
probe (0, 0) u32(0, 0xffffffff, 0xffffffff, 0xffffffff)
|
||||
uniform 0 int64_t2 -1 -1
|
||||
todo draw quad
|
||||
probe (0, 0) rgbaui (64, 0, 63, 0xffffffff)
|
||||
probe (0, 0) u32(64, 0, 63, 0xffffffff)
|
||||
uniform 0 uint64_t2 0xcccccccccccccccc 0xcccccccccccccccc
|
||||
todo draw quad
|
||||
probe (0, 0) rgbaui (32, 2, 63, 61)
|
||||
probe (0, 0) u32(32, 2, 63, 61)
|
||||
|
@@ -33,7 +33,7 @@ uint4 main() : sv_target
|
||||
[test]
|
||||
uniform 0 double2 -4.5 8.500003814697266
|
||||
todo(sm<6) draw quad
|
||||
probe (0, 0) rgbaui (0, 0xc0120000, 0x80000000, 0x40210000)
|
||||
probe (0, 0) u32(0, 0xc0120000, 0x80000000, 0x40210000)
|
||||
|
||||
|
||||
[pixel shader todo]
|
||||
@@ -139,7 +139,7 @@ uint4 main() : sv_target
|
||||
[test]
|
||||
uniform 0 double2 0.5 1.0
|
||||
todo(sm<6) draw quad
|
||||
probe (0, 0) rgbaui(0, 2, 0, 1)
|
||||
probe (0, 0) u32(0, 2, 0, 1)
|
||||
|
||||
[pixel shader todo]
|
||||
uniform min16uint u[2];
|
||||
@@ -157,7 +157,7 @@ uint4 main() : sv_target
|
||||
uniform 0 uint 22
|
||||
uniform 4 uint 0xff00
|
||||
todo(sm<6) draw quad
|
||||
probe (0, 0) rgbaui(0, 0x40360000, 0, 0x40efe000)
|
||||
probe (0, 0) u32(0, 0x40360000, 0, 0x40efe000)
|
||||
|
||||
[pixel shader todo]
|
||||
uniform min16int u[2];
|
||||
@@ -175,7 +175,7 @@ uint4 main() : sv_target
|
||||
uniform 0 uint 22
|
||||
uniform 4 uint 0xffffff00
|
||||
todo(sm<6) draw quad
|
||||
probe (0, 0) rgbaui(0, 0x40360000, 0, 0xc0700000)
|
||||
probe (0, 0) u32(0, 0x40360000, 0, 0xc0700000)
|
||||
|
||||
[require]
|
||||
shader model >= 6.2
|
||||
@@ -211,7 +211,7 @@ uint4 main() : sv_target
|
||||
[test]
|
||||
uniform 0 double2 0.5 1.0
|
||||
todo draw quad
|
||||
probe (0, 0) rgbaui(0, 2, 0, 1)
|
||||
probe (0, 0) u32(0, 2, 0, 1)
|
||||
|
||||
[pixel shader]
|
||||
uniform uint16_t2 u;
|
||||
@@ -229,7 +229,7 @@ uint4 main() : sv_target
|
||||
uniform 0 uint 0xff000022
|
||||
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(0, 0x40410000, 0, 0x40efe000)
|
||||
probe (0, 0) u32(0, 0x40410000, 0, 0x40efe000)
|
||||
|
||||
[pixel shader]
|
||||
uniform int16_t2 u;
|
||||
@@ -246,4 +246,4 @@ uint4 main() : sv_target
|
||||
[test]
|
||||
uniform 0 uint 0xff000022
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(0, 0x40410000, 0, 0xc0700000)
|
||||
probe (0, 0) u32(0, 0x40410000, 0, 0xc0700000)
|
||||
|
@@ -65,10 +65,10 @@ uint4 main() : sv_target
|
||||
[test]
|
||||
uniform 0 uint4 0x10002 0x8003 0x10002 0x8003
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(4, 6, 2, 0x8003)
|
||||
probe (0, 0) u32(4, 6, 2, 0x8003)
|
||||
uniform 0 uint4 0xffffffff 0xfffffffd 0xffffffff 0xfffffffd
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(0xfffe, 0xfffa, 0xffff, 0xfffd)
|
||||
probe (0, 0) u32(0xfffe, 0xfffa, 0xffff, 0xfffd)
|
||||
|
||||
[pixel shader]
|
||||
uniform float4 f;
|
||||
@@ -82,4 +82,4 @@ uint4 main() : sv_target
|
||||
[test]
|
||||
uniform 0 float4 0.5 1.0 0.5 1.0
|
||||
todo draw quad
|
||||
probe (0, 0) rgbaui(0, 2, 0, 1)
|
||||
probe (0, 0) u32(0, 2, 0, 1)
|
||||
|
@@ -1022,7 +1022,7 @@ uint4 main() : sv_target
|
||||
[test]
|
||||
uniform 0 uint 0x7fffffff
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(0xffff, 0x7fff, 0, 0)
|
||||
probe (0, 0) u32(0xffff, 0x7fff, 0, 0)
|
||||
|
||||
[pixel shader]
|
||||
uniform uint16_t4 u0;
|
||||
@@ -1036,7 +1036,7 @@ uint4 main() : sv_target
|
||||
[test]
|
||||
uniform 0 uint4 0x20001 0x40003 0x60005 0x80007
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(1, 2, 6, 7)
|
||||
probe (0, 0) u32(1, 2, 6, 7)
|
||||
|
||||
[pixel shader]
|
||||
uniform int16_t2 i;
|
||||
|
@@ -48,15 +48,15 @@ sample mask 0x01
|
||||
clear rtv 0 0.0 0.0 0.0 0.0
|
||||
todo(sm<6) draw quad
|
||||
probe (0, 0) rgba (0.0, 0.25, 0.0, 0.25)
|
||||
probe uav 1 (0, 0, 4, 4) rui (0x01)
|
||||
probe uav 1 (0, 0, 4, 4) u32(0x01)
|
||||
sample mask 0x03
|
||||
todo(sm<6) draw quad
|
||||
probe (0, 0) rgba (0.0, 0.5, 0.0, 0.5)
|
||||
probe uav 1 (0, 0, 4, 4) rui (0x03)
|
||||
probe uav 1 (0, 0, 4, 4) u32(0x03)
|
||||
sample mask 0x07
|
||||
todo(sm<6) draw quad
|
||||
probe (0, 0) rgba (0.0, 0.75, 0.0, 0.75)
|
||||
probe uav 1 (0, 0, 4, 4) rui (0x07)
|
||||
probe uav 1 (0, 0, 4, 4) u32(0x07)
|
||||
|
||||
[uav 1]
|
||||
format r32-uint
|
||||
@@ -71,8 +71,8 @@ clear rtv 0 0.0 0.0 0.0 0.0
|
||||
sample mask 0x09
|
||||
todo(sm<6) draw quad
|
||||
probe (0, 0) rgba (0.0, 0.5, 0.0, 0.5)
|
||||
probe uav 1 (0, 0, 4, 4) rui (0x09)
|
||||
probe uav 1 (0, 0, 4, 4) u32(0x09)
|
||||
sample mask 0x0f
|
||||
todo(sm<6) draw quad
|
||||
probe (0, 0) rgba (0.0, 1.0, 0.0, 1.0)
|
||||
probe uav 1 (0, 0, 4, 4) rui (0x0f)
|
||||
probe uav 1 (0, 0, 4, 4) u32(0x0f)
|
||||
|
@@ -79,9 +79,9 @@ probe (0, 0) rgba(3.0517578e-05, 3.0517578e-05, 3.0517578e-05, 3.0517578e-05)
|
||||
% positive infinity
|
||||
uniform 0 uint 0x7c00
|
||||
todo(msl) draw quad
|
||||
probe (0, 0) rgbaui(0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000)
|
||||
probe (0, 0) u32(0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000)
|
||||
|
||||
% negative infinity
|
||||
uniform 0 uint 0xfc00
|
||||
todo(msl) draw quad
|
||||
probe (0, 0) rgbaui(0xff800000, 0xff800000, 0xff800000, 0xff800000)
|
||||
probe (0, 0) u32(0xff800000, 0xff800000, 0xff800000, 0xff800000)
|
||||
|
@@ -16,12 +16,12 @@ uint4 main() : sv_target
|
||||
[test]
|
||||
uniform 0 float 42.0
|
||||
todo(msl) draw quad
|
||||
probe (0, 0) rgbaui (0x5140, 0x5140, 0x5140, 0x5140)
|
||||
probe (0, 0) u32(0x5140, 0x5140, 0x5140, 0x5140)
|
||||
|
||||
% zero
|
||||
uniform 0 float 0.0
|
||||
todo(msl) draw quad
|
||||
probe (0, 0) rgbaui (0x0, 0x0, 0x0, 0x0)
|
||||
probe (0, 0) u32(0x0, 0x0, 0x0, 0x0)
|
||||
|
||||
% negative zero
|
||||
uniform 0 uint 0x8000
|
||||
@@ -31,61 +31,61 @@ probe (0, 0) rgba(-0.0, -0.0, -0.0, -0.0)
|
||||
% subnormal number
|
||||
uniform 0 float 5.9604645e-08
|
||||
todo(msl) draw quad
|
||||
probe (0, 0) rgbaui (0x1, 0x1, 0x1, 0x1)
|
||||
probe (0, 0) u32(0x1, 0x1, 0x1, 0x1)
|
||||
|
||||
% subnormal number
|
||||
uniform 0 float 1.1920929e-07
|
||||
todo(msl) draw quad
|
||||
probe (0, 0) rgbaui (0x2, 0x2, 0x2, 0x2)
|
||||
probe (0, 0) u32(0x2, 0x2, 0x2, 0x2)
|
||||
|
||||
% subnormal number
|
||||
uniform 0 float 2.3841858e-07
|
||||
todo(msl) draw quad
|
||||
probe (0, 0) rgbaui (0x4, 0x4, 0x4, 0x4)
|
||||
probe (0, 0) u32(0x4, 0x4, 0x4, 0x4)
|
||||
|
||||
% subnormal number
|
||||
uniform 0 float 4.7683716e-07
|
||||
todo(msl) draw quad
|
||||
probe (0, 0) rgbaui (0x8, 0x8, 0x8, 0x8)
|
||||
probe (0, 0) u32(0x8, 0x8, 0x8, 0x8)
|
||||
|
||||
% subnormal number
|
||||
uniform 0 float 9.536743e-07
|
||||
todo(msl) draw quad
|
||||
probe (0, 0) rgbaui (0x10, 0x10, 0x10, 0x10)
|
||||
probe (0, 0) u32(0x10, 0x10, 0x10, 0x10)
|
||||
|
||||
% subnormal number
|
||||
uniform 0 float 1.9073486e-06
|
||||
todo(msl) draw quad
|
||||
probe (0, 0) rgbaui (0x20, 0x20, 0x20, 0x20)
|
||||
probe (0, 0) u32(0x20, 0x20, 0x20, 0x20)
|
||||
|
||||
% subnormal number
|
||||
uniform 0 float 3.8146973e-06
|
||||
todo(msl) draw quad
|
||||
probe (0, 0) rgbaui (0x40, 0x40, 0x40, 0x40)
|
||||
probe (0, 0) u32(0x40, 0x40, 0x40, 0x40)
|
||||
|
||||
% subnormal number
|
||||
uniform 0 float 7.6293945e-06
|
||||
todo(msl) draw quad
|
||||
probe (0, 0) rgbaui (0x80, 0x80, 0x80, 0x80)
|
||||
probe (0, 0) u32(0x80, 0x80, 0x80, 0x80)
|
||||
|
||||
% subnormal number
|
||||
uniform 0 float 1.5258789e-05
|
||||
todo(msl) draw quad
|
||||
probe (0, 0) rgbaui (0x100, 0x100, 0x100, 0x100)
|
||||
probe (0, 0) u32(0x100, 0x100, 0x100, 0x100)
|
||||
|
||||
% subnormal number
|
||||
uniform 0 float 3.0517578e-05
|
||||
todo(msl) draw quad
|
||||
probe (0, 0) rgbaui (0x200, 0x200, 0x200, 0x200)
|
||||
probe (0, 0) u32(0x200, 0x200, 0x200, 0x200)
|
||||
|
||||
% I'd love to use rgba probes here but msvc doesn't scanf infinity :(
|
||||
|
||||
% positive infinity
|
||||
uniform 0 uint 0x7f800000
|
||||
todo(msl) draw quad
|
||||
probe (0, 0) rgbaui (0x7c00, 0x7c00, 0x7c00, 0x7c00)
|
||||
probe (0, 0) u32(0x7c00, 0x7c00, 0x7c00, 0x7c00)
|
||||
|
||||
% negative infinity
|
||||
uniform 0 uint 0xff800000
|
||||
todo(msl) draw quad
|
||||
probe (0, 0) rgbaui (0xfc00, 0xfc00, 0xfc00, 0xfc00)
|
||||
probe (0, 0) u32(0xfc00, 0xfc00, 0xfc00, 0xfc00)
|
||||
|
@@ -78,7 +78,7 @@ void main()
|
||||
|
||||
[test]
|
||||
dispatch 1 1 1
|
||||
probe uav 0 (0) rui(4)
|
||||
probe uav 0 (0) u32(4)
|
||||
|
||||
[uav 0]
|
||||
stride 6
|
||||
@@ -107,8 +107,8 @@ void main()
|
||||
|
||||
[test]
|
||||
dispatch 1 1 1
|
||||
probe uav 0 (0) rui(0x38000002)
|
||||
probe uav 0 (1) rui(6)
|
||||
probe uav 0 (0) u32(0x38000002)
|
||||
probe uav 0 (1) u32(6)
|
||||
|
||||
[uav 0]
|
||||
stride 8
|
||||
@@ -137,8 +137,8 @@ void main()
|
||||
|
||||
[test]
|
||||
dispatch 1 1 1
|
||||
probe uav 0 (0) rui(0x38000002)
|
||||
probe uav 0 (1) rui(8)
|
||||
probe uav 0 (0) u32(0x38000002)
|
||||
probe uav 0 (1) u32(8)
|
||||
|
||||
[uav 0]
|
||||
stride 8
|
||||
@@ -166,5 +166,5 @@ void main()
|
||||
|
||||
[test]
|
||||
dispatch 1 1 1
|
||||
probe uav 0 (0) rui(2)
|
||||
probe uav 0 (1) rui(8)
|
||||
probe uav 0 (0) u32(2)
|
||||
probe uav 0 (1) u32(8)
|
||||
|
@@ -102,7 +102,7 @@ uint4 main() : sv_target
|
||||
[test]
|
||||
uniform 0 uint4 1 2 0 0
|
||||
todo(msl) draw quad
|
||||
probe (0, 0) rgbaui (2, 1, 2, 1)
|
||||
probe (0, 0) u32(2, 1, 2, 1)
|
||||
|
||||
[rtv 0]
|
||||
format r32g32b32a32-sint
|
||||
|
@@ -51,7 +51,7 @@ uniform 0 uint4 0x020001 0x040003 0x060005 0x080007
|
||||
uniform 4 uint4 0x120011 0x140013 0x160015 0x180017
|
||||
uniform 8 uint4 0x220021 0x240023 0x260025 0x280027
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(1, 1, 1, 1)
|
||||
probe (0, 0) u32(1, 1, 1, 1)
|
||||
|
||||
% Minimum precision types have a funny behavior with respect to stride in SM6:
|
||||
% DXC allocates them assuming they're 32 bit, and the generated code first loads
|
||||
@@ -95,7 +95,7 @@ uniform 0 uint4 0x020001 0x040003 0x060005 0x080007
|
||||
uniform 4 uint4 0x120011 0x140013 0x160015 0x180017
|
||||
uniform 8 uint4 0x220021 0x240023 0x260025 0x280027
|
||||
draw quad
|
||||
todo probe (0, 0) rgbaui(1, 1, 1, 1)
|
||||
todo probe (0, 0) u32(1, 1, 1, 1)
|
||||
|
||||
% Same tests for signed integers
|
||||
|
||||
@@ -123,7 +123,7 @@ uniform 0 uint4 0x020001 0x040003 0x060005 0x080007
|
||||
uniform 4 uint4 0x120011 0x140013 0x160015 0x180017
|
||||
uniform 8 uint4 0x220021 0x240023 0x260025 0x280027
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(1, 1, 1, 1)
|
||||
probe (0, 0) u32(1, 1, 1, 1)
|
||||
|
||||
[require]
|
||||
shader model >= 6.0
|
||||
@@ -154,7 +154,7 @@ uniform 0 uint4 0x020001 0x040003 0x060005 0x080007
|
||||
uniform 4 uint4 0x120011 0x140013 0x160015 0x180017
|
||||
uniform 8 uint4 0x220021 0x240023 0x260025 0x280027
|
||||
draw quad
|
||||
todo probe (0, 0) rgbaui(1, 1, 1, 1)
|
||||
todo probe (0, 0) u32(1, 1, 1, 1)
|
||||
|
||||
% Same tests for floating point numbers
|
||||
|
||||
@@ -182,7 +182,7 @@ uniform 0 float4 1.0 2.0 3.0 4.0
|
||||
uniform 4 float4 11.0 12.0 13.0 14.0
|
||||
uniform 8 float4 21.0 22.0 23.0 24.0
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(1, 1, 1, 1)
|
||||
probe (0, 0) u32(1, 1, 1, 1)
|
||||
|
||||
[require]
|
||||
shader model >= 6.0
|
||||
@@ -213,7 +213,7 @@ uniform 0 uint4 0x40003c00 0x44004200 0x46004500 0x48004700
|
||||
uniform 4 uint4 0x4a004980 0x4b004a80 0x4c004b80 0x4c804c40
|
||||
uniform 8 uint4 0x4d804d40 0x4e004dc0 0x4e804e40 0x4f004ec0
|
||||
draw quad
|
||||
todo probe (0, 0) rgbaui(1, 1, 1, 1)
|
||||
todo probe (0, 0) u32(1, 1, 1, 1)
|
||||
|
||||
[require]
|
||||
shader model >= 4.0
|
||||
@@ -237,11 +237,11 @@ uniform 0 uint 0
|
||||
uniform 1 uint 100
|
||||
draw quad
|
||||
% In D3D12 with SM5 all reads to the array return 0
|
||||
if(sm>=6 | !d3d12) probe (0, 0) rgbaui(100, 2, 0x7ff, 0xfff)
|
||||
if(sm>=6 | !d3d12) probe (0, 0) u32(100, 2, 0x7ff, 0xfff)
|
||||
uniform 0 uint 2
|
||||
uniform 1 uint 1000
|
||||
draw quad
|
||||
if(sm>=6 | !d3d12) probe (0, 0) rgbaui(1, 2, 1000, 0xfff)
|
||||
if(sm>=6 | !d3d12) probe (0, 0) u32(1, 2, 1000, 0xfff)
|
||||
|
||||
[rtv 0]
|
||||
format r32g32b32a32-sint
|
||||
@@ -263,11 +263,11 @@ uniform 0 uint 0
|
||||
uniform 1 uint 100
|
||||
draw quad
|
||||
% In D3D12 with SM5 all reads to the array return 0
|
||||
if(sm>=6 | !d3d12) probe (0, 0) rgbaui(100, 2, 0x7ff, 0xfff)
|
||||
if(sm>=6 | !d3d12) probe (0, 0) u32(100, 2, 0x7ff, 0xfff)
|
||||
uniform 0 uint 2
|
||||
uniform 1 uint 1000
|
||||
draw quad
|
||||
if(sm>=6 | !d3d12) probe (0, 0) rgbaui(1, 2, 1000, 0xfff)
|
||||
if(sm>=6 | !d3d12) probe (0, 0) u32(1, 2, 1000, 0xfff)
|
||||
|
||||
[rtv 0]
|
||||
format r32g32b32a32-float
|
||||
|
@@ -35,8 +35,8 @@ uint4 main(float4 pos : sv_position) : sv_target
|
||||
% Initialise the UAV and RTV.
|
||||
[test]
|
||||
todo(glsl) draw triangle list 3
|
||||
probe (0, 0) rui(0xaaaaaaaa)
|
||||
probe uav 1 (0, 0, 640, 480) rui(0x55555555)
|
||||
probe (0, 0) u32(0xaaaaaaaa)
|
||||
probe uav 1 (0, 0, 640, 480) u32(0x55555555)
|
||||
|
||||
[pixel shader]
|
||||
RasterizerOrderedTexture2D<uint4> tex : register(u1);
|
||||
@@ -68,5 +68,5 @@ rov
|
||||
|
||||
[test]
|
||||
draw triangle list 93
|
||||
probe (0, 0) rui(0x6aaaaaaa)
|
||||
probe uav 1 (0, 0, 640, 480) rui(0x2aaaaaaa)
|
||||
probe (0, 0) u32(0x6aaaaaaa)
|
||||
probe uav 1 (0, 0, 640, 480) u32(0x2aaaaaaa)
|
||||
|
@@ -30,7 +30,7 @@ uint4 main() : sv_target
|
||||
|
||||
[test]
|
||||
todo(mvk & vulkan | msl) draw quad
|
||||
todo(mvk) probe (0, 0) rgbaui (0, 22, 0xfeedcafe, 0xffffffff)
|
||||
todo(mvk) probe (0, 0) u32(0, 22, 0xfeedcafe, 0xffffffff)
|
||||
|
||||
[pixel shader]
|
||||
int4 main() : sv_target
|
||||
@@ -74,7 +74,7 @@ uint4 main() : sv_target
|
||||
|
||||
[test]
|
||||
draw quad
|
||||
probe (0, 0) rgbaui (0, 22, 0xfeedcafe, 0xffffffff)
|
||||
probe (0, 0) u32(0, 22, 0xfeedcafe, 0xffffffff)
|
||||
|
||||
[pixel shader]
|
||||
int4 main() : sv_target
|
||||
@@ -118,7 +118,7 @@ uint4 main() : sv_target
|
||||
|
||||
[test]
|
||||
todo(mvk & vulkan | msl) draw quad
|
||||
todo(mvk) probe (0, 0) rgbaui (0, 22, 0xfeedcafe, 0xffffffff)
|
||||
todo(mvk) probe (0, 0) u32(0, 22, 0xfeedcafe, 0xffffffff)
|
||||
|
||||
[pixel shader]
|
||||
int4 main() : sv_target
|
||||
@@ -162,7 +162,7 @@ uint4 main() : sv_target
|
||||
|
||||
[test]
|
||||
draw quad
|
||||
probe (0, 0) rui (22)
|
||||
probe (0, 0) u32(22)
|
||||
|
||||
[pixel shader]
|
||||
int4 main() : sv_target
|
||||
|
@@ -241,4 +241,4 @@ uint4 main() : sv_target
|
||||
|
||||
[test]
|
||||
draw quad
|
||||
probe (0, 0) rgbaui(0, 1, 10, 100)
|
||||
probe (0, 0) u32(0, 1, 10, 100)
|
||||
|
@@ -32,28 +32,28 @@ uint4 main() : sv_target
|
||||
[test]
|
||||
uniform 0 uint4 0 1 0 0
|
||||
todo(msl | glsl) draw quad
|
||||
probe (0, 0) rgbaui(0x1, 0xa, 0xb, 0xc)
|
||||
probe (0, 0) u32(0x1, 0xa, 0xb, 0xc)
|
||||
uniform 0 uint4 4 1 0 0
|
||||
todo(msl | glsl) draw quad
|
||||
probe (0, 0) rgbaui(0x2, 0xa, 0xb, 0xc)
|
||||
probe (0, 0) u32(0x2, 0xa, 0xb, 0xc)
|
||||
uniform 0 uint4 0 2 0 0
|
||||
todo(msl | glsl) draw quad
|
||||
probe (0, 0) rgbaui(0x1, 0x2, 0xd, 0xe)
|
||||
probe (0, 0) u32(0x1, 0x2, 0xd, 0xe)
|
||||
uniform 0 uint4 4 2 0 0
|
||||
todo(msl | glsl) draw quad
|
||||
probe (0, 0) rgbaui(0x2, 0x3, 0xd, 0xe)
|
||||
probe (0, 0) u32(0x2, 0x3, 0xd, 0xe)
|
||||
uniform 0 uint4 0 3 0 0
|
||||
todo(msl | glsl) draw quad
|
||||
probe (0, 0) rgbaui(0x1, 0x2, 0x3, 0xf)
|
||||
probe (0, 0) u32(0x1, 0x2, 0x3, 0xf)
|
||||
uniform 0 uint4 4 3 0 0
|
||||
todo(msl | glsl) draw quad
|
||||
probe (0, 0) rgbaui(0x2, 0x3, 0x4, 0xf)
|
||||
probe (0, 0) u32(0x2, 0x3, 0x4, 0xf)
|
||||
uniform 0 uint4 0 4 0 0
|
||||
todo(msl | glsl) draw quad
|
||||
probe (0, 0) rgbaui(0x1, 0x2, 0x3, 0x4)
|
||||
probe (0, 0) u32(0x1, 0x2, 0x3, 0x4)
|
||||
uniform 0 uint4 4 4 0 0
|
||||
todo(msl | glsl) draw quad
|
||||
probe (0, 0) rgbaui(0x2, 0x3, 0x4, 0x0)
|
||||
probe (0, 0) u32(0x2, 0x3, 0x4, 0x0)
|
||||
|
||||
% Test correct emission of resource declarations in SM 5.1 format.
|
||||
[require]
|
||||
@@ -75,4 +75,4 @@ uint4 main() : sv_target
|
||||
|
||||
[test]
|
||||
todo(msl | glsl) draw quad
|
||||
probe (0, 0) rgbaui(0x4, 0x3, 0x2, 0x1)
|
||||
probe (0, 0) u32(0x4, 0x3, 0x2, 0x1)
|
||||
|
@@ -68,10 +68,10 @@ void main(uint local_idx : SV_GroupIndex)
|
||||
|
||||
[test]
|
||||
todo(sm<6) dispatch 1 1 1
|
||||
probe uav 0 (0) rui(0xcafef00d)
|
||||
probe uav 0 (1) rui(0xcafef00d)
|
||||
probe uav 0 (2) rui(0xcafef00d)
|
||||
probe uav 0 (3) rui(0xcafef00d)
|
||||
probe uav 0 (0) u32(0xcafef00d)
|
||||
probe uav 0 (1) u32(0xcafef00d)
|
||||
probe uav 0 (2) u32(0xcafef00d)
|
||||
probe uav 0 (3) u32(0xcafef00d)
|
||||
|
||||
[require]
|
||||
shader model >= 5.0
|
||||
@@ -100,10 +100,10 @@ void main(uint local_idx : SV_GroupIndex, uint group_id : SV_GroupID)
|
||||
|
||||
[test]
|
||||
todo(sm<6) dispatch 4 1 1
|
||||
probe uav 1 (0) rui (0)
|
||||
probe uav 1 (1) rui (33)
|
||||
probe uav 1 (2) rui (66)
|
||||
probe uav 1 (3) rui (99)
|
||||
probe uav 1 (0) u32(0)
|
||||
probe uav 1 (1) u32(33)
|
||||
probe uav 1 (2) u32(66)
|
||||
probe uav 1 (3) u32(99)
|
||||
|
||||
|
||||
[uav 1]
|
||||
@@ -235,7 +235,7 @@ void main(uint local_idx : SV_GroupIndex)
|
||||
|
||||
[test]
|
||||
todo(sm<6) dispatch 1 1 1
|
||||
probe uav 1 (0) rui (39)
|
||||
probe uav 1 (0) u32(39)
|
||||
|
||||
[uav 0]
|
||||
format r32-typeless
|
||||
@@ -264,14 +264,14 @@ void main(uint local_idx : SV_GroupIndex, uint group_id : SV_GroupID)
|
||||
|
||||
[test]
|
||||
todo dispatch 2 1 1
|
||||
todo probe uav 0 (0) rui(0x18)
|
||||
todo probe uav 0 (1) rui(0x18)
|
||||
todo probe uav 0 (2) rui(0x38)
|
||||
todo probe uav 0 (3) rui(0x38)
|
||||
todo probe uav 0 (4) rui(0x1a)
|
||||
todo probe uav 0 (5) rui(0x1a)
|
||||
todo probe uav 0 (6) rui(0x3a)
|
||||
todo probe uav 0 (7) rui(0x3a)
|
||||
todo probe uav 0 (0) u32(0x18)
|
||||
todo probe uav 0 (1) u32(0x18)
|
||||
todo probe uav 0 (2) u32(0x38)
|
||||
todo probe uav 0 (3) u32(0x38)
|
||||
todo probe uav 0 (4) u32(0x1a)
|
||||
todo probe uav 0 (5) u32(0x1a)
|
||||
todo probe uav 0 (6) u32(0x3a)
|
||||
todo probe uav 0 (7) u32(0x3a)
|
||||
|
||||
[uav 0]
|
||||
format r32-typeless
|
||||
@@ -306,14 +306,14 @@ void main(uint local_idx : SV_GroupIndex, uint group_id : SV_GroupID)
|
||||
|
||||
[test]
|
||||
todo dispatch 2 1 1
|
||||
todo probe uav 0 (0) rui(0x14321)
|
||||
todo probe uav 0 (1) rui(0x14321)
|
||||
todo probe uav 0 (2) rui(0x14321)
|
||||
todo probe uav 0 (3) rui(0x14321)
|
||||
todo probe uav 0 (4) rui(0x24321)
|
||||
todo probe uav 0 (5) rui(0x24321)
|
||||
todo probe uav 0 (6) rui(0x24321)
|
||||
todo probe uav 0 (7) rui(0x24321)
|
||||
todo probe uav 0 (0) u32(0x14321)
|
||||
todo probe uav 0 (1) u32(0x14321)
|
||||
todo probe uav 0 (2) u32(0x14321)
|
||||
todo probe uav 0 (3) u32(0x14321)
|
||||
todo probe uav 0 (4) u32(0x24321)
|
||||
todo probe uav 0 (5) u32(0x24321)
|
||||
todo probe uav 0 (6) u32(0x24321)
|
||||
todo probe uav 0 (7) u32(0x24321)
|
||||
|
||||
[require]
|
||||
shader model >= 6.2
|
||||
@@ -343,7 +343,7 @@ void main(uint local_idx : SV_GroupIndex, uint group_id : SV_GroupID)
|
||||
|
||||
[test]
|
||||
dispatch 2 1 1
|
||||
probe uav 1 (0) rui(0x180018)
|
||||
probe uav 1 (1) rui(0x380038)
|
||||
probe uav 1 (2) rui(0x1a001a)
|
||||
probe uav 1 (3) rui(0x3a003a)
|
||||
probe uav 1 (0) u32(0x180018)
|
||||
probe uav 1 (1) u32(0x380038)
|
||||
probe uav 1 (2) u32(0x1a001a)
|
||||
probe uav 1 (3) u32(0x3a003a)
|
||||
|
@@ -33,31 +33,31 @@ void main()
|
||||
[test]
|
||||
uniform 0 uint4 3 5 0 0
|
||||
todo(glsl | msl) dispatch 1 1 1
|
||||
probe uav 1 (0) rui (1)
|
||||
probe uav 1 (1) rui (3)
|
||||
probe uav 1 (2) rui (15)
|
||||
probe uav 1 (3) rui (0x13)
|
||||
probe uav 1 (4) rui (4)
|
||||
probe uav 1 (5) rui (3)
|
||||
probe uav 1 (6) rui (4)
|
||||
probe uav 1 (7) rui (3)
|
||||
probe uav 1 (8) rui (1)
|
||||
probe uav 1 (9) rui (3)
|
||||
probe uav 1 (10) rui (1)
|
||||
probe uav 1 (0) u32(1)
|
||||
probe uav 1 (1) u32(3)
|
||||
probe uav 1 (2) u32(15)
|
||||
probe uav 1 (3) u32(0x13)
|
||||
probe uav 1 (4) u32(4)
|
||||
probe uav 1 (5) u32(3)
|
||||
probe uav 1 (6) u32(4)
|
||||
probe uav 1 (7) u32(3)
|
||||
probe uav 1 (8) u32(1)
|
||||
probe uav 1 (9) u32(3)
|
||||
probe uav 1 (10) u32(1)
|
||||
|
||||
uniform 0 uint4 1 2 0 0
|
||||
todo(glsl | msl) dispatch 2 1 1
|
||||
probe uav 1 (0) rui (1)
|
||||
probe uav 1 (1) rui (3)
|
||||
probe uav 1 (2) rui (21)
|
||||
probe uav 1 (3) rui (0x13)
|
||||
probe uav 1 (4) rui (4)
|
||||
probe uav 1 (5) rui (1)
|
||||
probe uav 1 (6) rui (4)
|
||||
probe uav 1 (7) rui (1)
|
||||
probe uav 1 (8) rui (1)
|
||||
probe uav 1 (9) rui (3)
|
||||
probe uav 1 (10) rui (1)
|
||||
probe uav 1 (0) u32(1)
|
||||
probe uav 1 (1) u32(3)
|
||||
probe uav 1 (2) u32(21)
|
||||
probe uav 1 (3) u32(0x13)
|
||||
probe uav 1 (4) u32(4)
|
||||
probe uav 1 (5) u32(1)
|
||||
probe uav 1 (6) u32(4)
|
||||
probe uav 1 (7) u32(1)
|
||||
probe uav 1 (8) u32(1)
|
||||
probe uav 1 (9) u32(3)
|
||||
probe uav 1 (10) u32(1)
|
||||
|
||||
|
||||
[uav 2]
|
||||
@@ -121,17 +121,17 @@ void main()
|
||||
[test]
|
||||
uniform 0 uint4 3 5 0 0
|
||||
todo(glsl | msl) dispatch 1 1 1
|
||||
probe uav 1 (0) rui (1)
|
||||
probe uav 1 (1) rui (3)
|
||||
probe uav 1 (2) rui (15)
|
||||
probe uav 1 (3) rui (0x13)
|
||||
probe uav 1 (4) rui (4)
|
||||
probe uav 1 (5) rui (3)
|
||||
probe uav 1 (6) rui (4)
|
||||
probe uav 1 (7) rui (3)
|
||||
probe uav 1 (8) rui (1)
|
||||
probe uav 1 (9) rui (3)
|
||||
probe uav 1 (10) rui (1)
|
||||
probe uav 1 (0) u32(1)
|
||||
probe uav 1 (1) u32(3)
|
||||
probe uav 1 (2) u32(15)
|
||||
probe uav 1 (3) u32(0x13)
|
||||
probe uav 1 (4) u32(4)
|
||||
probe uav 1 (5) u32(3)
|
||||
probe uav 1 (6) u32(4)
|
||||
probe uav 1 (7) u32(3)
|
||||
probe uav 1 (8) u32(1)
|
||||
probe uav 1 (9) u32(3)
|
||||
probe uav 1 (10) u32(1)
|
||||
|
||||
|
||||
[compute shader fail(sm<5)]
|
||||
@@ -197,12 +197,12 @@ void main()
|
||||
uniform 0 uint 0xffffffff
|
||||
uniform 1 float 0x80000000
|
||||
todo(glsl | msl) dispatch 1 1 1
|
||||
probe uav 1 (0) rui (0xffffffff)
|
||||
probe uav 1 (1) rui (1)
|
||||
probe uav 1 (2) rui (0x7fffffff)
|
||||
probe uav 1 (0) u32(0xffffffff)
|
||||
probe uav 1 (1) u32(1)
|
||||
probe uav 1 (2) u32(0x7fffffff)
|
||||
probe uav 2 (0) i32(1)
|
||||
probe uav 2 (1) i32(-1)
|
||||
probe uav 2 (2) rui (0x7fffffff)
|
||||
probe uav 2 (2) u32(0x7fffffff)
|
||||
|
||||
[uav 1]
|
||||
format r32-uint
|
||||
@@ -247,14 +247,14 @@ void main()
|
||||
uniform 0 uint 0xffffffff
|
||||
uniform 1 float -1
|
||||
todo(glsl | msl) dispatch 1 1 1
|
||||
if(sm<6) probe uav 1 (0) rui (0xffffffff)
|
||||
if(sm>=6) probe uav 1 (0) rui (0xfffffffd)
|
||||
probe uav 1 (1) rui (0)
|
||||
probe uav 1 (2) rui (0)
|
||||
probe uav 1 (3) rui (0xffffffff)
|
||||
probe uav 1 (4) rui (0xffffffff)
|
||||
if(sm<6) probe uav 1 (0) u32(0xffffffff)
|
||||
if(sm>=6) probe uav 1 (0) u32(0xfffffffd)
|
||||
probe uav 1 (1) u32(0)
|
||||
probe uav 1 (2) u32(0)
|
||||
probe uav 1 (3) u32(0xffffffff)
|
||||
probe uav 1 (4) u32(0xffffffff)
|
||||
if(sm<6) probe uav 2 (0) i32(-1)
|
||||
if(sm>=6) probe uav 2 (0) rui (0xfffffffd)
|
||||
if(sm>=6) probe uav 2 (0) u32(0xfffffffd)
|
||||
probe uav 2 (1) i32(0)
|
||||
probe uav 2 (2) i32(0)
|
||||
probe uav 2 (3) i32(-1)
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user