Fix #1471: Merge shift amounts for different sets: --stb ... --std ...
diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp
index 554ea8f..e49b26e 100755
--- a/StandAlone/StandAlone.cpp
+++ b/StandAlone/StandAlone.cpp
@@ -322,7 +322,7 @@
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 f7ae02e..7c7d383 100644
--- a/Test/baseResults/hlsl.shift.per-set.frag.out
+++ b/Test/baseResults/hlsl.shift.per-set.frag.out
@@ -62,12 +62,13 @@
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 @@
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 @@
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 @@
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 @@
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 9c29f9d..d7c0243
--- a/Test/hlsl.shift.per-set.frag
+++ b/Test/hlsl.shift.per-set.frag
@@ -6,7 +6,7 @@
Texture1D <float4> t1 : register(t1, space1);
Texture2D <float4> t2 : register(t2, space1);
Texture3D <float4> t3 : register(t1, space2);
-
+Texture3D <float4> ts6 : register(t1, space6);
StructuredBuffer<float4> t4 : register(t1, space3);
ByteAddressBuffer t5 : register(t2, space3);
@@ -54,6 +54,7 @@
cb1;
tb1;
+ ts6;
return 0;
}
diff --git a/Test/runtests b/Test/runtests
index 8e6832d..ddd77ce 100755
--- a/Test/runtests
+++ b/Test/runtests
@@ -112,7 +112,7 @@
# 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
#