yum-mirror/slang

Making it easier to work with shaders

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

Harsh Aggarwal (NVIDIA)Fix#8085: Batch-9: Enable cuda tests (#8269)bf607e2f3

master
2.4 KiB47 linesraw
1//TEST:SIMPLE(filecheck=CHECK0):-target glsl -entry main -stage compute
2//TEST:SIMPLE(filecheck=CHECK1):-target hlsl -entry main -stage compute
3//TEST:SIMPLE(filecheck=CHECK2):-target spirv -entry main -stage compute -emit-spirv-via-glsl
4//TEST:SIMPLE(filecheck=CHECK3):-target spirv -entry main -stage compute -emit-spirv-directly
5//TEST:SIMPLE(filecheck=CHECK4):-target cuda -entry main -stage compute
6
7Texture2D<float> textures[2];
8RWTexture2D<float2> outputTexture;
9[numthreads(1, 1, 1)]
10void main(uint2 pixelIndex : SV_DispatchThreadID)
11{
12    // CHECK0: texelFetch({{.*}}[nonuniformEXT({{.*}})])
13
14    // CHECK1: [NonUniformResourceIndex(_{{.*}})].Load(_{{.*}})
15
16    // CHECK2: OpDecorate %[[VAR1:[a-zA-Z0-9_]+]] NonUniform
17    // CHECK2: OpDecorate %[[VAR2:[a-zA-Z0-9_]+]] NonUniform
18    // CHECK2: OpDecorate %[[VAR3:[a-zA-Z0-9_]+]] NonUniform
19    // CHECK2: OpDecorate %[[VAR4:[a-zA-Z0-9_]+]] NonUniform
20    // CHECK2: OpDecorate %[[VAR5:[a-zA-Z0-9_]+]] NonUniform
21    // CHECK2: OpDecorate %[[VAR6:[a-zA-Z0-9_]+]] NonUniform
22
23    // CHECK2: %[[VAR1]] = OpCopyObject %{{.*}}
24    // CHECK2: %[[VAR2]] = OpAccessChain %_ptr_UniformConstant_{{.*}} %{{.*}} %[[VAR1]]
25    // CHECK2: %[[VAR3]] = OpLoad %{{.*}} %[[VAR2]]
26    // CHECK2: %[[VAR4]] = OpCopyObject %{{.*}}
27    // CHECK2: %[[VAR5]] = OpAccessChain %_ptr_UniformConstant_{{.*}} %{{.*}} %[[VAR4]]
28    // CHECK2: %[[VAR6]] = OpLoad %{{.*}} %[[VAR5]]
29
30    // CHECK3: %[[VAR1:[a-zA-Z0-9_]+]] = OpAccessChain{{.*}}NonUniform
31    // CHECK3: %[[VAR2:[a-zA-Z0-9_]+]] = OpLoad %{{.*}}[[VAR1]]{{.*}}NonUniform
32    // CHECK3: %{{.*}} = OpImageFetch %v4float %[[VAR2]] %{{.*}}
33    // CHECK3: %[[VAR3:[a-zA-Z0-9_]+]] = OpAccessChain{{.*}}NonUniform
34    // CHECK3: %[[VAR4:[a-zA-Z0-9_]+]] = OpLoad %{{.*}}[[VAR3]]{{.*}}NonUniform
35    // CHECK3: %{{.*}} = OpImageFetch %v4float %[[VAR4]] %{{.*}}
36    
37    // CHECK4: FixedArray<CUtexObject, 2>  [[TEXTURES:textures[_0-9]*]];
38    // CHECK4: CUsurfObject [[OUTPUTTEXTURE:outputTexture[_0-9]*]];
39    // CHECK4: tex2Dfetch_int<float>(([[GLOBALPARAMS:globalParams[_0-9]*]]->[[TEXTURES]][_S{{[0-9]+}}])
40    // CHECK4: tex2Dfetch_int<float>(([[GLOBALPARAMS]]->[[TEXTURES]][uint(float(_S{{[0-9]+}}))])
41    float2 tmp0 = textures[NonUniformResourceIndex(pixelIndex.x)].Load(int3(0, 0, 0));
42    outputTexture[0] = tmp0;
43
44    float2 tmp1 = textures[NonUniformResourceIndex(uint(float(pixelIndex.x)))].Load(int3(0, 0, 0));
45    outputTexture[1] = tmp1;
46}
47