mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
tests/shader_runner: Introduce the "i32" 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
@@ -272,7 +272,7 @@ uniform 4 uint 0
|
|||||||
uniform 8 uint 0xffd
|
uniform 8 uint 0xffd
|
||||||
uniform 12 uint 1
|
uniform 12 uint 1
|
||||||
draw quad
|
draw quad
|
||||||
probe (0, 0) rgbai(1, -0xfff, 0xffe, -0xffe)
|
probe (0, 0) i32(1, -0xfff, 0xffe, -0xffe)
|
||||||
|
|
||||||
[pixel shader]
|
[pixel shader]
|
||||||
uniform min16int u[2];
|
uniform min16int u[2];
|
||||||
@@ -315,7 +315,7 @@ uniform 4 uint 0xfffffff7
|
|||||||
uniform 8 uint 0xfffffff9
|
uniform 8 uint 0xfffffff9
|
||||||
uniform 12 uint 9
|
uniform 12 uint 9
|
||||||
draw quad
|
draw quad
|
||||||
probe (0, 0) rgbai(-21, -45, 21, 45)
|
probe (0, 0) i32(-21, -45, 21, 45)
|
||||||
|
|
||||||
[pixel shader fail todo]
|
[pixel shader fail todo]
|
||||||
% Minimum precision signed division is not supported.
|
% Minimum precision signed division is not supported.
|
||||||
@@ -344,7 +344,7 @@ int4 main() : sv_target
|
|||||||
uniform 0 uint 0
|
uniform 0 uint 0
|
||||||
uniform 1 uint 0x0001fffd
|
uniform 1 uint 0x0001fffd
|
||||||
draw quad
|
draw quad
|
||||||
probe (0, 0) rgbai(1, 0x7fff, -2, -32768)
|
probe (0, 0) i32(1, 0x7fff, -2, -32768)
|
||||||
|
|
||||||
[pixel shader]
|
[pixel shader]
|
||||||
uniform int16_t4 u;
|
uniform int16_t4 u;
|
||||||
@@ -359,7 +359,7 @@ int4 main() : sv_target
|
|||||||
uniform 0 uint 0xfff70007
|
uniform 0 uint 0xfff70007
|
||||||
uniform 1 uint4 0x9fff9
|
uniform 1 uint4 0x9fff9
|
||||||
draw quad
|
draw quad
|
||||||
probe (0, 0) rgbai(-21, -45, 21, 45)
|
probe (0, 0) i32(-21, -45, 21, 45)
|
||||||
|
|
||||||
[pixel shader]
|
[pixel shader]
|
||||||
uniform int16_t4 u;
|
uniform int16_t4 u;
|
||||||
@@ -374,4 +374,4 @@ int4 main() : sv_target
|
|||||||
uniform 0 uint 0x000b7ffe
|
uniform 0 uint 0x000b7ffe
|
||||||
uniform 1 uint 0x80007fff
|
uniform 1 uint 0x80007fff
|
||||||
draw quad
|
draw quad
|
||||||
probe (0, 0) rgbai(0, -2, 1, 6553)
|
probe (0, 0) i32(0, -2, 1, 6553)
|
||||||
|
@@ -122,10 +122,10 @@ int4 main() : sv_target
|
|||||||
[test]
|
[test]
|
||||||
uniform 0 double2 0.5 1.0
|
uniform 0 double2 0.5 1.0
|
||||||
todo(sm<6) draw quad
|
todo(sm<6) draw quad
|
||||||
probe (0, 0) rgbai(0, 2, 0, 1)
|
probe (0, 0) i32(0, 2, 0, 1)
|
||||||
uniform 0 double2 -0.5 -1.0
|
uniform 0 double2 -0.5 -1.0
|
||||||
todo(sm<6) draw quad
|
todo(sm<6) draw quad
|
||||||
probe (0, 0) rgbai(0, -2, 0, -1)
|
probe (0, 0) i32(0, -2, 0, -1)
|
||||||
|
|
||||||
[pixel shader todo]
|
[pixel shader todo]
|
||||||
uniform double2 d;
|
uniform double2 d;
|
||||||
@@ -194,10 +194,10 @@ int4 main() : sv_target
|
|||||||
[test]
|
[test]
|
||||||
uniform 0 double2 0.5 1.0
|
uniform 0 double2 0.5 1.0
|
||||||
draw quad
|
draw quad
|
||||||
probe (0, 0) rgbai(0, 2, 0, 1)
|
probe (0, 0) i32(0, 2, 0, 1)
|
||||||
uniform 0 double2 -0.5 -1.0
|
uniform 0 double2 -0.5 -1.0
|
||||||
draw quad
|
draw quad
|
||||||
probe (0, 0) rgbai(0, -2, 0, -1)
|
probe (0, 0) i32(0, -2, 0, -1)
|
||||||
|
|
||||||
[pixel shader]
|
[pixel shader]
|
||||||
uniform double2 d;
|
uniform double2 d;
|
||||||
|
@@ -102,10 +102,10 @@ int4 main() : sv_target
|
|||||||
[test]
|
[test]
|
||||||
uniform 0 int4 0x10002 0x8003 0x10002 0x8003
|
uniform 0 int4 0x10002 0x8003 0x10002 0x8003
|
||||||
draw quad
|
draw quad
|
||||||
probe (0, 0) rgbai(4, 6, 2, -32765)
|
probe (0, 0) i32(4, 6, 2, -32765)
|
||||||
uniform 0 int4 -1 -3 -1 -3
|
uniform 0 int4 -1 -3 -1 -3
|
||||||
draw quad
|
draw quad
|
||||||
probe (0, 0) rgbai(-2, -6, -1, -3)
|
probe (0, 0) i32(-2, -6, -1, -3)
|
||||||
|
|
||||||
[pixel shader]
|
[pixel shader]
|
||||||
uniform float4 f;
|
uniform float4 f;
|
||||||
@@ -119,7 +119,7 @@ int4 main() : sv_target
|
|||||||
[test]
|
[test]
|
||||||
uniform 0 float4 0.5 1.0 0.5 1.0
|
uniform 0 float4 0.5 1.0 0.5 1.0
|
||||||
todo draw quad
|
todo draw quad
|
||||||
probe (0, 0) rgbai(0, 2, 0, 1)
|
probe (0, 0) i32(0, 2, 0, 1)
|
||||||
uniform 0 float4 -0.5 -1.0 -0.5 -1.0
|
uniform 0 float4 -0.5 -1.0 -0.5 -1.0
|
||||||
todo draw quad
|
todo draw quad
|
||||||
probe (0, 0) rgbai(0, -2, 0, -1)
|
probe (0, 0) i32(0, -2, 0, -1)
|
||||||
|
@@ -1049,4 +1049,4 @@ int4 main() : sv_target
|
|||||||
[test]
|
[test]
|
||||||
uniform 0 uint 0x7fffffff
|
uniform 0 uint 0x7fffffff
|
||||||
draw quad
|
draw quad
|
||||||
probe (0, 0) rgbai(-1, 32767, 0, 0)
|
probe (0, 0) i32(-1, 32767, 0, 0)
|
||||||
|
@@ -119,4 +119,4 @@ int4 main() : sv_target
|
|||||||
[test]
|
[test]
|
||||||
uniform 0 int4 -1 -2 0 0
|
uniform 0 int4 -1 -2 0 0
|
||||||
todo(sm<6) draw quad
|
todo(sm<6) draw quad
|
||||||
probe (0, 0) rgbai (-1, -2, -1, -2)
|
probe (0, 0) i32(-1, -2, -1, -2)
|
||||||
|
@@ -40,7 +40,7 @@ int4 main() : sv_target
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
todo(mvk & vulkan | msl) draw quad
|
todo(mvk & vulkan | msl) draw quad
|
||||||
todo(mvk) probe (0, 0) rgbai (0, 22, -22, -1000)
|
todo(mvk) probe (0, 0) i32(0, 22, -22, -1000)
|
||||||
|
|
||||||
[pixel shader]
|
[pixel shader]
|
||||||
float2 main() : sv_target
|
float2 main() : sv_target
|
||||||
@@ -84,7 +84,7 @@ int4 main() : sv_target
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
todo(mvk & vulkan | msl) draw quad
|
todo(mvk & vulkan | msl) draw quad
|
||||||
todo(mvk) probe (0, 0) rgbai (0, 22, -22, -1000)
|
todo(mvk) probe (0, 0) i32(0, 22, -22, -1000)
|
||||||
|
|
||||||
[pixel shader]
|
[pixel shader]
|
||||||
float2 main() : sv_target
|
float2 main() : sv_target
|
||||||
@@ -128,7 +128,7 @@ int4 main() : sv_target
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
draw quad
|
draw quad
|
||||||
probe (0, 0) rgbai (0, 22, -22, -1000)
|
probe (0, 0) i32(0, 22, -22, -1000)
|
||||||
|
|
||||||
[pixel shader]
|
[pixel shader]
|
||||||
float2 main() : sv_target
|
float2 main() : sv_target
|
||||||
@@ -172,7 +172,7 @@ int4 main() : sv_target
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
todo(mvk & vulkan | msl) draw quad
|
todo(mvk & vulkan | msl) draw quad
|
||||||
todo(mvk) probe (0, 0) ri (-22)
|
todo(mvk) probe (0, 0) i32(-22)
|
||||||
|
|
||||||
[pixel shader]
|
[pixel shader]
|
||||||
float2 main() : sv_target
|
float2 main() : sv_target
|
||||||
|
@@ -193,7 +193,7 @@ size (2d, 640, 480)
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
draw triangle strip 4
|
draw triangle strip 4
|
||||||
todo(opengl) probe (0, 0) rgbai(-7000, -2, 0, 0)
|
todo(opengl) probe (0, 0) i32(-7000, -2, 0, 0)
|
||||||
|
|
||||||
[pixel shader]
|
[pixel shader]
|
||||||
uint4 main(float4 position : SV_Position, min16int2 t0 : TEXCOORD0) : SV_Target
|
uint4 main(float4 position : SV_Position, min16int2 t0 : TEXCOORD0) : SV_Target
|
||||||
@@ -207,7 +207,7 @@ size (2d, 640, 480)
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
draw triangle strip 4
|
draw triangle strip 4
|
||||||
probe (0, 0) rgbai(-7000, -2, 0, 0)
|
probe (0, 0) i32(-7000, -2, 0, 0)
|
||||||
|
|
||||||
[require]
|
[require]
|
||||||
shader model >= 6.2
|
shader model >= 6.2
|
||||||
@@ -303,7 +303,7 @@ size (2d, 640, 480)
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
draw triangle strip 4
|
draw triangle strip 4
|
||||||
probe (0, 0) rgbai(-7000, -2, 0, 0)
|
probe (0, 0) i32(-7000, -2, 0, 0)
|
||||||
|
|
||||||
[pixel shader]
|
[pixel shader]
|
||||||
uint4 main(float4 position : SV_Position, int16_t2 t0 : TEXCOORD0) : SV_Target
|
uint4 main(float4 position : SV_Position, int16_t2 t0 : TEXCOORD0) : SV_Target
|
||||||
@@ -317,4 +317,4 @@ size (2d, 640, 480)
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
draw triangle strip 4
|
draw triangle strip 4
|
||||||
probe (0, 0) rgbai(-7000, -2, 0, 0)
|
probe (0, 0) i32(-7000, -2, 0, 0)
|
||||||
|
@@ -224,7 +224,7 @@ int4 main() : sv_target
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
draw quad
|
draw quad
|
||||||
probe (0, 0) rgbai(-100, -1, 1, 100)
|
probe (0, 0) i32(-100, -1, 1, 100)
|
||||||
|
|
||||||
[srv 0]
|
[srv 0]
|
||||||
format r32g32b32a32-uint
|
format r32g32b32a32-uint
|
||||||
|
@@ -130,10 +130,10 @@ void main(uint local_idx : SV_GroupIndex, uint group_id : SV_GroupID)
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
todo(sm<6) dispatch 4 1 1
|
todo(sm<6) dispatch 4 1 1
|
||||||
probe uav 1 (0) ri (0)
|
probe uav 1 (0) i32(0)
|
||||||
probe uav 1 (1) ri (-31)
|
probe uav 1 (1) i32(-31)
|
||||||
probe uav 1 (2) ri (-62)
|
probe uav 1 (2) i32(-62)
|
||||||
probe uav 1 (3) ri (-93)
|
probe uav 1 (3) i32(-93)
|
||||||
|
|
||||||
|
|
||||||
[uav 1]
|
[uav 1]
|
||||||
@@ -200,14 +200,14 @@ probe uav 1 (4) r (1.0)
|
|||||||
probe uav 1 (5) r (2.0)
|
probe uav 1 (5) r (2.0)
|
||||||
probe uav 1 (6) r (3.0)
|
probe uav 1 (6) r (3.0)
|
||||||
probe uav 1 (7) r (4.0)
|
probe uav 1 (7) r (4.0)
|
||||||
probe uav 2 (0) ri (8)
|
probe uav 2 (0) i32(8)
|
||||||
probe uav 2 (1) ri (4)
|
probe uav 2 (1) i32(4)
|
||||||
probe uav 2 (2) ri (0)
|
probe uav 2 (2) i32(0)
|
||||||
probe uav 2 (3) ri (0)
|
probe uav 2 (3) i32(0)
|
||||||
probe uav 2 (4) ri (9)
|
probe uav 2 (4) i32(9)
|
||||||
probe uav 2 (5) ri (6)
|
probe uav 2 (5) i32(6)
|
||||||
probe uav 2 (6) ri (3)
|
probe uav 2 (6) i32(3)
|
||||||
probe uav 2 (7) ri (4)
|
probe uav 2 (7) i32(4)
|
||||||
|
|
||||||
|
|
||||||
[uav 1]
|
[uav 1]
|
||||||
|
@@ -81,13 +81,13 @@ void main()
|
|||||||
[test]
|
[test]
|
||||||
uniform 0 int4 1 -3 0 0
|
uniform 0 int4 1 -3 0 0
|
||||||
todo(glsl | msl) dispatch 1 1 1
|
todo(glsl | msl) dispatch 1 1 1
|
||||||
probe uav 2 (0) ri (1)
|
probe uav 2 (0) i32(1)
|
||||||
probe uav 2 (1) ri (-3)
|
probe uav 2 (1) i32(-3)
|
||||||
|
|
||||||
uniform 0 int4 -3 1 0 0
|
uniform 0 int4 -3 1 0 0
|
||||||
todo(glsl | msl) dispatch 1 1 1
|
todo(glsl | msl) dispatch 1 1 1
|
||||||
probe uav 2 (0) ri (1)
|
probe uav 2 (0) i32(1)
|
||||||
probe uav 2 (1) ri (-3)
|
probe uav 2 (1) i32(-3)
|
||||||
|
|
||||||
|
|
||||||
[uav 1]
|
[uav 1]
|
||||||
@@ -150,13 +150,13 @@ void main()
|
|||||||
uniform 0 int4 1 -3 0 0
|
uniform 0 int4 1 -3 0 0
|
||||||
% SPIR-V compilation currently fails because of the mismatched resource type for u2.
|
% SPIR-V compilation currently fails because of the mismatched resource type for u2.
|
||||||
todo(vulkan | opengl | msl) dispatch 1 1 1
|
todo(vulkan | opengl | msl) dispatch 1 1 1
|
||||||
probe uav 2 (0) ri (1)
|
probe uav 2 (0) i32(1)
|
||||||
probe uav 2 (1) ri (-3)
|
probe uav 2 (1) i32(-3)
|
||||||
|
|
||||||
uniform 0 int4 -3 1 0 0
|
uniform 0 int4 -3 1 0 0
|
||||||
todo(vulkan | opengl | msl) dispatch 1 1 1
|
todo(vulkan | opengl | msl) dispatch 1 1 1
|
||||||
probe uav 2 (0) ri (1)
|
probe uav 2 (0) i32(1)
|
||||||
probe uav 2 (1) ri (-3)
|
probe uav 2 (1) i32(-3)
|
||||||
|
|
||||||
|
|
||||||
[uav 1]
|
[uav 1]
|
||||||
@@ -200,8 +200,8 @@ todo(glsl | msl) dispatch 1 1 1
|
|||||||
probe uav 1 (0) rui (0xffffffff)
|
probe uav 1 (0) rui (0xffffffff)
|
||||||
probe uav 1 (1) rui (1)
|
probe uav 1 (1) rui (1)
|
||||||
probe uav 1 (2) rui (0x7fffffff)
|
probe uav 1 (2) rui (0x7fffffff)
|
||||||
probe uav 2 (0) ri (1)
|
probe uav 2 (0) i32(1)
|
||||||
probe uav 2 (1) ri (-1)
|
probe uav 2 (1) i32(-1)
|
||||||
probe uav 2 (2) rui (0x7fffffff)
|
probe uav 2 (2) rui (0x7fffffff)
|
||||||
|
|
||||||
[uav 1]
|
[uav 1]
|
||||||
@@ -253,12 +253,12 @@ probe uav 1 (1) rui (0)
|
|||||||
probe uav 1 (2) rui (0)
|
probe uav 1 (2) rui (0)
|
||||||
probe uav 1 (3) rui (0xffffffff)
|
probe uav 1 (3) rui (0xffffffff)
|
||||||
probe uav 1 (4) rui (0xffffffff)
|
probe uav 1 (4) rui (0xffffffff)
|
||||||
if(sm<6) probe uav 2 (0) ri (-1)
|
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) rui (0xfffffffd)
|
||||||
probe uav 2 (1) ri (0)
|
probe uav 2 (1) i32(0)
|
||||||
probe uav 2 (2) ri (0)
|
probe uav 2 (2) i32(0)
|
||||||
probe uav 2 (3) ri (-1)
|
probe uav 2 (3) i32(-1)
|
||||||
probe uav 2 (4) ri (-1)
|
probe uav 2 (4) i32(-1)
|
||||||
|
|
||||||
|
|
||||||
% Interlocked* functions return void.
|
% Interlocked* functions return void.
|
||||||
|
@@ -33,4 +33,4 @@ void main()
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
todo(sm<6) dispatch 3 1 1
|
todo(sm<6) dispatch 3 1 1
|
||||||
probe uav 1 (0) ri (-12)
|
probe uav 1 (0) i32(-12)
|
||||||
|
@@ -185,8 +185,8 @@ float4 main() : sv_target
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
todo(msl) draw quad
|
todo(msl) draw quad
|
||||||
probe uav 1 (0) rgbai (11, -12, 13, -14)
|
probe uav 1 (0) i32(11, -12, 13, -14)
|
||||||
probe uav 1 (1) rgbai (-15, 16, -17, 18)
|
probe uav 1 (1) i32(-15, 16, -17, 18)
|
||||||
|
|
||||||
[uav 2]
|
[uav 2]
|
||||||
format r32g32b32a32-float
|
format r32g32b32a32-float
|
||||||
@@ -301,7 +301,7 @@ void main()
|
|||||||
% Again, implementations behave inconsistently for negative numbers.
|
% Again, implementations behave inconsistently for negative numbers.
|
||||||
uniform 0 uint4 0x7ff4000b 0xe7ff3 0 0
|
uniform 0 uint4 0x7ff4000b 0xe7ff3 0 0
|
||||||
dispatch 1 1 1
|
dispatch 1 1 1
|
||||||
probe uav 1 (0) rgbai(11, 0x7ff4, 0x7ff3, 14)
|
probe uav 1 (0) i32(11, 0x7ff4, 0x7ff3, 14)
|
||||||
|
|
||||||
[uav 1]
|
[uav 1]
|
||||||
format r32g32b32a32-sint
|
format r32g32b32a32-sint
|
||||||
@@ -318,7 +318,7 @@ int4 main() : sv_target
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
draw quad
|
draw quad
|
||||||
probe (0, 0) rgbai(-100, -1, 1, 100)
|
probe (0, 0) i32(-100, -1, 1, 100)
|
||||||
|
|
||||||
[uav 1]
|
[uav 1]
|
||||||
format r32g32b32a32-uint
|
format r32g32b32a32-uint
|
||||||
|
@@ -19,8 +19,8 @@ float4 main() : sv_target
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
todo(glsl | msl) draw quad
|
todo(glsl | msl) draw quad
|
||||||
probe uav 1 (0) ri (10)
|
probe uav 1 (0) i32(10)
|
||||||
if(sm<6) probe uav 1 (1) ri (11)
|
if(sm<6) probe uav 1 (1) i32(11)
|
||||||
if(sm>=6) probe uav 1 (1) r (11.1)
|
if(sm>=6) probe uav 1 (1) r (11.1)
|
||||||
|
|
||||||
[pixel shader]
|
[pixel shader]
|
||||||
@@ -80,7 +80,7 @@ float4 main() : sv_target
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
todo(glsl) draw quad
|
todo(glsl) draw quad
|
||||||
if(sm<6) probe uav 1 (0) ri (12)
|
if(sm<6) probe uav 1 (0) i32(12)
|
||||||
if(sm>=6) probe uav 1 (0) f64(12.2)
|
if(sm>=6) probe uav 1 (0) f64(12.2)
|
||||||
|
|
||||||
|
|
||||||
|
@@ -154,8 +154,8 @@ float4 main() : sv_target1
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
todo(sm<6) draw quad
|
todo(sm<6) draw quad
|
||||||
probe uav 2 (0) rgbai (11, -12, 13, -14)
|
probe uav 2 (0) i32(11, -12, 13, -14)
|
||||||
probe uav 2 (1) rgbai (-15, 16, -17, 18)
|
probe uav 2 (1) i32(-15, 16, -17, 18)
|
||||||
|
|
||||||
[uav 2]
|
[uav 2]
|
||||||
stride 4
|
stride 4
|
||||||
@@ -176,8 +176,8 @@ float4 main() : sv_target1
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
todo(sm<6) draw quad
|
todo(sm<6) draw quad
|
||||||
probe uav 2 (0) ri (11)
|
probe uav 2 (0) i32(11)
|
||||||
probe uav 2 (1) ri (12)
|
probe uav 2 (1) i32(12)
|
||||||
|
|
||||||
[require]
|
[require]
|
||||||
shader model >= 6.2
|
shader model >= 6.2
|
||||||
|
@@ -33,10 +33,10 @@ void main(uint id : SV_GroupIndex)
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
dispatch 4 1 1
|
dispatch 4 1 1
|
||||||
probe uav 1 (0) rgbai (-3, 1, -4, 2)
|
probe uav 1 (0) i32(-3, 1, -4, 2)
|
||||||
probe uav 1 (1) rgbai (-3, 1, -4, 2)
|
probe uav 1 (1) i32(-3, 1, -4, 2)
|
||||||
probe uav 1 (2) rgbai (-3, 1, -4, 2)
|
probe uav 1 (2) i32(-3, 1, -4, 2)
|
||||||
probe uav 1 (3) rgbai (-3, 1, -4, 2)
|
probe uav 1 (3) i32(-3, 1, -4, 2)
|
||||||
|
|
||||||
|
|
||||||
[compute shader]
|
[compute shader]
|
||||||
@@ -51,10 +51,10 @@ void main(uint id : SV_GroupIndex)
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
dispatch 4 1 1
|
dispatch 4 1 1
|
||||||
probe uav 1 (0) rgbai (3, 5, -1, 2)
|
probe uav 1 (0) i32(3, 5, -1, 2)
|
||||||
probe uav 1 (1) rgbai (3, 5, -1, 2)
|
probe uav 1 (1) i32(3, 5, -1, 2)
|
||||||
probe uav 1 (2) rgbai (3, 5, -1, 2)
|
probe uav 1 (2) i32(3, 5, -1, 2)
|
||||||
probe uav 1 (3) rgbai (3, 5, -1, 2)
|
probe uav 1 (3) i32(3, 5, -1, 2)
|
||||||
|
|
||||||
|
|
||||||
[require]
|
[require]
|
||||||
@@ -97,10 +97,10 @@ void main(uint id : SV_GroupIndex)
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
bug(mvk) dispatch 4 1 1
|
bug(mvk) dispatch 4 1 1
|
||||||
probe uav 1 (0) rgbai(-3, -1, -4, 2)
|
probe uav 1 (0) i32(-3, -1, -4, 2)
|
||||||
probe uav 1 (1) rgbai(-3, -1, -4, 2)
|
probe uav 1 (1) i32(-3, -1, -4, 2)
|
||||||
probe uav 1 (2) rgbai(-3, -1, -4, 2)
|
probe uav 1 (2) i32(-3, -1, -4, 2)
|
||||||
probe uav 1 (3) rgbai(-3, -1, -4, 2)
|
probe uav 1 (3) i32(-3, -1, -4, 2)
|
||||||
|
|
||||||
|
|
||||||
[compute shader]
|
[compute shader]
|
||||||
@@ -115,7 +115,7 @@ void main(uint id : SV_GroupIndex)
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
bug(mvk) dispatch 4 1 1
|
bug(mvk) dispatch 4 1 1
|
||||||
probe uav 1 (0) rgbai(0, 5, -1, 2)
|
probe uav 1 (0) i32(0, 5, -1, 2)
|
||||||
probe uav 1 (1) rgbai(0, 5, -1, 2)
|
probe uav 1 (1) i32(0, 5, -1, 2)
|
||||||
probe uav 1 (2) rgbai(0, 5, -1, 2)
|
probe uav 1 (2) i32(0, 5, -1, 2)
|
||||||
probe uav 1 (3) rgbai(0, 5, -1, 2)
|
probe uav 1 (3) i32(0, 5, -1, 2)
|
||||||
|
@@ -800,7 +800,7 @@ static void read_int(const char **line, int *i, bool is_uniform)
|
|||||||
if (*i != val)
|
if (*i != val)
|
||||||
fatal_error("Out of range int constant '%.*s'.\n", (int)(rest - *line), *line);
|
fatal_error("Out of range int constant '%.*s'.\n", (int)(rest - *line), *line);
|
||||||
|
|
||||||
*line = rest + (!is_uniform && *rest == ',');
|
*line = rest;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void read_uint(const char **line, unsigned int *u, bool is_uniform)
|
static void read_uint(const char **line, unsigned int *u, bool is_uniform)
|
||||||
@@ -821,12 +821,12 @@ static void read_uint(const char **line, unsigned int *u, bool is_uniform)
|
|||||||
*line = rest + (!is_uniform && *rest == ',');
|
*line = rest + (!is_uniform && *rest == ',');
|
||||||
}
|
}
|
||||||
|
|
||||||
static void read_int4(const char **line, struct ivec4 *v, bool is_uniform)
|
static void read_int4(const char **line, struct ivec4 *v)
|
||||||
{
|
{
|
||||||
read_int(line, &v->x, is_uniform);
|
read_int(line, &v->x, true);
|
||||||
read_int(line, &v->y, is_uniform);
|
read_int(line, &v->y, true);
|
||||||
read_int(line, &v->z, is_uniform);
|
read_int(line, &v->z, true);
|
||||||
read_int(line, &v->w, is_uniform);
|
read_int(line, &v->w, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void read_uint4(const char **line, struct uvec4 *v, bool is_uniform)
|
static void read_uint4(const char **line, struct uvec4 *v, bool is_uniform)
|
||||||
@@ -1288,6 +1288,48 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
|
|||||||
check_readback_data_double(rb, &rect, v.x, ulps);
|
check_readback_data_double(rb, &rect, v.x, ulps);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (match_string(line, "i32", &line))
|
||||||
|
{
|
||||||
|
struct ivec4 v;
|
||||||
|
|
||||||
|
if (*line != '(')
|
||||||
|
fatal_error("Malformed probe arguments '%s'.\n", line);
|
||||||
|
++line;
|
||||||
|
|
||||||
|
read_int(&line, &v.x, false);
|
||||||
|
|
||||||
|
while (isspace(*line))
|
||||||
|
++line;
|
||||||
|
if (*line == ',')
|
||||||
|
{
|
||||||
|
++line;
|
||||||
|
read_int(&line, &v.y, false);
|
||||||
|
|
||||||
|
while (isspace(*line))
|
||||||
|
++line;
|
||||||
|
if (*line != ',')
|
||||||
|
fatal_error("Malformed probe arguments '%s'.\n", line);
|
||||||
|
++line;
|
||||||
|
read_int(&line, &v.z, false);
|
||||||
|
|
||||||
|
while (isspace(*line))
|
||||||
|
++line;
|
||||||
|
if (*line != ',')
|
||||||
|
fatal_error("Malformed probe arguments '%s'.\n", line);
|
||||||
|
++line;
|
||||||
|
read_int(&line, &v.w, false);
|
||||||
|
|
||||||
|
line = close_parentheses(line);
|
||||||
|
todo_if(runner->is_todo) bug_if(runner->is_bug)
|
||||||
|
check_readback_data_ivec4(rb, &rect, &v);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
line = close_parentheses(line);
|
||||||
|
todo_if(runner->is_todo) bug_if(runner->is_bug)
|
||||||
|
check_readback_data_uint(rb, &box, v.x, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (match_string(line, "rgbaui", &line))
|
else if (match_string(line, "rgbaui", &line))
|
||||||
{
|
{
|
||||||
struct uvec4 v;
|
struct uvec4 v;
|
||||||
@@ -1300,18 +1342,6 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
|
|||||||
todo_if(runner->is_todo) bug_if(runner->is_bug)
|
todo_if(runner->is_todo) bug_if(runner->is_bug)
|
||||||
check_readback_data_uvec4(rb, &rect, &v);
|
check_readback_data_uvec4(rb, &rect, &v);
|
||||||
}
|
}
|
||||||
else if (match_string(line, "rgbai", &line))
|
|
||||||
{
|
|
||||||
struct ivec4 v;
|
|
||||||
|
|
||||||
if (*line != '(')
|
|
||||||
fatal_error("Malformed probe arguments '%s'.\n", line);
|
|
||||||
++line;
|
|
||||||
read_int4(&line, &v, false);
|
|
||||||
line = close_parentheses(line);
|
|
||||||
todo_if(runner->is_todo) bug_if(runner->is_bug)
|
|
||||||
check_readback_data_ivec4(rb, &rect, &v);
|
|
||||||
}
|
|
||||||
else if (match_string(line, "rgba", &line))
|
else if (match_string(line, "rgba", &line))
|
||||||
{
|
{
|
||||||
struct vec4 v;
|
struct vec4 v;
|
||||||
@@ -1336,17 +1366,14 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
|
|||||||
todo_if(runner->is_todo) bug_if(runner->is_bug)
|
todo_if(runner->is_todo) bug_if(runner->is_bug)
|
||||||
check_readback_data_vec2(rb, &rect, &v, ulps);
|
check_readback_data_vec2(rb, &rect, &v, ulps);
|
||||||
}
|
}
|
||||||
else if (match_string(line, "rui", &line) || (is_signed = match_string(line, "ri", &line)))
|
else if (match_string(line, "rui", &line))
|
||||||
{
|
{
|
||||||
unsigned int expect;
|
unsigned int expect;
|
||||||
|
|
||||||
if (*line != '(')
|
if (*line != '(')
|
||||||
fatal_error("Malformed probe arguments '%s'.\n", line);
|
fatal_error("Malformed probe arguments '%s'.\n", line);
|
||||||
++line;
|
++line;
|
||||||
if (is_signed)
|
read_uint(&line, &expect, false);
|
||||||
read_int(&line, (int *)&expect, false);
|
|
||||||
else
|
|
||||||
read_uint(&line, &expect, false);
|
|
||||||
line = close_parentheses(line);
|
line = close_parentheses(line);
|
||||||
todo_if(runner->is_todo) bug_if(runner->is_bug)
|
todo_if(runner->is_todo) bug_if(runner->is_bug)
|
||||||
check_readback_data_uint(rb, &box, expect, 0);
|
check_readback_data_uint(rb, &box, expect, 0);
|
||||||
@@ -1406,7 +1433,7 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
|
|||||||
{
|
{
|
||||||
struct ivec4 v;
|
struct ivec4 v;
|
||||||
|
|
||||||
read_int4(&line, &v, true);
|
read_int4(&line, &v);
|
||||||
set_uniforms(runner, offset, 4, &v);
|
set_uniforms(runner, offset, 4, &v);
|
||||||
}
|
}
|
||||||
else if (match_string(line, "uint4", &line))
|
else if (match_string(line, "uint4", &line))
|
||||||
|
Reference in New Issue
Block a user