diff --git a/Test/baseResults/hlsl.mintypes.frag.out b/Test/baseResults/hlsl.mintypes.frag.out index 07f28c3d..2b51d12c 100644 --- a/Test/baseResults/hlsl.mintypes.frag.out +++ b/Test/baseResults/hlsl.mintypes.frag.out @@ -5,33 +5,69 @@ gl_FragCoord origin is upper left 0:9 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:9 Function Parameters: 0:? Sequence -0:40 add ( temp mediump 2-component vector of float) -0:40 'mf16_2' ( temp mediump 2-component vector of float) -0:40 'mf16' ( temp mediump float) -0:41 add ( temp mediump 2-component vector of float) -0:41 'mf10_2' ( temp mediump 2-component vector of float) -0:41 'mf10' ( temp mediump float) -0:42 add ( temp mediump 2-component vector of int) -0:42 'mi16_2' ( temp mediump 2-component vector of int) -0:42 'mi16' ( temp mediump int) -0:43 add ( temp mediump 2-component vector of int) -0:43 'mi12_2' ( temp mediump 2-component vector of int) -0:43 'mi12' ( temp mediump int) -0:44 add ( temp mediump 2-component vector of uint) -0:44 'mu16_2' ( temp mediump 2-component vector of uint) -0:44 'mu16' ( temp mediump uint) -0:47 move second child to first child ( temp 4-component vector of float) -0:47 Color: direct index for structure ( temp 4-component vector of float) -0:47 'psout' ( temp structure{ temp 4-component vector of float Color}) -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 0.000000 -0:47 0.000000 -0:47 0.000000 -0:47 0.000000 -0:48 Branch: Return with expression -0:48 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:85 add ( temp mediump 2-component vector of float) +0:85 'mf16_2' ( temp mediump 2-component vector of float) +0:85 'mf16' ( temp mediump float) +0:86 add ( temp mediump 2-component vector of float) +0:86 'mf10_2' ( temp mediump 2-component vector of float) +0:86 'mf10' ( temp mediump float) +0:87 add ( temp mediump 2-component vector of int) +0:87 'mi16_2' ( temp mediump 2-component vector of int) +0:87 'mi16' ( temp mediump int) +0:88 add ( temp mediump 2-component vector of int) +0:88 'mi12_2' ( temp mediump 2-component vector of int) +0:88 'mi12' ( temp mediump int) +0:89 add ( temp mediump 2-component vector of uint) +0:89 'mu16_2' ( temp mediump 2-component vector of uint) +0:89 'mu16' ( temp mediump uint) +0:91 matrix-times-vector ( temp mediump 4-component vector of float) +0:91 'mf16_2x4' ( temp mediump 2X4 matrix of float) +0:91 'mf16_2' ( temp mediump 2-component vector of float) +0:92 matrix-times-vector ( temp mediump 4-component vector of float) +0:92 'mf16_3x4' ( temp mediump 3X4 matrix of float) +0:92 'mf16_3' ( temp mediump 3-component vector of float) +0:93 matrix-times-vector ( temp mediump 4-component vector of float) +0:93 'mf16_4x4' ( temp mediump 4X4 matrix of float) +0:93 'mf16_4' ( temp mediump 4-component vector of float) +0:94 vector-times-matrix ( temp mediump 4-component vector of float) +0:94 'mf16_2' ( temp mediump 2-component vector of float) +0:94 'mf16_4x2' ( temp mediump 4X2 matrix of float) +0:95 vector-times-matrix ( temp mediump 4-component vector of float) +0:95 'mf16_3' ( temp mediump 3-component vector of float) +0:95 'mf16_4x3' ( temp mediump 4X3 matrix of float) +0:96 vector-times-matrix ( temp mediump 4-component vector of float) +0:96 'mf16_4' ( temp mediump 4-component vector of float) +0:96 'mf16_4x4' ( temp mediump 4X4 matrix of float) +0:98 matrix-times-vector ( temp mediump 4-component vector of float) +0:98 'mf10_2x4' ( temp mediump 2X4 matrix of float) +0:98 'mf10_2' ( temp mediump 2-component vector of float) +0:99 matrix-times-vector ( temp mediump 4-component vector of float) +0:99 'mf10_3x4' ( temp mediump 3X4 matrix of float) +0:99 'mf10_3' ( temp mediump 3-component vector of float) +0:100 matrix-times-vector ( temp mediump 4-component vector of float) +0:100 'mf10_4x4' ( temp mediump 4X4 matrix of float) +0:100 'mf10_4' ( temp mediump 4-component vector of float) +0:101 vector-times-matrix ( temp mediump 4-component vector of float) +0:101 'mf10_2' ( temp mediump 2-component vector of float) +0:101 'mf10_4x2' ( temp mediump 4X2 matrix of float) +0:102 vector-times-matrix ( temp mediump 4-component vector of float) +0:102 'mf10_3' ( temp mediump 3-component vector of float) +0:102 'mf10_4x3' ( temp mediump 4X3 matrix of float) +0:103 vector-times-matrix ( temp mediump 4-component vector of float) +0:103 'mf10_4' ( temp mediump 4-component vector of float) +0:103 'mf10_4x4' ( temp mediump 4X4 matrix of float) +0:106 move second child to first child ( temp 4-component vector of float) +0:106 Color: direct index for structure ( temp 4-component vector of float) +0:106 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 0.000000 +0:106 0.000000 +0:106 0.000000 +0:106 0.000000 +0:107 Branch: Return with expression +0:107 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:9 Function Definition: main( ( temp void) 0:9 Function Parameters: 0:? Sequence @@ -56,33 +92,69 @@ gl_FragCoord origin is upper left 0:9 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:9 Function Parameters: 0:? Sequence -0:40 add ( temp mediump 2-component vector of float) -0:40 'mf16_2' ( temp mediump 2-component vector of float) -0:40 'mf16' ( temp mediump float) -0:41 add ( temp mediump 2-component vector of float) -0:41 'mf10_2' ( temp mediump 2-component vector of float) -0:41 'mf10' ( temp mediump float) -0:42 add ( temp mediump 2-component vector of int) -0:42 'mi16_2' ( temp mediump 2-component vector of int) -0:42 'mi16' ( temp mediump int) -0:43 add ( temp mediump 2-component vector of int) -0:43 'mi12_2' ( temp mediump 2-component vector of int) -0:43 'mi12' ( temp mediump int) -0:44 add ( temp mediump 2-component vector of uint) -0:44 'mu16_2' ( temp mediump 2-component vector of uint) -0:44 'mu16' ( temp mediump uint) -0:47 move second child to first child ( temp 4-component vector of float) -0:47 Color: direct index for structure ( temp 4-component vector of float) -0:47 'psout' ( temp structure{ temp 4-component vector of float Color}) -0:47 Constant: -0:47 0 (const int) -0:47 Constant: -0:47 0.000000 -0:47 0.000000 -0:47 0.000000 -0:47 0.000000 -0:48 Branch: Return with expression -0:48 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:85 add ( temp mediump 2-component vector of float) +0:85 'mf16_2' ( temp mediump 2-component vector of float) +0:85 'mf16' ( temp mediump float) +0:86 add ( temp mediump 2-component vector of float) +0:86 'mf10_2' ( temp mediump 2-component vector of float) +0:86 'mf10' ( temp mediump float) +0:87 add ( temp mediump 2-component vector of int) +0:87 'mi16_2' ( temp mediump 2-component vector of int) +0:87 'mi16' ( temp mediump int) +0:88 add ( temp mediump 2-component vector of int) +0:88 'mi12_2' ( temp mediump 2-component vector of int) +0:88 'mi12' ( temp mediump int) +0:89 add ( temp mediump 2-component vector of uint) +0:89 'mu16_2' ( temp mediump 2-component vector of uint) +0:89 'mu16' ( temp mediump uint) +0:91 matrix-times-vector ( temp mediump 4-component vector of float) +0:91 'mf16_2x4' ( temp mediump 2X4 matrix of float) +0:91 'mf16_2' ( temp mediump 2-component vector of float) +0:92 matrix-times-vector ( temp mediump 4-component vector of float) +0:92 'mf16_3x4' ( temp mediump 3X4 matrix of float) +0:92 'mf16_3' ( temp mediump 3-component vector of float) +0:93 matrix-times-vector ( temp mediump 4-component vector of float) +0:93 'mf16_4x4' ( temp mediump 4X4 matrix of float) +0:93 'mf16_4' ( temp mediump 4-component vector of float) +0:94 vector-times-matrix ( temp mediump 4-component vector of float) +0:94 'mf16_2' ( temp mediump 2-component vector of float) +0:94 'mf16_4x2' ( temp mediump 4X2 matrix of float) +0:95 vector-times-matrix ( temp mediump 4-component vector of float) +0:95 'mf16_3' ( temp mediump 3-component vector of float) +0:95 'mf16_4x3' ( temp mediump 4X3 matrix of float) +0:96 vector-times-matrix ( temp mediump 4-component vector of float) +0:96 'mf16_4' ( temp mediump 4-component vector of float) +0:96 'mf16_4x4' ( temp mediump 4X4 matrix of float) +0:98 matrix-times-vector ( temp mediump 4-component vector of float) +0:98 'mf10_2x4' ( temp mediump 2X4 matrix of float) +0:98 'mf10_2' ( temp mediump 2-component vector of float) +0:99 matrix-times-vector ( temp mediump 4-component vector of float) +0:99 'mf10_3x4' ( temp mediump 3X4 matrix of float) +0:99 'mf10_3' ( temp mediump 3-component vector of float) +0:100 matrix-times-vector ( temp mediump 4-component vector of float) +0:100 'mf10_4x4' ( temp mediump 4X4 matrix of float) +0:100 'mf10_4' ( temp mediump 4-component vector of float) +0:101 vector-times-matrix ( temp mediump 4-component vector of float) +0:101 'mf10_2' ( temp mediump 2-component vector of float) +0:101 'mf10_4x2' ( temp mediump 4X2 matrix of float) +0:102 vector-times-matrix ( temp mediump 4-component vector of float) +0:102 'mf10_3' ( temp mediump 3-component vector of float) +0:102 'mf10_4x3' ( temp mediump 4X3 matrix of float) +0:103 vector-times-matrix ( temp mediump 4-component vector of float) +0:103 'mf10_4' ( temp mediump 4-component vector of float) +0:103 'mf10_4x4' ( temp mediump 4X4 matrix of float) +0:106 move second child to first child ( temp 4-component vector of float) +0:106 Color: direct index for structure ( temp 4-component vector of float) +0:106 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 0.000000 +0:106 0.000000 +0:106 0.000000 +0:106 0.000000 +0:107 Branch: Return with expression +0:107 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:9 Function Definition: main( ( temp void) 0:9 Function Parameters: 0:? Sequence @@ -99,12 +171,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 8000b -// Id's are bound by 70 +// Id's are bound by 132 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 64 + EntryPoint Fragment 4 "main" 126 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" @@ -121,12 +193,26 @@ gl_FragCoord origin is upper left Name 39 "mi12" Name 46 "mu16_2" Name 49 "mu16" - Name 54 "psout" - Name 64 "@entryPointOutput.Color" - Name 67 "$Global" - MemberName 67($Global) 0 "b1a" - MemberName 67($Global) 1 "b1b" - Name 69 "" + Name 55 "mf16_2x4" + Name 61 "mf16_3x4" + Name 65 "mf16_3" + Name 70 "mf16_4x4" + Name 73 "mf16_4" + Name 79 "mf16_4x2" + Name 85 "mf16_4x3" + Name 91 "mf10_2x4" + Name 95 "mf10_3x4" + Name 97 "mf10_3" + Name 100 "mf10_4x4" + Name 102 "mf10_4" + Name 106 "mf10_4x2" + Name 110 "mf10_4x3" + Name 117 "psout" + Name 126 "@entryPointOutput.Color" + Name 129 "$Global" + MemberName 129($Global) 0 "b1a" + MemberName 129($Global) 1 "b1b" + Name 131 "" Decorate 14(mf16_2) RelaxedPrecision Decorate 15 RelaxedPrecision Decorate 17(mf16) RelaxedPrecision @@ -157,14 +243,64 @@ gl_FragCoord origin is upper left Decorate 50 RelaxedPrecision Decorate 51 RelaxedPrecision Decorate 52 RelaxedPrecision - Decorate 64(@entryPointOutput.Color) Location 0 - MemberDecorate 67($Global) 0 RelaxedPrecision - MemberDecorate 67($Global) 0 Offset 0 - MemberDecorate 67($Global) 1 RelaxedPrecision - MemberDecorate 67($Global) 1 Offset 4 - Decorate 67($Global) Block - Decorate 69 DescriptorSet 0 - Decorate 69 Binding 0 + Decorate 55(mf16_2x4) RelaxedPrecision + Decorate 56 RelaxedPrecision + Decorate 57 RelaxedPrecision + Decorate 58 RelaxedPrecision + Decorate 61(mf16_3x4) RelaxedPrecision + Decorate 62 RelaxedPrecision + Decorate 65(mf16_3) RelaxedPrecision + Decorate 66 RelaxedPrecision + Decorate 67 RelaxedPrecision + Decorate 70(mf16_4x4) RelaxedPrecision + Decorate 71 RelaxedPrecision + Decorate 73(mf16_4) RelaxedPrecision + Decorate 74 RelaxedPrecision + Decorate 75 RelaxedPrecision + Decorate 76 RelaxedPrecision + Decorate 79(mf16_4x2) RelaxedPrecision + Decorate 80 RelaxedPrecision + Decorate 81 RelaxedPrecision + Decorate 82 RelaxedPrecision + Decorate 85(mf16_4x3) RelaxedPrecision + Decorate 86 RelaxedPrecision + Decorate 87 RelaxedPrecision + Decorate 88 RelaxedPrecision + Decorate 89 RelaxedPrecision + Decorate 90 RelaxedPrecision + Decorate 91(mf10_2x4) RelaxedPrecision + Decorate 92 RelaxedPrecision + Decorate 93 RelaxedPrecision + Decorate 94 RelaxedPrecision + Decorate 95(mf10_3x4) RelaxedPrecision + Decorate 96 RelaxedPrecision + Decorate 97(mf10_3) RelaxedPrecision + Decorate 98 RelaxedPrecision + Decorate 99 RelaxedPrecision + Decorate 100(mf10_4x4) RelaxedPrecision + Decorate 101 RelaxedPrecision + Decorate 102(mf10_4) RelaxedPrecision + Decorate 103 RelaxedPrecision + Decorate 104 RelaxedPrecision + Decorate 105 RelaxedPrecision + Decorate 106(mf10_4x2) RelaxedPrecision + Decorate 107 RelaxedPrecision + Decorate 108 RelaxedPrecision + Decorate 109 RelaxedPrecision + Decorate 110(mf10_4x3) RelaxedPrecision + Decorate 111 RelaxedPrecision + Decorate 112 RelaxedPrecision + Decorate 113 RelaxedPrecision + Decorate 114 RelaxedPrecision + Decorate 115 RelaxedPrecision + Decorate 126(@entryPointOutput.Color) Location 0 + MemberDecorate 129($Global) 0 RelaxedPrecision + MemberDecorate 129($Global) 0 Offset 0 + MemberDecorate 129($Global) 1 RelaxedPrecision + MemberDecorate 129($Global) 1 Offset 4 + Decorate 129($Global) Block + Decorate 131 DescriptorSet 0 + Decorate 131 Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -182,21 +318,33 @@ gl_FragCoord origin is upper left 44: TypeVector 43(int) 2 45: TypePointer Function 44(ivec2) 48: TypePointer Function 43(int) - 53: TypePointer Function 8(PS_OUTPUT) - 55: 27(int) Constant 0 - 56: 6(float) Constant 0 - 57: 7(fvec4) ConstantComposite 56 56 56 56 - 58: TypePointer Function 7(fvec4) - 63: TypePointer Output 7(fvec4) -64(@entryPointOutput.Color): 63(ptr) Variable Output - 67($Global): TypeStruct 6(float) 6(float) - 68: TypePointer Uniform 67($Global) - 69: 68(ptr) Variable Uniform + 53: TypeMatrix 7(fvec4) 2 + 54: TypePointer Function 53 + 59: TypeMatrix 7(fvec4) 3 + 60: TypePointer Function 59 + 63: TypeVector 6(float) 3 + 64: TypePointer Function 63(fvec3) + 68: TypeMatrix 7(fvec4) 4 + 69: TypePointer Function 68 + 72: TypePointer Function 7(fvec4) + 77: TypeMatrix 12(fvec2) 4 + 78: TypePointer Function 77 + 83: TypeMatrix 63(fvec3) 4 + 84: TypePointer Function 83 + 116: TypePointer Function 8(PS_OUTPUT) + 118: 27(int) Constant 0 + 119: 6(float) Constant 0 + 120: 7(fvec4) ConstantComposite 119 119 119 119 + 125: TypePointer Output 7(fvec4) +126(@entryPointOutput.Color): 125(ptr) Variable Output + 129($Global): TypeStruct 6(float) 6(float) + 130: TypePointer Uniform 129($Global) + 131: 130(ptr) Variable Uniform 4(main): 2 Function None 3 5: Label - 65:8(PS_OUTPUT) FunctionCall 10(@main() - 66: 7(fvec4) CompositeExtract 65 0 - Store 64(@entryPointOutput.Color) 66 + 127:8(PS_OUTPUT) FunctionCall 10(@main() + 128: 7(fvec4) CompositeExtract 127 0 + Store 126(@entryPointOutput.Color) 128 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 @@ -211,7 +359,21 @@ gl_FragCoord origin is upper left 39(mi12): 32(ptr) Variable Function 46(mu16_2): 45(ptr) Variable Function 49(mu16): 48(ptr) Variable Function - 54(psout): 53(ptr) Variable Function + 55(mf16_2x4): 54(ptr) Variable Function + 61(mf16_3x4): 60(ptr) Variable Function + 65(mf16_3): 64(ptr) Variable Function + 70(mf16_4x4): 69(ptr) Variable Function + 73(mf16_4): 72(ptr) Variable Function + 79(mf16_4x2): 78(ptr) Variable Function + 85(mf16_4x3): 84(ptr) Variable Function + 91(mf10_2x4): 54(ptr) Variable Function + 95(mf10_3x4): 60(ptr) Variable Function + 97(mf10_3): 64(ptr) Variable Function + 100(mf10_4x4): 69(ptr) Variable Function + 102(mf10_4): 72(ptr) Variable Function + 106(mf10_4x2): 78(ptr) Variable Function + 110(mf10_4x3): 84(ptr) Variable Function + 117(psout): 116(ptr) Variable Function 15: 12(fvec2) Load 14(mf16_2) 18: 6(float) Load 17(mf16) 19: 12(fvec2) CompositeConstruct 18 18 @@ -232,8 +394,44 @@ gl_FragCoord origin is upper left 50: 43(int) Load 49(mu16) 51: 44(ivec2) CompositeConstruct 50 50 52: 44(ivec2) IAdd 47 51 - 59: 58(ptr) AccessChain 54(psout) 55 - Store 59 57 - 60:8(PS_OUTPUT) Load 54(psout) - ReturnValue 60 + 56: 53 Load 55(mf16_2x4) + 57: 12(fvec2) Load 14(mf16_2) + 58: 7(fvec4) MatrixTimesVector 56 57 + 62: 59 Load 61(mf16_3x4) + 66: 63(fvec3) Load 65(mf16_3) + 67: 7(fvec4) MatrixTimesVector 62 66 + 71: 68 Load 70(mf16_4x4) + 74: 7(fvec4) Load 73(mf16_4) + 75: 7(fvec4) MatrixTimesVector 71 74 + 76: 12(fvec2) Load 14(mf16_2) + 80: 77 Load 79(mf16_4x2) + 81: 7(fvec4) VectorTimesMatrix 76 80 + 82: 63(fvec3) Load 65(mf16_3) + 86: 83 Load 85(mf16_4x3) + 87: 7(fvec4) VectorTimesMatrix 82 86 + 88: 7(fvec4) Load 73(mf16_4) + 89: 68 Load 70(mf16_4x4) + 90: 7(fvec4) VectorTimesMatrix 88 89 + 92: 53 Load 91(mf10_2x4) + 93: 12(fvec2) Load 21(mf10_2) + 94: 7(fvec4) MatrixTimesVector 92 93 + 96: 59 Load 95(mf10_3x4) + 98: 63(fvec3) Load 97(mf10_3) + 99: 7(fvec4) MatrixTimesVector 96 98 + 101: 68 Load 100(mf10_4x4) + 103: 7(fvec4) Load 102(mf10_4) + 104: 7(fvec4) MatrixTimesVector 101 103 + 105: 12(fvec2) Load 21(mf10_2) + 107: 77 Load 106(mf10_4x2) + 108: 7(fvec4) VectorTimesMatrix 105 107 + 109: 63(fvec3) Load 97(mf10_3) + 111: 83 Load 110(mf10_4x3) + 112: 7(fvec4) VectorTimesMatrix 109 111 + 113: 7(fvec4) Load 102(mf10_4) + 114: 68 Load 100(mf10_4x4) + 115: 7(fvec4) VectorTimesMatrix 113 114 + 121: 72(ptr) AccessChain 117(psout) 118 + Store 121 120 + 122:8(PS_OUTPUT) Load 117(psout) + ReturnValue 122 FunctionEnd diff --git a/Test/hlsl.mintypes.frag b/Test/hlsl.mintypes.frag index ad47e68e..a887562b 100644 --- a/Test/hlsl.mintypes.frag +++ b/Test/hlsl.mintypes.frag @@ -12,30 +12,75 @@ PS_OUTPUT main() min16float2 mf16_2; min16float3 mf16_3; min16float4 mf16_4; + min16float2x2 mf16_2x2; + min16float2x3 mf16_2x3; + min16float2x4 mf16_2x4; + min16float3x2 mf16_3x2; + min16float3x3 mf16_3x3; + min16float3x4 mf16_3x4; + min16float4x2 mf16_4x2; + min16float4x3 mf16_4x3; + min16float4x4 mf16_4x4; min10float mf10; min10float1 mf10_1; min10float2 mf10_2; min10float3 mf10_3; - min10float4 mf12_4; + min10float4 mf10_4; + min10float2x2 mf10_2x2; + min10float2x3 mf10_2x3; + min10float2x4 mf10_2x4; + min10float3x2 mf10_3x2; + min10float3x3 mf10_3x3; + min10float3x4 mf10_3x4; + min10float4x2 mf10_4x2; + min10float4x3 mf10_4x3; + min10float4x4 mf10_4x4; min16int mi16; min16int1 mi16_1; min16int2 mi16_2; min16int3 mi16_3; min16int4 mi16_4; + min16int2x2 mi16_2x2; + min16int2x3 mi16_2x3; + min16int2x4 mi16_2x4; + min16int3x2 mi16_3x2; + min16int3x3 mi16_3x3; + min16int3x4 mi16_3x4; + min16int4x2 mi16_4x2; + min16int4x3 mi16_4x3; + min16int4x4 mi16_4x4; min12int mi12; min12int1 mi12_1; min12int2 mi12_2; min12int3 mi12_3; min12int4 mi12_4; + min12int2x2 mi12_2x2; + min12int2x3 mi12_2x3; + min12int2x4 mi12_2x4; + min12int3x2 mi12_3x2; + min12int3x3 mi12_3x3; + min12int3x4 mi12_3x4; + min12int4x2 mi12_4x2; + min12int4x3 mi12_4x3; + min12int4x4 mi12_4x4; min16uint mu16; min16uint1 mu16_1; min16uint2 mu16_2; min16uint3 mu16_3; min16uint4 mu16_4; + min16uint2x2 mu16_2x2; + min16uint2x3 mu16_2x3; + min16uint2x4 mu16_2x4; + min16uint3x2 mu16_3x2; + min16uint3x3 mu16_3x3; + min16uint3x4 mu16_3x4; + min16uint4x2 mu16_4x2; + min16uint4x3 mu16_4x3; + min16uint4x4 mu16_4x4; mf16_2 + mf16; mf10_2 + mf10; @@ -43,6 +88,20 @@ PS_OUTPUT main() mi12_2 + mi12; mu16_2 + mu16; + mul(mf16_2, mf16_2x4); + mul(mf16_3, mf16_3x4); + mul(mf16_4, mf16_4x4); + mul(mf16_4x2, mf16_2); + mul(mf16_4x3, mf16_3); + mul(mf16_4x4, mf16_4); + + mul(mf10_2, mf10_2x4); + mul(mf10_3, mf10_3x4); + mul(mf10_4, mf10_4x4); + mul(mf10_4x2, mf10_2); + mul(mf10_4x3, mf10_3); + mul(mf10_4x4, mf10_4); + PS_OUTPUT psout; psout.Color = 0; return psout; diff --git a/glslang/HLSL/hlslGrammar.cpp b/glslang/HLSL/hlslGrammar.cpp index 19a792b9..8e6f44e3 100644 --- a/glslang/HLSL/hlslGrammar.cpp +++ b/glslang/HLSL/hlslGrammar.cpp @@ -823,8 +823,10 @@ bool HlslGrammar::acceptLayoutQualifierList(TQualifier& qualifier) // | UINT // | BOOL // -bool HlslGrammar::acceptTemplateVecMatBasicType(TBasicType& basicType) +bool HlslGrammar::acceptTemplateVecMatBasicType(TBasicType& basicType, + TPrecisionQualifier& precision) { + precision = EpqNone; switch (peek()) { case EHTokFloat: basicType = EbtFloat; @@ -842,6 +844,23 @@ bool HlslGrammar::acceptTemplateVecMatBasicType(TBasicType& basicType) case EHTokBool: basicType = EbtBool; break; + case EHTokHalf: + basicType = parseContext.hlslEnable16BitTypes() ? EbtFloat16 : EbtFloat; + break; + case EHTokMin16float: + case EHTokMin10float: + basicType = parseContext.hlslEnable16BitTypes() ? EbtFloat16 : EbtFloat; + precision = EpqMedium; + break; + case EHTokMin16int: + case EHTokMin12int: + basicType = parseContext.hlslEnable16BitTypes() ? EbtInt16 : EbtInt; + precision = EpqMedium; + break; + case EHTokMin16uint: + basicType = parseContext.hlslEnable16BitTypes() ? EbtUint16 : EbtUint; + precision = EpqMedium; + break; default: return false; } @@ -867,7 +886,8 @@ bool HlslGrammar::acceptVectorTemplateType(TType& type) } TBasicType basicType; - if (! acceptTemplateVecMatBasicType(basicType)) { + TPrecisionQualifier precision; + if (! acceptTemplateVecMatBasicType(basicType, precision)) { expected("scalar type"); return false; } @@ -890,7 +910,7 @@ bool HlslGrammar::acceptVectorTemplateType(TType& type) const int vecSizeI = vecSize->getAsConstantUnion()->getConstArray()[0].getIConst(); - new(&type) TType(basicType, EvqTemporary, vecSizeI); + new(&type) TType(basicType, EvqTemporary, precision, vecSizeI); if (vecSizeI == 1) type.makeVector(); @@ -919,7 +939,8 @@ bool HlslGrammar::acceptMatrixTemplateType(TType& type) } TBasicType basicType; - if (! acceptTemplateVecMatBasicType(basicType)) { + TPrecisionQualifier precision; + if (! acceptTemplateVecMatBasicType(basicType, precision)) { expected("scalar type"); return false; } @@ -956,7 +977,7 @@ bool HlslGrammar::acceptMatrixTemplateType(TType& type) if (! acceptLiteral(cols)) return false; - new(&type) TType(basicType, EvqTemporary, 0, + new(&type) TType(basicType, EvqTemporary, precision, 0, rows->getAsConstantUnion()->getConstArray()[0].getIConst(), cols->getAsConstantUnion()->getConstArray()[0].getIConst()); @@ -2064,6 +2085,251 @@ bool HlslGrammar::acceptType(TType& type, TIntermNode*& nodeList) new(&type) TType(EbtDouble, EvqTemporary, 0, 4, 4); break; + case EHTokMin16float1x1: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 0, 1, 1); + break; + case EHTokMin16float1x2: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 0, 1, 2); + break; + case EHTokMin16float1x3: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 0, 1, 3); + break; + case EHTokMin16float1x4: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 0, 1, 4); + break; + case EHTokMin16float2x1: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 0, 2, 1); + break; + case EHTokMin16float2x2: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 0, 2, 2); + break; + case EHTokMin16float2x3: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 0, 2, 3); + break; + case EHTokMin16float2x4: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 0, 2, 4); + break; + case EHTokMin16float3x1: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 0, 3, 1); + break; + case EHTokMin16float3x2: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 0, 3, 2); + break; + case EHTokMin16float3x3: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 0, 3, 3); + break; + case EHTokMin16float3x4: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 0, 3, 4); + break; + case EHTokMin16float4x1: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 0, 4, 1); + break; + case EHTokMin16float4x2: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 0, 4, 2); + break; + case EHTokMin16float4x3: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 0, 4, 3); + break; + case EHTokMin16float4x4: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 0, 4, 4); + break; + + case EHTokMin10float1x1: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 0, 1, 1); + break; + case EHTokMin10float1x2: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 0, 1, 2); + break; + case EHTokMin10float1x3: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 0, 1, 3); + break; + case EHTokMin10float1x4: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 0, 1, 4); + break; + case EHTokMin10float2x1: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 0, 2, 1); + break; + case EHTokMin10float2x2: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 0, 2, 2); + break; + case EHTokMin10float2x3: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 0, 2, 3); + break; + case EHTokMin10float2x4: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 0, 2, 4); + break; + case EHTokMin10float3x1: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 0, 3, 1); + break; + case EHTokMin10float3x2: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 0, 3, 2); + break; + case EHTokMin10float3x3: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 0, 3, 3); + break; + case EHTokMin10float3x4: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 0, 3, 4); + break; + case EHTokMin10float4x1: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 0, 4, 1); + break; + case EHTokMin10float4x2: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 0, 4, 2); + break; + case EHTokMin10float4x3: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 0, 4, 3); + break; + case EHTokMin10float4x4: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 0, 4, 4); + break; + + case EHTokMin16int1x1: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 0, 1, 1); + break; + case EHTokMin16int1x2: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 0, 1, 2); + break; + case EHTokMin16int1x3: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 0, 1, 3); + break; + case EHTokMin16int1x4: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 0, 1, 4); + break; + case EHTokMin16int2x1: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 0, 2, 1); + break; + case EHTokMin16int2x2: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 0, 2, 2); + break; + case EHTokMin16int2x3: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 0, 2, 3); + break; + case EHTokMin16int2x4: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 0, 2, 4); + break; + case EHTokMin16int3x1: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 0, 3, 1); + break; + case EHTokMin16int3x2: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 0, 3, 2); + break; + case EHTokMin16int3x3: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 0, 3, 3); + break; + case EHTokMin16int3x4: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 0, 3, 4); + break; + case EHTokMin16int4x1: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 0, 4, 1); + break; + case EHTokMin16int4x2: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 0, 4, 2); + break; + case EHTokMin16int4x3: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 0, 4, 3); + break; + case EHTokMin16int4x4: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 0, 4, 4); + break; + + case EHTokMin12int1x1: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 0, 1, 1); + break; + case EHTokMin12int1x2: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 0, 1, 2); + break; + case EHTokMin12int1x3: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 0, 1, 3); + break; + case EHTokMin12int1x4: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 0, 1, 4); + break; + case EHTokMin12int2x1: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 0, 2, 1); + break; + case EHTokMin12int2x2: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 0, 2, 2); + break; + case EHTokMin12int2x3: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 0, 2, 3); + break; + case EHTokMin12int2x4: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 0, 2, 4); + break; + case EHTokMin12int3x1: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 0, 3, 1); + break; + case EHTokMin12int3x2: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 0, 3, 2); + break; + case EHTokMin12int3x3: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 0, 3, 3); + break; + case EHTokMin12int3x4: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 0, 3, 4); + break; + case EHTokMin12int4x1: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 0, 4, 1); + break; + case EHTokMin12int4x2: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 0, 4, 2); + break; + case EHTokMin12int4x3: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 0, 4, 3); + break; + case EHTokMin12int4x4: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 0, 4, 4); + break; + + case EHTokMin16uint1x1: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 0, 1, 1); + break; + case EHTokMin16uint1x2: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 0, 1, 2); + break; + case EHTokMin16uint1x3: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 0, 1, 3); + break; + case EHTokMin16uint1x4: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 0, 1, 4); + break; + case EHTokMin16uint2x1: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 0, 2, 1); + break; + case EHTokMin16uint2x2: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 0, 2, 2); + break; + case EHTokMin16uint2x3: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 0, 2, 3); + break; + case EHTokMin16uint2x4: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 0, 2, 4); + break; + case EHTokMin16uint3x1: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 0, 3, 1); + break; + case EHTokMin16uint3x2: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 0, 3, 2); + break; + case EHTokMin16uint3x3: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 0, 3, 3); + break; + case EHTokMin16uint3x4: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 0, 3, 4); + break; + case EHTokMin16uint4x1: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 0, 4, 1); + break; + case EHTokMin16uint4x2: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 0, 4, 2); + break; + case EHTokMin16uint4x3: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 0, 4, 3); + break; + case EHTokMin16uint4x4: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 0, 4, 4); + break; + default: return false; } diff --git a/glslang/HLSL/hlslGrammar.h b/glslang/HLSL/hlslGrammar.h index 27706b2b..6c120081 100644 --- a/glslang/HLSL/hlslGrammar.h +++ b/glslang/HLSL/hlslGrammar.h @@ -76,7 +76,7 @@ namespace glslang { bool acceptLayoutQualifierList(TQualifier&); bool acceptType(TType&); bool acceptType(TType&, TIntermNode*& nodeList); - bool acceptTemplateVecMatBasicType(TBasicType&); + bool acceptTemplateVecMatBasicType(TBasicType&, TPrecisionQualifier&); bool acceptVectorTemplateType(TType&); bool acceptMatrixTemplateType(TType&); bool acceptTessellationDeclType(TBuiltInVariable&); diff --git a/glslang/HLSL/hlslScanContext.cpp b/glslang/HLSL/hlslScanContext.cpp index fc62672f..823b17aa 100644 --- a/glslang/HLSL/hlslScanContext.cpp +++ b/glslang/HLSL/hlslScanContext.cpp @@ -312,6 +312,86 @@ void HlslScanContext::fillInKeywordMap() (*KeywordMap)["double4x2"] = EHTokDouble4x2; (*KeywordMap)["double4x3"] = EHTokDouble4x3; (*KeywordMap)["double4x4"] = EHTokDouble4x4; + (*KeywordMap)["min16float1x1"] = EHTokMin16float1x1; + (*KeywordMap)["min16float1x2"] = EHTokMin16float1x2; + (*KeywordMap)["min16float1x3"] = EHTokMin16float1x3; + (*KeywordMap)["min16float1x4"] = EHTokMin16float1x4; + (*KeywordMap)["min16float2x1"] = EHTokMin16float2x1; + (*KeywordMap)["min16float2x2"] = EHTokMin16float2x2; + (*KeywordMap)["min16float2x3"] = EHTokMin16float2x3; + (*KeywordMap)["min16float2x4"] = EHTokMin16float2x4; + (*KeywordMap)["min16float3x1"] = EHTokMin16float3x1; + (*KeywordMap)["min16float3x2"] = EHTokMin16float3x2; + (*KeywordMap)["min16float3x3"] = EHTokMin16float3x3; + (*KeywordMap)["min16float3x4"] = EHTokMin16float3x4; + (*KeywordMap)["min16float4x1"] = EHTokMin16float4x1; + (*KeywordMap)["min16float4x2"] = EHTokMin16float4x2; + (*KeywordMap)["min16float4x3"] = EHTokMin16float4x3; + (*KeywordMap)["min16float4x4"] = EHTokMin16float4x4; + (*KeywordMap)["min10float1x1"] = EHTokMin10float1x1; + (*KeywordMap)["min10float1x2"] = EHTokMin10float1x2; + (*KeywordMap)["min10float1x3"] = EHTokMin10float1x3; + (*KeywordMap)["min10float1x4"] = EHTokMin10float1x4; + (*KeywordMap)["min10float2x1"] = EHTokMin10float2x1; + (*KeywordMap)["min10float2x2"] = EHTokMin10float2x2; + (*KeywordMap)["min10float2x3"] = EHTokMin10float2x3; + (*KeywordMap)["min10float2x4"] = EHTokMin10float2x4; + (*KeywordMap)["min10float3x1"] = EHTokMin10float3x1; + (*KeywordMap)["min10float3x2"] = EHTokMin10float3x2; + (*KeywordMap)["min10float3x3"] = EHTokMin10float3x3; + (*KeywordMap)["min10float3x4"] = EHTokMin10float3x4; + (*KeywordMap)["min10float4x1"] = EHTokMin10float4x1; + (*KeywordMap)["min10float4x2"] = EHTokMin10float4x2; + (*KeywordMap)["min10float4x3"] = EHTokMin10float4x3; + (*KeywordMap)["min10float4x4"] = EHTokMin10float4x4; + (*KeywordMap)["min16int1x1"] = EHTokMin16int1x1; + (*KeywordMap)["min16int1x2"] = EHTokMin16int1x2; + (*KeywordMap)["min16int1x3"] = EHTokMin16int1x3; + (*KeywordMap)["min16int1x4"] = EHTokMin16int1x4; + (*KeywordMap)["min16int2x1"] = EHTokMin16int2x1; + (*KeywordMap)["min16int2x2"] = EHTokMin16int2x2; + (*KeywordMap)["min16int2x3"] = EHTokMin16int2x3; + (*KeywordMap)["min16int2x4"] = EHTokMin16int2x4; + (*KeywordMap)["min16int3x1"] = EHTokMin16int3x1; + (*KeywordMap)["min16int3x2"] = EHTokMin16int3x2; + (*KeywordMap)["min16int3x3"] = EHTokMin16int3x3; + (*KeywordMap)["min16int3x4"] = EHTokMin16int3x4; + (*KeywordMap)["min16int4x1"] = EHTokMin16int4x1; + (*KeywordMap)["min16int4x2"] = EHTokMin16int4x2; + (*KeywordMap)["min16int4x3"] = EHTokMin16int4x3; + (*KeywordMap)["min16int4x4"] = EHTokMin16int4x4; + (*KeywordMap)["min12int1x1"] = EHTokMin12int1x1; + (*KeywordMap)["min12int1x2"] = EHTokMin12int1x2; + (*KeywordMap)["min12int1x3"] = EHTokMin12int1x3; + (*KeywordMap)["min12int1x4"] = EHTokMin12int1x4; + (*KeywordMap)["min12int2x1"] = EHTokMin12int2x1; + (*KeywordMap)["min12int2x2"] = EHTokMin12int2x2; + (*KeywordMap)["min12int2x3"] = EHTokMin12int2x3; + (*KeywordMap)["min12int2x4"] = EHTokMin12int2x4; + (*KeywordMap)["min12int3x1"] = EHTokMin12int3x1; + (*KeywordMap)["min12int3x2"] = EHTokMin12int3x2; + (*KeywordMap)["min12int3x3"] = EHTokMin12int3x3; + (*KeywordMap)["min12int3x4"] = EHTokMin12int3x4; + (*KeywordMap)["min12int4x1"] = EHTokMin12int4x1; + (*KeywordMap)["min12int4x2"] = EHTokMin12int4x2; + (*KeywordMap)["min12int4x3"] = EHTokMin12int4x3; + (*KeywordMap)["min12int4x4"] = EHTokMin12int4x4; + (*KeywordMap)["min16uint1x1"] = EHTokMin16uint1x1; + (*KeywordMap)["min16uint1x2"] = EHTokMin16uint1x2; + (*KeywordMap)["min16uint1x3"] = EHTokMin16uint1x3; + (*KeywordMap)["min16uint1x4"] = EHTokMin16uint1x4; + (*KeywordMap)["min16uint2x1"] = EHTokMin16uint2x1; + (*KeywordMap)["min16uint2x2"] = EHTokMin16uint2x2; + (*KeywordMap)["min16uint2x3"] = EHTokMin16uint2x3; + (*KeywordMap)["min16uint2x4"] = EHTokMin16uint2x4; + (*KeywordMap)["min16uint3x1"] = EHTokMin16uint3x1; + (*KeywordMap)["min16uint3x2"] = EHTokMin16uint3x2; + (*KeywordMap)["min16uint3x3"] = EHTokMin16uint3x3; + (*KeywordMap)["min16uint3x4"] = EHTokMin16uint3x4; + (*KeywordMap)["min16uint4x1"] = EHTokMin16uint4x1; + (*KeywordMap)["min16uint4x2"] = EHTokMin16uint4x2; + (*KeywordMap)["min16uint4x3"] = EHTokMin16uint4x3; + (*KeywordMap)["min16uint4x4"] = EHTokMin16uint4x4; (*KeywordMap)["sampler"] = EHTokSampler; (*KeywordMap)["sampler1D"] = EHTokSampler1d; @@ -806,6 +886,86 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokDouble4x2: case EHTokDouble4x3: case EHTokDouble4x4: + case EHTokMin16float1x1: + case EHTokMin16float1x2: + case EHTokMin16float1x3: + case EHTokMin16float1x4: + case EHTokMin16float2x1: + case EHTokMin16float2x2: + case EHTokMin16float2x3: + case EHTokMin16float2x4: + case EHTokMin16float3x1: + case EHTokMin16float3x2: + case EHTokMin16float3x3: + case EHTokMin16float3x4: + case EHTokMin16float4x1: + case EHTokMin16float4x2: + case EHTokMin16float4x3: + case EHTokMin16float4x4: + case EHTokMin10float1x1: + case EHTokMin10float1x2: + case EHTokMin10float1x3: + case EHTokMin10float1x4: + case EHTokMin10float2x1: + case EHTokMin10float2x2: + case EHTokMin10float2x3: + case EHTokMin10float2x4: + case EHTokMin10float3x1: + case EHTokMin10float3x2: + case EHTokMin10float3x3: + case EHTokMin10float3x4: + case EHTokMin10float4x1: + case EHTokMin10float4x2: + case EHTokMin10float4x3: + case EHTokMin10float4x4: + case EHTokMin16int1x1: + case EHTokMin16int1x2: + case EHTokMin16int1x3: + case EHTokMin16int1x4: + case EHTokMin16int2x1: + case EHTokMin16int2x2: + case EHTokMin16int2x3: + case EHTokMin16int2x4: + case EHTokMin16int3x1: + case EHTokMin16int3x2: + case EHTokMin16int3x3: + case EHTokMin16int3x4: + case EHTokMin16int4x1: + case EHTokMin16int4x2: + case EHTokMin16int4x3: + case EHTokMin16int4x4: + case EHTokMin12int1x1: + case EHTokMin12int1x2: + case EHTokMin12int1x3: + case EHTokMin12int1x4: + case EHTokMin12int2x1: + case EHTokMin12int2x2: + case EHTokMin12int2x3: + case EHTokMin12int2x4: + case EHTokMin12int3x1: + case EHTokMin12int3x2: + case EHTokMin12int3x3: + case EHTokMin12int3x4: + case EHTokMin12int4x1: + case EHTokMin12int4x2: + case EHTokMin12int4x3: + case EHTokMin12int4x4: + case EHTokMin16uint1x1: + case EHTokMin16uint1x2: + case EHTokMin16uint1x3: + case EHTokMin16uint1x4: + case EHTokMin16uint2x1: + case EHTokMin16uint2x2: + case EHTokMin16uint2x3: + case EHTokMin16uint2x4: + case EHTokMin16uint3x1: + case EHTokMin16uint3x2: + case EHTokMin16uint3x3: + case EHTokMin16uint3x4: + case EHTokMin16uint4x1: + case EHTokMin16uint4x2: + case EHTokMin16uint4x3: + case EHTokMin16uint4x4: return keyword; // texturing types diff --git a/glslang/HLSL/hlslTokens.h b/glslang/HLSL/hlslTokens.h index 4426bcce..a7c12990 100644 --- a/glslang/HLSL/hlslTokens.h +++ b/glslang/HLSL/hlslTokens.h @@ -249,6 +249,86 @@ enum EHlslTokenClass { EHTokDouble4x2, EHTokDouble4x3, EHTokDouble4x4, + EHTokMin16float1x1, + EHTokMin16float1x2, + EHTokMin16float1x3, + EHTokMin16float1x4, + EHTokMin16float2x1, + EHTokMin16float2x2, + EHTokMin16float2x3, + EHTokMin16float2x4, + EHTokMin16float3x1, + EHTokMin16float3x2, + EHTokMin16float3x3, + EHTokMin16float3x4, + EHTokMin16float4x1, + EHTokMin16float4x2, + EHTokMin16float4x3, + EHTokMin16float4x4, + EHTokMin10float1x1, + EHTokMin10float1x2, + EHTokMin10float1x3, + EHTokMin10float1x4, + EHTokMin10float2x1, + EHTokMin10float2x2, + EHTokMin10float2x3, + EHTokMin10float2x4, + EHTokMin10float3x1, + EHTokMin10float3x2, + EHTokMin10float3x3, + EHTokMin10float3x4, + EHTokMin10float4x1, + EHTokMin10float4x2, + EHTokMin10float4x3, + EHTokMin10float4x4, + EHTokMin16int1x1, + EHTokMin16int1x2, + EHTokMin16int1x3, + EHTokMin16int1x4, + EHTokMin16int2x1, + EHTokMin16int2x2, + EHTokMin16int2x3, + EHTokMin16int2x4, + EHTokMin16int3x1, + EHTokMin16int3x2, + EHTokMin16int3x3, + EHTokMin16int3x4, + EHTokMin16int4x1, + EHTokMin16int4x2, + EHTokMin16int4x3, + EHTokMin16int4x4, + EHTokMin12int1x1, + EHTokMin12int1x2, + EHTokMin12int1x3, + EHTokMin12int1x4, + EHTokMin12int2x1, + EHTokMin12int2x2, + EHTokMin12int2x3, + EHTokMin12int2x4, + EHTokMin12int3x1, + EHTokMin12int3x2, + EHTokMin12int3x3, + EHTokMin12int3x4, + EHTokMin12int4x1, + EHTokMin12int4x2, + EHTokMin12int4x3, + EHTokMin12int4x4, + EHTokMin16uint1x1, + EHTokMin16uint1x2, + EHTokMin16uint1x3, + EHTokMin16uint1x4, + EHTokMin16uint2x1, + EHTokMin16uint2x2, + EHTokMin16uint2x3, + EHTokMin16uint2x4, + EHTokMin16uint3x1, + EHTokMin16uint3x2, + EHTokMin16uint3x3, + EHTokMin16uint3x4, + EHTokMin16uint4x1, + EHTokMin16uint4x2, + EHTokMin16uint4x3, + EHTokMin16uint4x4, // texturing types EHTokSampler,