yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
bf607e2f3
master
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