diff --git a/SPIRV/GLSL.ext.KHR.h b/SPIRV/GLSL.ext.KHR.h old mode 100644 new mode 100755 index d8ea9b67d60d129f678d2e427fc1993e6af02d8f..ec0c06d3748892baac388a32cda2ca1651f6ebde --- a/SPIRV/GLSL.ext.KHR.h +++ b/SPIRV/GLSL.ext.KHR.h @@ -36,6 +36,7 @@ static const char* const E_SPV_KHR_device_group = "SPV_KHR_devic static const char* const E_SPV_KHR_multiview = "SPV_KHR_multiview"; static const char* const E_SPV_KHR_shader_draw_parameters = "SPV_KHR_shader_draw_parameters"; static const char* const E_SPV_KHR_16bit_storage = "SPV_KHR_16bit_storage"; +static const char* const E_SPV_KHR_8bit_storage = "SPV_KHR_8bit_storage"; static const char* const E_SPV_KHR_storage_buffer_storage_class = "SPV_KHR_storage_buffer_storage_class"; static const char* const E_SPV_KHR_post_depth_coverage = "SPV_KHR_post_depth_coverage"; diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index ec1b5308d912590930d01b2e5726a63082768760..d5fb1ac78146d1aa0b07cb3e6dac283eb111a721 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -2507,6 +2507,20 @@ spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol* } } + const bool contains8BitType = node->getType().containsBasicType(glslang::EbtInt8) || + node->getType().containsBasicType(glslang::EbtUint8); + if (contains8BitType) { + if (storageClass == spv::StorageClassPushConstant) { + builder.addExtension(spv::E_SPV_KHR_8bit_storage); + builder.addCapability(spv::CapabilityStoragePushConstant8); + } else if (storageClass == spv::StorageClassUniform) { + builder.addExtension(spv::E_SPV_KHR_8bit_storage); + builder.addCapability(spv::CapabilityUniformAndStorageBuffer8BitAccess); + if (node->getType().getQualifier().storage == glslang::EvqBuffer) + builder.addCapability(spv::CapabilityStorageBuffer8BitAccess); + } + } + const char* name = node->getName().c_str(); if (glslang::IsAnonymous(name)) name = ""; diff --git a/SPIRV/doc.cpp b/SPIRV/doc.cpp index a90596873547afa69f729dcd03a0ee3f931c015c..ae32efe3824d101559df742d65a10717a6373f25 100755 --- a/SPIRV/doc.cpp +++ b/SPIRV/doc.cpp @@ -790,6 +790,10 @@ const char* CapabilityString(int info) case CapabilityStoragePushConstant16: return "StoragePushConstant16"; case CapabilityStorageInputOutput16: return "StorageInputOutput16"; + case CapabilityStorageBuffer8BitAccess: return "CapabilityStorageBuffer8BitAccess"; + case CapabilityUniformAndStorageBuffer8BitAccess: return "CapabilityUniformAndStorageBuffer8BitAccess"; + case CapabilityStoragePushConstant8: return "CapabilityStoragePushConstant8"; + case CapabilityDeviceGroup: return "DeviceGroup"; case CapabilityMultiView: return "MultiView"; diff --git a/SPIRV/spirv.hpp b/SPIRV/spirv.hpp old mode 100644 new mode 100755 index e21762dbeca3c21cfc1977b21c626af60542b042..f16c2963eb37fb31c29241e979f191e707a3ed15 --- a/SPIRV/spirv.hpp +++ b/SPIRV/spirv.hpp @@ -679,6 +679,9 @@ enum Capability { CapabilityVariablePointers = 4442, CapabilityAtomicStorageOps = 4445, CapabilitySampleMaskPostDepthCoverage = 4447, + CapabilityStorageBuffer8BitAccess = 4448, + CapabilityUniformAndStorageBuffer8BitAccess = 4449, + CapabilityStoragePushConstant8 = 4450, CapabilityFloat16ImageAMD = 5008, CapabilityImageGatherBiasLodAMD = 5009, CapabilityFragmentMaskAMD = 5010, diff --git a/Test/baseResults/120.frag.out b/Test/baseResults/120.frag.out index e63c00100291b4c0e5c16f9cc31cbad69136d5ea..025cb68aa08289425b0c53f24fc02106bda9df71 100644 --- a/Test/baseResults/120.frag.out +++ b/Test/baseResults/120.frag.out @@ -56,9 +56,8 @@ ERROR: 0:248: 'explicit types' : required extension not requested: Possible exte GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:248: 'half floating-point suffix' : not supported with this profile: none ERROR: 0:248: '' : syntax error, unexpected IDENTIFIER, expecting COMMA or SEMICOLON -ERROR: 56 compilation errors. No code generated. +ERROR: 55 compilation errors. No code generated. Shader version: 120 diff --git a/Test/baseResults/spv.16bitstorage-int.frag.out b/Test/baseResults/spv.16bitstorage-int.frag.out new file mode 100755 index 0000000000000000000000000000000000000000..9de223cac5479e54b4177db15b371425fc5823c1 --- /dev/null +++ b/Test/baseResults/spv.16bitstorage-int.frag.out @@ -0,0 +1,336 @@ +spv.16bitstorage-int.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 171 + + Capability Shader + Capability Int16 + Capability StorageUniformBufferBlock16 + Capability StorageUniform16 + Extension "SPV_AMD_gpu_shader_int16" + Extension "SPV_KHR_16bit_storage" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_EXT_shader_16bit_storage" + Name 4 "main" + Name 12 "S" + MemberName 12(S) 0 "x" + MemberName 12(S) 1 "y" + MemberName 12(S) 2 "z" + Name 17 "B2" + MemberName 17(B2) 0 "o" + MemberName 17(B2) 1 "p" + MemberName 17(B2) 2 "q" + MemberName 17(B2) 3 "r" + MemberName 17(B2) 4 "u" + MemberName 17(B2) 5 "v" + MemberName 17(B2) 6 "x" + MemberName 17(B2) 7 "w" + Name 19 "b2" + Name 23 "S" + MemberName 23(S) 0 "x" + MemberName 23(S) 1 "y" + MemberName 23(S) 2 "z" + Name 25 "B1" + MemberName 25(B1) 0 "a" + MemberName 25(B1) 1 "b" + MemberName 25(B1) 2 "c" + MemberName 25(B1) 3 "d" + MemberName 25(B1) 4 "g" + MemberName 25(B1) 5 "h" + MemberName 25(B1) 6 "j" + Name 27 "b1" + Name 45 "S" + MemberName 45(S) 0 "x" + MemberName 45(S) 1 "y" + MemberName 45(S) 2 "z" + Name 49 "B5" + MemberName 49(B5) 0 "o" + MemberName 49(B5) 1 "p" + MemberName 49(B5) 2 "q" + MemberName 49(B5) 3 "r" + MemberName 49(B5) 4 "u" + MemberName 49(B5) 5 "v" + MemberName 49(B5) 6 "x" + MemberName 49(B5) 7 "w" + Name 51 "b5" + Name 69 "x0" + Name 75 "x1" + Name 88 "S2" + MemberName 88(S2) 0 "x" + MemberName 88(S2) 1 "y" + MemberName 88(S2) 2 "z" + Name 89 "S3" + MemberName 89(S3) 0 "x" + Name 90 "B4" + MemberName 90(B4) 0 "x" + MemberName 90(B4) 1 "y" + Name 92 "b4" + Name 93 "S2" + MemberName 93(S2) 0 "x" + MemberName 93(S2) 1 "y" + MemberName 93(S2) 2 "z" + Name 94 "B3" + MemberName 94(B3) 0 "x" + Name 96 "b3" + Name 113 "v3" + Name 135 "u3" + Decorate 11 ArrayStride 2 + MemberDecorate 12(S) 0 Offset 0 + MemberDecorate 12(S) 1 Offset 4 + MemberDecorate 12(S) 2 Offset 8 + Decorate 13 ArrayStride 16 + Decorate 15 ArrayStride 4 + Decorate 16 ArrayStride 2 + MemberDecorate 17(B2) 0 Offset 0 + MemberDecorate 17(B2) 1 Offset 4 + MemberDecorate 17(B2) 2 Offset 8 + MemberDecorate 17(B2) 3 Offset 14 + MemberDecorate 17(B2) 4 Offset 24 + MemberDecorate 17(B2) 5 Offset 40 + MemberDecorate 17(B2) 6 Offset 72 + MemberDecorate 17(B2) 7 Offset 472 + Decorate 17(B2) BufferBlock + Decorate 19(b2) DescriptorSet 0 + Decorate 22 ArrayStride 16 + MemberDecorate 23(S) 0 Offset 0 + MemberDecorate 23(S) 1 Offset 4 + MemberDecorate 23(S) 2 Offset 8 + Decorate 24 ArrayStride 16 + MemberDecorate 25(B1) 0 Offset 0 + MemberDecorate 25(B1) 1 Offset 4 + MemberDecorate 25(B1) 2 Offset 8 + MemberDecorate 25(B1) 3 Offset 16 + MemberDecorate 25(B1) 4 Offset 48 + MemberDecorate 25(B1) 5 Offset 64 + MemberDecorate 25(B1) 6 Offset 96 + Decorate 25(B1) Block + Decorate 27(b1) DescriptorSet 0 + Decorate 44 ArrayStride 16 + MemberDecorate 45(S) 0 Offset 0 + MemberDecorate 45(S) 1 Offset 4 + MemberDecorate 45(S) 2 Offset 8 + Decorate 46 ArrayStride 16 + Decorate 47 ArrayStride 16 + Decorate 48 ArrayStride 16 + MemberDecorate 49(B5) 0 Offset 0 + MemberDecorate 49(B5) 1 Offset 4 + MemberDecorate 49(B5) 2 Offset 8 + MemberDecorate 49(B5) 3 Offset 16 + MemberDecorate 49(B5) 4 Offset 48 + MemberDecorate 49(B5) 5 Offset 64 + MemberDecorate 49(B5) 6 Offset 96 + MemberDecorate 49(B5) 7 Offset 1696 + Decorate 49(B5) Block + Decorate 51(b5) DescriptorSet 0 + MemberDecorate 88(S2) 0 ColMajor + MemberDecorate 88(S2) 0 Offset 0 + MemberDecorate 88(S2) 0 MatrixStride 16 + MemberDecorate 88(S2) 1 Offset 64 + MemberDecorate 88(S2) 2 Offset 68 + MemberDecorate 89(S3) 0 Offset 0 + MemberDecorate 90(B4) 0 Offset 0 + MemberDecorate 90(B4) 1 Offset 80 + Decorate 90(B4) BufferBlock + Decorate 92(b4) DescriptorSet 0 + MemberDecorate 93(S2) 0 RowMajor + MemberDecorate 93(S2) 0 Offset 0 + MemberDecorate 93(S2) 0 MatrixStride 16 + MemberDecorate 93(S2) 1 Offset 64 + MemberDecorate 93(S2) 2 Offset 68 + MemberDecorate 94(B3) 0 Offset 0 + Decorate 94(B3) BufferBlock + Decorate 96(b3) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 16 1 + 7: TypeVector 6(int16_t) 2 + 8: TypeVector 6(int16_t) 3 + 9: TypeInt 32 0 + 10: 9(int) Constant 2 + 11: TypeArray 6(int16_t) 10 + 12(S): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) + 13: TypeArray 12(S) 10 + 14: 9(int) Constant 100 + 15: TypeArray 7(i16vec2) 14 + 16: TypeRuntimeArray 6(int16_t) + 17(B2): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) 11 12(S) 13 15 16 + 18: TypePointer Uniform 17(B2) + 19(b2): 18(ptr) Variable Uniform + 20: TypeInt 32 1 + 21: 20(int) Constant 0 + 22: TypeArray 6(int16_t) 10 + 23(S): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) + 24: TypeArray 23(S) 10 + 25(B1): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) 22 23(S) 24 20(int) + 26: TypePointer Uniform 25(B1) + 27(b1): 26(ptr) Variable Uniform + 28: TypePointer Uniform 6(int16_t) + 32: 20(int) Constant 1 + 33: 20(int) Constant 2 + 34: TypePointer Uniform 8(i16vec3) + 37: TypeVector 20(int) 3 + 39: TypeVector 20(int) 2 + 42: TypePointer Uniform 7(i16vec2) + 44: TypeArray 6(int16_t) 10 + 45(S): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) + 46: TypeArray 45(S) 10 + 47: TypeArray 7(i16vec2) 14 + 48: TypeArray 6(int16_t) 14 + 49(B5): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) 44 45(S) 46 47 48 + 50: TypePointer Uniform 49(B5) + 51(b5): 50(ptr) Variable Uniform + 58: 20(int) Constant 3 + 68: TypePointer Function 20(int) + 73: TypeVector 20(int) 4 + 74: TypePointer Function 73(ivec4) + 85: TypeFloat 32 + 86: TypeVector 85(float) 4 + 87: TypeMatrix 86(fvec4) 4 + 88(S2): TypeStruct 87 6(int16_t) 20(int) + 89(S3): TypeStruct 88(S2) + 90(B4): TypeStruct 88(S2) 89(S3) + 91: TypePointer Uniform 90(B4) + 92(b4): 91(ptr) Variable Uniform + 93(S2): TypeStruct 87 6(int16_t) 20(int) + 94(B3): TypeStruct 93(S2) + 95: TypePointer Uniform 94(B3) + 96(b3): 95(ptr) Variable Uniform + 97: TypePointer Uniform 87 + 104: 9(int) Constant 0 + 108: 20(int) Constant 5 + 112: TypePointer Function 37(ivec3) + 114: 20(int) Constant 7 + 115: 20(int) Constant 6 + 116: TypePointer Uniform 20(int) + 166: 39(ivec2) ConstantComposite 32 33 + 4(main): 2 Function None 3 + 5: Label + 69(x0): 68(ptr) Variable Function + 75(x1): 74(ptr) Variable Function + 113(v3): 112(ptr) Variable Function + 135(u3): 112(ptr) Variable Function + 29: 28(ptr) AccessChain 27(b1) 21 + 30: 6(int16_t) Load 29 + 31: 28(ptr) AccessChain 19(b2) 21 + Store 31 30 + 35: 34(ptr) AccessChain 19(b2) 33 + 36: 8(i16vec3) Load 35 + 38: 37(ivec3) SConvert 36 + 40: 39(ivec2) VectorShuffle 38 38 0 1 + 41: 7(i16vec2) SConvert 40 + 43: 42(ptr) AccessChain 19(b2) 32 + Store 43 41 + 52: 34(ptr) AccessChain 51(b5) 33 + 53: 8(i16vec3) Load 52 + 54: 37(ivec3) SConvert 53 + 55: 39(ivec2) VectorShuffle 54 54 0 1 + 56: 7(i16vec2) SConvert 55 + 57: 42(ptr) AccessChain 19(b2) 32 + Store 57 56 + 59: 28(ptr) AccessChain 19(b2) 58 21 + 60: 6(int16_t) Load 59 + 61: 28(ptr) AccessChain 19(b2) 58 21 + Store 61 60 + 62: 28(ptr) AccessChain 51(b5) 58 32 + 63: 6(int16_t) Load 62 + 64: 28(ptr) AccessChain 19(b2) 58 32 + Store 64 63 + 65: 42(ptr) AccessChain 19(b2) 32 + 66: 7(i16vec2) Load 65 + 67: 42(ptr) AccessChain 19(b2) 32 + Store 67 66 + 70: 28(ptr) AccessChain 27(b1) 21 + 71: 6(int16_t) Load 70 + 72: 20(int) SConvert 71 + Store 69(x0) 72 + 76: 28(ptr) AccessChain 27(b1) 21 + 77: 6(int16_t) Load 76 + 78: 20(int) SConvert 77 + 79: 42(ptr) AccessChain 19(b2) 32 + 80: 7(i16vec2) Load 79 + 81: 39(ivec2) SConvert 80 + 82: 20(int) CompositeExtract 81 0 + 83: 20(int) CompositeExtract 81 1 + 84: 73(ivec4) CompositeConstruct 78 82 83 32 + Store 75(x1) 84 + 98: 97(ptr) AccessChain 96(b3) 21 21 + 99: 87 Load 98 + 100: 97(ptr) AccessChain 92(b4) 21 21 + Store 100 99 + 101: 42(ptr) AccessChain 19(b2) 32 + 102: 7(i16vec2) Load 101 + 103: 39(ivec2) SConvert 102 + 105: 20(int) CompositeExtract 103 0 + 106: 6(int16_t) SConvert 105 + 107: 28(ptr) AccessChain 19(b2) 21 + Store 107 106 + 109: 42(ptr) AccessChain 19(b2) 108 32 32 + 110: 7(i16vec2) Load 109 + 111: 42(ptr) AccessChain 19(b2) 32 + Store 111 110 + 117: 116(ptr) AccessChain 27(b1) 115 + 118: 20(int) Load 117 + 119: 28(ptr) AccessChain 19(b2) 114 118 + 120: 6(int16_t) Load 119 + 121: 20(int) SConvert 120 + 122: 116(ptr) AccessChain 27(b1) 115 + 123: 20(int) Load 122 + 124: 20(int) IAdd 123 32 + 125: 28(ptr) AccessChain 19(b2) 114 124 + 126: 6(int16_t) Load 125 + 127: 20(int) SConvert 126 + 128: 116(ptr) AccessChain 27(b1) 115 + 129: 20(int) Load 128 + 130: 20(int) IAdd 129 33 + 131: 28(ptr) AccessChain 19(b2) 114 130 + 132: 6(int16_t) Load 131 + 133: 20(int) SConvert 132 + 134: 37(ivec3) CompositeConstruct 121 127 133 + Store 113(v3) 134 + 136: 116(ptr) AccessChain 27(b1) 115 + 137: 20(int) Load 136 + 138: 28(ptr) AccessChain 51(b5) 114 137 + 139: 6(int16_t) Load 138 + 140: 20(int) SConvert 139 + 141: 116(ptr) AccessChain 27(b1) 115 + 142: 20(int) Load 141 + 143: 20(int) IAdd 142 32 + 144: 28(ptr) AccessChain 51(b5) 114 143 + 145: 6(int16_t) Load 144 + 146: 20(int) SConvert 145 + 147: 116(ptr) AccessChain 27(b1) 115 + 148: 20(int) Load 147 + 149: 20(int) IAdd 148 33 + 150: 28(ptr) AccessChain 51(b5) 114 149 + 151: 6(int16_t) Load 150 + 152: 20(int) SConvert 151 + 153: 37(ivec3) CompositeConstruct 140 146 152 + Store 135(u3) 153 + 154: 42(ptr) AccessChain 19(b2) 115 21 + 155: 7(i16vec2) Load 154 + 156: 42(ptr) AccessChain 19(b2) 115 21 + Store 156 155 + 157: 42(ptr) AccessChain 51(b5) 115 32 + 158: 7(i16vec2) Load 157 + 159: 42(ptr) AccessChain 19(b2) 115 32 + Store 159 158 + 160: 28(ptr) AccessChain 27(b1) 21 + 161: 6(int16_t) Load 160 + 162: 28(ptr) AccessChain 19(b2) 32 104 + Store 162 161 + 163: 28(ptr) AccessChain 19(b2) 32 104 + 164: 6(int16_t) Load 163 + 165: 28(ptr) AccessChain 19(b2) 21 + Store 165 164 + 167: 7(i16vec2) SConvert 166 + 168: 42(ptr) AccessChain 19(b2) 32 + Store 168 167 + 169: 6(int16_t) SConvert 58 + 170: 28(ptr) AccessChain 19(b2) 21 + Store 170 169 + Return + FunctionEnd diff --git a/Test/baseResults/spv.16bitstorage-uint.frag.out b/Test/baseResults/spv.16bitstorage-uint.frag.out new file mode 100755 index 0000000000000000000000000000000000000000..def7c57e586104553589f788569a02ad5959b15f --- /dev/null +++ b/Test/baseResults/spv.16bitstorage-uint.frag.out @@ -0,0 +1,338 @@ +spv.16bitstorage-uint.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 173 + + Capability Shader + Capability Int16 + Capability StorageUniformBufferBlock16 + Capability StorageUniform16 + Extension "SPV_AMD_gpu_shader_int16" + Extension "SPV_KHR_16bit_storage" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_EXT_shader_16bit_storage" + Name 4 "main" + Name 12 "S" + MemberName 12(S) 0 "x" + MemberName 12(S) 1 "y" + MemberName 12(S) 2 "z" + Name 17 "B2" + MemberName 17(B2) 0 "o" + MemberName 17(B2) 1 "p" + MemberName 17(B2) 2 "q" + MemberName 17(B2) 3 "r" + MemberName 17(B2) 4 "u" + MemberName 17(B2) 5 "v" + MemberName 17(B2) 6 "x" + MemberName 17(B2) 7 "w" + Name 19 "b2" + Name 23 "S" + MemberName 23(S) 0 "x" + MemberName 23(S) 1 "y" + MemberName 23(S) 2 "z" + Name 25 "B1" + MemberName 25(B1) 0 "a" + MemberName 25(B1) 1 "b" + MemberName 25(B1) 2 "c" + MemberName 25(B1) 3 "d" + MemberName 25(B1) 4 "g" + MemberName 25(B1) 5 "h" + MemberName 25(B1) 6 "j" + Name 27 "b1" + Name 45 "S" + MemberName 45(S) 0 "x" + MemberName 45(S) 1 "y" + MemberName 45(S) 2 "z" + Name 49 "B5" + MemberName 49(B5) 0 "o" + MemberName 49(B5) 1 "p" + MemberName 49(B5) 2 "q" + MemberName 49(B5) 3 "r" + MemberName 49(B5) 4 "u" + MemberName 49(B5) 5 "v" + MemberName 49(B5) 6 "x" + MemberName 49(B5) 7 "w" + Name 51 "b5" + Name 69 "x0" + Name 75 "x1" + Name 89 "S2" + MemberName 89(S2) 0 "x" + MemberName 89(S2) 1 "y" + MemberName 89(S2) 2 "z" + Name 90 "S3" + MemberName 90(S3) 0 "x" + Name 91 "B4" + MemberName 91(B4) 0 "x" + MemberName 91(B4) 1 "y" + Name 93 "b4" + Name 94 "S2" + MemberName 94(S2) 0 "x" + MemberName 94(S2) 1 "y" + MemberName 94(S2) 2 "z" + Name 95 "B3" + MemberName 95(B3) 0 "x" + Name 97 "b3" + Name 114 "v3" + Name 136 "u3" + Decorate 11 ArrayStride 2 + MemberDecorate 12(S) 0 Offset 0 + MemberDecorate 12(S) 1 Offset 4 + MemberDecorate 12(S) 2 Offset 8 + Decorate 13 ArrayStride 16 + Decorate 15 ArrayStride 4 + Decorate 16 ArrayStride 2 + MemberDecorate 17(B2) 0 Offset 0 + MemberDecorate 17(B2) 1 Offset 4 + MemberDecorate 17(B2) 2 Offset 8 + MemberDecorate 17(B2) 3 Offset 14 + MemberDecorate 17(B2) 4 Offset 24 + MemberDecorate 17(B2) 5 Offset 40 + MemberDecorate 17(B2) 6 Offset 72 + MemberDecorate 17(B2) 7 Offset 472 + Decorate 17(B2) BufferBlock + Decorate 19(b2) DescriptorSet 0 + Decorate 22 ArrayStride 16 + MemberDecorate 23(S) 0 Offset 0 + MemberDecorate 23(S) 1 Offset 4 + MemberDecorate 23(S) 2 Offset 8 + Decorate 24 ArrayStride 16 + MemberDecorate 25(B1) 0 Offset 0 + MemberDecorate 25(B1) 1 Offset 4 + MemberDecorate 25(B1) 2 Offset 8 + MemberDecorate 25(B1) 3 Offset 16 + MemberDecorate 25(B1) 4 Offset 48 + MemberDecorate 25(B1) 5 Offset 64 + MemberDecorate 25(B1) 6 Offset 96 + Decorate 25(B1) Block + Decorate 27(b1) DescriptorSet 0 + Decorate 44 ArrayStride 16 + MemberDecorate 45(S) 0 Offset 0 + MemberDecorate 45(S) 1 Offset 4 + MemberDecorate 45(S) 2 Offset 8 + Decorate 46 ArrayStride 16 + Decorate 47 ArrayStride 16 + Decorate 48 ArrayStride 16 + MemberDecorate 49(B5) 0 Offset 0 + MemberDecorate 49(B5) 1 Offset 4 + MemberDecorate 49(B5) 2 Offset 8 + MemberDecorate 49(B5) 3 Offset 16 + MemberDecorate 49(B5) 4 Offset 48 + MemberDecorate 49(B5) 5 Offset 64 + MemberDecorate 49(B5) 6 Offset 96 + MemberDecorate 49(B5) 7 Offset 1696 + Decorate 49(B5) Block + Decorate 51(b5) DescriptorSet 0 + MemberDecorate 89(S2) 0 ColMajor + MemberDecorate 89(S2) 0 Offset 0 + MemberDecorate 89(S2) 0 MatrixStride 16 + MemberDecorate 89(S2) 1 Offset 64 + MemberDecorate 89(S2) 2 Offset 68 + MemberDecorate 90(S3) 0 Offset 0 + MemberDecorate 91(B4) 0 Offset 0 + MemberDecorate 91(B4) 1 Offset 80 + Decorate 91(B4) BufferBlock + Decorate 93(b4) DescriptorSet 0 + MemberDecorate 94(S2) 0 RowMajor + MemberDecorate 94(S2) 0 Offset 0 + MemberDecorate 94(S2) 0 MatrixStride 16 + MemberDecorate 94(S2) 1 Offset 64 + MemberDecorate 94(S2) 2 Offset 68 + MemberDecorate 95(B3) 0 Offset 0 + Decorate 95(B3) BufferBlock + Decorate 97(b3) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 16 0 + 7: TypeVector 6(int16_t) 2 + 8: TypeVector 6(int16_t) 3 + 9: TypeInt 32 0 + 10: 9(int) Constant 2 + 11: TypeArray 6(int16_t) 10 + 12(S): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) + 13: TypeArray 12(S) 10 + 14: 9(int) Constant 100 + 15: TypeArray 7(i16vec2) 14 + 16: TypeRuntimeArray 6(int16_t) + 17(B2): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) 11 12(S) 13 15 16 + 18: TypePointer Uniform 17(B2) + 19(b2): 18(ptr) Variable Uniform + 20: TypeInt 32 1 + 21: 20(int) Constant 0 + 22: TypeArray 6(int16_t) 10 + 23(S): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) + 24: TypeArray 23(S) 10 + 25(B1): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) 22 23(S) 24 9(int) + 26: TypePointer Uniform 25(B1) + 27(b1): 26(ptr) Variable Uniform + 28: TypePointer Uniform 6(int16_t) + 32: 20(int) Constant 1 + 33: 20(int) Constant 2 + 34: TypePointer Uniform 8(i16vec3) + 37: TypeVector 9(int) 3 + 39: TypeVector 9(int) 2 + 42: TypePointer Uniform 7(i16vec2) + 44: TypeArray 6(int16_t) 10 + 45(S): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) + 46: TypeArray 45(S) 10 + 47: TypeArray 7(i16vec2) 14 + 48: TypeArray 6(int16_t) 14 + 49(B5): TypeStruct 6(int16_t) 7(i16vec2) 8(i16vec3) 44 45(S) 46 47 48 + 50: TypePointer Uniform 49(B5) + 51(b5): 50(ptr) Variable Uniform + 58: 20(int) Constant 3 + 68: TypePointer Function 9(int) + 73: TypeVector 9(int) 4 + 74: TypePointer Function 73(ivec4) + 82: 9(int) Constant 1 + 86: TypeFloat 32 + 87: TypeVector 86(float) 4 + 88: TypeMatrix 87(fvec4) 4 + 89(S2): TypeStruct 88 6(int16_t) 9(int) + 90(S3): TypeStruct 89(S2) + 91(B4): TypeStruct 89(S2) 90(S3) + 92: TypePointer Uniform 91(B4) + 93(b4): 92(ptr) Variable Uniform + 94(S2): TypeStruct 88 6(int16_t) 9(int) + 95(B3): TypeStruct 94(S2) + 96: TypePointer Uniform 95(B3) + 97(b3): 96(ptr) Variable Uniform + 98: TypePointer Uniform 88 + 105: 9(int) Constant 0 + 109: 20(int) Constant 5 + 113: TypePointer Function 37(ivec3) + 115: 20(int) Constant 7 + 116: 20(int) Constant 6 + 117: TypePointer Uniform 9(int) + 167: 39(ivec2) ConstantComposite 82 10 + 170: 9(int) Constant 3 + 4(main): 2 Function None 3 + 5: Label + 69(x0): 68(ptr) Variable Function + 75(x1): 74(ptr) Variable Function + 114(v3): 113(ptr) Variable Function + 136(u3): 113(ptr) Variable Function + 29: 28(ptr) AccessChain 27(b1) 21 + 30: 6(int16_t) Load 29 + 31: 28(ptr) AccessChain 19(b2) 21 + Store 31 30 + 35: 34(ptr) AccessChain 19(b2) 33 + 36: 8(i16vec3) Load 35 + 38: 37(ivec3) UConvert 36 + 40: 39(ivec2) VectorShuffle 38 38 0 1 + 41: 7(i16vec2) UConvert 40 + 43: 42(ptr) AccessChain 19(b2) 32 + Store 43 41 + 52: 34(ptr) AccessChain 51(b5) 33 + 53: 8(i16vec3) Load 52 + 54: 37(ivec3) UConvert 53 + 55: 39(ivec2) VectorShuffle 54 54 0 1 + 56: 7(i16vec2) UConvert 55 + 57: 42(ptr) AccessChain 19(b2) 32 + Store 57 56 + 59: 28(ptr) AccessChain 19(b2) 58 21 + 60: 6(int16_t) Load 59 + 61: 28(ptr) AccessChain 19(b2) 58 21 + Store 61 60 + 62: 28(ptr) AccessChain 51(b5) 58 32 + 63: 6(int16_t) Load 62 + 64: 28(ptr) AccessChain 19(b2) 58 32 + Store 64 63 + 65: 42(ptr) AccessChain 19(b2) 32 + 66: 7(i16vec2) Load 65 + 67: 42(ptr) AccessChain 19(b2) 32 + Store 67 66 + 70: 28(ptr) AccessChain 27(b1) 21 + 71: 6(int16_t) Load 70 + 72: 9(int) UConvert 71 + Store 69(x0) 72 + 76: 28(ptr) AccessChain 27(b1) 21 + 77: 6(int16_t) Load 76 + 78: 9(int) UConvert 77 + 79: 42(ptr) AccessChain 19(b2) 32 + 80: 7(i16vec2) Load 79 + 81: 39(ivec2) UConvert 80 + 83: 9(int) CompositeExtract 81 0 + 84: 9(int) CompositeExtract 81 1 + 85: 73(ivec4) CompositeConstruct 78 83 84 82 + Store 75(x1) 85 + 99: 98(ptr) AccessChain 97(b3) 21 21 + 100: 88 Load 99 + 101: 98(ptr) AccessChain 93(b4) 21 21 + Store 101 100 + 102: 42(ptr) AccessChain 19(b2) 32 + 103: 7(i16vec2) Load 102 + 104: 39(ivec2) UConvert 103 + 106: 9(int) CompositeExtract 104 0 + 107: 6(int16_t) UConvert 106 + 108: 28(ptr) AccessChain 19(b2) 21 + Store 108 107 + 110: 42(ptr) AccessChain 19(b2) 109 32 32 + 111: 7(i16vec2) Load 110 + 112: 42(ptr) AccessChain 19(b2) 32 + Store 112 111 + 118: 117(ptr) AccessChain 27(b1) 116 + 119: 9(int) Load 118 + 120: 28(ptr) AccessChain 19(b2) 115 119 + 121: 6(int16_t) Load 120 + 122: 9(int) UConvert 121 + 123: 117(ptr) AccessChain 27(b1) 116 + 124: 9(int) Load 123 + 125: 9(int) IAdd 124 82 + 126: 28(ptr) AccessChain 19(b2) 115 125 + 127: 6(int16_t) Load 126 + 128: 9(int) UConvert 127 + 129: 117(ptr) AccessChain 27(b1) 116 + 130: 9(int) Load 129 + 131: 9(int) IAdd 130 10 + 132: 28(ptr) AccessChain 19(b2) 115 131 + 133: 6(int16_t) Load 132 + 134: 9(int) UConvert 133 + 135: 37(ivec3) CompositeConstruct 122 128 134 + Store 114(v3) 135 + 137: 117(ptr) AccessChain 27(b1) 116 + 138: 9(int) Load 137 + 139: 28(ptr) AccessChain 51(b5) 115 138 + 140: 6(int16_t) Load 139 + 141: 9(int) UConvert 140 + 142: 117(ptr) AccessChain 27(b1) 116 + 143: 9(int) Load 142 + 144: 9(int) IAdd 143 82 + 145: 28(ptr) AccessChain 51(b5) 115 144 + 146: 6(int16_t) Load 145 + 147: 9(int) UConvert 146 + 148: 117(ptr) AccessChain 27(b1) 116 + 149: 9(int) Load 148 + 150: 9(int) IAdd 149 10 + 151: 28(ptr) AccessChain 51(b5) 115 150 + 152: 6(int16_t) Load 151 + 153: 9(int) UConvert 152 + 154: 37(ivec3) CompositeConstruct 141 147 153 + Store 136(u3) 154 + 155: 42(ptr) AccessChain 19(b2) 116 21 + 156: 7(i16vec2) Load 155 + 157: 42(ptr) AccessChain 19(b2) 116 21 + Store 157 156 + 158: 42(ptr) AccessChain 51(b5) 116 32 + 159: 7(i16vec2) Load 158 + 160: 42(ptr) AccessChain 19(b2) 116 32 + Store 160 159 + 161: 28(ptr) AccessChain 27(b1) 21 + 162: 6(int16_t) Load 161 + 163: 28(ptr) AccessChain 19(b2) 32 105 + Store 163 162 + 164: 28(ptr) AccessChain 19(b2) 32 105 + 165: 6(int16_t) Load 164 + 166: 28(ptr) AccessChain 19(b2) 21 + Store 166 165 + 168: 7(i16vec2) UConvert 167 + 169: 42(ptr) AccessChain 19(b2) 32 + Store 169 168 + 171: 6(int16_t) UConvert 170 + 172: 28(ptr) AccessChain 19(b2) 21 + Store 172 171 + Return + FunctionEnd diff --git a/Test/baseResults/spv.16bitstorage.frag.out b/Test/baseResults/spv.16bitstorage.frag.out new file mode 100755 index 0000000000000000000000000000000000000000..ebf48e9f4c41124da9e17323b56d0bd53eee695d --- /dev/null +++ b/Test/baseResults/spv.16bitstorage.frag.out @@ -0,0 +1,338 @@ +spv.16bitstorage.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 173 + + Capability Shader + Capability Float16 + Capability StorageUniformBufferBlock16 + Capability StorageUniform16 + Extension "SPV_AMD_gpu_shader_half_float" + Extension "SPV_KHR_16bit_storage" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_EXT_shader_16bit_storage" + Name 4 "main" + Name 12 "S" + MemberName 12(S) 0 "x" + MemberName 12(S) 1 "y" + MemberName 12(S) 2 "z" + Name 17 "B2" + MemberName 17(B2) 0 "o" + MemberName 17(B2) 1 "p" + MemberName 17(B2) 2 "q" + MemberName 17(B2) 3 "r" + MemberName 17(B2) 4 "u" + MemberName 17(B2) 5 "v" + MemberName 17(B2) 6 "x" + MemberName 17(B2) 7 "w" + Name 19 "b2" + Name 23 "S" + MemberName 23(S) 0 "x" + MemberName 23(S) 1 "y" + MemberName 23(S) 2 "z" + Name 25 "B1" + MemberName 25(B1) 0 "a" + MemberName 25(B1) 1 "b" + MemberName 25(B1) 2 "c" + MemberName 25(B1) 3 "d" + MemberName 25(B1) 4 "g" + MemberName 25(B1) 5 "h" + MemberName 25(B1) 6 "j" + Name 27 "b1" + Name 46 "S" + MemberName 46(S) 0 "x" + MemberName 46(S) 1 "y" + MemberName 46(S) 2 "z" + Name 50 "B5" + MemberName 50(B5) 0 "o" + MemberName 50(B5) 1 "p" + MemberName 50(B5) 2 "q" + MemberName 50(B5) 3 "r" + MemberName 50(B5) 4 "u" + MemberName 50(B5) 5 "v" + MemberName 50(B5) 6 "x" + MemberName 50(B5) 7 "w" + Name 52 "b5" + Name 70 "x0" + Name 76 "x1" + Name 88 "S2" + MemberName 88(S2) 0 "x" + MemberName 88(S2) 1 "y" + MemberName 88(S2) 2 "z" + Name 89 "S3" + MemberName 89(S3) 0 "x" + Name 90 "B4" + MemberName 90(B4) 0 "x" + MemberName 90(B4) 1 "y" + Name 92 "b4" + Name 93 "S2" + MemberName 93(S2) 0 "x" + MemberName 93(S2) 1 "y" + MemberName 93(S2) 2 "z" + Name 94 "B3" + MemberName 94(B3) 0 "x" + Name 96 "b3" + Name 113 "v3" + Name 135 "u3" + Decorate 11 ArrayStride 2 + MemberDecorate 12(S) 0 Offset 0 + MemberDecorate 12(S) 1 Offset 4 + MemberDecorate 12(S) 2 Offset 8 + Decorate 13 ArrayStride 16 + Decorate 15 ArrayStride 4 + Decorate 16 ArrayStride 2 + MemberDecorate 17(B2) 0 Offset 0 + MemberDecorate 17(B2) 1 Offset 4 + MemberDecorate 17(B2) 2 Offset 8 + MemberDecorate 17(B2) 3 Offset 14 + MemberDecorate 17(B2) 4 Offset 24 + MemberDecorate 17(B2) 5 Offset 40 + MemberDecorate 17(B2) 6 Offset 72 + MemberDecorate 17(B2) 7 Offset 472 + Decorate 17(B2) BufferBlock + Decorate 19(b2) DescriptorSet 0 + Decorate 22 ArrayStride 16 + MemberDecorate 23(S) 0 Offset 0 + MemberDecorate 23(S) 1 Offset 4 + MemberDecorate 23(S) 2 Offset 8 + Decorate 24 ArrayStride 16 + MemberDecorate 25(B1) 0 Offset 0 + MemberDecorate 25(B1) 1 Offset 4 + MemberDecorate 25(B1) 2 Offset 8 + MemberDecorate 25(B1) 3 Offset 16 + MemberDecorate 25(B1) 4 Offset 48 + MemberDecorate 25(B1) 5 Offset 64 + MemberDecorate 25(B1) 6 Offset 96 + Decorate 25(B1) Block + Decorate 27(b1) DescriptorSet 0 + Decorate 45 ArrayStride 16 + MemberDecorate 46(S) 0 Offset 0 + MemberDecorate 46(S) 1 Offset 4 + MemberDecorate 46(S) 2 Offset 8 + Decorate 47 ArrayStride 16 + Decorate 48 ArrayStride 16 + Decorate 49 ArrayStride 16 + MemberDecorate 50(B5) 0 Offset 0 + MemberDecorate 50(B5) 1 Offset 4 + MemberDecorate 50(B5) 2 Offset 8 + MemberDecorate 50(B5) 3 Offset 16 + MemberDecorate 50(B5) 4 Offset 48 + MemberDecorate 50(B5) 5 Offset 64 + MemberDecorate 50(B5) 6 Offset 96 + MemberDecorate 50(B5) 7 Offset 1696 + Decorate 50(B5) Block + Decorate 52(b5) DescriptorSet 0 + MemberDecorate 88(S2) 0 ColMajor + MemberDecorate 88(S2) 0 Offset 0 + MemberDecorate 88(S2) 0 MatrixStride 16 + MemberDecorate 88(S2) 1 Offset 64 + MemberDecorate 88(S2) 2 Offset 68 + MemberDecorate 89(S3) 0 Offset 0 + MemberDecorate 90(B4) 0 Offset 0 + MemberDecorate 90(B4) 1 Offset 80 + Decorate 90(B4) BufferBlock + Decorate 92(b4) DescriptorSet 0 + MemberDecorate 93(S2) 0 RowMajor + MemberDecorate 93(S2) 0 Offset 0 + MemberDecorate 93(S2) 0 MatrixStride 16 + MemberDecorate 93(S2) 1 Offset 64 + MemberDecorate 93(S2) 2 Offset 68 + MemberDecorate 94(B3) 0 Offset 0 + Decorate 94(B3) BufferBlock + Decorate 96(b3) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 16 + 7: TypeVector 6(float16_t) 2 + 8: TypeVector 6(float16_t) 3 + 9: TypeInt 32 0 + 10: 9(int) Constant 2 + 11: TypeArray 6(float16_t) 10 + 12(S): TypeStruct 6(float16_t) 7(f16vec2) 8(f16vec3) + 13: TypeArray 12(S) 10 + 14: 9(int) Constant 100 + 15: TypeArray 7(f16vec2) 14 + 16: TypeRuntimeArray 6(float16_t) + 17(B2): TypeStruct 6(float16_t) 7(f16vec2) 8(f16vec3) 11 12(S) 13 15 16 + 18: TypePointer Uniform 17(B2) + 19(b2): 18(ptr) Variable Uniform + 20: TypeInt 32 1 + 21: 20(int) Constant 0 + 22: TypeArray 6(float16_t) 10 + 23(S): TypeStruct 6(float16_t) 7(f16vec2) 8(f16vec3) + 24: TypeArray 23(S) 10 + 25(B1): TypeStruct 6(float16_t) 7(f16vec2) 8(f16vec3) 22 23(S) 24 20(int) + 26: TypePointer Uniform 25(B1) + 27(b1): 26(ptr) Variable Uniform + 28: TypePointer Uniform 6(float16_t) + 32: 20(int) Constant 1 + 33: 20(int) Constant 2 + 34: TypePointer Uniform 8(f16vec3) + 37: TypeFloat 32 + 38: TypeVector 37(float) 3 + 40: TypeVector 37(float) 2 + 43: TypePointer Uniform 7(f16vec2) + 45: TypeArray 6(float16_t) 10 + 46(S): TypeStruct 6(float16_t) 7(f16vec2) 8(f16vec3) + 47: TypeArray 46(S) 10 + 48: TypeArray 7(f16vec2) 14 + 49: TypeArray 6(float16_t) 14 + 50(B5): TypeStruct 6(float16_t) 7(f16vec2) 8(f16vec3) 45 46(S) 47 48 49 + 51: TypePointer Uniform 50(B5) + 52(b5): 51(ptr) Variable Uniform + 59: 20(int) Constant 3 + 69: TypePointer Function 37(float) + 74: TypeVector 37(float) 4 + 75: TypePointer Function 74(fvec4) + 83: 37(float) Constant 1065353216 + 87: TypeMatrix 74(fvec4) 4 + 88(S2): TypeStruct 87 6(float16_t) 37(float) + 89(S3): TypeStruct 88(S2) + 90(B4): TypeStruct 88(S2) 89(S3) + 91: TypePointer Uniform 90(B4) + 92(b4): 91(ptr) Variable Uniform + 93(S2): TypeStruct 87 6(float16_t) 37(float) + 94(B3): TypeStruct 93(S2) + 95: TypePointer Uniform 94(B3) + 96(b3): 95(ptr) Variable Uniform + 97: TypePointer Uniform 87 + 104: 9(int) Constant 0 + 108: 20(int) Constant 5 + 112: TypePointer Function 38(fvec3) + 114: 20(int) Constant 7 + 115: 20(int) Constant 6 + 116: TypePointer Uniform 20(int) + 166: 37(float) Constant 1073741824 + 167: 40(fvec2) ConstantComposite 83 166 + 170: 37(float) Constant 1077936128 + 4(main): 2 Function None 3 + 5: Label + 70(x0): 69(ptr) Variable Function + 76(x1): 75(ptr) Variable Function + 113(v3): 112(ptr) Variable Function + 135(u3): 112(ptr) Variable Function + 29: 28(ptr) AccessChain 27(b1) 21 + 30:6(float16_t) Load 29 + 31: 28(ptr) AccessChain 19(b2) 21 + Store 31 30 + 35: 34(ptr) AccessChain 19(b2) 33 + 36: 8(f16vec3) Load 35 + 39: 38(fvec3) FConvert 36 + 41: 40(fvec2) VectorShuffle 39 39 0 1 + 42: 7(f16vec2) FConvert 41 + 44: 43(ptr) AccessChain 19(b2) 32 + Store 44 42 + 53: 34(ptr) AccessChain 52(b5) 33 + 54: 8(f16vec3) Load 53 + 55: 38(fvec3) FConvert 54 + 56: 40(fvec2) VectorShuffle 55 55 0 1 + 57: 7(f16vec2) FConvert 56 + 58: 43(ptr) AccessChain 19(b2) 32 + Store 58 57 + 60: 28(ptr) AccessChain 19(b2) 59 21 + 61:6(float16_t) Load 60 + 62: 28(ptr) AccessChain 19(b2) 59 21 + Store 62 61 + 63: 28(ptr) AccessChain 52(b5) 59 32 + 64:6(float16_t) Load 63 + 65: 28(ptr) AccessChain 19(b2) 59 32 + Store 65 64 + 66: 43(ptr) AccessChain 19(b2) 32 + 67: 7(f16vec2) Load 66 + 68: 43(ptr) AccessChain 19(b2) 32 + Store 68 67 + 71: 28(ptr) AccessChain 27(b1) 21 + 72:6(float16_t) Load 71 + 73: 37(float) FConvert 72 + Store 70(x0) 73 + 77: 28(ptr) AccessChain 27(b1) 21 + 78:6(float16_t) Load 77 + 79: 37(float) FConvert 78 + 80: 43(ptr) AccessChain 19(b2) 32 + 81: 7(f16vec2) Load 80 + 82: 40(fvec2) FConvert 81 + 84: 37(float) CompositeExtract 82 0 + 85: 37(float) CompositeExtract 82 1 + 86: 74(fvec4) CompositeConstruct 79 84 85 83 + Store 76(x1) 86 + 98: 97(ptr) AccessChain 96(b3) 21 21 + 99: 87 Load 98 + 100: 97(ptr) AccessChain 92(b4) 21 21 + Store 100 99 + 101: 43(ptr) AccessChain 19(b2) 32 + 102: 7(f16vec2) Load 101 + 103: 40(fvec2) FConvert 102 + 105: 37(float) CompositeExtract 103 0 + 106:6(float16_t) FConvert 105 + 107: 28(ptr) AccessChain 19(b2) 21 + Store 107 106 + 109: 43(ptr) AccessChain 19(b2) 108 32 32 + 110: 7(f16vec2) Load 109 + 111: 43(ptr) AccessChain 19(b2) 32 + Store 111 110 + 117: 116(ptr) AccessChain 27(b1) 115 + 118: 20(int) Load 117 + 119: 28(ptr) AccessChain 19(b2) 114 118 + 120:6(float16_t) Load 119 + 121: 37(float) FConvert 120 + 122: 116(ptr) AccessChain 27(b1) 115 + 123: 20(int) Load 122 + 124: 20(int) IAdd 123 32 + 125: 28(ptr) AccessChain 19(b2) 114 124 + 126:6(float16_t) Load 125 + 127: 37(float) FConvert 126 + 128: 116(ptr) AccessChain 27(b1) 115 + 129: 20(int) Load 128 + 130: 20(int) IAdd 129 33 + 131: 28(ptr) AccessChain 19(b2) 114 130 + 132:6(float16_t) Load 131 + 133: 37(float) FConvert 132 + 134: 38(fvec3) CompositeConstruct 121 127 133 + Store 113(v3) 134 + 136: 116(ptr) AccessChain 27(b1) 115 + 137: 20(int) Load 136 + 138: 28(ptr) AccessChain 52(b5) 114 137 + 139:6(float16_t) Load 138 + 140: 37(float) FConvert 139 + 141: 116(ptr) AccessChain 27(b1) 115 + 142: 20(int) Load 141 + 143: 20(int) IAdd 142 32 + 144: 28(ptr) AccessChain 52(b5) 114 143 + 145:6(float16_t) Load 144 + 146: 37(float) FConvert 145 + 147: 116(ptr) AccessChain 27(b1) 115 + 148: 20(int) Load 147 + 149: 20(int) IAdd 148 33 + 150: 28(ptr) AccessChain 52(b5) 114 149 + 151:6(float16_t) Load 150 + 152: 37(float) FConvert 151 + 153: 38(fvec3) CompositeConstruct 140 146 152 + Store 135(u3) 153 + 154: 43(ptr) AccessChain 19(b2) 115 21 + 155: 7(f16vec2) Load 154 + 156: 43(ptr) AccessChain 19(b2) 115 21 + Store 156 155 + 157: 43(ptr) AccessChain 52(b5) 115 32 + 158: 7(f16vec2) Load 157 + 159: 43(ptr) AccessChain 19(b2) 115 32 + Store 159 158 + 160: 28(ptr) AccessChain 27(b1) 21 + 161:6(float16_t) Load 160 + 162: 28(ptr) AccessChain 19(b2) 32 104 + Store 162 161 + 163: 28(ptr) AccessChain 19(b2) 32 104 + 164:6(float16_t) Load 163 + 165: 28(ptr) AccessChain 19(b2) 21 + Store 165 164 + 168: 7(f16vec2) FConvert 167 + 169: 43(ptr) AccessChain 19(b2) 32 + Store 169 168 + 171:6(float16_t) FConvert 170 + 172: 28(ptr) AccessChain 19(b2) 21 + Store 172 171 + Return + FunctionEnd diff --git a/Test/baseResults/spv.16bitstorage_Error-int.frag.out b/Test/baseResults/spv.16bitstorage_Error-int.frag.out new file mode 100755 index 0000000000000000000000000000000000000000..697df3e558b1473af1bac985ac826fadcce6d2c6 --- /dev/null +++ b/Test/baseResults/spv.16bitstorage_Error-int.frag.out @@ -0,0 +1,91 @@ +spv.16bitstorage_Error-int.frag +ERROR: 0:54: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:58: 'can't use with structs containing int16' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:61: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:74: ''[' does not operate on types containing (u)int16' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:75: 'can't swizzle types containing (u)int16' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:76: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:76: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:76: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:77: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:77: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:78: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform int16_t' and a right operand of type 'layout( column_major std140 offset=0) uniform int16_t' (or there is no acceptable conversion) +ERROR: 0:79: '-' : wrong operand type no operation '-' exists that takes an operand of type layout( column_major std140 offset=0) uniform int16_t (or there is no acceptable conversion) +ERROR: 0:80: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform int16_t' and a right operand of type ' const int' (or there is no acceptable conversion) +ERROR: 0:81: 'can't swizzle types containing (u)int16' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:82: 'can't use with structs containing int16' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:83: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:84: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:85: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform int16_t' and a right operand of type 'layout( column_major std140 offset=0) uniform int16_t' (or there is no acceptable conversion) +ERROR: 0:87: 'can't use with arrays containing int16' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:88: '16-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:89: '16-bit array constructors not supported' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:89: '16-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:92: 'Can't construct structure containing 16-bit type' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:93: 'func2' : no matching overloaded function found +ERROR: 0:99: '' : syntax error, unexpected IDENTIFIER +ERROR: 26 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.16bitstorage_Error-uint.frag.out b/Test/baseResults/spv.16bitstorage_Error-uint.frag.out new file mode 100755 index 0000000000000000000000000000000000000000..786c4d2898968156d91001db31904a44e777b97c --- /dev/null +++ b/Test/baseResults/spv.16bitstorage_Error-uint.frag.out @@ -0,0 +1,91 @@ +spv.16bitstorage_Error-uint.frag +ERROR: 0:54: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:58: 'can't use with structs containing uint16' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:61: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:74: ''[' does not operate on types containing (u)int16' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:75: 'can't swizzle types containing (u)int16' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:76: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:76: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:76: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:77: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:77: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:78: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform uint16_t' and a right operand of type 'layout( column_major std140 offset=0) uniform uint16_t' (or there is no acceptable conversion) +ERROR: 0:79: '-' : wrong operand type no operation '-' exists that takes an operand of type layout( column_major std140 offset=0) uniform uint16_t (or there is no acceptable conversion) +ERROR: 0:80: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform uint16_t' and a right operand of type ' const int' (or there is no acceptable conversion) +ERROR: 0:81: 'can't swizzle types containing (u)int16' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:82: 'can't use with structs containing uint16' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:83: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:84: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:85: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform uint16_t' and a right operand of type 'layout( column_major std140 offset=0) uniform uint16_t' (or there is no acceptable conversion) +ERROR: 0:87: 'can't use with arrays containing uint16' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:88: '16-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:89: '16-bit array constructors not supported' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:89: '16-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:92: 'Can't construct structure containing 16-bit type' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_int16 +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int16 +ERROR: 0:93: 'func2' : no matching overloaded function found +ERROR: 0:99: '' : syntax error, unexpected IDENTIFIER +ERROR: 26 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.16bitstorage_Error.frag.out b/Test/baseResults/spv.16bitstorage_Error.frag.out new file mode 100755 index 0000000000000000000000000000000000000000..6de8566cd325228508208e1e03ca9339c9215cdd --- /dev/null +++ b/Test/baseResults/spv.16bitstorage_Error.frag.out @@ -0,0 +1,99 @@ +spv.16bitstorage_Error.frag +ERROR: 0:54: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:58: 'can't use with structs containing float16' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:61: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:74: ''[' does not operate on types containing float16' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:75: 'can't swizzle types containing float16' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:76: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:76: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:76: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:77: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:77: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:78: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform float16_t' and a right operand of type 'layout( column_major std140 offset=0) uniform float16_t' (or there is no acceptable conversion) +ERROR: 0:79: '-' : wrong operand type no operation '-' exists that takes an operand of type layout( column_major std140 offset=0) uniform float16_t (or there is no acceptable conversion) +ERROR: 0:80: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform float16_t' and a right operand of type ' const float' (or there is no acceptable conversion) +ERROR: 0:81: 'can't swizzle types containing float16' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:82: 'can't use with structs containing float16' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:83: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:84: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:85: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform float16_t' and a right operand of type 'layout( column_major std140 offset=0) uniform float16_t' (or there is no acceptable conversion) +ERROR: 0:87: 'can't use with arrays containing float16' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:88: 'explicit types' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:88: 'explicit types' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:89: '16-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:90: '16-bit array constructors not supported' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:90: '16-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:93: 'Can't construct structure containing 16-bit type' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:94: 'func2' : no matching overloaded function found +ERROR: 0:100: '' : syntax error, unexpected IDENTIFIER +ERROR: 28 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.8bitstorage-int.frag.out b/Test/baseResults/spv.8bitstorage-int.frag.out new file mode 100755 index 0000000000000000000000000000000000000000..94e7ab5b01fbe1f76d31df95e5ef868637988b30 --- /dev/null +++ b/Test/baseResults/spv.8bitstorage-int.frag.out @@ -0,0 +1,335 @@ +spv.8bitstorage-int.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 171 + + Capability Shader + Capability Int8 + Capability CapabilityStorageBuffer8BitAccess + Capability CapabilityUniformAndStorageBuffer8BitAccess + Extension "SPV_KHR_8bit_storage" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_EXT_shader_8bit_storage" + Name 4 "main" + Name 12 "S" + MemberName 12(S) 0 "x" + MemberName 12(S) 1 "y" + MemberName 12(S) 2 "z" + Name 17 "B2" + MemberName 17(B2) 0 "o" + MemberName 17(B2) 1 "p" + MemberName 17(B2) 2 "q" + MemberName 17(B2) 3 "r" + MemberName 17(B2) 4 "u" + MemberName 17(B2) 5 "v" + MemberName 17(B2) 6 "x" + MemberName 17(B2) 7 "w" + Name 19 "b2" + Name 23 "S" + MemberName 23(S) 0 "x" + MemberName 23(S) 1 "y" + MemberName 23(S) 2 "z" + Name 25 "B1" + MemberName 25(B1) 0 "a" + MemberName 25(B1) 1 "b" + MemberName 25(B1) 2 "c" + MemberName 25(B1) 3 "d" + MemberName 25(B1) 4 "g" + MemberName 25(B1) 5 "h" + MemberName 25(B1) 6 "j" + Name 27 "b1" + Name 45 "S" + MemberName 45(S) 0 "x" + MemberName 45(S) 1 "y" + MemberName 45(S) 2 "z" + Name 49 "B5" + MemberName 49(B5) 0 "o" + MemberName 49(B5) 1 "p" + MemberName 49(B5) 2 "q" + MemberName 49(B5) 3 "r" + MemberName 49(B5) 4 "u" + MemberName 49(B5) 5 "v" + MemberName 49(B5) 6 "x" + MemberName 49(B5) 7 "w" + Name 51 "b5" + Name 69 "x0" + Name 75 "x1" + Name 88 "S2" + MemberName 88(S2) 0 "x" + MemberName 88(S2) 1 "y" + MemberName 88(S2) 2 "z" + Name 89 "S3" + MemberName 89(S3) 0 "x" + Name 90 "B4" + MemberName 90(B4) 0 "x" + MemberName 90(B4) 1 "y" + Name 92 "b4" + Name 93 "S2" + MemberName 93(S2) 0 "x" + MemberName 93(S2) 1 "y" + MemberName 93(S2) 2 "z" + Name 94 "B3" + MemberName 94(B3) 0 "x" + Name 96 "b3" + Name 113 "v3" + Name 135 "u3" + Decorate 11 ArrayStride 1 + MemberDecorate 12(S) 0 Offset 0 + MemberDecorate 12(S) 1 Offset 2 + MemberDecorate 12(S) 2 Offset 4 + Decorate 13 ArrayStride 8 + Decorate 15 ArrayStride 2 + Decorate 16 ArrayStride 1 + MemberDecorate 17(B2) 0 Offset 0 + MemberDecorate 17(B2) 1 Offset 2 + MemberDecorate 17(B2) 2 Offset 4 + MemberDecorate 17(B2) 3 Offset 7 + MemberDecorate 17(B2) 4 Offset 12 + MemberDecorate 17(B2) 5 Offset 20 + MemberDecorate 17(B2) 6 Offset 36 + MemberDecorate 17(B2) 7 Offset 236 + Decorate 17(B2) BufferBlock + Decorate 19(b2) DescriptorSet 0 + Decorate 22 ArrayStride 16 + MemberDecorate 23(S) 0 Offset 0 + MemberDecorate 23(S) 1 Offset 2 + MemberDecorate 23(S) 2 Offset 4 + Decorate 24 ArrayStride 16 + MemberDecorate 25(B1) 0 Offset 0 + MemberDecorate 25(B1) 1 Offset 2 + MemberDecorate 25(B1) 2 Offset 4 + MemberDecorate 25(B1) 3 Offset 16 + MemberDecorate 25(B1) 4 Offset 48 + MemberDecorate 25(B1) 5 Offset 64 + MemberDecorate 25(B1) 6 Offset 96 + Decorate 25(B1) Block + Decorate 27(b1) DescriptorSet 0 + Decorate 44 ArrayStride 16 + MemberDecorate 45(S) 0 Offset 0 + MemberDecorate 45(S) 1 Offset 2 + MemberDecorate 45(S) 2 Offset 4 + Decorate 46 ArrayStride 16 + Decorate 47 ArrayStride 16 + Decorate 48 ArrayStride 16 + MemberDecorate 49(B5) 0 Offset 0 + MemberDecorate 49(B5) 1 Offset 2 + MemberDecorate 49(B5) 2 Offset 4 + MemberDecorate 49(B5) 3 Offset 16 + MemberDecorate 49(B5) 4 Offset 48 + MemberDecorate 49(B5) 5 Offset 64 + MemberDecorate 49(B5) 6 Offset 96 + MemberDecorate 49(B5) 7 Offset 1696 + Decorate 49(B5) Block + Decorate 51(b5) DescriptorSet 0 + MemberDecorate 88(S2) 0 ColMajor + MemberDecorate 88(S2) 0 Offset 0 + MemberDecorate 88(S2) 0 MatrixStride 16 + MemberDecorate 88(S2) 1 Offset 64 + MemberDecorate 88(S2) 2 Offset 68 + MemberDecorate 89(S3) 0 Offset 0 + MemberDecorate 90(B4) 0 Offset 0 + MemberDecorate 90(B4) 1 Offset 80 + Decorate 90(B4) BufferBlock + Decorate 92(b4) DescriptorSet 0 + MemberDecorate 93(S2) 0 RowMajor + MemberDecorate 93(S2) 0 Offset 0 + MemberDecorate 93(S2) 0 MatrixStride 16 + MemberDecorate 93(S2) 1 Offset 64 + MemberDecorate 93(S2) 2 Offset 68 + MemberDecorate 94(B3) 0 Offset 0 + Decorate 94(B3) BufferBlock + Decorate 96(b3) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 8 1 + 7: TypeVector 6(int8_t) 2 + 8: TypeVector 6(int8_t) 3 + 9: TypeInt 32 0 + 10: 9(int) Constant 2 + 11: TypeArray 6(int8_t) 10 + 12(S): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) + 13: TypeArray 12(S) 10 + 14: 9(int) Constant 100 + 15: TypeArray 7(i8vec2) 14 + 16: TypeRuntimeArray 6(int8_t) + 17(B2): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) 11 12(S) 13 15 16 + 18: TypePointer Uniform 17(B2) + 19(b2): 18(ptr) Variable Uniform + 20: TypeInt 32 1 + 21: 20(int) Constant 0 + 22: TypeArray 6(int8_t) 10 + 23(S): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) + 24: TypeArray 23(S) 10 + 25(B1): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) 22 23(S) 24 20(int) + 26: TypePointer Uniform 25(B1) + 27(b1): 26(ptr) Variable Uniform + 28: TypePointer Uniform 6(int8_t) + 32: 20(int) Constant 1 + 33: 20(int) Constant 2 + 34: TypePointer Uniform 8(i8vec3) + 37: TypeVector 20(int) 3 + 39: TypeVector 20(int) 2 + 42: TypePointer Uniform 7(i8vec2) + 44: TypeArray 6(int8_t) 10 + 45(S): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) + 46: TypeArray 45(S) 10 + 47: TypeArray 7(i8vec2) 14 + 48: TypeArray 6(int8_t) 14 + 49(B5): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) 44 45(S) 46 47 48 + 50: TypePointer Uniform 49(B5) + 51(b5): 50(ptr) Variable Uniform + 58: 20(int) Constant 3 + 68: TypePointer Function 20(int) + 73: TypeVector 20(int) 4 + 74: TypePointer Function 73(ivec4) + 85: TypeFloat 32 + 86: TypeVector 85(float) 4 + 87: TypeMatrix 86(fvec4) 4 + 88(S2): TypeStruct 87 6(int8_t) 20(int) + 89(S3): TypeStruct 88(S2) + 90(B4): TypeStruct 88(S2) 89(S3) + 91: TypePointer Uniform 90(B4) + 92(b4): 91(ptr) Variable Uniform + 93(S2): TypeStruct 87 6(int8_t) 20(int) + 94(B3): TypeStruct 93(S2) + 95: TypePointer Uniform 94(B3) + 96(b3): 95(ptr) Variable Uniform + 97: TypePointer Uniform 87 + 104: 9(int) Constant 0 + 108: 20(int) Constant 5 + 112: TypePointer Function 37(ivec3) + 114: 20(int) Constant 7 + 115: 20(int) Constant 6 + 116: TypePointer Uniform 20(int) + 166: 39(ivec2) ConstantComposite 32 33 + 4(main): 2 Function None 3 + 5: Label + 69(x0): 68(ptr) Variable Function + 75(x1): 74(ptr) Variable Function + 113(v3): 112(ptr) Variable Function + 135(u3): 112(ptr) Variable Function + 29: 28(ptr) AccessChain 27(b1) 21 + 30: 6(int8_t) Load 29 + 31: 28(ptr) AccessChain 19(b2) 21 + Store 31 30 + 35: 34(ptr) AccessChain 19(b2) 33 + 36: 8(i8vec3) Load 35 + 38: 37(ivec3) SConvert 36 + 40: 39(ivec2) VectorShuffle 38 38 0 1 + 41: 7(i8vec2) SConvert 40 + 43: 42(ptr) AccessChain 19(b2) 32 + Store 43 41 + 52: 34(ptr) AccessChain 51(b5) 33 + 53: 8(i8vec3) Load 52 + 54: 37(ivec3) SConvert 53 + 55: 39(ivec2) VectorShuffle 54 54 0 1 + 56: 7(i8vec2) SConvert 55 + 57: 42(ptr) AccessChain 19(b2) 32 + Store 57 56 + 59: 28(ptr) AccessChain 19(b2) 58 21 + 60: 6(int8_t) Load 59 + 61: 28(ptr) AccessChain 19(b2) 58 21 + Store 61 60 + 62: 28(ptr) AccessChain 51(b5) 58 32 + 63: 6(int8_t) Load 62 + 64: 28(ptr) AccessChain 19(b2) 58 32 + Store 64 63 + 65: 42(ptr) AccessChain 19(b2) 32 + 66: 7(i8vec2) Load 65 + 67: 42(ptr) AccessChain 19(b2) 32 + Store 67 66 + 70: 28(ptr) AccessChain 27(b1) 21 + 71: 6(int8_t) Load 70 + 72: 20(int) SConvert 71 + Store 69(x0) 72 + 76: 28(ptr) AccessChain 27(b1) 21 + 77: 6(int8_t) Load 76 + 78: 20(int) SConvert 77 + 79: 42(ptr) AccessChain 19(b2) 32 + 80: 7(i8vec2) Load 79 + 81: 39(ivec2) SConvert 80 + 82: 20(int) CompositeExtract 81 0 + 83: 20(int) CompositeExtract 81 1 + 84: 73(ivec4) CompositeConstruct 78 82 83 32 + Store 75(x1) 84 + 98: 97(ptr) AccessChain 96(b3) 21 21 + 99: 87 Load 98 + 100: 97(ptr) AccessChain 92(b4) 21 21 + Store 100 99 + 101: 42(ptr) AccessChain 19(b2) 32 + 102: 7(i8vec2) Load 101 + 103: 39(ivec2) SConvert 102 + 105: 20(int) CompositeExtract 103 0 + 106: 6(int8_t) SConvert 105 + 107: 28(ptr) AccessChain 19(b2) 21 + Store 107 106 + 109: 42(ptr) AccessChain 19(b2) 108 32 32 + 110: 7(i8vec2) Load 109 + 111: 42(ptr) AccessChain 19(b2) 32 + Store 111 110 + 117: 116(ptr) AccessChain 27(b1) 115 + 118: 20(int) Load 117 + 119: 28(ptr) AccessChain 19(b2) 114 118 + 120: 6(int8_t) Load 119 + 121: 20(int) SConvert 120 + 122: 116(ptr) AccessChain 27(b1) 115 + 123: 20(int) Load 122 + 124: 20(int) IAdd 123 32 + 125: 28(ptr) AccessChain 19(b2) 114 124 + 126: 6(int8_t) Load 125 + 127: 20(int) SConvert 126 + 128: 116(ptr) AccessChain 27(b1) 115 + 129: 20(int) Load 128 + 130: 20(int) IAdd 129 33 + 131: 28(ptr) AccessChain 19(b2) 114 130 + 132: 6(int8_t) Load 131 + 133: 20(int) SConvert 132 + 134: 37(ivec3) CompositeConstruct 121 127 133 + Store 113(v3) 134 + 136: 116(ptr) AccessChain 27(b1) 115 + 137: 20(int) Load 136 + 138: 28(ptr) AccessChain 51(b5) 114 137 + 139: 6(int8_t) Load 138 + 140: 20(int) SConvert 139 + 141: 116(ptr) AccessChain 27(b1) 115 + 142: 20(int) Load 141 + 143: 20(int) IAdd 142 32 + 144: 28(ptr) AccessChain 51(b5) 114 143 + 145: 6(int8_t) Load 144 + 146: 20(int) SConvert 145 + 147: 116(ptr) AccessChain 27(b1) 115 + 148: 20(int) Load 147 + 149: 20(int) IAdd 148 33 + 150: 28(ptr) AccessChain 51(b5) 114 149 + 151: 6(int8_t) Load 150 + 152: 20(int) SConvert 151 + 153: 37(ivec3) CompositeConstruct 140 146 152 + Store 135(u3) 153 + 154: 42(ptr) AccessChain 19(b2) 115 21 + 155: 7(i8vec2) Load 154 + 156: 42(ptr) AccessChain 19(b2) 115 21 + Store 156 155 + 157: 42(ptr) AccessChain 51(b5) 115 32 + 158: 7(i8vec2) Load 157 + 159: 42(ptr) AccessChain 19(b2) 115 32 + Store 159 158 + 160: 28(ptr) AccessChain 27(b1) 21 + 161: 6(int8_t) Load 160 + 162: 28(ptr) AccessChain 19(b2) 32 104 + Store 162 161 + 163: 28(ptr) AccessChain 19(b2) 32 104 + 164: 6(int8_t) Load 163 + 165: 28(ptr) AccessChain 19(b2) 21 + Store 165 164 + 167: 7(i8vec2) SConvert 166 + 168: 42(ptr) AccessChain 19(b2) 32 + Store 168 167 + 169: 6(int8_t) SConvert 58 + 170: 28(ptr) AccessChain 19(b2) 21 + Store 170 169 + Return + FunctionEnd diff --git a/Test/baseResults/spv.8bitstorage-uint.frag.out b/Test/baseResults/spv.8bitstorage-uint.frag.out new file mode 100755 index 0000000000000000000000000000000000000000..f4e7b6d679cf28a2c400783f2397ad56b84f9ddf --- /dev/null +++ b/Test/baseResults/spv.8bitstorage-uint.frag.out @@ -0,0 +1,337 @@ +spv.8bitstorage-uint.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 173 + + Capability Shader + Capability Int8 + Capability CapabilityStorageBuffer8BitAccess + Capability CapabilityUniformAndStorageBuffer8BitAccess + Extension "SPV_KHR_8bit_storage" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_EXT_shader_8bit_storage" + Name 4 "main" + Name 12 "S" + MemberName 12(S) 0 "x" + MemberName 12(S) 1 "y" + MemberName 12(S) 2 "z" + Name 17 "B2" + MemberName 17(B2) 0 "o" + MemberName 17(B2) 1 "p" + MemberName 17(B2) 2 "q" + MemberName 17(B2) 3 "r" + MemberName 17(B2) 4 "u" + MemberName 17(B2) 5 "v" + MemberName 17(B2) 6 "x" + MemberName 17(B2) 7 "w" + Name 19 "b2" + Name 23 "S" + MemberName 23(S) 0 "x" + MemberName 23(S) 1 "y" + MemberName 23(S) 2 "z" + Name 25 "B1" + MemberName 25(B1) 0 "a" + MemberName 25(B1) 1 "b" + MemberName 25(B1) 2 "c" + MemberName 25(B1) 3 "d" + MemberName 25(B1) 4 "g" + MemberName 25(B1) 5 "h" + MemberName 25(B1) 6 "j" + Name 27 "b1" + Name 45 "S" + MemberName 45(S) 0 "x" + MemberName 45(S) 1 "y" + MemberName 45(S) 2 "z" + Name 49 "B5" + MemberName 49(B5) 0 "o" + MemberName 49(B5) 1 "p" + MemberName 49(B5) 2 "q" + MemberName 49(B5) 3 "r" + MemberName 49(B5) 4 "u" + MemberName 49(B5) 5 "v" + MemberName 49(B5) 6 "x" + MemberName 49(B5) 7 "w" + Name 51 "b5" + Name 69 "x0" + Name 75 "x1" + Name 89 "S2" + MemberName 89(S2) 0 "x" + MemberName 89(S2) 1 "y" + MemberName 89(S2) 2 "z" + Name 90 "S3" + MemberName 90(S3) 0 "x" + Name 91 "B4" + MemberName 91(B4) 0 "x" + MemberName 91(B4) 1 "y" + Name 93 "b4" + Name 94 "S2" + MemberName 94(S2) 0 "x" + MemberName 94(S2) 1 "y" + MemberName 94(S2) 2 "z" + Name 95 "B3" + MemberName 95(B3) 0 "x" + Name 97 "b3" + Name 114 "v3" + Name 136 "u3" + Decorate 11 ArrayStride 1 + MemberDecorate 12(S) 0 Offset 0 + MemberDecorate 12(S) 1 Offset 2 + MemberDecorate 12(S) 2 Offset 4 + Decorate 13 ArrayStride 8 + Decorate 15 ArrayStride 2 + Decorate 16 ArrayStride 1 + MemberDecorate 17(B2) 0 Offset 0 + MemberDecorate 17(B2) 1 Offset 2 + MemberDecorate 17(B2) 2 Offset 4 + MemberDecorate 17(B2) 3 Offset 7 + MemberDecorate 17(B2) 4 Offset 12 + MemberDecorate 17(B2) 5 Offset 20 + MemberDecorate 17(B2) 6 Offset 36 + MemberDecorate 17(B2) 7 Offset 236 + Decorate 17(B2) BufferBlock + Decorate 19(b2) DescriptorSet 0 + Decorate 22 ArrayStride 16 + MemberDecorate 23(S) 0 Offset 0 + MemberDecorate 23(S) 1 Offset 2 + MemberDecorate 23(S) 2 Offset 4 + Decorate 24 ArrayStride 16 + MemberDecorate 25(B1) 0 Offset 0 + MemberDecorate 25(B1) 1 Offset 2 + MemberDecorate 25(B1) 2 Offset 4 + MemberDecorate 25(B1) 3 Offset 16 + MemberDecorate 25(B1) 4 Offset 48 + MemberDecorate 25(B1) 5 Offset 64 + MemberDecorate 25(B1) 6 Offset 96 + Decorate 25(B1) Block + Decorate 27(b1) DescriptorSet 0 + Decorate 44 ArrayStride 16 + MemberDecorate 45(S) 0 Offset 0 + MemberDecorate 45(S) 1 Offset 2 + MemberDecorate 45(S) 2 Offset 4 + Decorate 46 ArrayStride 16 + Decorate 47 ArrayStride 16 + Decorate 48 ArrayStride 16 + MemberDecorate 49(B5) 0 Offset 0 + MemberDecorate 49(B5) 1 Offset 2 + MemberDecorate 49(B5) 2 Offset 4 + MemberDecorate 49(B5) 3 Offset 16 + MemberDecorate 49(B5) 4 Offset 48 + MemberDecorate 49(B5) 5 Offset 64 + MemberDecorate 49(B5) 6 Offset 96 + MemberDecorate 49(B5) 7 Offset 1696 + Decorate 49(B5) Block + Decorate 51(b5) DescriptorSet 0 + MemberDecorate 89(S2) 0 ColMajor + MemberDecorate 89(S2) 0 Offset 0 + MemberDecorate 89(S2) 0 MatrixStride 16 + MemberDecorate 89(S2) 1 Offset 64 + MemberDecorate 89(S2) 2 Offset 68 + MemberDecorate 90(S3) 0 Offset 0 + MemberDecorate 91(B4) 0 Offset 0 + MemberDecorate 91(B4) 1 Offset 80 + Decorate 91(B4) BufferBlock + Decorate 93(b4) DescriptorSet 0 + MemberDecorate 94(S2) 0 RowMajor + MemberDecorate 94(S2) 0 Offset 0 + MemberDecorate 94(S2) 0 MatrixStride 16 + MemberDecorate 94(S2) 1 Offset 64 + MemberDecorate 94(S2) 2 Offset 68 + MemberDecorate 95(B3) 0 Offset 0 + Decorate 95(B3) BufferBlock + Decorate 97(b3) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 8 0 + 7: TypeVector 6(int8_t) 2 + 8: TypeVector 6(int8_t) 3 + 9: TypeInt 32 0 + 10: 9(int) Constant 2 + 11: TypeArray 6(int8_t) 10 + 12(S): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) + 13: TypeArray 12(S) 10 + 14: 9(int) Constant 100 + 15: TypeArray 7(i8vec2) 14 + 16: TypeRuntimeArray 6(int8_t) + 17(B2): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) 11 12(S) 13 15 16 + 18: TypePointer Uniform 17(B2) + 19(b2): 18(ptr) Variable Uniform + 20: TypeInt 32 1 + 21: 20(int) Constant 0 + 22: TypeArray 6(int8_t) 10 + 23(S): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) + 24: TypeArray 23(S) 10 + 25(B1): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) 22 23(S) 24 9(int) + 26: TypePointer Uniform 25(B1) + 27(b1): 26(ptr) Variable Uniform + 28: TypePointer Uniform 6(int8_t) + 32: 20(int) Constant 1 + 33: 20(int) Constant 2 + 34: TypePointer Uniform 8(i8vec3) + 37: TypeVector 9(int) 3 + 39: TypeVector 9(int) 2 + 42: TypePointer Uniform 7(i8vec2) + 44: TypeArray 6(int8_t) 10 + 45(S): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) + 46: TypeArray 45(S) 10 + 47: TypeArray 7(i8vec2) 14 + 48: TypeArray 6(int8_t) 14 + 49(B5): TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) 44 45(S) 46 47 48 + 50: TypePointer Uniform 49(B5) + 51(b5): 50(ptr) Variable Uniform + 58: 20(int) Constant 3 + 68: TypePointer Function 9(int) + 73: TypeVector 9(int) 4 + 74: TypePointer Function 73(ivec4) + 82: 9(int) Constant 1 + 86: TypeFloat 32 + 87: TypeVector 86(float) 4 + 88: TypeMatrix 87(fvec4) 4 + 89(S2): TypeStruct 88 6(int8_t) 9(int) + 90(S3): TypeStruct 89(S2) + 91(B4): TypeStruct 89(S2) 90(S3) + 92: TypePointer Uniform 91(B4) + 93(b4): 92(ptr) Variable Uniform + 94(S2): TypeStruct 88 6(int8_t) 9(int) + 95(B3): TypeStruct 94(S2) + 96: TypePointer Uniform 95(B3) + 97(b3): 96(ptr) Variable Uniform + 98: TypePointer Uniform 88 + 105: 9(int) Constant 0 + 109: 20(int) Constant 5 + 113: TypePointer Function 37(ivec3) + 115: 20(int) Constant 7 + 116: 20(int) Constant 6 + 117: TypePointer Uniform 9(int) + 167: 39(ivec2) ConstantComposite 82 10 + 170: 9(int) Constant 3 + 4(main): 2 Function None 3 + 5: Label + 69(x0): 68(ptr) Variable Function + 75(x1): 74(ptr) Variable Function + 114(v3): 113(ptr) Variable Function + 136(u3): 113(ptr) Variable Function + 29: 28(ptr) AccessChain 27(b1) 21 + 30: 6(int8_t) Load 29 + 31: 28(ptr) AccessChain 19(b2) 21 + Store 31 30 + 35: 34(ptr) AccessChain 19(b2) 33 + 36: 8(i8vec3) Load 35 + 38: 37(ivec3) UConvert 36 + 40: 39(ivec2) VectorShuffle 38 38 0 1 + 41: 7(i8vec2) UConvert 40 + 43: 42(ptr) AccessChain 19(b2) 32 + Store 43 41 + 52: 34(ptr) AccessChain 51(b5) 33 + 53: 8(i8vec3) Load 52 + 54: 37(ivec3) UConvert 53 + 55: 39(ivec2) VectorShuffle 54 54 0 1 + 56: 7(i8vec2) UConvert 55 + 57: 42(ptr) AccessChain 19(b2) 32 + Store 57 56 + 59: 28(ptr) AccessChain 19(b2) 58 21 + 60: 6(int8_t) Load 59 + 61: 28(ptr) AccessChain 19(b2) 58 21 + Store 61 60 + 62: 28(ptr) AccessChain 51(b5) 58 32 + 63: 6(int8_t) Load 62 + 64: 28(ptr) AccessChain 19(b2) 58 32 + Store 64 63 + 65: 42(ptr) AccessChain 19(b2) 32 + 66: 7(i8vec2) Load 65 + 67: 42(ptr) AccessChain 19(b2) 32 + Store 67 66 + 70: 28(ptr) AccessChain 27(b1) 21 + 71: 6(int8_t) Load 70 + 72: 9(int) UConvert 71 + Store 69(x0) 72 + 76: 28(ptr) AccessChain 27(b1) 21 + 77: 6(int8_t) Load 76 + 78: 9(int) UConvert 77 + 79: 42(ptr) AccessChain 19(b2) 32 + 80: 7(i8vec2) Load 79 + 81: 39(ivec2) UConvert 80 + 83: 9(int) CompositeExtract 81 0 + 84: 9(int) CompositeExtract 81 1 + 85: 73(ivec4) CompositeConstruct 78 83 84 82 + Store 75(x1) 85 + 99: 98(ptr) AccessChain 97(b3) 21 21 + 100: 88 Load 99 + 101: 98(ptr) AccessChain 93(b4) 21 21 + Store 101 100 + 102: 42(ptr) AccessChain 19(b2) 32 + 103: 7(i8vec2) Load 102 + 104: 39(ivec2) UConvert 103 + 106: 9(int) CompositeExtract 104 0 + 107: 6(int8_t) UConvert 106 + 108: 28(ptr) AccessChain 19(b2) 21 + Store 108 107 + 110: 42(ptr) AccessChain 19(b2) 109 32 32 + 111: 7(i8vec2) Load 110 + 112: 42(ptr) AccessChain 19(b2) 32 + Store 112 111 + 118: 117(ptr) AccessChain 27(b1) 116 + 119: 9(int) Load 118 + 120: 28(ptr) AccessChain 19(b2) 115 119 + 121: 6(int8_t) Load 120 + 122: 9(int) UConvert 121 + 123: 117(ptr) AccessChain 27(b1) 116 + 124: 9(int) Load 123 + 125: 9(int) IAdd 124 82 + 126: 28(ptr) AccessChain 19(b2) 115 125 + 127: 6(int8_t) Load 126 + 128: 9(int) UConvert 127 + 129: 117(ptr) AccessChain 27(b1) 116 + 130: 9(int) Load 129 + 131: 9(int) IAdd 130 10 + 132: 28(ptr) AccessChain 19(b2) 115 131 + 133: 6(int8_t) Load 132 + 134: 9(int) UConvert 133 + 135: 37(ivec3) CompositeConstruct 122 128 134 + Store 114(v3) 135 + 137: 117(ptr) AccessChain 27(b1) 116 + 138: 9(int) Load 137 + 139: 28(ptr) AccessChain 51(b5) 115 138 + 140: 6(int8_t) Load 139 + 141: 9(int) UConvert 140 + 142: 117(ptr) AccessChain 27(b1) 116 + 143: 9(int) Load 142 + 144: 9(int) IAdd 143 82 + 145: 28(ptr) AccessChain 51(b5) 115 144 + 146: 6(int8_t) Load 145 + 147: 9(int) UConvert 146 + 148: 117(ptr) AccessChain 27(b1) 116 + 149: 9(int) Load 148 + 150: 9(int) IAdd 149 10 + 151: 28(ptr) AccessChain 51(b5) 115 150 + 152: 6(int8_t) Load 151 + 153: 9(int) UConvert 152 + 154: 37(ivec3) CompositeConstruct 141 147 153 + Store 136(u3) 154 + 155: 42(ptr) AccessChain 19(b2) 116 21 + 156: 7(i8vec2) Load 155 + 157: 42(ptr) AccessChain 19(b2) 116 21 + Store 157 156 + 158: 42(ptr) AccessChain 51(b5) 116 32 + 159: 7(i8vec2) Load 158 + 160: 42(ptr) AccessChain 19(b2) 116 32 + Store 160 159 + 161: 28(ptr) AccessChain 27(b1) 21 + 162: 6(int8_t) Load 161 + 163: 28(ptr) AccessChain 19(b2) 32 105 + Store 163 162 + 164: 28(ptr) AccessChain 19(b2) 32 105 + 165: 6(int8_t) Load 164 + 166: 28(ptr) AccessChain 19(b2) 21 + Store 166 165 + 168: 7(i8vec2) UConvert 167 + 169: 42(ptr) AccessChain 19(b2) 32 + Store 169 168 + 171: 6(int8_t) UConvert 170 + 172: 28(ptr) AccessChain 19(b2) 21 + Store 172 171 + Return + FunctionEnd diff --git a/Test/baseResults/spv.8bitstorage_Error-int.frag.out b/Test/baseResults/spv.8bitstorage_Error-int.frag.out new file mode 100755 index 0000000000000000000000000000000000000000..14104abd091dc5ebbf1bbf87d0873da8ff79ba39 --- /dev/null +++ b/Test/baseResults/spv.8bitstorage_Error-int.frag.out @@ -0,0 +1,71 @@ +spv.8bitstorage_Error-int.frag +ERROR: 0:54: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:58: 'can't use with structs containing int8' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:61: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:74: ''[' does not operate on types containing (u)int8' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:75: 'can't swizzle types containing (u)int8' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:76: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:76: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:76: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:77: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:77: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:78: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform int8_t' and a right operand of type 'layout( column_major std140 offset=0) uniform int8_t' (or there is no acceptable conversion) +ERROR: 0:79: '-' : wrong operand type no operation '-' exists that takes an operand of type layout( column_major std140 offset=0) uniform int8_t (or there is no acceptable conversion) +ERROR: 0:80: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform int8_t' and a right operand of type ' const int' (or there is no acceptable conversion) +ERROR: 0:81: 'can't swizzle types containing (u)int8' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:82: 'can't use with structs containing int8' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:83: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:84: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:85: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform int8_t' and a right operand of type 'layout( column_major std140 offset=0) uniform int8_t' (or there is no acceptable conversion) +ERROR: 0:87: 'can't use with arrays containing int8' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:88: '8-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:89: '8-bit array constructors not supported' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:89: '8-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:92: 'Can't construct structure containing 8-bit type' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:93: 'func2' : no matching overloaded function found +ERROR: 0:99: '' : syntax error, unexpected IDENTIFIER +ERROR: 26 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.8bitstorage_Error-uint.frag.out b/Test/baseResults/spv.8bitstorage_Error-uint.frag.out new file mode 100755 index 0000000000000000000000000000000000000000..f8a9d90a65c130943c408824e264c13b9f4d4699 --- /dev/null +++ b/Test/baseResults/spv.8bitstorage_Error-uint.frag.out @@ -0,0 +1,71 @@ +spv.8bitstorage_Error-uint.frag +ERROR: 0:54: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:58: 'can't use with structs containing uint8' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:61: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:74: ''[' does not operate on types containing (u)int8' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:75: 'can't swizzle types containing (u)int8' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:76: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:76: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:76: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:77: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:77: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:78: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform uint8_t' and a right operand of type 'layout( column_major std140 offset=0) uniform uint8_t' (or there is no acceptable conversion) +ERROR: 0:79: '-' : wrong operand type no operation '-' exists that takes an operand of type layout( column_major std140 offset=0) uniform uint8_t (or there is no acceptable conversion) +ERROR: 0:80: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform uint8_t' and a right operand of type ' const int' (or there is no acceptable conversion) +ERROR: 0:81: 'can't swizzle types containing (u)int8' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:82: 'can't use with structs containing uint8' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:83: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:84: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:85: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform uint8_t' and a right operand of type 'layout( column_major std140 offset=0) uniform uint8_t' (or there is no acceptable conversion) +ERROR: 0:87: 'can't use with arrays containing uint8' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:88: '8-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:89: '8-bit array constructors not supported' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:89: '8-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:92: 'Can't construct structure containing 8-bit type' : required extension not requested: Possible extensions include: +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_int8 +ERROR: 0:93: 'func2' : no matching overloaded function found +ERROR: 0:99: '' : syntax error, unexpected IDENTIFIER +ERROR: 26 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.float32.frag.out b/Test/baseResults/spv.float32.frag.out index 464c75db2e23085b68092ba44bdae8b347c19e86..40c6677f74627226d5e25b04a94468a588147ffa 100644 --- a/Test/baseResults/spv.float32.frag.out +++ b/Test/baseResults/spv.float32.frag.out @@ -1,7 +1,7 @@ spv.float32.frag // Module Version 10300 // Generated by (magic number): 80007 -// Id's are bound by 530 +// Id's are bound by 533 Capability Shader Capability Float16 @@ -13,7 +13,7 @@ spv.float32.frag Capability InterpolationFunction 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 468 + EntryPoint Fragment 4 "main" 471 ExecutionMode 4 OriginUpperLeft Source GLSL 450 SourceExtension "GL_KHX_shader_explicit_arithmetic_types" @@ -48,81 +48,81 @@ spv.float32.frag Name 189 "i16v" Name 195 "i32v" Name 201 "i64v" - Name 204 "u8v" - Name 210 "u16v" - Name 215 "u32v" - Name 221 "u64v" - Name 226 "f32v2" - Name 227 "f32v1" - Name 259 "f32v2" - Name 260 "f32v1" - Name 276 "f32v2" - Name 277 "f32v1" - Name 298 "f32" - Name 302 "f32v3" - Name 342 "bv" - Name 363 "b" - Name 373 "iv" - Name 374 "ResType" - Name 381 "f32" - Name 382 "f32v1" - Name 386 "f32v2" - Name 392 "f32v3" - Name 411 "f32m3" - Name 412 "f32m1" - Name 414 "f32m2" - Name 423 "f32v1" - Name 425 "f32v2" - Name 430 "f32m4" - Name 433 "f32" - Name 436 "f32m5" - Name 441 "f32m6" - Name 442 "f32m7" - Name 445 "bv" - Name 446 "f32v1" - Name 448 "f32v2" - Name 466 "f32v" - Name 468 "if32v" - Name 517 "S" - MemberName 517(S) 0 "x" - MemberName 517(S) 1 "y" - MemberName 517(S) 2 "z" - Name 519 "B1" - MemberName 519(B1) 0 "a" - MemberName 519(B1) 1 "b" - MemberName 519(B1) 2 "c" - MemberName 519(B1) 3 "d" - MemberName 519(B1) 4 "e" - MemberName 519(B1) 5 "f" - MemberName 519(B1) 6 "g" - MemberName 519(B1) 7 "h" - Name 521 "" - Name 522 "sf16" - Name 523 "sf" - Name 524 "sd" - Decorate 515 ArrayStride 16 - Decorate 516 ArrayStride 32 - MemberDecorate 517(S) 0 Offset 0 - MemberDecorate 517(S) 1 Offset 8 - MemberDecorate 517(S) 2 Offset 16 - Decorate 518 ArrayStride 32 - MemberDecorate 519(B1) 0 Offset 0 - MemberDecorate 519(B1) 1 Offset 8 - MemberDecorate 519(B1) 2 Offset 16 - MemberDecorate 519(B1) 3 Offset 32 - MemberDecorate 519(B1) 4 ColMajor - MemberDecorate 519(B1) 4 Offset 64 - MemberDecorate 519(B1) 4 MatrixStride 16 - MemberDecorate 519(B1) 5 ColMajor - MemberDecorate 519(B1) 5 Offset 96 - MemberDecorate 519(B1) 5 MatrixStride 16 - MemberDecorate 519(B1) 6 Offset 160 - MemberDecorate 519(B1) 7 Offset 192 - Decorate 519(B1) Block - Decorate 521 DescriptorSet 0 - Decorate 522(sf16) SpecId 100 - Decorate 523(sf) SpecId 101 - Decorate 524(sd) SpecId 102 + Name 207 "u8v" + Name 213 "u16v" + Name 218 "u32v" + Name 224 "u64v" + Name 229 "f32v2" + Name 230 "f32v1" + Name 262 "f32v2" + Name 263 "f32v1" + Name 279 "f32v2" + Name 280 "f32v1" + Name 301 "f32" + Name 305 "f32v3" + Name 345 "bv" + Name 366 "b" + Name 376 "iv" + Name 377 "ResType" + Name 384 "f32" + Name 385 "f32v1" + Name 389 "f32v2" + Name 395 "f32v3" + Name 414 "f32m3" + Name 415 "f32m1" + Name 417 "f32m2" + Name 426 "f32v1" + Name 428 "f32v2" + Name 433 "f32m4" + Name 436 "f32" + Name 439 "f32m5" + Name 444 "f32m6" + Name 445 "f32m7" + Name 448 "bv" + Name 449 "f32v1" + Name 451 "f32v2" + Name 469 "f32v" + Name 471 "if32v" + Name 520 "S" + MemberName 520(S) 0 "x" + MemberName 520(S) 1 "y" + MemberName 520(S) 2 "z" + Name 522 "B1" + MemberName 522(B1) 0 "a" + MemberName 522(B1) 1 "b" + MemberName 522(B1) 2 "c" + MemberName 522(B1) 3 "d" + MemberName 522(B1) 4 "e" + MemberName 522(B1) 5 "f" + MemberName 522(B1) 6 "g" + MemberName 522(B1) 7 "h" + Name 524 "" + Name 525 "sf16" + Name 526 "sf" + Name 527 "sd" + Decorate 518 ArrayStride 16 + Decorate 519 ArrayStride 32 + MemberDecorate 520(S) 0 Offset 0 + MemberDecorate 520(S) 1 Offset 8 + MemberDecorate 520(S) 2 Offset 16 + Decorate 521 ArrayStride 32 + MemberDecorate 522(B1) 0 Offset 0 + MemberDecorate 522(B1) 1 Offset 8 + MemberDecorate 522(B1) 2 Offset 16 + MemberDecorate 522(B1) 3 Offset 32 + MemberDecorate 522(B1) 4 ColMajor + MemberDecorate 522(B1) 4 Offset 64 + MemberDecorate 522(B1) 4 MatrixStride 16 + MemberDecorate 522(B1) 5 ColMajor + MemberDecorate 522(B1) 5 Offset 96 + MemberDecorate 522(B1) 5 MatrixStride 16 + MemberDecorate 522(B1) 6 Offset 160 + MemberDecorate 522(B1) 7 Offset 192 + Decorate 522(B1) Block + Decorate 524 DescriptorSet 0 + Decorate 525(sf16) SpecId 100 + Decorate 526(sf) SpecId 101 + Decorate 527(sd) SpecId 102 2: TypeVoid 3: TypeFunction 2 26: TypeFloat 32 @@ -166,47 +166,50 @@ spv.float32.frag 198: TypeInt 64 1 199: TypeVector 198(int64_t) 3 200: TypePointer Function 199(i64vec3) - 207: TypeInt 16 0 - 208: TypeVector 207(int16_t) 3 - 209: TypePointer Function 208(i16vec3) - 213: TypeVector 31(int) 3 - 214: TypePointer Function 213(ivec3) - 218: TypeInt 64 0 - 219: TypeVector 218(int64_t) 3 - 220: TypePointer Function 219(i64vec3) - 224: TypeVector 26(float) 4 - 225: TypePointer Function 224(fvec4) - 374(ResType): TypeStruct 153(fvec3) 193(ivec3) - 409: TypeMatrix 153(fvec3) 2 - 410: TypePointer Function 409 - 428: TypeMatrix 27(fvec2) 3 - 429: TypePointer Function 428 - 434: TypeMatrix 153(fvec3) 3 - 435: TypePointer Function 434 - 439: TypeMatrix 224(fvec4) 4 - 440: TypePointer Function 439 - 467: TypePointer Input 153(fvec3) - 468(if32v): 467(ptr) Variable Input - 469: TypePointer Input 26(float) - 506: 192(int) Constant 1 - 511: 26(float) Constant 1056964608 - 512: 27(fvec2) ConstantComposite 511 511 - 514: 31(int) Constant 2 - 515: TypeArray 26(float) 514 - 516: TypeArray 409 514 - 517(S): TypeStruct 26(float) 27(fvec2) 153(fvec3) - 518: TypeArray 517(S) 514 - 519(B1): TypeStruct 26(float) 27(fvec2) 153(fvec3) 515 409 516 517(S) 518 - 520: TypePointer Uniform 519(B1) - 521: 520(ptr) Variable Uniform - 522(sf16):172(float16_t) SpecConstant 12288 - 523(sf): 26(float) SpecConstant 1048576000 - 524(sd):149(float64_t) SpecConstant 0 1071644672 - 525: 26(float) SpecConstantOp 115 522(sf16) - 526: 26(float) SpecConstantOp 115 522(sf16) - 527:149(float64_t) SpecConstantOp 115 526 - 528:172(float16_t) SpecConstantOp 115 523(sf) - 529:172(float16_t) SpecConstantOp 115 524(sd) + 204: TypeInt 8 0 + 205: TypeVector 204(int8_t) 3 + 206: TypePointer Function 205(i8vec3) + 210: TypeInt 16 0 + 211: TypeVector 210(int16_t) 3 + 212: TypePointer Function 211(i16vec3) + 216: TypeVector 31(int) 3 + 217: TypePointer Function 216(ivec3) + 221: TypeInt 64 0 + 222: TypeVector 221(int64_t) 3 + 223: TypePointer Function 222(i64vec3) + 227: TypeVector 26(float) 4 + 228: TypePointer Function 227(fvec4) + 377(ResType): TypeStruct 153(fvec3) 193(ivec3) + 412: TypeMatrix 153(fvec3) 2 + 413: TypePointer Function 412 + 431: TypeMatrix 27(fvec2) 3 + 432: TypePointer Function 431 + 437: TypeMatrix 153(fvec3) 3 + 438: TypePointer Function 437 + 442: TypeMatrix 227(fvec4) 4 + 443: TypePointer Function 442 + 470: TypePointer Input 153(fvec3) + 471(if32v): 470(ptr) Variable Input + 472: TypePointer Input 26(float) + 509: 192(int) Constant 1 + 514: 26(float) Constant 1056964608 + 515: 27(fvec2) ConstantComposite 514 514 + 517: 31(int) Constant 2 + 518: TypeArray 26(float) 517 + 519: TypeArray 412 517 + 520(S): TypeStruct 26(float) 27(fvec2) 153(fvec3) + 521: TypeArray 520(S) 517 + 522(B1): TypeStruct 26(float) 27(fvec2) 153(fvec3) 518 412 519 520(S) 521 + 523: TypePointer Uniform 522(B1) + 524: 523(ptr) Variable Uniform + 525(sf16):172(float16_t) SpecConstant 12288 + 526(sf): 26(float) SpecConstant 1048576000 + 527(sd):149(float64_t) SpecConstant 0 1071644672 + 528: 26(float) SpecConstantOp 115 525(sf16) + 529: 26(float) SpecConstantOp 115 525(sf16) + 530:149(float64_t) SpecConstantOp 115 529 + 531:172(float16_t) SpecConstantOp 115 526(sf) + 532:172(float16_t) SpecConstantOp 115 527(sd) 4(main): 2 Function None 3 5: Label Return @@ -363,10 +366,10 @@ spv.float32.frag 189(i16v): 188(ptr) Variable Function 195(i32v): 194(ptr) Variable Function 201(i64v): 200(ptr) Variable Function - 204(u8v): 182(ptr) Variable Function - 210(u16v): 209(ptr) Variable Function - 215(u32v): 214(ptr) Variable Function - 221(u64v): 220(ptr) Variable Function + 207(u8v): 206(ptr) Variable Function + 213(u16v): 212(ptr) Variable Function + 218(u32v): 217(ptr) Variable Function + 224(u64v): 223(ptr) Variable Function 156: 153(fvec3) Load 155(f32v) 157:150(f64vec3) FConvert 156 Store 152(f64v) 157 @@ -400,401 +403,401 @@ spv.float32.frag 202: 153(fvec3) Load 155(f32v) 203:199(i64vec3) ConvertFToS 202 Store 201(i64v) 203 - 205: 153(fvec3) Load 155(f32v) - 206: 181(i8vec3) ConvertFToS 205 - Store 204(u8v) 206 - 211: 153(fvec3) Load 155(f32v) - 212:208(i16vec3) ConvertFToU 211 - Store 210(u16v) 212 - 216: 153(fvec3) Load 155(f32v) - 217: 213(ivec3) ConvertFToU 216 - Store 215(u32v) 217 - 222: 153(fvec3) Load 155(f32v) - 223:219(i64vec3) ConvertFToU 222 - Store 221(u64v) 223 + 208: 153(fvec3) Load 155(f32v) + 209: 205(i8vec3) ConvertFToU 208 + Store 207(u8v) 209 + 214: 153(fvec3) Load 155(f32v) + 215:211(i16vec3) ConvertFToU 214 + Store 213(u16v) 215 + 219: 153(fvec3) Load 155(f32v) + 220: 216(ivec3) ConvertFToU 219 + Store 218(u32v) 220 + 225: 153(fvec3) Load 155(f32v) + 226:222(i64vec3) ConvertFToU 225 + Store 224(u64v) 226 Return FunctionEnd 12(builtinAngleTrigFuncs(): 2 Function None 3 13: Label - 226(f32v2): 225(ptr) Variable Function - 227(f32v1): 225(ptr) Variable Function - 228: 224(fvec4) Load 227(f32v1) - 229: 224(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 228 - Store 226(f32v2) 229 - 230: 224(fvec4) Load 227(f32v1) - 231: 224(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 230 - Store 226(f32v2) 231 - 232: 224(fvec4) Load 227(f32v1) - 233: 224(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 232 - Store 226(f32v2) 233 - 234: 224(fvec4) Load 227(f32v1) - 235: 224(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 234 - Store 226(f32v2) 235 - 236: 224(fvec4) Load 227(f32v1) - 237: 224(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 236 - Store 226(f32v2) 237 - 238: 224(fvec4) Load 227(f32v1) - 239: 224(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 238 - Store 226(f32v2) 239 - 240: 224(fvec4) Load 227(f32v1) - 241: 224(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 240 - Store 226(f32v2) 241 - 242: 224(fvec4) Load 227(f32v1) - 243: 224(fvec4) Load 226(f32v2) - 244: 224(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 242 243 - Store 226(f32v2) 244 - 245: 224(fvec4) Load 227(f32v1) - 246: 224(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 245 - Store 226(f32v2) 246 - 247: 224(fvec4) Load 227(f32v1) - 248: 224(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 247 - Store 226(f32v2) 248 - 249: 224(fvec4) Load 227(f32v1) - 250: 224(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 249 - Store 226(f32v2) 250 - 251: 224(fvec4) Load 227(f32v1) - 252: 224(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 251 - Store 226(f32v2) 252 - 253: 224(fvec4) Load 227(f32v1) - 254: 224(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 253 - Store 226(f32v2) 254 - 255: 224(fvec4) Load 227(f32v1) - 256: 224(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 255 - Store 226(f32v2) 256 - 257: 224(fvec4) Load 227(f32v1) - 258: 224(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 257 - Store 226(f32v2) 258 + 229(f32v2): 228(ptr) Variable Function + 230(f32v1): 228(ptr) Variable Function + 231: 227(fvec4) Load 230(f32v1) + 232: 227(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 231 + Store 229(f32v2) 232 + 233: 227(fvec4) Load 230(f32v1) + 234: 227(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 233 + Store 229(f32v2) 234 + 235: 227(fvec4) Load 230(f32v1) + 236: 227(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 235 + Store 229(f32v2) 236 + 237: 227(fvec4) Load 230(f32v1) + 238: 227(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 237 + Store 229(f32v2) 238 + 239: 227(fvec4) Load 230(f32v1) + 240: 227(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 239 + Store 229(f32v2) 240 + 241: 227(fvec4) Load 230(f32v1) + 242: 227(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 241 + Store 229(f32v2) 242 + 243: 227(fvec4) Load 230(f32v1) + 244: 227(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 243 + Store 229(f32v2) 244 + 245: 227(fvec4) Load 230(f32v1) + 246: 227(fvec4) Load 229(f32v2) + 247: 227(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 245 246 + Store 229(f32v2) 247 + 248: 227(fvec4) Load 230(f32v1) + 249: 227(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 248 + Store 229(f32v2) 249 + 250: 227(fvec4) Load 230(f32v1) + 251: 227(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 250 + Store 229(f32v2) 251 + 252: 227(fvec4) Load 230(f32v1) + 253: 227(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 252 + Store 229(f32v2) 253 + 254: 227(fvec4) Load 230(f32v1) + 255: 227(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 254 + Store 229(f32v2) 255 + 256: 227(fvec4) Load 230(f32v1) + 257: 227(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 256 + Store 229(f32v2) 257 + 258: 227(fvec4) Load 230(f32v1) + 259: 227(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 258 + Store 229(f32v2) 259 + 260: 227(fvec4) Load 230(f32v1) + 261: 227(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 260 + Store 229(f32v2) 261 Return FunctionEnd 14(builtinExpFuncs(): 2 Function None 3 15: Label - 259(f32v2): 28(ptr) Variable Function - 260(f32v1): 28(ptr) Variable Function - 261: 27(fvec2) Load 260(f32v1) - 262: 27(fvec2) Load 259(f32v2) - 263: 27(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 261 262 - Store 259(f32v2) 263 - 264: 27(fvec2) Load 260(f32v1) - 265: 27(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 264 - Store 259(f32v2) 265 - 266: 27(fvec2) Load 260(f32v1) - 267: 27(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 266 - Store 259(f32v2) 267 - 268: 27(fvec2) Load 260(f32v1) - 269: 27(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 268 - Store 259(f32v2) 269 - 270: 27(fvec2) Load 260(f32v1) - 271: 27(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 270 - Store 259(f32v2) 271 - 272: 27(fvec2) Load 260(f32v1) - 273: 27(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 272 - Store 259(f32v2) 273 - 274: 27(fvec2) Load 260(f32v1) - 275: 27(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 274 - Store 259(f32v2) 275 + 262(f32v2): 28(ptr) Variable Function + 263(f32v1): 28(ptr) Variable Function + 264: 27(fvec2) Load 263(f32v1) + 265: 27(fvec2) Load 262(f32v2) + 266: 27(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 264 265 + Store 262(f32v2) 266 + 267: 27(fvec2) Load 263(f32v1) + 268: 27(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 267 + Store 262(f32v2) 268 + 269: 27(fvec2) Load 263(f32v1) + 270: 27(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 269 + Store 262(f32v2) 270 + 271: 27(fvec2) Load 263(f32v1) + 272: 27(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 271 + Store 262(f32v2) 272 + 273: 27(fvec2) Load 263(f32v1) + 274: 27(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 273 + Store 262(f32v2) 274 + 275: 27(fvec2) Load 263(f32v1) + 276: 27(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 275 + Store 262(f32v2) 276 + 277: 27(fvec2) Load 263(f32v1) + 278: 27(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 277 + Store 262(f32v2) 278 Return FunctionEnd 16(builtinCommonFuncs(): 2 Function None 3 17: Label - 276(f32v2): 154(ptr) Variable Function - 277(f32v1): 154(ptr) Variable Function - 298(f32): 33(ptr) Variable Function - 302(f32v3): 154(ptr) Variable Function - 342(bv): 159(ptr) Variable Function - 363(b): 108(ptr) Variable Function - 373(iv): 194(ptr) Variable Function - 278: 153(fvec3) Load 277(f32v1) - 279: 153(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 278 - Store 276(f32v2) 279 - 280: 153(fvec3) Load 277(f32v1) - 281: 153(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 280 - Store 276(f32v2) 281 - 282: 153(fvec3) Load 277(f32v1) - 283: 153(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 282 - Store 276(f32v2) 283 - 284: 153(fvec3) Load 277(f32v1) - 285: 153(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 284 - Store 276(f32v2) 285 - 286: 153(fvec3) Load 277(f32v1) - 287: 153(fvec3) ExtInst 1(GLSL.std.450) 1(Round) 286 - Store 276(f32v2) 287 - 288: 153(fvec3) Load 277(f32v1) - 289: 153(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 288 - Store 276(f32v2) 289 - 290: 153(fvec3) Load 277(f32v1) - 291: 153(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 290 - Store 276(f32v2) 291 - 292: 153(fvec3) Load 277(f32v1) - 293: 153(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 292 - Store 276(f32v2) 293 - 294: 153(fvec3) Load 277(f32v1) - 295: 153(fvec3) Load 276(f32v2) - 296: 153(fvec3) FMod 294 295 - Store 276(f32v2) 296 - 297: 153(fvec3) Load 277(f32v1) - 299: 26(float) Load 298(f32) - 300: 153(fvec3) CompositeConstruct 299 299 299 - 301: 153(fvec3) FMod 297 300 - Store 276(f32v2) 301 - 303: 153(fvec3) Load 277(f32v1) - 304: 153(fvec3) ExtInst 1(GLSL.std.450) 35(Modf) 303 276(f32v2) - Store 302(f32v3) 304 - 305: 153(fvec3) Load 277(f32v1) - 306: 153(fvec3) Load 276(f32v2) - 307: 153(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 305 306 - Store 302(f32v3) 307 - 308: 153(fvec3) Load 277(f32v1) - 309: 26(float) Load 298(f32) - 310: 153(fvec3) CompositeConstruct 309 309 309 - 311: 153(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 308 310 - Store 302(f32v3) 311 - 312: 153(fvec3) Load 277(f32v1) - 313: 153(fvec3) Load 276(f32v2) - 314: 153(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 312 313 - Store 302(f32v3) 314 - 315: 153(fvec3) Load 277(f32v1) - 316: 26(float) Load 298(f32) - 317: 153(fvec3) CompositeConstruct 316 316 316 - 318: 153(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 315 317 - Store 302(f32v3) 318 - 319: 153(fvec3) Load 277(f32v1) - 320: 26(float) Load 298(f32) - 321: 33(ptr) AccessChain 276(f32v2) 32 - 322: 26(float) Load 321 - 323: 153(fvec3) CompositeConstruct 320 320 320 - 324: 153(fvec3) CompositeConstruct 322 322 322 - 325: 153(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 319 323 324 - Store 302(f32v3) 325 - 326: 153(fvec3) Load 277(f32v1) - 327: 153(fvec3) Load 276(f32v2) - 328: 26(float) Load 298(f32) - 329: 153(fvec3) CompositeConstruct 328 328 328 - 330: 153(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 326 327 329 - Store 302(f32v3) 330 - 331: 153(fvec3) Load 277(f32v1) - 332: 153(fvec3) Load 276(f32v2) - 333: 26(float) Load 298(f32) - 334: 153(fvec3) CompositeConstruct 333 333 333 - 335: 153(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 331 332 334 - Store 302(f32v3) 335 - 336: 153(fvec3) Load 277(f32v1) - 337: 153(fvec3) Load 276(f32v2) - 338: 153(fvec3) Load 302(f32v3) - 339: 153(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 336 337 338 - Store 302(f32v3) 339 - 340: 153(fvec3) Load 277(f32v1) - 341: 153(fvec3) Load 276(f32v2) - 343: 158(bvec3) Load 342(bv) - 344: 153(fvec3) Select 343 341 340 - Store 302(f32v3) 344 - 345: 153(fvec3) Load 277(f32v1) - 346: 153(fvec3) Load 276(f32v2) - 347: 153(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 345 346 - Store 302(f32v3) 347 - 348: 26(float) Load 298(f32) - 349: 153(fvec3) Load 302(f32v3) - 350: 153(fvec3) CompositeConstruct 348 348 348 - 351: 153(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 350 349 - Store 302(f32v3) 351 - 352: 153(fvec3) Load 277(f32v1) - 353: 153(fvec3) Load 276(f32v2) - 354: 153(fvec3) Load 302(f32v3) - 355: 153(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 352 353 354 - Store 302(f32v3) 355 - 356: 26(float) Load 298(f32) - 357: 33(ptr) AccessChain 277(f32v1) 32 - 358: 26(float) Load 357 - 359: 153(fvec3) Load 276(f32v2) - 360: 153(fvec3) CompositeConstruct 356 356 356 - 361: 153(fvec3) CompositeConstruct 358 358 358 - 362: 153(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 360 361 359 - Store 302(f32v3) 362 - 364: 26(float) Load 298(f32) - 365: 107(bool) IsNan 364 - Store 363(b) 365 - 366: 153(fvec3) Load 277(f32v1) - 367: 158(bvec3) IsInf 366 - Store 342(bv) 367 - 368: 153(fvec3) Load 277(f32v1) - 369: 153(fvec3) Load 276(f32v2) - 370: 153(fvec3) Load 302(f32v3) - 371: 153(fvec3) ExtInst 1(GLSL.std.450) 50(Fma) 368 369 370 - Store 302(f32v3) 371 - 372: 153(fvec3) Load 277(f32v1) - 375:374(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 372 - 376: 193(ivec3) CompositeExtract 375 1 - Store 373(iv) 376 - 377: 153(fvec3) CompositeExtract 375 0 - Store 276(f32v2) 377 - 378: 153(fvec3) Load 277(f32v1) - 379: 193(ivec3) Load 373(iv) - 380: 153(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 378 379 - Store 276(f32v2) 380 + 279(f32v2): 154(ptr) Variable Function + 280(f32v1): 154(ptr) Variable Function + 301(f32): 33(ptr) Variable Function + 305(f32v3): 154(ptr) Variable Function + 345(bv): 159(ptr) Variable Function + 366(b): 108(ptr) Variable Function + 376(iv): 194(ptr) Variable Function + 281: 153(fvec3) Load 280(f32v1) + 282: 153(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 281 + Store 279(f32v2) 282 + 283: 153(fvec3) Load 280(f32v1) + 284: 153(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 283 + Store 279(f32v2) 284 + 285: 153(fvec3) Load 280(f32v1) + 286: 153(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 285 + Store 279(f32v2) 286 + 287: 153(fvec3) Load 280(f32v1) + 288: 153(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 287 + Store 279(f32v2) 288 + 289: 153(fvec3) Load 280(f32v1) + 290: 153(fvec3) ExtInst 1(GLSL.std.450) 1(Round) 289 + Store 279(f32v2) 290 + 291: 153(fvec3) Load 280(f32v1) + 292: 153(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 291 + Store 279(f32v2) 292 + 293: 153(fvec3) Load 280(f32v1) + 294: 153(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 293 + Store 279(f32v2) 294 + 295: 153(fvec3) Load 280(f32v1) + 296: 153(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 295 + Store 279(f32v2) 296 + 297: 153(fvec3) Load 280(f32v1) + 298: 153(fvec3) Load 279(f32v2) + 299: 153(fvec3) FMod 297 298 + Store 279(f32v2) 299 + 300: 153(fvec3) Load 280(f32v1) + 302: 26(float) Load 301(f32) + 303: 153(fvec3) CompositeConstruct 302 302 302 + 304: 153(fvec3) FMod 300 303 + Store 279(f32v2) 304 + 306: 153(fvec3) Load 280(f32v1) + 307: 153(fvec3) ExtInst 1(GLSL.std.450) 35(Modf) 306 279(f32v2) + Store 305(f32v3) 307 + 308: 153(fvec3) Load 280(f32v1) + 309: 153(fvec3) Load 279(f32v2) + 310: 153(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 308 309 + Store 305(f32v3) 310 + 311: 153(fvec3) Load 280(f32v1) + 312: 26(float) Load 301(f32) + 313: 153(fvec3) CompositeConstruct 312 312 312 + 314: 153(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 311 313 + Store 305(f32v3) 314 + 315: 153(fvec3) Load 280(f32v1) + 316: 153(fvec3) Load 279(f32v2) + 317: 153(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 315 316 + Store 305(f32v3) 317 + 318: 153(fvec3) Load 280(f32v1) + 319: 26(float) Load 301(f32) + 320: 153(fvec3) CompositeConstruct 319 319 319 + 321: 153(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 318 320 + Store 305(f32v3) 321 + 322: 153(fvec3) Load 280(f32v1) + 323: 26(float) Load 301(f32) + 324: 33(ptr) AccessChain 279(f32v2) 32 + 325: 26(float) Load 324 + 326: 153(fvec3) CompositeConstruct 323 323 323 + 327: 153(fvec3) CompositeConstruct 325 325 325 + 328: 153(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 322 326 327 + Store 305(f32v3) 328 + 329: 153(fvec3) Load 280(f32v1) + 330: 153(fvec3) Load 279(f32v2) + 331: 26(float) Load 301(f32) + 332: 153(fvec3) CompositeConstruct 331 331 331 + 333: 153(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 329 330 332 + Store 305(f32v3) 333 + 334: 153(fvec3) Load 280(f32v1) + 335: 153(fvec3) Load 279(f32v2) + 336: 26(float) Load 301(f32) + 337: 153(fvec3) CompositeConstruct 336 336 336 + 338: 153(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 334 335 337 + Store 305(f32v3) 338 + 339: 153(fvec3) Load 280(f32v1) + 340: 153(fvec3) Load 279(f32v2) + 341: 153(fvec3) Load 305(f32v3) + 342: 153(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 339 340 341 + Store 305(f32v3) 342 + 343: 153(fvec3) Load 280(f32v1) + 344: 153(fvec3) Load 279(f32v2) + 346: 158(bvec3) Load 345(bv) + 347: 153(fvec3) Select 346 344 343 + Store 305(f32v3) 347 + 348: 153(fvec3) Load 280(f32v1) + 349: 153(fvec3) Load 279(f32v2) + 350: 153(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 348 349 + Store 305(f32v3) 350 + 351: 26(float) Load 301(f32) + 352: 153(fvec3) Load 305(f32v3) + 353: 153(fvec3) CompositeConstruct 351 351 351 + 354: 153(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 353 352 + Store 305(f32v3) 354 + 355: 153(fvec3) Load 280(f32v1) + 356: 153(fvec3) Load 279(f32v2) + 357: 153(fvec3) Load 305(f32v3) + 358: 153(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 355 356 357 + Store 305(f32v3) 358 + 359: 26(float) Load 301(f32) + 360: 33(ptr) AccessChain 280(f32v1) 32 + 361: 26(float) Load 360 + 362: 153(fvec3) Load 279(f32v2) + 363: 153(fvec3) CompositeConstruct 359 359 359 + 364: 153(fvec3) CompositeConstruct 361 361 361 + 365: 153(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 363 364 362 + Store 305(f32v3) 365 + 367: 26(float) Load 301(f32) + 368: 107(bool) IsNan 367 + Store 366(b) 368 + 369: 153(fvec3) Load 280(f32v1) + 370: 158(bvec3) IsInf 369 + Store 345(bv) 370 + 371: 153(fvec3) Load 280(f32v1) + 372: 153(fvec3) Load 279(f32v2) + 373: 153(fvec3) Load 305(f32v3) + 374: 153(fvec3) ExtInst 1(GLSL.std.450) 50(Fma) 371 372 373 + Store 305(f32v3) 374 + 375: 153(fvec3) Load 280(f32v1) + 378:377(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 375 + 379: 193(ivec3) CompositeExtract 378 1 + Store 376(iv) 379 + 380: 153(fvec3) CompositeExtract 378 0 + Store 279(f32v2) 380 + 381: 153(fvec3) Load 280(f32v1) + 382: 193(ivec3) Load 376(iv) + 383: 153(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 381 382 + Store 279(f32v2) 383 Return FunctionEnd 18(builtinGeometryFuncs(): 2 Function None 3 19: Label - 381(f32): 33(ptr) Variable Function - 382(f32v1): 154(ptr) Variable Function - 386(f32v2): 154(ptr) Variable Function - 392(f32v3): 154(ptr) Variable Function - 383: 153(fvec3) Load 382(f32v1) - 384: 26(float) ExtInst 1(GLSL.std.450) 66(Length) 383 - Store 381(f32) 384 - 385: 153(fvec3) Load 382(f32v1) - 387: 153(fvec3) Load 386(f32v2) - 388: 26(float) ExtInst 1(GLSL.std.450) 67(Distance) 385 387 - Store 381(f32) 388 - 389: 153(fvec3) Load 382(f32v1) - 390: 153(fvec3) Load 386(f32v2) - 391: 26(float) Dot 389 390 - Store 381(f32) 391 - 393: 153(fvec3) Load 382(f32v1) - 394: 153(fvec3) Load 386(f32v2) - 395: 153(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 393 394 - Store 392(f32v3) 395 - 396: 153(fvec3) Load 382(f32v1) - 397: 153(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 396 - Store 386(f32v2) 397 - 398: 153(fvec3) Load 382(f32v1) - 399: 153(fvec3) Load 386(f32v2) - 400: 153(fvec3) Load 392(f32v3) - 401: 153(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 398 399 400 - Store 392(f32v3) 401 - 402: 153(fvec3) Load 382(f32v1) - 403: 153(fvec3) Load 386(f32v2) - 404: 153(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 402 403 - Store 392(f32v3) 404 - 405: 153(fvec3) Load 382(f32v1) - 406: 153(fvec3) Load 386(f32v2) - 407: 26(float) Load 381(f32) - 408: 153(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 405 406 407 - Store 392(f32v3) 408 + 384(f32): 33(ptr) Variable Function + 385(f32v1): 154(ptr) Variable Function + 389(f32v2): 154(ptr) Variable Function + 395(f32v3): 154(ptr) Variable Function + 386: 153(fvec3) Load 385(f32v1) + 387: 26(float) ExtInst 1(GLSL.std.450) 66(Length) 386 + Store 384(f32) 387 + 388: 153(fvec3) Load 385(f32v1) + 390: 153(fvec3) Load 389(f32v2) + 391: 26(float) ExtInst 1(GLSL.std.450) 67(Distance) 388 390 + Store 384(f32) 391 + 392: 153(fvec3) Load 385(f32v1) + 393: 153(fvec3) Load 389(f32v2) + 394: 26(float) Dot 392 393 + Store 384(f32) 394 + 396: 153(fvec3) Load 385(f32v1) + 397: 153(fvec3) Load 389(f32v2) + 398: 153(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 396 397 + Store 395(f32v3) 398 + 399: 153(fvec3) Load 385(f32v1) + 400: 153(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 399 + Store 389(f32v2) 400 + 401: 153(fvec3) Load 385(f32v1) + 402: 153(fvec3) Load 389(f32v2) + 403: 153(fvec3) Load 395(f32v3) + 404: 153(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 401 402 403 + Store 395(f32v3) 404 + 405: 153(fvec3) Load 385(f32v1) + 406: 153(fvec3) Load 389(f32v2) + 407: 153(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 405 406 + Store 395(f32v3) 407 + 408: 153(fvec3) Load 385(f32v1) + 409: 153(fvec3) Load 389(f32v2) + 410: 26(float) Load 384(f32) + 411: 153(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 408 409 410 + Store 395(f32v3) 411 Return FunctionEnd 20(builtinMatrixFuncs(): 2 Function None 3 21: Label - 411(f32m3): 410(ptr) Variable Function - 412(f32m1): 410(ptr) Variable Function - 414(f32m2): 410(ptr) Variable Function - 423(f32v1): 154(ptr) Variable Function - 425(f32v2): 28(ptr) Variable Function - 430(f32m4): 429(ptr) Variable Function - 433(f32): 33(ptr) Variable Function - 436(f32m5): 435(ptr) Variable Function - 441(f32m6): 440(ptr) Variable Function - 442(f32m7): 440(ptr) Variable Function - 413: 409 Load 412(f32m1) - 415: 409 Load 414(f32m2) - 416: 153(fvec3) CompositeExtract 413 0 - 417: 153(fvec3) CompositeExtract 415 0 - 418: 153(fvec3) FMul 416 417 - 419: 153(fvec3) CompositeExtract 413 1 - 420: 153(fvec3) CompositeExtract 415 1 + 414(f32m3): 413(ptr) Variable Function + 415(f32m1): 413(ptr) Variable Function + 417(f32m2): 413(ptr) Variable Function + 426(f32v1): 154(ptr) Variable Function + 428(f32v2): 28(ptr) Variable Function + 433(f32m4): 432(ptr) Variable Function + 436(f32): 33(ptr) Variable Function + 439(f32m5): 438(ptr) Variable Function + 444(f32m6): 443(ptr) Variable Function + 445(f32m7): 443(ptr) Variable Function + 416: 412 Load 415(f32m1) + 418: 412 Load 417(f32m2) + 419: 153(fvec3) CompositeExtract 416 0 + 420: 153(fvec3) CompositeExtract 418 0 421: 153(fvec3) FMul 419 420 - 422: 409 CompositeConstruct 418 421 - Store 411(f32m3) 422 - 424: 153(fvec3) Load 423(f32v1) - 426: 27(fvec2) Load 425(f32v2) - 427: 409 OuterProduct 424 426 - Store 412(f32m1) 427 - 431: 409 Load 412(f32m1) - 432: 428 Transpose 431 - Store 430(f32m4) 432 - 437: 434 Load 436(f32m5) - 438: 26(float) ExtInst 1(GLSL.std.450) 33(Determinant) 437 - Store 433(f32) 438 - 443: 439 Load 442(f32m7) - 444: 439 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 443 - Store 441(f32m6) 444 + 422: 153(fvec3) CompositeExtract 416 1 + 423: 153(fvec3) CompositeExtract 418 1 + 424: 153(fvec3) FMul 422 423 + 425: 412 CompositeConstruct 421 424 + Store 414(f32m3) 425 + 427: 153(fvec3) Load 426(f32v1) + 429: 27(fvec2) Load 428(f32v2) + 430: 412 OuterProduct 427 429 + Store 415(f32m1) 430 + 434: 412 Load 415(f32m1) + 435: 431 Transpose 434 + Store 433(f32m4) 435 + 440: 437 Load 439(f32m5) + 441: 26(float) ExtInst 1(GLSL.std.450) 33(Determinant) 440 + Store 436(f32) 441 + 446: 442 Load 445(f32m7) + 447: 442 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 446 + Store 444(f32m6) 447 Return FunctionEnd 22(builtinVecRelFuncs(): 2 Function None 3 23: Label - 445(bv): 159(ptr) Variable Function - 446(f32v1): 154(ptr) Variable Function - 448(f32v2): 154(ptr) Variable Function - 447: 153(fvec3) Load 446(f32v1) - 449: 153(fvec3) Load 448(f32v2) - 450: 158(bvec3) FOrdLessThan 447 449 - Store 445(bv) 450 - 451: 153(fvec3) Load 446(f32v1) - 452: 153(fvec3) Load 448(f32v2) - 453: 158(bvec3) FOrdLessThanEqual 451 452 - Store 445(bv) 453 - 454: 153(fvec3) Load 446(f32v1) - 455: 153(fvec3) Load 448(f32v2) - 456: 158(bvec3) FOrdGreaterThan 454 455 - Store 445(bv) 456 - 457: 153(fvec3) Load 446(f32v1) - 458: 153(fvec3) Load 448(f32v2) - 459: 158(bvec3) FOrdGreaterThanEqual 457 458 - Store 445(bv) 459 - 460: 153(fvec3) Load 446(f32v1) - 461: 153(fvec3) Load 448(f32v2) - 462: 158(bvec3) FOrdEqual 460 461 - Store 445(bv) 462 - 463: 153(fvec3) Load 446(f32v1) - 464: 153(fvec3) Load 448(f32v2) - 465: 158(bvec3) FOrdNotEqual 463 464 - Store 445(bv) 465 + 448(bv): 159(ptr) Variable Function + 449(f32v1): 154(ptr) Variable Function + 451(f32v2): 154(ptr) Variable Function + 450: 153(fvec3) Load 449(f32v1) + 452: 153(fvec3) Load 451(f32v2) + 453: 158(bvec3) FOrdLessThan 450 452 + Store 448(bv) 453 + 454: 153(fvec3) Load 449(f32v1) + 455: 153(fvec3) Load 451(f32v2) + 456: 158(bvec3) FOrdLessThanEqual 454 455 + Store 448(bv) 456 + 457: 153(fvec3) Load 449(f32v1) + 458: 153(fvec3) Load 451(f32v2) + 459: 158(bvec3) FOrdGreaterThan 457 458 + Store 448(bv) 459 + 460: 153(fvec3) Load 449(f32v1) + 461: 153(fvec3) Load 451(f32v2) + 462: 158(bvec3) FOrdGreaterThanEqual 460 461 + Store 448(bv) 462 + 463: 153(fvec3) Load 449(f32v1) + 464: 153(fvec3) Load 451(f32v2) + 465: 158(bvec3) FOrdEqual 463 464 + Store 448(bv) 465 + 466: 153(fvec3) Load 449(f32v1) + 467: 153(fvec3) Load 451(f32v2) + 468: 158(bvec3) FOrdNotEqual 466 467 + Store 448(bv) 468 Return FunctionEnd 24(builtinFragProcFuncs(): 2 Function None 3 25: Label - 466(f32v): 154(ptr) Variable Function - 470: 469(ptr) AccessChain 468(if32v) 32 - 471: 26(float) Load 470 - 472: 26(float) DPdx 471 - 473: 33(ptr) AccessChain 466(f32v) 32 - Store 473 472 - 474: 469(ptr) AccessChain 468(if32v) 88 - 475: 26(float) Load 474 - 476: 26(float) DPdy 475 - 477: 33(ptr) AccessChain 466(f32v) 88 - Store 477 476 - 478: 153(fvec3) Load 468(if32v) - 479: 27(fvec2) VectorShuffle 478 478 0 1 - 480: 27(fvec2) DPdxFine 479 - 481: 153(fvec3) Load 466(f32v) - 482: 153(fvec3) VectorShuffle 481 480 3 4 2 - Store 466(f32v) 482 - 483: 153(fvec3) Load 468(if32v) - 484: 27(fvec2) VectorShuffle 483 483 0 1 - 485: 27(fvec2) DPdyFine 484 - 486: 153(fvec3) Load 466(f32v) - 487: 153(fvec3) VectorShuffle 486 485 3 4 2 - Store 466(f32v) 487 - 488: 153(fvec3) Load 468(if32v) - 489: 153(fvec3) DPdxCoarse 488 - Store 466(f32v) 489 - 490: 153(fvec3) Load 468(if32v) - 491: 153(fvec3) DPdxCoarse 490 - Store 466(f32v) 491 - 492: 469(ptr) AccessChain 468(if32v) 32 - 493: 26(float) Load 492 - 494: 26(float) Fwidth 493 - 495: 33(ptr) AccessChain 466(f32v) 32 - Store 495 494 - 496: 153(fvec3) Load 468(if32v) - 497: 27(fvec2) VectorShuffle 496 496 0 1 - 498: 27(fvec2) FwidthFine 497 - 499: 153(fvec3) Load 466(f32v) - 500: 153(fvec3) VectorShuffle 499 498 3 4 2 - Store 466(f32v) 500 - 501: 153(fvec3) Load 468(if32v) - 502: 153(fvec3) FwidthCoarse 501 - Store 466(f32v) 502 - 503: 469(ptr) AccessChain 468(if32v) 32 - 504: 26(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 503 - 505: 33(ptr) AccessChain 466(f32v) 32 - Store 505 504 - 507: 153(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 468(if32v) 506 - 508: 27(fvec2) VectorShuffle 507 507 0 1 - 509: 153(fvec3) Load 466(f32v) - 510: 153(fvec3) VectorShuffle 509 508 3 4 2 - Store 466(f32v) 510 - 513: 153(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 468(if32v) 512 - Store 466(f32v) 513 + 469(f32v): 154(ptr) Variable Function + 473: 472(ptr) AccessChain 471(if32v) 32 + 474: 26(float) Load 473 + 475: 26(float) DPdx 474 + 476: 33(ptr) AccessChain 469(f32v) 32 + Store 476 475 + 477: 472(ptr) AccessChain 471(if32v) 88 + 478: 26(float) Load 477 + 479: 26(float) DPdy 478 + 480: 33(ptr) AccessChain 469(f32v) 88 + Store 480 479 + 481: 153(fvec3) Load 471(if32v) + 482: 27(fvec2) VectorShuffle 481 481 0 1 + 483: 27(fvec2) DPdxFine 482 + 484: 153(fvec3) Load 469(f32v) + 485: 153(fvec3) VectorShuffle 484 483 3 4 2 + Store 469(f32v) 485 + 486: 153(fvec3) Load 471(if32v) + 487: 27(fvec2) VectorShuffle 486 486 0 1 + 488: 27(fvec2) DPdyFine 487 + 489: 153(fvec3) Load 469(f32v) + 490: 153(fvec3) VectorShuffle 489 488 3 4 2 + Store 469(f32v) 490 + 491: 153(fvec3) Load 471(if32v) + 492: 153(fvec3) DPdxCoarse 491 + Store 469(f32v) 492 + 493: 153(fvec3) Load 471(if32v) + 494: 153(fvec3) DPdxCoarse 493 + Store 469(f32v) 494 + 495: 472(ptr) AccessChain 471(if32v) 32 + 496: 26(float) Load 495 + 497: 26(float) Fwidth 496 + 498: 33(ptr) AccessChain 469(f32v) 32 + Store 498 497 + 499: 153(fvec3) Load 471(if32v) + 500: 27(fvec2) VectorShuffle 499 499 0 1 + 501: 27(fvec2) FwidthFine 500 + 502: 153(fvec3) Load 469(f32v) + 503: 153(fvec3) VectorShuffle 502 501 3 4 2 + Store 469(f32v) 503 + 504: 153(fvec3) Load 471(if32v) + 505: 153(fvec3) FwidthCoarse 504 + Store 469(f32v) 505 + 506: 472(ptr) AccessChain 471(if32v) 32 + 507: 26(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 506 + 508: 33(ptr) AccessChain 469(f32v) 32 + Store 508 507 + 510: 153(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 471(if32v) 509 + 511: 27(fvec2) VectorShuffle 510 510 0 1 + 512: 153(fvec3) Load 469(f32v) + 513: 153(fvec3) VectorShuffle 512 511 3 4 2 + Store 469(f32v) 513 + 516: 153(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 471(if32v) 515 + Store 469(f32v) 516 Return FunctionEnd diff --git a/Test/baseResults/spv.float64.frag.out b/Test/baseResults/spv.float64.frag.out index ebc0a40c5e08914979080779b5cf07aff899c6fc..4913954886ee731efc2c4020b9d41d4fc9f0afd1 100644 --- a/Test/baseResults/spv.float64.frag.out +++ b/Test/baseResults/spv.float64.frag.out @@ -1,7 +1,7 @@ spv.float64.frag // Module Version 10300 // Generated by (magic number): 80007 -// Id's are bound by 521 +// Id's are bound by 524 Capability Shader Capability Float16 @@ -13,7 +13,7 @@ spv.float64.frag Capability InterpolationFunction 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 458 + EntryPoint Fragment 4 "main" 461 ExecutionMode 4 OriginUpperLeft Source GLSL 450 SourceExtension "GL_KHX_shader_explicit_arithmetic_types" @@ -47,82 +47,82 @@ spv.float64.frag Name 179 "i16v" Name 185 "i32v" Name 191 "i64v" - Name 194 "u8v" - Name 200 "u16v" - Name 205 "u32v" - Name 211 "u64v" - Name 216 "f64v2" - Name 217 "f64v1" - Name 249 "f64v2" - Name 250 "f64v1" - Name 266 "f64v2" - Name 267 "f64v1" - Name 288 "f64" - Name 292 "f64v3" - Name 332 "bv" - Name 353 "b" - Name 363 "iv" - Name 364 "ResType" - Name 371 "f64" - Name 372 "f64v1" - Name 376 "f64v2" - Name 382 "f64v3" - Name 401 "f64m3" - Name 402 "f64m1" - Name 404 "f64m2" - Name 413 "f64v1" - Name 415 "f64v2" - Name 420 "f64m4" - Name 423 "f64" - Name 426 "f64m5" - Name 431 "f64m6" - Name 432 "f64m7" - Name 435 "bv" - Name 436 "f64v1" - Name 438 "f64v2" - Name 456 "f64v" - Name 458 "if64v" - Name 507 "S" - MemberName 507(S) 0 "x" - MemberName 507(S) 1 "y" - MemberName 507(S) 2 "z" - Name 509 "B1" - MemberName 509(B1) 0 "a" - MemberName 509(B1) 1 "b" - MemberName 509(B1) 2 "c" - MemberName 509(B1) 3 "d" - MemberName 509(B1) 4 "e" - MemberName 509(B1) 5 "f" - MemberName 509(B1) 6 "g" - MemberName 509(B1) 7 "h" - Name 511 "" - Name 512 "sf16" - Name 514 "sf" - Name 515 "sd" - Decorate 458(if64v) Flat - Decorate 505 ArrayStride 16 - Decorate 506 ArrayStride 64 - MemberDecorate 507(S) 0 Offset 0 - MemberDecorate 507(S) 1 Offset 16 - MemberDecorate 507(S) 2 Offset 32 - Decorate 508 ArrayStride 64 - MemberDecorate 509(B1) 0 Offset 0 - MemberDecorate 509(B1) 1 Offset 16 - MemberDecorate 509(B1) 2 Offset 32 - MemberDecorate 509(B1) 3 Offset 64 - MemberDecorate 509(B1) 4 ColMajor - MemberDecorate 509(B1) 4 Offset 96 - MemberDecorate 509(B1) 4 MatrixStride 32 - MemberDecorate 509(B1) 5 ColMajor - MemberDecorate 509(B1) 5 Offset 160 - MemberDecorate 509(B1) 5 MatrixStride 32 - MemberDecorate 509(B1) 6 Offset 288 - MemberDecorate 509(B1) 7 Offset 352 - Decorate 509(B1) Block - Decorate 511 DescriptorSet 0 - Decorate 512(sf16) SpecId 100 - Decorate 514(sf) SpecId 101 - Decorate 515(sd) SpecId 102 + Name 197 "u8v" + Name 203 "u16v" + Name 208 "u32v" + Name 214 "u64v" + Name 219 "f64v2" + Name 220 "f64v1" + Name 252 "f64v2" + Name 253 "f64v1" + Name 269 "f64v2" + Name 270 "f64v1" + Name 291 "f64" + Name 295 "f64v3" + Name 335 "bv" + Name 356 "b" + Name 366 "iv" + Name 367 "ResType" + Name 374 "f64" + Name 375 "f64v1" + Name 379 "f64v2" + Name 385 "f64v3" + Name 404 "f64m3" + Name 405 "f64m1" + Name 407 "f64m2" + Name 416 "f64v1" + Name 418 "f64v2" + Name 423 "f64m4" + Name 426 "f64" + Name 429 "f64m5" + Name 434 "f64m6" + Name 435 "f64m7" + Name 438 "bv" + Name 439 "f64v1" + Name 441 "f64v2" + Name 459 "f64v" + Name 461 "if64v" + Name 510 "S" + MemberName 510(S) 0 "x" + MemberName 510(S) 1 "y" + MemberName 510(S) 2 "z" + Name 512 "B1" + MemberName 512(B1) 0 "a" + MemberName 512(B1) 1 "b" + MemberName 512(B1) 2 "c" + MemberName 512(B1) 3 "d" + MemberName 512(B1) 4 "e" + MemberName 512(B1) 5 "f" + MemberName 512(B1) 6 "g" + MemberName 512(B1) 7 "h" + Name 514 "" + Name 515 "sf16" + Name 517 "sf" + Name 518 "sd" + Decorate 461(if64v) Flat + Decorate 508 ArrayStride 16 + Decorate 509 ArrayStride 64 + MemberDecorate 510(S) 0 Offset 0 + MemberDecorate 510(S) 1 Offset 16 + MemberDecorate 510(S) 2 Offset 32 + Decorate 511 ArrayStride 64 + MemberDecorate 512(B1) 0 Offset 0 + MemberDecorate 512(B1) 1 Offset 16 + MemberDecorate 512(B1) 2 Offset 32 + MemberDecorate 512(B1) 3 Offset 64 + MemberDecorate 512(B1) 4 ColMajor + MemberDecorate 512(B1) 4 Offset 96 + MemberDecorate 512(B1) 4 MatrixStride 32 + MemberDecorate 512(B1) 5 ColMajor + MemberDecorate 512(B1) 5 Offset 160 + MemberDecorate 512(B1) 5 MatrixStride 32 + MemberDecorate 512(B1) 6 Offset 288 + MemberDecorate 512(B1) 7 Offset 352 + Decorate 512(B1) Block + Decorate 514 DescriptorSet 0 + Decorate 515(sf16) SpecId 100 + Decorate 517(sf) SpecId 101 + Decorate 518(sd) SpecId 102 2: TypeVoid 3: TypeFunction 2 26: TypeFloat 64 @@ -163,48 +163,51 @@ spv.float64.frag 188: TypeInt 64 1 189: TypeVector 188(int64_t) 3 190: TypePointer Function 189(i64vec3) - 197: TypeInt 16 0 - 198: TypeVector 197(int16_t) 3 - 199: TypePointer Function 198(i16vec3) - 203: TypeVector 31(int) 3 - 204: TypePointer Function 203(ivec3) - 208: TypeInt 64 0 - 209: TypeVector 208(int64_t) 3 - 210: TypePointer Function 209(i64vec3) - 214: TypeVector 26(float64_t) 4 - 215: TypePointer Function 214(f64vec4) - 364(ResType): TypeStruct 149(f64vec3) 183(ivec3) - 399: TypeMatrix 149(f64vec3) 2 - 400: TypePointer Function 399 - 418: TypeMatrix 27(f64vec2) 3 - 419: TypePointer Function 418 - 424: TypeMatrix 149(f64vec3) 3 - 425: TypePointer Function 424 - 429: TypeMatrix 214(f64vec4) 4 - 430: TypePointer Function 429 - 457: TypePointer Input 149(f64vec3) - 458(if64v): 457(ptr) Variable Input - 459: TypePointer Input 26(float64_t) - 496: 182(int) Constant 1 - 501:26(float64_t) Constant 0 1071644672 - 502: 27(f64vec2) ConstantComposite 501 501 - 504: 31(int) Constant 2 - 505: TypeArray 26(float64_t) 504 - 506: TypeArray 399 504 - 507(S): TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3) - 508: TypeArray 507(S) 504 - 509(B1): TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3) 505 399 506 507(S) 508 - 510: TypePointer Uniform 509(B1) - 511: 510(ptr) Variable Uniform - 512(sf16):162(float16_t) SpecConstant 12288 - 513: TypeFloat 32 - 514(sf): 513(float) SpecConstant 1048576000 - 515(sd):26(float64_t) SpecConstant 0 1071644672 - 516: 513(float) SpecConstantOp 115 512(sf16) - 517: 513(float) SpecConstantOp 115 512(sf16) - 518:26(float64_t) SpecConstantOp 115 517 - 519:162(float16_t) SpecConstantOp 115 514(sf) - 520:162(float16_t) SpecConstantOp 115 515(sd) + 194: TypeInt 8 0 + 195: TypeVector 194(int8_t) 3 + 196: TypePointer Function 195(i8vec3) + 200: TypeInt 16 0 + 201: TypeVector 200(int16_t) 3 + 202: TypePointer Function 201(i16vec3) + 206: TypeVector 31(int) 3 + 207: TypePointer Function 206(ivec3) + 211: TypeInt 64 0 + 212: TypeVector 211(int64_t) 3 + 213: TypePointer Function 212(i64vec3) + 217: TypeVector 26(float64_t) 4 + 218: TypePointer Function 217(f64vec4) + 367(ResType): TypeStruct 149(f64vec3) 183(ivec3) + 402: TypeMatrix 149(f64vec3) 2 + 403: TypePointer Function 402 + 421: TypeMatrix 27(f64vec2) 3 + 422: TypePointer Function 421 + 427: TypeMatrix 149(f64vec3) 3 + 428: TypePointer Function 427 + 432: TypeMatrix 217(f64vec4) 4 + 433: TypePointer Function 432 + 460: TypePointer Input 149(f64vec3) + 461(if64v): 460(ptr) Variable Input + 462: TypePointer Input 26(float64_t) + 499: 182(int) Constant 1 + 504:26(float64_t) Constant 0 1071644672 + 505: 27(f64vec2) ConstantComposite 504 504 + 507: 31(int) Constant 2 + 508: TypeArray 26(float64_t) 507 + 509: TypeArray 402 507 + 510(S): TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3) + 511: TypeArray 510(S) 507 + 512(B1): TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3) 508 402 509 510(S) 511 + 513: TypePointer Uniform 512(B1) + 514: 513(ptr) Variable Uniform + 515(sf16):162(float16_t) SpecConstant 12288 + 516: TypeFloat 32 + 517(sf): 516(float) SpecConstant 1048576000 + 518(sd):26(float64_t) SpecConstant 0 1071644672 + 519: 516(float) SpecConstantOp 115 515(sf16) + 520: 516(float) SpecConstantOp 115 515(sf16) + 521:26(float64_t) SpecConstantOp 115 520 + 522:162(float16_t) SpecConstantOp 115 517(sf) + 523:162(float16_t) SpecConstantOp 115 518(sd) 4(main): 2 Function None 3 5: Label Return @@ -360,10 +363,10 @@ spv.float64.frag 179(i16v): 178(ptr) Variable Function 185(i32v): 184(ptr) Variable Function 191(i64v): 190(ptr) Variable Function - 194(u8v): 172(ptr) Variable Function - 200(u16v): 199(ptr) Variable Function - 205(u32v): 204(ptr) Variable Function - 211(u64v): 210(ptr) Variable Function + 197(u8v): 196(ptr) Variable Function + 203(u16v): 202(ptr) Variable Function + 208(u32v): 207(ptr) Variable Function + 214(u64v): 213(ptr) Variable Function 155: 152(bvec3) Load 154(bv) 159:149(f64vec3) Select 155 158 157 Store 151(f64v) 159 @@ -388,401 +391,401 @@ spv.float64.frag 192:149(f64vec3) Load 151(f64v) 193:189(i64vec3) ConvertFToS 192 Store 191(i64v) 193 - 195:149(f64vec3) Load 151(f64v) - 196: 171(i8vec3) ConvertFToS 195 - Store 194(u8v) 196 - 201:149(f64vec3) Load 151(f64v) - 202:198(i16vec3) ConvertFToU 201 - Store 200(u16v) 202 - 206:149(f64vec3) Load 151(f64v) - 207: 203(ivec3) ConvertFToU 206 - Store 205(u32v) 207 - 212:149(f64vec3) Load 151(f64v) - 213:209(i64vec3) ConvertFToU 212 - Store 211(u64v) 213 + 198:149(f64vec3) Load 151(f64v) + 199: 195(i8vec3) ConvertFToU 198 + Store 197(u8v) 199 + 204:149(f64vec3) Load 151(f64v) + 205:201(i16vec3) ConvertFToU 204 + Store 203(u16v) 205 + 209:149(f64vec3) Load 151(f64v) + 210: 206(ivec3) ConvertFToU 209 + Store 208(u32v) 210 + 215:149(f64vec3) Load 151(f64v) + 216:212(i64vec3) ConvertFToU 215 + Store 214(u64v) 216 Return FunctionEnd 12(builtinAngleTrigFuncs(): 2 Function None 3 13: Label - 216(f64v2): 215(ptr) Variable Function - 217(f64v1): 215(ptr) Variable Function - 218:214(f64vec4) Load 217(f64v1) - 219:214(f64vec4) ExtInst 1(GLSL.std.450) 11(Radians) 218 - Store 216(f64v2) 219 - 220:214(f64vec4) Load 217(f64v1) - 221:214(f64vec4) ExtInst 1(GLSL.std.450) 12(Degrees) 220 - Store 216(f64v2) 221 - 222:214(f64vec4) Load 217(f64v1) - 223:214(f64vec4) ExtInst 1(GLSL.std.450) 13(Sin) 222 - Store 216(f64v2) 223 - 224:214(f64vec4) Load 217(f64v1) - 225:214(f64vec4) ExtInst 1(GLSL.std.450) 14(Cos) 224 - Store 216(f64v2) 225 - 226:214(f64vec4) Load 217(f64v1) - 227:214(f64vec4) ExtInst 1(GLSL.std.450) 15(Tan) 226 - Store 216(f64v2) 227 - 228:214(f64vec4) Load 217(f64v1) - 229:214(f64vec4) ExtInst 1(GLSL.std.450) 16(Asin) 228 - Store 216(f64v2) 229 - 230:214(f64vec4) Load 217(f64v1) - 231:214(f64vec4) ExtInst 1(GLSL.std.450) 17(Acos) 230 - Store 216(f64v2) 231 - 232:214(f64vec4) Load 217(f64v1) - 233:214(f64vec4) Load 216(f64v2) - 234:214(f64vec4) ExtInst 1(GLSL.std.450) 25(Atan2) 232 233 - Store 216(f64v2) 234 - 235:214(f64vec4) Load 217(f64v1) - 236:214(f64vec4) ExtInst 1(GLSL.std.450) 18(Atan) 235 - Store 216(f64v2) 236 - 237:214(f64vec4) Load 217(f64v1) - 238:214(f64vec4) ExtInst 1(GLSL.std.450) 19(Sinh) 237 - Store 216(f64v2) 238 - 239:214(f64vec4) Load 217(f64v1) - 240:214(f64vec4) ExtInst 1(GLSL.std.450) 20(Cosh) 239 - Store 216(f64v2) 240 - 241:214(f64vec4) Load 217(f64v1) - 242:214(f64vec4) ExtInst 1(GLSL.std.450) 21(Tanh) 241 - Store 216(f64v2) 242 - 243:214(f64vec4) Load 217(f64v1) - 244:214(f64vec4) ExtInst 1(GLSL.std.450) 22(Asinh) 243 - Store 216(f64v2) 244 - 245:214(f64vec4) Load 217(f64v1) - 246:214(f64vec4) ExtInst 1(GLSL.std.450) 23(Acosh) 245 - Store 216(f64v2) 246 - 247:214(f64vec4) Load 217(f64v1) - 248:214(f64vec4) ExtInst 1(GLSL.std.450) 24(Atanh) 247 - Store 216(f64v2) 248 + 219(f64v2): 218(ptr) Variable Function + 220(f64v1): 218(ptr) Variable Function + 221:217(f64vec4) Load 220(f64v1) + 222:217(f64vec4) ExtInst 1(GLSL.std.450) 11(Radians) 221 + Store 219(f64v2) 222 + 223:217(f64vec4) Load 220(f64v1) + 224:217(f64vec4) ExtInst 1(GLSL.std.450) 12(Degrees) 223 + Store 219(f64v2) 224 + 225:217(f64vec4) Load 220(f64v1) + 226:217(f64vec4) ExtInst 1(GLSL.std.450) 13(Sin) 225 + Store 219(f64v2) 226 + 227:217(f64vec4) Load 220(f64v1) + 228:217(f64vec4) ExtInst 1(GLSL.std.450) 14(Cos) 227 + Store 219(f64v2) 228 + 229:217(f64vec4) Load 220(f64v1) + 230:217(f64vec4) ExtInst 1(GLSL.std.450) 15(Tan) 229 + Store 219(f64v2) 230 + 231:217(f64vec4) Load 220(f64v1) + 232:217(f64vec4) ExtInst 1(GLSL.std.450) 16(Asin) 231 + Store 219(f64v2) 232 + 233:217(f64vec4) Load 220(f64v1) + 234:217(f64vec4) ExtInst 1(GLSL.std.450) 17(Acos) 233 + Store 219(f64v2) 234 + 235:217(f64vec4) Load 220(f64v1) + 236:217(f64vec4) Load 219(f64v2) + 237:217(f64vec4) ExtInst 1(GLSL.std.450) 25(Atan2) 235 236 + Store 219(f64v2) 237 + 238:217(f64vec4) Load 220(f64v1) + 239:217(f64vec4) ExtInst 1(GLSL.std.450) 18(Atan) 238 + Store 219(f64v2) 239 + 240:217(f64vec4) Load 220(f64v1) + 241:217(f64vec4) ExtInst 1(GLSL.std.450) 19(Sinh) 240 + Store 219(f64v2) 241 + 242:217(f64vec4) Load 220(f64v1) + 243:217(f64vec4) ExtInst 1(GLSL.std.450) 20(Cosh) 242 + Store 219(f64v2) 243 + 244:217(f64vec4) Load 220(f64v1) + 245:217(f64vec4) ExtInst 1(GLSL.std.450) 21(Tanh) 244 + Store 219(f64v2) 245 + 246:217(f64vec4) Load 220(f64v1) + 247:217(f64vec4) ExtInst 1(GLSL.std.450) 22(Asinh) 246 + Store 219(f64v2) 247 + 248:217(f64vec4) Load 220(f64v1) + 249:217(f64vec4) ExtInst 1(GLSL.std.450) 23(Acosh) 248 + Store 219(f64v2) 249 + 250:217(f64vec4) Load 220(f64v1) + 251:217(f64vec4) ExtInst 1(GLSL.std.450) 24(Atanh) 250 + Store 219(f64v2) 251 Return FunctionEnd 14(builtinExpFuncs(): 2 Function None 3 15: Label - 249(f64v2): 28(ptr) Variable Function - 250(f64v1): 28(ptr) Variable Function - 251: 27(f64vec2) Load 250(f64v1) - 252: 27(f64vec2) Load 249(f64v2) - 253: 27(f64vec2) ExtInst 1(GLSL.std.450) 26(Pow) 251 252 - Store 249(f64v2) 253 - 254: 27(f64vec2) Load 250(f64v1) - 255: 27(f64vec2) ExtInst 1(GLSL.std.450) 27(Exp) 254 - Store 249(f64v2) 255 - 256: 27(f64vec2) Load 250(f64v1) - 257: 27(f64vec2) ExtInst 1(GLSL.std.450) 28(Log) 256 - Store 249(f64v2) 257 - 258: 27(f64vec2) Load 250(f64v1) - 259: 27(f64vec2) ExtInst 1(GLSL.std.450) 29(Exp2) 258 - Store 249(f64v2) 259 - 260: 27(f64vec2) Load 250(f64v1) - 261: 27(f64vec2) ExtInst 1(GLSL.std.450) 30(Log2) 260 - Store 249(f64v2) 261 - 262: 27(f64vec2) Load 250(f64v1) - 263: 27(f64vec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 262 - Store 249(f64v2) 263 - 264: 27(f64vec2) Load 250(f64v1) - 265: 27(f64vec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 264 - Store 249(f64v2) 265 + 252(f64v2): 28(ptr) Variable Function + 253(f64v1): 28(ptr) Variable Function + 254: 27(f64vec2) Load 253(f64v1) + 255: 27(f64vec2) Load 252(f64v2) + 256: 27(f64vec2) ExtInst 1(GLSL.std.450) 26(Pow) 254 255 + Store 252(f64v2) 256 + 257: 27(f64vec2) Load 253(f64v1) + 258: 27(f64vec2) ExtInst 1(GLSL.std.450) 27(Exp) 257 + Store 252(f64v2) 258 + 259: 27(f64vec2) Load 253(f64v1) + 260: 27(f64vec2) ExtInst 1(GLSL.std.450) 28(Log) 259 + Store 252(f64v2) 260 + 261: 27(f64vec2) Load 253(f64v1) + 262: 27(f64vec2) ExtInst 1(GLSL.std.450) 29(Exp2) 261 + Store 252(f64v2) 262 + 263: 27(f64vec2) Load 253(f64v1) + 264: 27(f64vec2) ExtInst 1(GLSL.std.450) 30(Log2) 263 + Store 252(f64v2) 264 + 265: 27(f64vec2) Load 253(f64v1) + 266: 27(f64vec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 265 + Store 252(f64v2) 266 + 267: 27(f64vec2) Load 253(f64v1) + 268: 27(f64vec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 267 + Store 252(f64v2) 268 Return FunctionEnd 16(builtinCommonFuncs(): 2 Function None 3 17: Label - 266(f64v2): 150(ptr) Variable Function - 267(f64v1): 150(ptr) Variable Function - 288(f64): 33(ptr) Variable Function - 292(f64v3): 150(ptr) Variable Function - 332(bv): 153(ptr) Variable Function - 353(b): 108(ptr) Variable Function - 363(iv): 184(ptr) Variable Function - 268:149(f64vec3) Load 267(f64v1) - 269:149(f64vec3) ExtInst 1(GLSL.std.450) 4(FAbs) 268 - Store 266(f64v2) 269 - 270:149(f64vec3) Load 267(f64v1) - 271:149(f64vec3) ExtInst 1(GLSL.std.450) 6(FSign) 270 - Store 266(f64v2) 271 - 272:149(f64vec3) Load 267(f64v1) - 273:149(f64vec3) ExtInst 1(GLSL.std.450) 8(Floor) 272 - Store 266(f64v2) 273 - 274:149(f64vec3) Load 267(f64v1) - 275:149(f64vec3) ExtInst 1(GLSL.std.450) 3(Trunc) 274 - Store 266(f64v2) 275 - 276:149(f64vec3) Load 267(f64v1) - 277:149(f64vec3) ExtInst 1(GLSL.std.450) 1(Round) 276 - Store 266(f64v2) 277 - 278:149(f64vec3) Load 267(f64v1) - 279:149(f64vec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 278 - Store 266(f64v2) 279 - 280:149(f64vec3) Load 267(f64v1) - 281:149(f64vec3) ExtInst 1(GLSL.std.450) 9(Ceil) 280 - Store 266(f64v2) 281 - 282:149(f64vec3) Load 267(f64v1) - 283:149(f64vec3) ExtInst 1(GLSL.std.450) 10(Fract) 282 - Store 266(f64v2) 283 - 284:149(f64vec3) Load 267(f64v1) - 285:149(f64vec3) Load 266(f64v2) - 286:149(f64vec3) FMod 284 285 - Store 266(f64v2) 286 - 287:149(f64vec3) Load 267(f64v1) - 289:26(float64_t) Load 288(f64) - 290:149(f64vec3) CompositeConstruct 289 289 289 - 291:149(f64vec3) FMod 287 290 - Store 266(f64v2) 291 - 293:149(f64vec3) Load 267(f64v1) - 294:149(f64vec3) ExtInst 1(GLSL.std.450) 35(Modf) 293 266(f64v2) - Store 292(f64v3) 294 - 295:149(f64vec3) Load 267(f64v1) - 296:149(f64vec3) Load 266(f64v2) - 297:149(f64vec3) ExtInst 1(GLSL.std.450) 37(FMin) 295 296 - Store 292(f64v3) 297 - 298:149(f64vec3) Load 267(f64v1) - 299:26(float64_t) Load 288(f64) - 300:149(f64vec3) CompositeConstruct 299 299 299 - 301:149(f64vec3) ExtInst 1(GLSL.std.450) 37(FMin) 298 300 - Store 292(f64v3) 301 - 302:149(f64vec3) Load 267(f64v1) - 303:149(f64vec3) Load 266(f64v2) - 304:149(f64vec3) ExtInst 1(GLSL.std.450) 40(FMax) 302 303 - Store 292(f64v3) 304 - 305:149(f64vec3) Load 267(f64v1) - 306:26(float64_t) Load 288(f64) - 307:149(f64vec3) CompositeConstruct 306 306 306 - 308:149(f64vec3) ExtInst 1(GLSL.std.450) 40(FMax) 305 307 - Store 292(f64v3) 308 - 309:149(f64vec3) Load 267(f64v1) - 310:26(float64_t) Load 288(f64) - 311: 33(ptr) AccessChain 266(f64v2) 32 - 312:26(float64_t) Load 311 - 313:149(f64vec3) CompositeConstruct 310 310 310 - 314:149(f64vec3) CompositeConstruct 312 312 312 - 315:149(f64vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 309 313 314 - Store 292(f64v3) 315 - 316:149(f64vec3) Load 267(f64v1) - 317:149(f64vec3) Load 266(f64v2) - 318:26(float64_t) Load 288(f64) - 319:149(f64vec3) CompositeConstruct 318 318 318 - 320:149(f64vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 316 317 319 - Store 292(f64v3) 320 - 321:149(f64vec3) Load 267(f64v1) - 322:149(f64vec3) Load 266(f64v2) - 323:26(float64_t) Load 288(f64) - 324:149(f64vec3) CompositeConstruct 323 323 323 - 325:149(f64vec3) ExtInst 1(GLSL.std.450) 46(FMix) 321 322 324 - Store 292(f64v3) 325 - 326:149(f64vec3) Load 267(f64v1) - 327:149(f64vec3) Load 266(f64v2) - 328:149(f64vec3) Load 292(f64v3) - 329:149(f64vec3) ExtInst 1(GLSL.std.450) 46(FMix) 326 327 328 - Store 292(f64v3) 329 - 330:149(f64vec3) Load 267(f64v1) - 331:149(f64vec3) Load 266(f64v2) - 333: 152(bvec3) Load 332(bv) - 334:149(f64vec3) Select 333 331 330 - Store 292(f64v3) 334 - 335:149(f64vec3) Load 267(f64v1) - 336:149(f64vec3) Load 266(f64v2) - 337:149(f64vec3) ExtInst 1(GLSL.std.450) 48(Step) 335 336 - Store 292(f64v3) 337 - 338:26(float64_t) Load 288(f64) - 339:149(f64vec3) Load 292(f64v3) - 340:149(f64vec3) CompositeConstruct 338 338 338 - 341:149(f64vec3) ExtInst 1(GLSL.std.450) 48(Step) 340 339 - Store 292(f64v3) 341 - 342:149(f64vec3) Load 267(f64v1) - 343:149(f64vec3) Load 266(f64v2) - 344:149(f64vec3) Load 292(f64v3) - 345:149(f64vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 342 343 344 - Store 292(f64v3) 345 - 346:26(float64_t) Load 288(f64) - 347: 33(ptr) AccessChain 267(f64v1) 32 - 348:26(float64_t) Load 347 - 349:149(f64vec3) Load 266(f64v2) - 350:149(f64vec3) CompositeConstruct 346 346 346 - 351:149(f64vec3) CompositeConstruct 348 348 348 - 352:149(f64vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 350 351 349 - Store 292(f64v3) 352 - 354:26(float64_t) Load 288(f64) - 355: 107(bool) IsNan 354 - Store 353(b) 355 - 356:149(f64vec3) Load 267(f64v1) - 357: 152(bvec3) IsInf 356 - Store 332(bv) 357 - 358:149(f64vec3) Load 267(f64v1) - 359:149(f64vec3) Load 266(f64v2) - 360:149(f64vec3) Load 292(f64v3) - 361:149(f64vec3) ExtInst 1(GLSL.std.450) 50(Fma) 358 359 360 - Store 292(f64v3) 361 - 362:149(f64vec3) Load 267(f64v1) - 365:364(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 362 - 366: 183(ivec3) CompositeExtract 365 1 - Store 363(iv) 366 - 367:149(f64vec3) CompositeExtract 365 0 - Store 266(f64v2) 367 - 368:149(f64vec3) Load 267(f64v1) - 369: 183(ivec3) Load 363(iv) - 370:149(f64vec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 368 369 - Store 266(f64v2) 370 + 269(f64v2): 150(ptr) Variable Function + 270(f64v1): 150(ptr) Variable Function + 291(f64): 33(ptr) Variable Function + 295(f64v3): 150(ptr) Variable Function + 335(bv): 153(ptr) Variable Function + 356(b): 108(ptr) Variable Function + 366(iv): 184(ptr) Variable Function + 271:149(f64vec3) Load 270(f64v1) + 272:149(f64vec3) ExtInst 1(GLSL.std.450) 4(FAbs) 271 + Store 269(f64v2) 272 + 273:149(f64vec3) Load 270(f64v1) + 274:149(f64vec3) ExtInst 1(GLSL.std.450) 6(FSign) 273 + Store 269(f64v2) 274 + 275:149(f64vec3) Load 270(f64v1) + 276:149(f64vec3) ExtInst 1(GLSL.std.450) 8(Floor) 275 + Store 269(f64v2) 276 + 277:149(f64vec3) Load 270(f64v1) + 278:149(f64vec3) ExtInst 1(GLSL.std.450) 3(Trunc) 277 + Store 269(f64v2) 278 + 279:149(f64vec3) Load 270(f64v1) + 280:149(f64vec3) ExtInst 1(GLSL.std.450) 1(Round) 279 + Store 269(f64v2) 280 + 281:149(f64vec3) Load 270(f64v1) + 282:149(f64vec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 281 + Store 269(f64v2) 282 + 283:149(f64vec3) Load 270(f64v1) + 284:149(f64vec3) ExtInst 1(GLSL.std.450) 9(Ceil) 283 + Store 269(f64v2) 284 + 285:149(f64vec3) Load 270(f64v1) + 286:149(f64vec3) ExtInst 1(GLSL.std.450) 10(Fract) 285 + Store 269(f64v2) 286 + 287:149(f64vec3) Load 270(f64v1) + 288:149(f64vec3) Load 269(f64v2) + 289:149(f64vec3) FMod 287 288 + Store 269(f64v2) 289 + 290:149(f64vec3) Load 270(f64v1) + 292:26(float64_t) Load 291(f64) + 293:149(f64vec3) CompositeConstruct 292 292 292 + 294:149(f64vec3) FMod 290 293 + Store 269(f64v2) 294 + 296:149(f64vec3) Load 270(f64v1) + 297:149(f64vec3) ExtInst 1(GLSL.std.450) 35(Modf) 296 269(f64v2) + Store 295(f64v3) 297 + 298:149(f64vec3) Load 270(f64v1) + 299:149(f64vec3) Load 269(f64v2) + 300:149(f64vec3) ExtInst 1(GLSL.std.450) 37(FMin) 298 299 + Store 295(f64v3) 300 + 301:149(f64vec3) Load 270(f64v1) + 302:26(float64_t) Load 291(f64) + 303:149(f64vec3) CompositeConstruct 302 302 302 + 304:149(f64vec3) ExtInst 1(GLSL.std.450) 37(FMin) 301 303 + Store 295(f64v3) 304 + 305:149(f64vec3) Load 270(f64v1) + 306:149(f64vec3) Load 269(f64v2) + 307:149(f64vec3) ExtInst 1(GLSL.std.450) 40(FMax) 305 306 + Store 295(f64v3) 307 + 308:149(f64vec3) Load 270(f64v1) + 309:26(float64_t) Load 291(f64) + 310:149(f64vec3) CompositeConstruct 309 309 309 + 311:149(f64vec3) ExtInst 1(GLSL.std.450) 40(FMax) 308 310 + Store 295(f64v3) 311 + 312:149(f64vec3) Load 270(f64v1) + 313:26(float64_t) Load 291(f64) + 314: 33(ptr) AccessChain 269(f64v2) 32 + 315:26(float64_t) Load 314 + 316:149(f64vec3) CompositeConstruct 313 313 313 + 317:149(f64vec3) CompositeConstruct 315 315 315 + 318:149(f64vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 312 316 317 + Store 295(f64v3) 318 + 319:149(f64vec3) Load 270(f64v1) + 320:149(f64vec3) Load 269(f64v2) + 321:26(float64_t) Load 291(f64) + 322:149(f64vec3) CompositeConstruct 321 321 321 + 323:149(f64vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 319 320 322 + Store 295(f64v3) 323 + 324:149(f64vec3) Load 270(f64v1) + 325:149(f64vec3) Load 269(f64v2) + 326:26(float64_t) Load 291(f64) + 327:149(f64vec3) CompositeConstruct 326 326 326 + 328:149(f64vec3) ExtInst 1(GLSL.std.450) 46(FMix) 324 325 327 + Store 295(f64v3) 328 + 329:149(f64vec3) Load 270(f64v1) + 330:149(f64vec3) Load 269(f64v2) + 331:149(f64vec3) Load 295(f64v3) + 332:149(f64vec3) ExtInst 1(GLSL.std.450) 46(FMix) 329 330 331 + Store 295(f64v3) 332 + 333:149(f64vec3) Load 270(f64v1) + 334:149(f64vec3) Load 269(f64v2) + 336: 152(bvec3) Load 335(bv) + 337:149(f64vec3) Select 336 334 333 + Store 295(f64v3) 337 + 338:149(f64vec3) Load 270(f64v1) + 339:149(f64vec3) Load 269(f64v2) + 340:149(f64vec3) ExtInst 1(GLSL.std.450) 48(Step) 338 339 + Store 295(f64v3) 340 + 341:26(float64_t) Load 291(f64) + 342:149(f64vec3) Load 295(f64v3) + 343:149(f64vec3) CompositeConstruct 341 341 341 + 344:149(f64vec3) ExtInst 1(GLSL.std.450) 48(Step) 343 342 + Store 295(f64v3) 344 + 345:149(f64vec3) Load 270(f64v1) + 346:149(f64vec3) Load 269(f64v2) + 347:149(f64vec3) Load 295(f64v3) + 348:149(f64vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 345 346 347 + Store 295(f64v3) 348 + 349:26(float64_t) Load 291(f64) + 350: 33(ptr) AccessChain 270(f64v1) 32 + 351:26(float64_t) Load 350 + 352:149(f64vec3) Load 269(f64v2) + 353:149(f64vec3) CompositeConstruct 349 349 349 + 354:149(f64vec3) CompositeConstruct 351 351 351 + 355:149(f64vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 353 354 352 + Store 295(f64v3) 355 + 357:26(float64_t) Load 291(f64) + 358: 107(bool) IsNan 357 + Store 356(b) 358 + 359:149(f64vec3) Load 270(f64v1) + 360: 152(bvec3) IsInf 359 + Store 335(bv) 360 + 361:149(f64vec3) Load 270(f64v1) + 362:149(f64vec3) Load 269(f64v2) + 363:149(f64vec3) Load 295(f64v3) + 364:149(f64vec3) ExtInst 1(GLSL.std.450) 50(Fma) 361 362 363 + Store 295(f64v3) 364 + 365:149(f64vec3) Load 270(f64v1) + 368:367(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 365 + 369: 183(ivec3) CompositeExtract 368 1 + Store 366(iv) 369 + 370:149(f64vec3) CompositeExtract 368 0 + Store 269(f64v2) 370 + 371:149(f64vec3) Load 270(f64v1) + 372: 183(ivec3) Load 366(iv) + 373:149(f64vec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 371 372 + Store 269(f64v2) 373 Return FunctionEnd 18(builtinGeometryFuncs(): 2 Function None 3 19: Label - 371(f64): 33(ptr) Variable Function - 372(f64v1): 150(ptr) Variable Function - 376(f64v2): 150(ptr) Variable Function - 382(f64v3): 150(ptr) Variable Function - 373:149(f64vec3) Load 372(f64v1) - 374:26(float64_t) ExtInst 1(GLSL.std.450) 66(Length) 373 - Store 371(f64) 374 - 375:149(f64vec3) Load 372(f64v1) - 377:149(f64vec3) Load 376(f64v2) - 378:26(float64_t) ExtInst 1(GLSL.std.450) 67(Distance) 375 377 - Store 371(f64) 378 - 379:149(f64vec3) Load 372(f64v1) - 380:149(f64vec3) Load 376(f64v2) - 381:26(float64_t) Dot 379 380 - Store 371(f64) 381 - 383:149(f64vec3) Load 372(f64v1) - 384:149(f64vec3) Load 376(f64v2) - 385:149(f64vec3) ExtInst 1(GLSL.std.450) 68(Cross) 383 384 - Store 382(f64v3) 385 - 386:149(f64vec3) Load 372(f64v1) - 387:149(f64vec3) ExtInst 1(GLSL.std.450) 69(Normalize) 386 - Store 376(f64v2) 387 - 388:149(f64vec3) Load 372(f64v1) - 389:149(f64vec3) Load 376(f64v2) - 390:149(f64vec3) Load 382(f64v3) - 391:149(f64vec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 388 389 390 - Store 382(f64v3) 391 - 392:149(f64vec3) Load 372(f64v1) - 393:149(f64vec3) Load 376(f64v2) - 394:149(f64vec3) ExtInst 1(GLSL.std.450) 71(Reflect) 392 393 - Store 382(f64v3) 394 - 395:149(f64vec3) Load 372(f64v1) - 396:149(f64vec3) Load 376(f64v2) - 397:26(float64_t) Load 371(f64) - 398:149(f64vec3) ExtInst 1(GLSL.std.450) 72(Refract) 395 396 397 - Store 382(f64v3) 398 + 374(f64): 33(ptr) Variable Function + 375(f64v1): 150(ptr) Variable Function + 379(f64v2): 150(ptr) Variable Function + 385(f64v3): 150(ptr) Variable Function + 376:149(f64vec3) Load 375(f64v1) + 377:26(float64_t) ExtInst 1(GLSL.std.450) 66(Length) 376 + Store 374(f64) 377 + 378:149(f64vec3) Load 375(f64v1) + 380:149(f64vec3) Load 379(f64v2) + 381:26(float64_t) ExtInst 1(GLSL.std.450) 67(Distance) 378 380 + Store 374(f64) 381 + 382:149(f64vec3) Load 375(f64v1) + 383:149(f64vec3) Load 379(f64v2) + 384:26(float64_t) Dot 382 383 + Store 374(f64) 384 + 386:149(f64vec3) Load 375(f64v1) + 387:149(f64vec3) Load 379(f64v2) + 388:149(f64vec3) ExtInst 1(GLSL.std.450) 68(Cross) 386 387 + Store 385(f64v3) 388 + 389:149(f64vec3) Load 375(f64v1) + 390:149(f64vec3) ExtInst 1(GLSL.std.450) 69(Normalize) 389 + Store 379(f64v2) 390 + 391:149(f64vec3) Load 375(f64v1) + 392:149(f64vec3) Load 379(f64v2) + 393:149(f64vec3) Load 385(f64v3) + 394:149(f64vec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 391 392 393 + Store 385(f64v3) 394 + 395:149(f64vec3) Load 375(f64v1) + 396:149(f64vec3) Load 379(f64v2) + 397:149(f64vec3) ExtInst 1(GLSL.std.450) 71(Reflect) 395 396 + Store 385(f64v3) 397 + 398:149(f64vec3) Load 375(f64v1) + 399:149(f64vec3) Load 379(f64v2) + 400:26(float64_t) Load 374(f64) + 401:149(f64vec3) ExtInst 1(GLSL.std.450) 72(Refract) 398 399 400 + Store 385(f64v3) 401 Return FunctionEnd 20(builtinMatrixFuncs(): 2 Function None 3 21: Label - 401(f64m3): 400(ptr) Variable Function - 402(f64m1): 400(ptr) Variable Function - 404(f64m2): 400(ptr) Variable Function - 413(f64v1): 150(ptr) Variable Function - 415(f64v2): 28(ptr) Variable Function - 420(f64m4): 419(ptr) Variable Function - 423(f64): 33(ptr) Variable Function - 426(f64m5): 425(ptr) Variable Function - 431(f64m6): 430(ptr) Variable Function - 432(f64m7): 430(ptr) Variable Function - 403: 399 Load 402(f64m1) - 405: 399 Load 404(f64m2) - 406:149(f64vec3) CompositeExtract 403 0 - 407:149(f64vec3) CompositeExtract 405 0 - 408:149(f64vec3) FMul 406 407 - 409:149(f64vec3) CompositeExtract 403 1 - 410:149(f64vec3) CompositeExtract 405 1 + 404(f64m3): 403(ptr) Variable Function + 405(f64m1): 403(ptr) Variable Function + 407(f64m2): 403(ptr) Variable Function + 416(f64v1): 150(ptr) Variable Function + 418(f64v2): 28(ptr) Variable Function + 423(f64m4): 422(ptr) Variable Function + 426(f64): 33(ptr) Variable Function + 429(f64m5): 428(ptr) Variable Function + 434(f64m6): 433(ptr) Variable Function + 435(f64m7): 433(ptr) Variable Function + 406: 402 Load 405(f64m1) + 408: 402 Load 407(f64m2) + 409:149(f64vec3) CompositeExtract 406 0 + 410:149(f64vec3) CompositeExtract 408 0 411:149(f64vec3) FMul 409 410 - 412: 399 CompositeConstruct 408 411 - Store 401(f64m3) 412 - 414:149(f64vec3) Load 413(f64v1) - 416: 27(f64vec2) Load 415(f64v2) - 417: 399 OuterProduct 414 416 - Store 402(f64m1) 417 - 421: 399 Load 402(f64m1) - 422: 418 Transpose 421 - Store 420(f64m4) 422 - 427: 424 Load 426(f64m5) - 428:26(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 427 - Store 423(f64) 428 - 433: 429 Load 432(f64m7) - 434: 429 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 433 - Store 431(f64m6) 434 + 412:149(f64vec3) CompositeExtract 406 1 + 413:149(f64vec3) CompositeExtract 408 1 + 414:149(f64vec3) FMul 412 413 + 415: 402 CompositeConstruct 411 414 + Store 404(f64m3) 415 + 417:149(f64vec3) Load 416(f64v1) + 419: 27(f64vec2) Load 418(f64v2) + 420: 402 OuterProduct 417 419 + Store 405(f64m1) 420 + 424: 402 Load 405(f64m1) + 425: 421 Transpose 424 + Store 423(f64m4) 425 + 430: 427 Load 429(f64m5) + 431:26(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 430 + Store 426(f64) 431 + 436: 432 Load 435(f64m7) + 437: 432 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 436 + Store 434(f64m6) 437 Return FunctionEnd 22(builtinVecRelFuncs(): 2 Function None 3 23: Label - 435(bv): 153(ptr) Variable Function - 436(f64v1): 150(ptr) Variable Function - 438(f64v2): 150(ptr) Variable Function - 437:149(f64vec3) Load 436(f64v1) - 439:149(f64vec3) Load 438(f64v2) - 440: 152(bvec3) FOrdLessThan 437 439 - Store 435(bv) 440 - 441:149(f64vec3) Load 436(f64v1) - 442:149(f64vec3) Load 438(f64v2) - 443: 152(bvec3) FOrdLessThanEqual 441 442 - Store 435(bv) 443 - 444:149(f64vec3) Load 436(f64v1) - 445:149(f64vec3) Load 438(f64v2) - 446: 152(bvec3) FOrdGreaterThan 444 445 - Store 435(bv) 446 - 447:149(f64vec3) Load 436(f64v1) - 448:149(f64vec3) Load 438(f64v2) - 449: 152(bvec3) FOrdGreaterThanEqual 447 448 - Store 435(bv) 449 - 450:149(f64vec3) Load 436(f64v1) - 451:149(f64vec3) Load 438(f64v2) - 452: 152(bvec3) FOrdEqual 450 451 - Store 435(bv) 452 - 453:149(f64vec3) Load 436(f64v1) - 454:149(f64vec3) Load 438(f64v2) - 455: 152(bvec3) FOrdNotEqual 453 454 - Store 435(bv) 455 + 438(bv): 153(ptr) Variable Function + 439(f64v1): 150(ptr) Variable Function + 441(f64v2): 150(ptr) Variable Function + 440:149(f64vec3) Load 439(f64v1) + 442:149(f64vec3) Load 441(f64v2) + 443: 152(bvec3) FOrdLessThan 440 442 + Store 438(bv) 443 + 444:149(f64vec3) Load 439(f64v1) + 445:149(f64vec3) Load 441(f64v2) + 446: 152(bvec3) FOrdLessThanEqual 444 445 + Store 438(bv) 446 + 447:149(f64vec3) Load 439(f64v1) + 448:149(f64vec3) Load 441(f64v2) + 449: 152(bvec3) FOrdGreaterThan 447 448 + Store 438(bv) 449 + 450:149(f64vec3) Load 439(f64v1) + 451:149(f64vec3) Load 441(f64v2) + 452: 152(bvec3) FOrdGreaterThanEqual 450 451 + Store 438(bv) 452 + 453:149(f64vec3) Load 439(f64v1) + 454:149(f64vec3) Load 441(f64v2) + 455: 152(bvec3) FOrdEqual 453 454 + Store 438(bv) 455 + 456:149(f64vec3) Load 439(f64v1) + 457:149(f64vec3) Load 441(f64v2) + 458: 152(bvec3) FOrdNotEqual 456 457 + Store 438(bv) 458 Return FunctionEnd 24(builtinFragProcFuncs(): 2 Function None 3 25: Label - 456(f64v): 150(ptr) Variable Function - 460: 459(ptr) AccessChain 458(if64v) 32 - 461:26(float64_t) Load 460 - 462:26(float64_t) DPdx 461 - 463: 33(ptr) AccessChain 456(f64v) 32 - Store 463 462 - 464: 459(ptr) AccessChain 458(if64v) 88 - 465:26(float64_t) Load 464 - 466:26(float64_t) DPdy 465 - 467: 33(ptr) AccessChain 456(f64v) 88 - Store 467 466 - 468:149(f64vec3) Load 458(if64v) - 469: 27(f64vec2) VectorShuffle 468 468 0 1 - 470: 27(f64vec2) DPdxFine 469 - 471:149(f64vec3) Load 456(f64v) - 472:149(f64vec3) VectorShuffle 471 470 3 4 2 - Store 456(f64v) 472 - 473:149(f64vec3) Load 458(if64v) - 474: 27(f64vec2) VectorShuffle 473 473 0 1 - 475: 27(f64vec2) DPdyFine 474 - 476:149(f64vec3) Load 456(f64v) - 477:149(f64vec3) VectorShuffle 476 475 3 4 2 - Store 456(f64v) 477 - 478:149(f64vec3) Load 458(if64v) - 479:149(f64vec3) DPdxCoarse 478 - Store 456(f64v) 479 - 480:149(f64vec3) Load 458(if64v) - 481:149(f64vec3) DPdxCoarse 480 - Store 456(f64v) 481 - 482: 459(ptr) AccessChain 458(if64v) 32 - 483:26(float64_t) Load 482 - 484:26(float64_t) Fwidth 483 - 485: 33(ptr) AccessChain 456(f64v) 32 - Store 485 484 - 486:149(f64vec3) Load 458(if64v) - 487: 27(f64vec2) VectorShuffle 486 486 0 1 - 488: 27(f64vec2) FwidthFine 487 - 489:149(f64vec3) Load 456(f64v) - 490:149(f64vec3) VectorShuffle 489 488 3 4 2 - Store 456(f64v) 490 - 491:149(f64vec3) Load 458(if64v) - 492:149(f64vec3) FwidthCoarse 491 - Store 456(f64v) 492 - 493: 459(ptr) AccessChain 458(if64v) 32 - 494:26(float64_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 493 - 495: 33(ptr) AccessChain 456(f64v) 32 - Store 495 494 - 497:149(f64vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 458(if64v) 496 - 498: 27(f64vec2) VectorShuffle 497 497 0 1 - 499:149(f64vec3) Load 456(f64v) - 500:149(f64vec3) VectorShuffle 499 498 3 4 2 - Store 456(f64v) 500 - 503:149(f64vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 458(if64v) 502 - Store 456(f64v) 503 + 459(f64v): 150(ptr) Variable Function + 463: 462(ptr) AccessChain 461(if64v) 32 + 464:26(float64_t) Load 463 + 465:26(float64_t) DPdx 464 + 466: 33(ptr) AccessChain 459(f64v) 32 + Store 466 465 + 467: 462(ptr) AccessChain 461(if64v) 88 + 468:26(float64_t) Load 467 + 469:26(float64_t) DPdy 468 + 470: 33(ptr) AccessChain 459(f64v) 88 + Store 470 469 + 471:149(f64vec3) Load 461(if64v) + 472: 27(f64vec2) VectorShuffle 471 471 0 1 + 473: 27(f64vec2) DPdxFine 472 + 474:149(f64vec3) Load 459(f64v) + 475:149(f64vec3) VectorShuffle 474 473 3 4 2 + Store 459(f64v) 475 + 476:149(f64vec3) Load 461(if64v) + 477: 27(f64vec2) VectorShuffle 476 476 0 1 + 478: 27(f64vec2) DPdyFine 477 + 479:149(f64vec3) Load 459(f64v) + 480:149(f64vec3) VectorShuffle 479 478 3 4 2 + Store 459(f64v) 480 + 481:149(f64vec3) Load 461(if64v) + 482:149(f64vec3) DPdxCoarse 481 + Store 459(f64v) 482 + 483:149(f64vec3) Load 461(if64v) + 484:149(f64vec3) DPdxCoarse 483 + Store 459(f64v) 484 + 485: 462(ptr) AccessChain 461(if64v) 32 + 486:26(float64_t) Load 485 + 487:26(float64_t) Fwidth 486 + 488: 33(ptr) AccessChain 459(f64v) 32 + Store 488 487 + 489:149(f64vec3) Load 461(if64v) + 490: 27(f64vec2) VectorShuffle 489 489 0 1 + 491: 27(f64vec2) FwidthFine 490 + 492:149(f64vec3) Load 459(f64v) + 493:149(f64vec3) VectorShuffle 492 491 3 4 2 + Store 459(f64v) 493 + 494:149(f64vec3) Load 461(if64v) + 495:149(f64vec3) FwidthCoarse 494 + Store 459(f64v) 495 + 496: 462(ptr) AccessChain 461(if64v) 32 + 497:26(float64_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 496 + 498: 33(ptr) AccessChain 459(f64v) 32 + Store 498 497 + 500:149(f64vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 461(if64v) 499 + 501: 27(f64vec2) VectorShuffle 500 500 0 1 + 502:149(f64vec3) Load 459(f64v) + 503:149(f64vec3) VectorShuffle 502 501 3 4 2 + Store 459(f64v) 503 + 506:149(f64vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 461(if64v) 505 + Store 459(f64v) 506 Return FunctionEnd diff --git a/Test/baseResults/spv.int8.frag.out b/Test/baseResults/spv.int8.frag.out index 20c37cc76774c6172a03df97b2bf10de8deffbf1..14922b2b518e6fed17eeff20cf9ee4f9e12c48b8 100644 --- a/Test/baseResults/spv.int8.frag.out +++ b/Test/baseResults/spv.int8.frag.out @@ -1,7 +1,7 @@ spv.int8.frag // Module Version 10300 // Generated by (magic number): 80007 -// Id's are bound by 531 +// Id's are bound by 518 Capability Shader Capability Float16 @@ -9,6 +9,8 @@ spv.int8.frag Capability Int64 Capability Int16 Capability Int8 + Capability CapabilityUniformAndStorageBuffer8BitAccess + Extension "SPV_KHR_8bit_storage" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" @@ -47,52 +49,52 @@ spv.int8.frag Name 144 "u16v" Name 174 "bv" Name 192 "u8v" - Name 196 "i8" - Name 216 "i" - Name 223 "uv" - Name 242 "i16" - Name 279 "b" - Name 341 "i8v" - Name 344 "i8" - Name 354 "u8v" - Name 356 "u8" - Name 430 "i16" - Name 433 "i32" - Name 436 "i8v4" - Name 440 "u16" - Name 441 "u8v2" - Name 444 "u32" - Name 447 "u8v4" - Name 459 "bv" - Name 526 "Block" - MemberName 526(Block) 0 "i8" - MemberName 526(Block) 1 "i8v2" - MemberName 526(Block) 2 "i8v3" - MemberName 526(Block) 3 "i8v4" - MemberName 526(Block) 4 "u8" - MemberName 526(Block) 5 "u8v2" - MemberName 526(Block) 6 "u8v3" - MemberName 526(Block) 7 "u8v4" - Name 528 "block" - Name 529 "si8" - Name 530 "su8" + Name 197 "i8" + Name 217 "i" + Name 224 "uv" + Name 240 "i16" + Name 276 "b" + Name 338 "i8v" + Name 341 "i8" + Name 351 "u8v" + Name 353 "u8" + Name 423 "i16" + Name 426 "i32" + Name 429 "i8v4" + Name 433 "u16" + Name 434 "u8v2" + Name 437 "u32" + Name 440 "u8v4" + Name 452 "bv" + Name 513 "Block" + MemberName 513(Block) 0 "i8" + MemberName 513(Block) 1 "i8v2" + MemberName 513(Block) 2 "i8v3" + MemberName 513(Block) 3 "i8v4" + MemberName 513(Block) 4 "u8" + MemberName 513(Block) 5 "u8v2" + MemberName 513(Block) 6 "u8v3" + MemberName 513(Block) 7 "u8v4" + Name 515 "block" + Name 516 "si8" + Name 517 "su8" MemberDecorate 24(Uniforms) 0 Offset 0 Decorate 24(Uniforms) Block Decorate 26 DescriptorSet 0 Decorate 26 Binding 0 - MemberDecorate 526(Block) 0 Offset 0 - MemberDecorate 526(Block) 1 Offset 2 - MemberDecorate 526(Block) 2 Offset 4 - MemberDecorate 526(Block) 3 Offset 8 - MemberDecorate 526(Block) 4 Offset 12 - MemberDecorate 526(Block) 5 Offset 14 - MemberDecorate 526(Block) 6 Offset 16 - MemberDecorate 526(Block) 7 Offset 20 - Decorate 526(Block) Block - Decorate 528(block) DescriptorSet 0 - Decorate 528(block) Binding 1 - Decorate 529(si8) SpecId 100 - Decorate 530(su8) SpecId 101 + MemberDecorate 513(Block) 0 Offset 0 + MemberDecorate 513(Block) 1 Offset 2 + MemberDecorate 513(Block) 2 Offset 4 + MemberDecorate 513(Block) 3 Offset 8 + MemberDecorate 513(Block) 4 Offset 12 + MemberDecorate 513(Block) 5 Offset 14 + MemberDecorate 513(Block) 6 Offset 16 + MemberDecorate 513(Block) 7 Offset 20 + Decorate 513(Block) Block + Decorate 515(block) DescriptorSet 0 + Decorate 515(block) Binding 1 + Decorate 516(si8) SpecId 100 + Decorate 517(su8) SpecId 101 2: TypeVoid 3: TypeFunction 2 14: TypeInt 8 1 @@ -157,37 +159,36 @@ spv.int8.frag 182: 36(int8_t) Constant 1 183: 49(i8vec2) ConstantComposite 181 181 184: 49(i8vec2) ConstantComposite 182 182 - 190: TypeVector 14(int8_t) 3 + 190: TypeVector 36(int8_t) 3 191: TypePointer Function 190(i8vec3) - 215: TypePointer Function 27(int) - 221: TypeVector 17(int) 3 - 222: TypePointer Function 221(ivec3) - 225: TypeVector 27(int) 3 - 241: TypePointer Function 57(int16_t) - 264: 17(int) Constant 1 - 270: 17(int) Constant 2 - 278: TypePointer Function 171(bool) - 280: 17(int) Constant 0 - 293: TypePointer Function 17(int) - 352: 52(i8vec2) ConstantComposite 21 21 - 358: TypeVector 36(int8_t) 3 - 362: 190(i8vec3) ConstantComposite 22 22 22 - 404: 171(bool) ConstantTrue - 411: 171(bool) ConstantFalse - 412: 172(bvec2) ConstantComposite 411 411 - 427: TypeVector 171(bool) 3 - 428: 427(bvec3) ConstantComposite 411 411 411 - 434: TypeVector 14(int8_t) 4 - 435: TypePointer Function 434(i8vec4) - 439: TypePointer Function 64(int16_t) - 445: TypeVector 36(int8_t) 4 - 446: TypePointer Function 445(i8vec4) - 458: TypePointer Function 427(bvec3) - 526(Block): TypeStruct 14(int8_t) 52(i8vec2) 190(i8vec3) 434(i8vec4) 36(int8_t) 49(i8vec2) 190(i8vec3) 445(i8vec4) - 527: TypePointer Uniform 526(Block) - 528(block): 527(ptr) Variable Uniform - 529(si8): 14(int8_t) SpecConstant 4294967286 - 530(su8): 36(int8_t) SpecConstant 20 + 194: TypeVector 14(int8_t) 3 + 216: TypePointer Function 27(int) + 222: TypeVector 17(int) 3 + 223: TypePointer Function 222(ivec3) + 239: TypePointer Function 57(int16_t) + 261: 17(int) Constant 1 + 267: 17(int) Constant 2 + 275: TypePointer Function 171(bool) + 277: 17(int) Constant 0 + 291: TypePointer Function 17(int) + 349: 52(i8vec2) ConstantComposite 21 21 + 358: 190(i8vec3) ConstantComposite 181 181 181 + 400: 171(bool) ConstantTrue + 407: 171(bool) ConstantFalse + 408: 172(bvec2) ConstantComposite 407 407 + 420: TypeVector 171(bool) 3 + 421: 420(bvec3) ConstantComposite 407 407 407 + 427: TypeVector 14(int8_t) 4 + 428: TypePointer Function 427(i8vec4) + 432: TypePointer Function 64(int16_t) + 438: TypeVector 36(int8_t) 4 + 439: TypePointer Function 438(i8vec4) + 451: TypePointer Function 420(bvec3) + 513(Block): TypeStruct 14(int8_t) 52(i8vec2) 194(i8vec3) 427(i8vec4) 36(int8_t) 49(i8vec2) 190(i8vec3) 438(i8vec4) + 514: TypePointer Uniform 513(Block) + 515(block): 514(ptr) Variable Uniform + 516(si8): 14(int8_t) SpecConstant 4294967286 + 517(su8): 36(int8_t) SpecConstant 20 4(main): 2 Function None 3 5: Label Return @@ -360,389 +361,377 @@ spv.int8.frag 10(operators(): 2 Function None 3 11: Label 192(u8v): 191(ptr) Variable Function - 196(i8): 15(ptr) Variable Function - 216(i): 215(ptr) Variable Function - 223(uv): 222(ptr) Variable Function - 242(i16): 241(ptr) Variable Function - 279(b): 278(ptr) Variable Function + 197(i8): 15(ptr) Variable Function + 217(i): 216(ptr) Variable Function + 224(uv): 223(ptr) Variable Function + 240(i16): 239(ptr) Variable Function + 276(b): 275(ptr) Variable Function 193: 190(i8vec3) Load 192(u8v) - 194: 190(i8vec3) CompositeConstruct 176 176 176 - 195: 190(i8vec3) IAdd 193 194 - Store 192(u8v) 195 - 197: 14(int8_t) Load 196(i8) - 198: 14(int8_t) ISub 197 176 - Store 196(i8) 198 - 199: 14(int8_t) Load 196(i8) - 200: 14(int8_t) IAdd 199 176 - Store 196(i8) 200 - 201: 190(i8vec3) Load 192(u8v) - 202: 190(i8vec3) CompositeConstruct 176 176 176 - 203: 190(i8vec3) ISub 201 202 - Store 192(u8v) 203 - 204: 190(i8vec3) Load 192(u8v) - 205: 190(i8vec3) Not 204 - Store 192(u8v) 205 - 206: 14(int8_t) Load 196(i8) - Store 196(i8) 206 - 207: 190(i8vec3) Load 192(u8v) - 208: 190(i8vec3) SNegate 207 - Store 192(u8v) 208 - 209: 14(int8_t) Load 196(i8) - 210: 14(int8_t) Load 196(i8) - 211: 14(int8_t) IAdd 210 209 - Store 196(i8) 211 - 212: 190(i8vec3) Load 192(u8v) + 195: 194(i8vec3) CompositeConstruct 176 176 176 + 196: 190(i8vec3) IAdd 193 195 + Store 192(u8v) 196 + 198: 14(int8_t) Load 197(i8) + 199: 14(int8_t) ISub 198 176 + Store 197(i8) 199 + 200: 14(int8_t) Load 197(i8) + 201: 14(int8_t) IAdd 200 176 + Store 197(i8) 201 + 202: 190(i8vec3) Load 192(u8v) + 203: 194(i8vec3) CompositeConstruct 176 176 176 + 204: 190(i8vec3) ISub 202 203 + Store 192(u8v) 204 + 205: 190(i8vec3) Load 192(u8v) + 206: 190(i8vec3) Not 205 + Store 192(u8v) 206 + 207: 14(int8_t) Load 197(i8) + Store 197(i8) 207 + 208: 190(i8vec3) Load 192(u8v) + 209: 190(i8vec3) SNegate 208 + Store 192(u8v) 209 + 210: 14(int8_t) Load 197(i8) + 211: 14(int8_t) Load 197(i8) + 212: 14(int8_t) IAdd 211 210 + Store 197(i8) 212 213: 190(i8vec3) Load 192(u8v) - 214: 190(i8vec3) ISub 213 212 - Store 192(u8v) 214 - 217: 14(int8_t) Load 196(i8) - 218: 27(int) SConvert 217 - 219: 27(int) Load 216(i) - 220: 27(int) IMul 219 218 - Store 216(i) 220 - 224: 190(i8vec3) Load 192(u8v) - 226: 225(ivec3) SConvert 224 - 227: 221(ivec3) Bitcast 226 - 228: 221(ivec3) Load 223(uv) - 229: 221(ivec3) UDiv 228 227 - Store 223(uv) 229 - 230: 14(int8_t) Load 196(i8) - 231: 27(int) SConvert 230 - 232: 17(int) Bitcast 231 - 233: 221(ivec3) Load 223(uv) - 234: 221(ivec3) CompositeConstruct 232 232 232 - 235: 221(ivec3) UMod 233 234 - Store 223(uv) 235 - 236: 190(i8vec3) Load 192(u8v) - 237: 225(ivec3) SConvert 236 - 238: 221(ivec3) Bitcast 237 - 239: 221(ivec3) Load 223(uv) - 240: 221(ivec3) IAdd 238 239 - Store 223(uv) 240 - 243: 14(int8_t) Load 196(i8) - 244: 57(int16_t) SConvert 243 - 245: 57(int16_t) Load 242(i16) - 246: 57(int16_t) ISub 244 245 - Store 242(i16) 246 - 247: 190(i8vec3) Load 192(u8v) - 248: 225(ivec3) SConvert 247 - 249: 221(ivec3) Bitcast 248 - 250: 221(ivec3) Load 223(uv) - 251: 221(ivec3) IMul 249 250 - Store 223(uv) 251 - 252: 14(int8_t) Load 196(i8) - 253: 57(int16_t) SConvert 252 - 254: 57(int16_t) Load 242(i16) - 255: 57(int16_t) IMul 253 254 - Store 242(i16) 255 - 256: 14(int8_t) Load 196(i8) - 257: 27(int) SConvert 256 - 258: 27(int) Load 216(i) - 259: 27(int) SMod 257 258 - Store 216(i) 259 - 260: 14(int8_t) Load 196(i8) - 261: 190(i8vec3) Load 192(u8v) - 262: 190(i8vec3) CompositeConstruct 260 260 260 - 263: 190(i8vec3) ShiftLeftLogical 261 262 - Store 192(u8v) 263 - 265: 15(ptr) AccessChain 192(u8v) 264 - 266: 14(int8_t) Load 265 - 267: 14(int8_t) Load 196(i8) - 268: 14(int8_t) ShiftRightArithmetic 267 266 - Store 196(i8) 268 - 269: 14(int8_t) Load 196(i8) - 271: 15(ptr) AccessChain 192(u8v) 270 - 272: 14(int8_t) Load 271 - 273: 14(int8_t) ShiftLeftLogical 269 272 - Store 196(i8) 273 - 274: 190(i8vec3) Load 192(u8v) - 275: 14(int8_t) Load 196(i8) - 276: 190(i8vec3) CompositeConstruct 275 275 275 - 277: 190(i8vec3) ShiftLeftLogical 274 276 - Store 192(u8v) 277 - 281: 15(ptr) AccessChain 192(u8v) 280 - 282: 14(int8_t) Load 281 - 283: 14(int8_t) Load 196(i8) - 284: 171(bool) INotEqual 282 283 - Store 279(b) 284 - 285: 14(int8_t) Load 196(i8) - 286: 15(ptr) AccessChain 192(u8v) 280 - 287: 14(int8_t) Load 286 - 288: 171(bool) IEqual 285 287 - Store 279(b) 288 - 289: 15(ptr) AccessChain 192(u8v) 280 - 290: 14(int8_t) Load 289 - 291: 27(int) SConvert 290 - 292: 17(int) Bitcast 291 - 294: 293(ptr) AccessChain 223(uv) 264 - 295: 17(int) Load 294 - 296: 171(bool) UGreaterThan 292 295 - Store 279(b) 296 - 297: 14(int8_t) Load 196(i8) - 298: 27(int) SConvert 297 - 299: 27(int) Load 216(i) - 300: 171(bool) SLessThan 298 299 - Store 279(b) 300 - 301: 15(ptr) AccessChain 192(u8v) 264 - 302: 14(int8_t) Load 301 - 303: 27(int) SConvert 302 - 304: 17(int) Bitcast 303 - 305: 293(ptr) AccessChain 223(uv) 280 - 306: 17(int) Load 305 - 307: 171(bool) UGreaterThanEqual 304 306 - Store 279(b) 307 - 308: 14(int8_t) Load 196(i8) - 309: 27(int) SConvert 308 - 310: 27(int) Load 216(i) - 311: 171(bool) SLessThanEqual 309 310 - Store 279(b) 311 - 312: 14(int8_t) Load 196(i8) - 313: 27(int) SConvert 312 - 314: 17(int) Bitcast 313 - 315: 221(ivec3) Load 223(uv) - 316: 221(ivec3) CompositeConstruct 314 314 314 - 317: 221(ivec3) BitwiseOr 315 316 - Store 223(uv) 317 - 318: 14(int8_t) Load 196(i8) - 319: 27(int) SConvert 318 - 320: 27(int) Load 216(i) - 321: 27(int) BitwiseOr 319 320 - Store 216(i) 321 - 322: 14(int8_t) Load 196(i8) - 323: 57(int16_t) SConvert 322 - 324: 57(int16_t) Load 242(i16) - 325: 57(int16_t) BitwiseAnd 324 323 - Store 242(i16) 325 - 326: 190(i8vec3) Load 192(u8v) - 327: 225(ivec3) SConvert 326 - 328: 221(ivec3) Bitcast 327 - 329: 221(ivec3) Load 223(uv) - 330: 221(ivec3) BitwiseAnd 328 329 - Store 223(uv) 330 - 331: 14(int8_t) Load 196(i8) - 332: 27(int) SConvert 331 - 333: 17(int) Bitcast 332 - 334: 221(ivec3) Load 223(uv) - 335: 221(ivec3) CompositeConstruct 333 333 333 - 336: 221(ivec3) BitwiseXor 334 335 - Store 223(uv) 336 - 337: 190(i8vec3) Load 192(u8v) - 338: 14(int8_t) Load 196(i8) - 339: 190(i8vec3) CompositeConstruct 338 338 338 - 340: 190(i8vec3) BitwiseXor 337 339 - Store 192(u8v) 340 + 214: 190(i8vec3) Load 192(u8v) + 215: 190(i8vec3) ISub 214 213 + Store 192(u8v) 215 + 218: 14(int8_t) Load 197(i8) + 219: 27(int) SConvert 218 + 220: 27(int) Load 217(i) + 221: 27(int) IMul 220 219 + Store 217(i) 221 + 225: 190(i8vec3) Load 192(u8v) + 226: 222(ivec3) UConvert 225 + 227: 222(ivec3) Load 224(uv) + 228: 222(ivec3) UDiv 227 226 + Store 224(uv) 228 + 229: 14(int8_t) Load 197(i8) + 230: 27(int) SConvert 229 + 231: 17(int) Bitcast 230 + 232: 222(ivec3) Load 224(uv) + 233: 222(ivec3) CompositeConstruct 231 231 231 + 234: 222(ivec3) UMod 232 233 + Store 224(uv) 234 + 235: 190(i8vec3) Load 192(u8v) + 236: 222(ivec3) UConvert 235 + 237: 222(ivec3) Load 224(uv) + 238: 222(ivec3) IAdd 236 237 + Store 224(uv) 238 + 241: 14(int8_t) Load 197(i8) + 242: 57(int16_t) SConvert 241 + 243: 57(int16_t) Load 240(i16) + 244: 57(int16_t) ISub 242 243 + Store 240(i16) 244 + 245: 190(i8vec3) Load 192(u8v) + 246: 222(ivec3) UConvert 245 + 247: 222(ivec3) Load 224(uv) + 248: 222(ivec3) IMul 246 247 + Store 224(uv) 248 + 249: 14(int8_t) Load 197(i8) + 250: 57(int16_t) SConvert 249 + 251: 57(int16_t) Load 240(i16) + 252: 57(int16_t) IMul 250 251 + Store 240(i16) 252 + 253: 14(int8_t) Load 197(i8) + 254: 27(int) SConvert 253 + 255: 27(int) Load 217(i) + 256: 27(int) SMod 254 255 + Store 217(i) 256 + 257: 14(int8_t) Load 197(i8) + 258: 190(i8vec3) Load 192(u8v) + 259: 194(i8vec3) CompositeConstruct 257 257 257 + 260: 190(i8vec3) ShiftLeftLogical 258 259 + Store 192(u8v) 260 + 262: 37(ptr) AccessChain 192(u8v) 261 + 263: 36(int8_t) Load 262 + 264: 14(int8_t) Load 197(i8) + 265: 14(int8_t) ShiftRightArithmetic 264 263 + Store 197(i8) 265 + 266: 14(int8_t) Load 197(i8) + 268: 37(ptr) AccessChain 192(u8v) 267 + 269: 36(int8_t) Load 268 + 270: 14(int8_t) ShiftLeftLogical 266 269 + Store 197(i8) 270 + 271: 190(i8vec3) Load 192(u8v) + 272: 14(int8_t) Load 197(i8) + 273: 194(i8vec3) CompositeConstruct 272 272 272 + 274: 190(i8vec3) ShiftLeftLogical 271 273 + Store 192(u8v) 274 + 278: 37(ptr) AccessChain 192(u8v) 277 + 279: 36(int8_t) Load 278 + 280: 14(int8_t) Load 197(i8) + 281: 36(int8_t) Bitcast 280 + 282: 171(bool) INotEqual 279 281 + Store 276(b) 282 + 283: 14(int8_t) Load 197(i8) + 284: 36(int8_t) Bitcast 283 + 285: 37(ptr) AccessChain 192(u8v) 277 + 286: 36(int8_t) Load 285 + 287: 171(bool) IEqual 284 286 + Store 276(b) 287 + 288: 37(ptr) AccessChain 192(u8v) 277 + 289: 36(int8_t) Load 288 + 290: 17(int) UConvert 289 + 292: 291(ptr) AccessChain 224(uv) 261 + 293: 17(int) Load 292 + 294: 171(bool) UGreaterThan 290 293 + Store 276(b) 294 + 295: 14(int8_t) Load 197(i8) + 296: 27(int) SConvert 295 + 297: 27(int) Load 217(i) + 298: 171(bool) SLessThan 296 297 + Store 276(b) 298 + 299: 37(ptr) AccessChain 192(u8v) 261 + 300: 36(int8_t) Load 299 + 301: 17(int) UConvert 300 + 302: 291(ptr) AccessChain 224(uv) 277 + 303: 17(int) Load 302 + 304: 171(bool) UGreaterThanEqual 301 303 + Store 276(b) 304 + 305: 14(int8_t) Load 197(i8) + 306: 27(int) SConvert 305 + 307: 27(int) Load 217(i) + 308: 171(bool) SLessThanEqual 306 307 + Store 276(b) 308 + 309: 14(int8_t) Load 197(i8) + 310: 27(int) SConvert 309 + 311: 17(int) Bitcast 310 + 312: 222(ivec3) Load 224(uv) + 313: 222(ivec3) CompositeConstruct 311 311 311 + 314: 222(ivec3) BitwiseOr 312 313 + Store 224(uv) 314 + 315: 14(int8_t) Load 197(i8) + 316: 27(int) SConvert 315 + 317: 27(int) Load 217(i) + 318: 27(int) BitwiseOr 316 317 + Store 217(i) 318 + 319: 14(int8_t) Load 197(i8) + 320: 57(int16_t) SConvert 319 + 321: 57(int16_t) Load 240(i16) + 322: 57(int16_t) BitwiseAnd 321 320 + Store 240(i16) 322 + 323: 190(i8vec3) Load 192(u8v) + 324: 222(ivec3) UConvert 323 + 325: 222(ivec3) Load 224(uv) + 326: 222(ivec3) BitwiseAnd 324 325 + Store 224(uv) 326 + 327: 14(int8_t) Load 197(i8) + 328: 27(int) SConvert 327 + 329: 17(int) Bitcast 328 + 330: 222(ivec3) Load 224(uv) + 331: 222(ivec3) CompositeConstruct 329 329 329 + 332: 222(ivec3) BitwiseXor 330 331 + Store 224(uv) 332 + 333: 190(i8vec3) Load 192(u8v) + 334: 14(int8_t) Load 197(i8) + 335: 36(int8_t) Bitcast 334 + 336: 190(i8vec3) CompositeConstruct 335 335 335 + 337: 190(i8vec3) BitwiseXor 333 336 + Store 192(u8v) 337 Return FunctionEnd 12(builtinFuncs(): 2 Function None 3 13: Label - 341(i8v): 53(ptr) Variable Function - 344(i8): 15(ptr) Variable Function - 354(u8v): 191(ptr) Variable Function - 356(u8): 37(ptr) Variable Function - 430(i16): 241(ptr) Variable Function - 433(i32): 215(ptr) Variable Function - 436(i8v4): 435(ptr) Variable Function - 440(u16): 439(ptr) Variable Function - 441(u8v2): 50(ptr) Variable Function - 444(u32): 293(ptr) Variable Function - 447(u8v4): 446(ptr) Variable Function - 459(bv): 458(ptr) Variable Function - 342: 52(i8vec2) Load 341(i8v) - 343: 52(i8vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 342 - Store 341(i8v) 343 - 345: 14(int8_t) Load 344(i8) - 346: 14(int8_t) ExtInst 1(GLSL.std.450) 7(SSign) 345 - Store 344(i8) 346 - 347: 52(i8vec2) Load 341(i8v) - 348: 14(int8_t) Load 344(i8) - 349: 52(i8vec2) CompositeConstruct 348 348 - 350: 52(i8vec2) ExtInst 1(GLSL.std.450) 39(SMin) 347 349 - Store 341(i8v) 350 - 351: 52(i8vec2) Load 341(i8v) - 353: 52(i8vec2) ExtInst 1(GLSL.std.450) 39(SMin) 351 352 - Store 341(i8v) 353 - 355: 190(i8vec3) Load 354(u8v) - 357: 36(int8_t) Load 356(u8) - 359: 358(i8vec3) CompositeConstruct 357 357 357 - 360: 190(i8vec3) ExtInst 1(GLSL.std.450) 39(SMin) 355 359 - Store 354(u8v) 360 - 361: 190(i8vec3) Load 354(u8v) - 363: 190(i8vec3) ExtInst 1(GLSL.std.450) 39(SMin) 361 362 - Store 354(u8v) 363 - 364: 52(i8vec2) Load 341(i8v) - 365: 14(int8_t) Load 344(i8) - 366: 52(i8vec2) CompositeConstruct 365 365 - 367: 52(i8vec2) ExtInst 1(GLSL.std.450) 42(SMax) 364 366 - Store 341(i8v) 367 - 368: 52(i8vec2) Load 341(i8v) - 369: 52(i8vec2) ExtInst 1(GLSL.std.450) 42(SMax) 368 352 - Store 341(i8v) 369 - 370: 190(i8vec3) Load 354(u8v) - 371: 36(int8_t) Load 356(u8) - 372: 358(i8vec3) CompositeConstruct 371 371 371 - 373: 190(i8vec3) ExtInst 1(GLSL.std.450) 42(SMax) 370 372 - Store 354(u8v) 373 - 374: 190(i8vec3) Load 354(u8v) - 375: 190(i8vec3) ExtInst 1(GLSL.std.450) 42(SMax) 374 362 - Store 354(u8v) 375 - 376: 52(i8vec2) Load 341(i8v) - 377: 14(int8_t) Load 344(i8) - 378: 14(int8_t) SNegate 377 - 379: 14(int8_t) Load 344(i8) - 380: 52(i8vec2) CompositeConstruct 378 378 - 381: 52(i8vec2) CompositeConstruct 379 379 - 382: 52(i8vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 376 380 381 - Store 341(i8v) 382 - 383: 52(i8vec2) Load 341(i8v) - 384: 52(i8vec2) Load 341(i8v) - 385: 52(i8vec2) SNegate 384 - 386: 52(i8vec2) Load 341(i8v) - 387: 52(i8vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 383 385 386 - Store 341(i8v) 387 - 388: 190(i8vec3) Load 354(u8v) - 389: 36(int8_t) Load 356(u8) - 390: 36(int8_t) SNegate 389 - 391: 36(int8_t) Load 356(u8) - 392: 358(i8vec3) CompositeConstruct 390 390 390 - 393: 358(i8vec3) CompositeConstruct 391 391 391 - 394: 190(i8vec3) ExtInst 1(GLSL.std.450) 45(SClamp) 388 392 393 - Store 354(u8v) 394 - 395: 190(i8vec3) Load 354(u8v) - 396: 190(i8vec3) Load 354(u8v) - 397: 190(i8vec3) SNegate 396 - 398: 190(i8vec3) Load 354(u8v) - 399: 190(i8vec3) ExtInst 1(GLSL.std.450) 45(SClamp) 395 397 398 - Store 354(u8v) 399 - 400: 15(ptr) AccessChain 341(i8v) 280 - 401: 14(int8_t) Load 400 - 402: 15(ptr) AccessChain 341(i8v) 264 - 403: 14(int8_t) Load 402 - 405: 14(int8_t) Select 404 403 401 - Store 344(i8) 405 - 406: 14(int8_t) Load 344(i8) - 407: 52(i8vec2) CompositeConstruct 406 406 - 408: 14(int8_t) Load 344(i8) - 409: 14(int8_t) SNegate 408 - 410: 52(i8vec2) CompositeConstruct 409 409 - 413: 52(i8vec2) Select 412 410 407 - Store 341(i8v) 413 - 414: 15(ptr) AccessChain 354(u8v) 280 - 415: 14(int8_t) Load 414 - 416: 15(ptr) AccessChain 354(u8v) 264 - 417: 14(int8_t) Load 416 - 418: 14(int8_t) Select 404 417 415 - 419: 36(int8_t) Bitcast 418 - Store 356(u8) 419 - 420: 36(int8_t) Load 356(u8) - 421: 14(int8_t) Bitcast 420 - 422: 190(i8vec3) CompositeConstruct 421 421 421 - 423: 36(int8_t) Load 356(u8) - 424: 36(int8_t) SNegate 423 - 425: 14(int8_t) Bitcast 424 - 426: 190(i8vec3) CompositeConstruct 425 425 425 - 429: 190(i8vec3) Select 428 426 422 - Store 354(u8v) 429 - 431: 52(i8vec2) Load 341(i8v) - 432: 57(int16_t) Bitcast 431 - Store 430(i16) 432 - 437: 434(i8vec4) Load 436(i8v4) - 438: 27(int) Bitcast 437 - Store 433(i32) 438 - 442: 49(i8vec2) Load 441(u8v2) - 443: 64(int16_t) Bitcast 442 - Store 440(u16) 443 - 448: 445(i8vec4) Load 447(u8v4) - 449: 17(int) Bitcast 448 - Store 444(u32) 449 - 450: 57(int16_t) Load 430(i16) - 451: 52(i8vec2) Bitcast 450 - Store 341(i8v) 451 - 452: 27(int) Load 433(i32) - 453: 434(i8vec4) Bitcast 452 - Store 436(i8v4) 453 - 454: 64(int16_t) Load 440(u16) - 455: 49(i8vec2) Bitcast 454 - Store 441(u8v2) 455 - 456: 17(int) Load 444(u32) - 457: 445(i8vec4) Bitcast 456 - Store 447(u8v4) 457 - 460: 190(i8vec3) Load 354(u8v) - 461: 36(int8_t) Load 356(u8) - 462: 14(int8_t) Bitcast 461 - 463: 190(i8vec3) CompositeConstruct 462 462 462 - 464: 427(bvec3) SLessThan 460 463 - Store 459(bv) 464 - 465: 52(i8vec2) Load 341(i8v) - 466: 14(int8_t) Load 344(i8) - 467: 52(i8vec2) CompositeConstruct 466 466 - 468: 172(bvec2) SLessThan 465 467 - 469: 427(bvec3) Load 459(bv) - 470: 427(bvec3) VectorShuffle 469 468 3 4 2 - Store 459(bv) 470 - 471: 190(i8vec3) Load 354(u8v) - 472: 36(int8_t) Load 356(u8) - 473: 14(int8_t) Bitcast 472 - 474: 190(i8vec3) CompositeConstruct 473 473 473 - 475: 427(bvec3) SLessThanEqual 471 474 - Store 459(bv) 475 - 476: 52(i8vec2) Load 341(i8v) - 477: 14(int8_t) Load 344(i8) - 478: 52(i8vec2) CompositeConstruct 477 477 - 479: 172(bvec2) SLessThanEqual 476 478 - 480: 427(bvec3) Load 459(bv) - 481: 427(bvec3) VectorShuffle 480 479 3 4 2 - Store 459(bv) 481 - 482: 190(i8vec3) Load 354(u8v) - 483: 36(int8_t) Load 356(u8) - 484: 14(int8_t) Bitcast 483 + 338(i8v): 53(ptr) Variable Function + 341(i8): 15(ptr) Variable Function + 351(u8v): 191(ptr) Variable Function + 353(u8): 37(ptr) Variable Function + 423(i16): 239(ptr) Variable Function + 426(i32): 216(ptr) Variable Function + 429(i8v4): 428(ptr) Variable Function + 433(u16): 432(ptr) Variable Function + 434(u8v2): 50(ptr) Variable Function + 437(u32): 291(ptr) Variable Function + 440(u8v4): 439(ptr) Variable Function + 452(bv): 451(ptr) Variable Function + 339: 52(i8vec2) Load 338(i8v) + 340: 52(i8vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 339 + Store 338(i8v) 340 + 342: 14(int8_t) Load 341(i8) + 343: 14(int8_t) ExtInst 1(GLSL.std.450) 7(SSign) 342 + Store 341(i8) 343 + 344: 52(i8vec2) Load 338(i8v) + 345: 14(int8_t) Load 341(i8) + 346: 52(i8vec2) CompositeConstruct 345 345 + 347: 52(i8vec2) ExtInst 1(GLSL.std.450) 39(SMin) 344 346 + Store 338(i8v) 347 + 348: 52(i8vec2) Load 338(i8v) + 350: 52(i8vec2) ExtInst 1(GLSL.std.450) 39(SMin) 348 349 + Store 338(i8v) 350 + 352: 190(i8vec3) Load 351(u8v) + 354: 36(int8_t) Load 353(u8) + 355: 190(i8vec3) CompositeConstruct 354 354 354 + 356: 190(i8vec3) ExtInst 1(GLSL.std.450) 38(UMin) 352 355 + Store 351(u8v) 356 + 357: 190(i8vec3) Load 351(u8v) + 359: 190(i8vec3) ExtInst 1(GLSL.std.450) 38(UMin) 357 358 + Store 351(u8v) 359 + 360: 52(i8vec2) Load 338(i8v) + 361: 14(int8_t) Load 341(i8) + 362: 52(i8vec2) CompositeConstruct 361 361 + 363: 52(i8vec2) ExtInst 1(GLSL.std.450) 42(SMax) 360 362 + Store 338(i8v) 363 + 364: 52(i8vec2) Load 338(i8v) + 365: 52(i8vec2) ExtInst 1(GLSL.std.450) 42(SMax) 364 349 + Store 338(i8v) 365 + 366: 190(i8vec3) Load 351(u8v) + 367: 36(int8_t) Load 353(u8) + 368: 190(i8vec3) CompositeConstruct 367 367 367 + 369: 190(i8vec3) ExtInst 1(GLSL.std.450) 41(UMax) 366 368 + Store 351(u8v) 369 + 370: 190(i8vec3) Load 351(u8v) + 371: 190(i8vec3) ExtInst 1(GLSL.std.450) 41(UMax) 370 358 + Store 351(u8v) 371 + 372: 52(i8vec2) Load 338(i8v) + 373: 14(int8_t) Load 341(i8) + 374: 14(int8_t) SNegate 373 + 375: 14(int8_t) Load 341(i8) + 376: 52(i8vec2) CompositeConstruct 374 374 + 377: 52(i8vec2) CompositeConstruct 375 375 + 378: 52(i8vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 372 376 377 + Store 338(i8v) 378 + 379: 52(i8vec2) Load 338(i8v) + 380: 52(i8vec2) Load 338(i8v) + 381: 52(i8vec2) SNegate 380 + 382: 52(i8vec2) Load 338(i8v) + 383: 52(i8vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 379 381 382 + Store 338(i8v) 383 + 384: 190(i8vec3) Load 351(u8v) + 385: 36(int8_t) Load 353(u8) + 386: 36(int8_t) SNegate 385 + 387: 36(int8_t) Load 353(u8) + 388: 190(i8vec3) CompositeConstruct 386 386 386 + 389: 190(i8vec3) CompositeConstruct 387 387 387 + 390: 190(i8vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 384 388 389 + Store 351(u8v) 390 + 391: 190(i8vec3) Load 351(u8v) + 392: 190(i8vec3) Load 351(u8v) + 393: 190(i8vec3) SNegate 392 + 394: 190(i8vec3) Load 351(u8v) + 395: 190(i8vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 391 393 394 + Store 351(u8v) 395 + 396: 15(ptr) AccessChain 338(i8v) 277 + 397: 14(int8_t) Load 396 + 398: 15(ptr) AccessChain 338(i8v) 261 + 399: 14(int8_t) Load 398 + 401: 14(int8_t) Select 400 399 397 + Store 341(i8) 401 + 402: 14(int8_t) Load 341(i8) + 403: 52(i8vec2) CompositeConstruct 402 402 + 404: 14(int8_t) Load 341(i8) + 405: 14(int8_t) SNegate 404 + 406: 52(i8vec2) CompositeConstruct 405 405 + 409: 52(i8vec2) Select 408 406 403 + Store 338(i8v) 409 + 410: 37(ptr) AccessChain 351(u8v) 277 + 411: 36(int8_t) Load 410 + 412: 37(ptr) AccessChain 351(u8v) 261 + 413: 36(int8_t) Load 412 + 414: 36(int8_t) Select 400 413 411 + Store 353(u8) 414 + 415: 36(int8_t) Load 353(u8) + 416: 190(i8vec3) CompositeConstruct 415 415 415 + 417: 36(int8_t) Load 353(u8) + 418: 36(int8_t) SNegate 417 + 419: 190(i8vec3) CompositeConstruct 418 418 418 + 422: 190(i8vec3) Select 421 419 416 + Store 351(u8v) 422 + 424: 52(i8vec2) Load 338(i8v) + 425: 57(int16_t) Bitcast 424 + Store 423(i16) 425 + 430: 427(i8vec4) Load 429(i8v4) + 431: 27(int) Bitcast 430 + Store 426(i32) 431 + 435: 49(i8vec2) Load 434(u8v2) + 436: 64(int16_t) Bitcast 435 + Store 433(u16) 436 + 441: 438(i8vec4) Load 440(u8v4) + 442: 17(int) Bitcast 441 + Store 437(u32) 442 + 443: 57(int16_t) Load 423(i16) + 444: 52(i8vec2) Bitcast 443 + Store 338(i8v) 444 + 445: 27(int) Load 426(i32) + 446: 427(i8vec4) Bitcast 445 + Store 429(i8v4) 446 + 447: 64(int16_t) Load 433(u16) + 448: 49(i8vec2) Bitcast 447 + Store 434(u8v2) 448 + 449: 17(int) Load 437(u32) + 450: 438(i8vec4) Bitcast 449 + Store 440(u8v4) 450 + 453: 190(i8vec3) Load 351(u8v) + 454: 36(int8_t) Load 353(u8) + 455: 190(i8vec3) CompositeConstruct 454 454 454 + 456: 420(bvec3) ULessThan 453 455 + Store 452(bv) 456 + 457: 52(i8vec2) Load 338(i8v) + 458: 14(int8_t) Load 341(i8) + 459: 52(i8vec2) CompositeConstruct 458 458 + 460: 172(bvec2) SLessThan 457 459 + 461: 420(bvec3) Load 452(bv) + 462: 420(bvec3) VectorShuffle 461 460 3 4 2 + Store 452(bv) 462 + 463: 190(i8vec3) Load 351(u8v) + 464: 36(int8_t) Load 353(u8) + 465: 190(i8vec3) CompositeConstruct 464 464 464 + 466: 420(bvec3) ULessThanEqual 463 465 + Store 452(bv) 466 + 467: 52(i8vec2) Load 338(i8v) + 468: 14(int8_t) Load 341(i8) + 469: 52(i8vec2) CompositeConstruct 468 468 + 470: 172(bvec2) SLessThanEqual 467 469 + 471: 420(bvec3) Load 452(bv) + 472: 420(bvec3) VectorShuffle 471 470 3 4 2 + Store 452(bv) 472 + 473: 190(i8vec3) Load 351(u8v) + 474: 36(int8_t) Load 353(u8) + 475: 190(i8vec3) CompositeConstruct 474 474 474 + 476: 420(bvec3) UGreaterThan 473 475 + Store 452(bv) 476 + 477: 52(i8vec2) Load 338(i8v) + 478: 14(int8_t) Load 341(i8) + 479: 52(i8vec2) CompositeConstruct 478 478 + 480: 172(bvec2) SGreaterThan 477 479 + 481: 420(bvec3) Load 452(bv) + 482: 420(bvec3) VectorShuffle 481 480 3 4 2 + Store 452(bv) 482 + 483: 190(i8vec3) Load 351(u8v) + 484: 36(int8_t) Load 353(u8) 485: 190(i8vec3) CompositeConstruct 484 484 484 - 486: 427(bvec3) SGreaterThan 482 485 - Store 459(bv) 486 - 487: 52(i8vec2) Load 341(i8v) - 488: 14(int8_t) Load 344(i8) + 486: 420(bvec3) UGreaterThanEqual 483 485 + Store 452(bv) 486 + 487: 52(i8vec2) Load 338(i8v) + 488: 14(int8_t) Load 341(i8) 489: 52(i8vec2) CompositeConstruct 488 488 - 490: 172(bvec2) SGreaterThan 487 489 - 491: 427(bvec3) Load 459(bv) - 492: 427(bvec3) VectorShuffle 491 490 3 4 2 - Store 459(bv) 492 - 493: 190(i8vec3) Load 354(u8v) - 494: 36(int8_t) Load 356(u8) - 495: 14(int8_t) Bitcast 494 - 496: 190(i8vec3) CompositeConstruct 495 495 495 - 497: 427(bvec3) SGreaterThanEqual 493 496 - Store 459(bv) 497 - 498: 52(i8vec2) Load 341(i8v) - 499: 14(int8_t) Load 344(i8) - 500: 52(i8vec2) CompositeConstruct 499 499 - 501: 172(bvec2) SGreaterThanEqual 498 500 - 502: 427(bvec3) Load 459(bv) - 503: 427(bvec3) VectorShuffle 502 501 3 4 2 - Store 459(bv) 503 - 504: 190(i8vec3) Load 354(u8v) - 505: 36(int8_t) Load 356(u8) - 506: 14(int8_t) Bitcast 505 - 507: 190(i8vec3) CompositeConstruct 506 506 506 - 508: 427(bvec3) IEqual 504 507 - Store 459(bv) 508 - 509: 52(i8vec2) Load 341(i8v) - 510: 14(int8_t) Load 344(i8) - 511: 52(i8vec2) CompositeConstruct 510 510 - 512: 172(bvec2) IEqual 509 511 - 513: 427(bvec3) Load 459(bv) - 514: 427(bvec3) VectorShuffle 513 512 3 4 2 - Store 459(bv) 514 - 515: 190(i8vec3) Load 354(u8v) - 516: 36(int8_t) Load 356(u8) - 517: 14(int8_t) Bitcast 516 - 518: 190(i8vec3) CompositeConstruct 517 517 517 - 519: 427(bvec3) INotEqual 515 518 - Store 459(bv) 519 - 520: 52(i8vec2) Load 341(i8v) - 521: 14(int8_t) Load 344(i8) - 522: 52(i8vec2) CompositeConstruct 521 521 - 523: 172(bvec2) INotEqual 520 522 - 524: 427(bvec3) Load 459(bv) - 525: 427(bvec3) VectorShuffle 524 523 3 4 2 - Store 459(bv) 525 + 490: 172(bvec2) SGreaterThanEqual 487 489 + 491: 420(bvec3) Load 452(bv) + 492: 420(bvec3) VectorShuffle 491 490 3 4 2 + Store 452(bv) 492 + 493: 190(i8vec3) Load 351(u8v) + 494: 36(int8_t) Load 353(u8) + 495: 190(i8vec3) CompositeConstruct 494 494 494 + 496: 420(bvec3) IEqual 493 495 + Store 452(bv) 496 + 497: 52(i8vec2) Load 338(i8v) + 498: 14(int8_t) Load 341(i8) + 499: 52(i8vec2) CompositeConstruct 498 498 + 500: 172(bvec2) IEqual 497 499 + 501: 420(bvec3) Load 452(bv) + 502: 420(bvec3) VectorShuffle 501 500 3 4 2 + Store 452(bv) 502 + 503: 190(i8vec3) Load 351(u8v) + 504: 36(int8_t) Load 353(u8) + 505: 190(i8vec3) CompositeConstruct 504 504 504 + 506: 420(bvec3) INotEqual 503 505 + Store 452(bv) 506 + 507: 52(i8vec2) Load 338(i8v) + 508: 14(int8_t) Load 341(i8) + 509: 52(i8vec2) CompositeConstruct 508 508 + 510: 172(bvec2) INotEqual 507 509 + 511: 420(bvec3) Load 452(bv) + 512: 420(bvec3) VectorShuffle 511 510 3 4 2 + Store 452(bv) 512 Return FunctionEnd diff --git a/Test/runtimeArray.vert b/Test/runtimeArray.vert old mode 100644 new mode 100755 diff --git a/Test/spv.16bitstorage-int.frag b/Test/spv.16bitstorage-int.frag new file mode 100755 index 0000000000000000000000000000000000000000..57be67ee9560efa11e25135c2a220025c1abdc92 --- /dev/null +++ b/Test/spv.16bitstorage-int.frag @@ -0,0 +1,90 @@ +#version 450 core + +#extension GL_EXT_shader_16bit_storage : enable + +struct S +{ + int16_t x; + i16vec2 y; + i16vec3 z; +}; + +layout(column_major, std140) uniform B1 +{ + int16_t a; + i16vec2 b; + i16vec3 c; + int16_t d[2]; + S g; + S h[2]; + int j; +} b1; + +layout(row_major, std430) buffer B2 +{ + int16_t o; + i16vec2 p; + i16vec3 q; + int16_t r[2]; + S u; + S v[2]; + i16vec2 x[100]; + int16_t w[]; +} b2; + +layout(row_major, std140) uniform B5 +{ + int16_t o; + i16vec2 p; + i16vec3 q; + int16_t r[2]; + S u; + S v[2]; + i16vec2 x[100]; + int16_t w[100]; +} b5; + +struct S2 { + mat4x4 x; + int16_t y; + int z; +}; + +struct S3 { + S2 x; +}; + +layout(row_major, std430) buffer B3 +{ + S2 x; +} b3; + +layout(column_major, std430) buffer B4 +{ + S2 x; + S3 y; +} b4; + +void main() +{ + b2.o = b1.a; + b2.p = i16vec2(ivec3(b2.q).xy); + b2.p = i16vec2(ivec3(b5.q).xy); + b2.r[0] = b2.r[0]; + b2.r[1] = b5.r[1]; + b2.p = b2.p; + int x0 = int(b1.a); + ivec4 x1 = ivec4(b1.a, b2.p, 1); + b4.x.x = b3.x.x; + b2.o = int16_t(ivec2(b2.p).x); + b2.p = b2.v[1].y; + ivec3 v3 = ivec3(b2.w[b1.j], b2.w[b1.j+1], b2.w[b1.j+2]); + ivec3 u3 = ivec3(b5.w[b1.j], b5.w[b1.j+1], b5.w[b1.j+2]); + b2.x[0] = b2.x[0]; + b2.x[1] = b5.x[1]; + b2.p.x = b1.a; + b2.o = b2.p.x; + b2.p = i16vec2(ivec2(1, 2)); + b2.o = int16_t(3); +} + diff --git a/Test/spv.16bitstorage-uint.frag b/Test/spv.16bitstorage-uint.frag new file mode 100755 index 0000000000000000000000000000000000000000..aeecd0419c1286865f513f07379560a7692c99d3 --- /dev/null +++ b/Test/spv.16bitstorage-uint.frag @@ -0,0 +1,90 @@ +#version 450 core + +#extension GL_EXT_shader_16bit_storage : enable + +struct S +{ + uint16_t x; + u16vec2 y; + u16vec3 z; +}; + +layout(column_major, std140) uniform B1 +{ + uint16_t a; + u16vec2 b; + u16vec3 c; + uint16_t d[2]; + S g; + S h[2]; + uint j; +} b1; + +layout(row_major, std430) buffer B2 +{ + uint16_t o; + u16vec2 p; + u16vec3 q; + uint16_t r[2]; + S u; + S v[2]; + u16vec2 x[100]; + uint16_t w[]; +} b2; + +layout(row_major, std140) uniform B5 +{ + uint16_t o; + u16vec2 p; + u16vec3 q; + uint16_t r[2]; + S u; + S v[2]; + u16vec2 x[100]; + uint16_t w[100]; +} b5; + +struct S2 { + mat4x4 x; + uint16_t y; + uint z; +}; + +struct S3 { + S2 x; +}; + +layout(row_major, std430) buffer B3 +{ + S2 x; +} b3; + +layout(column_major, std430) buffer B4 +{ + S2 x; + S3 y; +} b4; + +void main() +{ + b2.o = b1.a; + b2.p = u16vec2(uvec3(b2.q).xy); + b2.p = u16vec2(uvec3(b5.q).xy); + b2.r[0] = b2.r[0]; + b2.r[1] = b5.r[1]; + b2.p = b2.p; + uint x0 = uint(b1.a); + uvec4 x1 = uvec4(b1.a, b2.p, 1); + b4.x.x = b3.x.x; + b2.o = uint16_t(uvec2(b2.p).x); + b2.p = b2.v[1].y; + uvec3 v3 = uvec3(b2.w[b1.j], b2.w[b1.j+1], b2.w[b1.j+2]); + uvec3 u3 = uvec3(b5.w[b1.j], b5.w[b1.j+1], b5.w[b1.j+2]); + b2.x[0] = b2.x[0]; + b2.x[1] = b5.x[1]; + b2.p.x = b1.a; + b2.o = b2.p.x; + b2.p = u16vec2(uvec2(1, 2)); + b2.o = uint16_t(3u); +} + diff --git a/Test/spv.16bitstorage.frag b/Test/spv.16bitstorage.frag new file mode 100755 index 0000000000000000000000000000000000000000..b821be1e1a5b6fe341adc7a01b275894c4d3ffa4 --- /dev/null +++ b/Test/spv.16bitstorage.frag @@ -0,0 +1,90 @@ +#version 450 core + +#extension GL_EXT_shader_16bit_storage : enable + +struct S +{ + float16_t x; + f16vec2 y; + f16vec3 z; +}; + +layout(column_major, std140) uniform B1 +{ + float16_t a; + f16vec2 b; + f16vec3 c; + float16_t d[2]; + S g; + S h[2]; + int j; +} b1; + +layout(row_major, std430) buffer B2 +{ + float16_t o; + f16vec2 p; + f16vec3 q; + float16_t r[2]; + S u; + S v[2]; + f16vec2 x[100]; + float16_t w[]; +} b2; + +layout(row_major, std140) uniform B5 +{ + float16_t o; + f16vec2 p; + f16vec3 q; + float16_t r[2]; + S u; + S v[2]; + f16vec2 x[100]; + float16_t w[100]; +} b5; + +struct S2 { + mat4x4 x; + float16_t y; + float z; +}; + +struct S3 { + S2 x; +}; + +layout(row_major, std430) buffer B3 +{ + S2 x; +} b3; + +layout(column_major, std430) buffer B4 +{ + S2 x; + S3 y; +} b4; + +void main() +{ + b2.o = b1.a; + b2.p = f16vec2(vec3(b2.q).xy); + b2.p = f16vec2(vec3(b5.q).xy); + b2.r[0] = b2.r[0]; + b2.r[1] = b5.r[1]; + b2.p = b2.p; + float x0 = float(b1.a); + vec4 x1 = vec4(b1.a, b2.p, 1.0); + b4.x.x = b3.x.x; + b2.o = float16_t(vec2(b2.p).x); + b2.p = b2.v[1].y; + vec3 v3 = vec3(b2.w[b1.j], b2.w[b1.j+1], b2.w[b1.j+2]); + vec3 u3 = vec3(b5.w[b1.j], b5.w[b1.j+1], b5.w[b1.j+2]); + b2.x[0] = b2.x[0]; + b2.x[1] = b5.x[1]; + b2.p.x = b1.a; + b2.o = b2.p.x; + b2.p = f16vec2(vec2(1.0, 2.0)); + b2.o = float16_t(3.0); +} + diff --git a/Test/spv.16bitstorage_Error-int.frag b/Test/spv.16bitstorage_Error-int.frag new file mode 100755 index 0000000000000000000000000000000000000000..1897b026c6bcb0e50e27a0c497d994ae78c7e076 --- /dev/null +++ b/Test/spv.16bitstorage_Error-int.frag @@ -0,0 +1,101 @@ +#version 450 core + +#extension GL_EXT_shader_16bit_storage : enable + +struct S +{ + int16_t x; + i16vec2 y; + i16vec3 z; +}; + +layout(column_major, std140) uniform B1 +{ + int16_t a; + i16vec2 b; + i16vec3 c; + int16_t d[2]; + S g; + S h[2]; + int j; +} b1; + +layout(row_major, std430) buffer B2 +{ + int16_t o; + i16vec2 p; + i16vec3 q; + int16_t r[2]; + S u; + S v[2]; + int16_t w[]; +} b2; + +struct S2 { + mat4x4 x; + int16_t y; + int z; +}; + +struct S3 { + S2 x; +}; + +layout(row_major, std430) buffer B3 +{ + S2 x; +} b3; + +layout(column_major, std430) buffer B4 +{ + S2 x; +} b4; + +void func3(S2 x) { +} + +S2 func4() { + return b4.x; +} + +int func(int16_t a) { + return 0; +} + +struct S4 { + int x; + int16_t y; +}; + +int func2(int a) { return 0; } + +void main() +{ + b2.o = b2.q[1]; + b2.p = b2.q.xy; + b2.o = max(b1.a, b1.a); + bvec2 bv = lessThan(b2.p, b2.p); + b2.o = b1.a + b1.a; + b2.o = -b1.a; + b2.o = b1.a + 1; + b2.p = b2.p.yx; + b4.x = b3.x; + int16_t f0; + S2 f1; + S3 f2; + if (b1.a == b1.a) {} + b2.r = b2.r; + b2.p = i16vec2(3, 4); + i16vec2[2](i16vec2(ivec2(1,2)), i16vec2(ivec2(3,4))); + // NOT ERRORING YET + b3.x; + S4(0, int16_t(0)); + func2(b1.a); +} + + +layout(column_major, std140) uniform B6 +{ + i16mat2x3 e; +} b6; + diff --git a/Test/spv.16bitstorage_Error-uint.frag b/Test/spv.16bitstorage_Error-uint.frag new file mode 100755 index 0000000000000000000000000000000000000000..5f32a3b7f95b760dd4172eb635ad565b9ceeecd4 --- /dev/null +++ b/Test/spv.16bitstorage_Error-uint.frag @@ -0,0 +1,101 @@ +#version 450 core + +#extension GL_EXT_shader_16bit_storage : enable + +struct S +{ + uint16_t x; + u16vec2 y; + u16vec3 z; +}; + +layout(column_major, std140) uniform B1 +{ + uint16_t a; + u16vec2 b; + u16vec3 c; + uint16_t d[2]; + S g; + S h[2]; + uint j; +} b1; + +layout(row_major, std430) buffer B2 +{ + uint16_t o; + u16vec2 p; + u16vec3 q; + uint16_t r[2]; + S u; + S v[2]; + uint16_t w[]; +} b2; + +struct S2 { + mat4x4 x; + uint16_t y; + uint z; +}; + +struct S3 { + S2 x; +}; + +layout(row_major, std430) buffer B3 +{ + S2 x; +} b3; + +layout(column_major, std430) buffer B4 +{ + S2 x; +} b4; + +void func3(S2 x) { +} + +S2 func4() { + return b4.x; +} + +uint func(uint16_t a) { + return 0; +} + +struct S4 { + uint x; + uint16_t y; +}; + +uint func2(uint a) { return 0; } + +void main() +{ + b2.o = b2.q[1]; + b2.p = b2.q.xy; + b2.o = max(b1.a, b1.a); + bvec2 bv = lessThan(b2.p, b2.p); + b2.o = b1.a + b1.a; + b2.o = -b1.a; + b2.o = b1.a + 1; + b2.p = b2.p.yx; + b4.x = b3.x; + uint16_t f0; + S2 f1; + S3 f2; + if (b1.a == b1.a) {} + b2.r = b2.r; + b2.p = u16vec2(3, 4); + u16vec2[2](u16vec2(uvec2(1,2)), u16vec2(uvec2(3,4))); + // NOT ERRORING YET + b3.x; + S4(0u, uint16_t(0u)); + func2(b1.a); +} + + +layout(column_major, std140) uniform B6 +{ + u16mat2x3 e; +} b6; + diff --git a/Test/spv.16bitstorage_Error.frag b/Test/spv.16bitstorage_Error.frag new file mode 100755 index 0000000000000000000000000000000000000000..7a61a97ff862b5311ad5896e31edd25f30b8440d --- /dev/null +++ b/Test/spv.16bitstorage_Error.frag @@ -0,0 +1,102 @@ +#version 450 core + +#extension GL_EXT_shader_16bit_storage : enable + +struct S +{ + float16_t x; + f16vec2 y; + f16vec3 z; +}; + +layout(column_major, std140) uniform B1 +{ + float16_t a; + f16vec2 b; + f16vec3 c; + float16_t d[2]; + S g; + S h[2]; + int j; +} b1; + +layout(row_major, std430) buffer B2 +{ + float16_t o; + f16vec2 p; + f16vec3 q; + float16_t r[2]; + S u; + S v[2]; + float16_t w[]; +} b2; + +struct S2 { + mat4x4 x; + float16_t y; + float z; +}; + +struct S3 { + S2 x; +}; + +layout(row_major, std430) buffer B3 +{ + S2 x; +} b3; + +layout(column_major, std430) buffer B4 +{ + S2 x; +} b4; + +void func3(S2 x) { +} + +S2 func4() { + return b4.x; +} + +float func(float16_t a) { + return 0.0; +} + +struct S4 { + float x; + float16_t y; +}; + +float func2(float a) { return 0.0; } + +void main() +{ + b2.o = b2.q[1]; + b2.p = b2.q.xy; + b2.o = max(b1.a, b1.a); + bvec2 bv = lessThan(b2.p, b2.p); + b2.o = b1.a + b1.a; + b2.o = -b1.a; + b2.o = b1.a + 1.0; + b2.p = b2.p.yx; + b4.x = b3.x; + float16_t f0; + S2 f1; + S3 f2; + if (b1.a == b1.a) {} + b2.r = b2.r; + b2.o = 1.0HF; + b2.p = f16vec2(3.0, 4.0); + f16vec2[2](f16vec2(vec2(1.0,2.0)), f16vec2(vec2(3.0,4.0))); + // NOT ERRORING YET + b3.x; + S4(0.0, float16_t(0.0)); + func2(b1.a); +} + + +layout(column_major, std140) uniform B6 +{ + f16mat2x3 e; +} b6; + diff --git a/Test/spv.8bitstorage-int.frag b/Test/spv.8bitstorage-int.frag new file mode 100755 index 0000000000000000000000000000000000000000..93203c36cd890789ee274a2835ffc3aeae5bcc0d --- /dev/null +++ b/Test/spv.8bitstorage-int.frag @@ -0,0 +1,90 @@ +#version 450 core + +#extension GL_EXT_shader_8bit_storage : enable + +struct S +{ + int8_t x; + i8vec2 y; + i8vec3 z; +}; + +layout(column_major, std140) uniform B1 +{ + int8_t a; + i8vec2 b; + i8vec3 c; + int8_t d[2]; + S g; + S h[2]; + int j; +} b1; + +layout(row_major, std430) buffer B2 +{ + int8_t o; + i8vec2 p; + i8vec3 q; + int8_t r[2]; + S u; + S v[2]; + i8vec2 x[100]; + int8_t w[]; +} b2; + +layout(row_major, std140) uniform B5 +{ + int8_t o; + i8vec2 p; + i8vec3 q; + int8_t r[2]; + S u; + S v[2]; + i8vec2 x[100]; + int8_t w[100]; +} b5; + +struct S2 { + mat4x4 x; + int8_t y; + int z; +}; + +struct S3 { + S2 x; +}; + +layout(row_major, std430) buffer B3 +{ + S2 x; +} b3; + +layout(column_major, std430) buffer B4 +{ + S2 x; + S3 y; +} b4; + +void main() +{ + b2.o = b1.a; + b2.p = i8vec2(ivec3(b2.q).xy); + b2.p = i8vec2(ivec3(b5.q).xy); + b2.r[0] = b2.r[0]; + b2.r[1] = b5.r[1]; + b2.p = b2.p; + int x0 = int(b1.a); + ivec4 x1 = ivec4(b1.a, b2.p, 1); + b4.x.x = b3.x.x; + b2.o = int8_t(ivec2(b2.p).x); + b2.p = b2.v[1].y; + ivec3 v3 = ivec3(b2.w[b1.j], b2.w[b1.j+1], b2.w[b1.j+2]); + ivec3 u3 = ivec3(b5.w[b1.j], b5.w[b1.j+1], b5.w[b1.j+2]); + b2.x[0] = b2.x[0]; + b2.x[1] = b5.x[1]; + b2.p.x = b1.a; + b2.o = b2.p.x; + b2.p = i8vec2(ivec2(1, 2)); + b2.o = int8_t(3); +} + diff --git a/Test/spv.8bitstorage-uint.frag b/Test/spv.8bitstorage-uint.frag new file mode 100755 index 0000000000000000000000000000000000000000..574d088edc55783c6a25b5c0d19bb21c8a3e6964 --- /dev/null +++ b/Test/spv.8bitstorage-uint.frag @@ -0,0 +1,90 @@ +#version 450 core + +#extension GL_EXT_shader_8bit_storage : enable + +struct S +{ + uint8_t x; + u8vec2 y; + u8vec3 z; +}; + +layout(column_major, std140) uniform B1 +{ + uint8_t a; + u8vec2 b; + u8vec3 c; + uint8_t d[2]; + S g; + S h[2]; + uint j; +} b1; + +layout(row_major, std430) buffer B2 +{ + uint8_t o; + u8vec2 p; + u8vec3 q; + uint8_t r[2]; + S u; + S v[2]; + u8vec2 x[100]; + uint8_t w[]; +} b2; + +layout(row_major, std140) uniform B5 +{ + uint8_t o; + u8vec2 p; + u8vec3 q; + uint8_t r[2]; + S u; + S v[2]; + u8vec2 x[100]; + uint8_t w[100]; +} b5; + +struct S2 { + mat4x4 x; + uint8_t y; + uint z; +}; + +struct S3 { + S2 x; +}; + +layout(row_major, std430) buffer B3 +{ + S2 x; +} b3; + +layout(column_major, std430) buffer B4 +{ + S2 x; + S3 y; +} b4; + +void main() +{ + b2.o = b1.a; + b2.p = u8vec2(uvec3(b2.q).xy); + b2.p = u8vec2(uvec3(b5.q).xy); + b2.r[0] = b2.r[0]; + b2.r[1] = b5.r[1]; + b2.p = b2.p; + uint x0 = uint(b1.a); + uvec4 x1 = uvec4(b1.a, b2.p, 1); + b4.x.x = b3.x.x; + b2.o = uint8_t(uvec2(b2.p).x); + b2.p = b2.v[1].y; + uvec3 v3 = uvec3(b2.w[b1.j], b2.w[b1.j+1], b2.w[b1.j+2]); + uvec3 u3 = uvec3(b5.w[b1.j], b5.w[b1.j+1], b5.w[b1.j+2]); + b2.x[0] = b2.x[0]; + b2.x[1] = b5.x[1]; + b2.p.x = b1.a; + b2.o = b2.p.x; + b2.p = u8vec2(uvec2(1, 2)); + b2.o = uint8_t(3u); +} + diff --git a/Test/spv.8bitstorage_Error-int.frag b/Test/spv.8bitstorage_Error-int.frag new file mode 100755 index 0000000000000000000000000000000000000000..35fe182671eff2dc2766d0dd342e5a51a42ca5e1 --- /dev/null +++ b/Test/spv.8bitstorage_Error-int.frag @@ -0,0 +1,101 @@ +#version 450 core + +#extension GL_EXT_shader_8bit_storage : enable + +struct S +{ + int8_t x; + i8vec2 y; + i8vec3 z; +}; + +layout(column_major, std140) uniform B1 +{ + int8_t a; + i8vec2 b; + i8vec3 c; + int8_t d[2]; + S g; + S h[2]; + int j; +} b1; + +layout(row_major, std430) buffer B2 +{ + int8_t o; + i8vec2 p; + i8vec3 q; + int8_t r[2]; + S u; + S v[2]; + int8_t w[]; +} b2; + +struct S2 { + mat4x4 x; + int8_t y; + int z; +}; + +struct S3 { + S2 x; +}; + +layout(row_major, std430) buffer B3 +{ + S2 x; +} b3; + +layout(column_major, std430) buffer B4 +{ + S2 x; +} b4; + +void func3(S2 x) { +} + +S2 func4() { + return b4.x; +} + +int func(int8_t a) { + return 0; +} + +struct S4 { + int x; + int8_t y; +}; + +int func2(int a) { return 0; } + +void main() +{ + b2.o = b2.q[1]; + b2.p = b2.q.xy; + b2.o = max(b1.a, b1.a); + bvec2 bv = lessThan(b2.p, b2.p); + b2.o = b1.a + b1.a; + b2.o = -b1.a; + b2.o = b1.a + 1; + b2.p = b2.p.yx; + b4.x = b3.x; + int8_t f0; + S2 f1; + S3 f2; + if (b1.a == b1.a) {} + b2.r = b2.r; + b2.p = i8vec2(3, 4); + i8vec2[2](i8vec2(ivec2(1,2)), i8vec2(ivec2(3,4))); + // NOT ERRORING YET + b3.x; + S4(0, int8_t(0)); + func2(b1.a); +} + + +layout(column_major, std140) uniform B6 +{ + i8mat2x3 e; +} b6; + diff --git a/Test/spv.8bitstorage_Error-uint.frag b/Test/spv.8bitstorage_Error-uint.frag new file mode 100755 index 0000000000000000000000000000000000000000..5d0209f0cb776eacc338c9b948bd0cead82eb756 --- /dev/null +++ b/Test/spv.8bitstorage_Error-uint.frag @@ -0,0 +1,101 @@ +#version 450 core + +#extension GL_EXT_shader_8bit_storage : enable + +struct S +{ + uint8_t x; + u8vec2 y; + u8vec3 z; +}; + +layout(column_major, std140) uniform B1 +{ + uint8_t a; + u8vec2 b; + u8vec3 c; + uint8_t d[2]; + S g; + S h[2]; + uint j; +} b1; + +layout(row_major, std430) buffer B2 +{ + uint8_t o; + u8vec2 p; + u8vec3 q; + uint8_t r[2]; + S u; + S v[2]; + uint8_t w[]; +} b2; + +struct S2 { + mat4x4 x; + uint8_t y; + uint z; +}; + +struct S3 { + S2 x; +}; + +layout(row_major, std430) buffer B3 +{ + S2 x; +} b3; + +layout(column_major, std430) buffer B4 +{ + S2 x; +} b4; + +void func3(S2 x) { +} + +S2 func4() { + return b4.x; +} + +uint func(uint8_t a) { + return 0; +} + +struct S4 { + uint x; + uint8_t y; +}; + +uint func2(uint a) { return 0; } + +void main() +{ + b2.o = b2.q[1]; + b2.p = b2.q.xy; + b2.o = max(b1.a, b1.a); + bvec2 bv = lessThan(b2.p, b2.p); + b2.o = b1.a + b1.a; + b2.o = -b1.a; + b2.o = b1.a + 1; + b2.p = b2.p.yx; + b4.x = b3.x; + uint8_t f0; + S2 f1; + S3 f2; + if (b1.a == b1.a) {} + b2.r = b2.r; + b2.p = u8vec2(3, 4); + u8vec2[2](u8vec2(uvec2(1,2)), u8vec2(uvec2(3,4))); + // NOT ERRORING YET + b3.x; + S4(0u, uint8_t(0u)); + func2(b1.a); +} + + +layout(column_major, std140) uniform B6 +{ + u8mat2x3 e; +} b6; + diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h old mode 100644 new mode 100755 index 39d6737cfc61241ccdab6e2a21ad388d20e8d4de..2b0c7a1a8d74852766a2d56fa479d2b84553de0f --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -1472,6 +1472,16 @@ public: return contains([](const TType* t) { return t->isArray() && t->arraySizes->isOuterSpecialization(); } ); } + virtual bool contains16BitInt() const + { + return containsBasicType(EbtInt16) || containsBasicType(EbtUint16); + } + + virtual bool contains8BitInt() const + { + return containsBasicType(EbtInt8) || containsBasicType(EbtUint8); + } + // Array editing methods. Array descriptors can be shared across // type instances. This allows all uses of the same array // to be updated at once. E.g., all nodes can be explicitly sized diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 90db3884c233cdc16bbdf09201dc943b88758e91..b8d443b229112fe5a27bf01679cbb9cc594db41c 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -1,3 +1,3 @@ // This header is generated by the make-revision script. -#define GLSLANG_PATCH_LEVEL 2796 +#define GLSLANG_PATCH_LEVEL 2797 diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp old mode 100644 new mode 100755 index de722179c7a2d337fdc5a3db78af1525d1eb03c8..8eb5ff54f138f3559dc88593f5a3fa92b27f9374 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -881,6 +881,9 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt // like vector and matrix sizes. TBasicType promoteTo; + // GL_EXT_shader_16bit_storage can't do OpConstantComposite with + // 16-bit types, so disable promotion for those types. + bool canPromoteConstant = true; switch (op) { // @@ -897,18 +900,28 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt break; case EOpConstructFloat16: promoteTo = EbtFloat16; + canPromoteConstant = extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types) || + extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_float16); break; case EOpConstructInt8: promoteTo = EbtInt8; + canPromoteConstant = extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types) || + extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_int8); break; case EOpConstructUint8: promoteTo = EbtUint8; + canPromoteConstant = extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types) || + extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_int8); break; case EOpConstructInt16: promoteTo = EbtInt16; + canPromoteConstant = extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types) || + extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_int16); break; case EOpConstructUint16: promoteTo = EbtUint16; + canPromoteConstant = extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types) || + extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_int16); break; case EOpConstructInt: promoteTo = EbtInt; @@ -999,7 +1012,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt return nullptr; } - if (node->getAsConstantUnion()) + if (canPromoteConstant && node->getAsConstantUnion()) return promoteConstantUnion(promoteTo, node->getAsConstantUnion()); // @@ -1468,16 +1481,16 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat case EbtUint: case EbtInt64: case EbtUint64: + case EbtFloat: + case EbtDouble: + return true; #ifdef AMD_EXTENSIONS case EbtInt16: case EbtUint16: + return extensionRequested(E_GL_AMD_gpu_shader_int16); + case EbtFloat16: + return extensionRequested(E_GL_AMD_gpu_shader_half_float); #endif - case EbtFloat: - case EbtDouble: -#ifdef AMD_EXTENSIONS - case EbtFloat16: -#endif - return true; default: return false; } @@ -1485,17 +1498,21 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat switch (from) { case EbtInt: case EbtUint: + case EbtFloat: + return true; + case EbtBool: + return (source == EShSourceHlsl); #ifdef AMD_EXTENSIONS case EbtInt16: case EbtUint16: + return extensionRequested(E_GL_AMD_gpu_shader_int16); #endif - case EbtFloat: -#ifdef AMD_EXTENSIONS case EbtFloat16: + return +#ifdef AMD_EXTENSIONS + extensionRequested(E_GL_AMD_gpu_shader_half_float) || #endif - return true; - case EbtBool: - return (source == EShSourceHlsl); + (source == EShSourceHlsl); default: return false; } @@ -1504,25 +1521,27 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat case EbtInt: return version >= 400 || (source == EShSourceHlsl); case EbtUint: + return true; + case EbtBool: + return (source == EShSourceHlsl); #ifdef AMD_EXTENSIONS case EbtInt16: case EbtUint16: + return extensionRequested(E_GL_AMD_gpu_shader_int16); #endif - return true; - case EbtBool: - return (source == EShSourceHlsl); default: return false; } case EbtInt: switch (from) { case EbtInt: -#ifdef AMD_EXTENSIONS - case EbtInt16: -#endif return true; case EbtBool: return (source == EShSourceHlsl); +#ifdef AMD_EXTENSIONS + case EbtInt16: + return extensionRequested(E_GL_AMD_gpu_shader_int16); +#endif default: return false; } @@ -1532,11 +1551,12 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat case EbtUint: case EbtInt64: case EbtUint64: + return true; #ifdef AMD_EXTENSIONS case EbtInt16: case EbtUint16: + return extensionRequested(E_GL_AMD_gpu_shader_int16); #endif - return true; default: return false; } @@ -1544,32 +1564,36 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat switch (from) { case EbtInt: case EbtInt64: + return true; #ifdef AMD_EXTENSIONS case EbtInt16: + return extensionRequested(E_GL_AMD_gpu_shader_int16); #endif - return true; default: return false; } -#ifdef AMD_EXTENSIONS case EbtFloat16: switch (from) { +#ifdef AMD_EXTENSIONS case EbtInt16: case EbtUint16: + return extensionRequested(E_GL_AMD_gpu_shader_int16); case EbtFloat16: - return true; + return extensionRequested(E_GL_AMD_gpu_shader_half_float); +#endif default: return false; } case EbtUint16: switch (from) { +#ifdef AMD_EXTENSIONS case EbtInt16: case EbtUint16: - return true; + return extensionRequested(E_GL_AMD_gpu_shader_int16); +#endif default: return false; } -#endif default: return false; } diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 92c6f53f5486babedfbadbe176bd9efd14a2f1d8..926cb490481e9b69448a6505654ae7ff2d0d6fd9 100755 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -354,95 +354,108 @@ TIntermTyped* TParseContext::handleVariable(const TSourceLoc& loc, TSymbol* symb // TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIntermTyped* base, TIntermTyped* index) { - TIntermTyped* result = nullptr; - int indexValue = 0; if (index->getQualifier().isFrontEndConstant()) indexValue = index->getAsConstantUnion()->getConstArray()[0].getIConst(); + // basic type checks... variableCheck(base); + if (! base->isArray() && ! base->isMatrix() && ! base->isVector()) { if (base->getAsSymbolNode()) error(loc, " left of '[' is not of type array, matrix, or vector ", base->getAsSymbolNode()->getName().c_str(), ""); else error(loc, " left of '[' is not of type array, matrix, or vector ", "expression", ""); - } else if (base->getType().getQualifier().isFrontEndConstant() && index->getQualifier().isFrontEndConstant()) { + + // Insert dummy error-recovery result + return intermediate.addConstantUnion(0.0, EbtFloat, loc); + } + + if (!base->isArray() && base->isVector()) { + if (base->getType().containsBasicType(EbtFloat16)) { + requireFloat16Arithmetic(loc, "'[' does not operate on types containing float16"); + } + if (base->getType().contains16BitInt()) { + requireInt16Arithmetic(loc, "'[' does not operate on types containing (u)int16"); + } + if (base->getType().contains8BitInt()) { + requireInt8Arithmetic(loc, "'[' does not operate on types containing (u)int8"); + } + } + + // check for constant folding + if (base->getType().getQualifier().isFrontEndConstant() && index->getQualifier().isFrontEndConstant()) { // both base and index are front-end constants checkIndex(loc, base->getType(), indexValue); return intermediate.foldDereference(base, indexValue, loc); - } else { - // at least one of base and index is not a front-end constant variable... + } - if (index->getQualifier().isFrontEndConstant()) - checkIndex(loc, base->getType(), indexValue); + // at least one of base and index is not a front-end constant variable... + TIntermTyped* result = nullptr; + if (index->getQualifier().isFrontEndConstant()) + checkIndex(loc, base->getType(), indexValue); - if (base->getAsSymbolNode() && isIoResizeArray(base->getType())) - handleIoResizeArrayAccess(loc, base); + if (base->getAsSymbolNode() && isIoResizeArray(base->getType())) + handleIoResizeArrayAccess(loc, base); - if (index->getQualifier().isFrontEndConstant()) { - if (base->getType().isUnsizedArray()) - base->getWritableType().updateImplicitArraySize(indexValue + 1); - else - checkIndex(loc, base->getType(), indexValue); - result = intermediate.addIndex(EOpIndexDirect, base, index, loc); - } else { - if (base->getType().isUnsizedArray()) { - // we have a variable index into an unsized array, which is okay, - // depending on the situation - if (base->getAsSymbolNode() && isIoResizeArray(base->getType())) - error(loc, "", "[", "array must be sized by a redeclaration or layout qualifier before being indexed with a variable"); - else { - // it is okay for a run-time sized array - checkRuntimeSizable(loc, *base); - } - base->getWritableType().setArrayVariablyIndexed(); + if (index->getQualifier().isFrontEndConstant()) { + if (base->getType().isUnsizedArray()) + base->getWritableType().updateImplicitArraySize(indexValue + 1); + else + checkIndex(loc, base->getType(), indexValue); + result = intermediate.addIndex(EOpIndexDirect, base, index, loc); + } else { + if (base->getType().isUnsizedArray()) { + // we have a variable index into an unsized array, which is okay, + // depending on the situation + if (base->getAsSymbolNode() && isIoResizeArray(base->getType())) + error(loc, "", "[", "array must be sized by a redeclaration or layout qualifier before being indexed with a variable"); + else { + // it is okay for a run-time sized array + checkRuntimeSizable(loc, *base); } - if (base->getBasicType() == EbtBlock) { - if (base->getQualifier().storage == EvqBuffer) - requireProfile(base->getLoc(), ~EEsProfile, "variable indexing buffer block array"); - else if (base->getQualifier().storage == EvqUniform) - profileRequires(base->getLoc(), EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, - "variable indexing uniform block array"); - else { - // input/output blocks either don't exist or can be variable indexed - } - } else if (language == EShLangFragment && base->getQualifier().isPipeOutput()) - requireProfile(base->getLoc(), ~EEsProfile, "variable indexing fragment shader output array"); - else if (base->getBasicType() == EbtSampler && version >= 130) { - const char* explanation = "variable indexing sampler array"; - requireProfile(base->getLoc(), EEsProfile | ECoreProfile | ECompatibilityProfile, explanation); - profileRequires(base->getLoc(), EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, explanation); - profileRequires(base->getLoc(), ECoreProfile | ECompatibilityProfile, 400, nullptr, explanation); + base->getWritableType().setArrayVariablyIndexed(); + } + if (base->getBasicType() == EbtBlock) { + if (base->getQualifier().storage == EvqBuffer) + requireProfile(base->getLoc(), ~EEsProfile, "variable indexing buffer block array"); + else if (base->getQualifier().storage == EvqUniform) + profileRequires(base->getLoc(), EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, + "variable indexing uniform block array"); + else { + // input/output blocks either don't exist or can be variable indexed } - - result = intermediate.addIndex(EOpIndexIndirect, base, index, loc); + } else if (language == EShLangFragment && base->getQualifier().isPipeOutput()) + requireProfile(base->getLoc(), ~EEsProfile, "variable indexing fragment shader output array"); + else if (base->getBasicType() == EbtSampler && version >= 130) { + const char* explanation = "variable indexing sampler array"; + requireProfile(base->getLoc(), EEsProfile | ECoreProfile | ECompatibilityProfile, explanation); + profileRequires(base->getLoc(), EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, explanation); + profileRequires(base->getLoc(), ECoreProfile | ECompatibilityProfile, 400, nullptr, explanation); } + + result = intermediate.addIndex(EOpIndexIndirect, base, index, loc); } - if (result == nullptr) { - // Insert dummy error-recovery result - result = intermediate.addConstantUnion(0.0, EbtFloat, loc); - } else { - // Insert valid dereferenced result - TType newType(base->getType(), 0); // dereferenced type - if (base->getType().getQualifier().isConstant() && index->getQualifier().isConstant()) { - newType.getQualifier().storage = EvqConst; - // If base or index is a specialization constant, the result should also be a specialization constant. - if (base->getType().getQualifier().isSpecConstant() || index->getQualifier().isSpecConstant()) { - newType.getQualifier().makeSpecConstant(); - } - } else { - newType.getQualifier().makePartialTemporary(); + // Insert valid dereferenced result + TType newType(base->getType(), 0); // dereferenced type + if (base->getType().getQualifier().isConstant() && index->getQualifier().isConstant()) { + newType.getQualifier().storage = EvqConst; + // If base or index is a specialization constant, the result should also be a specialization constant. + if (base->getType().getQualifier().isSpecConstant() || index->getQualifier().isSpecConstant()) { + newType.getQualifier().makeSpecConstant(); } - result->setType(newType); + } else { + newType.getQualifier().makePartialTemporary(); + } + result->setType(newType); - // Propagate nonuniform - if (base->getQualifier().isNonUniform() || index->getQualifier().isNonUniform()) - result->getWritableType().getQualifier().nonUniform = true; + // Propagate nonuniform + if (base->getQualifier().isNonUniform() || index->getQualifier().isNonUniform()) + result->getWritableType().getQualifier().nonUniform = true; - if (anyIndexLimits) - handleIndexLimits(loc, base, index); - } + if (anyIndexLimits) + handleIndexLimits(loc, base, index); return result; } @@ -615,6 +628,12 @@ TIntermTyped* TParseContext::handleBinaryMath(const TSourceLoc& loc, const char* break; } + if (((left->getType().containsBasicType(EbtFloat16) || right->getType().containsBasicType(EbtFloat16)) && !float16Arithmetic()) || + ((left->getType().contains16BitInt() || right->getType().contains16BitInt()) && !int16Arithmetic()) || + ((left->getType().contains8BitInt() || right->getType().contains8BitInt()) && !int8Arithmetic())) { + allowed = false; + } + TIntermTyped* result = nullptr; if (allowed) result = intermediate.addBinaryMath(op, left, right, loc); @@ -630,7 +649,17 @@ TIntermTyped* TParseContext::handleUnaryMath(const TSourceLoc& loc, const char* { rValueErrorCheck(loc, str, childNode); - TIntermTyped* result = intermediate.addUnaryMath(op, childNode, loc); + bool allowed = true; + if ((childNode->getType().containsBasicType(EbtFloat16) && !float16Arithmetic()) || + (childNode->getType().contains16BitInt() && !int16Arithmetic()) || + (childNode->getType().contains8BitInt() && !int8Arithmetic())) { + allowed = false; + } + + TIntermTyped* result = nullptr; + + if (allowed) + result = intermediate.addUnaryMath(op, childNode, loc); if (result) return result; @@ -692,6 +721,16 @@ TIntermTyped* TParseContext::handleDotDereference(const TSourceLoc& loc, TInterm TSwizzleSelectors<TVectorSelector> selectors; parseSwizzleSelector(loc, field, base->getVectorSize(), selectors); + if (base->isVector() && selectors.size() != 1 && base->getType().containsBasicType(EbtFloat16)) { + requireFloat16Arithmetic(loc, "can't swizzle types containing float16"); + } + if (base->isVector() && selectors.size() != 1 && base->getType().contains16BitInt()) { + requireInt16Arithmetic(loc, "can't swizzle types containing (u)int16"); + } + if (base->isVector() && selectors.size() != 1 && base->getType().contains8BitInt()) { + requireInt8Arithmetic(loc, "can't swizzle types containing (u)int8"); + } + if (base->isScalar()) { if (selectors.size() == 1) return result; @@ -970,6 +1009,16 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction if (builtIn && fnCandidate->getNumExtensions()) requireExtensions(loc, fnCandidate->getNumExtensions(), fnCandidate->getExtensions(), fnCandidate->getName().c_str()); + if (builtIn && fnCandidate->getType().containsBasicType(EbtFloat16)) { + requireFloat16Arithmetic(loc, "float16 types can only be in uniform block or buffer storage"); + } + if (builtIn && fnCandidate->getType().contains16BitInt()) { + requireInt16Arithmetic(loc, "(u)int16 types can only be in uniform block or buffer storage"); + } + if (builtIn && fnCandidate->getType().contains8BitInt()) { + requireInt8Arithmetic(loc, "(u)int8 types can only be in uniform block or buffer storage"); + } + if (arguments != nullptr) { // Make sure qualifications work for these arguments. TIntermAggregate* aggregate = arguments->getAsAggregate(); @@ -995,6 +1044,17 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction if (argQualifier.writeonly && ! formalQualifier.writeonly) error(arguments->getLoc(), message, "writeonly", ""); } + + if (builtIn && arg->getAsTyped()->getType().containsBasicType(EbtFloat16)) { + requireFloat16Arithmetic(arguments->getLoc(), "float16 types can only be in uniform block or buffer storage"); + } + if (builtIn && arg->getAsTyped()->getType().contains16BitInt()) { + requireInt16Arithmetic(arguments->getLoc(), "(u)int16 types can only be in uniform block or buffer storage"); + } + if (builtIn && arg->getAsTyped()->getType().contains8BitInt()) { + requireInt8Arithmetic(arguments->getLoc(), "(u)int8 types can only be in uniform block or buffer storage"); + } + // TODO 4.5 functionality: A shader will fail to compile // if the value passed to the memargument of an atomic memory function does not correspond to a buffer or // shared variable. It is acceptable to pass an element of an array or a single component of a vector to the @@ -1179,6 +1239,8 @@ void TParseContext::computeBuiltinPrecisions(TIntermTyped& node, const TFunction TIntermNode* TParseContext::handleReturnValue(const TSourceLoc& loc, TIntermTyped* value) { + storage16BitAssignmentCheck(loc, value->getType(), "return"); + functionReturnsValue = true; if (currentFunctionType->getBasicType() == EbtVoid) { error(loc, "void function cannot return a value", "return", ""); @@ -2353,6 +2415,68 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T specConstType = true; if (function[arg].type->isFloatingDomain()) floatArgument = true; + if (type.isStruct()) { + if (function[arg].type->containsBasicType(EbtFloat16)) { + requireFloat16Arithmetic(loc, "Can't construct structure containing 16-bit type"); + } + if (function[arg].type->containsBasicType(EbtUint16) || + function[arg].type->containsBasicType(EbtInt16)) { + requireInt16Arithmetic(loc, "Can't construct structure containing 16-bit type"); + } + if (function[arg].type->containsBasicType(EbtUint8) || + function[arg].type->containsBasicType(EbtInt8)) { + requireInt8Arithmetic(loc, "Can't construct structure containing 8-bit type"); + } + } + } + + switch (op) { + case EOpConstructFloat16: + case EOpConstructF16Vec2: + case EOpConstructF16Vec3: + case EOpConstructF16Vec4: + if (type.isArray()) { + requireFloat16Arithmetic(loc, "16-bit array constructors not supported"); + } + + if (type.isVector() && function.getParamCount() != 1) { + requireFloat16Arithmetic(loc, "16-bit vector constructors only take vector types"); + } + break; + case EOpConstructUint16: + case EOpConstructU16Vec2: + case EOpConstructU16Vec3: + case EOpConstructU16Vec4: + case EOpConstructInt16: + case EOpConstructI16Vec2: + case EOpConstructI16Vec3: + case EOpConstructI16Vec4: + if (type.isArray()) { + requireInt16Arithmetic(loc, "16-bit array constructors not supported"); + } + + if (type.isVector() && function.getParamCount() != 1) { + requireInt16Arithmetic(loc, "16-bit vector constructors only take vector types"); + } + break; + case EOpConstructUint8: + case EOpConstructU8Vec2: + case EOpConstructU8Vec3: + case EOpConstructU8Vec4: + case EOpConstructInt8: + case EOpConstructI8Vec2: + case EOpConstructI8Vec3: + case EOpConstructI8Vec4: + if (type.isArray()) { + requireInt8Arithmetic(loc, "8-bit array constructors not supported"); + } + + if (type.isVector() && function.getParamCount() != 1) { + requireInt8Arithmetic(loc, "8-bit vector constructors only take vector types"); + } + break; + default: + break; } // inherit constness from children @@ -3037,6 +3161,16 @@ void TParseContext::parameterTypeCheck(const TSourceLoc& loc, TStorageQualifier { if ((qualifier == EvqOut || qualifier == EvqInOut) && type.isOpaque()) error(loc, "samplers and atomic_uints cannot be output parameters", type.getBasicTypeString().c_str(), ""); + + if (!parsingBuiltins && type.containsBasicType(EbtFloat16)) { + requireFloat16Arithmetic(loc, "float16 types can only be in uniform block or buffer storage"); + } + if (!parsingBuiltins && type.contains16BitInt()) { + requireInt16Arithmetic(loc, "(u)int16 types can only be in uniform block or buffer storage"); + } + if (!parsingBuiltins && type.contains8BitInt()) { + requireInt8Arithmetic(loc, "(u)int8 types can only be in uniform block or buffer storage"); + } } bool TParseContext::containsFieldWithBasicType(const TType& type, TBasicType basicType) @@ -3811,6 +3945,39 @@ void TParseContext::opaqueCheck(const TSourceLoc& loc, const TType& type, const error(loc, "can't use with samplers or structs containing samplers", op, ""); } +void TParseContext::storage16BitAssignmentCheck(const TSourceLoc& loc, const TType& type, const char* op) +{ + if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtFloat16)) + requireFloat16Arithmetic(loc, "can't use with structs containing float16"); + + if (type.isArray() && type.getBasicType() == EbtFloat16) + requireFloat16Arithmetic(loc, "can't use with arrays containing float16"); + + if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtInt16)) + requireInt16Arithmetic(loc, "can't use with structs containing int16"); + + if (type.isArray() && type.getBasicType() == EbtInt16) + requireInt16Arithmetic(loc, "can't use with arrays containing int16"); + + if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtUint16)) + requireInt16Arithmetic(loc, "can't use with structs containing uint16"); + + if (type.isArray() && type.getBasicType() == EbtUint16) + requireInt16Arithmetic(loc, "can't use with arrays containing uint16"); + + if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtInt8)) + requireInt8Arithmetic(loc, "can't use with structs containing int8"); + + if (type.isArray() && type.getBasicType() == EbtInt8) + requireInt8Arithmetic(loc, "can't use with arrays containing int8"); + + if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtUint8)) + requireInt8Arithmetic(loc, "can't use with structs containing uint8"); + + if (type.isArray() && type.getBasicType() == EbtUint8) + requireInt8Arithmetic(loc, "can't use with arrays containing uint8"); +} + void TParseContext::specializationCheck(const TSourceLoc& loc, const TType& type, const char* op) { if (type.containsSpecializationSize()) @@ -5414,6 +5581,18 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden atomicUintCheck(loc, type, identifier); transparentOpaqueCheck(loc, type, identifier); + if (type.getQualifier().storage != EvqUniform && type.getQualifier().storage != EvqBuffer) { + if (type.containsBasicType(EbtFloat16)) { + requireFloat16Arithmetic(loc, "float16 types can only be in uniform block or buffer storage"); + } + if (type.contains16BitInt()) { + requireInt16Arithmetic(loc, "(u)int16 types can only be in uniform block or buffer storage"); + } + if (type.contains8BitInt()) { + requireInt8Arithmetic(loc, "(u)int8 types can only be in uniform block or buffer storage"); + } + } + if (identifier != "gl_FragCoord" && (publicType.shaderQualifiers.originUpperLeft || publicType.shaderQualifiers.pixelCenterInteger)) error(loc, "can only apply origin_upper_left and pixel_center_origin to gl_FragCoord", "layout qualifier", ""); if (identifier != "gl_FragDepth" && publicType.shaderQualifiers.layoutDepth != EldNone) diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h old mode 100644 new mode 100755 index dd8e30d20e0e75d4bca187988e413b0fcecc4255..e40855e85353385fc787a41d6b6f1d6511c5fe25 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -367,6 +367,7 @@ public: void nestedStructCheck(const TSourceLoc&); void arrayObjectCheck(const TSourceLoc&, const TType&, const char* op); void opaqueCheck(const TSourceLoc&, const TType&, const char* op); + void storage16BitAssignmentCheck(const TSourceLoc&, const TType&, const char* op); void specializationCheck(const TSourceLoc&, const TType&, const char* op); void structTypeCheck(const TSourceLoc&, TPublicType&); void inductiveLoopCheck(const TSourceLoc&, TIntermNode* init, TIntermLoop* loop); diff --git a/glslang/MachineIndependent/Scan.cpp b/glslang/MachineIndependent/Scan.cpp index aa21d8a11efebff80fdd59bf0dd2e5598773b1d9..66ac4a85e7a011ae5d142f582ec82e2b94da9437 100755 --- a/glslang/MachineIndependent/Scan.cpp +++ b/glslang/MachineIndependent/Scan.cpp @@ -1110,6 +1110,7 @@ int TScanContext::tokenizeIdentifier() afterType = true; if (parseContext.symbolTable.atBuiltInLevel() || ((parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || + parseContext.extensionTurnedOn(E_GL_EXT_shader_8bit_storage) || parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_int8)) && parseContext.profile != EEsProfile && parseContext.version >= 450)) return keyword; @@ -1130,6 +1131,7 @@ int TScanContext::tokenizeIdentifier() #ifdef AMD_EXTENSIONS parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_int16) || #endif + parseContext.extensionTurnedOn(E_GL_EXT_shader_16bit_storage) || parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_int16)))) return keyword; @@ -1201,6 +1203,20 @@ int TScanContext::tokenizeIdentifier() case F16VEC2: case F16VEC3: case F16VEC4: + afterType = true; + if (parseContext.symbolTable.atBuiltInLevel() || + (parseContext.profile != EEsProfile && parseContext.version >= 450 && + ( +#ifdef AMD_EXTENSIONS + parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float) || +#endif + parseContext.extensionTurnedOn(E_GL_EXT_shader_16bit_storage) || + parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || + parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_float16)))) + return keyword; + + return identifierOrType(); + case F16MAT2: case F16MAT3: case F16MAT4: diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp index 5d83081a50d88f4a280800dbd496ef2dcb3f5821..add65ef4a7af12156779ed91e5da2c9e2674279f 100755 --- a/glslang/MachineIndependent/Versions.cpp +++ b/glslang/MachineIndependent/Versions.cpp @@ -202,6 +202,9 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_EXT_nonuniform_qualifier] = EBhDisable; extensionBehavior[E_GL_EXT_samplerless_texture_functions] = EBhDisable; + extensionBehavior[E_GL_EXT_shader_16bit_storage] = EBhDisable; + extensionBehavior[E_GL_EXT_shader_8bit_storage] = EBhDisable; + // #line and #include extensionBehavior[E_GL_GOOGLE_cpp_style_line_directive] = EBhDisable; extensionBehavior[E_GL_GOOGLE_include_directive] = EBhDisable; @@ -363,6 +366,8 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_EXT_post_depth_coverage 1\n" "#define GL_EXT_control_flow_attributes 1\n" "#define GL_EXT_nonuniform_qualifier 1\n" + "#define GL_EXT_shader_16bit_storage 1\n" + "#define GL_EXT_shader_8bit_storage 1\n" "#define GL_EXT_samplerless_texture_functions 1\n" // GL_KHR_shader_subgroup @@ -813,27 +818,94 @@ void TParseVersions::fullIntegerCheck(const TSourceLoc& loc, const char* op) void TParseVersions::doubleCheck(const TSourceLoc& loc, const char* op) { requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); - profileRequires(loc, ECoreProfile, 400, nullptr, op); - profileRequires(loc, ECompatibilityProfile, 400, nullptr, op); + profileRequires(loc, ECoreProfile | ECompatibilityProfile, 400, nullptr, op); } // Call for any operation needing GLSL float16 data-type support. void TParseVersions::float16Check(const TSourceLoc& loc, const char* op, bool builtIn) { if (!builtIn) { + const char* const extensions[] = { #if AMD_EXTENSIONS - const char* const extensions[3] = {E_GL_AMD_gpu_shader_half_float, + E_GL_AMD_gpu_shader_half_float, +#endif E_GL_KHX_shader_explicit_arithmetic_types, E_GL_KHX_shader_explicit_arithmetic_types_float16}; + requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, "explicit types"); + } +} -#else - const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, - E_GL_KHX_shader_explicit_arithmetic_types_float16}; +bool TParseVersions::float16Arithmetic() +{ + const char* const extensions[] = { +#if AMD_EXTENSIONS + E_GL_AMD_gpu_shader_half_float, +#endif + E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_float16}; + return extensionsTurnedOn(sizeof(extensions)/sizeof(extensions[0]), extensions); +} + +bool TParseVersions::int16Arithmetic() +{ + const char* const extensions[] = { +#if AMD_EXTENSIONS + E_GL_AMD_gpu_shader_int16, +#endif + E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_int16}; + return extensionsTurnedOn(sizeof(extensions)/sizeof(extensions[0]), extensions); +} + +bool TParseVersions::int8Arithmetic() +{ + const char* const extensions[] = { + E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_int8}; + return extensionsTurnedOn(sizeof(extensions)/sizeof(extensions[0]), extensions); +} + +void TParseVersions::requireFloat16Arithmetic(const TSourceLoc& loc, const char* featureDesc) +{ + const char* const extensions[] = { +#if AMD_EXTENSIONS + E_GL_AMD_gpu_shader_half_float, +#endif + E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_float16}; + requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, featureDesc); +} + +void TParseVersions::requireInt16Arithmetic(const TSourceLoc& loc, const char* featureDesc) +{ + const char* const extensions[] = { +#if AMD_EXTENSIONS + E_GL_AMD_gpu_shader_int16, +#endif + E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_int16}; + requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, featureDesc); +} + +void TParseVersions::requireInt8Arithmetic(const TSourceLoc& loc, const char* featureDesc) +{ + const char* const extensions[] = { + E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_int8}; + requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, featureDesc); +} + +void TParseVersions::float16ScalarVectorCheck(const TSourceLoc& loc, const char* op, bool builtIn) +{ + if (!builtIn) { + const char* const extensions[] = { +#if AMD_EXTENSIONS + E_GL_AMD_gpu_shader_half_float, #endif + E_GL_EXT_shader_16bit_storage, + E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_float16}; requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, "explicit types"); - requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); - profileRequires(loc, ECoreProfile, 450, nullptr, op); - profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); } } @@ -844,9 +916,6 @@ void TParseVersions::explicitFloat32Check(const TSourceLoc& loc, const char* op, const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, E_GL_KHX_shader_explicit_arithmetic_types_float32}; requireExtensions(loc, 2, extensions, "explicit types"); - requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); - profileRequires(loc, ECoreProfile, 450, nullptr, op); - profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); } } @@ -858,8 +927,7 @@ void TParseVersions::explicitFloat64Check(const TSourceLoc& loc, const char* op, E_GL_KHX_shader_explicit_arithmetic_types_float64}; requireExtensions(loc, 2, extensions, "explicit types"); requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); - profileRequires(loc, ECoreProfile, 450, nullptr, op); - profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); + profileRequires(loc, ECoreProfile | ECompatibilityProfile, 400, nullptr, op); } } @@ -870,9 +938,6 @@ void TParseVersions::explicitInt8Check(const TSourceLoc& loc, const char* op, bo const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, E_GL_KHX_shader_explicit_arithmetic_types_int8}; requireExtensions(loc, 2, extensions, "explicit types"); - requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); - profileRequires(loc, ECoreProfile, 450, nullptr, op); - profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); } } @@ -883,8 +948,7 @@ void TParseVersions::float16OpaqueCheck(const TSourceLoc& loc, const char* op, b if (! builtIn) { requireExtensions(loc, 1, &E_GL_AMD_gpu_shader_half_float_fetch, op); requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); - profileRequires(loc, ECoreProfile, 450, nullptr, op); - profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); + profileRequires(loc, ECoreProfile | ECompatibilityProfile, 400, nullptr, op); } } #endif @@ -893,18 +957,38 @@ void TParseVersions::float16OpaqueCheck(const TSourceLoc& loc, const char* op, b void TParseVersions::explicitInt16Check(const TSourceLoc& loc, const char* op, bool builtIn) { if (! builtIn) { + const char* const extensions[] = { #if AMD_EXTENSIONS - const char* const extensions[3] = {E_GL_AMD_gpu_shader_int16, - E_GL_KHX_shader_explicit_arithmetic_types, - E_GL_KHX_shader_explicit_arithmetic_types_int16}; -#else - const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, - E_GL_KHX_shader_explicit_arithmetic_types_int16}; + E_GL_AMD_gpu_shader_int16, #endif + E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_int16}; + requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, "explicit types"); + } +} + +void TParseVersions::int16ScalarVectorCheck(const TSourceLoc& loc, const char* op, bool builtIn) +{ + if (! builtIn) { + const char* const extensions[] = { +#if AMD_EXTENSIONS + E_GL_AMD_gpu_shader_int16, +#endif + E_GL_EXT_shader_16bit_storage, + E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_int16}; + requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, "explicit types"); + } +} + +void TParseVersions::int8ScalarVectorCheck(const TSourceLoc& loc, const char* op, bool builtIn) +{ + if (! builtIn) { + const char* const extensions[] = { + E_GL_EXT_shader_8bit_storage, + E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_int8}; requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, "explicit types"); - requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); - profileRequires(loc, ECoreProfile, 450, nullptr, op); - profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); } } @@ -915,9 +999,6 @@ void TParseVersions::explicitInt32Check(const TSourceLoc& loc, const char* op, b const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, E_GL_KHX_shader_explicit_arithmetic_types_int32}; requireExtensions(loc, 2, extensions, "explicit types"); - requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); - profileRequires(loc, ECoreProfile, 450, nullptr, op); - profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); } } @@ -930,8 +1011,7 @@ void TParseVersions::int64Check(const TSourceLoc& loc, const char* op, bool buil E_GL_KHX_shader_explicit_arithmetic_types_int64}; requireExtensions(loc, 3, extensions, "shader int64"); requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); - profileRequires(loc, ECoreProfile, 450, nullptr, op); - profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); + profileRequires(loc, ECoreProfile | ECompatibilityProfile, 400, nullptr, op); } } diff --git a/glslang/MachineIndependent/Versions.h b/glslang/MachineIndependent/Versions.h index 0e11a8fdd747208da4a331810d7823d592599f03..025e01cb976afc819233ce311f1923b7eaa87fef 100755 --- a/glslang/MachineIndependent/Versions.h +++ b/glslang/MachineIndependent/Versions.h @@ -152,6 +152,10 @@ const char* const E_GL_KHR_shader_subgroup_quad = "GL_KHR_shader_sub const char* const E_GL_EXT_shader_non_constant_global_initializers = "GL_EXT_shader_non_constant_global_initializers"; const char* const E_GL_EXT_shader_image_load_formatted = "GL_EXT_shader_image_load_formatted"; +const char* const E_GL_EXT_shader_16bit_storage = "GL_EXT_shader_16bit_storage"; +const char* const E_GL_EXT_shader_8bit_storage = "GL_EXT_shader_8bit_storage"; + + // EXT extensions const char* const E_GL_EXT_device_group = "GL_EXT_device_group"; const char* const E_GL_EXT_multiview = "GL_EXT_multiview"; diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y old mode 100644 new mode 100755 index e65483a82e391c8f7c80634880d50527c2cb28f5..4d16b2b370f049405386f3ef8768b056d6760559 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -699,6 +699,7 @@ assignment_expression | unary_expression assignment_operator assignment_expression { parseContext.arrayObjectCheck($2.loc, $1->getType(), "array assignment"); parseContext.opaqueCheck($2.loc, $1->getType(), "="); + parseContext.storage16BitAssignmentCheck($2.loc, $1->getType(), "="); parseContext.specializationCheck($2.loc, $1->getType(), "="); parseContext.lValueErrorCheck($2.loc, "assign", $1); parseContext.rValueErrorCheck($2.loc, "assign", $3); @@ -1419,7 +1420,7 @@ type_specifier_nonarray $$.basicType = EbtDouble; } | FLOAT16_T { - parseContext.float16Check($1.loc, "float16_t", parseContext.symbolTable.atBuiltInLevel()); + parseContext.float16ScalarVectorCheck($1.loc, "float16_t", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; } @@ -1443,22 +1444,22 @@ type_specifier_nonarray $$.basicType = EbtUint; } | INT8_T { - parseContext.explicitInt8Check($1.loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); + parseContext.int8ScalarVectorCheck($1.loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtInt8; } | UINT8_T { - parseContext.explicitInt8Check($1.loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); + parseContext.int8ScalarVectorCheck($1.loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtUint8; } | INT16_T { - parseContext.explicitInt16Check($1.loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); + parseContext.int16ScalarVectorCheck($1.loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtInt16; } | UINT16_T { - parseContext.explicitInt16Check($1.loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); + parseContext.int16ScalarVectorCheck($1.loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtUint16; } @@ -1520,19 +1521,19 @@ type_specifier_nonarray $$.setVector(4); } | F16VEC2 { - parseContext.float16Check($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + parseContext.float16ScalarVectorCheck($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setVector(2); } | F16VEC3 { - parseContext.float16Check($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + parseContext.float16ScalarVectorCheck($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setVector(3); } | F16VEC4 { - parseContext.float16Check($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + parseContext.float16ScalarVectorCheck($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setVector(4); @@ -1604,40 +1605,40 @@ type_specifier_nonarray $$.setVector(4); } | I8VEC2 { - parseContext.explicitInt8Check($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt8; - $$.setVector(2); + parseContext.int8ScalarVectorCheck($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt8; + $$.setVector(2); } | I8VEC3 { - parseContext.explicitInt8Check($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt8; - $$.setVector(3); + parseContext.int8ScalarVectorCheck($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt8; + $$.setVector(3); } | I8VEC4 { - parseContext.explicitInt8Check($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt8; - $$.setVector(4); + parseContext.int8ScalarVectorCheck($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt8; + $$.setVector(4); } | I16VEC2 { - parseContext.explicitInt16Check($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt16; - $$.setVector(2); + parseContext.int16ScalarVectorCheck($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt16; + $$.setVector(2); } | I16VEC3 { - parseContext.explicitInt16Check($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt16; - $$.setVector(3); + parseContext.int16ScalarVectorCheck($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt16; + $$.setVector(3); } | I16VEC4 { - parseContext.explicitInt16Check($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt16; - $$.setVector(4); + parseContext.int16ScalarVectorCheck($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt16; + $$.setVector(4); } | I32VEC2 { parseContext.explicitInt32Check($1.loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); @@ -1694,37 +1695,37 @@ type_specifier_nonarray $$.setVector(4); } | U8VEC2 { - parseContext.explicitInt8Check($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + parseContext.int8ScalarVectorCheck($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtUint8; $$.setVector(2); } | U8VEC3 { - parseContext.explicitInt8Check($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + parseContext.int8ScalarVectorCheck($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt8; + $$.basicType = EbtUint8; $$.setVector(3); } | U8VEC4 { - parseContext.explicitInt8Check($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + parseContext.int8ScalarVectorCheck($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtUint8; $$.setVector(4); } | U16VEC2 { - parseContext.explicitInt16Check($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + parseContext.int16ScalarVectorCheck($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtUint16; $$.setVector(2); } | U16VEC3 { - parseContext.explicitInt16Check($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + parseContext.int16ScalarVectorCheck($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtUint16; $$.setVector(3); } | U16VEC4 { - parseContext.explicitInt16Check($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + parseContext.int16ScalarVectorCheck($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtUint16; $$.setVector(4); diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp old mode 100644 new mode 100755 index 38672d67d3aaa9b036f8c3ae770ba251187b131f..96e245edb3c5cd08d301b94e68fac3db555dea9c --- a/glslang/MachineIndependent/glslang_tab.cpp +++ b/glslang/MachineIndependent/glslang_tab.cpp @@ -907,55 +907,55 @@ static const yytype_uint16 yyrline[] = 519, 520, 521, 522, 528, 529, 534, 539, 548, 549, 554, 562, 563, 569, 578, 579, 584, 589, 594, 602, 603, 611, 622, 623, 632, 633, 642, 643, 652, 653, - 661, 662, 670, 671, 679, 680, 680, 698, 699, 714, - 718, 722, 726, 731, 735, 739, 743, 747, 751, 755, - 762, 765, 776, 783, 788, 793, 801, 805, 809, 813, - 818, 823, 832, 832, 843, 847, 854, 861, 864, 871, - 879, 899, 922, 937, 962, 973, 983, 993, 1003, 1012, - 1015, 1019, 1023, 1028, 1036, 1041, 1046, 1051, 1056, 1065, - 1076, 1103, 1112, 1119, 1126, 1137, 1149, 1155, 1158, 1165, - 1169, 1173, 1181, 1190, 1193, 1204, 1207, 1210, 1214, 1218, - 1222, 1226, 1232, 1236, 1248, 1262, 1267, 1273, 1279, 1286, - 1292, 1297, 1302, 1307, 1315, 1319, 1323, 1327, 1331, 1335, - 1341, 1350, 1357, 1360, 1368, 1372, 1381, 1386, 1394, 1398, - 1408, 1412, 1416, 1421, 1426, 1431, 1436, 1440, 1445, 1450, - 1455, 1460, 1465, 1470, 1475, 1480, 1485, 1489, 1494, 1499, - 1504, 1510, 1516, 1522, 1528, 1534, 1540, 1546, 1552, 1558, - 1564, 1570, 1576, 1581, 1586, 1591, 1596, 1601, 1606, 1612, - 1618, 1624, 1630, 1636, 1642, 1648, 1654, 1660, 1666, 1672, - 1678, 1684, 1690, 1696, 1702, 1708, 1714, 1720, 1726, 1732, - 1738, 1744, 1750, 1756, 1762, 1768, 1773, 1778, 1783, 1788, - 1793, 1798, 1803, 1808, 1813, 1818, 1823, 1828, 1834, 1840, - 1846, 1852, 1858, 1864, 1870, 1876, 1882, 1888, 1894, 1900, - 1906, 1912, 1918, 1924, 1930, 1936, 1942, 1948, 1954, 1960, - 1966, 1972, 1978, 1984, 1990, 1996, 2002, 2008, 2014, 2020, - 2026, 2032, 2038, 2044, 2050, 2056, 2062, 2068, 2074, 2080, - 2086, 2092, 2098, 2104, 2110, 2116, 2121, 2126, 2131, 2136, - 2141, 2146, 2151, 2156, 2161, 2166, 2171, 2176, 2181, 2186, - 2194, 2202, 2210, 2218, 2226, 2234, 2242, 2250, 2258, 2266, - 2274, 2282, 2290, 2295, 2300, 2305, 2310, 2315, 2320, 2325, - 2330, 2335, 2340, 2345, 2350, 2355, 2360, 2365, 2370, 2378, - 2386, 2391, 2396, 2401, 2409, 2414, 2419, 2424, 2432, 2437, - 2442, 2447, 2455, 2460, 2465, 2470, 2475, 2480, 2488, 2493, - 2501, 2506, 2514, 2519, 2527, 2532, 2540, 2545, 2553, 2558, - 2566, 2571, 2576, 2581, 2586, 2591, 2596, 2601, 2606, 2611, - 2616, 2621, 2626, 2631, 2636, 2641, 2649, 2654, 2659, 2664, - 2672, 2677, 2682, 2687, 2695, 2700, 2705, 2710, 2718, 2723, - 2728, 2733, 2741, 2746, 2751, 2756, 2764, 2769, 2774, 2779, - 2787, 2792, 2797, 2802, 2810, 2815, 2820, 2825, 2833, 2838, - 2843, 2848, 2856, 2861, 2866, 2871, 2879, 2884, 2889, 2894, - 2902, 2907, 2912, 2917, 2925, 2930, 2935, 2940, 2948, 2953, - 2958, 2963, 2971, 2976, 2981, 2987, 2993, 2999, 3008, 3017, - 3023, 3029, 3035, 3041, 3046, 3062, 3067, 3072, 3080, 3080, - 3091, 3091, 3101, 3104, 3117, 3139, 3166, 3170, 3176, 3181, - 3192, 3195, 3201, 3210, 3213, 3219, 3223, 3224, 3230, 3231, - 3232, 3233, 3234, 3235, 3236, 3240, 3241, 3245, 3241, 3257, - 3258, 3262, 3262, 3269, 3269, 3283, 3286, 3294, 3302, 3313, - 3314, 3318, 3321, 3327, 3334, 3338, 3346, 3350, 3363, 3366, - 3372, 3372, 3392, 3395, 3401, 3413, 3425, 3428, 3434, 3434, - 3449, 3449, 3465, 3465, 3486, 3489, 3495, 3498, 3504, 3508, - 3515, 3520, 3525, 3532, 3535, 3544, 3548, 3557, 3560, 3563, - 3571, 3571, 3593, 3599, 3602, 3607, 3610 + 661, 662, 670, 671, 679, 680, 680, 698, 699, 715, + 719, 723, 727, 732, 736, 740, 744, 748, 752, 756, + 763, 766, 777, 784, 789, 794, 802, 806, 810, 814, + 819, 824, 833, 833, 844, 848, 855, 862, 865, 872, + 880, 900, 923, 938, 963, 974, 984, 994, 1004, 1013, + 1016, 1020, 1024, 1029, 1037, 1042, 1047, 1052, 1057, 1066, + 1077, 1104, 1113, 1120, 1127, 1138, 1150, 1156, 1159, 1166, + 1170, 1174, 1182, 1191, 1194, 1205, 1208, 1211, 1215, 1219, + 1223, 1227, 1233, 1237, 1249, 1263, 1268, 1274, 1280, 1287, + 1293, 1298, 1303, 1308, 1316, 1320, 1324, 1328, 1332, 1336, + 1342, 1351, 1358, 1361, 1369, 1373, 1382, 1387, 1395, 1399, + 1409, 1413, 1417, 1422, 1427, 1432, 1437, 1441, 1446, 1451, + 1456, 1461, 1466, 1471, 1476, 1481, 1486, 1490, 1495, 1500, + 1505, 1511, 1517, 1523, 1529, 1535, 1541, 1547, 1553, 1559, + 1565, 1571, 1577, 1582, 1587, 1592, 1597, 1602, 1607, 1613, + 1619, 1625, 1631, 1637, 1643, 1649, 1655, 1661, 1667, 1673, + 1679, 1685, 1691, 1697, 1703, 1709, 1715, 1721, 1727, 1733, + 1739, 1745, 1751, 1757, 1763, 1769, 1774, 1779, 1784, 1789, + 1794, 1799, 1804, 1809, 1814, 1819, 1824, 1829, 1835, 1841, + 1847, 1853, 1859, 1865, 1871, 1877, 1883, 1889, 1895, 1901, + 1907, 1913, 1919, 1925, 1931, 1937, 1943, 1949, 1955, 1961, + 1967, 1973, 1979, 1985, 1991, 1997, 2003, 2009, 2015, 2021, + 2027, 2033, 2039, 2045, 2051, 2057, 2063, 2069, 2075, 2081, + 2087, 2093, 2099, 2105, 2111, 2117, 2122, 2127, 2132, 2137, + 2142, 2147, 2152, 2157, 2162, 2167, 2172, 2177, 2182, 2187, + 2195, 2203, 2211, 2219, 2227, 2235, 2243, 2251, 2259, 2267, + 2275, 2283, 2291, 2296, 2301, 2306, 2311, 2316, 2321, 2326, + 2331, 2336, 2341, 2346, 2351, 2356, 2361, 2366, 2371, 2379, + 2387, 2392, 2397, 2402, 2410, 2415, 2420, 2425, 2433, 2438, + 2443, 2448, 2456, 2461, 2466, 2471, 2476, 2481, 2489, 2494, + 2502, 2507, 2515, 2520, 2528, 2533, 2541, 2546, 2554, 2559, + 2567, 2572, 2577, 2582, 2587, 2592, 2597, 2602, 2607, 2612, + 2617, 2622, 2627, 2632, 2637, 2642, 2650, 2655, 2660, 2665, + 2673, 2678, 2683, 2688, 2696, 2701, 2706, 2711, 2719, 2724, + 2729, 2734, 2742, 2747, 2752, 2757, 2765, 2770, 2775, 2780, + 2788, 2793, 2798, 2803, 2811, 2816, 2821, 2826, 2834, 2839, + 2844, 2849, 2857, 2862, 2867, 2872, 2880, 2885, 2890, 2895, + 2903, 2908, 2913, 2918, 2926, 2931, 2936, 2941, 2949, 2954, + 2959, 2964, 2972, 2977, 2982, 2988, 2994, 3000, 3009, 3018, + 3024, 3030, 3036, 3042, 3047, 3063, 3068, 3073, 3081, 3081, + 3092, 3092, 3102, 3105, 3118, 3140, 3167, 3171, 3177, 3182, + 3193, 3196, 3202, 3211, 3214, 3220, 3224, 3225, 3231, 3232, + 3233, 3234, 3235, 3236, 3237, 3241, 3242, 3246, 3242, 3258, + 3259, 3263, 3263, 3270, 3270, 3284, 3287, 3295, 3303, 3314, + 3315, 3319, 3322, 3328, 3335, 3339, 3347, 3351, 3364, 3367, + 3373, 3373, 3393, 3396, 3402, 3414, 3426, 3429, 3435, 3435, + 3450, 3450, 3466, 3466, 3487, 3490, 3496, 3499, 3505, 3509, + 3516, 3521, 3526, 3533, 3536, 3545, 3549, 3558, 3561, 3564, + 3572, 3572, 3594, 3600, 3603, 3608, 3611 }; #endif @@ -4719,6 +4719,7 @@ yyreduce: { parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment"); parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); + parseContext.storage16BitAssignmentCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)); parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode)); @@ -4728,119 +4729,119 @@ yyreduce: (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } } -#line 4732 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4733 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 79: -#line 714 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 715 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAssign; } -#line 4741 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 80: -#line 718 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 719 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpMulAssign; } -#line 4750 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4751 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 81: -#line 722 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 723 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpDivAssign; } -#line 4759 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4760 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 82: -#line 726 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 727 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%="); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpModAssign; } -#line 4769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4770 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 83: -#line 731 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 732 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAddAssign; } -#line 4778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4779 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 84: -#line 735 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 736 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpSubAssign; } -#line 4787 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 85: -#line 739 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 740 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; } -#line 4796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4797 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 86: -#line 743 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 744 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign; } -#line 4805 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 87: -#line 747 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 748 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign; } -#line 4814 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 88: -#line 751 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 752 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; } -#line 4823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4824 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 89: -#line 755 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 756 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; } -#line 4832 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4833 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 90: -#line 762 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 763 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4840 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4841 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 91: -#line 765 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 766 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); @@ -4849,40 +4850,40 @@ yyreduce: (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } } -#line 4853 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4854 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 92: -#line 776 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 777 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), ""); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4862 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4863 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 93: -#line 783 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 784 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */); (yyval.interm.intermNode) = 0; // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature } -#line 4872 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4873 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 94: -#line 788 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 789 "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 4882 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4883 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 95: -#line 793 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 794 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement"); @@ -4891,75 +4892,75 @@ yyreduce: parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision); (yyval.interm.intermNode) = 0; } -#line 4895 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 96: -#line 801 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 802 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList); (yyval.interm.intermNode) = 0; } -#line 4904 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 97: -#line 805 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 806 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string); (yyval.interm.intermNode) = 0; } -#line 4913 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 98: -#line 809 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 810 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes); (yyval.interm.intermNode) = 0; } -#line 4922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4923 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 99: -#line 813 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 814 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type)); (yyval.interm.intermNode) = 0; } -#line 4932 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4933 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 100: -#line 818 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 819 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers); parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string); (yyval.interm.intermNode) = 0; } -#line 4942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4943 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 101: -#line 823 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 824 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers); (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string); parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList)); (yyval.interm.intermNode) = 0; } -#line 4953 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4954 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 102: -#line 832 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 833 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); } -#line 4959 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4960 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 103: -#line 832 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 833 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { --parseContext.structNestingLevel; parseContext.blockName = (yyvsp[-4].lex).string; @@ -4969,54 +4970,54 @@ yyreduce: (yyval.interm).loc = (yyvsp[-5].interm.type).loc; (yyval.interm).typeList = (yyvsp[-1].interm.typeList); } -#line 4973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4974 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 104: -#line 843 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 844 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.identifierList) = new TIdentifierList; (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); } -#line 4982 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4983 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 105: -#line 847 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 848 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList); (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); } -#line 4991 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 106: -#line 854 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 855 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).function = (yyvsp[-1].interm.function); (yyval.interm).loc = (yyvsp[0].lex).loc; } -#line 5000 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 107: -#line 861 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 862 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.function) = (yyvsp[0].interm.function); } -#line 5008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5009 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 108: -#line 864 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 865 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.function) = (yyvsp[0].interm.function); } -#line 5016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5017 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 109: -#line 871 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 872 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // Add the parameter (yyval.interm.function) = (yyvsp[-1].interm.function); @@ -5025,11 +5026,11 @@ yyreduce: else delete (yyvsp[0].interm).param.type; } -#line 5029 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5030 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 110: -#line 879 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 880 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // Only first parameter of one-parameter functions can be void @@ -5047,11 +5048,11 @@ yyreduce: (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param); } } -#line 5051 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5052 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 111: -#line 899 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 900 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) { parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return", @@ -5071,11 +5072,11 @@ yyreduce: function = new TFunction((yyvsp[-1].lex).string, type); (yyval.interm.function) = function; } -#line 5075 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5076 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 112: -#line 922 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 923 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-1].interm.type).arraySizes) { parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); @@ -5091,11 +5092,11 @@ yyreduce: (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).param = param; } -#line 5095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5096 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 113: -#line 937 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 938 "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"); @@ -5115,11 +5116,11 @@ yyreduce: (yyval.interm).loc = (yyvsp[-1].lex).loc; (yyval.interm).param = param; } -#line 5119 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5120 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 114: -#line 962 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 963 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) @@ -5131,11 +5132,11 @@ yyreduce: parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); } -#line 5135 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5136 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 115: -#line 973 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 974 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); @@ -5143,11 +5144,11 @@ yyreduce: parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } -#line 5147 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5148 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 116: -#line 983 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 984 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) @@ -5158,11 +5159,11 @@ yyreduce: parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); } -#line 5162 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5163 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 117: -#line 993 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 994 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); @@ -5170,118 +5171,118 @@ yyreduce: parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } -#line 5174 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5175 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 118: -#line 1003 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1004 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TParameter param = { 0, new TType((yyvsp[0].interm.type)) }; (yyval.interm).param = param; if ((yyvsp[0].interm.type).arraySizes) parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes); } -#line 5185 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 119: -#line 1012 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1013 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); } -#line 5193 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 120: -#line 1015 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1016 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-2].interm); parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type); } -#line 5202 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5203 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 121: -#line 1019 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1020 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-3].interm); parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes); } -#line 5211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5212 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 122: -#line 1023 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1024 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[-5].interm).type; TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc); } -#line 5221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5222 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 123: -#line 1028 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1029 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[-4].interm).type; TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode)); (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc); } -#line 5231 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 124: -#line 1036 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1037 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[0].interm.type); (yyval.interm).intermNode = 0; parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type); } -#line 5241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5242 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 125: -#line 1041 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1042 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[-1].interm.type); (yyval.interm).intermNode = 0; parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type)); } -#line 5251 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5252 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 126: -#line 1046 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1047 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[-2].interm.type); (yyval.interm).intermNode = 0; parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes); } -#line 5261 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5262 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 127: -#line 1051 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1052 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[-4].interm.type); TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); } -#line 5271 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5272 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 128: -#line 1056 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1057 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[-3].interm.type); TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); } -#line 5281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 129: -#line 1065 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1066 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); @@ -5293,11 +5294,11 @@ yyreduce: parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier); } -#line 5297 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 130: -#line 1076 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1077 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type)); @@ -5322,22 +5323,22 @@ yyreduce: (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn))) (yyval.interm.type).qualifier.smooth = true; } -#line 5326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5327 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 131: -#line 1103 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1104 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "invariant"); parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.invariant = true; } -#line 5337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5338 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 132: -#line 1112 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1113 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "smooth"); parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth"); @@ -5345,11 +5346,11 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.smooth = true; } -#line 5349 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5350 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 133: -#line 1119 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1120 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "flat"); parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat"); @@ -5357,11 +5358,11 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.flat = true; } -#line 5361 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5362 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 134: -#line 1126 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1127 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective"); #ifdef NV_EXTENSIONS @@ -5373,11 +5374,11 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.nopersp = true; } -#line 5377 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5378 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 135: -#line 1137 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1138 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD"); @@ -5387,84 +5388,84 @@ yyreduce: (yyval.interm.type).qualifier.explicitInterp = true; #endif } -#line 5391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 136: -#line 1149 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1150 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[-1].interm.type); } -#line 5399 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5400 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 137: -#line 1155 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1156 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5407 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 138: -#line 1158 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1159 "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 5417 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 139: -#line 1165 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1166 "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 5426 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5427 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 140: -#line 1169 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1170 "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 5435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 141: -#line 1173 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1174 "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 5445 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 142: -#line 1181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1182 "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 5456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5457 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 143: -#line 1190 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1191 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5464 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5465 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 144: -#line 1193 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1194 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[-1].interm.type); if ((yyval.interm.type).basicType == EbtVoid) @@ -5473,80 +5474,80 @@ yyreduce: (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 5477 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5478 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 145: -#line 1204 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1205 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5486 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 146: -#line 1207 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1208 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5493 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 147: -#line 1210 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1211 "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 5502 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5503 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 148: -#line 1214 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1215 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5511 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5512 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 149: -#line 1218 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1219 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5520 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5521 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 150: -#line 1222 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1223 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5530 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 151: -#line 1226 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1227 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 5537 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5538 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 152: -#line 1232 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1233 "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 5546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5547 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 153: -#line 1236 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1237 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute"); parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute"); @@ -5559,11 +5560,11 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqVaryingIn; } -#line 5563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5564 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 154: -#line 1248 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1249 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying"); parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying"); @@ -5578,43 +5579,43 @@ yyreduce: else (yyval.interm.type).qualifier.storage = EvqVaryingIn; } -#line 5582 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5583 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 155: -#line 1262 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1263 "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 5592 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5593 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 156: -#line 1267 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1268 "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 5603 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5604 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 157: -#line 1273 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1274 "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 5614 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5615 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 158: -#line 1279 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1280 "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"); @@ -5622,52 +5623,52 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.centroid = true; } -#line 5626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5627 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 159: -#line 1286 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1287 "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 5637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5638 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 160: -#line 1292 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1293 "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 5647 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5648 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 161: -#line 1297 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1298 "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 5657 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5658 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 162: -#line 1302 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1303 "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 5667 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5668 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 163: -#line 1307 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1308 "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"); @@ -5676,135 +5677,135 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqShared; } -#line 5680 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5681 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 164: -#line 1315 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1316 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.coherent = true; } -#line 5689 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5690 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 165: -#line 1319 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1320 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.volatil = true; } -#line 5698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5699 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 166: -#line 1323 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1324 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.restrict = true; } -#line 5707 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5708 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 167: -#line 1327 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1328 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.readonly = true; } -#line 5716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5717 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 168: -#line 1331 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1332 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.writeonly = true; } -#line 5725 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5726 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 169: -#line 1335 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1336 "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 5736 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5737 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 170: -#line 1341 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1342 "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 5747 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5748 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 171: -#line 1350 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1351 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.nonUniform = true; } -#line 5756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5757 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 172: -#line 1357 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1358 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // TODO } -#line 5764 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5765 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 173: -#line 1360 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1361 "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 5774 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5775 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 174: -#line 1368 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1369 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); } -#line 5783 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5784 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 175: -#line 1372 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1373 "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 5794 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 176: -#line 1381 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1382 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[-1].lex).loc; (yyval.interm).arraySizes = new TArraySizes; (yyval.interm).arraySizes->addInnerSize(); } -#line 5804 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5805 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 177: -#line 1386 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1387 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[-2].lex).loc; (yyval.interm).arraySizes = new TArraySizes; @@ -5813,20 +5814,20 @@ yyreduce: parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); (yyval.interm).arraySizes->addInnerSize(size); } -#line 5817 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5818 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 178: -#line 1394 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1395 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-2].interm); (yyval.interm).arraySizes->addInnerSize(); } -#line 5826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5827 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 179: -#line 1398 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1399 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-3].interm); @@ -5834,1484 +5835,1484 @@ yyreduce: parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); (yyval.interm).arraySizes->addInnerSize(size); } -#line 5838 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5839 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 180: -#line 1408 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1409 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtVoid; } -#line 5847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 181: -#line 1412 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1413 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; } -#line 5856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5857 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 182: -#line 1416 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1417 "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 5866 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5867 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 183: -#line 1421 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1422 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.float16Check((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel()); + 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 5876 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5877 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 184: -#line 1426 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1427 "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 5886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5887 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 185: -#line 1431 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1432 "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 5896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 186: -#line 1436 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1437 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; } -#line 5905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 187: -#line 1440 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1441 "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 5915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5916 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 188: -#line 1445 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1446 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); + 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 5925 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5926 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 189: -#line 1450 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1451 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); + 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 5935 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5936 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 190: -#line 1455 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1456 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); + 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 5945 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 191: -#line 1460 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1461 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); + 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 5955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5956 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 192: -#line 1465 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1466 "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 5965 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 193: -#line 1470 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1471 "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 5975 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5976 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 194: -#line 1475 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1476 "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 5985 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5986 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 195: -#line 1480 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1481 "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 5995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5996 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 196: -#line 1485 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1486 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; } -#line 6004 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 197: -#line 1489 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1490 "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 6014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 198: -#line 1494 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1495 "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 6024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6025 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 199: -#line 1499 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1500 "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 6034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6035 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 200: -#line 1504 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1505 "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 6045 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6046 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 201: -#line 1510 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1511 "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 6056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6057 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 202: -#line 1516 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1517 "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 6067 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 203: -#line 1522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1523 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.float16Check((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + 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 6078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6079 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 204: -#line 1528 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1529 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.float16Check((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + 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 6089 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6090 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 205: -#line 1534 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1535 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.float16Check((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + 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 6100 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6101 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 206: -#line 1540 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1541 "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 6111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 207: -#line 1546 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1547 "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 6122 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6123 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 208: -#line 1552 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1553 "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 6133 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6134 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 209: -#line 1558 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1559 "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 6144 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6145 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 210: -#line 1564 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1565 "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 6155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6156 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 211: -#line 1570 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1571 "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 6166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6167 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 212: -#line 1576 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1577 "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 6176 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 213: -#line 1581 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1582 "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 6186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6187 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 214: -#line 1586 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1587 "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 6196 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6197 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 215: -#line 1591 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1592 "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 6206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6207 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 216: -#line 1596 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1597 "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 6216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6217 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 217: -#line 1601 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1602 "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 6226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6227 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 218: -#line 1606 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1607 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.explicitInt8Check((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); + 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 6237 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6238 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 219: -#line 1612 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1613 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.explicitInt8Check((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); + 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 6248 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 220: -#line 1618 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1619 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.explicitInt8Check((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); + 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 6259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6260 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 221: -#line 1624 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1625 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.explicitInt16Check((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); + 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 6270 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6271 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 222: -#line 1630 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1631 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.explicitInt16Check((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); + 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 6281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 223: -#line 1636 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1637 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.explicitInt16Check((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); + 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 6292 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6293 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 224: -#line 1642 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1643 "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 6303 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6304 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 225: -#line 1648 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1649 "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 6314 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6315 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 226: -#line 1654 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1655 "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 6325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 227: -#line 1660 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1661 "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 6336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 228: -#line 1666 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1667 "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 6347 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 229: -#line 1672 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1673 "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 6358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 230: -#line 1678 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1679 "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 6369 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6370 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 231: -#line 1684 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1685 "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 6380 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 232: -#line 1690 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1691 "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 6391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 233: -#line 1696 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1697 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + 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 6402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 234: -#line 1702 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1703 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + 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 = EbtInt8; + (yyval.interm.type).basicType = EbtUint8; (yyval.interm.type).setVector(3); } -#line 6413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6414 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 235: -#line 1708 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1709 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + 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 6424 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 236: -#line 1714 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1715 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + 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 6435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 237: -#line 1720 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1721 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + 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 6446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 238: -#line 1726 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1727 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + 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 6457 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 239: -#line 1732 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1733 "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 6468 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6469 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 240: -#line 1738 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1739 "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 6479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6480 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 241: -#line 1744 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1745 "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 6490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6491 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 242: -#line 1750 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1751 "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 6501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6502 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 243: -#line 1756 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1757 "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 6512 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 244: -#line 1762 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1763 "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 6523 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6524 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 245: -#line 1768 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1769 "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 6533 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6534 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 246: -#line 1773 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1774 "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 6543 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6544 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 247: -#line 1778 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1779 "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 6553 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6554 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 248: -#line 1783 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1784 "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 6563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6564 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 249: -#line 1788 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1789 "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 6573 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6574 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 250: -#line 1793 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1794 "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 6583 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 251: -#line 1798 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1799 "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 6593 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6594 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 252: -#line 1803 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1804 "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 6603 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6604 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 253: -#line 1808 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1809 "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 6613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6614 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 254: -#line 1813 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1814 "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 6623 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6624 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 255: -#line 1818 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1819 "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 6633 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6634 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 256: -#line 1823 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1824 "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 6643 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6644 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 257: -#line 1828 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1829 "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 6654 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6655 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 258: -#line 1834 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1835 "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 6665 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6666 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 259: -#line 1840 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1841 "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 6676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6677 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 260: -#line 1846 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1847 "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 6687 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6688 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 261: -#line 1852 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1853 "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 6698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6699 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 262: -#line 1858 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1859 "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 6709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6710 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 263: -#line 1864 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1865 "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 6720 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6721 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 264: -#line 1870 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1871 "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 6731 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6732 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 265: -#line 1876 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1877 "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 6742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6743 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 266: -#line 1882 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1883 "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 6753 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6754 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 267: -#line 1888 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1889 "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 6764 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6765 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 268: -#line 1894 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1895 "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 6775 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6776 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 269: -#line 1900 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1901 "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 6786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6787 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 270: -#line 1906 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1907 "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 6797 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6798 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 271: -#line 1912 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1913 "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 6808 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6809 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 272: -#line 1918 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1919 "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 6819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6820 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 273: -#line 1924 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1925 "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 6830 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6831 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 274: -#line 1930 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1931 "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 6841 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 275: -#line 1936 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1937 "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 6852 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6853 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 276: -#line 1942 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1943 "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 6863 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 277: -#line 1948 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1949 "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 6874 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 278: -#line 1954 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1955 "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 6885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 279: -#line 1960 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1961 "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 6896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 280: -#line 1966 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1967 "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 6907 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 281: -#line 1972 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1973 "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 6918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6919 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 282: -#line 1978 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1979 "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 6929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6930 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 283: -#line 1984 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1985 "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 6940 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6941 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 284: -#line 1990 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1991 "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 6951 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6952 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 285: -#line 1996 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1997 "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 6962 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 286: -#line 2002 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2003 "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 6973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6974 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 287: -#line 2008 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2009 "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 6984 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6985 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 288: -#line 2014 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2015 "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 6995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6996 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 289: -#line 2020 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2021 "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 7006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7007 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 290: -#line 2026 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2027 "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 7017 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7018 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 291: -#line 2032 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2033 "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 7028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7029 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 292: -#line 2038 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2039 "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 7039 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7040 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 293: -#line 2044 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2045 "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 7050 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7051 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 294: -#line 2050 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2051 "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 7061 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7062 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 295: -#line 2056 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2057 "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 7072 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7073 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 296: -#line 2062 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2063 "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 7083 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7084 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 297: -#line 2068 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2069 "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 7094 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 298: -#line 2074 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2075 "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 7105 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 299: -#line 2080 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2081 "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 7116 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7117 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 300: -#line 2086 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2087 "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 7127 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 301: -#line 2092 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2093 "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 7138 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 302: -#line 2098 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2099 "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 7149 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7150 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 303: -#line 2104 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2105 "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 7160 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 304: -#line 2110 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2111 "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 7171 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7172 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 305: -#line 2116 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2117 "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 7181 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7182 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 306: -#line 2121 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2122 "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 7191 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7192 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 307: -#line 2126 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2127 "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 7201 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7202 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 308: -#line 2131 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2132 "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 7211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7212 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 309: -#line 2136 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2137 "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 7221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7222 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 310: -#line 2141 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2142 "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 7231 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 311: -#line 2146 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2147 "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 7241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7242 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 312: -#line 2151 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2152 "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 7251 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7252 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 313: -#line 2156 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2157 "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 7261 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7262 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 314: -#line 2161 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2162 "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 7271 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7272 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 315: -#line 2166 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2167 "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 7281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 316: -#line 2171 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2172 "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 7291 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7292 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 317: -#line 2176 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2177 "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 7301 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7302 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 318: -#line 2181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2182 "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 7311 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7312 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 319: -#line 2186 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2187 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7320,11 +7321,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd1D); #endif } -#line 7324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 320: -#line 2194 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2195 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7333,11 +7334,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd2D); #endif } -#line 7337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7338 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 321: -#line 2202 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2203 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7346,11 +7347,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd3D); #endif } -#line 7350 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 322: -#line 2210 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2211 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7359,11 +7360,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, EsdCube); #endif } -#line 7363 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 323: -#line 2218 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2219 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7372,11 +7373,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true); #endif } -#line 7376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7377 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 324: -#line 2226 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2227 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7385,11 +7386,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true); #endif } -#line 7389 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7390 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 325: -#line 2234 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2235 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7398,11 +7399,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true); #endif } -#line 7402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 326: -#line 2242 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2243 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7411,11 +7412,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true); #endif } -#line 7415 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7416 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 327: -#line 2250 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2251 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7424,11 +7425,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true); #endif } -#line 7428 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7429 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 328: -#line 2258 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2259 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7437,11 +7438,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true); #endif } -#line 7441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7442 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 329: -#line 2266 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2267 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7450,11 +7451,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true); #endif } -#line 7454 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7455 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 330: -#line 2274 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2275 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7463,11 +7464,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true); #endif } -#line 7467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7468 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 331: -#line 2282 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2283 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7476,171 +7477,171 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true); #endif } -#line 7480 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7481 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 332: -#line 2290 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2291 "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 7490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7491 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 333: -#line 2295 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2296 "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 7500 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 334: -#line 2300 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2301 "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 7510 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7511 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 335: -#line 2305 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2306 "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 7520 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7521 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 336: -#line 2310 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2311 "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 7530 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7531 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 337: -#line 2315 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2316 "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 7540 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 338: -#line 2320 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2321 "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 7550 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 339: -#line 2325 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2326 "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 7560 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7561 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 340: -#line 2330 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2331 "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 7570 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7571 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 341: -#line 2335 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2336 "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 7580 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7581 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 342: -#line 2340 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2341 "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 7590 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7591 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 343: -#line 2345 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2346 "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 7600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7601 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 344: -#line 2350 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2351 "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 7610 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7611 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 345: -#line 2355 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2356 "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 7620 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7621 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 346: -#line 2360 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2361 "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 7630 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7631 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 347: -#line 2365 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2366 "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 7640 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7641 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 348: -#line 2370 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2371 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7649,11 +7650,11 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, EsdRect); #endif } -#line 7653 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7654 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 349: -#line 2378 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2379 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7662,41 +7663,41 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true); #endif } -#line 7666 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7667 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 350: -#line 2386 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2387 "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 7676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7677 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 351: -#line 2391 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2392 "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 7686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7687 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 352: -#line 2396 "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(EbtFloat, EsdBuffer); } -#line 7696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7697 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 353: -#line 2401 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2402 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7705,41 +7706,41 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer); #endif } -#line 7709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7710 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 354: -#line 2409 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2410 "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 7719 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7720 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 355: -#line 2414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2415 "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 7729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7730 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 356: -#line 2419 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2420 "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 7739 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7740 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 357: -#line 2424 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2425 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7748,41 +7749,41 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true); #endif } -#line 7752 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7753 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 358: -#line 2432 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2433 "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 7762 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7763 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 359: -#line 2437 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2438 "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 7772 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7773 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 360: -#line 2442 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2443 "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 7782 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7783 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 361: -#line 2447 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2448 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); @@ -7791,61 +7792,61 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true); #endif } -#line 7795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 362: -#line 2455 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2456 "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 7805 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 363: -#line 2460 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2461 "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 7815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7816 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 364: -#line 2465 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2466 "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 7825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 365: -#line 2470 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2471 "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 7835 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7836 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 366: -#line 2475 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2476 "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 7845 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7846 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 367: -#line 2480 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2481 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -7854,21 +7855,21 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D); #endif } -#line 7858 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7859 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 368: -#line 2488 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2489 "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 7868 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7869 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 369: -#line 2493 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2494 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -7877,21 +7878,21 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D); #endif } -#line 7881 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7882 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 370: -#line 2501 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2502 "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 7891 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7892 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 371: -#line 2506 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2507 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -7900,21 +7901,21 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D); #endif } -#line 7904 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 372: -#line 2514 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2515 "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 7914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 373: -#line 2519 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2520 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -7923,21 +7924,21 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube); #endif } -#line 7927 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7928 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 374: -#line 2527 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2528 "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 7937 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7938 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 375: -#line 2532 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2533 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -7946,21 +7947,21 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true); #endif } -#line 7950 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7951 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 376: -#line 2540 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2541 "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 7960 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7961 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 377: -#line 2545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2546 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -7969,21 +7970,21 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true); #endif } -#line 7973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7974 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 378: -#line 2553 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2554 "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 7983 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7984 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 379: -#line 2558 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2559 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -7992,161 +7993,161 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true); #endif } -#line 7996 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7997 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 380: -#line 2566 "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.setTexture(EbtInt, Esd1D); } -#line 8006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8007 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 381: -#line 2571 "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.setTexture(EbtInt, Esd2D); } -#line 8016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8017 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 382: -#line 2576 "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.setTexture(EbtInt, Esd3D); } -#line 8026 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8027 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 383: -#line 2581 "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(EbtInt, EsdCube); } -#line 8036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8037 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 384: -#line 2586 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2587 "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 8046 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8047 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 385: -#line 2591 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2592 "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 8056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8057 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 386: -#line 2596 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2597 "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 8066 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8067 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 387: -#line 2601 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2602 "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 8076 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8077 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 388: -#line 2606 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2607 "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 8086 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8087 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 389: -#line 2611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2612 "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 8096 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8097 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 390: -#line 2616 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2617 "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 8106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8107 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 391: -#line 2621 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2622 "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 8116 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8117 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 392: -#line 2626 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2627 "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 8126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8127 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 393: -#line 2631 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2632 "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 8136 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8137 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 394: -#line 2636 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2637 "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 8146 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8147 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 395: -#line 2641 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2642 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8155,41 +8156,41 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect); #endif } -#line 8159 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8160 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 396: -#line 2649 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2650 "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 8169 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8170 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 397: -#line 2654 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2655 "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 8179 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 398: -#line 2659 "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, EsdBuffer); } -#line 8189 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8190 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 399: -#line 2664 "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()); @@ -8198,41 +8199,41 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer); #endif } -#line 8202 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8203 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 400: -#line 2672 "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, EsdBuffer); } -#line 8212 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8213 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 401: -#line 2677 "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(EbtUint, EsdBuffer); } -#line 8222 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8223 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 402: -#line 2682 "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(EbtFloat, Esd2D, false, false, true); } -#line 8232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8233 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 403: -#line 2687 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2688 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8241,41 +8242,41 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true); #endif } -#line 8245 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8246 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 404: -#line 2695 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2696 "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 8255 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8256 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 405: -#line 2700 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2701 "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 8265 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8266 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 406: -#line 2705 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2706 "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 8275 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 407: -#line 2710 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2711 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); @@ -8284,41 +8285,41 @@ yyreduce: (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true); #endif } -#line 8288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8289 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 408: -#line 2718 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2719 "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 8298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8299 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 409: -#line 2723 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2724 "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 8308 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 410: -#line 2728 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2729 "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 8318 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8319 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 411: -#line 2733 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2734 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8327,41 +8328,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D); #endif } -#line 8331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8332 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 412: -#line 2741 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2742 "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 8341 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8342 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 413: -#line 2746 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2747 "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 8351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8352 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 414: -#line 2751 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2752 "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 8361 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8362 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 415: -#line 2756 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2757 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8370,41 +8371,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D); #endif } -#line 8374 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8375 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 416: -#line 2764 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2765 "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 8384 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8385 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 417: -#line 2769 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2770 "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 8394 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8395 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 418: -#line 2774 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2775 "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 8404 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8405 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 419: -#line 2779 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2780 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8413,41 +8414,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D); #endif } -#line 8417 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 420: -#line 2787 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2788 "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 8427 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8428 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 421: -#line 2792 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2793 "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 8437 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 422: -#line 2797 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2798 "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 8447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8448 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 423: -#line 2802 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2803 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8456,41 +8457,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect); #endif } -#line 8460 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 424: -#line 2810 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2811 "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 8470 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8471 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 425: -#line 2815 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2816 "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 8480 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8481 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 426: -#line 2820 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2821 "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 8490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8491 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 427: -#line 2825 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2826 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8499,41 +8500,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube); #endif } -#line 8503 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8504 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 428: -#line 2833 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2834 "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 8513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8514 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 429: -#line 2838 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2839 "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 8523 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8524 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 430: -#line 2843 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2844 "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 8533 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8534 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 431: -#line 2848 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2849 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8542,41 +8543,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer); #endif } -#line 8546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8547 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 432: -#line 2856 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2857 "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 8556 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8557 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 433: -#line 2861 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2862 "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 8566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8567 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 434: -#line 2866 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2867 "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 8576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8577 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 435: -#line 2871 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2872 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8585,41 +8586,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true); #endif } -#line 8589 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8590 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 436: -#line 2879 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2880 "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 8599 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 437: -#line 2884 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2885 "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 8609 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8610 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 438: -#line 2889 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2890 "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 8619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8620 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 439: -#line 2894 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2895 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8628,41 +8629,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true); #endif } -#line 8632 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8633 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 440: -#line 2902 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2903 "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 8642 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8643 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 441: -#line 2907 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2908 "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 8652 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8653 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 442: -#line 2912 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2913 "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 8662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8663 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 443: -#line 2917 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2918 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8671,41 +8672,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true); #endif } -#line 8675 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 444: -#line 2925 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2926 "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 8685 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 445: -#line 2930 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2931 "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 8695 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 446: -#line 2935 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2936 "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 8705 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8706 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 447: -#line 2940 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2941 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8714,41 +8715,41 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true); #endif } -#line 8718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8719 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 448: -#line 2948 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2949 "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 8728 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 449: -#line 2953 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2954 "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 8738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8739 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 450: -#line 2958 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2959 "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 8748 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8749 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 451: -#line 2963 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2964 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); @@ -8757,64 +8758,64 @@ yyreduce: (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true); #endif } -#line 8761 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8762 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 452: -#line 2971 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2972 "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 8771 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8772 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 453: -#line 2976 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2977 "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 8781 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8782 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 454: -#line 2981 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2982 "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 8792 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8793 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 455: -#line 2987 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2988 "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 8803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8804 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 456: -#line 2993 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2994 "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 8814 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 457: -#line 2999 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3000 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel()); @@ -8824,11 +8825,11 @@ yyreduce: (yyval.interm.type).sampler.setSubpass(EbtFloat16); #endif } -#line 8828 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8829 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 458: -#line 3008 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3009 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel()); @@ -8838,65 +8839,65 @@ yyreduce: (yyval.interm.type).sampler.setSubpass(EbtFloat16, true); #endif } -#line 8842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8843 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 459: -#line 3017 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3018 "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 8853 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8854 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 460: -#line 3023 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3024 "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 8864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8865 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 461: -#line 3029 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3030 "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 8875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8876 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 462: -#line 3035 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3036 "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 8886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8887 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 463: -#line 3041 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3042 "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 8896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 464: -#line 3046 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3047 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // This is for user defined type names. The lexical phase looked up the @@ -8910,47 +8911,47 @@ yyreduce: } else parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), ""); } -#line 8914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 465: -#line 3062 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3063 "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 8924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8925 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 466: -#line 3067 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3068 "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 8934 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8935 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 467: -#line 3072 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3073 "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 8944 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8945 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 468: -#line 3080 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3081 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } -#line 8950 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8951 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 469: -#line 3080 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3081 "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); @@ -8962,17 +8963,17 @@ yyreduce: (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 8966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8967 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 470: -#line 3091 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3092 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } -#line 8972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 471: -#line 3091 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3092 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TType* structure = new TType((yyvsp[-1].interm.typeList), TString("")); (yyval.interm.type).init((yyvsp[-4].lex).loc); @@ -8980,19 +8981,19 @@ yyreduce: (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 8984 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8985 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 472: -#line 3101 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3102 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = (yyvsp[0].interm.typeList); } -#line 8992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8993 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 473: -#line 3104 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3105 "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) { @@ -9003,11 +9004,11 @@ yyreduce: (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]); } } -#line 9007 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 474: -#line 3117 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3118 "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"); @@ -9030,11 +9031,11 @@ yyreduce: (*(yyval.interm.typeList))[i].type->shallowCopy(type); } } -#line 9034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9035 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 475: -#line 3139 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3140 "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"); @@ -9059,38 +9060,38 @@ yyreduce: (*(yyval.interm.typeList))[i].type->shallowCopy(type); } } -#line 9063 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9064 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 476: -#line 3166 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3167 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = new TTypeList; (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } -#line 9072 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9073 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 477: -#line 3170 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3171 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } -#line 9080 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9081 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 478: -#line 3176 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3177 "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 9090 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9091 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 479: -#line 3181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3182 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes); @@ -9099,219 +9100,219 @@ yyreduce: (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string); (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes); } -#line 9103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9104 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 480: -#line 3192 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3193 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 9111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 481: -#line 3195 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3196 "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 9122 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9123 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 482: -#line 3201 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3202 "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 9133 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9134 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 483: -#line 3210 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3211 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc()); } -#line 9141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9142 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 484: -#line 3213 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3214 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); } -#line 9149 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9150 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 485: -#line 3219 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3220 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9156 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 486: -#line 3223 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3224 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9162 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 487: -#line 3224 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3225 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9167 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9168 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 488: -#line 3230 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3231 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9173 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9174 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 489: -#line 3231 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3232 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9179 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 490: -#line 3232 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3233 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9185 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 491: -#line 3233 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3234 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9191 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9192 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 492: -#line 3234 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3235 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9197 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9198 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 493: -#line 3235 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3236 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9203 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9204 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 494: -#line 3236 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3237 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9209 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 495: -#line 3240 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3241 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } -#line 9215 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 496: -#line 3241 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3242 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; } -#line 9224 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9225 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 497: -#line 3245 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3246 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; } -#line 9233 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9234 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 498: -#line 3249 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3250 "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 9243 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9244 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 499: -#line 3257 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3258 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9250 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 500: -#line 3258 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3259 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9255 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9256 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 501: -#line 3262 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3263 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.controlFlowNestingLevel; } -#line 9263 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9264 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 502: -#line 3265 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3266 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9272 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9273 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 503: -#line 3269 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3270 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 9282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9283 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 504: -#line 3274 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3275 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9293 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9294 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 505: -#line 3283 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3284 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } -#line 9301 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9302 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 506: -#line 3286 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3287 "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 9311 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9312 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 507: -#line 3294 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3295 "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 || @@ -9320,11 +9321,11 @@ yyreduce: (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case } } -#line 9324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 508: -#line 3302 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3303 "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)) { @@ -9333,76 +9334,76 @@ yyreduce: } else (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); } -#line 9337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9338 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 509: -#line 3313 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3314 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } -#line 9343 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9344 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 510: -#line 3314 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3315 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); } -#line 9349 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9350 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 511: -#line 3318 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3319 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9357 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 512: -#line 3321 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3322 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9367 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 513: -#line 3327 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3328 "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 9375 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 514: -#line 3334 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3335 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode); } -#line 9384 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9385 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 515: -#line 3338 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3339 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); (yyval.interm.nodePair).node2 = 0; } -#line 9393 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9394 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 516: -#line 3346 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3347 "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 9402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 517: -#line 3350 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3351 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type)); @@ -9413,28 +9414,28 @@ yyreduce: else (yyval.interm.intermTypedNode) = 0; } -#line 9417 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 518: -#line 3363 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3364 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9426 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 519: -#line 3366 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3367 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9434 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 520: -#line 3372 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3373 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // start new switch sequence on the switch stack ++parseContext.controlFlowNestingLevel; @@ -9443,11 +9444,11 @@ yyreduce: parseContext.switchLevel.push_back(parseContext.statementNestingLevel); parseContext.symbolTable.push(); } -#line 9447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9448 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 521: -#line 3380 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3381 "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(); @@ -9457,27 +9458,27 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 9461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9462 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 522: -#line 3392 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3393 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } -#line 9469 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9470 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 523: -#line 3395 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3396 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9477 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9478 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 524: -#line 3401 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3402 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) @@ -9490,11 +9491,11 @@ yyreduce: (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc); } } -#line 9494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9495 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 525: -#line 3413 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) @@ -9504,28 +9505,28 @@ yyreduce: else (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc); } -#line 9508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9509 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 526: -#line 3425 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3426 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9517 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 527: -#line 3428 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3429 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9525 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9526 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 528: -#line 3434 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3435 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", ""); @@ -9534,11 +9535,11 @@ yyreduce: ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 9538 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9539 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 529: -#line 3442 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3443 "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); @@ -9546,21 +9547,21 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 9550 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 530: -#line 3449 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3450 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 9560 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9561 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 531: -#line 3454 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3455 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", ""); @@ -9572,22 +9573,22 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 9576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9577 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 532: -#line 3465 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3466 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 9587 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9588 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 533: -#line 3471 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3472 "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); @@ -9600,81 +9601,81 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 9604 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9605 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 534: -#line 3486 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3487 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9612 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 535: -#line 3489 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3490 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9620 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9621 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 536: -#line 3495 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3496 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 9628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9629 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 537: -#line 3498 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3499 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = 0; } -#line 9636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 538: -#line 3504 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3505 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); (yyval.interm.nodePair).node2 = 0; } -#line 9645 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 539: -#line 3508 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3509 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode); } -#line 9654 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9655 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 540: -#line 3515 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3516 "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 9664 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9665 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 541: -#line 3520 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3521 "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 9674 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9675 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 542: -#line 3525 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3526 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc); if (parseContext.currentFunctionType->getBasicType() != EbtVoid) @@ -9682,83 +9683,83 @@ yyreduce: if (parseContext.inMain) parseContext.postEntryPointReturn = true; } -#line 9686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9687 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 543: -#line 3532 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3533 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); } -#line 9694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9695 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 544: -#line 3535 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3536 "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 9703 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9704 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 545: -#line 3544 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } -#line 9712 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9713 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 546: -#line 3548 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3549 "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 9723 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9724 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 547: -#line 3557 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3558 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9731 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9732 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 548: -#line 3560 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3561 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9739 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9740 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 549: -#line 3563 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3564 "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 9749 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9750 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 550: -#line 3571 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3572 "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 9758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9759 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 551: -#line 3575 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3576 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // May be best done as post process phase on intermediate code if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) @@ -9774,52 +9775,52 @@ yyreduce: (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug); (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable); } -#line 9778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9779 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 552: -#line 3593 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3594 "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 9787 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 553: -#line 3599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3600 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = (yyvsp[0].interm.attributes); } -#line 9795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 554: -#line 3602 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3603 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes)); } -#line 9803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9804 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 555: -#line 3607 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3608 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string); } -#line 9811 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9812 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 556: -#line 3610 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode)); } -#line 9819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9820 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; -#line 9823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 9824 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -10047,5 +10048,5 @@ yyreturn: #endif return yyresult; } -#line 3614 "MachineIndependent/glslang.y" /* yacc.c:1906 */ +#line 3615 "MachineIndependent/glslang.y" /* yacc.c:1906 */ diff --git a/glslang/MachineIndependent/parseVersions.h b/glslang/MachineIndependent/parseVersions.h index b2aaa39955f6d7f4316b17f202f2f1d91877d9df..a96f73aa15a7e4ffdfb7eac0c35e863df901100f 100755 --- a/glslang/MachineIndependent/parseVersions.h +++ b/glslang/MachineIndependent/parseVersions.h @@ -79,6 +79,15 @@ public: virtual void fullIntegerCheck(const TSourceLoc&, const char* op); virtual void doubleCheck(const TSourceLoc&, const char* op); virtual void float16Check(const TSourceLoc&, const char* op, bool builtIn = false); + virtual void float16ScalarVectorCheck(const TSourceLoc&, const char* op, bool builtIn = false); + virtual bool float16Arithmetic(); + virtual void requireFloat16Arithmetic(const TSourceLoc& loc, const char* featureDesc); + virtual void int16ScalarVectorCheck(const TSourceLoc&, const char* op, bool builtIn = false); + virtual bool int16Arithmetic(); + virtual void requireInt16Arithmetic(const TSourceLoc& loc, const char* featureDesc); + virtual void int8ScalarVectorCheck(const TSourceLoc&, const char* op, bool builtIn = false); + virtual bool int8Arithmetic(); + virtual void requireInt8Arithmetic(const TSourceLoc& loc, const char* featureDesc); #ifdef AMD_EXTENSIONS virtual void float16OpaqueCheck(const TSourceLoc&, const char* op, bool builtIn = false); #endif diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h old mode 100644 new mode 100755 index 5c629eeb88ebdf1e4c53baafd132def6f115b0a2..24c237b209d9ec7e5f6d08356dd5a65eb6f165ef --- a/glslang/Public/ShaderLang.h +++ b/glslang/Public/ShaderLang.h @@ -70,7 +70,7 @@ // This should always increase, as some paths to do not consume // a more major number. // It should increment by one when new functionality is added. -#define GLSLANG_MINOR_VERSION 7 +#define GLSLANG_MINOR_VERSION 8 // // Call before doing any other compiler/linker operations. diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index 0e5f26122b91cbc77f06e355faa608e20cda084a..786d9ff36185634cbd5cc858f2ea51e53d93626e 100755 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -215,6 +215,12 @@ INSTANTIATE_TEST_CASE_P( "spv.140.frag", "spv.150.geom", "spv.150.vert", + "spv.16bitstorage.frag", + "spv.16bitstorage_Error.frag", + "spv.16bitstorage-int.frag", + "spv.16bitstorage_Error-int.frag", + "spv.16bitstorage-uint.frag", + "spv.16bitstorage_Error-uint.frag", "spv.300BuiltIns.vert", "spv.300layout.frag", "spv.300layout.vert", @@ -231,6 +237,10 @@ INSTANTIATE_TEST_CASE_P( "spv.450.tesc", "spv.450.geom", "spv.450.noRedecl.tesc", + "spv.8bitstorage-int.frag", + "spv.8bitstorage_Error-int.frag", + "spv.8bitstorage-uint.frag", + "spv.8bitstorage_Error-uint.frag", "spv.accessChain.frag", "spv.aggOps.frag", "spv.always-discard.frag", diff --git a/known_good_khr.json b/known_good_khr.json old mode 100644 new mode 100755 index 083e7711c6019632534c91cba8ad84e5c3998c90..a64198a81fe82e25fbd797e29d894f40be412d6d --- a/known_good_khr.json +++ b/known_good_khr.json @@ -12,7 +12,7 @@ "site" : "gitlab", "subrepo" : "spirv/SPIRV-Headers", "subdir" : "External/spirv-tools/external/spirv-headers", - "commit" : "4082a777bd5df31ed45acf40e64263094e85ed2e" + "commit" : "gitlab-prelim-rc4" } ] }