| 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 |