diff --git a/Test/baseResults/hlsl.format.rwtexture.frag.out b/Test/baseResults/hlsl.format.rwtexture.frag.out old mode 100755 new mode 100644 index 2ecd5148..7ab53299 --- a/Test/baseResults/hlsl.format.rwtexture.frag.out +++ b/Test/baseResults/hlsl.format.rwtexture.frag.out @@ -3,47 +3,47 @@ Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence -0:30 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:30 Function Parameters: +0:56 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 Function Parameters: 0:? Sequence -0:33 move second child to first child ( temp 4-component vector of float) -0:33 Color: direct index for structure ( temp 4-component vector of float) -0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1.000000 -0:33 1.000000 -0:33 1.000000 -0:33 1.000000 -0:34 move second child to first child ( temp float) -0:34 Depth: direct index for structure ( temp float) -0:34 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1.000000 -0:36 Branch: Return with expression -0:36 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:30 Function Definition: main( ( temp void) -0:30 Function Parameters: +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:30 Sequence -0:30 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:30 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:30 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:30 move second child to first child ( temp 4-component vector of float) +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:30 Color: direct index for structure ( temp 4-component vector of float) -0:30 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:30 Constant: -0:30 0 (const int) -0:30 move second child to first child ( temp 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:30 Depth: direct index for structure ( temp float) -0:30 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:30 Constant: -0:30 1 (const int) +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) @@ -52,15 +52,40 @@ using depth_any 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) uniform image3D) -0:? 'g_tTex3di4' (layout( rgba16i) uniform iimage3D) -0:? 'g_tTex3du4' (layout( r8i) uniform uimage3D) +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) @@ -72,47 +97,47 @@ Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence -0:30 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:30 Function Parameters: +0:56 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 Function Parameters: 0:? Sequence -0:33 move second child to first child ( temp 4-component vector of float) -0:33 Color: direct index for structure ( temp 4-component vector of float) -0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:33 Constant: -0:33 0 (const int) -0:33 Constant: -0:33 1.000000 -0:33 1.000000 -0:33 1.000000 -0:33 1.000000 -0:34 move second child to first child ( temp float) -0:34 Depth: direct index for structure ( temp float) -0:34 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 1.000000 -0:36 Branch: Return with expression -0:36 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:30 Function Definition: main( ( temp void) -0:30 Function Parameters: +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:30 Sequence -0:30 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:30 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:30 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:30 move second child to first child ( temp 4-component vector of float) +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:30 Color: direct index for structure ( temp 4-component vector of float) -0:30 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:30 Constant: -0:30 0 (const int) -0:30 move second child to first child ( temp 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:30 Depth: direct index for structure ( temp float) -0:30 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) -0:30 Constant: -0:30 1 (const int) +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) @@ -121,21 +146,46 @@ using depth_any 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) uniform image3D) -0:? 'g_tTex3di4' (layout( rgba16i) uniform iimage3D) -0:? 'g_tTex3du4' (layout( r8i) uniform uimage3D) +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 85 +// Id's are bound by 160 Capability Shader Capability Image1D @@ -171,6 +221,31 @@ using depth_any 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 @@ -189,10 +264,14 @@ using depth_any 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 @@ -205,6 +284,56 @@ using depth_any 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 @@ -272,6 +401,81 @@ using depth_any 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 diff --git a/Test/hlsl.format.rwtexture.frag b/Test/hlsl.format.rwtexture.frag old mode 100755 new mode 100644 index d92f5906..87ee7de7 --- a/Test/hlsl.format.rwtexture.frag +++ b/Test/hlsl.format.rwtexture.frag @@ -8,9 +8,9 @@ SamplerState g_sSamp : register(s0); [[spv::format_r11fg11fb10f]] RWTexture2D g_tTex2di4; [[spv::format_r8snorm]] RWTexture2D g_tTex2du4; -[[spv::format_rg8]] RWTexture3D g_tTex3df4; -[[spv::format_rgba16i]] RWTexture3D g_tTex3di4; -[[spv::format_r8i]] RWTexture3D g_tTex3du4; +[[spv::format_rg8]] [[spv::nonwritable]] RWTexture3D g_tTex3df4; +[[spv::format_rgba16i]] [[spv::nonreadable]] RWTexture3D g_tTex3di4; +[[spv::format_r8i]] [[spv::nonwritable]] [[spv::nonreadable]] RWTexture3D g_tTex3du4; [[spv::format_rgba8ui]] RWTexture1DArray g_tTex1df4a; [[spv::format_rg32ui]] RWTexture1DArray g_tTex1di4a; @@ -20,6 +20,32 @@ SamplerState g_sSamp : register(s0); [[spv::format_r8ui]] RWTexture2DArray g_tTex2di4a; [[spv::format_rgba16f]] RWTexture2DArray g_tTex2du4a; +[[spv::format_rgba8 ]] RWTexture2DArray g_tTex01; +[[spv::format_rg16f ]] RWTexture2DArray g_tTex02; +[[spv::format_r16f ]] RWTexture2DArray g_tTex03; +[[spv::format_rgb10a2 ]] RWTexture2DArray g_tTex04; +[[spv::format_rg16 ]] RWTexture2DArray g_tTex05; +[[spv::format_r32f ]] RWTexture2DArray g_tTex06; +[[spv::format_rgba16 ]] RWTexture2DArray g_tTex07; +[[spv::format_r16 ]] RWTexture2DArray g_tTex08; +[[spv::format_r8 ]] RWTexture2DArray g_tTex09; +[[spv::format_rgba16snorm ]] RWTexture2DArray g_tTex10; +[[spv::format_rg16snorm ]] RWTexture2DArray g_tTex11; +[[spv::format_r16snorm ]] RWTexture2DArray g_tTex12; +[[spv::format_r8snorm ]] RWTexture2DArray g_tTex13; +[[spv::format_rgba32i ]] RWTexture2DArray g_tTex14; +[[spv::format_r32i ]] RWTexture2DArray g_tTex15; +[[spv::format_r32ui ]] RWTexture2DArray g_tTex16; +[[spv::format_rg16i ]] RWTexture2DArray g_tTex17; +[[spv::format_r16i ]] RWTexture2DArray g_tTex18; +[[spv::format_rg32i ]] RWTexture2DArray g_tTex19; +[[spv::format_rg8i ]] RWTexture2DArray g_tTex20; +[[spv::format_rg8ui ]] RWTexture2DArray g_tTex21; +[[spv::format_rgba32ui ]] RWTexture2DArray g_tTex22; +[[spv::format_rgba16ui ]] RWTexture2DArray g_tTex23; +[[spv::format_rg32ui ]] RWTexture2DArray g_tTex24; +[[spv::format_rg16ui ]] RWTexture2DArray g_tTex25; + struct PS_OUTPUT { float4 Color : SV_Target0; diff --git a/glslang/MachineIndependent/attribute.h b/glslang/MachineIndependent/attribute.h index 92f3d634..38a943d2 100644 --- a/glslang/MachineIndependent/attribute.h +++ b/glslang/MachineIndependent/attribute.h @@ -116,7 +116,9 @@ namespace glslang { EatFormatRg8ui, EatFormatR16ui, EatFormatR8ui, - EatFormatUnknown + EatFormatUnknown, + EatNonWritable, + EatNonReadable }; class TIntermAggregate; diff --git a/hlsl/hlslAttributes.cpp b/hlsl/hlslAttributes.cpp index 05d4ae36..0cc0d3f4 100644 --- a/hlsl/hlslAttributes.cpp +++ b/hlsl/hlslAttributes.cpp @@ -98,7 +98,9 @@ namespace glslang { if (name == "format_rg8ui") return EatFormatRg8ui; if (name == "format_r16ui") return EatFormatR16ui; if (name == "format_r8ui") return EatFormatR8ui; - return EatFormatUnknown; + + if (name == "nonwritable") return EatNonWritable; + if (name == "nonreadable") return EatNonReadable; } else if (nameSpace.size() > 0) return EatNone; diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 8d389f5d..be665ac0 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1993,6 +1993,9 @@ void HlslParseContext::transferTypeAttributes(const TSourceLoc& loc, const TAttr 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", "", "");