diff --git a/Test/baseResults/hlsl.intrinsics.promote.frag.out b/Test/baseResults/hlsl.intrinsics.promote.frag.out index d372bc61..6e3b6dfc 100644 --- a/Test/baseResults/hlsl.intrinsics.promote.frag.out +++ b/Test/baseResults/hlsl.intrinsics.promote.frag.out @@ -342,7 +342,7 @@ gl_FragCoord origin is upper left 0:51 'r50' ( temp float) 0:51 Construct float ( temp float) 0:? imageLoad ( temp 4-component vector of float) -0:51 'g_tTexbfs' (layout( r32f) uniform imageBuffer) +0:51 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) 0:51 Convert uint to int ( temp int) 0:51 upos: direct index for structure (layout( offset=48) uniform uint) 0:51 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int i, layout( offset=4) uniform uint u, layout( offset=8) uniform float f, layout( offset=12) uniform bool b, layout( offset=16) uniform 2-component vector of int i2, layout( offset=24) uniform 2-component vector of uint u2, layout( offset=32) uniform 2-component vector of float f2, layout( offset=40) uniform 2-component vector of bool b2, layout( offset=48) uniform uint upos, layout( offset=52) uniform float fpos}) @@ -353,7 +353,7 @@ gl_FragCoord origin is upper left 0:52 'r51' ( temp float) 0:52 Construct float ( temp float) 0:? imageLoad ( temp 4-component vector of float) -0:52 'g_tTexbfs' (layout( r32f) uniform imageBuffer) +0:52 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) 0:52 Convert float to int ( temp int) 0:52 fpos: direct index for structure (layout( offset=52) uniform float) 0:52 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int i, layout( offset=4) uniform uint u, layout( offset=8) uniform float f, layout( offset=12) uniform bool b, layout( offset=16) uniform 2-component vector of int i2, layout( offset=24) uniform 2-component vector of uint u2, layout( offset=32) uniform 2-component vector of float f2, layout( offset=40) uniform 2-component vector of bool b2, layout( offset=48) uniform uint upos, layout( offset=52) uniform float fpos}) @@ -436,7 +436,7 @@ gl_FragCoord origin is upper left 0:20 Constant: 0:20 0 (const int) 0:? Linker Objects -0:? 'g_tTexbfs' (layout( r32f) uniform imageBuffer) +0:? 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) 0:? 'g_tTex1df4' ( uniform texture1D) 0:? 'color' (layout( location=0) out 4-component vector of float) 0:? 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int i, layout( offset=4) uniform uint u, layout( offset=8) uniform float f, layout( offset=12) uniform bool b, layout( offset=16) uniform 2-component vector of int i2, layout( offset=24) uniform 2-component vector of uint u2, layout( offset=32) uniform 2-component vector of float f2, layout( offset=40) uniform 2-component vector of bool b2, layout( offset=48) uniform uint upos, layout( offset=52) uniform float fpos}) @@ -788,7 +788,7 @@ gl_FragCoord origin is upper left 0:51 'r50' ( temp float) 0:51 Construct float ( temp float) 0:? imageLoad ( temp 4-component vector of float) -0:51 'g_tTexbfs' (layout( r32f) uniform imageBuffer) +0:51 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) 0:51 Convert uint to int ( temp int) 0:51 upos: direct index for structure (layout( offset=48) uniform uint) 0:51 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int i, layout( offset=4) uniform uint u, layout( offset=8) uniform float f, layout( offset=12) uniform bool b, layout( offset=16) uniform 2-component vector of int i2, layout( offset=24) uniform 2-component vector of uint u2, layout( offset=32) uniform 2-component vector of float f2, layout( offset=40) uniform 2-component vector of bool b2, layout( offset=48) uniform uint upos, layout( offset=52) uniform float fpos}) @@ -799,7 +799,7 @@ gl_FragCoord origin is upper left 0:52 'r51' ( temp float) 0:52 Construct float ( temp float) 0:? imageLoad ( temp 4-component vector of float) -0:52 'g_tTexbfs' (layout( r32f) uniform imageBuffer) +0:52 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) 0:52 Convert float to int ( temp int) 0:52 fpos: direct index for structure (layout( offset=52) uniform float) 0:52 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int i, layout( offset=4) uniform uint u, layout( offset=8) uniform float f, layout( offset=12) uniform bool b, layout( offset=16) uniform 2-component vector of int i2, layout( offset=24) uniform 2-component vector of uint u2, layout( offset=32) uniform 2-component vector of float f2, layout( offset=40) uniform 2-component vector of bool b2, layout( offset=48) uniform uint upos, layout( offset=52) uniform float fpos}) @@ -882,7 +882,7 @@ gl_FragCoord origin is upper left 0:20 Constant: 0:20 0 (const int) 0:? Linker Objects -0:? 'g_tTexbfs' (layout( r32f) uniform imageBuffer) +0:? 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) 0:? 'g_tTex1df4' ( uniform texture1D) 0:? 'color' (layout( location=0) out 4-component vector of float) 0:? 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int i, layout( offset=4) uniform uint u, layout( offset=8) uniform float f, layout( offset=12) uniform bool b, layout( offset=16) uniform 2-component vector of int i2, layout( offset=24) uniform 2-component vector of uint u2, layout( offset=32) uniform 2-component vector of float f2, layout( offset=40) uniform 2-component vector of bool b2, layout( offset=48) uniform uint upos, layout( offset=52) uniform float fpos}) @@ -964,6 +964,7 @@ gl_FragCoord origin is upper left Decorate 19($Global) Block Decorate 21 DescriptorSet 0 Decorate 258(g_tTexbfs) DescriptorSet 0 + Decorate 258(g_tTexbfs) NonWritable Decorate 277(g_tTex1df4) DescriptorSet 0 Decorate 319(color) Location 0 2: TypeVoid diff --git a/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out b/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out index 284f0af9..5a922db5 100644 --- a/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out +++ b/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out @@ -94,7 +94,7 @@ gl_FragCoord origin is upper left 0:20 Constant: 0:20 0 (const int) 0:? Linker Objects -0:? 'g_tTexbfs' (layout( r32f) uniform imageBuffer) +0:? 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) 0:? 'g_tTex1df4' ( uniform texture1D) 0:? 'color' (layout( location=0) out 4-component vector of float) 0:? 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int i, layout( offset=4) uniform uint u, layout( offset=8) uniform float f, layout( offset=12) uniform bool b, layout( offset=16) uniform 2-component vector of int i2, layout( offset=24) uniform 2-component vector of uint u2, layout( offset=32) uniform 2-component vector of float f2, layout( offset=40) uniform 2-component vector of bool b2, layout( offset=48) uniform uint upos, layout( offset=52) uniform float fpos}) @@ -198,7 +198,7 @@ gl_FragCoord origin is upper left 0:20 Constant: 0:20 0 (const int) 0:? Linker Objects -0:? 'g_tTexbfs' (layout( r32f) uniform imageBuffer) +0:? 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) 0:? 'g_tTex1df4' ( uniform texture1D) 0:? 'color' (layout( location=0) out 4-component vector of float) 0:? 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int i, layout( offset=4) uniform uint u, layout( offset=8) uniform float f, layout( offset=12) uniform bool b, layout( offset=16) uniform 2-component vector of int i2, layout( offset=24) uniform 2-component vector of uint u2, layout( offset=32) uniform 2-component vector of float f2, layout( offset=40) uniform 2-component vector of bool b2, layout( offset=48) uniform uint upos, layout( offset=52) uniform float fpos}) @@ -258,6 +258,7 @@ gl_FragCoord origin is upper left Decorate 31(g_tTex1df4) DescriptorSet 0 Decorate 74(color) Location 0 Decorate 79(g_tTexbfs) DescriptorSet 0 + Decorate 79(g_tTexbfs) NonWritable 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index e867e266..298818b9 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -9,7 +9,7 @@ gl_FragCoord origin is upper left 0:28 move second child to first child ( temp 4-component vector of float) 0:28 'r00' ( temp 4-component vector of float) 0:28 imageLoad ( temp 4-component vector of float) -0:28 'g_tTexbf4' (layout( rgba32f) uniform imageBuffer) +0:28 'g_tTexbf4' (layout( rgba32f) readonly uniform imageBuffer) 0:28 c1: direct index for structure (layout( offset=0) uniform int) 0:28 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int c1, layout( offset=8) uniform 2-component vector of int c2, layout( offset=16) uniform 3-component vector of int c3, layout( offset=32) uniform 4-component vector of int c4, layout( offset=48) uniform int o1, layout( offset=56) uniform 2-component vector of int o2, layout( offset=64) uniform 3-component vector of int o3, layout( offset=80) uniform 4-component vector of int o4}) 0:28 Constant: @@ -18,7 +18,7 @@ gl_FragCoord origin is upper left 0:29 move second child to first child ( temp 4-component vector of int) 0:29 'r01' ( temp 4-component vector of int) 0:29 imageLoad ( temp 4-component vector of int) -0:29 'g_tTexbi4' (layout( rgba32i) uniform iimageBuffer) +0:29 'g_tTexbi4' (layout( rgba32i) readonly uniform iimageBuffer) 0:29 c1: direct index for structure (layout( offset=0) uniform int) 0:29 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int c1, layout( offset=8) uniform 2-component vector of int c2, layout( offset=16) uniform 3-component vector of int c3, layout( offset=32) uniform 4-component vector of int c4, layout( offset=48) uniform int o1, layout( offset=56) uniform 2-component vector of int o2, layout( offset=64) uniform 3-component vector of int o3, layout( offset=80) uniform 4-component vector of int o4}) 0:29 Constant: @@ -27,7 +27,7 @@ gl_FragCoord origin is upper left 0:30 move second child to first child ( temp 4-component vector of uint) 0:30 'r02' ( temp 4-component vector of uint) 0:30 imageLoad ( temp 4-component vector of uint) -0:30 'g_tTexbu4' (layout( rgba32ui) uniform uimageBuffer) +0:30 'g_tTexbu4' (layout( rgba32ui) readonly uniform uimageBuffer) 0:30 c1: direct index for structure (layout( offset=0) uniform int) 0:30 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int c1, layout( offset=8) uniform 2-component vector of int c2, layout( offset=16) uniform 3-component vector of int c3, layout( offset=32) uniform 4-component vector of int c4, layout( offset=48) uniform int o1, layout( offset=56) uniform 2-component vector of int o2, layout( offset=64) uniform 3-component vector of int o3, layout( offset=80) uniform 4-component vector of int o4}) 0:30 Constant: @@ -71,10 +71,10 @@ gl_FragCoord origin is upper left 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects -0:? 'g_tTexbf4_test' (layout( binding=0 rgba32f) uniform imageBuffer) -0:? 'g_tTexbf4' (layout( rgba32f) uniform imageBuffer) -0:? 'g_tTexbi4' (layout( rgba32i) uniform iimageBuffer) -0:? 'g_tTexbu4' (layout( rgba32ui) uniform uimageBuffer) +0:? 'g_tTexbf4_test' (layout( binding=0 rgba32f) readonly uniform imageBuffer) +0:? 'g_tTexbf4' (layout( rgba32f) readonly uniform imageBuffer) +0:? 'g_tTexbi4' (layout( rgba32i) readonly uniform iimageBuffer) +0:? 'g_tTexbu4' (layout( rgba32ui) readonly uniform uimageBuffer) 0:? 'Color' (layout( location=0) out 4-component vector of float) 0:? 'Depth' ( out float FragDepth) 0:? 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int c1, layout( offset=8) uniform 2-component vector of int c2, layout( offset=16) uniform 3-component vector of int c3, layout( offset=32) uniform 4-component vector of int c4, layout( offset=48) uniform int o1, layout( offset=56) uniform 2-component vector of int o2, layout( offset=64) uniform 3-component vector of int o3, layout( offset=80) uniform 4-component vector of int o4}) @@ -93,7 +93,7 @@ gl_FragCoord origin is upper left 0:28 move second child to first child ( temp 4-component vector of float) 0:28 'r00' ( temp 4-component vector of float) 0:28 imageLoad ( temp 4-component vector of float) -0:28 'g_tTexbf4' (layout( rgba32f) uniform imageBuffer) +0:28 'g_tTexbf4' (layout( rgba32f) readonly uniform imageBuffer) 0:28 c1: direct index for structure (layout( offset=0) uniform int) 0:28 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int c1, layout( offset=8) uniform 2-component vector of int c2, layout( offset=16) uniform 3-component vector of int c3, layout( offset=32) uniform 4-component vector of int c4, layout( offset=48) uniform int o1, layout( offset=56) uniform 2-component vector of int o2, layout( offset=64) uniform 3-component vector of int o3, layout( offset=80) uniform 4-component vector of int o4}) 0:28 Constant: @@ -102,7 +102,7 @@ gl_FragCoord origin is upper left 0:29 move second child to first child ( temp 4-component vector of int) 0:29 'r01' ( temp 4-component vector of int) 0:29 imageLoad ( temp 4-component vector of int) -0:29 'g_tTexbi4' (layout( rgba32i) uniform iimageBuffer) +0:29 'g_tTexbi4' (layout( rgba32i) readonly uniform iimageBuffer) 0:29 c1: direct index for structure (layout( offset=0) uniform int) 0:29 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int c1, layout( offset=8) uniform 2-component vector of int c2, layout( offset=16) uniform 3-component vector of int c3, layout( offset=32) uniform 4-component vector of int c4, layout( offset=48) uniform int o1, layout( offset=56) uniform 2-component vector of int o2, layout( offset=64) uniform 3-component vector of int o3, layout( offset=80) uniform 4-component vector of int o4}) 0:29 Constant: @@ -111,7 +111,7 @@ gl_FragCoord origin is upper left 0:30 move second child to first child ( temp 4-component vector of uint) 0:30 'r02' ( temp 4-component vector of uint) 0:30 imageLoad ( temp 4-component vector of uint) -0:30 'g_tTexbu4' (layout( rgba32ui) uniform uimageBuffer) +0:30 'g_tTexbu4' (layout( rgba32ui) readonly uniform uimageBuffer) 0:30 c1: direct index for structure (layout( offset=0) uniform int) 0:30 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int c1, layout( offset=8) uniform 2-component vector of int c2, layout( offset=16) uniform 3-component vector of int c3, layout( offset=32) uniform 4-component vector of int c4, layout( offset=48) uniform int o1, layout( offset=56) uniform 2-component vector of int o2, layout( offset=64) uniform 3-component vector of int o3, layout( offset=80) uniform 4-component vector of int o4}) 0:30 Constant: @@ -155,10 +155,10 @@ gl_FragCoord origin is upper left 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects -0:? 'g_tTexbf4_test' (layout( binding=0 rgba32f) uniform imageBuffer) -0:? 'g_tTexbf4' (layout( rgba32f) uniform imageBuffer) -0:? 'g_tTexbi4' (layout( rgba32i) uniform iimageBuffer) -0:? 'g_tTexbu4' (layout( rgba32ui) uniform uimageBuffer) +0:? 'g_tTexbf4_test' (layout( binding=0 rgba32f) readonly uniform imageBuffer) +0:? 'g_tTexbf4' (layout( rgba32f) readonly uniform imageBuffer) +0:? 'g_tTexbi4' (layout( rgba32i) readonly uniform iimageBuffer) +0:? 'g_tTexbu4' (layout( rgba32ui) readonly uniform uimageBuffer) 0:? 'Color' (layout( location=0) out 4-component vector of float) 0:? 'Depth' ( out float FragDepth) 0:? 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int c1, layout( offset=8) uniform 2-component vector of int c2, layout( offset=16) uniform 3-component vector of int c3, layout( offset=32) uniform 4-component vector of int c4, layout( offset=48) uniform int o1, layout( offset=56) uniform 2-component vector of int o2, layout( offset=64) uniform 3-component vector of int o3, layout( offset=80) uniform 4-component vector of int o4}) @@ -200,6 +200,7 @@ gl_FragCoord origin is upper left Name 68 "Depth" Name 71 "g_tTexbf4_test" Decorate 16(g_tTexbf4) DescriptorSet 0 + Decorate 16(g_tTexbf4) NonWritable MemberDecorate 22($Global) 0 Offset 0 MemberDecorate 22($Global) 1 Offset 8 MemberDecorate 22($Global) 2 Offset 16 @@ -211,11 +212,14 @@ gl_FragCoord origin is upper left Decorate 22($Global) Block Decorate 24 DescriptorSet 0 Decorate 34(g_tTexbi4) DescriptorSet 0 + Decorate 34(g_tTexbi4) NonWritable Decorate 45(g_tTexbu4) DescriptorSet 0 + Decorate 45(g_tTexbu4) NonWritable Decorate 64(Color) Location 0 Decorate 68(Depth) BuiltIn FragDepth Decorate 71(g_tTexbf4_test) DescriptorSet 0 Decorate 71(g_tTexbf4_test) Binding 0 + Decorate 71(g_tTexbf4_test) NonWritable 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out index 721d8a11..77da1b95 100644 --- a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out @@ -10,7 +10,7 @@ gl_FragCoord origin is upper left 0:28 'r00' ( temp float) 0:28 Construct float ( temp float) 0:? imageLoad ( temp 4-component vector of float) -0:28 'g_tTexbfs' (layout( r32f) uniform imageBuffer) +0:28 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) 0:28 c1: direct index for structure (layout( offset=0) uniform int) 0:28 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int c1, layout( offset=8) uniform 2-component vector of int c2, layout( offset=16) uniform 3-component vector of int c3, layout( offset=32) uniform 4-component vector of int c4, layout( offset=48) uniform int o1, layout( offset=56) uniform 2-component vector of int o2, layout( offset=64) uniform 3-component vector of int o3, layout( offset=80) uniform 4-component vector of int o4}) 0:28 Constant: @@ -20,7 +20,7 @@ gl_FragCoord origin is upper left 0:29 'r01' ( temp int) 0:29 Construct int ( temp int) 0:? imageLoad ( temp 4-component vector of int) -0:29 'g_tTexbis' (layout( r32i) uniform iimageBuffer) +0:29 'g_tTexbis' (layout( r32i) readonly uniform iimageBuffer) 0:29 c1: direct index for structure (layout( offset=0) uniform int) 0:29 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int c1, layout( offset=8) uniform 2-component vector of int c2, layout( offset=16) uniform 3-component vector of int c3, layout( offset=32) uniform 4-component vector of int c4, layout( offset=48) uniform int o1, layout( offset=56) uniform 2-component vector of int o2, layout( offset=64) uniform 3-component vector of int o3, layout( offset=80) uniform 4-component vector of int o4}) 0:29 Constant: @@ -30,7 +30,7 @@ gl_FragCoord origin is upper left 0:30 'r02' ( temp uint) 0:30 Construct uint ( temp uint) 0:? imageLoad ( temp 4-component vector of uint) -0:30 'g_tTexbus' (layout( r32ui) uniform uimageBuffer) +0:30 'g_tTexbus' (layout( r32ui) readonly uniform uimageBuffer) 0:30 c1: direct index for structure (layout( offset=0) uniform int) 0:30 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int c1, layout( offset=8) uniform 2-component vector of int c2, layout( offset=16) uniform 3-component vector of int c3, layout( offset=32) uniform 4-component vector of int c4, layout( offset=48) uniform int o1, layout( offset=56) uniform 2-component vector of int o2, layout( offset=64) uniform 3-component vector of int o3, layout( offset=80) uniform 4-component vector of int o4}) 0:30 Constant: @@ -74,10 +74,10 @@ gl_FragCoord origin is upper left 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects -0:? 'g_tTexbfs_test' (layout( binding=0 r32f) uniform imageBuffer) -0:? 'g_tTexbfs' (layout( r32f) uniform imageBuffer) -0:? 'g_tTexbis' (layout( r32i) uniform iimageBuffer) -0:? 'g_tTexbus' (layout( r32ui) uniform uimageBuffer) +0:? 'g_tTexbfs_test' (layout( binding=0 r32f) readonly uniform imageBuffer) +0:? 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) +0:? 'g_tTexbis' (layout( r32i) readonly uniform iimageBuffer) +0:? 'g_tTexbus' (layout( r32ui) readonly uniform uimageBuffer) 0:? 'Color' (layout( location=0) out 4-component vector of float) 0:? 'Depth' ( out float FragDepth) 0:? 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int c1, layout( offset=8) uniform 2-component vector of int c2, layout( offset=16) uniform 3-component vector of int c3, layout( offset=32) uniform 4-component vector of int c4, layout( offset=48) uniform int o1, layout( offset=56) uniform 2-component vector of int o2, layout( offset=64) uniform 3-component vector of int o3, layout( offset=80) uniform 4-component vector of int o4}) @@ -97,7 +97,7 @@ gl_FragCoord origin is upper left 0:28 'r00' ( temp float) 0:28 Construct float ( temp float) 0:? imageLoad ( temp 4-component vector of float) -0:28 'g_tTexbfs' (layout( r32f) uniform imageBuffer) +0:28 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) 0:28 c1: direct index for structure (layout( offset=0) uniform int) 0:28 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int c1, layout( offset=8) uniform 2-component vector of int c2, layout( offset=16) uniform 3-component vector of int c3, layout( offset=32) uniform 4-component vector of int c4, layout( offset=48) uniform int o1, layout( offset=56) uniform 2-component vector of int o2, layout( offset=64) uniform 3-component vector of int o3, layout( offset=80) uniform 4-component vector of int o4}) 0:28 Constant: @@ -107,7 +107,7 @@ gl_FragCoord origin is upper left 0:29 'r01' ( temp int) 0:29 Construct int ( temp int) 0:? imageLoad ( temp 4-component vector of int) -0:29 'g_tTexbis' (layout( r32i) uniform iimageBuffer) +0:29 'g_tTexbis' (layout( r32i) readonly uniform iimageBuffer) 0:29 c1: direct index for structure (layout( offset=0) uniform int) 0:29 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int c1, layout( offset=8) uniform 2-component vector of int c2, layout( offset=16) uniform 3-component vector of int c3, layout( offset=32) uniform 4-component vector of int c4, layout( offset=48) uniform int o1, layout( offset=56) uniform 2-component vector of int o2, layout( offset=64) uniform 3-component vector of int o3, layout( offset=80) uniform 4-component vector of int o4}) 0:29 Constant: @@ -117,7 +117,7 @@ gl_FragCoord origin is upper left 0:30 'r02' ( temp uint) 0:30 Construct uint ( temp uint) 0:? imageLoad ( temp 4-component vector of uint) -0:30 'g_tTexbus' (layout( r32ui) uniform uimageBuffer) +0:30 'g_tTexbus' (layout( r32ui) readonly uniform uimageBuffer) 0:30 c1: direct index for structure (layout( offset=0) uniform int) 0:30 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int c1, layout( offset=8) uniform 2-component vector of int c2, layout( offset=16) uniform 3-component vector of int c3, layout( offset=32) uniform 4-component vector of int c4, layout( offset=48) uniform int o1, layout( offset=56) uniform 2-component vector of int o2, layout( offset=64) uniform 3-component vector of int o3, layout( offset=80) uniform 4-component vector of int o4}) 0:30 Constant: @@ -161,10 +161,10 @@ gl_FragCoord origin is upper left 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects -0:? 'g_tTexbfs_test' (layout( binding=0 r32f) uniform imageBuffer) -0:? 'g_tTexbfs' (layout( r32f) uniform imageBuffer) -0:? 'g_tTexbis' (layout( r32i) uniform iimageBuffer) -0:? 'g_tTexbus' (layout( r32ui) uniform uimageBuffer) +0:? 'g_tTexbfs_test' (layout( binding=0 r32f) readonly uniform imageBuffer) +0:? 'g_tTexbfs' (layout( r32f) readonly uniform imageBuffer) +0:? 'g_tTexbis' (layout( r32i) readonly uniform iimageBuffer) +0:? 'g_tTexbus' (layout( r32ui) readonly uniform uimageBuffer) 0:? 'Color' (layout( location=0) out 4-component vector of float) 0:? 'Depth' ( out float FragDepth) 0:? 'anon@0' (layout( row_major std140) uniform block{layout( offset=0) uniform int c1, layout( offset=8) uniform 2-component vector of int c2, layout( offset=16) uniform 3-component vector of int c3, layout( offset=32) uniform 4-component vector of int c4, layout( offset=48) uniform int o1, layout( offset=56) uniform 2-component vector of int o2, layout( offset=64) uniform 3-component vector of int o3, layout( offset=80) uniform 4-component vector of int o4}) @@ -206,6 +206,7 @@ gl_FragCoord origin is upper left Name 71 "Depth" Name 74 "g_tTexbfs_test" Decorate 16(g_tTexbfs) DescriptorSet 0 + Decorate 16(g_tTexbfs) NonWritable MemberDecorate 22($Global) 0 Offset 0 MemberDecorate 22($Global) 1 Offset 8 MemberDecorate 22($Global) 2 Offset 16 @@ -217,11 +218,14 @@ gl_FragCoord origin is upper left Decorate 22($Global) Block Decorate 24 DescriptorSet 0 Decorate 35(g_tTexbis) DescriptorSet 0 + Decorate 35(g_tTexbis) NonWritable Decorate 46(g_tTexbus) DescriptorSet 0 + Decorate 46(g_tTexbus) NonWritable Decorate 67(Color) Location 0 Decorate 71(Depth) BuiltIn FragDepth Decorate 74(g_tTexbfs_test) DescriptorSet 0 Decorate 74(g_tTexbfs_test) Binding 0 + Decorate 74(g_tTexbfs_test) NonWritable 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.multiEntry.vert.out b/Test/baseResults/hlsl.multiEntry.vert.out index 740e6af5..4873a458 100755 --- a/Test/baseResults/hlsl.multiEntry.vert.out +++ b/Test/baseResults/hlsl.multiEntry.vert.out @@ -7,7 +7,7 @@ Shader version: 450 0:? Sequence 0:5 Branch: Return with expression 0:5 imageLoad ( temp 4-component vector of float) -0:5 'Position' (layout( rgba32f) uniform imageBuffer) +0:5 'Position' (layout( rgba32f) readonly uniform imageBuffer) 0:5 Convert uint to int ( temp int) 0:5 'Index' ( in uint) 0:9 Function Definition: @RealEntrypoint(u1; ( temp 4-component vector of float) @@ -28,7 +28,7 @@ Shader version: 450 0:9 Function Call: @RealEntrypoint(u1; ( temp 4-component vector of float) 0:? 'Index' ( temp uint) 0:? Linker Objects -0:? 'Position' (layout( rgba32f) uniform imageBuffer) +0:? 'Position' (layout( rgba32f) readonly uniform imageBuffer) 0:? '@entryPointOutput' ( out 4-component vector of float Position) 0:? 'Index' ( in uint VertexIndex) @@ -44,7 +44,7 @@ Shader version: 450 0:? Sequence 0:5 Branch: Return with expression 0:5 imageLoad ( temp 4-component vector of float) -0:5 'Position' (layout( rgba32f) uniform imageBuffer) +0:5 'Position' (layout( rgba32f) readonly uniform imageBuffer) 0:5 Convert uint to int ( temp int) 0:5 'Index' ( in uint) 0:9 Function Definition: @RealEntrypoint(u1; ( temp 4-component vector of float) @@ -65,7 +65,7 @@ Shader version: 450 0:9 Function Call: @RealEntrypoint(u1; ( temp 4-component vector of float) 0:? 'Index' ( temp uint) 0:? Linker Objects -0:? 'Position' (layout( rgba32f) uniform imageBuffer) +0:? 'Position' (layout( rgba32f) readonly uniform imageBuffer) 0:? '@entryPointOutput' ( out 4-component vector of float Position) 0:? 'Index' ( in uint VertexIndex) @@ -90,6 +90,7 @@ Shader version: 450 Name 37 "@entryPointOutput" Name 38 "param" Decorate 19(Position) DescriptorSet 0 + Decorate 19(Position) NonWritable Decorate 34(Index) BuiltIn VertexIndex Decorate 37(@entryPointOutput) BuiltIn Position 2: TypeVoid diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 12cd1b88..a7d2f82a 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -545,6 +545,10 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type, TIntermNode*& nodeList) qualifier.layoutFormat = type.getQualifier().layoutFormat; qualifier.precision = type.getQualifier().precision; + // Propagate sampler readonly qualifier for buffers + if (type.getBasicType() == EbtSampler) + qualifier.readonly = type.getQualifier().readonly; + if (type.getQualifier().storage == EvqVaryingOut || type.getQualifier().storage == EvqBuffer) { qualifier.storage = type.getQualifier().storage; @@ -1188,9 +1192,8 @@ bool HlslGrammar::acceptTextureType(TType& type) sampler.vectorSize = txType.getVectorSize(); type.shallowCopy(TType(sampler, EvqUniform, arraySizes)); - type.getQualifier().layoutFormat = format; - // TODO: this is not being passed through to the SPIR-V OpTypeImage access qualifier. + type.getQualifier().layoutFormat = format; type.getQualifier().readonly = readonly; return true;