From 95e2d4ec0287528413ceb8dedca233eb3a98b8e3 Mon Sep 17 00:00:00 2001 From: Sahil Parmar Date: Tue, 25 Sep 2018 13:45:32 -0700 Subject: [PATCH 1/4] Add ES 320 support and additional error checks for SPV_NV_mesh_shader - Add ES 320 support - Error out use of perprimitiveNV for non mesh/fragment shaders - Error out use of mesh/task shaders w/o use of NV_mesh_shader - Error out use of NV_mesh_shader for non task/mesh shaders - Error out use of perviewNV for non mesh shaders - Error out use of taskNV for non mesh/task shaders - Add test case for mesh shader with ES 320 profile --- .../spv.meshShaderUserDefined.mesh.out | 360 ++-- Test/spv.meshShaderUserDefined.mesh | 6 +- glslang/MachineIndependent/Initialize.cpp | 46 +- glslang/MachineIndependent/ParseHelper.cpp | 19 +- glslang/MachineIndependent/Scan.cpp | 5 +- glslang/MachineIndependent/ShaderLang.cpp | 13 +- glslang/MachineIndependent/Versions.cpp | 17 + glslang/MachineIndependent/glslang.y | 6 + glslang/MachineIndependent/glslang_tab.cpp | 1828 +++++++++-------- glslang/MachineIndependent/parseVersions.h | 3 + .../MachineIndependent/preprocessor/Pp.cpp | 5 + 11 files changed, 1187 insertions(+), 1121 deletions(-) diff --git a/Test/baseResults/spv.meshShaderUserDefined.mesh.out b/Test/baseResults/spv.meshShaderUserDefined.mesh.out index c3ec91507f..ef39907213 100644 --- a/Test/baseResults/spv.meshShaderUserDefined.mesh.out +++ b/Test/baseResults/spv.meshShaderUserDefined.mesh.out @@ -1,203 +1,205 @@ spv.meshShaderUserDefined.mesh // Module Version 10000 // Generated by (magic number): 80007 -// Id's are bound by 138 +// Id's are bound by 140 Capability MeshShadingNV Extension "SPV_NV_mesh_shader" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint MeshNV 4 "main" 11 17 34 101 + EntryPoint MeshNV 4 "main" 12 19 37 103 ExecutionMode 4 LocalSize 32 1 1 ExecutionMode 4 OutputVertices 81 ExecutionMode 4 OutputPrimitivesNV 32 ExecutionMode 4 OutputTrianglesNV - Source GLSL 450 + Source ESSL 320 SourceExtension "GL_NV_mesh_shader" Name 4 "main" Name 8 "iid" - Name 11 "gl_LocalInvocationID" - Name 16 "gid" - Name 17 "gl_WorkGroupID" - Name 30 "myblock" - MemberName 30(myblock) 0 "f" - MemberName 30(myblock) 1 "fArr" - MemberName 30(myblock) 2 "pos" - MemberName 30(myblock) 3 "posArr" - MemberName 30(myblock) 4 "m" - MemberName 30(myblock) 5 "mArr" - Name 34 "blk" - Name 97 "myblock2" - MemberName 97(myblock2) 0 "f" - MemberName 97(myblock2) 1 "pos" - MemberName 97(myblock2) 2 "m" - Name 101 "blk2" - Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 17(gl_WorkGroupID) BuiltIn WorkgroupId - MemberDecorate 30(myblock) 0 PerPrimitiveNV - MemberDecorate 30(myblock) 1 PerPrimitiveNV - MemberDecorate 30(myblock) 2 PerPrimitiveNV - MemberDecorate 30(myblock) 3 PerPrimitiveNV - MemberDecorate 30(myblock) 4 PerPrimitiveNV - MemberDecorate 30(myblock) 5 PerPrimitiveNV - Decorate 30(myblock) Block - Decorate 34(blk) Location 0 - Decorate 97(myblock2) Block - Decorate 101(blk2) Location 20 - Decorate 137 BuiltIn WorkgroupSize + Name 12 "gl_LocalInvocationID" + Name 18 "gid" + Name 19 "gl_WorkGroupID" + Name 33 "myblock" + MemberName 33(myblock) 0 "f" + MemberName 33(myblock) 1 "fArr" + MemberName 33(myblock) 2 "pos" + MemberName 33(myblock) 3 "posArr" + MemberName 33(myblock) 4 "m" + MemberName 33(myblock) 5 "mArr" + Name 37 "blk" + Name 99 "myblock2" + MemberName 99(myblock2) 0 "f" + MemberName 99(myblock2) 1 "pos" + MemberName 99(myblock2) 2 "m" + Name 103 "blk2" + Decorate 12(gl_LocalInvocationID) BuiltIn LocalInvocationId + Decorate 19(gl_WorkGroupID) BuiltIn WorkgroupId + MemberDecorate 33(myblock) 0 PerPrimitiveNV + MemberDecorate 33(myblock) 1 PerPrimitiveNV + MemberDecorate 33(myblock) 2 PerPrimitiveNV + MemberDecorate 33(myblock) 3 PerPrimitiveNV + MemberDecorate 33(myblock) 4 PerPrimitiveNV + MemberDecorate 33(myblock) 5 PerPrimitiveNV + Decorate 33(myblock) Block + Decorate 37(blk) Location 0 + Decorate 99(myblock2) Block + Decorate 103(blk2) Location 20 + Decorate 139 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 - 6: TypeInt 32 0 + 6: TypeInt 32 1 7: TypePointer Function 6(int) - 9: TypeVector 6(int) 3 - 10: TypePointer Input 9(ivec3) -11(gl_LocalInvocationID): 10(ptr) Variable Input - 12: 6(int) Constant 0 - 13: TypePointer Input 6(int) -17(gl_WorkGroupID): 10(ptr) Variable Input - 20: TypeFloat 32 - 21: 6(int) Constant 4 - 22: TypeArray 20(float) 21 - 23: TypeVector 20(float) 3 - 24: TypeVector 20(float) 4 - 25: TypeArray 24(fvec4) 21 - 26: TypeMatrix 24(fvec4) 4 - 27: TypeMatrix 23(fvec3) 3 - 28: 6(int) Constant 2 - 29: TypeArray 27 28 - 30(myblock): TypeStruct 20(float) 22 23(fvec3) 25 26 29 - 31: 6(int) Constant 32 - 32: TypeArray 30(myblock) 31 - 33: TypePointer Output 32 - 34(blk): 33(ptr) Variable Output - 36: TypeInt 32 1 - 37: 36(int) Constant 0 - 38: 20(float) Constant 1093664768 - 39: TypePointer Output 20(float) - 42: 6(int) Constant 1 - 44: 36(int) Constant 1 - 52: 36(int) Constant 2 - 53: 20(float) Constant 1096810496 - 54: 20(float) Constant 1097859072 - 55: 20(float) Constant 1095761920 - 56: 23(fvec3) ConstantComposite 53 54 55 - 57: TypePointer Output 23(fvec3) - 63: 36(int) Constant 3 - 68: TypePointer Output 24(fvec4) - 74: 36(int) Constant 4 - 75: 20(float) Constant 1098907648 - 76: 24(fvec4) ConstantComposite 55 53 54 75 - 81: 36(int) Constant 5 - 84: 6(int) Constant 3 - 91: 20(float) Constant 1099431936 - 92: 20(float) Constant 1099956224 - 93: 20(float) Constant 1100480512 - 94: 23(fvec3) ConstantComposite 91 92 93 - 96: 6(int) Constant 264 - 97(myblock2): TypeStruct 20(float) 24(fvec4) 26 - 98: 6(int) Constant 81 - 99: TypeArray 97(myblock2) 98 - 100: TypePointer Output 99 - 101(blk2): 100(ptr) Variable Output - 107: 20(float) Constant 1101004800 - 111: 20(float) Constant 1101529088 - 112: 20(float) Constant 1102053376 - 113: 20(float) Constant 1102577664 - 114: 20(float) Constant 1103101952 - 115: 24(fvec4) ConstantComposite 111 112 113 114 - 127: 20(float) Constant 1105723392 - 137: 9(ivec3) ConstantComposite 31 42 42 + 9: TypeInt 32 0 + 10: TypeVector 9(int) 3 + 11: TypePointer Input 10(ivec3) +12(gl_LocalInvocationID): 11(ptr) Variable Input + 13: 9(int) Constant 0 + 14: TypePointer Input 9(int) +19(gl_WorkGroupID): 11(ptr) Variable Input + 23: TypeFloat 32 + 24: 9(int) Constant 4 + 25: TypeArray 23(float) 24 + 26: TypeVector 23(float) 3 + 27: TypeVector 23(float) 4 + 28: TypeArray 27(fvec4) 24 + 29: TypeMatrix 27(fvec4) 4 + 30: TypeMatrix 26(fvec3) 3 + 31: 9(int) Constant 2 + 32: TypeArray 30 31 + 33(myblock): TypeStruct 23(float) 25 26(fvec3) 28 29 32 + 34: 9(int) Constant 32 + 35: TypeArray 33(myblock) 34 + 36: TypePointer Output 35 + 37(blk): 36(ptr) Variable Output + 39: 6(int) Constant 0 + 40: 23(float) Constant 1093664768 + 41: TypePointer Output 23(float) + 44: 6(int) Constant 1 + 52: 6(int) Constant 2 + 54: 23(float) Constant 1096810496 + 55: 23(float) Constant 1097859072 + 56: 23(float) Constant 1095761920 + 57: 26(fvec3) ConstantComposite 54 55 56 + 58: TypePointer Output 26(fvec3) + 64: 6(int) Constant 3 + 69: TypePointer Output 27(fvec4) + 74: 6(int) Constant 4 + 76: 23(float) Constant 1098907648 + 77: 27(fvec4) ConstantComposite 56 54 55 76 + 82: 6(int) Constant 5 + 85: 9(int) Constant 3 + 88: 9(int) Constant 1 + 93: 23(float) Constant 1099431936 + 94: 23(float) Constant 1099956224 + 95: 23(float) Constant 1100480512 + 96: 26(fvec3) ConstantComposite 93 94 95 + 98: 9(int) Constant 264 + 99(myblock2): TypeStruct 23(float) 27(fvec4) 29 + 100: 9(int) Constant 81 + 101: TypeArray 99(myblock2) 100 + 102: TypePointer Output 101 + 103(blk2): 102(ptr) Variable Output + 109: 23(float) Constant 1101004800 + 113: 23(float) Constant 1101529088 + 114: 23(float) Constant 1102053376 + 115: 23(float) Constant 1102577664 + 116: 23(float) Constant 1103101952 + 117: 27(fvec4) ConstantComposite 113 114 115 116 + 129: 23(float) Constant 1105723392 + 139: 10(ivec3) ConstantComposite 34 88 88 4(main): 2 Function None 3 5: Label 8(iid): 7(ptr) Variable Function - 16(gid): 7(ptr) Variable Function - 14: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12 - 15: 6(int) Load 14 - Store 8(iid) 15 - 18: 13(ptr) AccessChain 17(gl_WorkGroupID) 12 - 19: 6(int) Load 18 - Store 16(gid) 19 - 35: 6(int) Load 8(iid) - 40: 39(ptr) AccessChain 34(blk) 35 37 - Store 40 38 - 41: 6(int) Load 8(iid) - 43: 6(int) IAdd 41 42 - 45: 6(int) Load 16(gid) - 46: 6(int) Load 8(iid) - 47: 39(ptr) AccessChain 34(blk) 46 37 - 48: 20(float) Load 47 - 49: 39(ptr) AccessChain 34(blk) 43 44 45 - Store 49 48 - 50: 6(int) Load 8(iid) - 51: 6(int) UDiv 50 28 - 58: 57(ptr) AccessChain 34(blk) 51 52 - 59: 23(fvec3) Load 58 - 60: 23(fvec3) VectorShuffle 59 56 5 3 4 - Store 58 60 - 61: 6(int) Load 8(iid) - 62: 6(int) IMul 61 28 - 64: 6(int) Load 8(iid) - 65: 6(int) UDiv 64 28 - 66: 57(ptr) AccessChain 34(blk) 65 52 - 67: 23(fvec3) Load 66 - 69: 68(ptr) AccessChain 34(blk) 62 63 44 - 70: 24(fvec4) Load 69 - 71: 24(fvec4) VectorShuffle 70 67 0 4 5 6 - Store 69 71 - 72: 6(int) Load 8(iid) - 73: 6(int) UDiv 72 21 - 77: 68(ptr) AccessChain 34(blk) 73 74 52 - 78: 24(fvec4) Load 77 - 79: 24(fvec4) VectorShuffle 78 76 7 6 5 4 - Store 77 79 - 80: 6(int) Load 8(iid) - 82: 6(int) Load 8(iid) - 83: 6(int) UDiv 82 21 - 85: 39(ptr) AccessChain 34(blk) 83 74 52 84 - 86: 20(float) Load 85 - 87: 39(ptr) AccessChain 34(blk) 80 81 37 44 42 - Store 87 86 - 88: 6(int) Load 8(iid) - 89: 6(int) IMul 88 21 - 90: 6(int) Load 16(gid) - 95: 57(ptr) AccessChain 34(blk) 89 81 44 90 - Store 95 94 - MemoryBarrier 42 96 - ControlBarrier 28 28 96 - 102: 6(int) Load 8(iid) - 103: 6(int) Load 8(iid) - 104: 6(int) ISub 103 42 - 105: 39(ptr) AccessChain 101(blk2) 104 37 - 106: 20(float) Load 105 - 108: 20(float) FAdd 106 107 - 109: 39(ptr) AccessChain 101(blk2) 102 37 - Store 109 108 - 110: 6(int) Load 8(iid) - 116: 68(ptr) AccessChain 101(blk2) 110 44 - Store 116 115 - 117: 6(int) Load 8(iid) - 118: 6(int) IAdd 117 42 - 119: 6(int) Load 16(gid) - 120: 6(int) Load 8(iid) - 121: 68(ptr) AccessChain 101(blk2) 120 44 - 122: 24(fvec4) Load 121 - 123: 68(ptr) AccessChain 101(blk2) 118 52 119 - Store 123 122 - 124: 6(int) Load 8(iid) - 125: 6(int) IAdd 124 42 - 126: 6(int) Load 16(gid) - 128: 39(ptr) AccessChain 101(blk2) 125 52 126 28 - Store 128 127 - 129: 6(int) Load 8(iid) - 130: 6(int) IAdd 129 28 + 18(gid): 7(ptr) Variable Function + 15: 14(ptr) AccessChain 12(gl_LocalInvocationID) 13 + 16: 9(int) Load 15 + 17: 6(int) Bitcast 16 + Store 8(iid) 17 + 20: 14(ptr) AccessChain 19(gl_WorkGroupID) 13 + 21: 9(int) Load 20 + 22: 6(int) Bitcast 21 + Store 18(gid) 22 + 38: 6(int) Load 8(iid) + 42: 41(ptr) AccessChain 37(blk) 38 39 + Store 42 40 + 43: 6(int) Load 8(iid) + 45: 6(int) IAdd 43 44 + 46: 6(int) Load 18(gid) + 47: 6(int) Load 8(iid) + 48: 41(ptr) AccessChain 37(blk) 47 39 + 49: 23(float) Load 48 + 50: 41(ptr) AccessChain 37(blk) 45 44 46 + Store 50 49 + 51: 6(int) Load 8(iid) + 53: 6(int) SDiv 51 52 + 59: 58(ptr) AccessChain 37(blk) 53 52 + 60: 26(fvec3) Load 59 + 61: 26(fvec3) VectorShuffle 60 57 5 3 4 + Store 59 61 + 62: 6(int) Load 8(iid) + 63: 6(int) IMul 62 52 + 65: 6(int) Load 8(iid) + 66: 6(int) SDiv 65 52 + 67: 58(ptr) AccessChain 37(blk) 66 52 + 68: 26(fvec3) Load 67 + 70: 69(ptr) AccessChain 37(blk) 63 64 44 + 71: 27(fvec4) Load 70 + 72: 27(fvec4) VectorShuffle 71 68 0 4 5 6 + Store 70 72 + 73: 6(int) Load 8(iid) + 75: 6(int) SDiv 73 74 + 78: 69(ptr) AccessChain 37(blk) 75 74 52 + 79: 27(fvec4) Load 78 + 80: 27(fvec4) VectorShuffle 79 77 7 6 5 4 + Store 78 80 + 81: 6(int) Load 8(iid) + 83: 6(int) Load 8(iid) + 84: 6(int) SDiv 83 74 + 86: 41(ptr) AccessChain 37(blk) 84 74 52 85 + 87: 23(float) Load 86 + 89: 41(ptr) AccessChain 37(blk) 81 82 39 44 88 + Store 89 87 + 90: 6(int) Load 8(iid) + 91: 6(int) IMul 90 74 + 92: 6(int) Load 18(gid) + 97: 58(ptr) AccessChain 37(blk) 91 82 44 92 + Store 97 96 + MemoryBarrier 88 98 + ControlBarrier 31 31 98 + 104: 6(int) Load 8(iid) + 105: 6(int) Load 8(iid) + 106: 6(int) ISub 105 44 + 107: 41(ptr) AccessChain 103(blk2) 106 39 + 108: 23(float) Load 107 + 110: 23(float) FAdd 108 109 + 111: 41(ptr) AccessChain 103(blk2) 104 39 + Store 111 110 + 112: 6(int) Load 8(iid) + 118: 69(ptr) AccessChain 103(blk2) 112 44 + Store 118 117 + 119: 6(int) Load 8(iid) + 120: 6(int) IAdd 119 44 + 121: 6(int) Load 18(gid) + 122: 6(int) Load 8(iid) + 123: 69(ptr) AccessChain 103(blk2) 122 44 + 124: 27(fvec4) Load 123 + 125: 69(ptr) AccessChain 103(blk2) 120 52 121 + Store 125 124 + 126: 6(int) Load 8(iid) + 127: 6(int) IAdd 126 44 + 128: 6(int) Load 18(gid) + 130: 41(ptr) AccessChain 103(blk2) 127 52 128 31 + Store 130 129 131: 6(int) Load 8(iid) - 132: 6(int) IAdd 131 42 - 133: 6(int) Load 16(gid) - 134: 68(ptr) AccessChain 101(blk2) 132 52 133 - 135: 24(fvec4) Load 134 - 136: 68(ptr) AccessChain 101(blk2) 130 52 63 - Store 136 135 - MemoryBarrier 42 96 - ControlBarrier 28 28 96 + 132: 6(int) IAdd 131 52 + 133: 6(int) Load 8(iid) + 134: 6(int) IAdd 133 44 + 135: 6(int) Load 18(gid) + 136: 69(ptr) AccessChain 103(blk2) 134 52 135 + 137: 27(fvec4) Load 136 + 138: 69(ptr) AccessChain 103(blk2) 132 52 64 + Store 138 137 + MemoryBarrier 88 98 + ControlBarrier 31 31 98 Return FunctionEnd diff --git a/Test/spv.meshShaderUserDefined.mesh b/Test/spv.meshShaderUserDefined.mesh index 8b0937dbcc..60a145290e 100644 --- a/Test/spv.meshShaderUserDefined.mesh +++ b/Test/spv.meshShaderUserDefined.mesh @@ -1,4 +1,4 @@ -#version 450 +#version 320 es #define MAX_VER 81 #define MAX_PRIM 32 @@ -36,8 +36,8 @@ layout(location=20) out myblock2 { void main() { - uint iid = gl_LocalInvocationID.x; - uint gid = gl_WorkGroupID.x; + int iid = int(gl_LocalInvocationID.x); + int gid = int(gl_WorkGroupID.x); blk[iid].f = 11.0; blk[iid+1].fArr[gid] = blk[iid].f; diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index cf5b2fee9d..ff5417b02b 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -4878,7 +4878,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "void barrier();" ); #ifdef NV_EXTENSIONS - if ((profile != EEsProfile && version >= 450) || esBarrier) { + if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { stageBuiltins[EShLangMeshNV].append( "void barrier();" ); @@ -4903,7 +4903,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV ); } #ifdef NV_EXTENSIONS - if (profile != EEsProfile && version >= 450) { + if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { stageBuiltins[EShLangMeshNV].append( "void memoryBarrierShared();" "void groupMemoryBarrier();" @@ -5094,7 +5094,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV } // Builtins for GL_NV_mesh_shader - if (profile != EEsProfile && version >= 450) { + if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { stageBuiltins[EShLangMeshNV].append( "void writePackedPrimitiveIndices4x8NV(uint, uint);" "\n"); @@ -5287,7 +5287,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV // //============================================================================ - if (profile != EEsProfile && version >= 450) { + if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { // per-vertex attributes stageBuiltins[EShLangMeshNV].append( "out gl_MeshPerVertexNV {" @@ -5328,17 +5328,8 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "in highp uvec3 gl_GlobalInvocationID;" "in highp uint gl_LocalInvocationIndex;" - "in highp int gl_DeviceIndex;" // GL_EXT_device_group - "in int gl_DrawIDARB;" // GL_ARB_shader_draw_parameters - "\n"); - if (version >= 460) { - stageBuiltins[EShLangMeshNV].append( - "in int gl_DrawID;" - ); - } - stageBuiltins[EShLangTaskNV].append( "out uint gl_TaskCountNV;" @@ -5350,15 +5341,28 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "in highp uvec3 gl_GlobalInvocationID;" "in highp uint gl_LocalInvocationIndex;" + "\n"); + } + + if (profile != EEsProfile && version >= 450) { + stageBuiltins[EShLangMeshNV].append( "in highp int gl_DeviceIndex;" // GL_EXT_device_group "in int gl_DrawIDARB;" // GL_ARB_shader_draw_parameters + "\n"); + stageBuiltins[EShLangTaskNV].append( + "in highp int gl_DeviceIndex;" // GL_EXT_device_group + "in int gl_DrawIDARB;" // GL_ARB_shader_draw_parameters "\n"); if (version >= 460) { + stageBuiltins[EShLangMeshNV].append( + "in int gl_DrawID;" + "\n"); + stageBuiltins[EShLangTaskNV].append( "in int gl_DrawID;" - ); + "\n"); } } #endif @@ -7658,7 +7662,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf #ifdef NV_EXTENSIONS // SPV_NV_mesh_shader - if (profile != EEsProfile && version >= 450) { + if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { snprintf(builtInConstant, maxSize, "const int gl_MaxMeshOutputVerticesNV = %d;", resources.maxMeshOutputVerticesNV); s.append(builtInConstant); @@ -8633,7 +8637,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion } break; case EShLangMeshNV: - if (profile != EEsProfile && version >= 450) { + if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { // Per-vertex builtins BuiltInVariable("gl_MeshVerticesNV", "gl_Position", EbvPosition, symbolTable); BuiltInVariable("gl_MeshVerticesNV", "gl_PointSize", EbvPointSize, symbolTable); @@ -8681,7 +8685,9 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("barrier", 1, &E_GL_NV_mesh_shader); symbolTable.setFunctionExtensions("memoryBarrierShared", 1, &E_GL_NV_mesh_shader); symbolTable.setFunctionExtensions("groupMemoryBarrier", 1, &E_GL_NV_mesh_shader); + } + if (profile != EEsProfile && version >= 450) { // GL_EXT_device_group symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group); BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable); @@ -8743,7 +8749,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion break; case EShLangTaskNV: - if (profile != EEsProfile && version >= 450) { + if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { symbolTable.setVariableExtensions("gl_TaskCountNV", 1, &E_GL_NV_mesh_shader); symbolTable.setVariableExtensions("gl_WorkGroupSize", 1, &E_GL_NV_mesh_shader); symbolTable.setVariableExtensions("gl_WorkGroupID", 1, &E_GL_NV_mesh_shader); @@ -8763,7 +8769,9 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("barrier", 1, &E_GL_NV_mesh_shader); symbolTable.setFunctionExtensions("memoryBarrierShared", 1, &E_GL_NV_mesh_shader); symbolTable.setFunctionExtensions("groupMemoryBarrier", 1, &E_GL_NV_mesh_shader); + } + if (profile != EEsProfile && version >= 450) { // GL_EXT_device_group symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group); BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable); @@ -9379,12 +9387,12 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion } break; case EShLangMeshNV: - if (profile != EEsProfile && version >= 450) { + if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { symbolTable.relateToOperator("writePackedPrimitiveIndices4x8NV", EOpWritePackedPrimitiveIndices4x8NV); } // fall through case EShLangTaskNV: - if (profile != EEsProfile && version >= 450) { + if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { symbolTable.relateToOperator("memoryBarrierShared", EOpMemoryBarrierShared); symbolTable.relateToOperator("groupMemoryBarrier", EOpGroupMemoryBarrier); } diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 628aa9901b..3a0fa434de 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -612,7 +612,7 @@ int TParseContext::getIoArrayImplicitSize(bool isPerPrimitive) const return 3; //Number of vertices for Fragment shader is always three. else if (language == EShLangMeshNV) { if (isPerPrimitive) { - return intermediate.getPrimitives() != TQualifier::layoutNotSet ? intermediate.getPrimitives() : 0; + return intermediate.getPrimitives() != TQualifier::layoutNotSet ? intermediate.getPrimitives() : 0; } else { return intermediate.getVertices() != TQualifier::layoutNotSet ? intermediate.getVertices() : 0; } @@ -3600,6 +3600,13 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader)) return; break; +#ifdef NV_EXTENSIONS + case EShLangMeshNV: + if (qualifier.storage == EvqVaryingOut) + if ((profile == EEsProfile && version >= 320) || + extensionTurnedOn(E_GL_NV_mesh_shader)) + return; +#endif default: break; } @@ -4460,6 +4467,12 @@ void TParseContext::finish() if (profile != EEsProfile && version < 430) requireExtensions(getCurrentLoc(), 1, &E_GL_ARB_compute_shader, "compute shaders"); break; +#ifdef NV_EXTENSIONS + case EShLangTaskNV: + case EShLangMeshNV: + requireExtensions(getCurrentLoc(), 1, &E_GL_NV_mesh_shader, "mesh shaders"); + break; +#endif default: break; } @@ -4963,12 +4976,14 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi #ifdef NV_EXTENSIONS case EShLangMeshNV: if (id == "max_vertices") { + requireExtensions(loc, 1, &E_GL_NV_mesh_shader, "max_vertices"); publicType.shaderQualifiers.vertices = value; if (value > resources.maxMeshOutputVerticesNV) error(loc, "too large, must be less than gl_MaxMeshOutputVerticesNV", "max_vertices", ""); return; } if (id == "max_primitives") { + requireExtensions(loc, 1, &E_GL_NV_mesh_shader, "max_primitives"); publicType.shaderQualifiers.primitives = value; if (value > resources.maxMeshOutputPrimitivesNV) error(loc, "too large, must be less than gl_MaxMeshOutputPrimitivesNV", "max_primitives", ""); @@ -4983,7 +4998,7 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi if (id.compare(0, 11, "local_size_") == 0) { #ifdef NV_EXTENSIONS if (language == EShLangMeshNV || language == EShLangTaskNV) { - profileRequires(loc, ~EEsProfile, 450, E_GL_NV_mesh_shader, "gl_WorkGroupSize"); + requireExtensions(loc, 1, &E_GL_NV_mesh_shader, "gl_WorkGroupSize"); } else #endif diff --git a/glslang/MachineIndependent/Scan.cpp b/glslang/MachineIndependent/Scan.cpp index 7bdd4309bb..31ed7cf73d 100644 --- a/glslang/MachineIndependent/Scan.cpp +++ b/glslang/MachineIndependent/Scan.cpp @@ -1591,8 +1591,9 @@ int TScanContext::tokenizeIdentifier() case PERPRIMITIVENV: case PERVIEWNV: case PERTASKNV: - if (parseContext.profile != EEsProfile && - (parseContext.version >= 450 || parseContext.extensionTurnedOn(E_GL_NV_mesh_shader))) + if ((parseContext.profile != EEsProfile && parseContext.version >= 450) || + (parseContext.profile == EEsProfile && parseContext.version >= 320) || + parseContext.extensionTurnedOn(E_GL_NV_mesh_shader)) return keyword; return identifierOrType(); #endif diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index 7039ac2a8e..39444ab18c 100755 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -361,13 +361,16 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangMissNV, source, infoSink, commonTable, symbolTables); } + // check for mesh - if (profile != EEsProfile && version >= 450) + if ((profile != EEsProfile && version >= 450) || + (profile == EEsProfile && version >= 320)) InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangMeshNV, source, infoSink, commonTable, symbolTables); // check for task - if (profile != EEsProfile && version >= 450) + if ((profile != EEsProfile && version >= 450) || + (profile == EEsProfile && version >= 320)) InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTaskNV, source, infoSink, commonTable, symbolTables); #endif @@ -609,11 +612,11 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo break; case EShLangMeshNV: case EShLangTaskNV: - if ((profile == EEsProfile) || + if ((profile == EEsProfile && version < 320) || (profile != EEsProfile && version < 450)) { correct = false; - infoSink.info.message(EPrefixError, "#version: mesh/task shaders require non-es profile with version 450 or above"); - version = 450; + infoSink.info.message(EPrefixError, "#version: mesh/task shaders require es profile with version 320 or above, or non-es profile with version 450 or above"); + version = profile == EEsProfile ? 320 : 450; } #endif default: diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp index 250f325095..4d7dd8b1f0 100644 --- a/glslang/MachineIndependent/Versions.cpp +++ b/glslang/MachineIndependent/Versions.cpp @@ -834,6 +834,23 @@ void TParseVersions::updateExtensionBehavior(const char* extension, TExtensionBe } } +#ifdef NV_EXTENSIONS +// Validate if extension name is used with correct shader stage. +bool TParseVersions::validateExtensionName(const TSourceLoc& loc, const char * const extension) +{ + int lNumErrors = getNumErrors(); + + // GL_NV_mesh_shader extension is only allowed in task/mesh shaders + if (strcmp(extension, "GL_NV_mesh_shader") == 0) + requireStage(loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), + "#extension GL_NV_mesh_shader"); + + if (getNumErrors() > lNumErrors) + return false; + return true; +} +#endif + // Call for any operation needing full GLSL integer data-type support. void TParseVersions::fullIntegerCheck(const TSourceLoc& loc, const char* op) { diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y index 9d89d46b76..cd4256d765 100644 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -1158,7 +1158,9 @@ interpolation_qualifier | PERPRIMITIVENV { #ifdef NV_EXTENSIONS parseContext.globalCheck($1.loc, "perprimitiveNV"); + parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV"); parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_NV_mesh_shader, "perprimitiveNV"); + parseContext.profileRequires($1.loc, EEsProfile, 320, E_GL_NV_mesh_shader, "perprimitiveNV"); $$.init($1.loc); $$.qualifier.perPrimitiveNV = true; #endif @@ -1166,7 +1168,9 @@ interpolation_qualifier | PERVIEWNV { #ifdef NV_EXTENSIONS parseContext.globalCheck($1.loc, "perviewNV"); + parseContext.requireStage($1.loc, EShLangMeshNV, "perviewNV"); parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_NV_mesh_shader, "perviewNV"); + parseContext.profileRequires($1.loc, EEsProfile, 320, E_GL_NV_mesh_shader, "perviewNV"); $$.init($1.loc); $$.qualifier.perViewNV = true; #endif @@ -1174,7 +1178,9 @@ interpolation_qualifier | PERTASKNV { #ifdef NV_EXTENSIONS parseContext.globalCheck($1.loc, "taskNV"); + parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV"); parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_NV_mesh_shader, "taskNV"); + parseContext.profileRequires($1.loc, EEsProfile, 320, E_GL_NV_mesh_shader, "taskNV"); $$.init($1.loc); $$.qualifier.perTaskNV = true; #endif diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp index 32ec5baf45..9b9df51201 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp +++ b/glslang/MachineIndependent/glslang_tab.cpp @@ -948,50 +948,50 @@ static const yytype_uint16 yyrline[] = 820, 825, 834, 834, 845, 849, 856, 863, 866, 873, 881, 901, 924, 939, 964, 975, 985, 995, 1005, 1014, 1017, 1021, 1025, 1030, 1038, 1043, 1048, 1053, 1058, 1067, - 1078, 1105, 1114, 1121, 1128, 1139, 1148, 1158, 1166, 1174, - 1185, 1191, 1194, 1201, 1205, 1209, 1217, 1226, 1229, 1240, - 1243, 1246, 1250, 1254, 1258, 1262, 1268, 1272, 1284, 1298, - 1303, 1309, 1315, 1322, 1328, 1333, 1338, 1343, 1353, 1363, - 1373, 1385, 1389, 1394, 1399, 1404, 1409, 1414, 1418, 1422, - 1426, 1430, 1436, 1445, 1452, 1455, 1463, 1467, 1476, 1481, - 1489, 1493, 1503, 1507, 1511, 1516, 1521, 1526, 1531, 1535, - 1540, 1545, 1550, 1555, 1560, 1565, 1570, 1575, 1580, 1584, - 1589, 1594, 1599, 1605, 1611, 1617, 1623, 1629, 1635, 1641, - 1647, 1653, 1659, 1665, 1671, 1676, 1681, 1686, 1691, 1696, - 1701, 1707, 1713, 1719, 1725, 1731, 1737, 1743, 1749, 1755, - 1761, 1767, 1773, 1779, 1785, 1791, 1797, 1803, 1809, 1815, - 1821, 1827, 1833, 1839, 1845, 1851, 1857, 1863, 1868, 1873, - 1878, 1883, 1888, 1893, 1898, 1903, 1908, 1913, 1918, 1923, - 1929, 1935, 1941, 1947, 1953, 1959, 1965, 1971, 1977, 1983, - 1989, 1995, 2001, 2007, 2013, 2019, 2025, 2031, 2037, 2043, - 2049, 2055, 2061, 2067, 2073, 2079, 2085, 2091, 2097, 2103, - 2109, 2115, 2121, 2127, 2133, 2139, 2145, 2151, 2157, 2163, - 2169, 2175, 2181, 2187, 2193, 2199, 2205, 2211, 2217, 2222, - 2227, 2232, 2237, 2242, 2247, 2252, 2257, 2262, 2267, 2272, - 2277, 2282, 2287, 2295, 2303, 2311, 2319, 2327, 2335, 2343, - 2351, 2359, 2367, 2375, 2383, 2391, 2396, 2401, 2406, 2411, - 2416, 2421, 2426, 2431, 2436, 2441, 2446, 2451, 2456, 2461, - 2466, 2471, 2479, 2487, 2492, 2497, 2502, 2510, 2515, 2520, - 2525, 2533, 2538, 2543, 2548, 2556, 2561, 2566, 2571, 2576, - 2581, 2589, 2594, 2602, 2607, 2615, 2620, 2628, 2633, 2641, - 2646, 2654, 2659, 2667, 2672, 2677, 2682, 2687, 2692, 2697, - 2702, 2707, 2712, 2717, 2722, 2727, 2732, 2737, 2742, 2750, - 2755, 2760, 2765, 2773, 2778, 2783, 2788, 2796, 2801, 2806, - 2811, 2819, 2824, 2829, 2834, 2842, 2847, 2852, 2857, 2865, - 2870, 2875, 2880, 2888, 2893, 2898, 2903, 2911, 2916, 2921, - 2926, 2934, 2939, 2944, 2949, 2957, 2962, 2967, 2972, 2980, - 2985, 2990, 2995, 3003, 3008, 3013, 3018, 3026, 3031, 3036, - 3041, 3049, 3054, 3059, 3064, 3072, 3077, 3082, 3088, 3094, - 3100, 3109, 3118, 3124, 3130, 3136, 3142, 3147, 3163, 3168, - 3173, 3181, 3181, 3192, 3192, 3202, 3205, 3218, 3240, 3267, - 3271, 3277, 3282, 3293, 3296, 3302, 3311, 3314, 3320, 3324, - 3325, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3341, 3342, - 3346, 3342, 3358, 3359, 3363, 3363, 3370, 3370, 3384, 3387, - 3395, 3403, 3414, 3415, 3419, 3422, 3428, 3435, 3439, 3447, - 3451, 3464, 3467, 3473, 3473, 3493, 3496, 3502, 3514, 3526, - 3529, 3535, 3535, 3550, 3550, 3566, 3566, 3587, 3590, 3596, - 3599, 3605, 3609, 3616, 3621, 3626, 3633, 3636, 3645, 3649, - 3658, 3661, 3664, 3672, 3672, 3694, 3700, 3703, 3708, 3711 + 1078, 1105, 1114, 1121, 1128, 1139, 1148, 1158, 1168, 1178, + 1191, 1197, 1200, 1207, 1211, 1215, 1223, 1232, 1235, 1246, + 1249, 1252, 1256, 1260, 1264, 1268, 1274, 1278, 1290, 1304, + 1309, 1315, 1321, 1328, 1334, 1339, 1344, 1349, 1359, 1369, + 1379, 1391, 1395, 1400, 1405, 1410, 1415, 1420, 1424, 1428, + 1432, 1436, 1442, 1451, 1458, 1461, 1469, 1473, 1482, 1487, + 1495, 1499, 1509, 1513, 1517, 1522, 1527, 1532, 1537, 1541, + 1546, 1551, 1556, 1561, 1566, 1571, 1576, 1581, 1586, 1590, + 1595, 1600, 1605, 1611, 1617, 1623, 1629, 1635, 1641, 1647, + 1653, 1659, 1665, 1671, 1677, 1682, 1687, 1692, 1697, 1702, + 1707, 1713, 1719, 1725, 1731, 1737, 1743, 1749, 1755, 1761, + 1767, 1773, 1779, 1785, 1791, 1797, 1803, 1809, 1815, 1821, + 1827, 1833, 1839, 1845, 1851, 1857, 1863, 1869, 1874, 1879, + 1884, 1889, 1894, 1899, 1904, 1909, 1914, 1919, 1924, 1929, + 1935, 1941, 1947, 1953, 1959, 1965, 1971, 1977, 1983, 1989, + 1995, 2001, 2007, 2013, 2019, 2025, 2031, 2037, 2043, 2049, + 2055, 2061, 2067, 2073, 2079, 2085, 2091, 2097, 2103, 2109, + 2115, 2121, 2127, 2133, 2139, 2145, 2151, 2157, 2163, 2169, + 2175, 2181, 2187, 2193, 2199, 2205, 2211, 2217, 2223, 2228, + 2233, 2238, 2243, 2248, 2253, 2258, 2263, 2268, 2273, 2278, + 2283, 2288, 2293, 2301, 2309, 2317, 2325, 2333, 2341, 2349, + 2357, 2365, 2373, 2381, 2389, 2397, 2402, 2407, 2412, 2417, + 2422, 2427, 2432, 2437, 2442, 2447, 2452, 2457, 2462, 2467, + 2472, 2477, 2485, 2493, 2498, 2503, 2508, 2516, 2521, 2526, + 2531, 2539, 2544, 2549, 2554, 2562, 2567, 2572, 2577, 2582, + 2587, 2595, 2600, 2608, 2613, 2621, 2626, 2634, 2639, 2647, + 2652, 2660, 2665, 2673, 2678, 2683, 2688, 2693, 2698, 2703, + 2708, 2713, 2718, 2723, 2728, 2733, 2738, 2743, 2748, 2756, + 2761, 2766, 2771, 2779, 2784, 2789, 2794, 2802, 2807, 2812, + 2817, 2825, 2830, 2835, 2840, 2848, 2853, 2858, 2863, 2871, + 2876, 2881, 2886, 2894, 2899, 2904, 2909, 2917, 2922, 2927, + 2932, 2940, 2945, 2950, 2955, 2963, 2968, 2973, 2978, 2986, + 2991, 2996, 3001, 3009, 3014, 3019, 3024, 3032, 3037, 3042, + 3047, 3055, 3060, 3065, 3070, 3078, 3083, 3088, 3094, 3100, + 3106, 3115, 3124, 3130, 3136, 3142, 3148, 3153, 3169, 3174, + 3179, 3187, 3187, 3198, 3198, 3208, 3211, 3224, 3246, 3273, + 3277, 3283, 3288, 3299, 3302, 3308, 3317, 3320, 3326, 3330, + 3331, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3347, 3348, + 3352, 3348, 3364, 3365, 3369, 3369, 3376, 3376, 3390, 3393, + 3401, 3409, 3420, 3421, 3425, 3428, 3434, 3441, 3445, 3453, + 3457, 3470, 3473, 3479, 3479, 3499, 3502, 3508, 3520, 3532, + 3535, 3541, 3541, 3556, 3556, 3572, 3572, 3593, 3596, 3602, + 3605, 3611, 3615, 3622, 3627, 3632, 3639, 3642, 3651, 3655, + 3664, 3667, 3670, 3678, 3678, 3700, 3706, 3709, 3714, 3717 }; #endif @@ -5516,115 +5516,121 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); { #ifdef NV_EXTENSIONS parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV"); + parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV"); parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_NV_mesh_shader, "perprimitiveNV"); + parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, E_GL_NV_mesh_shader, "perprimitiveNV"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.perPrimitiveNV = true; #endif } -#line 5525 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5527 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 138: -#line 1166 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1168 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef NV_EXTENSIONS parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV"); + parseContext.requireStage((yyvsp[0].lex).loc, EShLangMeshNV, "perviewNV"); parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_NV_mesh_shader, "perviewNV"); + parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, E_GL_NV_mesh_shader, "perviewNV"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.perViewNV = true; #endif } -#line 5538 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5542 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 139: -#line 1174 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1178 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef NV_EXTENSIONS parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV"); + parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV"); parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_NV_mesh_shader, "taskNV"); + parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, E_GL_NV_mesh_shader, "taskNV"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.perTaskNV = true; #endif } -#line 5551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5557 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 140: -#line 1185 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1191 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[-1].interm.type); } -#line 5559 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5565 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 141: -#line 1191 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1197 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5567 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5573 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 142: -#line 1194 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1200 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[-2].interm.type); (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); } -#line 5577 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5583 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 143: -#line 1201 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1207 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string); } -#line 5586 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5592 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 144: -#line 1205 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1211 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[-2].lex).loc); parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode)); } -#line 5595 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5601 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 145: -#line 1209 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1215 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // because "shared" is both an identifier and a keyword (yyval.interm.type).init((yyvsp[0].lex).loc); TString strShared("shared"); parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared); } -#line 5605 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5611 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 146: -#line 1217 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1223 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise"); parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.noContraction = true; } -#line 5616 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5622 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 147: -#line 1226 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1232 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5624 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5630 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 148: -#line 1229 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1235 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[-1].interm.type); if ((yyval.interm.type).basicType == EbtVoid) @@ -5633,80 +5639,80 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); } -#line 5637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5643 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 149: -#line 1240 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1246 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5645 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5651 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 150: -#line 1243 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1249 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5653 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5659 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 151: -#line 1246 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1252 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision); (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5668 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 152: -#line 1250 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1256 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5671 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5677 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 153: -#line 1254 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1260 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5680 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 154: -#line 1258 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1264 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5689 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5695 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 155: -#line 1262 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1268 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5697 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5703 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 156: -#line 1268 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1274 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant } -#line 5706 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5712 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 157: -#line 1272 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1278 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute"); parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute"); @@ -5719,11 +5725,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqVaryingIn; } -#line 5723 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 158: -#line 1284 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1290 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying"); parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying"); @@ -5738,43 +5744,43 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); else (yyval.interm.type).qualifier.storage = EvqVaryingIn; } -#line 5742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5748 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 159: -#line 1298 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1304 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "inout"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqInOut; } -#line 5752 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 160: -#line 1303 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1309 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "in"); (yyval.interm.type).init((yyvsp[0].lex).loc); // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later (yyval.interm.type).qualifier.storage = EvqIn; } -#line 5763 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 161: -#line 1309 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1315 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "out"); (yyval.interm.type).init((yyvsp[0].lex).loc); // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later (yyval.interm.type).qualifier.storage = EvqOut; } -#line 5774 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5780 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 162: -#line 1315 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1321 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid"); parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid"); @@ -5782,52 +5788,52 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.centroid = true; } -#line 5786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5792 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 163: -#line 1322 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1328 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "patch"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.patch = true; } -#line 5797 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 164: -#line 1328 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1334 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "sample"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.sample = true; } -#line 5807 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5813 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 165: -#line 1333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1339 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "uniform"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqUniform; } -#line 5817 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 166: -#line 1338 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1344 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "buffer"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqBuffer; } -#line 5827 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5833 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 167: -#line 1343 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1349 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef NV_EXTENSIONS parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNVX"); @@ -5838,11 +5844,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).qualifier.storage = EvqHitAttrNV; #endif } -#line 5842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 168: -#line 1353 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1359 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef NV_EXTENSIONS parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNVX"); @@ -5853,11 +5859,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).qualifier.storage = EvqPayloadNV; #endif } -#line 5857 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5863 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 169: -#line 1363 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1369 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef NV_EXTENSIONS parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNVX"); @@ -5868,11 +5874,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).qualifier.storage = EvqPayloadInNV; #endif } -#line 5872 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5878 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 170: -#line 1373 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1379 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "shared"); parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); @@ -5885,185 +5891,185 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqShared; } -#line 5889 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5895 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 171: -#line 1385 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1391 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.coherent = true; } -#line 5898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5904 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 172: -#line 1389 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1395 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent"); (yyval.interm.type).qualifier.devicecoherent = true; } -#line 5908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 173: -#line 1394 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1400 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent"); (yyval.interm.type).qualifier.queuefamilycoherent = true; } -#line 5918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 174: -#line 1399 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1405 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent"); (yyval.interm.type).qualifier.workgroupcoherent = true; } -#line 5928 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5934 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 175: -#line 1404 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1410 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent"); (yyval.interm.type).qualifier.subgroupcoherent = true; } -#line 5938 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5944 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 176: -#line 1409 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1415 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate"); (yyval.interm.type).qualifier.nonprivate = true; } -#line 5948 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5954 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 177: -#line 1414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1420 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.volatil = true; } -#line 5957 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 178: -#line 1418 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1424 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.restrict = true; } -#line 5966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 179: -#line 1422 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1428 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.readonly = true; } -#line 5975 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5981 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 180: -#line 1426 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1432 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.writeonly = true; } -#line 5984 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5990 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 181: -#line 1430 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1436 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine"); parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine"); parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine"); (yyval.interm.type).init((yyvsp[0].lex).loc); } -#line 5995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 182: -#line 1436 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1442 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine"); parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine"); parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine"); (yyval.interm.type).init((yyvsp[-3].lex).loc); } -#line 6006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6012 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 183: -#line 1445 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1451 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.nonUniform = true; } -#line 6015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6021 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 184: -#line 1452 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1458 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // TODO } -#line 6023 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6029 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 185: -#line 1455 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1461 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // TODO: 4.0 semantics: subroutines // 1) make sure each identifier is a type declared earlier with SUBROUTINE // 2) save all of the identifiers for future comparison with the declared function } -#line 6033 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6039 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 186: -#line 1463 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1469 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); } -#line 6042 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 187: -#line 1467 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1473 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes); (yyval.interm.type) = (yyvsp[-1].interm.type); (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes; } -#line 6053 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6059 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 188: -#line 1476 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1482 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[-1].lex).loc; (yyval.interm).arraySizes = new TArraySizes; (yyval.interm).arraySizes->addInnerSize(); } -#line 6063 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6069 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 189: -#line 1481 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1487 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[-2].lex).loc; (yyval.interm).arraySizes = new TArraySizes; @@ -6072,20 +6078,20 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); (yyval.interm).arraySizes->addInnerSize(size); } -#line 6076 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6082 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 190: -#line 1489 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1495 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-2].interm); (yyval.interm).arraySizes->addInnerSize(); } -#line 6085 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6091 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 191: -#line 1493 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1499 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-3].interm); @@ -6093,1495 +6099,1495 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); (yyval.interm).arraySizes->addInnerSize(size); } -#line 6097 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 192: -#line 1503 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1509 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtVoid; } -#line 6106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 193: -#line 1507 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1513 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; } -#line 6115 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6121 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 194: -#line 1511 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1517 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; } -#line 6125 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6131 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 195: -#line 1516 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; } -#line 6135 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 196: -#line 1521 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1527 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; } -#line 6145 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6151 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 197: -#line 1526 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1532 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; } -#line 6155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 198: -#line 1531 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1537 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; } -#line 6164 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6170 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 199: -#line 1535 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1541 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; } -#line 6174 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 200: -#line 1540 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1546 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt8; } -#line 6184 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6190 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 201: -#line 1545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1551 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint8; } -#line 6194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6200 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 202: -#line 1550 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1556 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt16; } -#line 6204 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 203: -#line 1555 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1561 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint16; } -#line 6214 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 204: -#line 1560 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1566 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; } -#line 6224 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6230 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 205: -#line 1565 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1571 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; } -#line 6234 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6240 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 206: -#line 1570 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1576 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; } -#line 6244 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6250 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 207: -#line 1575 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1581 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; } -#line 6254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6260 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 208: -#line 1580 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1586 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; } -#line 6263 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 209: -#line 1584 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1590 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(2); } -#line 6273 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6279 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 210: -#line 1589 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1595 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(3); } -#line 6283 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6289 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 211: -#line 1594 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1600 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(4); } -#line 6293 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6299 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 212: -#line 1599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1605 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(2); } -#line 6304 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6310 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 213: -#line 1605 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(3); } -#line 6315 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6321 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 214: -#line 1611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1617 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(4); } -#line 6326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6332 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 215: -#line 1617 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1623 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setVector(2); } -#line 6337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6343 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 216: -#line 1623 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1629 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setVector(3); } -#line 6348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6354 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 217: -#line 1629 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1635 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setVector(4); } -#line 6359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6365 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 218: -#line 1635 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1641 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(2); } -#line 6370 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 219: -#line 1641 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1647 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(3); } -#line 6381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6387 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 220: -#line 1647 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1653 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(4); } -#line 6392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6398 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 221: -#line 1653 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1659 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(2); } -#line 6403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6409 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 222: -#line 1659 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1665 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(3); } -#line 6414 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6420 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 223: -#line 1665 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1671 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(4); } -#line 6425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 224: -#line 1671 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1677 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(2); } -#line 6435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 225: -#line 1676 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1682 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(3); } -#line 6445 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6451 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 226: -#line 1681 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1687 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(4); } -#line 6455 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 227: -#line 1686 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1692 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(2); } -#line 6465 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6471 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 228: -#line 1691 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1697 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(3); } -#line 6475 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6481 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 229: -#line 1696 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1702 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(4); } -#line 6485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6491 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 230: -#line 1701 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1707 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt8; (yyval.interm.type).setVector(2); } -#line 6496 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6502 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 231: -#line 1707 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1713 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt8; (yyval.interm.type).setVector(3); } -#line 6507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 232: -#line 1713 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1719 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt8; (yyval.interm.type).setVector(4); } -#line 6518 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6524 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 233: -#line 1719 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1725 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt16; (yyval.interm.type).setVector(2); } -#line 6529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6535 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 234: -#line 1725 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1731 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt16; (yyval.interm.type).setVector(3); } -#line 6540 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 235: -#line 1731 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1737 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt16; (yyval.interm.type).setVector(4); } -#line 6551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6557 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 236: -#line 1737 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1743 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(2); } -#line 6562 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6568 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 237: -#line 1743 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1749 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(3); } -#line 6573 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6579 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 238: -#line 1749 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1755 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(4); } -#line 6584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6590 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 239: -#line 1755 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1761 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(2); } -#line 6595 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6601 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 240: -#line 1761 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1767 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(3); } -#line 6606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6612 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 241: -#line 1767 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1773 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(4); } -#line 6617 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6623 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 242: -#line 1773 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1779 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(2); } -#line 6628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6634 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 243: -#line 1779 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1785 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(3); } -#line 6639 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6645 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 244: -#line 1785 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1791 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(4); } -#line 6650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6656 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 245: -#line 1791 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1797 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint8; (yyval.interm.type).setVector(2); } -#line 6661 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6667 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 246: -#line 1797 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1803 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint8; (yyval.interm.type).setVector(3); } -#line 6672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 247: -#line 1803 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1809 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint8; (yyval.interm.type).setVector(4); } -#line 6683 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6689 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 248: -#line 1809 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1815 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint16; (yyval.interm.type).setVector(2); } -#line 6694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6700 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 249: -#line 1815 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1821 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint16; (yyval.interm.type).setVector(3); } -#line 6705 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6711 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 250: -#line 1821 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1827 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint16; (yyval.interm.type).setVector(4); } -#line 6716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6722 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 251: -#line 1827 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1833 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(2); } -#line 6727 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6733 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 252: -#line 1833 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1839 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(3); } -#line 6738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6744 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 253: -#line 1839 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1845 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(4); } -#line 6749 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6755 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 254: -#line 1845 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1851 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(2); } -#line 6760 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6766 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 255: -#line 1851 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1857 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(3); } -#line 6771 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6777 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 256: -#line 1857 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1863 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(4); } -#line 6782 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 257: -#line 1863 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1869 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } -#line 6792 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6798 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 258: -#line 1868 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1874 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } -#line 6802 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6808 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 259: -#line 1873 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1879 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } -#line 6812 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6818 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 260: -#line 1878 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1884 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } -#line 6822 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6828 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 261: -#line 1883 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1889 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 3); } -#line 6832 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6838 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 262: -#line 1888 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1894 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 4); } -#line 6842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 263: -#line 1893 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1899 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 2); } -#line 6852 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6858 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 264: -#line 1898 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1904 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } -#line 6862 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6868 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 265: -#line 1903 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1909 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 4); } -#line 6872 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6878 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 266: -#line 1908 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1914 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 2); } -#line 6882 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6888 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 267: -#line 1913 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1919 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 3); } -#line 6892 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 268: -#line 1918 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1924 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } -#line 6902 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 269: -#line 1923 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1929 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 6913 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6919 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 270: -#line 1929 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1935 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 6924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6930 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 271: -#line 1935 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1941 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 6935 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6941 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 272: -#line 1941 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1947 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 6946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6952 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 273: -#line 1947 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1953 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 3); } -#line 6957 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 274: -#line 1953 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1959 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 4); } -#line 6968 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6974 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 275: -#line 1959 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1965 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 2); } -#line 6979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6985 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 276: -#line 1965 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1971 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 6990 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6996 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 277: -#line 1971 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1977 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 4); } -#line 7001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7007 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 278: -#line 1977 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1983 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 2); } -#line 7012 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7018 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 279: -#line 1983 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1989 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 3); } -#line 7023 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7029 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 280: -#line 1989 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1995 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 7034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7040 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 281: -#line 1995 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2001 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 2); } -#line 7045 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7051 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 282: -#line 2001 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2007 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 3); } -#line 7056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7062 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 283: -#line 2007 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2013 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 4); } -#line 7067 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7073 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 284: -#line 2013 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2019 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 2); } -#line 7078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7084 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 285: -#line 2019 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2025 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 3); } -#line 7089 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 286: -#line 2025 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2031 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 4); } -#line 7100 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 287: -#line 2031 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2037 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 2); } -#line 7111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7117 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 288: -#line 2037 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2043 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 3); } -#line 7122 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 289: -#line 2043 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2049 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 4); } -#line 7133 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 290: -#line 2049 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2055 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 2); } -#line 7144 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7150 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 291: -#line 2055 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2061 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 3); } -#line 7155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 292: -#line 2061 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2067 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 4); } -#line 7166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7172 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 293: -#line 2067 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2073 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } -#line 7177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7183 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 294: -#line 2073 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2079 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } -#line 7188 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 295: -#line 2079 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2085 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } -#line 7199 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7205 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 296: -#line 2085 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2091 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } -#line 7210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 297: -#line 2091 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2097 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 3); } -#line 7221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7227 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 298: -#line 2097 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2103 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 4); } -#line 7232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7238 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 299: -#line 2103 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2109 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 2); } -#line 7243 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 300: -#line 2109 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2115 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } -#line 7254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7260 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 301: -#line 2115 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2121 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 4); } -#line 7265 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7271 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 302: -#line 2121 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2127 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 2); } -#line 7276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 303: -#line 2127 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2133 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 3); } -#line 7287 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7293 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 304: -#line 2133 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2139 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } -#line 7298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7304 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 305: -#line 2139 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2145 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 7309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7315 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 306: -#line 2145 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2151 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 7320 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 307: -#line 2151 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2157 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 7331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 308: -#line 2157 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2163 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 7342 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 309: -#line 2163 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2169 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 3); } -#line 7353 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 310: -#line 2169 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2175 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 4); } -#line 7364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7370 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 311: -#line 2175 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 2); } -#line 7375 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 312: -#line 2181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2187 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 7386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 313: -#line 2187 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2193 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 4); } -#line 7397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 314: -#line 2193 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2199 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 2); } -#line 7408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7414 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 315: -#line 2199 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2205 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 3); } -#line 7419 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 316: -#line 2205 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2211 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 7430 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 317: -#line 2211 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2217 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef NV_EXTENSIONS (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtAccStructNV; #endif } -#line 7441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 318: -#line 2217 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2223 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtAtomicUint; } -#line 7451 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7457 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 319: -#line 2222 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2228 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D); } -#line 7461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 320: -#line 2227 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2233 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); } -#line 7471 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7477 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 321: -#line 2232 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2238 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd3D); } -#line 7481 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7487 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 322: -#line 2237 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2243 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube); } -#line 7491 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7497 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 323: -#line 2242 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2248 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true); } -#line 7501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 324: -#line 2247 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2253 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true); } -#line 7511 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7517 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 325: -#line 2252 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2258 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true); } -#line 7521 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7527 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 326: -#line 2257 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2263 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true); } -#line 7531 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7537 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 327: -#line 2262 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2268 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); } -#line 7541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7547 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 328: -#line 2267 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2273 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true); } -#line 7551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7557 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 329: -#line 2272 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2278 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); } -#line 7561 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7567 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 330: -#line 2277 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2283 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true); } -#line 7571 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7577 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 331: -#line 2282 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2288 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true); } -#line 7581 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7587 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 332: -#line 2287 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2293 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7590,11 +7596,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.set(EbtFloat16, Esd1D); #endif } -#line 7594 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 333: -#line 2295 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2301 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7603,11 +7609,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.set(EbtFloat16, Esd2D); #endif } -#line 7607 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 334: -#line 2303 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2309 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7616,11 +7622,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.set(EbtFloat16, Esd3D); #endif } -#line 7620 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 335: -#line 2311 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2317 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7629,11 +7635,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.set(EbtFloat16, EsdCube); #endif } -#line 7633 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7639 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 336: -#line 2319 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2325 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7642,11 +7648,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true); #endif } -#line 7646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7652 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 337: -#line 2327 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7655,11 +7661,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true); #endif } -#line 7659 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7665 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 338: -#line 2335 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2341 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7668,11 +7674,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true); #endif } -#line 7672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 339: -#line 2343 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2349 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7681,11 +7687,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true); #endif } -#line 7685 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7691 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 340: -#line 2351 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2357 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7694,11 +7700,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true); #endif } -#line 7698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7704 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 341: -#line 2359 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2365 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7707,11 +7713,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true); #endif } -#line 7711 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7717 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 342: -#line 2367 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2373 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7720,11 +7726,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true); #endif } -#line 7724 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7730 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 343: -#line 2375 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2381 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7733,11 +7739,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true); #endif } -#line 7737 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7743 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 344: -#line 2383 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2389 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7746,171 +7752,171 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true); #endif } -#line 7750 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 345: -#line 2391 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2397 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd1D); } -#line 7760 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7766 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 346: -#line 2396 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2402 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D); } -#line 7770 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7776 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 347: -#line 2401 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2407 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd3D); } -#line 7780 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 348: -#line 2406 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2412 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdCube); } -#line 7790 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 349: -#line 2411 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2417 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd1D, true); } -#line 7800 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 350: -#line 2416 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2422 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); } -#line 7810 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7816 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 351: -#line 2421 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2427 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdCube, true); } -#line 7820 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 352: -#line 2426 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2432 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd1D); } -#line 7830 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7836 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 353: -#line 2431 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2437 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D); } -#line 7840 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7846 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 354: -#line 2436 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2442 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd3D); } -#line 7850 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 355: -#line 2441 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2447 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdCube); } -#line 7860 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7866 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 356: -#line 2446 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2452 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd1D, true); } -#line 7870 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7876 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 357: -#line 2451 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2457 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); } -#line 7880 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 358: -#line 2456 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2462 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdCube, true); } -#line 7890 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 359: -#line 2461 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2467 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdRect); } -#line 7900 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 360: -#line 2466 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2472 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true); } -#line 7910 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7916 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 361: -#line 2471 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7919,11 +7925,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.set(EbtFloat16, EsdRect); #endif } -#line 7923 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 362: -#line 2479 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2485 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7932,41 +7938,41 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true); #endif } -#line 7936 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 363: -#line 2487 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2493 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdRect); } -#line 7946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7952 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 364: -#line 2492 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2498 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdRect); } -#line 7956 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7962 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 365: -#line 2497 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2503 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer); } -#line 7966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 366: -#line 2502 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2508 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7975,41 +7981,41 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer); #endif } -#line 7979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7985 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 367: -#line 2510 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2516 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdBuffer); } -#line 7989 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 368: -#line 2515 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2521 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdBuffer); } -#line 7999 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 369: -#line 2520 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2526 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true); } -#line 8009 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 370: -#line 2525 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2531 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -8018,41 +8024,41 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true); #endif } -#line 8022 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 371: -#line 2533 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2539 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true); } -#line 8032 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8038 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 372: -#line 2538 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2544 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true); } -#line 8042 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 373: -#line 2543 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2549 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true); } -#line 8052 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8058 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 374: -#line 2548 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2554 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -8061,61 +8067,61 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true); #endif } -#line 8065 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8071 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 375: -#line 2556 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2562 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true); } -#line 8075 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8081 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 376: -#line 2561 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2567 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true); } -#line 8085 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8091 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 377: -#line 2566 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2572 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setPureSampler(false); } -#line 8095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8101 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 378: -#line 2571 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2577 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setPureSampler(true); } -#line 8105 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 379: -#line 2576 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2582 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D); } -#line 8115 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8121 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 380: -#line 2581 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2587 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8124,21 +8130,21 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D); #endif } -#line 8128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8134 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 381: -#line 2589 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2595 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); } -#line 8138 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8144 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 382: -#line 2594 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2600 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8147,21 +8153,21 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D); #endif } -#line 8151 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8157 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 383: -#line 2602 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2608 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); } -#line 8161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8167 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 384: -#line 2607 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2613 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8170,21 +8176,21 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D); #endif } -#line 8174 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 385: -#line 2615 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2621 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); } -#line 8184 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8190 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 386: -#line 2620 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2626 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8193,21 +8199,21 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube); #endif } -#line 8197 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8203 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 387: -#line 2628 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2634 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true); } -#line 8207 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8213 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 388: -#line 2633 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2639 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8216,21 +8222,21 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true); #endif } -#line 8220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 389: -#line 2641 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2647 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); } -#line 8230 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8236 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 390: -#line 2646 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2652 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8239,21 +8245,21 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true); #endif } -#line 8243 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 391: -#line 2654 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2660 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true); } -#line 8253 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 392: -#line 2659 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2665 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8262,161 +8268,161 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true); #endif } -#line 8266 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8272 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 393: -#line 2667 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2673 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D); } -#line 8276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 394: -#line 2672 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2678 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); } -#line 8286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8292 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 395: -#line 2677 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2683 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); } -#line 8296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8302 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 396: -#line 2682 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2688 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); } -#line 8306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8312 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 397: -#line 2687 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2693 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true); } -#line 8316 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8322 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 398: -#line 2692 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2698 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); } -#line 8326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8332 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 399: -#line 2697 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2703 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true); } -#line 8336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8342 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 400: -#line 2702 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2708 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D); } -#line 8346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8352 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 401: -#line 2707 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2713 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); } -#line 8356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8362 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 402: -#line 2712 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2718 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); } -#line 8366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8372 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 403: -#line 2717 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2723 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); } -#line 8376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8382 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 404: -#line 2722 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2728 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true); } -#line 8386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 405: -#line 2727 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2733 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); } -#line 8396 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 406: -#line 2732 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2738 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true); } -#line 8406 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8412 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 407: -#line 2737 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2743 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect); } -#line 8416 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8422 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 408: -#line 2742 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2748 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8425,41 +8431,41 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect); #endif } -#line 8429 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 409: -#line 2750 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2756 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect); } -#line 8439 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8445 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 410: -#line 2755 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2761 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect); } -#line 8449 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8455 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 411: -#line 2760 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2766 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer); } -#line 8459 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8465 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 412: -#line 2765 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2771 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8468,41 +8474,41 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer); #endif } -#line 8472 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8478 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 413: -#line 2773 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2779 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer); } -#line 8482 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8488 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 414: -#line 2778 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2784 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer); } -#line 8492 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 415: -#line 2783 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2789 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true); } -#line 8502 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 416: -#line 2788 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2794 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8511,41 +8517,41 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true); #endif } -#line 8515 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8521 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 417: -#line 2796 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2802 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true); } -#line 8525 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8531 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 418: -#line 2801 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2807 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true); } -#line 8535 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 419: -#line 2806 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2812 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true); } -#line 8545 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 420: -#line 2811 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2817 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8554,41 +8560,41 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true); #endif } -#line 8558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8564 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 421: -#line 2819 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2825 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true); } -#line 8568 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8574 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 422: -#line 2824 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2830 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true); } -#line 8578 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 423: -#line 2829 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2835 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D); } -#line 8588 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8594 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 424: -#line 2834 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2840 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8597,41 +8603,41 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D); #endif } -#line 8601 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8607 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 425: -#line 2842 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2848 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd1D); } -#line 8611 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8617 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 426: -#line 2847 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2853 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd1D); } -#line 8621 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8627 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 427: -#line 2852 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2858 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D); } -#line 8631 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 428: -#line 2857 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2863 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8640,41 +8646,41 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D); #endif } -#line 8644 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 429: -#line 2865 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2871 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D); } -#line 8654 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8660 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 430: -#line 2870 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2876 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D); } -#line 8664 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8670 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 431: -#line 2875 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2881 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D); } -#line 8674 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8680 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 432: -#line 2880 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2886 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8683,41 +8689,41 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D); #endif } -#line 8687 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8693 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 433: -#line 2888 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2894 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd3D); } -#line 8697 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8703 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 434: -#line 2893 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2899 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd3D); } -#line 8707 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8713 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 435: -#line 2898 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2904 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect); } -#line 8717 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8723 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 436: -#line 2903 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2909 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8726,41 +8732,41 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect); #endif } -#line 8730 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8736 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 437: -#line 2911 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2917 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdRect); } -#line 8740 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8746 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 438: -#line 2916 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2922 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdRect); } -#line 8750 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 439: -#line 2921 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2927 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube); } -#line 8760 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8766 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 440: -#line 2926 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2932 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8769,41 +8775,41 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube); #endif } -#line 8773 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8779 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 441: -#line 2934 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2940 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdCube); } -#line 8783 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8789 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 442: -#line 2939 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2945 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdCube); } -#line 8793 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8799 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 443: -#line 2944 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2950 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer); } -#line 8803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8809 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 444: -#line 2949 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2955 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8812,41 +8818,41 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer); #endif } -#line 8816 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8822 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 445: -#line 2957 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2963 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer); } -#line 8826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8832 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 446: -#line 2962 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2968 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer); } -#line 8836 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 447: -#line 2967 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2973 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true); } -#line 8846 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8852 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 448: -#line 2972 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2978 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8855,41 +8861,41 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true); #endif } -#line 8859 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8865 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 449: -#line 2980 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2986 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true); } -#line 8869 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 450: -#line 2985 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2991 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true); } -#line 8879 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 451: -#line 2990 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2996 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true); } -#line 8889 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8895 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 452: -#line 2995 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3001 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8898,41 +8904,41 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true); #endif } -#line 8902 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 453: -#line 3003 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3009 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true); } -#line 8912 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 454: -#line 3008 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3014 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true); } -#line 8922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8928 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 455: -#line 3013 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3019 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true); } -#line 8932 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8938 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 456: -#line 3018 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3024 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8941,41 +8947,41 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true); #endif } -#line 8945 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8951 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 457: -#line 3026 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3032 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true); } -#line 8955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8961 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 458: -#line 3031 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3037 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true); } -#line 8965 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8971 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 459: -#line 3036 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3042 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true); } -#line 8975 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8981 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 460: -#line 3041 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3047 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8984,41 +8990,41 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true); #endif } -#line 8988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8994 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 461: -#line 3049 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3055 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true); } -#line 8998 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9004 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 462: -#line 3054 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3060 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true); } -#line 9008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 463: -#line 3059 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3065 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true); } -#line 9018 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 464: -#line 3064 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3070 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -9027,64 +9033,64 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true); #endif } -#line 9031 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9037 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 465: -#line 3072 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3078 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true); } -#line 9041 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9047 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 466: -#line 3077 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3083 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true); } -#line 9051 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9057 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 467: -#line 3082 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3088 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // GL_OES_EGL_image_external (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); (yyval.interm.type).sampler.external = true; } -#line 9062 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 468: -#line 3088 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3094 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat); } -#line 9073 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9079 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 469: -#line 3094 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3100 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat, true); } -#line 9084 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9090 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 470: -#line 3100 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3106 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel()); @@ -9094,11 +9100,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setSubpass(EbtFloat16); #endif } -#line 9098 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9104 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 471: -#line 3109 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3115 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel()); @@ -9108,65 +9114,65 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).sampler.setSubpass(EbtFloat16, true); #endif } -#line 9112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 472: -#line 3118 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3124 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt); } -#line 9123 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9129 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 473: -#line 3124 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3130 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt, true); } -#line 9134 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9140 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 474: -#line 3130 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3136 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint); } -#line 9145 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9151 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 475: -#line 3136 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3142 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint, true); } -#line 9156 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9162 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 476: -#line 3142 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3148 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type)); } -#line 9166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9172 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 477: -#line 3147 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3153 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // This is for user defined type names. The lexical phase looked up the @@ -9180,47 +9186,47 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); } else parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), ""); } -#line 9184 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9190 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 478: -#line 3163 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3169 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh); } -#line 9194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9200 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 479: -#line 3168 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3174 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium); } -#line 9204 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 480: -#line 3173 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3179 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow); } -#line 9214 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 481: -#line 3181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3187 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } -#line 9220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 482: -#line 3181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3187 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string); parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure); @@ -9232,17 +9238,17 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 9236 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9242 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 483: -#line 3192 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3198 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } -#line 9242 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9248 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 484: -#line 3192 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3198 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TType* structure = new TType((yyvsp[-1].interm.typeList), TString("")); (yyval.interm.type).init((yyvsp[-4].lex).loc); @@ -9250,19 +9256,19 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 9254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9260 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 485: -#line 3202 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3208 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = (yyvsp[0].interm.typeList); } -#line 9262 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 486: -#line 3205 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3211 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) { @@ -9273,11 +9279,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]); } } -#line 9277 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9283 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 487: -#line 3218 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3224 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-2].interm.type).arraySizes) { parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); @@ -9300,11 +9306,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (*(yyval.interm.typeList))[i].type->shallowCopy(type); } } -#line 9304 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9310 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 488: -#line 3240 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3246 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-2].interm.type).arraySizes) { parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); @@ -9329,38 +9335,38 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (*(yyval.interm.typeList))[i].type->shallowCopy(type); } } -#line 9333 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9339 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 489: -#line 3267 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3273 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = new TTypeList; (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } -#line 9342 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 490: -#line 3271 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3277 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } -#line 9350 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 491: -#line 3277 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3283 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeLine).type = new TType(EbtVoid); (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc; (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string); } -#line 9360 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 492: -#line 3282 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3288 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes); @@ -9369,219 +9375,219 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string); (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes); } -#line 9373 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9379 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 493: -#line 3293 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3299 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 9381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9387 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 494: -#line 3296 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3302 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { const char* initFeature = "{ } style initializers"; parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature); parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); } -#line 9392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9398 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 495: -#line 3302 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3308 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { const char* initFeature = "{ } style initializers"; parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature); parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 9403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9409 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 496: -#line 3311 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3317 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc()); } -#line 9411 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9417 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 497: -#line 3314 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3320 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); } -#line 9419 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 498: -#line 3320 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3326 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 499: -#line 3324 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3330 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9437 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 500: -#line 3325 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3331 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9437 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9443 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 501: -#line 3331 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3337 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9443 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9449 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 502: -#line 3332 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3338 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9449 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9455 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 503: -#line 3333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3339 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9455 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 504: -#line 3334 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3340 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 505: -#line 3335 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3341 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9473 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 506: -#line 3336 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3342 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9473 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 507: -#line 3337 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3343 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 508: -#line 3341 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3347 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } -#line 9485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9491 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 509: -#line 3342 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3348 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; } -#line 9494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9500 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 510: -#line 3346 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3352 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; } -#line 9503 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9509 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 511: -#line 3350 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3356 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate()) (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode); } -#line 9513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9519 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 512: -#line 3358 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3364 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9519 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9525 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 513: -#line 3359 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3365 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9525 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9531 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 514: -#line 3363 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3369 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.controlFlowNestingLevel; } -#line 9533 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9539 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 515: -#line 3366 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3372 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9542 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9548 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 516: -#line 3370 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3376 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 9552 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 517: -#line 3375 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3381 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9569 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 518: -#line 3384 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3390 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } -#line 9571 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9577 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 519: -#line 3387 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3393 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate()) (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode); } -#line 9581 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9587 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 520: -#line 3395 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3401 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode)); if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || @@ -9590,11 +9596,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case } } -#line 9594 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 521: -#line 3403 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3409 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { @@ -9603,76 +9609,76 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); } else (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); } -#line 9607 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 522: -#line 3414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3420 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } -#line 9613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 523: -#line 3415 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3421 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = static_cast((yyvsp[-1].interm.intermTypedNode)); } -#line 9619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9625 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 524: -#line 3419 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3425 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9627 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9633 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 525: -#line 3422 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3428 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9642 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 526: -#line 3428 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3434 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode)); (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc); } -#line 9645 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9651 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 527: -#line 3435 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3441 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode); } -#line 9654 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9660 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 528: -#line 3439 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3445 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); (yyval.interm.nodePair).node2 = 0; } -#line 9663 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9669 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 529: -#line 3447 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3453 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)); } -#line 9672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 530: -#line 3451 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3457 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type)); @@ -9683,28 +9689,28 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); else (yyval.interm.intermTypedNode) = 0; } -#line 9687 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9693 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 531: -#line 3464 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3470 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9695 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9701 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 532: -#line 3467 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3473 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9704 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9710 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 533: -#line 3473 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3479 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // start new switch sequence on the switch stack ++parseContext.controlFlowNestingLevel; @@ -9713,11 +9719,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.switchLevel.push_back(parseContext.statementNestingLevel); parseContext.symbolTable.push(); } -#line 9717 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9723 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 534: -#line 3481 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3487 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0); delete parseContext.switchSequenceStack.back(); @@ -9727,27 +9733,27 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 9731 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9737 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 535: -#line 3493 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3499 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } -#line 9739 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9745 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 536: -#line 3496 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3502 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9747 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9753 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 537: -#line 3502 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3508 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) @@ -9760,11 +9766,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc); } } -#line 9764 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9770 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 538: -#line 3514 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3520 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) @@ -9774,28 +9780,28 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); else (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc); } -#line 9778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9784 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 539: -#line 3526 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3532 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9792 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 540: -#line 3529 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3535 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9801 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 541: -#line 3535 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3541 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", ""); @@ -9804,11 +9810,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 9808 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9814 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 542: -#line 3543 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3549 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc); @@ -9816,21 +9822,21 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 9820 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 543: -#line 3550 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3556 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 9830 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9836 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 544: -#line 3555 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3561 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", ""); @@ -9842,22 +9848,22 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 9846 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9852 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 545: -#line 3566 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3572 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 9857 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9863 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 546: -#line 3572 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3578 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc); @@ -9870,81 +9876,81 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 9874 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9880 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 547: -#line 3587 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3593 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9882 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9888 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 548: -#line 3590 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3596 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9890 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 549: -#line 3596 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3602 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 9898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9904 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 550: -#line 3599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3605 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = 0; } -#line 9906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9912 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 551: -#line 3605 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); (yyval.interm.nodePair).node2 = 0; } -#line 9915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9921 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 552: -#line 3609 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3615 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode); } -#line 9924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9930 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 553: -#line 3616 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3622 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (parseContext.loopNestingLevel <= 0) parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", ""); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc); } -#line 9934 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9940 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 554: -#line 3621 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3627 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0) parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", ""); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc); } -#line 9944 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9950 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 555: -#line 3626 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3632 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc); if (parseContext.currentFunctionType->getBasicType() != EbtVoid) @@ -9952,83 +9958,83 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); if (parseContext.inMain) parseContext.postEntryPointReturn = true; } -#line 9956 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9962 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 556: -#line 3633 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3639 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); } -#line 9964 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9970 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 557: -#line 3636 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3642 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard"); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc); } -#line 9973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 558: -#line 3645 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3651 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } -#line 9982 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 559: -#line 3649 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3655 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[0].interm.intermNode) != nullptr) { (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } } -#line 9993 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9999 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 560: -#line 3658 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3664 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 10001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10007 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 561: -#line 3661 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3667 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 10009 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 562: -#line 3664 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3670 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon"); parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon"); (yyval.interm.intermNode) = nullptr; } -#line 10019 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10025 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 563: -#line 3672 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3678 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */); (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function); } -#line 10028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 564: -#line 3676 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3682 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // May be best done as post process phase on intermediate code if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) @@ -10044,52 +10050,52 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug); (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable); } -#line 10048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10054 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 565: -#line 3694 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3700 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = (yyvsp[-2].interm.attributes); parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute"); } -#line 10057 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10063 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 566: -#line 3700 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3706 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = (yyvsp[0].interm.attributes); } -#line 10065 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10071 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 567: -#line 3703 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3709 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes)); } -#line 10073 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10079 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 568: -#line 3708 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3714 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string); } -#line 10081 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10087 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 569: -#line 3711 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3717 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode)); } -#line 10089 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; -#line 10093 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 10099 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -10317,5 +10323,5 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); #endif return yyresult; } -#line 3715 "MachineIndependent/glslang.y" /* yacc.c:1906 */ +#line 3721 "MachineIndependent/glslang.y" /* yacc.c:1906 */ diff --git a/glslang/MachineIndependent/parseVersions.h b/glslang/MachineIndependent/parseVersions.h index f5e19769c5..3d36e50878 100644 --- a/glslang/MachineIndependent/parseVersions.h +++ b/glslang/MachineIndependent/parseVersions.h @@ -103,6 +103,9 @@ class TParseVersions { virtual void requireSpv(const TSourceLoc&, const char* op); virtual bool checkExtensionsRequested(const TSourceLoc&, int numExtensions, const char* const extensions[], const char* featureDesc); virtual void updateExtensionBehavior(const char* const extension, TExtensionBehavior); +#ifdef NV_EXTENSIONS + virtual bool validateExtensionName(const TSourceLoc&, const char* const extension); +#endif virtual void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken, const char* szExtraInfoFormat, ...) = 0; diff --git a/glslang/MachineIndependent/preprocessor/Pp.cpp b/glslang/MachineIndependent/preprocessor/Pp.cpp index 12353550df..efc81fde3e 100644 --- a/glslang/MachineIndependent/preprocessor/Pp.cpp +++ b/glslang/MachineIndependent/preprocessor/Pp.cpp @@ -874,6 +874,11 @@ int TPpContext::CPPextension(TPpToken* ppToken) return token; } +#ifdef NV_EXTENSIONS + if (!parseContext.validateExtensionName(ppToken->loc, extensionName)) + return token; +#endif + parseContext.updateExtensionBehavior(line, extensionName, ppToken->name); parseContext.notifyExtensionDirective(line, extensionName, ppToken->name); From 3ae0f583223061fef0bef88f34407b64fa1692e3 Mon Sep 17 00:00:00 2001 From: Sahil Parmar Date: Wed, 26 Sep 2018 13:38:25 -0700 Subject: [PATCH 2/4] changes based on feedback --- .../spv.320.meshShaderUserDefined.mesh.out | 205 ++++++++++ .../spv.meshShaderUserDefined.mesh.out | 360 +++++++++--------- Test/spv.320.meshShaderUserDefined.mesh | 59 +++ Test/spv.meshShaderUserDefined.mesh | 6 +- glslang/MachineIndependent/ParseHelper.cpp | 1 + glslang/MachineIndependent/Versions.cpp | 6 +- glslang/MachineIndependent/parseVersions.h | 2 +- .../MachineIndependent/preprocessor/Pp.cpp | 2 +- 8 files changed, 453 insertions(+), 188 deletions(-) create mode 100644 Test/baseResults/spv.320.meshShaderUserDefined.mesh.out create mode 100644 Test/spv.320.meshShaderUserDefined.mesh diff --git a/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out b/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out new file mode 100644 index 0000000000..ef39907213 --- /dev/null +++ b/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out @@ -0,0 +1,205 @@ +spv.meshShaderUserDefined.mesh +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 140 + + Capability MeshShadingNV + Extension "SPV_NV_mesh_shader" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint MeshNV 4 "main" 12 19 37 103 + ExecutionMode 4 LocalSize 32 1 1 + ExecutionMode 4 OutputVertices 81 + ExecutionMode 4 OutputPrimitivesNV 32 + ExecutionMode 4 OutputTrianglesNV + Source ESSL 320 + SourceExtension "GL_NV_mesh_shader" + Name 4 "main" + Name 8 "iid" + Name 12 "gl_LocalInvocationID" + Name 18 "gid" + Name 19 "gl_WorkGroupID" + Name 33 "myblock" + MemberName 33(myblock) 0 "f" + MemberName 33(myblock) 1 "fArr" + MemberName 33(myblock) 2 "pos" + MemberName 33(myblock) 3 "posArr" + MemberName 33(myblock) 4 "m" + MemberName 33(myblock) 5 "mArr" + Name 37 "blk" + Name 99 "myblock2" + MemberName 99(myblock2) 0 "f" + MemberName 99(myblock2) 1 "pos" + MemberName 99(myblock2) 2 "m" + Name 103 "blk2" + Decorate 12(gl_LocalInvocationID) BuiltIn LocalInvocationId + Decorate 19(gl_WorkGroupID) BuiltIn WorkgroupId + MemberDecorate 33(myblock) 0 PerPrimitiveNV + MemberDecorate 33(myblock) 1 PerPrimitiveNV + MemberDecorate 33(myblock) 2 PerPrimitiveNV + MemberDecorate 33(myblock) 3 PerPrimitiveNV + MemberDecorate 33(myblock) 4 PerPrimitiveNV + MemberDecorate 33(myblock) 5 PerPrimitiveNV + Decorate 33(myblock) Block + Decorate 37(blk) Location 0 + Decorate 99(myblock2) Block + Decorate 103(blk2) Location 20 + Decorate 139 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: TypeInt 32 0 + 10: TypeVector 9(int) 3 + 11: TypePointer Input 10(ivec3) +12(gl_LocalInvocationID): 11(ptr) Variable Input + 13: 9(int) Constant 0 + 14: TypePointer Input 9(int) +19(gl_WorkGroupID): 11(ptr) Variable Input + 23: TypeFloat 32 + 24: 9(int) Constant 4 + 25: TypeArray 23(float) 24 + 26: TypeVector 23(float) 3 + 27: TypeVector 23(float) 4 + 28: TypeArray 27(fvec4) 24 + 29: TypeMatrix 27(fvec4) 4 + 30: TypeMatrix 26(fvec3) 3 + 31: 9(int) Constant 2 + 32: TypeArray 30 31 + 33(myblock): TypeStruct 23(float) 25 26(fvec3) 28 29 32 + 34: 9(int) Constant 32 + 35: TypeArray 33(myblock) 34 + 36: TypePointer Output 35 + 37(blk): 36(ptr) Variable Output + 39: 6(int) Constant 0 + 40: 23(float) Constant 1093664768 + 41: TypePointer Output 23(float) + 44: 6(int) Constant 1 + 52: 6(int) Constant 2 + 54: 23(float) Constant 1096810496 + 55: 23(float) Constant 1097859072 + 56: 23(float) Constant 1095761920 + 57: 26(fvec3) ConstantComposite 54 55 56 + 58: TypePointer Output 26(fvec3) + 64: 6(int) Constant 3 + 69: TypePointer Output 27(fvec4) + 74: 6(int) Constant 4 + 76: 23(float) Constant 1098907648 + 77: 27(fvec4) ConstantComposite 56 54 55 76 + 82: 6(int) Constant 5 + 85: 9(int) Constant 3 + 88: 9(int) Constant 1 + 93: 23(float) Constant 1099431936 + 94: 23(float) Constant 1099956224 + 95: 23(float) Constant 1100480512 + 96: 26(fvec3) ConstantComposite 93 94 95 + 98: 9(int) Constant 264 + 99(myblock2): TypeStruct 23(float) 27(fvec4) 29 + 100: 9(int) Constant 81 + 101: TypeArray 99(myblock2) 100 + 102: TypePointer Output 101 + 103(blk2): 102(ptr) Variable Output + 109: 23(float) Constant 1101004800 + 113: 23(float) Constant 1101529088 + 114: 23(float) Constant 1102053376 + 115: 23(float) Constant 1102577664 + 116: 23(float) Constant 1103101952 + 117: 27(fvec4) ConstantComposite 113 114 115 116 + 129: 23(float) Constant 1105723392 + 139: 10(ivec3) ConstantComposite 34 88 88 + 4(main): 2 Function None 3 + 5: Label + 8(iid): 7(ptr) Variable Function + 18(gid): 7(ptr) Variable Function + 15: 14(ptr) AccessChain 12(gl_LocalInvocationID) 13 + 16: 9(int) Load 15 + 17: 6(int) Bitcast 16 + Store 8(iid) 17 + 20: 14(ptr) AccessChain 19(gl_WorkGroupID) 13 + 21: 9(int) Load 20 + 22: 6(int) Bitcast 21 + Store 18(gid) 22 + 38: 6(int) Load 8(iid) + 42: 41(ptr) AccessChain 37(blk) 38 39 + Store 42 40 + 43: 6(int) Load 8(iid) + 45: 6(int) IAdd 43 44 + 46: 6(int) Load 18(gid) + 47: 6(int) Load 8(iid) + 48: 41(ptr) AccessChain 37(blk) 47 39 + 49: 23(float) Load 48 + 50: 41(ptr) AccessChain 37(blk) 45 44 46 + Store 50 49 + 51: 6(int) Load 8(iid) + 53: 6(int) SDiv 51 52 + 59: 58(ptr) AccessChain 37(blk) 53 52 + 60: 26(fvec3) Load 59 + 61: 26(fvec3) VectorShuffle 60 57 5 3 4 + Store 59 61 + 62: 6(int) Load 8(iid) + 63: 6(int) IMul 62 52 + 65: 6(int) Load 8(iid) + 66: 6(int) SDiv 65 52 + 67: 58(ptr) AccessChain 37(blk) 66 52 + 68: 26(fvec3) Load 67 + 70: 69(ptr) AccessChain 37(blk) 63 64 44 + 71: 27(fvec4) Load 70 + 72: 27(fvec4) VectorShuffle 71 68 0 4 5 6 + Store 70 72 + 73: 6(int) Load 8(iid) + 75: 6(int) SDiv 73 74 + 78: 69(ptr) AccessChain 37(blk) 75 74 52 + 79: 27(fvec4) Load 78 + 80: 27(fvec4) VectorShuffle 79 77 7 6 5 4 + Store 78 80 + 81: 6(int) Load 8(iid) + 83: 6(int) Load 8(iid) + 84: 6(int) SDiv 83 74 + 86: 41(ptr) AccessChain 37(blk) 84 74 52 85 + 87: 23(float) Load 86 + 89: 41(ptr) AccessChain 37(blk) 81 82 39 44 88 + Store 89 87 + 90: 6(int) Load 8(iid) + 91: 6(int) IMul 90 74 + 92: 6(int) Load 18(gid) + 97: 58(ptr) AccessChain 37(blk) 91 82 44 92 + Store 97 96 + MemoryBarrier 88 98 + ControlBarrier 31 31 98 + 104: 6(int) Load 8(iid) + 105: 6(int) Load 8(iid) + 106: 6(int) ISub 105 44 + 107: 41(ptr) AccessChain 103(blk2) 106 39 + 108: 23(float) Load 107 + 110: 23(float) FAdd 108 109 + 111: 41(ptr) AccessChain 103(blk2) 104 39 + Store 111 110 + 112: 6(int) Load 8(iid) + 118: 69(ptr) AccessChain 103(blk2) 112 44 + Store 118 117 + 119: 6(int) Load 8(iid) + 120: 6(int) IAdd 119 44 + 121: 6(int) Load 18(gid) + 122: 6(int) Load 8(iid) + 123: 69(ptr) AccessChain 103(blk2) 122 44 + 124: 27(fvec4) Load 123 + 125: 69(ptr) AccessChain 103(blk2) 120 52 121 + Store 125 124 + 126: 6(int) Load 8(iid) + 127: 6(int) IAdd 126 44 + 128: 6(int) Load 18(gid) + 130: 41(ptr) AccessChain 103(blk2) 127 52 128 31 + Store 130 129 + 131: 6(int) Load 8(iid) + 132: 6(int) IAdd 131 52 + 133: 6(int) Load 8(iid) + 134: 6(int) IAdd 133 44 + 135: 6(int) Load 18(gid) + 136: 69(ptr) AccessChain 103(blk2) 134 52 135 + 137: 27(fvec4) Load 136 + 138: 69(ptr) AccessChain 103(blk2) 132 52 64 + Store 138 137 + MemoryBarrier 88 98 + ControlBarrier 31 31 98 + Return + FunctionEnd diff --git a/Test/baseResults/spv.meshShaderUserDefined.mesh.out b/Test/baseResults/spv.meshShaderUserDefined.mesh.out index ef39907213..c3ec91507f 100644 --- a/Test/baseResults/spv.meshShaderUserDefined.mesh.out +++ b/Test/baseResults/spv.meshShaderUserDefined.mesh.out @@ -1,205 +1,203 @@ spv.meshShaderUserDefined.mesh // Module Version 10000 // Generated by (magic number): 80007 -// Id's are bound by 140 +// Id's are bound by 138 Capability MeshShadingNV Extension "SPV_NV_mesh_shader" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint MeshNV 4 "main" 12 19 37 103 + EntryPoint MeshNV 4 "main" 11 17 34 101 ExecutionMode 4 LocalSize 32 1 1 ExecutionMode 4 OutputVertices 81 ExecutionMode 4 OutputPrimitivesNV 32 ExecutionMode 4 OutputTrianglesNV - Source ESSL 320 + Source GLSL 450 SourceExtension "GL_NV_mesh_shader" Name 4 "main" Name 8 "iid" - Name 12 "gl_LocalInvocationID" - Name 18 "gid" - Name 19 "gl_WorkGroupID" - Name 33 "myblock" - MemberName 33(myblock) 0 "f" - MemberName 33(myblock) 1 "fArr" - MemberName 33(myblock) 2 "pos" - MemberName 33(myblock) 3 "posArr" - MemberName 33(myblock) 4 "m" - MemberName 33(myblock) 5 "mArr" - Name 37 "blk" - Name 99 "myblock2" - MemberName 99(myblock2) 0 "f" - MemberName 99(myblock2) 1 "pos" - MemberName 99(myblock2) 2 "m" - Name 103 "blk2" - Decorate 12(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 19(gl_WorkGroupID) BuiltIn WorkgroupId - MemberDecorate 33(myblock) 0 PerPrimitiveNV - MemberDecorate 33(myblock) 1 PerPrimitiveNV - MemberDecorate 33(myblock) 2 PerPrimitiveNV - MemberDecorate 33(myblock) 3 PerPrimitiveNV - MemberDecorate 33(myblock) 4 PerPrimitiveNV - MemberDecorate 33(myblock) 5 PerPrimitiveNV - Decorate 33(myblock) Block - Decorate 37(blk) Location 0 - Decorate 99(myblock2) Block - Decorate 103(blk2) Location 20 - Decorate 139 BuiltIn WorkgroupSize + Name 11 "gl_LocalInvocationID" + Name 16 "gid" + Name 17 "gl_WorkGroupID" + Name 30 "myblock" + MemberName 30(myblock) 0 "f" + MemberName 30(myblock) 1 "fArr" + MemberName 30(myblock) 2 "pos" + MemberName 30(myblock) 3 "posArr" + MemberName 30(myblock) 4 "m" + MemberName 30(myblock) 5 "mArr" + Name 34 "blk" + Name 97 "myblock2" + MemberName 97(myblock2) 0 "f" + MemberName 97(myblock2) 1 "pos" + MemberName 97(myblock2) 2 "m" + Name 101 "blk2" + Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId + Decorate 17(gl_WorkGroupID) BuiltIn WorkgroupId + MemberDecorate 30(myblock) 0 PerPrimitiveNV + MemberDecorate 30(myblock) 1 PerPrimitiveNV + MemberDecorate 30(myblock) 2 PerPrimitiveNV + MemberDecorate 30(myblock) 3 PerPrimitiveNV + MemberDecorate 30(myblock) 4 PerPrimitiveNV + MemberDecorate 30(myblock) 5 PerPrimitiveNV + Decorate 30(myblock) Block + Decorate 34(blk) Location 0 + Decorate 97(myblock2) Block + Decorate 101(blk2) Location 20 + Decorate 137 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 - 6: TypeInt 32 1 + 6: TypeInt 32 0 7: TypePointer Function 6(int) - 9: TypeInt 32 0 - 10: TypeVector 9(int) 3 - 11: TypePointer Input 10(ivec3) -12(gl_LocalInvocationID): 11(ptr) Variable Input - 13: 9(int) Constant 0 - 14: TypePointer Input 9(int) -19(gl_WorkGroupID): 11(ptr) Variable Input - 23: TypeFloat 32 - 24: 9(int) Constant 4 - 25: TypeArray 23(float) 24 - 26: TypeVector 23(float) 3 - 27: TypeVector 23(float) 4 - 28: TypeArray 27(fvec4) 24 - 29: TypeMatrix 27(fvec4) 4 - 30: TypeMatrix 26(fvec3) 3 - 31: 9(int) Constant 2 - 32: TypeArray 30 31 - 33(myblock): TypeStruct 23(float) 25 26(fvec3) 28 29 32 - 34: 9(int) Constant 32 - 35: TypeArray 33(myblock) 34 - 36: TypePointer Output 35 - 37(blk): 36(ptr) Variable Output - 39: 6(int) Constant 0 - 40: 23(float) Constant 1093664768 - 41: TypePointer Output 23(float) - 44: 6(int) Constant 1 - 52: 6(int) Constant 2 - 54: 23(float) Constant 1096810496 - 55: 23(float) Constant 1097859072 - 56: 23(float) Constant 1095761920 - 57: 26(fvec3) ConstantComposite 54 55 56 - 58: TypePointer Output 26(fvec3) - 64: 6(int) Constant 3 - 69: TypePointer Output 27(fvec4) - 74: 6(int) Constant 4 - 76: 23(float) Constant 1098907648 - 77: 27(fvec4) ConstantComposite 56 54 55 76 - 82: 6(int) Constant 5 - 85: 9(int) Constant 3 - 88: 9(int) Constant 1 - 93: 23(float) Constant 1099431936 - 94: 23(float) Constant 1099956224 - 95: 23(float) Constant 1100480512 - 96: 26(fvec3) ConstantComposite 93 94 95 - 98: 9(int) Constant 264 - 99(myblock2): TypeStruct 23(float) 27(fvec4) 29 - 100: 9(int) Constant 81 - 101: TypeArray 99(myblock2) 100 - 102: TypePointer Output 101 - 103(blk2): 102(ptr) Variable Output - 109: 23(float) Constant 1101004800 - 113: 23(float) Constant 1101529088 - 114: 23(float) Constant 1102053376 - 115: 23(float) Constant 1102577664 - 116: 23(float) Constant 1103101952 - 117: 27(fvec4) ConstantComposite 113 114 115 116 - 129: 23(float) Constant 1105723392 - 139: 10(ivec3) ConstantComposite 34 88 88 + 9: TypeVector 6(int) 3 + 10: TypePointer Input 9(ivec3) +11(gl_LocalInvocationID): 10(ptr) Variable Input + 12: 6(int) Constant 0 + 13: TypePointer Input 6(int) +17(gl_WorkGroupID): 10(ptr) Variable Input + 20: TypeFloat 32 + 21: 6(int) Constant 4 + 22: TypeArray 20(float) 21 + 23: TypeVector 20(float) 3 + 24: TypeVector 20(float) 4 + 25: TypeArray 24(fvec4) 21 + 26: TypeMatrix 24(fvec4) 4 + 27: TypeMatrix 23(fvec3) 3 + 28: 6(int) Constant 2 + 29: TypeArray 27 28 + 30(myblock): TypeStruct 20(float) 22 23(fvec3) 25 26 29 + 31: 6(int) Constant 32 + 32: TypeArray 30(myblock) 31 + 33: TypePointer Output 32 + 34(blk): 33(ptr) Variable Output + 36: TypeInt 32 1 + 37: 36(int) Constant 0 + 38: 20(float) Constant 1093664768 + 39: TypePointer Output 20(float) + 42: 6(int) Constant 1 + 44: 36(int) Constant 1 + 52: 36(int) Constant 2 + 53: 20(float) Constant 1096810496 + 54: 20(float) Constant 1097859072 + 55: 20(float) Constant 1095761920 + 56: 23(fvec3) ConstantComposite 53 54 55 + 57: TypePointer Output 23(fvec3) + 63: 36(int) Constant 3 + 68: TypePointer Output 24(fvec4) + 74: 36(int) Constant 4 + 75: 20(float) Constant 1098907648 + 76: 24(fvec4) ConstantComposite 55 53 54 75 + 81: 36(int) Constant 5 + 84: 6(int) Constant 3 + 91: 20(float) Constant 1099431936 + 92: 20(float) Constant 1099956224 + 93: 20(float) Constant 1100480512 + 94: 23(fvec3) ConstantComposite 91 92 93 + 96: 6(int) Constant 264 + 97(myblock2): TypeStruct 20(float) 24(fvec4) 26 + 98: 6(int) Constant 81 + 99: TypeArray 97(myblock2) 98 + 100: TypePointer Output 99 + 101(blk2): 100(ptr) Variable Output + 107: 20(float) Constant 1101004800 + 111: 20(float) Constant 1101529088 + 112: 20(float) Constant 1102053376 + 113: 20(float) Constant 1102577664 + 114: 20(float) Constant 1103101952 + 115: 24(fvec4) ConstantComposite 111 112 113 114 + 127: 20(float) Constant 1105723392 + 137: 9(ivec3) ConstantComposite 31 42 42 4(main): 2 Function None 3 5: Label 8(iid): 7(ptr) Variable Function - 18(gid): 7(ptr) Variable Function - 15: 14(ptr) AccessChain 12(gl_LocalInvocationID) 13 - 16: 9(int) Load 15 - 17: 6(int) Bitcast 16 - Store 8(iid) 17 - 20: 14(ptr) AccessChain 19(gl_WorkGroupID) 13 - 21: 9(int) Load 20 - 22: 6(int) Bitcast 21 - Store 18(gid) 22 - 38: 6(int) Load 8(iid) - 42: 41(ptr) AccessChain 37(blk) 38 39 - Store 42 40 - 43: 6(int) Load 8(iid) - 45: 6(int) IAdd 43 44 - 46: 6(int) Load 18(gid) - 47: 6(int) Load 8(iid) - 48: 41(ptr) AccessChain 37(blk) 47 39 - 49: 23(float) Load 48 - 50: 41(ptr) AccessChain 37(blk) 45 44 46 - Store 50 49 - 51: 6(int) Load 8(iid) - 53: 6(int) SDiv 51 52 - 59: 58(ptr) AccessChain 37(blk) 53 52 - 60: 26(fvec3) Load 59 - 61: 26(fvec3) VectorShuffle 60 57 5 3 4 - Store 59 61 - 62: 6(int) Load 8(iid) - 63: 6(int) IMul 62 52 - 65: 6(int) Load 8(iid) - 66: 6(int) SDiv 65 52 - 67: 58(ptr) AccessChain 37(blk) 66 52 - 68: 26(fvec3) Load 67 - 70: 69(ptr) AccessChain 37(blk) 63 64 44 - 71: 27(fvec4) Load 70 - 72: 27(fvec4) VectorShuffle 71 68 0 4 5 6 - Store 70 72 - 73: 6(int) Load 8(iid) - 75: 6(int) SDiv 73 74 - 78: 69(ptr) AccessChain 37(blk) 75 74 52 - 79: 27(fvec4) Load 78 - 80: 27(fvec4) VectorShuffle 79 77 7 6 5 4 - Store 78 80 - 81: 6(int) Load 8(iid) - 83: 6(int) Load 8(iid) - 84: 6(int) SDiv 83 74 - 86: 41(ptr) AccessChain 37(blk) 84 74 52 85 - 87: 23(float) Load 86 - 89: 41(ptr) AccessChain 37(blk) 81 82 39 44 88 - Store 89 87 - 90: 6(int) Load 8(iid) - 91: 6(int) IMul 90 74 - 92: 6(int) Load 18(gid) - 97: 58(ptr) AccessChain 37(blk) 91 82 44 92 - Store 97 96 - MemoryBarrier 88 98 - ControlBarrier 31 31 98 - 104: 6(int) Load 8(iid) - 105: 6(int) Load 8(iid) - 106: 6(int) ISub 105 44 - 107: 41(ptr) AccessChain 103(blk2) 106 39 - 108: 23(float) Load 107 - 110: 23(float) FAdd 108 109 - 111: 41(ptr) AccessChain 103(blk2) 104 39 - Store 111 110 - 112: 6(int) Load 8(iid) - 118: 69(ptr) AccessChain 103(blk2) 112 44 - Store 118 117 - 119: 6(int) Load 8(iid) - 120: 6(int) IAdd 119 44 - 121: 6(int) Load 18(gid) - 122: 6(int) Load 8(iid) - 123: 69(ptr) AccessChain 103(blk2) 122 44 - 124: 27(fvec4) Load 123 - 125: 69(ptr) AccessChain 103(blk2) 120 52 121 - Store 125 124 - 126: 6(int) Load 8(iid) - 127: 6(int) IAdd 126 44 - 128: 6(int) Load 18(gid) - 130: 41(ptr) AccessChain 103(blk2) 127 52 128 31 - Store 130 129 + 16(gid): 7(ptr) Variable Function + 14: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12 + 15: 6(int) Load 14 + Store 8(iid) 15 + 18: 13(ptr) AccessChain 17(gl_WorkGroupID) 12 + 19: 6(int) Load 18 + Store 16(gid) 19 + 35: 6(int) Load 8(iid) + 40: 39(ptr) AccessChain 34(blk) 35 37 + Store 40 38 + 41: 6(int) Load 8(iid) + 43: 6(int) IAdd 41 42 + 45: 6(int) Load 16(gid) + 46: 6(int) Load 8(iid) + 47: 39(ptr) AccessChain 34(blk) 46 37 + 48: 20(float) Load 47 + 49: 39(ptr) AccessChain 34(blk) 43 44 45 + Store 49 48 + 50: 6(int) Load 8(iid) + 51: 6(int) UDiv 50 28 + 58: 57(ptr) AccessChain 34(blk) 51 52 + 59: 23(fvec3) Load 58 + 60: 23(fvec3) VectorShuffle 59 56 5 3 4 + Store 58 60 + 61: 6(int) Load 8(iid) + 62: 6(int) IMul 61 28 + 64: 6(int) Load 8(iid) + 65: 6(int) UDiv 64 28 + 66: 57(ptr) AccessChain 34(blk) 65 52 + 67: 23(fvec3) Load 66 + 69: 68(ptr) AccessChain 34(blk) 62 63 44 + 70: 24(fvec4) Load 69 + 71: 24(fvec4) VectorShuffle 70 67 0 4 5 6 + Store 69 71 + 72: 6(int) Load 8(iid) + 73: 6(int) UDiv 72 21 + 77: 68(ptr) AccessChain 34(blk) 73 74 52 + 78: 24(fvec4) Load 77 + 79: 24(fvec4) VectorShuffle 78 76 7 6 5 4 + Store 77 79 + 80: 6(int) Load 8(iid) + 82: 6(int) Load 8(iid) + 83: 6(int) UDiv 82 21 + 85: 39(ptr) AccessChain 34(blk) 83 74 52 84 + 86: 20(float) Load 85 + 87: 39(ptr) AccessChain 34(blk) 80 81 37 44 42 + Store 87 86 + 88: 6(int) Load 8(iid) + 89: 6(int) IMul 88 21 + 90: 6(int) Load 16(gid) + 95: 57(ptr) AccessChain 34(blk) 89 81 44 90 + Store 95 94 + MemoryBarrier 42 96 + ControlBarrier 28 28 96 + 102: 6(int) Load 8(iid) + 103: 6(int) Load 8(iid) + 104: 6(int) ISub 103 42 + 105: 39(ptr) AccessChain 101(blk2) 104 37 + 106: 20(float) Load 105 + 108: 20(float) FAdd 106 107 + 109: 39(ptr) AccessChain 101(blk2) 102 37 + Store 109 108 + 110: 6(int) Load 8(iid) + 116: 68(ptr) AccessChain 101(blk2) 110 44 + Store 116 115 + 117: 6(int) Load 8(iid) + 118: 6(int) IAdd 117 42 + 119: 6(int) Load 16(gid) + 120: 6(int) Load 8(iid) + 121: 68(ptr) AccessChain 101(blk2) 120 44 + 122: 24(fvec4) Load 121 + 123: 68(ptr) AccessChain 101(blk2) 118 52 119 + Store 123 122 + 124: 6(int) Load 8(iid) + 125: 6(int) IAdd 124 42 + 126: 6(int) Load 16(gid) + 128: 39(ptr) AccessChain 101(blk2) 125 52 126 28 + Store 128 127 + 129: 6(int) Load 8(iid) + 130: 6(int) IAdd 129 28 131: 6(int) Load 8(iid) - 132: 6(int) IAdd 131 52 - 133: 6(int) Load 8(iid) - 134: 6(int) IAdd 133 44 - 135: 6(int) Load 18(gid) - 136: 69(ptr) AccessChain 103(blk2) 134 52 135 - 137: 27(fvec4) Load 136 - 138: 69(ptr) AccessChain 103(blk2) 132 52 64 - Store 138 137 - MemoryBarrier 88 98 - ControlBarrier 31 31 98 + 132: 6(int) IAdd 131 42 + 133: 6(int) Load 16(gid) + 134: 68(ptr) AccessChain 101(blk2) 132 52 133 + 135: 24(fvec4) Load 134 + 136: 68(ptr) AccessChain 101(blk2) 130 52 63 + Store 136 135 + MemoryBarrier 42 96 + ControlBarrier 28 28 96 Return FunctionEnd diff --git a/Test/spv.320.meshShaderUserDefined.mesh b/Test/spv.320.meshShaderUserDefined.mesh new file mode 100644 index 0000000000..60a145290e --- /dev/null +++ b/Test/spv.320.meshShaderUserDefined.mesh @@ -0,0 +1,59 @@ +#version 320 es + +#define MAX_VER 81 +#define MAX_PRIM 32 + +#define BARRIER() \ + memoryBarrierShared(); \ + barrier(); + +#extension GL_NV_mesh_shader : enable + +layout(local_size_x = 32) in; + +layout(max_vertices=MAX_VER) out; +layout(max_primitives=MAX_PRIM) out; +layout(triangles) out; + +// test use of user defined interface out blocks: + +// per-primitive block +perprimitiveNV layout(location=0) out myblock { + float f; + float fArr[4]; + vec3 pos; + vec4 posArr[4]; + mat4 m; + mat3 mArr[2]; +} blk[]; + +// per-vertex block +layout(location=20) out myblock2 { + float f; + vec4 pos; + mat4 m; +} blk2[]; + +void main() +{ + int iid = int(gl_LocalInvocationID.x); + int gid = int(gl_WorkGroupID.x); + + blk[iid].f = 11.0; + blk[iid+1].fArr[gid] = blk[iid].f; + blk[iid/2].pos.yzx = vec3(14.0, 15.0, 13.0); + blk[iid*2].posArr[1].yzw = blk[iid/2].pos; + blk[iid/4].m[2].wzyx = vec4(13.0, 14.0, 15.0, 16.0); + blk[iid].mArr[0][1][1] = blk[iid/4].m[2].w; + blk[iid*4].mArr[1][gid] = vec3(17.0, 18.0, 19.0); + + BARRIER(); + + blk2[iid].f = blk2[iid-1].f + 20.0; + blk2[iid].pos = vec4(21.0, 22.0, 23.0, 24.0); + blk2[iid+1].m[gid] = blk2[iid].pos; + blk2[iid+1].m[gid][2] = 29.0; + blk2[iid+2].m[3] = blk2[iid+1].m[gid]; + + BARRIER(); +} diff --git a/Test/spv.meshShaderUserDefined.mesh b/Test/spv.meshShaderUserDefined.mesh index 60a145290e..8b0937dbcc 100644 --- a/Test/spv.meshShaderUserDefined.mesh +++ b/Test/spv.meshShaderUserDefined.mesh @@ -1,4 +1,4 @@ -#version 320 es +#version 450 #define MAX_VER 81 #define MAX_PRIM 32 @@ -36,8 +36,8 @@ layout(location=20) out myblock2 { void main() { - int iid = int(gl_LocalInvocationID.x); - int gid = int(gl_WorkGroupID.x); + uint iid = gl_LocalInvocationID.x; + uint gid = gl_WorkGroupID.x; blk[iid].f = 11.0; blk[iid+1].fArr[gid] = blk[iid].f; diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 3a0fa434de..9f9e5c5ca8 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -3606,6 +3606,7 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua if ((profile == EEsProfile && version >= 320) || extensionTurnedOn(E_GL_NV_mesh_shader)) return; + break; #endif default: break; diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp index 4d7dd8b1f0..6182f81047 100644 --- a/glslang/MachineIndependent/Versions.cpp +++ b/glslang/MachineIndependent/Versions.cpp @@ -835,8 +835,8 @@ void TParseVersions::updateExtensionBehavior(const char* extension, TExtensionBe } #ifdef NV_EXTENSIONS -// Validate if extension name is used with correct shader stage. -bool TParseVersions::validateExtensionName(const TSourceLoc& loc, const char * const extension) +// Check if extension is used with correct shader stage. +bool TParseVersions::checkShaderStageForNVExtensions(const TSourceLoc& loc, const char * const extension) { int lNumErrors = getNumErrors(); @@ -845,6 +845,8 @@ bool TParseVersions::validateExtensionName(const TSourceLoc& loc, const char * c requireStage(loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "#extension GL_NV_mesh_shader"); + // TODO: need to add error checks for other nvidia turing extensions + if (getNumErrors() > lNumErrors) return false; return true; diff --git a/glslang/MachineIndependent/parseVersions.h b/glslang/MachineIndependent/parseVersions.h index 3d36e50878..4504803772 100644 --- a/glslang/MachineIndependent/parseVersions.h +++ b/glslang/MachineIndependent/parseVersions.h @@ -104,7 +104,7 @@ class TParseVersions { virtual bool checkExtensionsRequested(const TSourceLoc&, int numExtensions, const char* const extensions[], const char* featureDesc); virtual void updateExtensionBehavior(const char* const extension, TExtensionBehavior); #ifdef NV_EXTENSIONS - virtual bool validateExtensionName(const TSourceLoc&, const char* const extension); + virtual bool checkShaderStageForNVExtensions(const TSourceLoc&, const char* const extension); #endif virtual void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken, diff --git a/glslang/MachineIndependent/preprocessor/Pp.cpp b/glslang/MachineIndependent/preprocessor/Pp.cpp index efc81fde3e..7f39c34a0f 100644 --- a/glslang/MachineIndependent/preprocessor/Pp.cpp +++ b/glslang/MachineIndependent/preprocessor/Pp.cpp @@ -875,7 +875,7 @@ int TPpContext::CPPextension(TPpToken* ppToken) } #ifdef NV_EXTENSIONS - if (!parseContext.validateExtensionName(ppToken->loc, extensionName)) + if (!parseContext.checkShaderStageForNVExtensions(ppToken->loc, extensionName)) return token; #endif From 251344f692fa63ebc2dbb0161eda2c33344436b1 Mon Sep 17 00:00:00 2001 From: Sahil Parmar Date: Wed, 26 Sep 2018 16:12:51 -0700 Subject: [PATCH 3/4] Call checkShaderStageForNVExtensions() from function updateExtensionBehavior() --- glslang/MachineIndependent/Versions.cpp | 5 +++++ glslang/MachineIndependent/preprocessor/Pp.cpp | 5 ----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp index 6182f81047..30e0085325 100644 --- a/glslang/MachineIndependent/Versions.cpp +++ b/glslang/MachineIndependent/Versions.cpp @@ -742,6 +742,11 @@ void TParseVersions::updateExtensionBehavior(int line, const char* extension, co return; } +#ifdef NV_EXTENSIONS + if (!checkShaderStageForNVExtensions(getCurrentLoc(), extension)) + return; +#endif + // update the requested extension updateExtensionBehavior(extension, behavior); diff --git a/glslang/MachineIndependent/preprocessor/Pp.cpp b/glslang/MachineIndependent/preprocessor/Pp.cpp index 7f39c34a0f..12353550df 100644 --- a/glslang/MachineIndependent/preprocessor/Pp.cpp +++ b/glslang/MachineIndependent/preprocessor/Pp.cpp @@ -874,11 +874,6 @@ int TPpContext::CPPextension(TPpToken* ppToken) return token; } -#ifdef NV_EXTENSIONS - if (!parseContext.checkShaderStageForNVExtensions(ppToken->loc, extensionName)) - return token; -#endif - parseContext.updateExtensionBehavior(line, extensionName, ppToken->name); parseContext.notifyExtensionDirective(line, extensionName, ppToken->name); From 80b9872cb4830aef31b6d7b1b4c506de5fd3b833 Mon Sep 17 00:00:00 2001 From: Sahil Parmar Date: Thu, 27 Sep 2018 11:08:13 -0700 Subject: [PATCH 4/4] Based on feedback rename checkShaderStageForNVExtensions to checkExtensionStage Also continue error checking post requireStage() check --- glslang/MachineIndependent/Versions.cpp | 20 +++++--------------- glslang/MachineIndependent/parseVersions.h | 4 +--- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp index 30e0085325..9ca20a5957 100644 --- a/glslang/MachineIndependent/Versions.cpp +++ b/glslang/MachineIndependent/Versions.cpp @@ -742,10 +742,8 @@ void TParseVersions::updateExtensionBehavior(int line, const char* extension, co return; } -#ifdef NV_EXTENSIONS - if (!checkShaderStageForNVExtensions(getCurrentLoc(), extension)) - return; -#endif + // check if extension is used with correct shader stage + checkExtensionStage(getCurrentLoc(), extension); // update the requested extension updateExtensionBehavior(extension, behavior); @@ -839,24 +837,16 @@ void TParseVersions::updateExtensionBehavior(const char* extension, TExtensionBe } } -#ifdef NV_EXTENSIONS // Check if extension is used with correct shader stage. -bool TParseVersions::checkShaderStageForNVExtensions(const TSourceLoc& loc, const char * const extension) +void TParseVersions::checkExtensionStage(const TSourceLoc& loc, const char * const extension) { - int lNumErrors = getNumErrors(); - +#ifdef NV_EXTENSIONS // GL_NV_mesh_shader extension is only allowed in task/mesh shaders if (strcmp(extension, "GL_NV_mesh_shader") == 0) requireStage(loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "#extension GL_NV_mesh_shader"); - - // TODO: need to add error checks for other nvidia turing extensions - - if (getNumErrors() > lNumErrors) - return false; - return true; -} #endif +} // Call for any operation needing full GLSL integer data-type support. void TParseVersions::fullIntegerCheck(const TSourceLoc& loc, const char* op) diff --git a/glslang/MachineIndependent/parseVersions.h b/glslang/MachineIndependent/parseVersions.h index 4504803772..be468da533 100644 --- a/glslang/MachineIndependent/parseVersions.h +++ b/glslang/MachineIndependent/parseVersions.h @@ -103,9 +103,7 @@ class TParseVersions { virtual void requireSpv(const TSourceLoc&, const char* op); virtual bool checkExtensionsRequested(const TSourceLoc&, int numExtensions, const char* const extensions[], const char* featureDesc); virtual void updateExtensionBehavior(const char* const extension, TExtensionBehavior); -#ifdef NV_EXTENSIONS - virtual bool checkShaderStageForNVExtensions(const TSourceLoc&, const char* const extension); -#endif + virtual void checkExtensionStage(const TSourceLoc&, const char* const extension); virtual void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken, const char* szExtraInfoFormat, ...) = 0;