yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

James Helferty (NVIDIA)Enable metal tests (#8446)8086adc90

master
1.1 KiB28 linesraw
1//TEST:SIMPLE(filecheck=METAL): -target metal -stage compute -entry computeMain
2//TEST:SIMPLE(filecheck=METALLIB): -target metallib -stage compute -entry computeMain
3
4//TEST_INPUT:ubuffer(data=[0 0 0 0 0], stride=8):out,name=outputBuffer
5RWStructuredBuffer<uint64_t> outputBuffer;
6
7//METAL: ulong{{.*}}device{{ *\*}} a
8//METAL-NEXT: long{{.*}}device{{ *\*}} b
9//METAL-NEXT: uint{{.*}}device{{ *\*}} c
10//METAL-NEXT: int{{.*}}device{{ *\*}} d
11//METAL-NEXT: float{{.*}}device{{ *\*}} e
12
13// "indirect_argument" means a pointer
14//METALLIB: !"ulong", !"a{{[^"]*}}", !"air.indirect_argument"
15//METALLIB: !"long", !"b{{[^"]*}}", !"air.indirect_argument"
16//METALLIB: !"uint", !"c{{[^"]*}}", !"air.indirect_argument"
17//METALLIB: !"int", !"d{{[^"]*}}", !"air.indirect_argument"
18//METALLIB: !"float", !"e{{[^"]*}}", !"air.indirect_argument"
19
20[numthreads(1,1,1)]
21void computeMain(uniform uint64_t* a, uniform int64_t* b, uniform uint32_t* c, uniform int32_t* d, uniform float* e)
22{
23    outputBuffer[0] = (uint64_t)(*a);
24    outputBuffer[1] = (uint64_t)(*b);
25    outputBuffer[2] = (uint64_t)(*c);
26    outputBuffer[3] = (uint64_t)(*d);
27    outputBuffer[4] = (uint64_t)(*e);
28}