mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
b701f8d393
The used UAV formats are explicitly added in the [require] section of every test that uses them. Some of these tests were failing on Intel UHD graphics 770 because of missing support for additional UAV load types, explicitly requiring these formats allows these tests to be skipped.
150 lines
2.8 KiB
Plaintext
150 lines
2.8 KiB
Plaintext
[require]
|
|
shader model >= 5.0
|
|
format r32-sint uav-load
|
|
format r32-uint uav-load
|
|
|
|
[uav 1]
|
|
format r32-uint
|
|
size (buffer, 9)
|
|
|
|
0xd 5 6 0x10 4 4 7 2 0
|
|
|
|
[compute shader todo]
|
|
RWBuffer<uint> u : register(u1);
|
|
|
|
uniform uint4 v;
|
|
|
|
[numthreads(3, 1, 1)]
|
|
void main()
|
|
{
|
|
uint old;
|
|
InterlockedAnd(u[0], v.x);
|
|
InterlockedCompareStore(u[1], v.y, v.x);
|
|
InterlockedAdd(u[2], v.x);
|
|
InterlockedOr(u[3], v.x);
|
|
InterlockedMax(u[4], v.x);
|
|
InterlockedMin(u[5], v.x);
|
|
InterlockedXor(u[6], v.x);
|
|
InterlockedExchange(u[7], v.x, old);
|
|
InterlockedAdd(u[8], old == 2);
|
|
}
|
|
|
|
[test]
|
|
uniform 0 uint4 3 5 0 0
|
|
todo(sm<6) 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)
|
|
|
|
uniform 0 uint4 1 2 0 0
|
|
todo(sm<6) 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)
|
|
|
|
|
|
[uav 2]
|
|
format r32-sint
|
|
size (buffer, 2)
|
|
|
|
-3 1
|
|
|
|
[compute shader todo]
|
|
RWBuffer<int> u : register(u2);
|
|
|
|
uniform int4 i;
|
|
|
|
[numthreads(3, 1, 1)]
|
|
void main()
|
|
{
|
|
InterlockedMax(u[0], i.x);
|
|
InterlockedMin(u[1], i.y);
|
|
}
|
|
|
|
[test]
|
|
uniform 0 int4 1 -3 0 0
|
|
todo(sm<6) dispatch 1 1 1
|
|
probe uav 2 (0) ri (1)
|
|
probe uav 2 (1) ri (-3)
|
|
|
|
uniform 0 int4 -3 1 0 0
|
|
todo(sm<6) dispatch 1 1 1
|
|
probe uav 2 (0) ri (1)
|
|
probe uav 2 (1) ri (-3)
|
|
|
|
|
|
[uav 1]
|
|
format r32-uint
|
|
size (2d, 9, 1)
|
|
|
|
0xd 5 6 0x10 4 4 7 2 0
|
|
|
|
[compute shader todo]
|
|
RWTexture2D<uint> u : register(u1);
|
|
|
|
uniform uint4 v;
|
|
|
|
[numthreads(3, 1, 1)]
|
|
void main()
|
|
{
|
|
uint old;
|
|
InterlockedAnd(u[uint2(0, 0)], v.x);
|
|
InterlockedCompareStore(u[uint2(1, 0)], v.y, v.x);
|
|
InterlockedAdd(u[uint2(2, 0)], v.x);
|
|
InterlockedOr(u[uint2(3, 0)], v.x);
|
|
InterlockedMax(u[uint2(4, 0)], v.x);
|
|
InterlockedMin(u[uint2(5, 0)], v.x);
|
|
InterlockedXor(u[uint2(6, 0)], v.x);
|
|
InterlockedExchange(u[uint2(7, 0)], v.x, old);
|
|
InterlockedAdd(u[uint2(8, 0)], old == 2);
|
|
}
|
|
|
|
[test]
|
|
uniform 0 uint4 3 5 0 0
|
|
todo(sm<6) 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)
|
|
|
|
|
|
[compute shader todo]
|
|
RWTexture2D<int> u : register(u2);
|
|
|
|
uniform int4 i;
|
|
|
|
[numthreads(3, 1, 1)]
|
|
void main()
|
|
{
|
|
InterlockedMax(u[uint2(0, 0)], i.x);
|
|
InterlockedMin(u[uint2(1, 0)], i.y);
|
|
}
|
|
|
|
[test]
|
|
uniform 0 int4 1 -3 0 0
|
|
todo(sm<6) dispatch 1 1 1
|
|
probe uav 2 (0) ri (1)
|
|
probe uav 2 (1) ri (-3)
|
|
|
|
uniform 0 int4 -3 1 0 0
|
|
todo(sm<6) dispatch 1 1 1
|
|
probe uav 2 (0) ri (1)
|
|
probe uav 2 (1) ri (-3)
|