vkd3d/tests/hlsl/numthreads.shader_test
Francisco Casas b701f8d393 tests/shader_runner: Explicitly require UAV load support.
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.
2024-08-22 16:22:18 +02:00

199 lines
2.8 KiB
Plaintext

% Test allowed syntax for the "numthreads" attribute.
[require]
shader model >= 5.0
[compute shader]
[numthreads(1, 1, 1)]
void main() {}
[compute shader fail]
[numthreads]
void main() {}
[compute shader fail]
[numthreads(1, 1)]
void main() {}
[compute shader fail]
[numthreads(1, 1, 1, 1)]
void main() {}
[compute shader fail]
[numthreads(0, 1, 1)]
void main() {}
[compute shader fail]
[numthreads(1, 0, 1)]
void main() {}
[compute shader fail]
[numthreads(1, 1, 0)]
void main() {}
[compute shader fail todo]
[numthreads(-1, 1, 1)]
void main() {}
[compute shader fail todo]
[numthreads(1, -1, 1)]
void main() {}
[compute shader fail todo]
[numthreads(1, 1, -1)]
void main() {}
[compute shader fail todo]
[numthreads(1, -1, -1)]
void main() {}
[compute shader todo]
[numthreads(uint(1), 1, 1)]
void main() {}
[compute shader todo]
[numthreads(int(1), 1, 1)]
void main() {}
[compute shader fail]
[numthreads(float(1), 1, 1)]
void main() {}
[compute shader fail]
[numthreads(uint1(1), 1, 1)]
void main() {}
[compute shader todo]
[numthreads(int(1), 1, 1)]
void main() {}
[compute shader todo]
[numthreads(1 + 1, 1, 1)]
void main() {}
[compute shader fail]
[numthreads("1", 1, 1)]
void main() {}
[compute shader todo fail(sm>=6)]
static int x = 1;
[numthreads(x, 1, 1)]
void main() {}
[compute shader fail]
void main() {}
[compute shader fail(sm<6)]
[NumThreads(1, 1, 1)]
void main() {}
[compute shader]
[numthreads(1, 1, 1)]
void main();
void main() {}
[compute shader fail]
void main() {}
[numthreads(1, 1, 1)]
void main();
[compute shader fail(sm<6)]
void main();
[numthreads(1, 1, 1)]
void main() {}
[compute shader fail todo]
/* Expressions with side effects are forbidden in attributes (but not if the
* attribute is ignored). */
static int x = 1;
[numthreads(x++, 1, 1)]
void main() {}
[compute shader fail todo]
static int x = 1;
[numthreads(++x, 1, 1)]
void main() {}
[compute shader fail todo]
static int x = 1;
[numthreads((x = 2), 1, 1)]
void main() {}
[compute shader fail(sm>=6)]
static int x = 1;
[numthreads(++x, 1, 1)]
void func() {}
[bogus(++x)]
[numthreads(1, 1, 1)]
void main() { func(); }
[require]
shader model >= 5.0
format r32-float uav-load
[uav 0]
format r32-float
size (2d, 2, 2)
1.0 1.0
1.0 1.0
[compute shader]
/* In SM < 6.0, attributes are taken from the first function, and dropped from the second. */
RWTexture2D<float> u;
[numthreads(2, 1, 1)]
void main(uint2 id);
[numthreads(1, 2, 1)]
void main(uint2 id : sv_dispatchthreadid)
{
u[id] = 2.0;
}
[test]
todo(glsl) dispatch 1 1 1
probe uav 0 (0, 0) r (2.0)
if(sm<6) probe uav 0 (0, 1) r (1.0)
if(sm<6) probe uav 0 (1, 0) r (2.0)
probe uav 0 (1, 1) r (1.0)
if(sm>=6) probe uav 0 (0, 1) r (2.0)
if(sm>=6) probe uav 0 (1, 0) r (1.0)