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