Jelajahi Sumber

Updated glslang.

Бранимир Караџић 6 tahun lalu
induk
melakukan
ecd4c00363

+ 501 - 0
3rdparty/glslang/Test/baseResults/hlsl.format.rwtexture.frag.out

@@ -0,0 +1,501 @@
+hlsl.format.rwtexture.frag
+Shader version: 500
+gl_FragCoord origin is upper left
+using depth_any
+0:? Sequence
+0:56  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
+0:56    Function Parameters: 
+0:?     Sequence
+0:59      move second child to first child ( temp 4-component vector of float)
+0:59        Color: direct index for structure ( temp 4-component vector of float)
+0:59          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
+0:59          Constant:
+0:59            0 (const int)
+0:59        Constant:
+0:59          1.000000
+0:59          1.000000
+0:59          1.000000
+0:59          1.000000
+0:60      move second child to first child ( temp float)
+0:60        Depth: direct index for structure ( temp float)
+0:60          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
+0:60          Constant:
+0:60            1 (const int)
+0:60        Constant:
+0:60          1.000000
+0:62      Branch: Return with expression
+0:62        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
+0:56  Function Definition: main( ( temp void)
+0:56    Function Parameters: 
+0:?     Sequence
+0:56      Sequence
+0:56        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
+0:56          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
+0:56          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
+0:56        move second child to first child ( temp 4-component vector of float)
+0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
+0:56          Color: direct index for structure ( temp 4-component vector of float)
+0:56            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
+0:56            Constant:
+0:56              0 (const int)
+0:56        move second child to first child ( temp float)
+0:?           '@entryPointOutput.Depth' ( out float FragDepth)
+0:56          Depth: direct index for structure ( temp float)
+0:56            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
+0:56            Constant:
+0:56              1 (const int)
+0:?   Linker Objects
+0:?     'g_sSamp' (layout( binding=0) uniform sampler)
+0:?     'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D)
+0:?     'g_tTex1di4' (layout( rg32f) uniform iimage1D)
+0:?     'g_tTex1du4' (layout( rgba8_snorm) uniform uimage1D)
+0:?     'g_tTex2df4' (layout( rgba8i) uniform image2D)
+0:?     'g_tTex2di4' (layout( r11f_g11f_b10f) uniform iimage2D)
+0:?     'g_tTex2du4' (layout( r8_snorm) uniform uimage2D)
+0:?     'g_tTex3df4' (layout( rg8) readonly uniform image3D)
+0:?     'g_tTex3di4' (layout( rgba16i) writeonly uniform iimage3D)
+0:?     'g_tTex3du4' (layout( r8i) readonly writeonly uniform uimage3D)
+0:?     'g_tTex1df4a' (layout( rgba8ui) uniform image1DArray)
+0:?     'g_tTex1di4a' (layout( rg32ui) uniform iimage1DArray)
+0:?     'g_tTex1du4a' (layout( r16ui) uniform uimage1DArray)
+0:?     'g_tTex2df4a' (layout( rgb10_a2ui) uniform image2DArray)
+0:?     'g_tTex2di4a' (layout( r8ui) uniform iimage2DArray)
+0:?     'g_tTex2du4a' (layout( rgba16f) uniform uimage2DArray)
+0:?     'g_tTex01' (layout( rgba8) uniform iimage2DArray)
+0:?     'g_tTex02' (layout( rg16f) uniform iimage2DArray)
+0:?     'g_tTex03' (layout( r16f) uniform iimage2DArray)
+0:?     'g_tTex04' (layout( rgb10_a2) uniform iimage2DArray)
+0:?     'g_tTex05' (layout( rg16) uniform iimage2DArray)
+0:?     'g_tTex06' (layout( r32f) uniform iimage2DArray)
+0:?     'g_tTex07' (layout( rgba16) uniform iimage2DArray)
+0:?     'g_tTex08' (layout( r16) uniform iimage2DArray)
+0:?     'g_tTex09' (layout( r8) uniform iimage2DArray)
+0:?     'g_tTex10' (layout( rgba16_snorm) uniform iimage2DArray)
+0:?     'g_tTex11' (layout( rg16_snorm) uniform iimage2DArray)
+0:?     'g_tTex12' (layout( r16_snorm) uniform iimage2DArray)
+0:?     'g_tTex13' (layout( r8_snorm) uniform iimage2DArray)
+0:?     'g_tTex14' (layout( rgba32i) uniform iimage2DArray)
+0:?     'g_tTex15' (layout( r32i) uniform iimage2DArray)
+0:?     'g_tTex16' (layout( r32ui) uniform iimage2DArray)
+0:?     'g_tTex17' (layout( rg16i) uniform iimage2DArray)
+0:?     'g_tTex18' (layout( r16i) uniform iimage2DArray)
+0:?     'g_tTex19' (layout( rg32i) uniform iimage2DArray)
+0:?     'g_tTex20' (layout( rg8i) uniform iimage2DArray)
+0:?     'g_tTex21' (layout( rg8ui) uniform iimage2DArray)
+0:?     'g_tTex22' (layout( rgba32ui) uniform iimage2DArray)
+0:?     'g_tTex23' (layout( rgba16ui) uniform iimage2DArray)
+0:?     'g_tTex24' (layout( rg32ui) uniform iimage2DArray)
+0:?     'g_tTex25' (layout( rg16ui) uniform iimage2DArray)
+0:?     '@entryPointOutput.Depth' ( out float FragDepth)
+0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 500
+gl_FragCoord origin is upper left
+using depth_any
+0:? Sequence
+0:56  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
+0:56    Function Parameters: 
+0:?     Sequence
+0:59      move second child to first child ( temp 4-component vector of float)
+0:59        Color: direct index for structure ( temp 4-component vector of float)
+0:59          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
+0:59          Constant:
+0:59            0 (const int)
+0:59        Constant:
+0:59          1.000000
+0:59          1.000000
+0:59          1.000000
+0:59          1.000000
+0:60      move second child to first child ( temp float)
+0:60        Depth: direct index for structure ( temp float)
+0:60          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
+0:60          Constant:
+0:60            1 (const int)
+0:60        Constant:
+0:60          1.000000
+0:62      Branch: Return with expression
+0:62        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
+0:56  Function Definition: main( ( temp void)
+0:56    Function Parameters: 
+0:?     Sequence
+0:56      Sequence
+0:56        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
+0:56          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
+0:56          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
+0:56        move second child to first child ( temp 4-component vector of float)
+0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
+0:56          Color: direct index for structure ( temp 4-component vector of float)
+0:56            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
+0:56            Constant:
+0:56              0 (const int)
+0:56        move second child to first child ( temp float)
+0:?           '@entryPointOutput.Depth' ( out float FragDepth)
+0:56          Depth: direct index for structure ( temp float)
+0:56            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
+0:56            Constant:
+0:56              1 (const int)
+0:?   Linker Objects
+0:?     'g_sSamp' (layout( binding=0) uniform sampler)
+0:?     'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D)
+0:?     'g_tTex1di4' (layout( rg32f) uniform iimage1D)
+0:?     'g_tTex1du4' (layout( rgba8_snorm) uniform uimage1D)
+0:?     'g_tTex2df4' (layout( rgba8i) uniform image2D)
+0:?     'g_tTex2di4' (layout( r11f_g11f_b10f) uniform iimage2D)
+0:?     'g_tTex2du4' (layout( r8_snorm) uniform uimage2D)
+0:?     'g_tTex3df4' (layout( rg8) readonly uniform image3D)
+0:?     'g_tTex3di4' (layout( rgba16i) writeonly uniform iimage3D)
+0:?     'g_tTex3du4' (layout( r8i) readonly writeonly uniform uimage3D)
+0:?     'g_tTex1df4a' (layout( rgba8ui) uniform image1DArray)
+0:?     'g_tTex1di4a' (layout( rg32ui) uniform iimage1DArray)
+0:?     'g_tTex1du4a' (layout( r16ui) uniform uimage1DArray)
+0:?     'g_tTex2df4a' (layout( rgb10_a2ui) uniform image2DArray)
+0:?     'g_tTex2di4a' (layout( r8ui) uniform iimage2DArray)
+0:?     'g_tTex2du4a' (layout( rgba16f) uniform uimage2DArray)
+0:?     'g_tTex01' (layout( rgba8) uniform iimage2DArray)
+0:?     'g_tTex02' (layout( rg16f) uniform iimage2DArray)
+0:?     'g_tTex03' (layout( r16f) uniform iimage2DArray)
+0:?     'g_tTex04' (layout( rgb10_a2) uniform iimage2DArray)
+0:?     'g_tTex05' (layout( rg16) uniform iimage2DArray)
+0:?     'g_tTex06' (layout( r32f) uniform iimage2DArray)
+0:?     'g_tTex07' (layout( rgba16) uniform iimage2DArray)
+0:?     'g_tTex08' (layout( r16) uniform iimage2DArray)
+0:?     'g_tTex09' (layout( r8) uniform iimage2DArray)
+0:?     'g_tTex10' (layout( rgba16_snorm) uniform iimage2DArray)
+0:?     'g_tTex11' (layout( rg16_snorm) uniform iimage2DArray)
+0:?     'g_tTex12' (layout( r16_snorm) uniform iimage2DArray)
+0:?     'g_tTex13' (layout( r8_snorm) uniform iimage2DArray)
+0:?     'g_tTex14' (layout( rgba32i) uniform iimage2DArray)
+0:?     'g_tTex15' (layout( r32i) uniform iimage2DArray)
+0:?     'g_tTex16' (layout( r32ui) uniform iimage2DArray)
+0:?     'g_tTex17' (layout( rg16i) uniform iimage2DArray)
+0:?     'g_tTex18' (layout( r16i) uniform iimage2DArray)
+0:?     'g_tTex19' (layout( rg32i) uniform iimage2DArray)
+0:?     'g_tTex20' (layout( rg8i) uniform iimage2DArray)
+0:?     'g_tTex21' (layout( rg8ui) uniform iimage2DArray)
+0:?     'g_tTex22' (layout( rgba32ui) uniform iimage2DArray)
+0:?     'g_tTex23' (layout( rgba16ui) uniform iimage2DArray)
+0:?     'g_tTex24' (layout( rg32ui) uniform iimage2DArray)
+0:?     'g_tTex25' (layout( rg16ui) uniform iimage2DArray)
+0:?     '@entryPointOutput.Depth' ( out float FragDepth)
+0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
+
+// Module Version 10000
+// Generated by (magic number): 80007
+// Id's are bound by 160
+
+                              Capability Shader
+                              Capability Image1D
+                              Capability StorageImageExtendedFormats
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 29 33
+                              ExecutionMode 4 OriginUpperLeft
+                              ExecutionMode 4 DepthReplacing
+                              Source HLSL 500
+                              Name 4  "main"
+                              Name 8  "PS_OUTPUT"
+                              MemberName 8(PS_OUTPUT) 0  "Color"
+                              MemberName 8(PS_OUTPUT) 1  "Depth"
+                              Name 10  "@main("
+                              Name 13  "psout"
+                              Name 26  "flattenTemp"
+                              Name 29  "@entryPointOutput.Color"
+                              Name 33  "@entryPointOutput.Depth"
+                              Name 38  "g_sSamp"
+                              Name 41  "g_tTex1df4"
+                              Name 44  "g_tTex1di4"
+                              Name 48  "g_tTex1du4"
+                              Name 51  "g_tTex2df4"
+                              Name 54  "g_tTex2di4"
+                              Name 57  "g_tTex2du4"
+                              Name 60  "g_tTex3df4"
+                              Name 63  "g_tTex3di4"
+                              Name 66  "g_tTex3du4"
+                              Name 69  "g_tTex1df4a"
+                              Name 72  "g_tTex1di4a"
+                              Name 75  "g_tTex1du4a"
+                              Name 78  "g_tTex2df4a"
+                              Name 81  "g_tTex2di4a"
+                              Name 84  "g_tTex2du4a"
+                              Name 87  "g_tTex01"
+                              Name 90  "g_tTex02"
+                              Name 93  "g_tTex03"
+                              Name 96  "g_tTex04"
+                              Name 99  "g_tTex05"
+                              Name 102  "g_tTex06"
+                              Name 105  "g_tTex07"
+                              Name 108  "g_tTex08"
+                              Name 111  "g_tTex09"
+                              Name 114  "g_tTex10"
+                              Name 117  "g_tTex11"
+                              Name 120  "g_tTex12"
+                              Name 123  "g_tTex13"
+                              Name 126  "g_tTex14"
+                              Name 129  "g_tTex15"
+                              Name 132  "g_tTex16"
+                              Name 135  "g_tTex17"
+                              Name 138  "g_tTex18"
+                              Name 141  "g_tTex19"
+                              Name 144  "g_tTex20"
+                              Name 147  "g_tTex21"
+                              Name 150  "g_tTex22"
+                              Name 153  "g_tTex23"
+                              Name 156  "g_tTex24"
+                              Name 159  "g_tTex25"
+                              Decorate 29(@entryPointOutput.Color) Location 0
+                              Decorate 33(@entryPointOutput.Depth) BuiltIn FragDepth
+                              Decorate 38(g_sSamp) DescriptorSet 0
+                              Decorate 38(g_sSamp) Binding 0
+                              Decorate 41(g_tTex1df4) DescriptorSet 0
+                              Decorate 41(g_tTex1df4) Binding 0
+                              Decorate 44(g_tTex1di4) DescriptorSet 0
+                              Decorate 44(g_tTex1di4) Binding 0
+                              Decorate 48(g_tTex1du4) DescriptorSet 0
+                              Decorate 48(g_tTex1du4) Binding 0
+                              Decorate 51(g_tTex2df4) DescriptorSet 0
+                              Decorate 51(g_tTex2df4) Binding 0
+                              Decorate 54(g_tTex2di4) DescriptorSet 0
+                              Decorate 54(g_tTex2di4) Binding 0
+                              Decorate 57(g_tTex2du4) DescriptorSet 0
+                              Decorate 57(g_tTex2du4) Binding 0
+                              Decorate 60(g_tTex3df4) DescriptorSet 0
+                              Decorate 60(g_tTex3df4) Binding 0
+                              Decorate 60(g_tTex3df4) NonWritable
+                              Decorate 63(g_tTex3di4) DescriptorSet 0
+                              Decorate 63(g_tTex3di4) Binding 0
+                              Decorate 63(g_tTex3di4) NonReadable
+                              Decorate 66(g_tTex3du4) DescriptorSet 0
+                              Decorate 66(g_tTex3du4) Binding 0
+                              Decorate 66(g_tTex3du4) NonWritable
+                              Decorate 66(g_tTex3du4) NonReadable
+                              Decorate 69(g_tTex1df4a) DescriptorSet 0
+                              Decorate 69(g_tTex1df4a) Binding 0
+                              Decorate 72(g_tTex1di4a) DescriptorSet 0
+                              Decorate 72(g_tTex1di4a) Binding 0
+                              Decorate 75(g_tTex1du4a) DescriptorSet 0
+                              Decorate 75(g_tTex1du4a) Binding 0
+                              Decorate 78(g_tTex2df4a) DescriptorSet 0
+                              Decorate 78(g_tTex2df4a) Binding 0
+                              Decorate 81(g_tTex2di4a) DescriptorSet 0
+                              Decorate 81(g_tTex2di4a) Binding 0
+                              Decorate 84(g_tTex2du4a) DescriptorSet 0
+                              Decorate 84(g_tTex2du4a) Binding 0
+                              Decorate 87(g_tTex01) DescriptorSet 0
+                              Decorate 87(g_tTex01) Binding 0
+                              Decorate 90(g_tTex02) DescriptorSet 0
+                              Decorate 90(g_tTex02) Binding 0
+                              Decorate 93(g_tTex03) DescriptorSet 0
+                              Decorate 93(g_tTex03) Binding 0
+                              Decorate 96(g_tTex04) DescriptorSet 0
+                              Decorate 96(g_tTex04) Binding 0
+                              Decorate 99(g_tTex05) DescriptorSet 0
+                              Decorate 99(g_tTex05) Binding 0
+                              Decorate 102(g_tTex06) DescriptorSet 0
+                              Decorate 102(g_tTex06) Binding 0
+                              Decorate 105(g_tTex07) DescriptorSet 0
+                              Decorate 105(g_tTex07) Binding 0
+                              Decorate 108(g_tTex08) DescriptorSet 0
+                              Decorate 108(g_tTex08) Binding 0
+                              Decorate 111(g_tTex09) DescriptorSet 0
+                              Decorate 111(g_tTex09) Binding 0
+                              Decorate 114(g_tTex10) DescriptorSet 0
+                              Decorate 114(g_tTex10) Binding 0
+                              Decorate 117(g_tTex11) DescriptorSet 0
+                              Decorate 117(g_tTex11) Binding 0
+                              Decorate 120(g_tTex12) DescriptorSet 0
+                              Decorate 120(g_tTex12) Binding 0
+                              Decorate 123(g_tTex13) DescriptorSet 0
+                              Decorate 123(g_tTex13) Binding 0
+                              Decorate 126(g_tTex14) DescriptorSet 0
+                              Decorate 126(g_tTex14) Binding 0
+                              Decorate 129(g_tTex15) DescriptorSet 0
+                              Decorate 129(g_tTex15) Binding 0
+                              Decorate 132(g_tTex16) DescriptorSet 0
+                              Decorate 132(g_tTex16) Binding 0
+                              Decorate 135(g_tTex17) DescriptorSet 0
+                              Decorate 135(g_tTex17) Binding 0
+                              Decorate 138(g_tTex18) DescriptorSet 0
+                              Decorate 138(g_tTex18) Binding 0
+                              Decorate 141(g_tTex19) DescriptorSet 0
+                              Decorate 141(g_tTex19) Binding 0
+                              Decorate 144(g_tTex20) DescriptorSet 0
+                              Decorate 144(g_tTex20) Binding 0
+                              Decorate 147(g_tTex21) DescriptorSet 0
+                              Decorate 147(g_tTex21) Binding 0
+                              Decorate 150(g_tTex22) DescriptorSet 0
+                              Decorate 150(g_tTex22) Binding 0
+                              Decorate 153(g_tTex23) DescriptorSet 0
+                              Decorate 153(g_tTex23) Binding 0
+                              Decorate 156(g_tTex24) DescriptorSet 0
+                              Decorate 156(g_tTex24) Binding 0
+                              Decorate 159(g_tTex25) DescriptorSet 0
+                              Decorate 159(g_tTex25) Binding 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+    8(PS_OUTPUT):             TypeStruct 7(fvec4) 6(float)
+               9:             TypeFunction 8(PS_OUTPUT)
+              12:             TypePointer Function 8(PS_OUTPUT)
+              14:             TypeInt 32 1
+              15:     14(int) Constant 0
+              16:    6(float) Constant 1065353216
+              17:    7(fvec4) ConstantComposite 16 16 16 16
+              18:             TypePointer Function 7(fvec4)
+              20:     14(int) Constant 1
+              21:             TypePointer Function 6(float)
+              28:             TypePointer Output 7(fvec4)
+29(@entryPointOutput.Color):     28(ptr) Variable Output
+              32:             TypePointer Output 6(float)
+33(@entryPointOutput.Depth):     32(ptr) Variable Output
+              36:             TypeSampler
+              37:             TypePointer UniformConstant 36
+     38(g_sSamp):     37(ptr) Variable UniformConstant
+              39:             TypeImage 6(float) 1D nonsampled format:Rgba32f
+              40:             TypePointer UniformConstant 39
+  41(g_tTex1df4):     40(ptr) Variable UniformConstant
+              42:             TypeImage 14(int) 1D nonsampled format:Rg32f
+              43:             TypePointer UniformConstant 42
+  44(g_tTex1di4):     43(ptr) Variable UniformConstant
+              45:             TypeInt 32 0
+              46:             TypeImage 45(int) 1D nonsampled format:Rgba8Snorm
+              47:             TypePointer UniformConstant 46
+  48(g_tTex1du4):     47(ptr) Variable UniformConstant
+              49:             TypeImage 6(float) 2D nonsampled format:Rgba8i
+              50:             TypePointer UniformConstant 49
+  51(g_tTex2df4):     50(ptr) Variable UniformConstant
+              52:             TypeImage 14(int) 2D nonsampled format:R11fG11fB10f
+              53:             TypePointer UniformConstant 52
+  54(g_tTex2di4):     53(ptr) Variable UniformConstant
+              55:             TypeImage 45(int) 2D nonsampled format:R8Snorm
+              56:             TypePointer UniformConstant 55
+  57(g_tTex2du4):     56(ptr) Variable UniformConstant
+              58:             TypeImage 6(float) 3D nonsampled format:Rg8
+              59:             TypePointer UniformConstant 58
+  60(g_tTex3df4):     59(ptr) Variable UniformConstant
+              61:             TypeImage 14(int) 3D nonsampled format:Rgba16i
+              62:             TypePointer UniformConstant 61
+  63(g_tTex3di4):     62(ptr) Variable UniformConstant
+              64:             TypeImage 45(int) 3D nonsampled format:R8i
+              65:             TypePointer UniformConstant 64
+  66(g_tTex3du4):     65(ptr) Variable UniformConstant
+              67:             TypeImage 6(float) 1D array nonsampled format:Rgba8ui
+              68:             TypePointer UniformConstant 67
+ 69(g_tTex1df4a):     68(ptr) Variable UniformConstant
+              70:             TypeImage 14(int) 1D array nonsampled format:Rg32ui
+              71:             TypePointer UniformConstant 70
+ 72(g_tTex1di4a):     71(ptr) Variable UniformConstant
+              73:             TypeImage 45(int) 1D array nonsampled format:R16ui
+              74:             TypePointer UniformConstant 73
+ 75(g_tTex1du4a):     74(ptr) Variable UniformConstant
+              76:             TypeImage 6(float) 2D array nonsampled format:Rgb10a2ui
+              77:             TypePointer UniformConstant 76
+ 78(g_tTex2df4a):     77(ptr) Variable UniformConstant
+              79:             TypeImage 14(int) 2D array nonsampled format:R8ui
+              80:             TypePointer UniformConstant 79
+ 81(g_tTex2di4a):     80(ptr) Variable UniformConstant
+              82:             TypeImage 45(int) 2D array nonsampled format:Rgba16f
+              83:             TypePointer UniformConstant 82
+ 84(g_tTex2du4a):     83(ptr) Variable UniformConstant
+              85:             TypeImage 14(int) 2D array nonsampled format:Rgba8
+              86:             TypePointer UniformConstant 85
+    87(g_tTex01):     86(ptr) Variable UniformConstant
+              88:             TypeImage 14(int) 2D array nonsampled format:Rg16f
+              89:             TypePointer UniformConstant 88
+    90(g_tTex02):     89(ptr) Variable UniformConstant
+              91:             TypeImage 14(int) 2D array nonsampled format:R16f
+              92:             TypePointer UniformConstant 91
+    93(g_tTex03):     92(ptr) Variable UniformConstant
+              94:             TypeImage 14(int) 2D array nonsampled format:Rgb10A2
+              95:             TypePointer UniformConstant 94
+    96(g_tTex04):     95(ptr) Variable UniformConstant
+              97:             TypeImage 14(int) 2D array nonsampled format:Rg16
+              98:             TypePointer UniformConstant 97
+    99(g_tTex05):     98(ptr) Variable UniformConstant
+             100:             TypeImage 14(int) 2D array nonsampled format:R32f
+             101:             TypePointer UniformConstant 100
+   102(g_tTex06):    101(ptr) Variable UniformConstant
+             103:             TypeImage 14(int) 2D array nonsampled format:Rgba16
+             104:             TypePointer UniformConstant 103
+   105(g_tTex07):    104(ptr) Variable UniformConstant
+             106:             TypeImage 14(int) 2D array nonsampled format:R16
+             107:             TypePointer UniformConstant 106
+   108(g_tTex08):    107(ptr) Variable UniformConstant
+             109:             TypeImage 14(int) 2D array nonsampled format:R8
+             110:             TypePointer UniformConstant 109
+   111(g_tTex09):    110(ptr) Variable UniformConstant
+             112:             TypeImage 14(int) 2D array nonsampled format:Rgba16Snorm
+             113:             TypePointer UniformConstant 112
+   114(g_tTex10):    113(ptr) Variable UniformConstant
+             115:             TypeImage 14(int) 2D array nonsampled format:Rg16Snorm
+             116:             TypePointer UniformConstant 115
+   117(g_tTex11):    116(ptr) Variable UniformConstant
+             118:             TypeImage 14(int) 2D array nonsampled format:R16Snorm
+             119:             TypePointer UniformConstant 118
+   120(g_tTex12):    119(ptr) Variable UniformConstant
+             121:             TypeImage 14(int) 2D array nonsampled format:R8Snorm
+             122:             TypePointer UniformConstant 121
+   123(g_tTex13):    122(ptr) Variable UniformConstant
+             124:             TypeImage 14(int) 2D array nonsampled format:Rgba32i
+             125:             TypePointer UniformConstant 124
+   126(g_tTex14):    125(ptr) Variable UniformConstant
+             127:             TypeImage 14(int) 2D array nonsampled format:R32i
+             128:             TypePointer UniformConstant 127
+   129(g_tTex15):    128(ptr) Variable UniformConstant
+             130:             TypeImage 14(int) 2D array nonsampled format:R32ui
+             131:             TypePointer UniformConstant 130
+   132(g_tTex16):    131(ptr) Variable UniformConstant
+             133:             TypeImage 14(int) 2D array nonsampled format:Rg16i
+             134:             TypePointer UniformConstant 133
+   135(g_tTex17):    134(ptr) Variable UniformConstant
+             136:             TypeImage 14(int) 2D array nonsampled format:R16i
+             137:             TypePointer UniformConstant 136
+   138(g_tTex18):    137(ptr) Variable UniformConstant
+             139:             TypeImage 14(int) 2D array nonsampled format:Rg32i
+             140:             TypePointer UniformConstant 139
+   141(g_tTex19):    140(ptr) Variable UniformConstant
+             142:             TypeImage 14(int) 2D array nonsampled format:Rg8i
+             143:             TypePointer UniformConstant 142
+   144(g_tTex20):    143(ptr) Variable UniformConstant
+             145:             TypeImage 14(int) 2D array nonsampled format:Rg8ui
+             146:             TypePointer UniformConstant 145
+   147(g_tTex21):    146(ptr) Variable UniformConstant
+             148:             TypeImage 14(int) 2D array nonsampled format:Rgba32ui
+             149:             TypePointer UniformConstant 148
+   150(g_tTex22):    149(ptr) Variable UniformConstant
+             151:             TypeImage 14(int) 2D array nonsampled format:Rgba16ui
+             152:             TypePointer UniformConstant 151
+   153(g_tTex23):    152(ptr) Variable UniformConstant
+             154:             TypeImage 14(int) 2D array nonsampled format:Rg32ui
+             155:             TypePointer UniformConstant 154
+   156(g_tTex24):    155(ptr) Variable UniformConstant
+             157:             TypeImage 14(int) 2D array nonsampled format:Rg16ui
+             158:             TypePointer UniformConstant 157
+   159(g_tTex25):    158(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+ 26(flattenTemp):     12(ptr) Variable Function
+              27:8(PS_OUTPUT) FunctionCall 10(@main()
+                              Store 26(flattenTemp) 27
+              30:     18(ptr) AccessChain 26(flattenTemp) 15
+              31:    7(fvec4) Load 30
+                              Store 29(@entryPointOutput.Color) 31
+              34:     21(ptr) AccessChain 26(flattenTemp) 20
+              35:    6(float) Load 34
+                              Store 33(@entryPointOutput.Depth) 35
+                              Return
+                              FunctionEnd
+      10(@main():8(PS_OUTPUT) Function None 9
+              11:             Label
+       13(psout):     12(ptr) Variable Function
+              19:     18(ptr) AccessChain 13(psout) 15
+                              Store 19 17
+              22:     21(ptr) AccessChain 13(psout) 20
+                              Store 22 16
+              23:8(PS_OUTPUT) Load 13(psout)
+                              ReturnValue 23
+                              FunctionEnd

+ 63 - 0
3rdparty/glslang/Test/hlsl.format.rwtexture.frag

@@ -0,0 +1,63 @@
+SamplerState       g_sSamp : register(s0);
+
+[[spv::format_rgba32f]]    RWTexture1D <float4> g_tTex1df4 : register(t0);
+[[spv::format_rg32f]]      RWTexture1D <int4>   g_tTex1di4;
+[[spv::format_rgba8snorm]] RWTexture1D <uint4>  g_tTex1du4;
+
+[[spv::format_rgba8i]]       RWTexture2D <float4> g_tTex2df4;
+[[spv::format_r11fg11fb10f]] RWTexture2D <int4>   g_tTex2di4;
+[[spv::format_r8snorm]]      RWTexture2D <uint4>  g_tTex2du4;
+
+[[spv::format_rg8]] [[spv::nonwritable]]     RWTexture3D <float4> g_tTex3df4;
+[[spv::format_rgba16i]] [[spv::nonreadable]] RWTexture3D <int4>   g_tTex3di4;
+[[spv::format_r8i]] [[spv::nonwritable]] [[spv::nonreadable]] RWTexture3D <uint4>  g_tTex3du4;
+
+[[spv::format_rgba8ui]] RWTexture1DArray <float4> g_tTex1df4a;
+[[spv::format_rg32ui]]  RWTexture1DArray <int4>   g_tTex1di4a;
+[[spv::format_r16ui]]   RWTexture1DArray <uint4>  g_tTex1du4a;
+
+[[spv::format_rgb10a2ui]] RWTexture2DArray <float4> g_tTex2df4a;
+[[spv::format_r8ui]]      RWTexture2DArray <int4>   g_tTex2di4a;
+[[spv::format_rgba16f]]   RWTexture2DArray <uint4>  g_tTex2du4a;
+
+[[spv::format_rgba8         ]] RWTexture2DArray<int4> g_tTex01;
+[[spv::format_rg16f         ]] RWTexture2DArray<int4> g_tTex02;
+[[spv::format_r16f          ]] RWTexture2DArray<int4> g_tTex03;
+[[spv::format_rgb10a2       ]] RWTexture2DArray<int4> g_tTex04;
+[[spv::format_rg16          ]] RWTexture2DArray<int4> g_tTex05;
+[[spv::format_r32f          ]] RWTexture2DArray<int4> g_tTex06;
+[[spv::format_rgba16        ]] RWTexture2DArray<int4> g_tTex07;
+[[spv::format_r16           ]] RWTexture2DArray<int4> g_tTex08;
+[[spv::format_r8            ]] RWTexture2DArray<int4> g_tTex09;
+[[spv::format_rgba16snorm   ]] RWTexture2DArray<int4> g_tTex10;
+[[spv::format_rg16snorm     ]] RWTexture2DArray<int4> g_tTex11;
+[[spv::format_r16snorm      ]] RWTexture2DArray<int4> g_tTex12;
+[[spv::format_r8snorm       ]] RWTexture2DArray<int4> g_tTex13;
+[[spv::format_rgba32i       ]] RWTexture2DArray<int4> g_tTex14;
+[[spv::format_r32i          ]] RWTexture2DArray<int4> g_tTex15;
+[[spv::format_r32ui         ]] RWTexture2DArray<int4> g_tTex16;
+[[spv::format_rg16i         ]] RWTexture2DArray<int4> g_tTex17;
+[[spv::format_r16i          ]] RWTexture2DArray<int4> g_tTex18;
+[[spv::format_rg32i         ]] RWTexture2DArray<int4> g_tTex19;
+[[spv::format_rg8i          ]] RWTexture2DArray<int4> g_tTex20;
+[[spv::format_rg8ui         ]] RWTexture2DArray<int4> g_tTex21;
+[[spv::format_rgba32ui      ]] RWTexture2DArray<int4> g_tTex22;
+[[spv::format_rgba16ui      ]] RWTexture2DArray<int4> g_tTex23;
+[[spv::format_rg32ui        ]] RWTexture2DArray<int4> g_tTex24;
+[[spv::format_rg16ui        ]] RWTexture2DArray<int4> g_tTex25;
+
+struct PS_OUTPUT
+{
+    float4 Color : SV_Target0;
+    float  Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+   PS_OUTPUT psout;
+
+   psout.Color = 1.0;
+   psout.Depth = 1.0;
+
+   return psout;
+}

+ 43 - 1
3rdparty/glslang/glslang/MachineIndependent/Constant.cpp

@@ -76,7 +76,49 @@ namespace glslang {
         EatMaxIterations,
         EatIterationMultiple,
         EatPeelCount,
-        EatPartialCount
+        EatPartialCount,
+        EatFormatRgba32f,
+        EatFormatRgba16f,
+        EatFormatR32f,
+        EatFormatRgba8,
+        EatFormatRgba8Snorm,
+        EatFormatRg32f,
+        EatFormatRg16f,
+        EatFormatR11fG11fB10f,
+        EatFormatR16f,
+        EatFormatRgba16,
+        EatFormatRgb10A2,
+        EatFormatRg16,
+        EatFormatRg8,
+        EatFormatR16,
+        EatFormatR8,
+        EatFormatRgba16Snorm,
+        EatFormatRg16Snorm,
+        EatFormatRg8Snorm,
+        EatFormatR16Snorm,
+        EatFormatR8Snorm,
+        EatFormatRgba32i,
+        EatFormatRgba16i,
+        EatFormatRgba8i,
+        EatFormatR32i,
+        EatFormatRg32i,
+        EatFormatRg16i,
+        EatFormatRg8i,
+        EatFormatR16i,
+        EatFormatR8i,
+        EatFormatRgba32ui,
+        EatFormatRgba16ui,
+        EatFormatRgba8ui,
+        EatFormatR32ui,
+        EatFormatRgb10a2ui,
+        EatFormatRg32ui,
+        EatFormatRg16ui,
+        EatFormatRg8ui,
+        EatFormatR16ui,
+        EatFormatR8ui,
+        EatFormatUnknown,
+        EatNonWritable,
+        EatNonReadable
     };
 
     class TIntermAggregate;

+ 1 - 0
3rdparty/glslang/glslang/MachineIndependent/parseVersions.h

@@ -230,6 +230,7 @@ INSTANTIATE_TEST_CASE_P(
         {"hlsl.hull.void.tesc", "main"},
         {"hlsl.hull.ctrlpt-1.tesc", "main"},
         {"hlsl.hull.ctrlpt-2.tesc", "main"},
+        {"hlsl.format.rwtexture.frag", "main"},
         {"hlsl.groupid.comp", "main"},
         {"hlsl.identifier.sample.frag", "main"},
         {"hlsl.if.frag", "PixelShaderFunction"},

+ 43 - 0
3rdparty/glslang/hlsl/hlslAttributes.cpp

@@ -58,6 +58,49 @@ namespace glslang {
                 return EatConstantId;
             else if (name == "push_constant")
                 return EatPushConstant;
+        } else if (nameSpace == "spv") {
+            if (name == "format_rgba32f")       return EatFormatRgba32f;
+            if (name == "format_rgba16f")       return EatFormatRgba16f;
+            if (name == "format_r32f")          return EatFormatR32f;
+            if (name == "format_rgba8")         return EatFormatRgba8;
+            if (name == "format_rgba8snorm")    return EatFormatRgba8Snorm;
+            if (name == "format_rg32f")         return EatFormatRg32f;
+            if (name == "format_rg16f")         return EatFormatRg16f;
+            if (name == "format_r11fg11fb10f")  return EatFormatR11fG11fB10f;
+            if (name == "format_r16f")          return EatFormatR16f;
+            if (name == "format_rgba16")        return EatFormatRgba16;
+            if (name == "format_rgb10a2")       return EatFormatRgb10A2;
+            if (name == "format_rg16")          return EatFormatRg16;
+            if (name == "format_rg8")           return EatFormatRg8;
+            if (name == "format_r16")           return EatFormatR16;
+            if (name == "format_r8")            return EatFormatR8;
+            if (name == "format_rgba16snorm")   return EatFormatRgba16Snorm;
+            if (name == "format_rg16snorm")     return EatFormatRg16Snorm;
+            if (name == "format_rg8snorm")      return EatFormatRg8Snorm;
+            if (name == "format_r16snorm")      return EatFormatR16Snorm;
+            if (name == "format_r8snorm")       return EatFormatR8Snorm;
+            if (name == "format_rgba32i")       return EatFormatRgba32i;
+            if (name == "format_rgba16i")       return EatFormatRgba16i;
+            if (name == "format_rgba8i")        return EatFormatRgba8i;
+            if (name == "format_r32i")          return EatFormatR32i;
+            if (name == "format_rg32i")         return EatFormatRg32i;
+            if (name == "format_rg16i")         return EatFormatRg16i;
+            if (name == "format_rg8i")          return EatFormatRg8i;
+            if (name == "format_r16i")          return EatFormatR16i;
+            if (name == "format_r8i")           return EatFormatR8i;
+            if (name == "format_rgba32ui")      return EatFormatRgba32ui;
+            if (name == "format_rgba16ui")      return EatFormatRgba16ui;
+            if (name == "format_rgba8ui")       return EatFormatRgba8ui;
+            if (name == "format_r32ui")         return EatFormatR32ui;
+            if (name == "format_rgb10a2ui")     return EatFormatRgb10a2ui;
+            if (name == "format_rg32ui")        return EatFormatRg32ui;
+            if (name == "format_rg16ui")        return EatFormatRg16ui;
+            if (name == "format_rg8ui")         return EatFormatRg8ui;
+            if (name == "format_r16ui")         return EatFormatR16ui;
+            if (name == "format_r8ui")          return EatFormatR8ui;
+
+            if (name == "nonwritable")    return EatNonWritable;
+            if (name == "nonreadable")    return EatNonReadable;
         } else if (nameSpace.size() > 0)
             return EatNone;
 

+ 46 - 0
3rdparty/glslang/hlsl/hlslGrammar.cpp

@@ -1950,6 +1950,52 @@ void HlslParseContext::transferTypeAttributes(const TSourceLoc& loc, const TAttr
                 setSpecConstantId(loc, type.getQualifier(), value);
             }
             break;
+
+        // image formats
+        case EatFormatRgba32f:      type.getQualifier().layoutFormat = ElfRgba32f;      break;
+        case EatFormatRgba16f:      type.getQualifier().layoutFormat = ElfRgba16f;      break;
+        case EatFormatR32f:         type.getQualifier().layoutFormat = ElfR32f;         break;
+        case EatFormatRgba8:        type.getQualifier().layoutFormat = ElfRgba8;        break;
+        case EatFormatRgba8Snorm:   type.getQualifier().layoutFormat = ElfRgba8Snorm;   break;
+        case EatFormatRg32f:        type.getQualifier().layoutFormat = ElfRg32f;        break;
+        case EatFormatRg16f:        type.getQualifier().layoutFormat = ElfRg16f;        break;
+        case EatFormatR11fG11fB10f: type.getQualifier().layoutFormat = ElfR11fG11fB10f; break;
+        case EatFormatR16f:         type.getQualifier().layoutFormat = ElfR16f;         break;
+        case EatFormatRgba16:       type.getQualifier().layoutFormat = ElfRgba16;       break;
+        case EatFormatRgb10A2:      type.getQualifier().layoutFormat = ElfRgb10A2;      break;
+        case EatFormatRg16:         type.getQualifier().layoutFormat = ElfRg16;         break;
+        case EatFormatRg8:          type.getQualifier().layoutFormat = ElfRg8;          break;
+        case EatFormatR16:          type.getQualifier().layoutFormat = ElfR16;          break;
+        case EatFormatR8:           type.getQualifier().layoutFormat = ElfR8;           break;
+        case EatFormatRgba16Snorm:  type.getQualifier().layoutFormat = ElfRgba16Snorm;  break;
+        case EatFormatRg16Snorm:    type.getQualifier().layoutFormat = ElfRg16Snorm;    break;
+        case EatFormatRg8Snorm:     type.getQualifier().layoutFormat = ElfRg8Snorm;     break;
+        case EatFormatR16Snorm:     type.getQualifier().layoutFormat = ElfR16Snorm;     break;
+        case EatFormatR8Snorm:      type.getQualifier().layoutFormat = ElfR8Snorm;      break;
+        case EatFormatRgba32i:      type.getQualifier().layoutFormat = ElfRgba32i;      break;
+        case EatFormatRgba16i:      type.getQualifier().layoutFormat = ElfRgba16i;      break;
+        case EatFormatRgba8i:       type.getQualifier().layoutFormat = ElfRgba8i;       break;
+        case EatFormatR32i:         type.getQualifier().layoutFormat = ElfR32i;         break;
+        case EatFormatRg32i:        type.getQualifier().layoutFormat = ElfRg32i;        break;
+        case EatFormatRg16i:        type.getQualifier().layoutFormat = ElfRg16i;        break;
+        case EatFormatRg8i:         type.getQualifier().layoutFormat = ElfRg8i;         break;
+        case EatFormatR16i:         type.getQualifier().layoutFormat = ElfR16i;         break;
+        case EatFormatR8i:          type.getQualifier().layoutFormat = ElfR8i;          break;
+        case EatFormatRgba32ui:     type.getQualifier().layoutFormat = ElfRgba32ui;     break;
+        case EatFormatRgba16ui:     type.getQualifier().layoutFormat = ElfRgba16ui;     break;
+        case EatFormatRgba8ui:      type.getQualifier().layoutFormat = ElfRgba8ui;      break;
+        case EatFormatR32ui:        type.getQualifier().layoutFormat = ElfR32ui;        break;
+        case EatFormatRgb10a2ui:    type.getQualifier().layoutFormat = ElfRgb10a2ui;    break;
+        case EatFormatRg32ui:       type.getQualifier().layoutFormat = ElfRg32ui;       break;
+        case EatFormatRg16ui:       type.getQualifier().layoutFormat = ElfRg16ui;       break;
+        case EatFormatRg8ui:        type.getQualifier().layoutFormat = ElfRg8ui;        break;
+        case EatFormatR16ui:        type.getQualifier().layoutFormat = ElfR16ui;        break;
+        case EatFormatR8ui:         type.getQualifier().layoutFormat = ElfR8ui;         break;
+        case EatFormatUnknown:      type.getQualifier().layoutFormat = ElfNone;         break;
+
+        case EatNonWritable:  type.getQualifier().readonly = true;   break;
+        case EatNonReadable:  type.getQualifier().writeonly = true;  break;
+
         default:
             if (! allowEntry)
                 warn(loc, "attribute does not apply to a type", "", "");

+ 0 - 0
3rdparty/glslang/hlsl/hlslParseHelper.h