yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
63676c5e5
master
1//TEST:SIMPLE(filecheck=METAL): -target metal -entry computeMain -stage compute 2//TEST:SIMPLE(filecheck=METALLIB): -target metallib -entry computeMain -stage compute 3//TEST:SIMPLE(filecheck=CUDA): -target cuda -entry computeMain -stage compute 4// Metal lacks RWTexture GFX backend support. 5// Due to this, Metal compute test is disabled 6//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=BUF): -slang -output-using-type -shaderobj -mtl 7//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=BUF): -slang -output-using-type -shaderobj -vk 8 9//METAL-NOT: error 41402 10//METALLIB: @computeMain 11 12//CUDA: CUsurfObject outputTexture1D_{{[0-9]+}}; 13//CUDA: CUsurfObject outputTexture2D_{{[0-9]+}}; 14//CUDA: CUsurfObject outputTexture3D_{{[0-9]+}}; 15//CUDA: globalParams_{{[0-9]+}}->outputTexture1D_{{[0-9]+}}[{{.*}}] 16//CUDA: globalParams_{{[0-9]+}}->outputTexture2D_{{[0-9]+}}[{{.*}}] 17//CUDA: globalParams_{{[0-9]+}}->outputTexture3D_{{[0-9]+}}[{{.*}}] 18//CUDA: surf1Dread<{{.*}}> 19//CUDA: surf2Dread<{{.*}}> 20//CUDA: surf3Dread<{{.*}}> 21//CUDA: surf2DLayeredread<{{.*}}> 22 23//TEST_INPUT: RWTexture1D(format=RGBA8Sint, size=8, content = zero, mipMaps = 1):name outputTexture1D 24RWTexture1D<int4> outputTexture1D; 25 26//TEST_INPUT: RWTexture2D(format=RGBA8Sint, size=8, content = zero, mipMaps = 1):name outputTexture2D 27RWTexture2D<int4> outputTexture2D; 28 29//TEST_INPUT: RWTexture3D(format=RGBA8Sint, size=8, content = zero, mipMaps = 1):name outputTexture3D 30RWTexture3D<int4> outputTexture3D; 31 32//TEST_INPUT: RWTexture2D(format=RGBA8Sint, size=4, content = zero, arrayLength=2, mipMaps = 1):name outputTexture2DArray 33RWTexture2DArray<int4> outputTexture2DArray; 34 35//TEST_INPUT:ubuffer(data=[0], stride=4):out,name=outputBuffer 36RWStructuredBuffer<uint> outputBuffer; 37 38 39[numthreads(1,1,1)] 40void computeMain() 41{ 42 outputTexture1D[0].xz = int2(1, 2).xx; 43 AllMemoryBarrier(); 44 outputTexture1D[1].x = int2(3, 4).y; 45 AllMemoryBarrier(); 46 outputTexture2D[0].xz = int2(1, 2).xx; 47 AllMemoryBarrier(); 48 outputTexture2D[int2(0, 1)].x = int2(3, 4).y; 49 AllMemoryBarrier(); 50 outputTexture3D[0].xz = int2(1, 2).xx; 51 AllMemoryBarrier(); 52 outputTexture3D[int3(0, 0, 1)].x = int2(3, 4).y; 53 AllMemoryBarrier(); 54 outputTexture2DArray[0].xz = int2(1, 2); 55 AllMemoryBarrier(); 56 outputTexture2DArray[int3(0, 0, 1)].xz = int2(3, 4); 57 AllMemoryBarrier(); 58 outputBuffer[0] = uint(true 59 && all(outputTexture1D[0] == int4(1, 0, 1, 0)) == true 60 && all(outputTexture1D[1] == int4(4, 0, 0, 0)) == true 61 62 && all(outputTexture2D[0] == int4(1, 0, 1, 0)) == true 63 && all(outputTexture2D[int2(0, 1)] == int4(4, 0, 0, 0)) == true 64 65 && all(outputTexture3D[0] == int4(1, 0, 1, 0)) == true 66 && all(outputTexture3D[int3(0, 0, 1)] == int4(4, 0, 0, 0)) == true 67 68 && all(outputTexture2DArray[0] == int4(1, 0, 2, 0)) == true 69 && all(outputTexture2DArray[int3(0, 0, 1)] == int4(3, 0, 4, 0)) == true 70 ); 71} 72 73//BUF: 1