blob: ff94077f5352b9b3bcea455710fa8d11e3755b68 [file] [log] [blame]
spv.functionNestedOpaque.vert
error: SPIRV-Tools Validation Errors
error: UniformConstant OpVariable <id> '36[si] 'has illegal type.
From Vulkan spec, section 14.5.2:
Variables identified with the UniformConstant storage class are used only as handles to refer to opaque resources. Such variables must be typed as OpTypeImage, OpTypeSampler, OpTypeSampledImage, OpTypeAccelerationStructureNV, or an array of one of these types.
%si = OpVariable %_ptr_UniformConstant_S UniformConstant
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 39
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
Source GLSL 450
Name 4 "main"
Name 12 "foo(s21;"
Name 11 "t"
Name 14 "S"
MemberName 14(S) 0 "s"
Name 18 "barc(struct-S-s211;"
Name 17 "p"
Name 21 "bar(struct-S-s211;"
Name 20 "p"
Name 36 "si"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeImage 6(float) 2D sampled format:Unknown
8: TypeSampledImage 7
9: TypePointer UniformConstant 8
10: TypeFunction 2 9(ptr)
14(S): TypeStruct 8
15: TypePointer UniformConstant 14(S)
16: TypeFunction 2 15(ptr)
24: TypeVector 6(float) 2
25: 6(float) Constant 1056964608
26: 24(fvec2) ConstantComposite 25 25
27: TypeVector 6(float) 4
28: 6(float) Constant 0
30: TypeInt 32 1
31: 30(int) Constant 0
36(si): 15(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
37: 2 FunctionCall 18(barc(struct-S-s211;) 36(si)
38: 2 FunctionCall 21(bar(struct-S-s211;) 36(si)
Return
FunctionEnd
12(foo(s21;): 2 Function None 10
11(t): 9(ptr) FunctionParameter
13: Label
23: 8 Load 11(t)
29: 27(fvec4) ImageSampleExplicitLod 23 26 Lod 28
Return
FunctionEnd
18(barc(struct-S-s211;): 2 Function None 16
17(p): 15(ptr) FunctionParameter
19: Label
32: 9(ptr) AccessChain 17(p) 31
33: 2 FunctionCall 12(foo(s21;) 32
Return
FunctionEnd
21(bar(struct-S-s211;): 2 Function None 16
20(p): 15(ptr) FunctionParameter
22: Label
34: 9(ptr) AccessChain 20(p) 31
35: 2 FunctionCall 12(foo(s21;) 34
Return
FunctionEnd