diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index 554ea8fa..e49b26e5 100755 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -322,7 +322,7 @@ void ProcessBindingBase(int& argc, char**& argv, glslang::TResourceType res) for (int lang = langMin; lang < langMax; ++lang) { if (!perSetBase.empty()) - baseBindingForSet[res][lang] = perSetBase; + baseBindingForSet[res][lang].insert(perSetBase.begin(), perSetBase.end()); else baseBinding[res][lang] = singleBase; } diff --git a/Test/baseResults/hlsl.shift.per-set.frag.out b/Test/baseResults/hlsl.shift.per-set.frag.out index f7ae02e3..7c7d3830 100644 --- a/Test/baseResults/hlsl.shift.per-set.frag.out +++ b/Test/baseResults/hlsl.shift.per-set.frag.out @@ -62,12 +62,13 @@ gl_FragCoord origin is upper left 0:56 'anon@1' (layout( binding=7 row_major std430) readonly buffer block{layout( row_major std430) buffer int tb1}) 0:56 Constant: 0:56 0 (const uint) -0:58 Branch: Return with expression -0:58 Constant: -0:58 0.000000 -0:58 0.000000 -0:58 0.000000 -0:58 0.000000 +0:57 'ts6' (layout( set=6 binding=1) uniform texture3D) +0:59 Branch: Return with expression +0:59 Constant: +0:59 0.000000 +0:59 0.000000 +0:59 0.000000 +0:59 0.000000 0:34 Function Definition: main( ( temp void) 0:34 Function Parameters: 0:? Sequence @@ -80,6 +81,7 @@ gl_FragCoord origin is upper left 0:? 't1' (layout( set=1 binding=1) uniform texture1D) 0:? 't2' (layout( set=1 binding=2) uniform texture2D) 0:? 't3' (layout( set=2 binding=1) uniform texture3D) +0:? 'ts6' (layout( set=6 binding=1) uniform texture3D) 0:? 't4' (layout( set=3 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:? 't5' (layout( set=3 binding=2 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:? 't6' (layout( set=3 binding=3 rgba32f) uniform textureBuffer) @@ -162,12 +164,13 @@ gl_FragCoord origin is upper left 0:56 'anon@1' (layout( binding=7 row_major std430) readonly buffer block{layout( row_major std430) buffer int tb1}) 0:56 Constant: 0:56 0 (const uint) -0:58 Branch: Return with expression -0:58 Constant: -0:58 0.000000 -0:58 0.000000 -0:58 0.000000 -0:58 0.000000 +0:57 'ts6' (layout( set=6 binding=1) uniform texture3D) +0:59 Branch: Return with expression +0:59 Constant: +0:59 0.000000 +0:59 0.000000 +0:59 0.000000 +0:59 0.000000 0:34 Function Definition: main( ( temp void) 0:34 Function Parameters: 0:? Sequence @@ -180,6 +183,7 @@ gl_FragCoord origin is upper left 0:? 't1' (layout( set=1 binding=1) uniform texture1D) 0:? 't2' (layout( set=1 binding=2) uniform texture2D) 0:? 't3' (layout( set=2 binding=1) uniform texture3D) +0:? 'ts6' (layout( set=6 binding=1) uniform texture3D) 0:? 't4' (layout( set=3 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:? 't5' (layout( set=3 binding=2 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:? 't6' (layout( set=3 binding=3 rgba32f) uniform textureBuffer) @@ -212,6 +216,7 @@ u5.@data: offset 0, type 1405, size 0, index 2, binding -1, stages 16 u6.@data: offset 0, type 1406, size 1, index 3, binding -1, stages 16 cb1: offset 0, type 1404, size 1, index 4, binding -1, stages 16 tb1: offset 0, type 1404, size 1, index 5, binding -1, stages 16 +ts6: offset -1, type 8b5f, size 1, index -1, binding 71, stages 16 Uniform block reflection: t4: offset -1, type ffffffff, size 0, index -1, binding 21, stages 0 diff --git a/Test/hlsl.shift.per-set.frag b/Test/hlsl.shift.per-set.frag old mode 100644 new mode 100755 index 9c29f9d9..d7c0243e --- a/Test/hlsl.shift.per-set.frag +++ b/Test/hlsl.shift.per-set.frag @@ -6,7 +6,7 @@ SamplerComparisonState s2 : register(s2, space2); Texture1D t1 : register(t1, space1); Texture2D t2 : register(t2, space1); Texture3D t3 : register(t1, space2); - +Texture3D ts6 : register(t1, space6); StructuredBuffer t4 : register(t1, space3); ByteAddressBuffer t5 : register(t2, space3); @@ -54,6 +54,7 @@ float4 main() : SV_Target0 cb1; tb1; + ts6; return 0; } diff --git a/Test/runtests b/Test/runtests index 8e6832dc..ddd77ce8 100755 --- a/Test/runtests +++ b/Test/runtests @@ -112,7 +112,7 @@ diff -b $BASEDIR/hlsl.explicitDescriptorSet-2.frag.out $TARGETDIR/hlsl.explicitD # Testing per-descriptor-set IO map shift # echo 'Testing per-descriptor-set IO map shift' -$EXE -e main --hlsl-iomap --ssb 10 1 15 2 --stb 20 --stb 25 2 --suavb 30 --suavb 40 2 --sub 50 6 -i -q -D -Od -V hlsl.shift.per-set.frag > $TARGETDIR/hlsl.shift.per-set.frag.out || HASERROR=1 +$EXE -e main --hlsl-iomap --ssb 10 1 15 2 --stb 20 --stb 25 2 --stb 70 6 --suavb 30 --suavb 40 2 --sub 50 6 -i -q -D -Od -V hlsl.shift.per-set.frag > $TARGETDIR/hlsl.shift.per-set.frag.out || HASERROR=1 diff -b $BASEDIR/hlsl.shift.per-set.frag.out $TARGETDIR/hlsl.shift.per-set.frag.out || HASERROR=1 #