Tests: More broadly use automapping binding/location.

This adds or changes binding/location decorations in 100s of shaders.
It also allows more output (spv.register.autoassign.rangetest.frag)
due to allowing ioMap() to fail.
diff --git a/Test/baseLegalResults/hlsl.aliasOpaque.frag.out b/Test/baseLegalResults/hlsl.aliasOpaque.frag.out
index ff171e5..2afdb10 100644
--- a/Test/baseLegalResults/hlsl.aliasOpaque.frag.out
+++ b/Test/baseLegalResults/hlsl.aliasOpaque.frag.out
@@ -16,7 +16,7 @@
                               Decorate 47(gss) DescriptorSet 0
                               Decorate 47(gss) Binding 0
                               Decorate 51(gtex) DescriptorSet 0
-                              Decorate 51(gtex) Binding 0
+                              Decorate 51(gtex) Binding 2
                               Decorate 62(@entryPointOutput) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseLegalResults/hlsl.flattenOpaque.frag.out b/Test/baseLegalResults/hlsl.flattenOpaque.frag.out
index 3334cbf..7bb33e6 100644
--- a/Test/baseLegalResults/hlsl.flattenOpaque.frag.out
+++ b/Test/baseLegalResults/hlsl.flattenOpaque.frag.out
@@ -18,11 +18,11 @@
                               Decorate 38(tex) DescriptorSet 0
                               Decorate 38(tex) Binding 0
                               Decorate 82(s.s2D) DescriptorSet 0
-                              Decorate 82(s.s2D) Binding 0
+                              Decorate 82(s.s2D) Binding 1
                               Decorate 97(s2.s2D) DescriptorSet 0
-                              Decorate 97(s2.s2D) Binding 0
+                              Decorate 97(s2.s2D) Binding 2
                               Decorate 100(s2.tex) DescriptorSet 0
-                              Decorate 100(s2.tex) Binding 0
+                              Decorate 100(s2.tex) Binding 3
                               Decorate 120(@entryPointOutput) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out b/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out
index 4841146..0e8583f 100644
--- a/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out
+++ b/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out
@@ -15,7 +15,7 @@
                               Decorate 43(g_tInputTexture_sampler) DescriptorSet 0
                               Decorate 43(g_tInputTexture_sampler) Binding 0
                               Decorate 47(g_tInputTexture) DescriptorSet 0
-                              Decorate 47(g_tInputTexture) Binding 0
+                              Decorate 47(g_tInputTexture) Binding 1
                               Decorate 80(@entryPointOutput) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out b/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out
index fc7446a..fe858ef 100644
--- a/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out
+++ b/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out
@@ -15,7 +15,7 @@
                               Decorate 44(g_tInputTexture_sampler) DescriptorSet 0
                               Decorate 44(g_tInputTexture_sampler) Binding 0
                               Decorate 47(g_tInputTexture) DescriptorSet 0
-                              Decorate 47(g_tInputTexture) Binding 0
+                              Decorate 47(g_tInputTexture) Binding 1
                               Decorate 57(@entryPointOutput) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseLegalResults/hlsl.flattenSubset.frag.out b/Test/baseLegalResults/hlsl.flattenSubset.frag.out
index 5c436d0..0edf712 100644
--- a/Test/baseLegalResults/hlsl.flattenSubset.frag.out
+++ b/Test/baseLegalResults/hlsl.flattenSubset.frag.out
@@ -17,7 +17,7 @@
                               Decorate 21(samp) DescriptorSet 0
                               Decorate 21(samp) Binding 0
                               Decorate 33(tex) DescriptorSet 0
-                              Decorate 33(tex) Binding 0
+                              Decorate 33(tex) Binding 1
                               Decorate 47(vpos) Location 0
                               Decorate 50(@entryPointOutput) Location 0
                2:             TypeVoid
diff --git a/Test/baseResults/hlsl.aliasOpaque.frag.out b/Test/baseResults/hlsl.aliasOpaque.frag.out
index 29671d7..9218a82 100644
--- a/Test/baseResults/hlsl.aliasOpaque.frag.out
+++ b/Test/baseResults/hlsl.aliasOpaque.frag.out
@@ -167,11 +167,11 @@
                               Name 56  "param"
                               Name 62  "@entryPointOutput"
                               Decorate 44(gss2) DescriptorSet 0
-                              Decorate 44(gss2) Binding 0
+                              Decorate 44(gss2) Binding 1
                               Decorate 47(gss) DescriptorSet 0
                               Decorate 47(gss) Binding 0
                               Decorate 51(gtex) DescriptorSet 0
-                              Decorate 51(gtex) Binding 0
+                              Decorate 51(gtex) Binding 2
                               Decorate 62(@entryPointOutput) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/hlsl.array.flatten.frag.out b/Test/baseResults/hlsl.array.flatten.frag.out
index baa1ff1..5b99f5d 100644
--- a/Test/baseResults/hlsl.array.flatten.frag.out
+++ b/Test/baseResults/hlsl.array.flatten.frag.out
@@ -393,17 +393,17 @@
                               Name 141  "g_samp_explicit[1]"
                               Name 142  "g_samp_explicit[2]"
                               Decorate 42(g_tex[1]) DescriptorSet 0
-                              Decorate 42(g_tex[1]) Binding 0
+                              Decorate 42(g_tex[1]) Binding 4
                               Decorate 45(g_samp[1]) DescriptorSet 0
-                              Decorate 45(g_samp[1]) Binding 0
+                              Decorate 45(g_samp[1]) Binding 10
                               Decorate 65(g_samp[0]) DescriptorSet 0
-                              Decorate 65(g_samp[0]) Binding 0
+                              Decorate 65(g_samp[0]) Binding 9
                               Decorate 70(g_samp[2]) DescriptorSet 0
-                              Decorate 70(g_samp[2]) Binding 0
+                              Decorate 70(g_samp[2]) Binding 11
                               Decorate 74(g_tex[0]) DescriptorSet 0
                               Decorate 74(g_tex[0]) Binding 0
                               Decorate 79(g_tex[2]) DescriptorSet 0
-                              Decorate 79(g_tex[2]) Binding 0
+                              Decorate 79(g_tex[2]) Binding 8
                               Decorate 88 ArrayStride 48
                               Decorate 89 ArrayStride 48
                               Decorate 90 ArrayStride 16
@@ -416,7 +416,7 @@
                               MemberDecorate 91($Global) 2 Offset 384
                               Decorate 91($Global) Block
                               Decorate 93 DescriptorSet 0
-                              Decorate 93 Binding 0
+                              Decorate 93 Binding 12
                               Decorate 134(ps_output.color) Location 0
                               Decorate 137(g_tex_explicit[0]) DescriptorSet 0
                               Decorate 137(g_tex_explicit[0]) Binding 1
diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out
index 29581cb..04a783c 100644
--- a/Test/baseResults/hlsl.buffer.frag.out
+++ b/Test/baseResults/hlsl.buffer.frag.out
@@ -197,7 +197,7 @@
                               MemberDecorate 24(cbufName2) 0 Offset 0
                               Decorate 24(cbufName2) Block
                               Decorate 26 DescriptorSet 0
-                              Decorate 26 Binding 0
+                              Decorate 26 Binding 3
                               MemberDecorate 31(buf1) 0 Offset 0
                               Decorate 31(buf1) Block
                               Decorate 33 DescriptorSet 0
@@ -206,12 +206,12 @@
                               MemberDecorate 37(buf2) 0 Offset 0
                               Decorate 37(buf2) BufferBlock
                               Decorate 39 DescriptorSet 0
-                              Decorate 39 Binding 0
+                              Decorate 39 Binding 1
                               MemberDecorate 43(cbufName) 0 Offset 0
                               MemberDecorate 43(cbufName) 1 Offset 20
                               Decorate 43(cbufName) Block
                               Decorate 45 DescriptorSet 0
-                              Decorate 45 Binding 0
+                              Decorate 45 Binding 2
                               MemberDecorate 50(tbufName) 0 NonWritable
                               MemberDecorate 50(tbufName) 0 Offset 16
                               MemberDecorate 50(tbufName) 1 NonWritable
diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out
index 0039354..4ee2481 100644
--- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out
+++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out
@@ -405,21 +405,21 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 33(g_tTex1di4a) DescriptorSet 0
-                              Decorate 33(g_tTex1di4a) Binding 0
+                              Decorate 33(g_tTex1di4a) Binding 2
                               Decorate 45(g_tTex1du4a) DescriptorSet 0
-                              Decorate 45(g_tTex1du4a) Binding 0
+                              Decorate 45(g_tTex1du4a) Binding 3
                               Decorate 56(g_tTex2df4a) DescriptorSet 0
-                              Decorate 56(g_tTex2df4a) Binding 0
+                              Decorate 56(g_tTex2df4a) Binding 4
                               Decorate 67(g_tTex2di4a) DescriptorSet 0
-                              Decorate 67(g_tTex2di4a) Binding 0
+                              Decorate 67(g_tTex2di4a) Binding 5
                               Decorate 79(g_tTex2du4a) DescriptorSet 0
-                              Decorate 79(g_tTex2du4a) Binding 0
+                              Decorate 79(g_tTex2du4a) Binding 6
                               Decorate 92(g_tTexcdf4a) DescriptorSet 0
-                              Decorate 92(g_tTexcdf4a) Binding 0
+                              Decorate 92(g_tTexcdf4a) Binding 7
                               Decorate 104(g_tTexcdi4a) DescriptorSet 0
-                              Decorate 104(g_tTexcdi4a) Binding 0
+                              Decorate 104(g_tTexcdi4a) Binding 8
                               Decorate 115(g_tTexcdu4a) DescriptorSet 0
-                              Decorate 115(g_tTexcdu4a) Binding 0
+                              Decorate 115(g_tTexcdu4a) Binding 9
                               Decorate 140(@entryPointOutput.Color) Location 0
                               Decorate 144(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 147(g_tTex1df4) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
index 6615fb8..6abe22c 100644
--- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
+++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
@@ -405,21 +405,21 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 33(g_tTex1di4a) DescriptorSet 0
-                              Decorate 33(g_tTex1di4a) Binding 0
+                              Decorate 33(g_tTex1di4a) Binding 2
                               Decorate 45(g_tTex1du4a) DescriptorSet 0
-                              Decorate 45(g_tTex1du4a) Binding 0
+                              Decorate 45(g_tTex1du4a) Binding 3
                               Decorate 56(g_tTex2df4a) DescriptorSet 0
-                              Decorate 56(g_tTex2df4a) Binding 0
+                              Decorate 56(g_tTex2df4a) Binding 4
                               Decorate 67(g_tTex2di4a) DescriptorSet 0
-                              Decorate 67(g_tTex2di4a) Binding 0
+                              Decorate 67(g_tTex2di4a) Binding 5
                               Decorate 79(g_tTex2du4a) DescriptorSet 0
-                              Decorate 79(g_tTex2du4a) Binding 0
+                              Decorate 79(g_tTex2du4a) Binding 6
                               Decorate 92(g_tTexcdf4a) DescriptorSet 0
-                              Decorate 92(g_tTexcdf4a) Binding 0
+                              Decorate 92(g_tTexcdf4a) Binding 7
                               Decorate 104(g_tTexcdi4a) DescriptorSet 0
-                              Decorate 104(g_tTexcdi4a) Binding 0
+                              Decorate 104(g_tTexcdi4a) Binding 8
                               Decorate 115(g_tTexcdu4a) DescriptorSet 0
-                              Decorate 115(g_tTexcdu4a) Binding 0
+                              Decorate 115(g_tTexcdu4a) Binding 9
                               Decorate 140(@entryPointOutput.Color) Location 0
                               Decorate 144(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 147(g_tTex1df4) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.constantbuffer.frag.out b/Test/baseResults/hlsl.constantbuffer.frag.out
index 04a05fb..12e819b 100644
--- a/Test/baseResults/hlsl.constantbuffer.frag.out
+++ b/Test/baseResults/hlsl.constantbuffer.frag.out
@@ -160,7 +160,7 @@
                               MemberDecorate 12(cb3) 1 Offset 4
                               Decorate 12(cb3) Block
                               Decorate 18(cb3) DescriptorSet 0
-                              Decorate 18(cb3) Binding 0
+                              Decorate 18(cb3) Binding 1
                               MemberDecorate 31(cb1) 0 Offset 0
                               Decorate 31(cb1) Block
                               Decorate 33(cb1) DescriptorSet 0
@@ -170,7 +170,7 @@
                               MemberDecorate 46(cbuff) 0 Offset 0
                               Decorate 46(cbuff) Block
                               Decorate 48 DescriptorSet 0
-                              Decorate 48 Binding 0
+                              Decorate 48 Binding 2
                               Decorate 64(@entryPointOutput) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/hlsl.flattenOpaque.frag.out b/Test/baseResults/hlsl.flattenOpaque.frag.out
index dc4a8e3..d63caf5 100644
--- a/Test/baseResults/hlsl.flattenOpaque.frag.out
+++ b/Test/baseResults/hlsl.flattenOpaque.frag.out
@@ -339,11 +339,11 @@
                               Decorate 38(tex) DescriptorSet 0
                               Decorate 38(tex) Binding 0
                               Decorate 82(s.s2D) DescriptorSet 0
-                              Decorate 82(s.s2D) Binding 0
+                              Decorate 82(s.s2D) Binding 1
                               Decorate 97(s2.s2D) DescriptorSet 0
-                              Decorate 97(s2.s2D) Binding 0
+                              Decorate 97(s2.s2D) Binding 2
                               Decorate 100(s2.tex) DescriptorSet 0
-                              Decorate 100(s2.tex) Binding 0
+                              Decorate 100(s2.tex) Binding 3
                               Decorate 120(@entryPointOutput) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/hlsl.flattenOpaqueInit.vert.out b/Test/baseResults/hlsl.flattenOpaqueInit.vert.out
index e79f265..d27cadc 100644
--- a/Test/baseResults/hlsl.flattenOpaqueInit.vert.out
+++ b/Test/baseResults/hlsl.flattenOpaqueInit.vert.out
@@ -195,7 +195,7 @@
                               Decorate 43(g_tInputTexture_sampler) DescriptorSet 0
                               Decorate 43(g_tInputTexture_sampler) Binding 0
                               Decorate 47(g_tInputTexture) DescriptorSet 0
-                              Decorate 47(g_tInputTexture) Binding 0
+                              Decorate 47(g_tInputTexture) Binding 1
                               Decorate 80(@entryPointOutput) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out b/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out
index 46e2455..04f7009 100644
--- a/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out
+++ b/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out
@@ -131,7 +131,7 @@
                               Decorate 44(g_tInputTexture_sampler) DescriptorSet 0
                               Decorate 44(g_tInputTexture_sampler) Binding 0
                               Decorate 47(g_tInputTexture) DescriptorSet 0
-                              Decorate 47(g_tInputTexture) Binding 0
+                              Decorate 47(g_tInputTexture) Binding 1
                               Decorate 57(@entryPointOutput) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/hlsl.flattenSubset.frag.out b/Test/baseResults/hlsl.flattenSubset.frag.out
index 885352c..7ec229a 100644
--- a/Test/baseResults/hlsl.flattenSubset.frag.out
+++ b/Test/baseResults/hlsl.flattenSubset.frag.out
@@ -154,7 +154,7 @@
                               Decorate 21(samp) DescriptorSet 0
                               Decorate 21(samp) Binding 0
                               Decorate 33(tex) DescriptorSet 0
-                              Decorate 33(tex) Binding 0
+                              Decorate 33(tex) Binding 1
                               Decorate 47(vpos) Location 0
                               Decorate 50(@entryPointOutput) Location 0
                2:             TypeVoid
diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out
index ece24d7..b679ac4 100644
--- a/Test/baseResults/hlsl.gather.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out
@@ -301,19 +301,19 @@
                               Name 120  "g_tTex1di4a"
                               Name 123  "g_tTex1du4a"
                               Decorate 16(g_tTex2df4a) DescriptorSet 0
-                              Decorate 16(g_tTex2df4a) Binding 0
+                              Decorate 16(g_tTex2df4a) Binding 2
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 37(g_tTex2di4a) DescriptorSet 0
-                              Decorate 37(g_tTex2di4a) Binding 0
+                              Decorate 37(g_tTex2di4a) Binding 3
                               Decorate 52(g_tTex2du4a) DescriptorSet 0
-                              Decorate 52(g_tTex2du4a) Binding 0
+                              Decorate 52(g_tTex2du4a) Binding 4
                               Decorate 64(g_tTexcdf4a) DescriptorSet 0
-                              Decorate 64(g_tTexcdf4a) Binding 0
+                              Decorate 64(g_tTexcdf4a) Binding 5
                               Decorate 74(g_tTexcdi4a) DescriptorSet 0
-                              Decorate 74(g_tTexcdi4a) Binding 0
+                              Decorate 74(g_tTexcdi4a) Binding 6
                               Decorate 84(g_tTexcdu4a) DescriptorSet 0
-                              Decorate 84(g_tTexcdu4a) Binding 0
+                              Decorate 84(g_tTexcdu4a) Binding 7
                               Decorate 107(@entryPointOutput.Color) Location 0
                               Decorate 111(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 116(g_tTex1df4a) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out
index 2225e8b..c80c10f 100644
--- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out
@@ -300,19 +300,19 @@
                               Name 131  "g_tTex3di4"
                               Name 134  "g_tTex3du4"
                               Decorate 16(g_tTex2df4) DescriptorSet 0
-                              Decorate 16(g_tTex2df4) Binding 0
+                              Decorate 16(g_tTex2df4) Binding 2
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 36(g_tTex2di4) DescriptorSet 0
-                              Decorate 36(g_tTex2di4) Binding 0
+                              Decorate 36(g_tTex2di4) Binding 3
                               Decorate 51(g_tTex2du4) DescriptorSet 0
-                              Decorate 51(g_tTex2du4) Binding 0
+                              Decorate 51(g_tTex2du4) Binding 4
                               Decorate 63(g_tTexcdf4) DescriptorSet 0
-                              Decorate 63(g_tTexcdf4) Binding 0
+                              Decorate 63(g_tTexcdf4) Binding 5
                               Decorate 74(g_tTexcdi4) DescriptorSet 0
-                              Decorate 74(g_tTexcdi4) Binding 0
+                              Decorate 74(g_tTexcdi4) Binding 6
                               Decorate 84(g_tTexcdu4) DescriptorSet 0
-                              Decorate 84(g_tTexcdu4) Binding 0
+                              Decorate 84(g_tTexcdu4) Binding 7
                               Decorate 108(@entryPointOutput.Color) Location 0
                               Decorate 112(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 115(g_sSamp2d) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out
index 590956a..fd0c958 100644
--- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out
@@ -257,19 +257,19 @@
                               Name 122  "g_tTex3di4"
                               Name 125  "g_tTex3du4"
                               Decorate 16(g_tTex2df4) DescriptorSet 0
-                              Decorate 16(g_tTex2df4) Binding 0
+                              Decorate 16(g_tTex2df4) Binding 2
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 36(g_tTex2di4) DescriptorSet 0
-                              Decorate 36(g_tTex2di4) Binding 0
+                              Decorate 36(g_tTex2di4) Binding 3
                               Decorate 51(g_tTex2du4) DescriptorSet 0
-                              Decorate 51(g_tTex2du4) Binding 0
+                              Decorate 51(g_tTex2du4) Binding 4
                               Decorate 63(g_tTexcdf4) DescriptorSet 0
-                              Decorate 63(g_tTexcdf4) Binding 0
+                              Decorate 63(g_tTexcdf4) Binding 5
                               Decorate 74(g_tTexcdi4) DescriptorSet 0
-                              Decorate 74(g_tTexcdi4) Binding 0
+                              Decorate 74(g_tTexcdi4) Binding 6
                               Decorate 84(g_tTexcdu4) DescriptorSet 0
-                              Decorate 84(g_tTexcdu4) Binding 0
+                              Decorate 84(g_tTexcdu4) Binding 7
                               Decorate 103(@entryPointOutput.Pos) BuiltIn Position
                               Decorate 106(g_sSamp2d) DescriptorSet 0
                               Decorate 106(g_sSamp2d) Binding 0
diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out
index 7db4f23..4e40f72 100644
--- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out
@@ -246,13 +246,13 @@
                               Name 110  "g_tTexcdi4"
                               Name 113  "g_tTexcdu4"
                               Decorate 16(g_tTex2df4) DescriptorSet 0
-                              Decorate 16(g_tTex2df4) Binding 0
+                              Decorate 16(g_tTex2df4) Binding 2
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 39(g_tTex2di4) DescriptorSet 0
-                              Decorate 39(g_tTex2di4) Binding 0
+                              Decorate 39(g_tTex2di4) Binding 3
                               Decorate 55(g_tTex2du4) DescriptorSet 0
-                              Decorate 55(g_tTex2du4) Binding 0
+                              Decorate 55(g_tTex2du4) Binding 4
                               Decorate 79(@entryPointOutput.Color) Location 0
                               Decorate 83(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 88(g_tTex1df4a) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
index fb1f759..54b693f 100644
--- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
@@ -234,13 +234,13 @@
                               Name 93  "g_tTex1di4"
                               Name 96  "g_tTex1du4"
                               Decorate 16(g_tTex2df4) DescriptorSet 0
-                              Decorate 16(g_tTex2df4) Binding 0
+                              Decorate 16(g_tTex2df4) Binding 2
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 40(g_tTex2di4) DescriptorSet 0
-                              Decorate 40(g_tTex2di4) Binding 0
+                              Decorate 40(g_tTex2di4) Binding 3
                               Decorate 55(g_tTex2du4) DescriptorSet 0
-                              Decorate 55(g_tTex2du4) Binding 0
+                              Decorate 55(g_tTex2du4) Binding 4
                               Decorate 80(@entryPointOutput.Color) Location 0
                               Decorate 84(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 89(g_tTex1df4a) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
index 396670d..75ea036 100644
--- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
@@ -813,7 +813,7 @@
                               Name 251  "g_tTex1di4a"
                               Name 254  "g_tTex1du4a"
                               Decorate 16(g_tTex2df4a) DescriptorSet 0
-                              Decorate 16(g_tTex2df4a) Binding 0
+                              Decorate 16(g_tTex2df4a) Binding 1
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               MemberDecorate 26($Global) 0 Offset 0
@@ -822,17 +822,17 @@
                               MemberDecorate 26($Global) 3 Offset 32
                               Decorate 26($Global) Block
                               Decorate 28 DescriptorSet 0
-                              Decorate 28 Binding 0
+                              Decorate 28 Binding 7
                               Decorate 41(g_tTex2di4a) DescriptorSet 0
-                              Decorate 41(g_tTex2di4a) Binding 0
+                              Decorate 41(g_tTex2di4a) Binding 2
                               Decorate 55(g_tTex2du4a) DescriptorSet 0
-                              Decorate 55(g_tTex2du4a) Binding 0
+                              Decorate 55(g_tTex2du4a) Binding 3
                               Decorate 131(g_tTexcdf4a) DescriptorSet 0
-                              Decorate 131(g_tTexcdf4a) Binding 0
+                              Decorate 131(g_tTexcdf4a) Binding 4
                               Decorate 143(g_tTexcdi4a) DescriptorSet 0
-                              Decorate 143(g_tTexcdi4a) Binding 0
+                              Decorate 143(g_tTexcdi4a) Binding 5
                               Decorate 154(g_tTexcdu4a) DescriptorSet 0
-                              Decorate 154(g_tTexcdu4a) Binding 0
+                              Decorate 154(g_tTexcdu4a) Binding 6
                               Decorate 238(@entryPointOutput.Color) Location 0
                               Decorate 242(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 245(g_sSamp2d) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
index 8e95bd6..886ad73 100644
--- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
@@ -824,7 +824,7 @@
                               Name 261  "g_tTex3di4"
                               Name 264  "g_tTex3du4"
                               Decorate 16(g_tTex2df4) DescriptorSet 0
-                              Decorate 16(g_tTex2df4) Binding 0
+                              Decorate 16(g_tTex2df4) Binding 2
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               MemberDecorate 26($Global) 0 Offset 0
@@ -833,17 +833,17 @@
                               MemberDecorate 26($Global) 3 Offset 32
                               Decorate 26($Global) Block
                               Decorate 28 DescriptorSet 0
-                              Decorate 28 Binding 0
+                              Decorate 28 Binding 8
                               Decorate 41(g_tTex2di4) DescriptorSet 0
-                              Decorate 41(g_tTex2di4) Binding 0
+                              Decorate 41(g_tTex2di4) Binding 3
                               Decorate 55(g_tTex2du4) DescriptorSet 0
-                              Decorate 55(g_tTex2du4) Binding 0
+                              Decorate 55(g_tTex2du4) Binding 4
                               Decorate 131(g_tTexcdf4) DescriptorSet 0
-                              Decorate 131(g_tTexcdf4) Binding 0
+                              Decorate 131(g_tTexcdf4) Binding 5
                               Decorate 143(g_tTexcdi4) DescriptorSet 0
-                              Decorate 143(g_tTexcdi4) Binding 0
+                              Decorate 143(g_tTexcdi4) Binding 6
                               Decorate 154(g_tTexcdu4) DescriptorSet 0
-                              Decorate 154(g_tTexcdu4) Binding 0
+                              Decorate 154(g_tTexcdu4) Binding 7
                               Decorate 238(@entryPointOutput.Color) Location 0
                               Decorate 242(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 245(g_sSamp2d) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
index f908da4..b86cd22 100644
--- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
@@ -1334,7 +1334,7 @@
                               Name 395  "g_tTexcdi4"
                               Name 398  "g_tTexcdu4"
                               Decorate 16(g_tTex2df4) DescriptorSet 0
-                              Decorate 16(g_tTex2df4) Binding 0
+                              Decorate 16(g_tTex2df4) Binding 2
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               MemberDecorate 30($Global) 0 Offset 0
@@ -1347,11 +1347,11 @@
                               MemberDecorate 30($Global) 7 Offset 80
                               Decorate 30($Global) Block
                               Decorate 32 DescriptorSet 0
-                              Decorate 32 Binding 0
+                              Decorate 32 Binding 5
                               Decorate 47(g_tTex2di4) DescriptorSet 0
-                              Decorate 47(g_tTex2di4) Binding 0
+                              Decorate 47(g_tTex2di4) Binding 3
                               Decorate 63(g_tTex2du4) DescriptorSet 0
-                              Decorate 63(g_tTex2du4) Binding 0
+                              Decorate 63(g_tTex2du4) Binding 4
                               Decorate 363(@entryPointOutput.Color) Location 0
                               Decorate 367(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 370(g_sSamp2d) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
index 13b35cd..1fa728a 100644
--- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
@@ -1323,7 +1323,7 @@
                               Name 385  "g_tTexcdi4a"
                               Name 388  "g_tTexcdu4a"
                               Decorate 16(g_tTex2df4a) DescriptorSet 0
-                              Decorate 16(g_tTex2df4a) Binding 0
+                              Decorate 16(g_tTex2df4a) Binding 1
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               MemberDecorate 30($Global) 0 Offset 0
@@ -1336,11 +1336,11 @@
                               MemberDecorate 30($Global) 7 Offset 80
                               Decorate 30($Global) Block
                               Decorate 32 DescriptorSet 0
-                              Decorate 32 Binding 0
+                              Decorate 32 Binding 4
                               Decorate 47(g_tTex2di4a) DescriptorSet 0
-                              Decorate 47(g_tTex2di4a) Binding 0
+                              Decorate 47(g_tTex2di4a) Binding 2
                               Decorate 63(g_tTex2du4a) DescriptorSet 0
-                              Decorate 63(g_tTex2du4a) Binding 0
+                              Decorate 63(g_tTex2du4a) Binding 3
                               Decorate 363(@entryPointOutput.Color) Location 0
                               Decorate 367(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 370(g_sSamp2d) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out
index 767c7bd..8f45abc 100644
--- a/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out
@@ -507,7 +507,7 @@
                               Name 160  "g_tTexcdi4"
                               Name 163  "g_tTexcdu4"
                               Decorate 16(g_tTex2df4) DescriptorSet 0
-                              Decorate 16(g_tTex2df4) Binding 0
+                              Decorate 16(g_tTex2df4) Binding 2
                               Decorate 20(g_sSampCmp) DescriptorSet 0
                               Decorate 20(g_sSampCmp) Binding 0
                               MemberDecorate 26($Global) 0 Offset 0
@@ -516,11 +516,11 @@
                               MemberDecorate 26($Global) 3 Offset 32
                               Decorate 26($Global) Block
                               Decorate 28 DescriptorSet 0
-                              Decorate 28 Binding 0
+                              Decorate 28 Binding 5
                               Decorate 44(g_tTex2di4) DescriptorSet 0
-                              Decorate 44(g_tTex2di4) Binding 0
+                              Decorate 44(g_tTex2di4) Binding 3
                               Decorate 60(g_tTex2du4) DescriptorSet 0
-                              Decorate 60(g_tTex2du4) Binding 0
+                              Decorate 60(g_tTex2du4) Binding 4
                               Decorate 129(@entryPointOutput.Color) Location 0
                               Decorate 133(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 138(g_tTex1df4a) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out
index 31c4b2f..ba02359 100644
--- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out
+++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out
@@ -2425,57 +2425,57 @@
                               Decorate 17(g_tTex1df4) DescriptorSet 0
                               Decorate 17(g_tTex1df4) Binding 0
                               Decorate 35(g_tTex1di4) DescriptorSet 0
-                              Decorate 35(g_tTex1di4) Binding 0
+                              Decorate 35(g_tTex1di4) Binding 1
                               Decorate 48(g_tTex1du4) DescriptorSet 0
-                              Decorate 48(g_tTex1du4) Binding 0
+                              Decorate 48(g_tTex1du4) Binding 2
                               Decorate 63(g_tTex1df4a) DescriptorSet 0
-                              Decorate 63(g_tTex1df4a) Binding 0
+                              Decorate 63(g_tTex1df4a) Binding 12
                               Decorate 85(g_tTex1di4a) DescriptorSet 0
-                              Decorate 85(g_tTex1di4a) Binding 0
+                              Decorate 85(g_tTex1di4a) Binding 13
                               Decorate 104(g_tTex1du4a) DescriptorSet 0
-                              Decorate 104(g_tTex1du4a) Binding 0
+                              Decorate 104(g_tTex1du4a) Binding 14
                               Decorate 123(g_tTex2df4) DescriptorSet 0
-                              Decorate 123(g_tTex2df4) Binding 0
+                              Decorate 123(g_tTex2df4) Binding 3
                               Decorate 143(g_tTex2di4) DescriptorSet 0
-                              Decorate 143(g_tTex2di4) Binding 0
+                              Decorate 143(g_tTex2di4) Binding 4
                               Decorate 162(g_tTex2du4) DescriptorSet 0
-                              Decorate 162(g_tTex2du4) Binding 0
+                              Decorate 162(g_tTex2du4) Binding 5
                               Decorate 183(g_tTex2df4a) DescriptorSet 0
-                              Decorate 183(g_tTex2df4a) Binding 0
+                              Decorate 183(g_tTex2df4a) Binding 15
                               Decorate 207(g_tTex2di4a) DescriptorSet 0
-                              Decorate 207(g_tTex2di4a) Binding 0
+                              Decorate 207(g_tTex2di4a) Binding 16
                               Decorate 230(g_tTex2du4a) DescriptorSet 0
-                              Decorate 230(g_tTex2du4a) Binding 0
+                              Decorate 230(g_tTex2du4a) Binding 17
                               Decorate 253(g_tTex3df4) DescriptorSet 0
-                              Decorate 253(g_tTex3df4) Binding 0
+                              Decorate 253(g_tTex3df4) Binding 6
                               Decorate 277(g_tTex3di4) DescriptorSet 0
-                              Decorate 277(g_tTex3di4) Binding 0
+                              Decorate 277(g_tTex3di4) Binding 7
                               Decorate 300(g_tTex3du4) DescriptorSet 0
-                              Decorate 300(g_tTex3du4) Binding 0
+                              Decorate 300(g_tTex3du4) Binding 8
                               Decorate 323(g_tTexcdf4) DescriptorSet 0
-                              Decorate 323(g_tTexcdf4) Binding 0
+                              Decorate 323(g_tTexcdf4) Binding 9
                               Decorate 342(g_tTexcdi4) DescriptorSet 0
-                              Decorate 342(g_tTexcdi4) Binding 0
+                              Decorate 342(g_tTexcdi4) Binding 10
                               Decorate 361(g_tTexcdu4) DescriptorSet 0
-                              Decorate 361(g_tTexcdu4) Binding 0
+                              Decorate 361(g_tTexcdu4) Binding 11
                               Decorate 380(g_tTexcdf4a) DescriptorSet 0
-                              Decorate 380(g_tTexcdf4a) Binding 0
+                              Decorate 380(g_tTexcdf4a) Binding 18
                               Decorate 403(g_tTexcdi4a) DescriptorSet 0
-                              Decorate 403(g_tTexcdi4a) Binding 0
+                              Decorate 403(g_tTexcdi4a) Binding 19
                               Decorate 426(g_tTexcdu4a) DescriptorSet 0
-                              Decorate 426(g_tTexcdu4a) Binding 0
+                              Decorate 426(g_tTexcdu4a) Binding 20
                               Decorate 449(g_tTex2dmsf4) DescriptorSet 0
-                              Decorate 449(g_tTex2dmsf4) Binding 0
+                              Decorate 449(g_tTex2dmsf4) Binding 21
                               Decorate 462(g_tTex2dmsi4) DescriptorSet 0
-                              Decorate 462(g_tTex2dmsi4) Binding 0
+                              Decorate 462(g_tTex2dmsi4) Binding 22
                               Decorate 474(g_tTex2dmsu4) DescriptorSet 0
-                              Decorate 474(g_tTex2dmsu4) Binding 0
+                              Decorate 474(g_tTex2dmsu4) Binding 23
                               Decorate 486(g_tTex2dmsf4a) DescriptorSet 0
-                              Decorate 486(g_tTex2dmsf4a) Binding 0
+                              Decorate 486(g_tTex2dmsf4a) Binding 24
                               Decorate 500(g_tTex2dmsi4a) DescriptorSet 0
-                              Decorate 500(g_tTex2dmsi4a) Binding 0
+                              Decorate 500(g_tTex2dmsi4a) Binding 25
                               Decorate 514(g_tTex2dmsu4a) DescriptorSet 0
-                              Decorate 514(g_tTex2dmsu4a) Binding 0
+                              Decorate 514(g_tTex2dmsu4a) Binding 26
                               Decorate 540(@entryPointOutput.Color) Location 0
                               Decorate 544(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 549(g_sSamp) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out
index e82e8b2..1cce0cc 100644
--- a/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out
+++ b/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out
@@ -794,39 +794,39 @@
                               Decorate 17(g_tTex1df4) DescriptorSet 0
                               Decorate 17(g_tTex1df4) Binding 0
                               Decorate 26(g_tTex1di4) DescriptorSet 0
-                              Decorate 26(g_tTex1di4) Binding 0
+                              Decorate 26(g_tTex1di4) Binding 1
                               Decorate 33(g_tTex1du4) DescriptorSet 0
-                              Decorate 33(g_tTex1du4) Binding 0
+                              Decorate 33(g_tTex1du4) Binding 2
                               Decorate 40(g_tBuffF) DescriptorSet 0
-                              Decorate 40(g_tBuffF) Binding 0
+                              Decorate 40(g_tBuffF) Binding 15
                               Decorate 47(g_tBuffI) DescriptorSet 0
-                              Decorate 47(g_tBuffI) Binding 0
+                              Decorate 47(g_tBuffI) Binding 16
                               Decorate 54(g_tBuffU) DescriptorSet 0
-                              Decorate 54(g_tBuffU) Binding 0
+                              Decorate 54(g_tBuffU) Binding 17
                               Decorate 63(g_tTex1df4a) DescriptorSet 0
-                              Decorate 63(g_tTex1df4a) Binding 0
+                              Decorate 63(g_tTex1df4a) Binding 9
                               Decorate 76(g_tTex1di4a) DescriptorSet 0
-                              Decorate 76(g_tTex1di4a) Binding 0
+                              Decorate 76(g_tTex1di4a) Binding 10
                               Decorate 86(g_tTex1du4a) DescriptorSet 0
-                              Decorate 86(g_tTex1du4a) Binding 0
+                              Decorate 86(g_tTex1du4a) Binding 11
                               Decorate 96(g_tTex2df4) DescriptorSet 0
-                              Decorate 96(g_tTex2df4) Binding 0
+                              Decorate 96(g_tTex2df4) Binding 3
                               Decorate 107(g_tTex2di4) DescriptorSet 0
-                              Decorate 107(g_tTex2di4) Binding 0
+                              Decorate 107(g_tTex2di4) Binding 4
                               Decorate 117(g_tTex2du4) DescriptorSet 0
-                              Decorate 117(g_tTex2du4) Binding 0
+                              Decorate 117(g_tTex2du4) Binding 5
                               Decorate 129(g_tTex2df4a) DescriptorSet 0
-                              Decorate 129(g_tTex2df4a) Binding 0
+                              Decorate 129(g_tTex2df4a) Binding 12
                               Decorate 142(g_tTex2di4a) DescriptorSet 0
-                              Decorate 142(g_tTex2di4a) Binding 0
+                              Decorate 142(g_tTex2di4a) Binding 13
                               Decorate 154(g_tTex2du4a) DescriptorSet 0
-                              Decorate 154(g_tTex2du4a) Binding 0
+                              Decorate 154(g_tTex2du4a) Binding 14
                               Decorate 166(g_tTex3df4) DescriptorSet 0
-                              Decorate 166(g_tTex3df4) Binding 0
+                              Decorate 166(g_tTex3df4) Binding 6
                               Decorate 179(g_tTex3di4) DescriptorSet 0
-                              Decorate 179(g_tTex3di4) Binding 0
+                              Decorate 179(g_tTex3di4) Binding 7
                               Decorate 191(g_tTex3du4) DescriptorSet 0
-                              Decorate 191(g_tTex3du4) Binding 0
+                              Decorate 191(g_tTex3du4) Binding 8
                               Decorate 216(@entryPointOutput.Color) Location 0
                               Decorate 220(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 225(g_sSamp) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
index 9d320e8..5c49931 100644
--- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
+++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
@@ -620,9 +620,9 @@
                               Name 192  "@entryPointOutput.Depth"
                               Name 197  "g_sSamp"
                               Decorate 23(g_tTex2dmsf4) DescriptorSet 0
-                              Decorate 23(g_tTex2dmsf4) Binding 0
+                              Decorate 23(g_tTex2dmsf4) Binding 1
                               Decorate 131(g_tTex2dmsf4a) DescriptorSet 0
-                              Decorate 131(g_tTex2dmsf4a) Binding 0
+                              Decorate 131(g_tTex2dmsf4a) Binding 2
                               Decorate 181(sample) Flat
                               Decorate 181(sample) Location 0
                               Decorate 188(@entryPointOutput.Color) Location 0
diff --git a/Test/baseResults/hlsl.intrinsics.promote.frag.out b/Test/baseResults/hlsl.intrinsics.promote.frag.out
index 447e0b7..18fd037 100644
--- a/Test/baseResults/hlsl.intrinsics.promote.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.promote.frag.out
@@ -966,9 +966,9 @@
                               Decorate 21 DescriptorSet 0
                               Decorate 21 Binding 0
                               Decorate 258(g_tTexbfs) DescriptorSet 0
-                              Decorate 258(g_tTexbfs) Binding 0
+                              Decorate 258(g_tTexbfs) Binding 1
                               Decorate 277(g_tTex1df4) DescriptorSet 0
-                              Decorate 277(g_tTex1df4) Binding 0
+                              Decorate 277(g_tTex1df4) Binding 2
                               Decorate 319(@entryPointOutput.color) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out b/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out
index 9bc2fe5..1abed4c 100644
--- a/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out
@@ -258,7 +258,7 @@
                               Decorate 19 DescriptorSet 0
                               Decorate 19 Binding 0
                               Decorate 31(g_tTex1df4) DescriptorSet 0
-                              Decorate 31(g_tTex1df4) Binding 0
+                              Decorate 31(g_tTex1df4) Binding 1
                               Decorate 74(@entryPointOutput.color) Location 0
                               Decorate 79(g_tTexbfs) DescriptorSet 0
                               Decorate 79(g_tTexbfs) Binding 0
diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out
index fc49a91..9986074 100644
--- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out
@@ -396,7 +396,7 @@
                               Name 124  "@entryPointOutput.Depth"
                               Name 129  "g_sSamp"
                               Decorate 14(g_tTex2dmsf4) DescriptorSet 0
-                              Decorate 14(g_tTex2dmsf4) Binding 0
+                              Decorate 14(g_tTex2dmsf4) Binding 1
                               MemberDecorate 20($Global) 0 Offset 0
                               MemberDecorate 20($Global) 1 Offset 8
                               MemberDecorate 20($Global) 2 Offset 16
@@ -407,17 +407,17 @@
                               MemberDecorate 20($Global) 7 Offset 80
                               Decorate 20($Global) Block
                               Decorate 22 DescriptorSet 0
-                              Decorate 22 Binding 0
+                              Decorate 22 Binding 7
                               Decorate 31(g_tTex2dmsi4) DescriptorSet 0
-                              Decorate 31(g_tTex2dmsi4) Binding 0
+                              Decorate 31(g_tTex2dmsi4) Binding 2
                               Decorate 39(g_tTex2dmsu4) DescriptorSet 0
-                              Decorate 39(g_tTex2dmsu4) Binding 0
+                              Decorate 39(g_tTex2dmsu4) Binding 3
                               Decorate 66(g_tTex2dmsf4a) DescriptorSet 0
-                              Decorate 66(g_tTex2dmsf4a) Binding 0
+                              Decorate 66(g_tTex2dmsf4a) Binding 4
                               Decorate 75(g_tTex2dmsi4a) DescriptorSet 0
-                              Decorate 75(g_tTex2dmsi4a) Binding 0
+                              Decorate 75(g_tTex2dmsi4a) Binding 5
                               Decorate 82(g_tTex2dmsu4a) DescriptorSet 0
-                              Decorate 82(g_tTex2dmsu4a) Binding 0
+                              Decorate 82(g_tTex2dmsu4a) Binding 6
                               Decorate 120(@entryPointOutput.Color) Location 0
                               Decorate 124(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 129(g_sSamp) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out
index 170a3fd..0440779 100644
--- a/Test/baseResults/hlsl.load.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.array.dx10.frag.out
@@ -442,7 +442,7 @@
                               Name 155  "g_tTexcdi4a"
                               Name 158  "g_tTexcdu4a"
                               Decorate 14(g_tTex1df4a) DescriptorSet 0
-                              Decorate 14(g_tTex1df4a) Binding 0
+                              Decorate 14(g_tTex1df4a) Binding 1
                               MemberDecorate 20($Global) 0 Offset 0
                               MemberDecorate 20($Global) 1 Offset 8
                               MemberDecorate 20($Global) 2 Offset 16
@@ -453,17 +453,17 @@
                               MemberDecorate 20($Global) 7 Offset 80
                               Decorate 20($Global) Block
                               Decorate 22 DescriptorSet 0
-                              Decorate 22 Binding 0
+                              Decorate 22 Binding 7
                               Decorate 36(g_tTex1di4a) DescriptorSet 0
-                              Decorate 36(g_tTex1di4a) Binding 0
+                              Decorate 36(g_tTex1di4a) Binding 2
                               Decorate 46(g_tTex1du4a) DescriptorSet 0
-                              Decorate 46(g_tTex1du4a) Binding 0
+                              Decorate 46(g_tTex1du4a) Binding 3
                               Decorate 57(g_tTex2df4a) DescriptorSet 0
-                              Decorate 57(g_tTex2df4a) Binding 0
+                              Decorate 57(g_tTex2df4a) Binding 4
                               Decorate 70(g_tTex2di4a) DescriptorSet 0
-                              Decorate 70(g_tTex2di4a) Binding 0
+                              Decorate 70(g_tTex2di4a) Binding 5
                               Decorate 80(g_tTex2du4a) DescriptorSet 0
-                              Decorate 80(g_tTex2du4a) Binding 0
+                              Decorate 80(g_tTex2du4a) Binding 6
                               Decorate 104(@entryPointOutput.Color) Location 0
                               Decorate 108(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 113(g_sSamp) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out
index 471291c..2aef83d 100644
--- a/Test/baseResults/hlsl.load.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out
@@ -555,23 +555,23 @@
                               MemberDecorate 20($Global) 7 Offset 80
                               Decorate 20($Global) Block
                               Decorate 22 DescriptorSet 0
-                              Decorate 22 Binding 0
+                              Decorate 22 Binding 9
                               Decorate 35(g_tTex1di4) DescriptorSet 0
-                              Decorate 35(g_tTex1di4) Binding 0
+                              Decorate 35(g_tTex1di4) Binding 1
                               Decorate 44(g_tTex1du4) DescriptorSet 0
-                              Decorate 44(g_tTex1du4) Binding 0
+                              Decorate 44(g_tTex1du4) Binding 2
                               Decorate 54(g_tTex2df4) DescriptorSet 0
-                              Decorate 54(g_tTex2df4) Binding 0
+                              Decorate 54(g_tTex2df4) Binding 3
                               Decorate 67(g_tTex2di4) DescriptorSet 0
-                              Decorate 67(g_tTex2di4) Binding 0
+                              Decorate 67(g_tTex2di4) Binding 4
                               Decorate 77(g_tTex2du4) DescriptorSet 0
-                              Decorate 77(g_tTex2du4) Binding 0
+                              Decorate 77(g_tTex2du4) Binding 5
                               Decorate 87(g_tTex3df4) DescriptorSet 0
-                              Decorate 87(g_tTex3df4) Binding 0
+                              Decorate 87(g_tTex3df4) Binding 6
                               Decorate 100(g_tTex3di4) DescriptorSet 0
-                              Decorate 100(g_tTex3di4) Binding 0
+                              Decorate 100(g_tTex3di4) Binding 7
                               Decorate 110(g_tTex3du4) DescriptorSet 0
-                              Decorate 110(g_tTex3du4) Binding 0
+                              Decorate 110(g_tTex3du4) Binding 8
                               Decorate 133(@entryPointOutput.Color) Location 0
                               Decorate 137(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 142(g_sSamp) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out
index 6d23ab2..a110532 100644
--- a/Test/baseResults/hlsl.load.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out
@@ -512,23 +512,23 @@
                               MemberDecorate 20($Global) 7 Offset 80
                               Decorate 20($Global) Block
                               Decorate 22 DescriptorSet 0
-                              Decorate 22 Binding 0
+                              Decorate 22 Binding 9
                               Decorate 35(g_tTex1di4) DescriptorSet 0
-                              Decorate 35(g_tTex1di4) Binding 0
+                              Decorate 35(g_tTex1di4) Binding 1
                               Decorate 44(g_tTex1du4) DescriptorSet 0
-                              Decorate 44(g_tTex1du4) Binding 0
+                              Decorate 44(g_tTex1du4) Binding 2
                               Decorate 54(g_tTex2df4) DescriptorSet 0
-                              Decorate 54(g_tTex2df4) Binding 0
+                              Decorate 54(g_tTex2df4) Binding 3
                               Decorate 67(g_tTex2di4) DescriptorSet 0
-                              Decorate 67(g_tTex2di4) Binding 0
+                              Decorate 67(g_tTex2di4) Binding 4
                               Decorate 77(g_tTex2du4) DescriptorSet 0
-                              Decorate 77(g_tTex2du4) Binding 0
+                              Decorate 77(g_tTex2du4) Binding 5
                               Decorate 87(g_tTex3df4) DescriptorSet 0
-                              Decorate 87(g_tTex3df4) Binding 0
+                              Decorate 87(g_tTex3df4) Binding 6
                               Decorate 100(g_tTex3di4) DescriptorSet 0
-                              Decorate 100(g_tTex3di4) Binding 0
+                              Decorate 100(g_tTex3di4) Binding 7
                               Decorate 110(g_tTex3du4) DescriptorSet 0
-                              Decorate 110(g_tTex3du4) Binding 0
+                              Decorate 110(g_tTex3du4) Binding 8
                               Decorate 129(@entryPointOutput.Pos) BuiltIn Position
                               Decorate 134(g_sSamp) DescriptorSet 0
                               Decorate 134(g_sSamp) Binding 0
diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out
index 63181e5..299bde1 100644
--- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out
@@ -204,7 +204,7 @@
                               Name 68  "@entryPointOutput.Depth"
                               Name 71  "g_tTexbf4_test"
                               Decorate 16(g_tTexbf4) DescriptorSet 0
-                              Decorate 16(g_tTexbf4) Binding 0
+                              Decorate 16(g_tTexbf4) Binding 1
                               MemberDecorate 22($Global) 0 Offset 0
                               MemberDecorate 22($Global) 1 Offset 8
                               MemberDecorate 22($Global) 2 Offset 16
@@ -215,11 +215,11 @@
                               MemberDecorate 22($Global) 7 Offset 80
                               Decorate 22($Global) Block
                               Decorate 24 DescriptorSet 0
-                              Decorate 24 Binding 0
+                              Decorate 24 Binding 4
                               Decorate 34(g_tTexbi4) DescriptorSet 0
-                              Decorate 34(g_tTexbi4) Binding 0
+                              Decorate 34(g_tTexbi4) Binding 2
                               Decorate 45(g_tTexbu4) DescriptorSet 0
-                              Decorate 45(g_tTexbu4) Binding 0
+                              Decorate 45(g_tTexbu4) Binding 3
                               Decorate 64(@entryPointOutput.Color) Location 0
                               Decorate 68(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 71(g_tTexbf4_test) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out
index 073fcbf..f7a530c 100644
--- a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out
@@ -210,7 +210,7 @@
                               Name 71  "@entryPointOutput.Depth"
                               Name 74  "g_tTexbfs_test"
                               Decorate 16(g_tTexbfs) DescriptorSet 0
-                              Decorate 16(g_tTexbfs) Binding 0
+                              Decorate 16(g_tTexbfs) Binding 1
                               MemberDecorate 22($Global) 0 Offset 0
                               MemberDecorate 22($Global) 1 Offset 8
                               MemberDecorate 22($Global) 2 Offset 16
@@ -221,11 +221,11 @@
                               MemberDecorate 22($Global) 7 Offset 80
                               Decorate 22($Global) Block
                               Decorate 24 DescriptorSet 0
-                              Decorate 24 Binding 0
+                              Decorate 24 Binding 4
                               Decorate 35(g_tTexbis) DescriptorSet 0
-                              Decorate 35(g_tTexbis) Binding 0
+                              Decorate 35(g_tTexbis) Binding 2
                               Decorate 46(g_tTexbus) DescriptorSet 0
-                              Decorate 46(g_tTexbus) Binding 0
+                              Decorate 46(g_tTexbus) Binding 3
                               Decorate 67(@entryPointOutput.Color) Location 0
                               Decorate 71(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 74(g_tTexbfs_test) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out
index 3ebc416..d0fa5fd 100644
--- a/Test/baseResults/hlsl.load.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out
@@ -628,23 +628,23 @@
                               MemberDecorate 20($Global) 7 Offset 80
                               Decorate 20($Global) Block
                               Decorate 22 DescriptorSet 0
-                              Decorate 22 Binding 0
+                              Decorate 22 Binding 9
                               Decorate 38(g_tTex1di4) DescriptorSet 0
-                              Decorate 38(g_tTex1di4) Binding 0
+                              Decorate 38(g_tTex1di4) Binding 1
                               Decorate 49(g_tTex1du4) DescriptorSet 0
-                              Decorate 49(g_tTex1du4) Binding 0
+                              Decorate 49(g_tTex1du4) Binding 2
                               Decorate 61(g_tTex2df4) DescriptorSet 0
-                              Decorate 61(g_tTex2df4) Binding 0
+                              Decorate 61(g_tTex2df4) Binding 3
                               Decorate 78(g_tTex2di4) DescriptorSet 0
-                              Decorate 78(g_tTex2di4) Binding 0
+                              Decorate 78(g_tTex2di4) Binding 4
                               Decorate 90(g_tTex2du4) DescriptorSet 0
-                              Decorate 90(g_tTex2du4) Binding 0
+                              Decorate 90(g_tTex2du4) Binding 5
                               Decorate 102(g_tTex3df4) DescriptorSet 0
-                              Decorate 102(g_tTex3df4) Binding 0
+                              Decorate 102(g_tTex3df4) Binding 6
                               Decorate 118(g_tTex3di4) DescriptorSet 0
-                              Decorate 118(g_tTex3di4) Binding 0
+                              Decorate 118(g_tTex3di4) Binding 7
                               Decorate 130(g_tTex3du4) DescriptorSet 0
-                              Decorate 130(g_tTex3du4) Binding 0
+                              Decorate 130(g_tTex3du4) Binding 8
                               Decorate 155(@entryPointOutput.Color) Location 0
                               Decorate 159(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 164(g_sSamp) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
index 580b234..a379068 100644
--- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
@@ -491,7 +491,7 @@
                               Name 170  "g_tTexcdi4a"
                               Name 173  "g_tTexcdu4a"
                               Decorate 14(g_tTex1df4a) DescriptorSet 0
-                              Decorate 14(g_tTex1df4a) Binding 0
+                              Decorate 14(g_tTex1df4a) Binding 1
                               MemberDecorate 20($Global) 0 Offset 0
                               MemberDecorate 20($Global) 1 Offset 8
                               MemberDecorate 20($Global) 2 Offset 16
@@ -502,17 +502,17 @@
                               MemberDecorate 20($Global) 7 Offset 80
                               Decorate 20($Global) Block
                               Decorate 22 DescriptorSet 0
-                              Decorate 22 Binding 0
+                              Decorate 22 Binding 7
                               Decorate 39(g_tTex1di4a) DescriptorSet 0
-                              Decorate 39(g_tTex1di4a) Binding 0
+                              Decorate 39(g_tTex1di4a) Binding 2
                               Decorate 51(g_tTex1du4a) DescriptorSet 0
-                              Decorate 51(g_tTex1du4a) Binding 0
+                              Decorate 51(g_tTex1du4a) Binding 3
                               Decorate 64(g_tTex2df4a) DescriptorSet 0
-                              Decorate 64(g_tTex2df4a) Binding 0
+                              Decorate 64(g_tTex2df4a) Binding 4
                               Decorate 81(g_tTex2di4a) DescriptorSet 0
-                              Decorate 81(g_tTex2di4a) Binding 0
+                              Decorate 81(g_tTex2di4a) Binding 5
                               Decorate 93(g_tTex2du4a) DescriptorSet 0
-                              Decorate 93(g_tTex2du4a) Binding 0
+                              Decorate 93(g_tTex2du4a) Binding 6
                               Decorate 119(@entryPointOutput.Color) Location 0
                               Decorate 123(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 128(g_sSamp) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out b/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out
index 0abb625..73a854b 100644
--- a/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out
@@ -151,11 +151,11 @@
                               MemberDecorate 20($Global) 7 Offset 80
                               Decorate 20($Global) Block
                               Decorate 22 DescriptorSet 0
-                              Decorate 22 Binding 0
+                              Decorate 22 Binding 3
                               Decorate 31(g_tBuffU) DescriptorSet 0
-                              Decorate 31(g_tBuffU) Binding 0
+                              Decorate 31(g_tBuffU) Binding 2
                               Decorate 39(g_tBuffI) DescriptorSet 0
-                              Decorate 39(g_tBuffI) Binding 0
+                              Decorate 39(g_tBuffI) Binding 1
                               Decorate 54(@entryPointOutput.Color) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out b/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out
index 63f6dd8..db105d7 100644
--- a/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out
@@ -255,7 +255,7 @@
                               Name 115  "g_tTex3di4"
                               Name 118  "g_tTex3du4"
                               Decorate 14(g_tTex1df4a) DescriptorSet 0
-                              Decorate 14(g_tTex1df4a) Binding 0
+                              Decorate 14(g_tTex1df4a) Binding 1
                               MemberDecorate 20($Global) 0 Offset 0
                               MemberDecorate 20($Global) 1 Offset 8
                               MemberDecorate 20($Global) 2 Offset 16
@@ -266,17 +266,17 @@
                               MemberDecorate 20($Global) 7 Offset 80
                               Decorate 20($Global) Block
                               Decorate 22 DescriptorSet 0
-                              Decorate 22 Binding 0
+                              Decorate 22 Binding 7
                               Decorate 30(g_tTex1di4a) DescriptorSet 0
-                              Decorate 30(g_tTex1di4a) Binding 0
+                              Decorate 30(g_tTex1di4a) Binding 2
                               Decorate 38(g_tTex1du4a) DescriptorSet 0
-                              Decorate 38(g_tTex1du4a) Binding 0
+                              Decorate 38(g_tTex1du4a) Binding 3
                               Decorate 46(g_tTex2df4a) DescriptorSet 0
-                              Decorate 46(g_tTex2df4a) Binding 0
+                              Decorate 46(g_tTex2df4a) Binding 4
                               Decorate 55(g_tTex2di4a) DescriptorSet 0
-                              Decorate 55(g_tTex2di4a) Binding 0
+                              Decorate 55(g_tTex2di4a) Binding 5
                               Decorate 62(g_tTex2du4a) DescriptorSet 0
-                              Decorate 62(g_tTex2du4a) Binding 0
+                              Decorate 62(g_tTex2du4a) Binding 6
                               Decorate 82(@entryPointOutput.Color) Location 0
                               Decorate 86(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 91(g_sSamp) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out b/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out
index f59d829..c063e0c 100644
--- a/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out
@@ -302,23 +302,23 @@
                               MemberDecorate 20($Global) 7 Offset 80
                               Decorate 20($Global) Block
                               Decorate 22 DescriptorSet 0
-                              Decorate 22 Binding 0
+                              Decorate 22 Binding 9
                               Decorate 30(g_tTex1di4) DescriptorSet 0
-                              Decorate 30(g_tTex1di4) Binding 0
+                              Decorate 30(g_tTex1di4) Binding 1
                               Decorate 38(g_tTex1du4) DescriptorSet 0
-                              Decorate 38(g_tTex1du4) Binding 0
+                              Decorate 38(g_tTex1du4) Binding 2
                               Decorate 46(g_tTex2df4) DescriptorSet 0
-                              Decorate 46(g_tTex2df4) Binding 0
+                              Decorate 46(g_tTex2df4) Binding 3
                               Decorate 55(g_tTex2di4) DescriptorSet 0
-                              Decorate 55(g_tTex2di4) Binding 0
+                              Decorate 55(g_tTex2di4) Binding 4
                               Decorate 62(g_tTex2du4) DescriptorSet 0
-                              Decorate 62(g_tTex2du4) Binding 0
+                              Decorate 62(g_tTex2du4) Binding 5
                               Decorate 69(g_tTex3df4) DescriptorSet 0
-                              Decorate 69(g_tTex3df4) Binding 0
+                              Decorate 69(g_tTex3df4) Binding 6
                               Decorate 78(g_tTex3di4) DescriptorSet 0
-                              Decorate 78(g_tTex3di4) Binding 0
+                              Decorate 78(g_tTex3di4) Binding 7
                               Decorate 85(g_tTex3du4) DescriptorSet 0
-                              Decorate 85(g_tTex3du4) Binding 0
+                              Decorate 85(g_tTex3du4) Binding 8
                               Decorate 104(@entryPointOutput.Color) Location 0
                               Decorate 108(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 113(g_sSamp) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.mip.operator.frag.out b/Test/baseResults/hlsl.mip.operator.frag.out
index 50ef1e1..82b000f 100644
--- a/Test/baseResults/hlsl.mip.operator.frag.out
+++ b/Test/baseResults/hlsl.mip.operator.frag.out
@@ -143,7 +143,7 @@
                               Name 25  "g_tTex2df4a"
                               Name 59  "@entryPointOutput"
                               Decorate 13(g_tTex2df4) DescriptorSet 0
-                              Decorate 13(g_tTex2df4) Binding 0
+                              Decorate 13(g_tTex2df4) Binding 1
                               Decorate 25(g_tTex2df4a) DescriptorSet 0
                               Decorate 25(g_tTex2df4a) Binding 0
                               Decorate 59(@entryPointOutput) Location 0
diff --git a/Test/baseResults/hlsl.partialFlattenMixed.vert.out b/Test/baseResults/hlsl.partialFlattenMixed.vert.out
index f7e74fc..c9fcc6f 100644
--- a/Test/baseResults/hlsl.partialFlattenMixed.vert.out
+++ b/Test/baseResults/hlsl.partialFlattenMixed.vert.out
@@ -116,7 +116,7 @@
                               Decorate 24(tex[0]) DescriptorSet 0
                               Decorate 24(tex[0]) Binding 0
                               Decorate 28(tex[1]) DescriptorSet 0
-                              Decorate 28(tex[1]) Binding 0
+                              Decorate 28(tex[1]) Binding 1
                               Decorate 36(pos) Location 0
                               Decorate 39(@entryPointOutput) BuiltIn Position
                2:             TypeVoid
diff --git a/Test/baseResults/hlsl.pp.line2.frag.out b/Test/baseResults/hlsl.pp.line2.frag.out
index 73e2c6f..9ccf05c 100644
--- a/Test/baseResults/hlsl.pp.line2.frag.out
+++ b/Test/baseResults/hlsl.pp.line2.frag.out
@@ -88,7 +88,7 @@
                               Decorate 49(g_tColor) DescriptorSet 0
                               Decorate 49(g_tColor) Binding 0
                               Decorate 56(g_sAniso) DescriptorSet 0
-                              Decorate 56(g_sAniso) Binding 0
+                              Decorate 56(g_sAniso) Binding 1
                               Decorate 71(i.vTextureCoords) Location 0
                               Decorate 75(@entryPointOutput.vColor) Location 0
                3:             TypeVoid
diff --git a/Test/baseResults/hlsl.pp.line4.frag.out b/Test/baseResults/hlsl.pp.line4.frag.out
index aa50bc1..2244588 100644
--- a/Test/baseResults/hlsl.pp.line4.frag.out
+++ b/Test/baseResults/hlsl.pp.line4.frag.out
@@ -79,7 +79,7 @@
                               Decorate 48(g_tColor) DescriptorSet 0
                               Decorate 48(g_tColor) Binding 0
                               Decorate 55(g_sAniso) DescriptorSet 0
-                              Decorate 55(g_sAniso) Binding 0
+                              Decorate 55(g_sAniso) Binding 1
                               Decorate 70(i.vTextureCoords) Location 0
                               Decorate 74(@entryPointOutput.vColor) Location 0
                3:             TypeVoid
diff --git a/Test/baseResults/hlsl.preprocessor.frag.out b/Test/baseResults/hlsl.preprocessor.frag.out
index 6ea90a3..754d0d8 100644
--- a/Test/baseResults/hlsl.preprocessor.frag.out
+++ b/Test/baseResults/hlsl.preprocessor.frag.out
@@ -116,7 +116,7 @@
                               Decorate 16(test_texture) DescriptorSet 0
                               Decorate 16(test_texture) Binding 0
                               Decorate 20(test_texture_ss) DescriptorSet 0
-                              Decorate 20(test_texture_ss) Binding 0
+                              Decorate 20(test_texture_ss) Binding 1
                               Decorate 33(input) Location 0
                               Decorate 36(@entryPointOutput) Location 0
                2:             TypeVoid
diff --git a/Test/baseResults/hlsl.rw.atomics.frag.out b/Test/baseResults/hlsl.rw.atomics.frag.out
index 169eed1..06bc317 100644
--- a/Test/baseResults/hlsl.rw.atomics.frag.out
+++ b/Test/baseResults/hlsl.rw.atomics.frag.out
@@ -4010,25 +4010,25 @@
                               MemberDecorate 21($Global) 9 Offset 64
                               Decorate 21($Global) Block
                               Decorate 23 DescriptorSet 0
-                              Decorate 23 Binding 0
+                              Decorate 23 Binding 10
                               Decorate 121(g_tTex1du1) DescriptorSet 0
-                              Decorate 121(g_tTex1du1) Binding 0
+                              Decorate 121(g_tTex1du1) Binding 1
                               Decorate 217(g_tTex2di1) DescriptorSet 0
-                              Decorate 217(g_tTex2di1) Binding 0
+                              Decorate 217(g_tTex2di1) Binding 2
                               Decorate 308(g_tTex2du1) DescriptorSet 0
-                              Decorate 308(g_tTex2du1) Binding 0
+                              Decorate 308(g_tTex2du1) Binding 3
                               Decorate 399(g_tTex3di1) DescriptorSet 0
-                              Decorate 399(g_tTex3di1) Binding 0
+                              Decorate 399(g_tTex3di1) Binding 4
                               Decorate 490(g_tTex3du1) DescriptorSet 0
-                              Decorate 490(g_tTex3du1) Binding 0
+                              Decorate 490(g_tTex3du1) Binding 5
                               Decorate 581(g_tTex1di1a) DescriptorSet 0
-                              Decorate 581(g_tTex1di1a) Binding 0
+                              Decorate 581(g_tTex1di1a) Binding 6
                               Decorate 670(g_tTex1du1a) DescriptorSet 0
-                              Decorate 670(g_tTex1du1a) Binding 0
+                              Decorate 670(g_tTex1du1a) Binding 7
                               Decorate 931(g_tBuffI) DescriptorSet 0
-                              Decorate 931(g_tBuffI) Binding 0
+                              Decorate 931(g_tBuffI) Binding 8
                               Decorate 1020(g_tBuffU) DescriptorSet 0
-                              Decorate 1020(g_tBuffU) Binding 0
+                              Decorate 1020(g_tBuffU) Binding 9
                               Decorate 1117(@entryPointOutput.Color) Location 0
                               Decorate 1122(g_sSamp) DescriptorSet 0
                               Decorate 1122(g_sSamp) Binding 0
diff --git a/Test/baseResults/hlsl.rw.bracket.frag.out b/Test/baseResults/hlsl.rw.bracket.frag.out
index 94ac8e4..7068825 100644
--- a/Test/baseResults/hlsl.rw.bracket.frag.out
+++ b/Test/baseResults/hlsl.rw.bracket.frag.out
@@ -1893,25 +1893,25 @@
                               MemberDecorate 63($Global) 10 Offset 128
                               Decorate 63($Global) Block
                               Decorate 65 DescriptorSet 0
-                              Decorate 65 Binding 0
+                              Decorate 65 Binding 9
                               Decorate 75(g_tTex1df4) DescriptorSet 0
                               Decorate 75(g_tTex1df4) Binding 0
                               Decorate 89(g_tTex1di4) DescriptorSet 0
-                              Decorate 89(g_tTex1di4) Binding 0
+                              Decorate 89(g_tTex1di4) Binding 1
                               Decorate 97(g_tTex1du4) DescriptorSet 0
-                              Decorate 97(g_tTex1du4) Binding 0
+                              Decorate 97(g_tTex1du4) Binding 2
                               Decorate 105(g_tTex2df4) DescriptorSet 0
-                              Decorate 105(g_tTex2df4) Binding 0
+                              Decorate 105(g_tTex2df4) Binding 3
                               Decorate 115(g_tTex2di4) DescriptorSet 0
-                              Decorate 115(g_tTex2di4) Binding 0
+                              Decorate 115(g_tTex2di4) Binding 4
                               Decorate 123(g_tTex2du4) DescriptorSet 0
-                              Decorate 123(g_tTex2du4) Binding 0
+                              Decorate 123(g_tTex2du4) Binding 5
                               Decorate 131(g_tTex3df4) DescriptorSet 0
-                              Decorate 131(g_tTex3df4) Binding 0
+                              Decorate 131(g_tTex3df4) Binding 6
                               Decorate 141(g_tTex3di4) DescriptorSet 0
-                              Decorate 141(g_tTex3di4) Binding 0
+                              Decorate 141(g_tTex3di4) Binding 7
                               Decorate 149(g_tTex3du4) DescriptorSet 0
-                              Decorate 149(g_tTex3du4) Binding 0
+                              Decorate 149(g_tTex3du4) Binding 8
                               Decorate 583(@entryPointOutput.Color) Location 0
                               Decorate 588(g_sSamp) DescriptorSet 0
                               Decorate 588(g_sSamp) Binding 0
diff --git a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
index 2bfd442..2c67075 100644
--- a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
+++ b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
@@ -1839,25 +1839,25 @@
                               MemberDecorate 59($Global) 10 Offset 104
                               Decorate 59($Global) Block
                               Decorate 61 DescriptorSet 0
-                              Decorate 61 Binding 0
+                              Decorate 61 Binding 10
                               Decorate 70(g_tTex1df1) DescriptorSet 0
-                              Decorate 70(g_tTex1df1) Binding 0
+                              Decorate 70(g_tTex1df1) Binding 1
                               Decorate 83(g_tTex1di1) DescriptorSet 0
-                              Decorate 83(g_tTex1di1) Binding 0
+                              Decorate 83(g_tTex1di1) Binding 2
                               Decorate 91(g_tTex1du1) DescriptorSet 0
-                              Decorate 91(g_tTex1du1) Binding 0
+                              Decorate 91(g_tTex1du1) Binding 3
                               Decorate 99(g_tTex2df1) DescriptorSet 0
-                              Decorate 99(g_tTex2df1) Binding 0
+                              Decorate 99(g_tTex2df1) Binding 4
                               Decorate 109(g_tTex2di1) DescriptorSet 0
-                              Decorate 109(g_tTex2di1) Binding 0
+                              Decorate 109(g_tTex2di1) Binding 5
                               Decorate 117(g_tTex2du1) DescriptorSet 0
-                              Decorate 117(g_tTex2du1) Binding 0
+                              Decorate 117(g_tTex2du1) Binding 6
                               Decorate 125(g_tTex3df1) DescriptorSet 0
-                              Decorate 125(g_tTex3df1) Binding 0
+                              Decorate 125(g_tTex3df1) Binding 7
                               Decorate 135(g_tTex3di1) DescriptorSet 0
-                              Decorate 135(g_tTex3di1) Binding 0
+                              Decorate 135(g_tTex3di1) Binding 8
                               Decorate 143(g_tTex3du1) DescriptorSet 0
-                              Decorate 143(g_tTex3du1) Binding 0
+                              Decorate 143(g_tTex3du1) Binding 9
                               Decorate 547(@entryPointOutput.Color) Location 0
                               Decorate 552(g_sSamp) DescriptorSet 0
                               Decorate 552(g_sSamp) Binding 0
diff --git a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
index b5908d9..093665c 100644
--- a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
+++ b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
@@ -1858,25 +1858,25 @@
                               MemberDecorate 64($Global) 10 Offset 112
                               Decorate 64($Global) Block
                               Decorate 66 DescriptorSet 0
-                              Decorate 66 Binding 0
+                              Decorate 66 Binding 10
                               Decorate 76(g_tTex1df2) DescriptorSet 0
-                              Decorate 76(g_tTex1df2) Binding 0
+                              Decorate 76(g_tTex1df2) Binding 1
                               Decorate 90(g_tTex1di2) DescriptorSet 0
-                              Decorate 90(g_tTex1di2) Binding 0
+                              Decorate 90(g_tTex1di2) Binding 2
                               Decorate 98(g_tTex1du2) DescriptorSet 0
-                              Decorate 98(g_tTex1du2) Binding 0
+                              Decorate 98(g_tTex1du2) Binding 3
                               Decorate 106(g_tTex2df2) DescriptorSet 0
-                              Decorate 106(g_tTex2df2) Binding 0
+                              Decorate 106(g_tTex2df2) Binding 4
                               Decorate 114(g_tTex2di2) DescriptorSet 0
-                              Decorate 114(g_tTex2di2) Binding 0
+                              Decorate 114(g_tTex2di2) Binding 5
                               Decorate 122(g_tTex2du2) DescriptorSet 0
-                              Decorate 122(g_tTex2du2) Binding 0
+                              Decorate 122(g_tTex2du2) Binding 6
                               Decorate 130(g_tTex3df2) DescriptorSet 0
-                              Decorate 130(g_tTex3df2) Binding 0
+                              Decorate 130(g_tTex3df2) Binding 7
                               Decorate 140(g_tTex3di2) DescriptorSet 0
-                              Decorate 140(g_tTex3di2) Binding 0
+                              Decorate 140(g_tTex3di2) Binding 8
                               Decorate 148(g_tTex3du2) DescriptorSet 0
-                              Decorate 148(g_tTex3du2) Binding 0
+                              Decorate 148(g_tTex3du2) Binding 9
                               Decorate 581(@entryPointOutput.Color) Location 0
                               Decorate 586(g_sSamp) DescriptorSet 0
                               Decorate 586(g_sSamp) Binding 0
diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out
index 0b2464c..6ecbcf3 100644
--- a/Test/baseResults/hlsl.sample.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out
@@ -368,21 +368,21 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 35(g_tTex1di4) DescriptorSet 0
-                              Decorate 35(g_tTex1di4) Binding 0
+                              Decorate 35(g_tTex1di4) Binding 2
                               Decorate 49(g_tTex1du4) DescriptorSet 0
-                              Decorate 49(g_tTex1du4) Binding 0
+                              Decorate 49(g_tTex1du4) Binding 3
                               Decorate 60(g_tTex2df4) DescriptorSet 0
-                              Decorate 60(g_tTex2df4) Binding 0
+                              Decorate 60(g_tTex2df4) Binding 4
                               Decorate 71(g_tTex2di4) DescriptorSet 0
-                              Decorate 71(g_tTex2di4) Binding 0
+                              Decorate 71(g_tTex2di4) Binding 5
                               Decorate 82(g_tTex2du4) DescriptorSet 0
-                              Decorate 82(g_tTex2du4) Binding 0
+                              Decorate 82(g_tTex2du4) Binding 6
                               Decorate 94(g_tTexcdf4) DescriptorSet 0
-                              Decorate 94(g_tTexcdf4) Binding 0
+                              Decorate 94(g_tTexcdf4) Binding 7
                               Decorate 104(g_tTexcdi4) DescriptorSet 0
-                              Decorate 104(g_tTexcdi4) Binding 0
+                              Decorate 104(g_tTexcdi4) Binding 8
                               Decorate 114(g_tTexcdu4) DescriptorSet 0
-                              Decorate 114(g_tTexcdu4) Binding 0
+                              Decorate 114(g_tTexcdu4) Binding 9
                               Decorate 138(@entryPointOutput.Color) Location 0
                               Decorate 142(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 145(g_tTex1df4a) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out
index cb995ac..9d06667 100644
--- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out
@@ -617,27 +617,27 @@
                               Decorate 49(g_sSamp) DescriptorSet 0
                               Decorate 49(g_sSamp) Binding 0
                               Decorate 60(g_tTex1di4) DescriptorSet 0
-                              Decorate 60(g_tTex1di4) Binding 0
+                              Decorate 60(g_tTex1di4) Binding 2
                               Decorate 73(g_tTex1du4) DescriptorSet 0
-                              Decorate 73(g_tTex1du4) Binding 0
+                              Decorate 73(g_tTex1du4) Binding 3
                               Decorate 83(g_tTex2df4) DescriptorSet 0
-                              Decorate 83(g_tTex2df4) Binding 0
+                              Decorate 83(g_tTex2df4) Binding 4
                               Decorate 94(g_tTex2di4) DescriptorSet 0
-                              Decorate 94(g_tTex2di4) Binding 0
+                              Decorate 94(g_tTex2di4) Binding 5
                               Decorate 105(g_tTex2du4) DescriptorSet 0
-                              Decorate 105(g_tTex2du4) Binding 0
+                              Decorate 105(g_tTex2du4) Binding 6
                               Decorate 117(g_tTex3df4) DescriptorSet 0
-                              Decorate 117(g_tTex3df4) Binding 0
+                              Decorate 117(g_tTex3df4) Binding 7
                               Decorate 128(g_tTex3di4) DescriptorSet 0
-                              Decorate 128(g_tTex3di4) Binding 0
+                              Decorate 128(g_tTex3di4) Binding 8
                               Decorate 138(g_tTex3du4) DescriptorSet 0
-                              Decorate 138(g_tTex3du4) Binding 0
+                              Decorate 138(g_tTex3du4) Binding 9
                               Decorate 151(g_tTexcdf4) DescriptorSet 0
-                              Decorate 151(g_tTexcdf4) Binding 0
+                              Decorate 151(g_tTexcdf4) Binding 10
                               Decorate 160(g_tTexcdi4) DescriptorSet 0
-                              Decorate 160(g_tTexcdi4) Binding 0
+                              Decorate 160(g_tTexcdi4) Binding 11
                               Decorate 169(g_tTexcdu4) DescriptorSet 0
-                              Decorate 169(g_tTexcdu4) Binding 0
+                              Decorate 169(g_tTexcdu4) Binding 12
                               Decorate 188(@entryPointOutput.Color) Location 0
                               Decorate 192(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 195(g_sSamp2d) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out
index dc13a42..fc91699 100644
--- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out
@@ -412,21 +412,21 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 33(g_tTex1di4) DescriptorSet 0
-                              Decorate 33(g_tTex1di4) Binding 0
+                              Decorate 33(g_tTex1di4) Binding 2
                               Decorate 46(g_tTex1du4) DescriptorSet 0
-                              Decorate 46(g_tTex1du4) Binding 0
+                              Decorate 46(g_tTex1du4) Binding 3
                               Decorate 56(g_tTex2df4) DescriptorSet 0
-                              Decorate 56(g_tTex2df4) Binding 0
+                              Decorate 56(g_tTex2df4) Binding 4
                               Decorate 70(g_tTex2di4) DescriptorSet 0
-                              Decorate 70(g_tTex2di4) Binding 0
+                              Decorate 70(g_tTex2di4) Binding 5
                               Decorate 82(g_tTex2du4) DescriptorSet 0
-                              Decorate 82(g_tTex2du4) Binding 0
+                              Decorate 82(g_tTex2du4) Binding 6
                               Decorate 96(g_tTex3df4) DescriptorSet 0
-                              Decorate 96(g_tTex3df4) Binding 0
+                              Decorate 96(g_tTex3df4) Binding 7
                               Decorate 109(g_tTex3di4) DescriptorSet 0
-                              Decorate 109(g_tTex3di4) Binding 0
+                              Decorate 109(g_tTex3di4) Binding 8
                               Decorate 120(g_tTex3du4) DescriptorSet 0
-                              Decorate 120(g_tTex3du4) Binding 0
+                              Decorate 120(g_tTex3du4) Binding 9
                               Decorate 144(@entryPointOutput.Color) Location 0
                               Decorate 148(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 151(g_tTex1df4a) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
index 4f82b20..4d53975 100644
--- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
@@ -313,15 +313,15 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 36(g_tTex1di4) DescriptorSet 0
-                              Decorate 36(g_tTex1di4) Binding 0
+                              Decorate 36(g_tTex1di4) Binding 2
                               Decorate 51(g_tTex1du4) DescriptorSet 0
-                              Decorate 51(g_tTex1du4) Binding 0
+                              Decorate 51(g_tTex1du4) Binding 3
                               Decorate 63(g_tTex2df4) DescriptorSet 0
-                              Decorate 63(g_tTex2df4) Binding 0
+                              Decorate 63(g_tTex2df4) Binding 4
                               Decorate 76(g_tTex2di4) DescriptorSet 0
-                              Decorate 76(g_tTex2di4) Binding 0
+                              Decorate 76(g_tTex2di4) Binding 5
                               Decorate 87(g_tTex2du4) DescriptorSet 0
-                              Decorate 87(g_tTex2du4) Binding 0
+                              Decorate 87(g_tTex2du4) Binding 6
                               Decorate 110(@entryPointOutput.Color) Location 0
                               Decorate 114(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 117(g_tTex1df4a) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out b/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out
index ba7696f..8754a03 100644
--- a/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out
@@ -180,15 +180,15 @@
                               Name 59  "psout"
                               Name 69  "@entryPointOutput.Color"
                               Decorate 16(g_tTex1df1) DescriptorSet 0
-                              Decorate 16(g_tTex1df1) Binding 0
+                              Decorate 16(g_tTex1df1) Binding 1
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 30(g_tTex1df2) DescriptorSet 0
-                              Decorate 30(g_tTex1df2) Binding 0
+                              Decorate 30(g_tTex1df2) Binding 2
                               Decorate 42(g_tTex1df3) DescriptorSet 0
-                              Decorate 42(g_tTex1df3) Binding 0
+                              Decorate 42(g_tTex1df3) Binding 3
                               Decorate 53(g_tTex1df4) DescriptorSet 0
-                              Decorate 53(g_tTex1df4) Binding 0
+                              Decorate 53(g_tTex1df4) Binding 4
                               Decorate 69(@entryPointOutput.Color) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
index 2d21f63..7990196 100644
--- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
@@ -404,21 +404,21 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 36(g_tTex1di4) DescriptorSet 0
-                              Decorate 36(g_tTex1di4) Binding 0
+                              Decorate 36(g_tTex1di4) Binding 2
                               Decorate 50(g_tTex1du4) DescriptorSet 0
-                              Decorate 50(g_tTex1du4) Binding 0
+                              Decorate 50(g_tTex1du4) Binding 3
                               Decorate 61(g_tTex2df4) DescriptorSet 0
-                              Decorate 61(g_tTex2df4) Binding 0
+                              Decorate 61(g_tTex2df4) Binding 4
                               Decorate 72(g_tTex2di4) DescriptorSet 0
-                              Decorate 72(g_tTex2di4) Binding 0
+                              Decorate 72(g_tTex2di4) Binding 5
                               Decorate 82(g_tTex2du4) DescriptorSet 0
-                              Decorate 82(g_tTex2du4) Binding 0
+                              Decorate 82(g_tTex2du4) Binding 6
                               Decorate 94(g_tTexcdf4) DescriptorSet 0
-                              Decorate 94(g_tTexcdf4) Binding 0
+                              Decorate 94(g_tTexcdf4) Binding 7
                               Decorate 104(g_tTexcdi4) DescriptorSet 0
-                              Decorate 104(g_tTexcdi4) Binding 0
+                              Decorate 104(g_tTexcdi4) Binding 8
                               Decorate 114(g_tTexcdu4) DescriptorSet 0
-                              Decorate 114(g_tTexcdu4) Binding 0
+                              Decorate 114(g_tTexcdu4) Binding 9
                               Decorate 138(@entryPointOutput.Color) Location 0
                               Decorate 142(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 145(g_tTex1df4a) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
index 6dfcce3..b318306 100644
--- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
@@ -475,27 +475,27 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 33(g_tTex1di4) DescriptorSet 0
-                              Decorate 33(g_tTex1di4) Binding 0
+                              Decorate 33(g_tTex1di4) Binding 2
                               Decorate 46(g_tTex1du4) DescriptorSet 0
-                              Decorate 46(g_tTex1du4) Binding 0
+                              Decorate 46(g_tTex1du4) Binding 3
                               Decorate 56(g_tTex2df4) DescriptorSet 0
-                              Decorate 56(g_tTex2df4) Binding 0
+                              Decorate 56(g_tTex2df4) Binding 4
                               Decorate 67(g_tTex2di4) DescriptorSet 0
-                              Decorate 67(g_tTex2di4) Binding 0
+                              Decorate 67(g_tTex2di4) Binding 5
                               Decorate 78(g_tTex2du4) DescriptorSet 0
-                              Decorate 78(g_tTex2du4) Binding 0
+                              Decorate 78(g_tTex2du4) Binding 6
                               Decorate 89(g_tTex3df4) DescriptorSet 0
-                              Decorate 89(g_tTex3df4) Binding 0
+                              Decorate 89(g_tTex3df4) Binding 7
                               Decorate 100(g_tTex3di4) DescriptorSet 0
-                              Decorate 100(g_tTex3di4) Binding 0
+                              Decorate 100(g_tTex3di4) Binding 8
                               Decorate 110(g_tTex3du4) DescriptorSet 0
-                              Decorate 110(g_tTex3du4) Binding 0
+                              Decorate 110(g_tTex3du4) Binding 9
                               Decorate 123(g_tTexcdf4) DescriptorSet 0
-                              Decorate 123(g_tTexcdf4) Binding 0
+                              Decorate 123(g_tTexcdf4) Binding 10
                               Decorate 132(g_tTexcdi4) DescriptorSet 0
-                              Decorate 132(g_tTexcdi4) Binding 0
+                              Decorate 132(g_tTexcdi4) Binding 11
                               Decorate 141(g_tTexcdu4) DescriptorSet 0
-                              Decorate 141(g_tTexcdu4) Binding 0
+                              Decorate 141(g_tTexcdu4) Binding 12
                               Decorate 162(@entryPointOutput.Color) Location 0
                               Decorate 166(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 169(g_tTex1df4a) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
index 1efdb28..0e073ee 100644
--- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
@@ -449,21 +449,21 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 34(g_tTex1di4) DescriptorSet 0
-                              Decorate 34(g_tTex1di4) Binding 0
+                              Decorate 34(g_tTex1di4) Binding 2
                               Decorate 47(g_tTex1du4) DescriptorSet 0
-                              Decorate 47(g_tTex1du4) Binding 0
+                              Decorate 47(g_tTex1du4) Binding 3
                               Decorate 57(g_tTex2df4) DescriptorSet 0
-                              Decorate 57(g_tTex2df4) Binding 0
+                              Decorate 57(g_tTex2df4) Binding 4
                               Decorate 71(g_tTex2di4) DescriptorSet 0
-                              Decorate 71(g_tTex2di4) Binding 0
+                              Decorate 71(g_tTex2di4) Binding 5
                               Decorate 83(g_tTex2du4) DescriptorSet 0
-                              Decorate 83(g_tTex2du4) Binding 0
+                              Decorate 83(g_tTex2du4) Binding 6
                               Decorate 96(g_tTex3df4) DescriptorSet 0
-                              Decorate 96(g_tTex3df4) Binding 0
+                              Decorate 96(g_tTex3df4) Binding 7
                               Decorate 109(g_tTex3di4) DescriptorSet 0
-                              Decorate 109(g_tTex3di4) Binding 0
+                              Decorate 109(g_tTex3di4) Binding 8
                               Decorate 120(g_tTex3du4) DescriptorSet 0
-                              Decorate 120(g_tTex3du4) Binding 0
+                              Decorate 120(g_tTex3du4) Binding 9
                               Decorate 144(@entryPointOutput.Color) Location 0
                               Decorate 148(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 151(g_tTex1df4a) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
index 302e880..6225c45 100644
--- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
@@ -338,15 +338,15 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 37(g_tTex1di4) DescriptorSet 0
-                              Decorate 37(g_tTex1di4) Binding 0
+                              Decorate 37(g_tTex1di4) Binding 2
                               Decorate 52(g_tTex1du4) DescriptorSet 0
-                              Decorate 52(g_tTex1du4) Binding 0
+                              Decorate 52(g_tTex1du4) Binding 3
                               Decorate 64(g_tTex2df4) DescriptorSet 0
-                              Decorate 64(g_tTex2df4) Binding 0
+                              Decorate 64(g_tTex2df4) Binding 4
                               Decorate 77(g_tTex2di4) DescriptorSet 0
-                              Decorate 77(g_tTex2di4) Binding 0
+                              Decorate 77(g_tTex2di4) Binding 5
                               Decorate 87(g_tTex2du4) DescriptorSet 0
-                              Decorate 87(g_tTex2du4) Binding 0
+                              Decorate 87(g_tTex2du4) Binding 6
                               Decorate 110(@entryPointOutput.Color) Location 0
                               Decorate 114(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 117(g_tTex1df4a) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out
index 5840f46..b1c1d6d 100644
--- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out
@@ -452,25 +452,25 @@
                               Name 205  "g_tTexcdi4"
                               Name 208  "g_tTexcdu4"
                               Decorate 16(g_tTex1df4a) DescriptorSet 0
-                              Decorate 16(g_tTex1df4a) Binding 0
+                              Decorate 16(g_tTex1df4a) Binding 1
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 39(g_tTex1di4a) DescriptorSet 0
-                              Decorate 39(g_tTex1di4a) Binding 0
+                              Decorate 39(g_tTex1di4a) Binding 2
                               Decorate 53(g_tTex1du4a) DescriptorSet 0
-                              Decorate 53(g_tTex1du4a) Binding 0
+                              Decorate 53(g_tTex1du4a) Binding 3
                               Decorate 66(g_tTex2df4a) DescriptorSet 0
-                              Decorate 66(g_tTex2df4a) Binding 0
+                              Decorate 66(g_tTex2df4a) Binding 4
                               Decorate 82(g_tTex2di4a) DescriptorSet 0
-                              Decorate 82(g_tTex2di4a) Binding 0
+                              Decorate 82(g_tTex2di4a) Binding 5
                               Decorate 96(g_tTex2du4a) DescriptorSet 0
-                              Decorate 96(g_tTex2du4a) Binding 0
+                              Decorate 96(g_tTex2du4a) Binding 6
                               Decorate 110(g_tTexcdf4a) DescriptorSet 0
-                              Decorate 110(g_tTexcdf4a) Binding 0
+                              Decorate 110(g_tTexcdf4a) Binding 7
                               Decorate 126(g_tTexcdi4a) DescriptorSet 0
-                              Decorate 126(g_tTexcdi4a) Binding 0
+                              Decorate 126(g_tTexcdi4a) Binding 8
                               Decorate 140(g_tTexcdu4a) DescriptorSet 0
-                              Decorate 140(g_tTexcdu4a) Binding 0
+                              Decorate 140(g_tTexcdu4a) Binding 9
                               Decorate 166(@entryPointOutput.Color) Location 0
                               Decorate 170(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 175(g_tTex1df4) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out
index c9675a6..e3d5b93 100644
--- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out
@@ -438,21 +438,21 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 34(g_tTex1di4) DescriptorSet 0
-                              Decorate 34(g_tTex1di4) Binding 0
+                              Decorate 34(g_tTex1di4) Binding 1
                               Decorate 46(g_tTex1du4) DescriptorSet 0
-                              Decorate 46(g_tTex1du4) Binding 0
+                              Decorate 46(g_tTex1du4) Binding 2
                               Decorate 57(g_tTex2df4) DescriptorSet 0
-                              Decorate 57(g_tTex2df4) Binding 0
+                              Decorate 57(g_tTex2df4) Binding 3
                               Decorate 73(g_tTex2di4) DescriptorSet 0
-                              Decorate 73(g_tTex2di4) Binding 0
+                              Decorate 73(g_tTex2di4) Binding 4
                               Decorate 86(g_tTex2du4) DescriptorSet 0
-                              Decorate 86(g_tTex2du4) Binding 0
+                              Decorate 86(g_tTex2du4) Binding 5
                               Decorate 99(g_tTexcdf4) DescriptorSet 0
-                              Decorate 99(g_tTexcdf4) Binding 0
+                              Decorate 99(g_tTexcdf4) Binding 6
                               Decorate 115(g_tTexcdi4) DescriptorSet 0
-                              Decorate 115(g_tTexcdi4) Binding 0
+                              Decorate 115(g_tTexcdi4) Binding 7
                               Decorate 129(g_tTexcdu4) DescriptorSet 0
-                              Decorate 129(g_tTexcdu4) Binding 0
+                              Decorate 129(g_tTexcdu4) Binding 8
                               Decorate 155(@entryPointOutput.Color) Location 0
                               Decorate 159(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 164(g_tTex3df4) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out
index a7e8403..aaa2b74 100644
--- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out
@@ -381,15 +381,15 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 35(g_tTex1di4) DescriptorSet 0
-                              Decorate 35(g_tTex1di4) Binding 0
+                              Decorate 35(g_tTex1di4) Binding 1
                               Decorate 47(g_tTex1du4) DescriptorSet 0
-                              Decorate 47(g_tTex1du4) Binding 0
+                              Decorate 47(g_tTex1du4) Binding 2
                               Decorate 58(g_tTex2df4) DescriptorSet 0
-                              Decorate 58(g_tTex2df4) Binding 0
+                              Decorate 58(g_tTex2df4) Binding 3
                               Decorate 77(g_tTex2di4) DescriptorSet 0
-                              Decorate 77(g_tTex2di4) Binding 0
+                              Decorate 77(g_tTex2di4) Binding 4
                               Decorate 90(g_tTex2du4) DescriptorSet 0
-                              Decorate 90(g_tTex2du4) Binding 0
+                              Decorate 90(g_tTex2du4) Binding 5
                               Decorate 115(@entryPointOutput.Color) Location 0
                               Decorate 119(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 124(g_tTex3df4) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out
index b120d7b..501f4c0 100644
--- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out
@@ -389,19 +389,19 @@
                               Name 174  "g_tTexcdi4a"
                               Name 177  "g_tTexcdu4a"
                               Decorate 16(g_tTex1df4a) DescriptorSet 0
-                              Decorate 16(g_tTex1df4a) Binding 0
+                              Decorate 16(g_tTex1df4a) Binding 1
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 40(g_tTex1di4a) DescriptorSet 0
-                              Decorate 40(g_tTex1di4a) Binding 0
+                              Decorate 40(g_tTex1di4a) Binding 2
                               Decorate 54(g_tTex1du4a) DescriptorSet 0
-                              Decorate 54(g_tTex1du4a) Binding 0
+                              Decorate 54(g_tTex1du4a) Binding 3
                               Decorate 67(g_tTex2df4a) DescriptorSet 0
-                              Decorate 67(g_tTex2df4a) Binding 0
+                              Decorate 67(g_tTex2df4a) Binding 4
                               Decorate 86(g_tTex2di4a) DescriptorSet 0
-                              Decorate 86(g_tTex2di4a) Binding 0
+                              Decorate 86(g_tTex2di4a) Binding 5
                               Decorate 100(g_tTex2du4a) DescriptorSet 0
-                              Decorate 100(g_tTex2du4a) Binding 0
+                              Decorate 100(g_tTex2du4a) Binding 6
                               Decorate 126(@entryPointOutput.Color) Location 0
                               Decorate 130(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 135(g_tTex1df4) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out
index a374261..ecfeb1b 100644
--- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out
@@ -488,25 +488,25 @@
                               Name 206  "g_tTexcdi4"
                               Name 209  "g_tTexcdu4"
                               Decorate 16(g_tTex1df4a) DescriptorSet 0
-                              Decorate 16(g_tTex1df4a) Binding 0
+                              Decorate 16(g_tTex1df4a) Binding 1
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 40(g_tTex1di4a) DescriptorSet 0
-                              Decorate 40(g_tTex1di4a) Binding 0
+                              Decorate 40(g_tTex1di4a) Binding 2
                               Decorate 54(g_tTex1du4a) DescriptorSet 0
-                              Decorate 54(g_tTex1du4a) Binding 0
+                              Decorate 54(g_tTex1du4a) Binding 3
                               Decorate 67(g_tTex2df4a) DescriptorSet 0
-                              Decorate 67(g_tTex2df4a) Binding 0
+                              Decorate 67(g_tTex2df4a) Binding 4
                               Decorate 83(g_tTex2di4a) DescriptorSet 0
-                              Decorate 83(g_tTex2di4a) Binding 0
+                              Decorate 83(g_tTex2di4a) Binding 5
                               Decorate 97(g_tTex2du4a) DescriptorSet 0
-                              Decorate 97(g_tTex2du4a) Binding 0
+                              Decorate 97(g_tTex2du4a) Binding 6
                               Decorate 111(g_tTexcdf4a) DescriptorSet 0
-                              Decorate 111(g_tTexcdf4a) Binding 0
+                              Decorate 111(g_tTexcdf4a) Binding 7
                               Decorate 127(g_tTexcdi4a) DescriptorSet 0
-                              Decorate 127(g_tTexcdi4a) Binding 0
+                              Decorate 127(g_tTexcdi4a) Binding 8
                               Decorate 141(g_tTexcdu4a) DescriptorSet 0
-                              Decorate 141(g_tTexcdu4a) Binding 0
+                              Decorate 141(g_tTexcdu4a) Binding 9
                               Decorate 167(@entryPointOutput.Color) Location 0
                               Decorate 171(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 176(g_tTex1df4) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out
index d5f55e4..c852c9f 100644
--- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out
@@ -474,21 +474,21 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 35(g_tTex1di4) DescriptorSet 0
-                              Decorate 35(g_tTex1di4) Binding 0
+                              Decorate 35(g_tTex1di4) Binding 1
                               Decorate 47(g_tTex1du4) DescriptorSet 0
-                              Decorate 47(g_tTex1du4) Binding 0
+                              Decorate 47(g_tTex1du4) Binding 2
                               Decorate 58(g_tTex2df4) DescriptorSet 0
-                              Decorate 58(g_tTex2df4) Binding 0
+                              Decorate 58(g_tTex2df4) Binding 3
                               Decorate 74(g_tTex2di4) DescriptorSet 0
-                              Decorate 74(g_tTex2di4) Binding 0
+                              Decorate 74(g_tTex2di4) Binding 4
                               Decorate 87(g_tTex2du4) DescriptorSet 0
-                              Decorate 87(g_tTex2du4) Binding 0
+                              Decorate 87(g_tTex2du4) Binding 5
                               Decorate 100(g_tTexcdf4) DescriptorSet 0
-                              Decorate 100(g_tTexcdf4) Binding 0
+                              Decorate 100(g_tTexcdf4) Binding 6
                               Decorate 116(g_tTexcdi4) DescriptorSet 0
-                              Decorate 116(g_tTexcdi4) Binding 0
+                              Decorate 116(g_tTexcdi4) Binding 7
                               Decorate 130(g_tTexcdu4) DescriptorSet 0
-                              Decorate 130(g_tTexcdu4) Binding 0
+                              Decorate 130(g_tTexcdu4) Binding 8
                               Decorate 156(@entryPointOutput.Color) Location 0
                               Decorate 160(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 165(g_tTex3df4) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out
index d678ede..95c5c61 100644
--- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out
@@ -405,15 +405,15 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 36(g_tTex1di4) DescriptorSet 0
-                              Decorate 36(g_tTex1di4) Binding 0
+                              Decorate 36(g_tTex1di4) Binding 1
                               Decorate 48(g_tTex1du4) DescriptorSet 0
-                              Decorate 48(g_tTex1du4) Binding 0
+                              Decorate 48(g_tTex1du4) Binding 2
                               Decorate 59(g_tTex2df4) DescriptorSet 0
-                              Decorate 59(g_tTex2df4) Binding 0
+                              Decorate 59(g_tTex2df4) Binding 3
                               Decorate 78(g_tTex2di4) DescriptorSet 0
-                              Decorate 78(g_tTex2di4) Binding 0
+                              Decorate 78(g_tTex2di4) Binding 4
                               Decorate 91(g_tTex2du4) DescriptorSet 0
-                              Decorate 91(g_tTex2du4) Binding 0
+                              Decorate 91(g_tTex2du4) Binding 5
                               Decorate 116(@entryPointOutput.Color) Location 0
                               Decorate 120(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 125(g_tTex3df4) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out
index d5d0c26..89a7bba 100644
--- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out
@@ -413,19 +413,19 @@
                               Name 175  "g_tTexcdi4a"
                               Name 178  "g_tTexcdu4a"
                               Decorate 16(g_tTex1df4a) DescriptorSet 0
-                              Decorate 16(g_tTex1df4a) Binding 0
+                              Decorate 16(g_tTex1df4a) Binding 1
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 41(g_tTex1di4a) DescriptorSet 0
-                              Decorate 41(g_tTex1di4a) Binding 0
+                              Decorate 41(g_tTex1di4a) Binding 2
                               Decorate 55(g_tTex1du4a) DescriptorSet 0
-                              Decorate 55(g_tTex1du4a) Binding 0
+                              Decorate 55(g_tTex1du4a) Binding 3
                               Decorate 68(g_tTex2df4a) DescriptorSet 0
-                              Decorate 68(g_tTex2df4a) Binding 0
+                              Decorate 68(g_tTex2df4a) Binding 4
                               Decorate 87(g_tTex2di4a) DescriptorSet 0
-                              Decorate 87(g_tTex2di4a) Binding 0
+                              Decorate 87(g_tTex2di4a) Binding 5
                               Decorate 101(g_tTex2du4a) DescriptorSet 0
-                              Decorate 101(g_tTex2du4a) Binding 0
+                              Decorate 101(g_tTex2du4a) Binding 6
                               Decorate 127(@entryPointOutput.Color) Location 0
                               Decorate 131(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 136(g_tTex1df4) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
index a69f7d4..8daeb7f 100644
--- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
@@ -476,21 +476,21 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 37(g_tTex1di4) DescriptorSet 0
-                              Decorate 37(g_tTex1di4) Binding 0
+                              Decorate 37(g_tTex1di4) Binding 2
                               Decorate 49(g_tTex1du4) DescriptorSet 0
-                              Decorate 49(g_tTex1du4) Binding 0
+                              Decorate 49(g_tTex1du4) Binding 3
                               Decorate 58(g_tTex2df4) DescriptorSet 0
-                              Decorate 58(g_tTex2df4) Binding 0
+                              Decorate 58(g_tTex2df4) Binding 4
                               Decorate 71(g_tTex2di4) DescriptorSet 0
-                              Decorate 71(g_tTex2di4) Binding 0
+                              Decorate 71(g_tTex2di4) Binding 5
                               Decorate 80(g_tTex2du4) DescriptorSet 0
-                              Decorate 80(g_tTex2du4) Binding 0
+                              Decorate 80(g_tTex2du4) Binding 6
                               Decorate 89(g_tTexcdf4) DescriptorSet 0
-                              Decorate 89(g_tTexcdf4) Binding 0
+                              Decorate 89(g_tTexcdf4) Binding 7
                               Decorate 102(g_tTexcdi4) DescriptorSet 0
-                              Decorate 102(g_tTexcdi4) Binding 0
+                              Decorate 102(g_tTexcdi4) Binding 8
                               Decorate 111(g_tTexcdu4) DescriptorSet 0
-                              Decorate 111(g_tTexcdu4) Binding 0
+                              Decorate 111(g_tTexcdu4) Binding 9
                               Decorate 132(@entryPointOutput.Color) Location 0
                               Decorate 136(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 139(g_tTex1df4a) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
index a2875e9..03888b6 100644
--- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
@@ -583,27 +583,27 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 34(g_tTex1di4) DescriptorSet 0
-                              Decorate 34(g_tTex1di4) Binding 0
+                              Decorate 34(g_tTex1di4) Binding 2
                               Decorate 47(g_tTex1du4) DescriptorSet 0
-                              Decorate 47(g_tTex1du4) Binding 0
+                              Decorate 47(g_tTex1du4) Binding 3
                               Decorate 57(g_tTex2df4) DescriptorSet 0
-                              Decorate 57(g_tTex2df4) Binding 0
+                              Decorate 57(g_tTex2df4) Binding 4
                               Decorate 69(g_tTex2di4) DescriptorSet 0
-                              Decorate 69(g_tTex2di4) Binding 0
+                              Decorate 69(g_tTex2di4) Binding 5
                               Decorate 80(g_tTex2du4) DescriptorSet 0
-                              Decorate 80(g_tTex2du4) Binding 0
+                              Decorate 80(g_tTex2du4) Binding 6
                               Decorate 92(g_tTex3df4) DescriptorSet 0
-                              Decorate 92(g_tTex3df4) Binding 0
+                              Decorate 92(g_tTex3df4) Binding 7
                               Decorate 105(g_tTex3di4) DescriptorSet 0
-                              Decorate 105(g_tTex3di4) Binding 0
+                              Decorate 105(g_tTex3di4) Binding 8
                               Decorate 115(g_tTex3du4) DescriptorSet 0
-                              Decorate 115(g_tTex3du4) Binding 0
+                              Decorate 115(g_tTex3du4) Binding 9
                               Decorate 128(g_tTexcdf4) DescriptorSet 0
-                              Decorate 128(g_tTexcdf4) Binding 0
+                              Decorate 128(g_tTexcdf4) Binding 10
                               Decorate 137(g_tTexcdi4) DescriptorSet 0
-                              Decorate 137(g_tTexcdi4) Binding 0
+                              Decorate 137(g_tTexcdi4) Binding 11
                               Decorate 146(g_tTexcdu4) DescriptorSet 0
-                              Decorate 146(g_tTexcdu4) Binding 0
+                              Decorate 146(g_tTexcdu4) Binding 12
                               Decorate 167(@entryPointOutput.Color) Location 0
                               Decorate 171(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 174(g_tTex1df4a) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
index 79f6099..71da245 100644
--- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
@@ -540,27 +540,27 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 34(g_tTex1di4) DescriptorSet 0
-                              Decorate 34(g_tTex1di4) Binding 0
+                              Decorate 34(g_tTex1di4) Binding 2
                               Decorate 47(g_tTex1du4) DescriptorSet 0
-                              Decorate 47(g_tTex1du4) Binding 0
+                              Decorate 47(g_tTex1du4) Binding 3
                               Decorate 57(g_tTex2df4) DescriptorSet 0
-                              Decorate 57(g_tTex2df4) Binding 0
+                              Decorate 57(g_tTex2df4) Binding 4
                               Decorate 69(g_tTex2di4) DescriptorSet 0
-                              Decorate 69(g_tTex2di4) Binding 0
+                              Decorate 69(g_tTex2di4) Binding 5
                               Decorate 80(g_tTex2du4) DescriptorSet 0
-                              Decorate 80(g_tTex2du4) Binding 0
+                              Decorate 80(g_tTex2du4) Binding 6
                               Decorate 92(g_tTex3df4) DescriptorSet 0
-                              Decorate 92(g_tTex3df4) Binding 0
+                              Decorate 92(g_tTex3df4) Binding 7
                               Decorate 105(g_tTex3di4) DescriptorSet 0
-                              Decorate 105(g_tTex3di4) Binding 0
+                              Decorate 105(g_tTex3di4) Binding 8
                               Decorate 115(g_tTex3du4) DescriptorSet 0
-                              Decorate 115(g_tTex3du4) Binding 0
+                              Decorate 115(g_tTex3du4) Binding 9
                               Decorate 128(g_tTexcdf4) DescriptorSet 0
-                              Decorate 128(g_tTexcdf4) Binding 0
+                              Decorate 128(g_tTexcdf4) Binding 10
                               Decorate 137(g_tTexcdi4) DescriptorSet 0
-                              Decorate 137(g_tTexcdi4) Binding 0
+                              Decorate 137(g_tTexcdi4) Binding 11
                               Decorate 146(g_tTexcdu4) DescriptorSet 0
-                              Decorate 146(g_tTexcdu4) Binding 0
+                              Decorate 146(g_tTexcdu4) Binding 12
                               Decorate 162(@entryPointOutput.Pos) BuiltIn Position
                               Decorate 165(g_tTex1df4a) DescriptorSet 0
                               Decorate 165(g_tTex1df4a) Binding 1
diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
index b508a04..63192df 100644
--- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
@@ -520,21 +520,21 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 35(g_tTex1di4) DescriptorSet 0
-                              Decorate 35(g_tTex1di4) Binding 0
+                              Decorate 35(g_tTex1di4) Binding 2
                               Decorate 48(g_tTex1du4) DescriptorSet 0
-                              Decorate 48(g_tTex1du4) Binding 0
+                              Decorate 48(g_tTex1du4) Binding 3
                               Decorate 58(g_tTex2df4) DescriptorSet 0
-                              Decorate 58(g_tTex2df4) Binding 0
+                              Decorate 58(g_tTex2df4) Binding 4
                               Decorate 73(g_tTex2di4) DescriptorSet 0
-                              Decorate 73(g_tTex2di4) Binding 0
+                              Decorate 73(g_tTex2di4) Binding 5
                               Decorate 85(g_tTex2du4) DescriptorSet 0
-                              Decorate 85(g_tTex2du4) Binding 0
+                              Decorate 85(g_tTex2du4) Binding 6
                               Decorate 99(g_tTex3df4) DescriptorSet 0
-                              Decorate 99(g_tTex3df4) Binding 0
+                              Decorate 99(g_tTex3df4) Binding 7
                               Decorate 114(g_tTex3di4) DescriptorSet 0
-                              Decorate 114(g_tTex3di4) Binding 0
+                              Decorate 114(g_tTex3di4) Binding 8
                               Decorate 125(g_tTex3du4) DescriptorSet 0
-                              Decorate 125(g_tTex3du4) Binding 0
+                              Decorate 125(g_tTex3du4) Binding 9
                               Decorate 149(@entryPointOutput.Color) Location 0
                               Decorate 153(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 156(g_tTex1df4a) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
index c505478..fb8513b 100644
--- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
@@ -383,15 +383,15 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 38(g_tTex1di4) DescriptorSet 0
-                              Decorate 38(g_tTex1di4) Binding 0
+                              Decorate 38(g_tTex1di4) Binding 2
                               Decorate 50(g_tTex1du4) DescriptorSet 0
-                              Decorate 50(g_tTex1du4) Binding 0
+                              Decorate 50(g_tTex1du4) Binding 3
                               Decorate 59(g_tTex2df4) DescriptorSet 0
-                              Decorate 59(g_tTex2df4) Binding 0
+                              Decorate 59(g_tTex2df4) Binding 4
                               Decorate 75(g_tTex2di4) DescriptorSet 0
-                              Decorate 75(g_tTex2di4) Binding 0
+                              Decorate 75(g_tTex2di4) Binding 5
                               Decorate 84(g_tTex2du4) DescriptorSet 0
-                              Decorate 84(g_tTex2du4) Binding 0
+                              Decorate 84(g_tTex2du4) Binding 6
                               Decorate 103(@entryPointOutput.Color) Location 0
                               Decorate 107(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 110(g_tTex1df4a) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
index 3a10ff9..95a1a54 100644
--- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
@@ -404,21 +404,21 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 36(g_tTex1di4a) DescriptorSet 0
-                              Decorate 36(g_tTex1di4a) Binding 0
+                              Decorate 36(g_tTex1di4a) Binding 2
                               Decorate 50(g_tTex1du4a) DescriptorSet 0
-                              Decorate 50(g_tTex1du4a) Binding 0
+                              Decorate 50(g_tTex1du4a) Binding 3
                               Decorate 61(g_tTex2df4a) DescriptorSet 0
-                              Decorate 61(g_tTex2df4a) Binding 0
+                              Decorate 61(g_tTex2df4a) Binding 4
                               Decorate 72(g_tTex2di4a) DescriptorSet 0
-                              Decorate 72(g_tTex2di4a) Binding 0
+                              Decorate 72(g_tTex2di4a) Binding 5
                               Decorate 83(g_tTex2du4a) DescriptorSet 0
-                              Decorate 83(g_tTex2du4a) Binding 0
+                              Decorate 83(g_tTex2du4a) Binding 6
                               Decorate 95(g_tTexcdf4a) DescriptorSet 0
-                              Decorate 95(g_tTexcdf4a) Binding 0
+                              Decorate 95(g_tTexcdf4a) Binding 7
                               Decorate 105(g_tTexcdi4a) DescriptorSet 0
-                              Decorate 105(g_tTexcdi4a) Binding 0
+                              Decorate 105(g_tTexcdi4a) Binding 8
                               Decorate 115(g_tTexcdu4a) DescriptorSet 0
-                              Decorate 115(g_tTexcdu4a) Binding 0
+                              Decorate 115(g_tTexcdu4a) Binding 9
                               Decorate 139(@entryPointOutput.Color) Location 0
                               Decorate 143(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 146(g_tTex1df4) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
index bc7c90c..99e252c 100644
--- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
@@ -478,27 +478,27 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 33(g_tTex1di4) DescriptorSet 0
-                              Decorate 33(g_tTex1di4) Binding 0
+                              Decorate 33(g_tTex1di4) Binding 2
                               Decorate 46(g_tTex1du4) DescriptorSet 0
-                              Decorate 46(g_tTex1du4) Binding 0
+                              Decorate 46(g_tTex1du4) Binding 3
                               Decorate 56(g_tTex2df4) DescriptorSet 0
-                              Decorate 56(g_tTex2df4) Binding 0
+                              Decorate 56(g_tTex2df4) Binding 4
                               Decorate 67(g_tTex2di4) DescriptorSet 0
-                              Decorate 67(g_tTex2di4) Binding 0
+                              Decorate 67(g_tTex2di4) Binding 5
                               Decorate 78(g_tTex2du4) DescriptorSet 0
-                              Decorate 78(g_tTex2du4) Binding 0
+                              Decorate 78(g_tTex2du4) Binding 6
                               Decorate 90(g_tTex3df4) DescriptorSet 0
-                              Decorate 90(g_tTex3df4) Binding 0
+                              Decorate 90(g_tTex3df4) Binding 7
                               Decorate 101(g_tTex3di4) DescriptorSet 0
-                              Decorate 101(g_tTex3di4) Binding 0
+                              Decorate 101(g_tTex3di4) Binding 8
                               Decorate 111(g_tTex3du4) DescriptorSet 0
-                              Decorate 111(g_tTex3du4) Binding 0
+                              Decorate 111(g_tTex3du4) Binding 9
                               Decorate 124(g_tTexcdf4) DescriptorSet 0
-                              Decorate 124(g_tTexcdf4) Binding 0
+                              Decorate 124(g_tTexcdf4) Binding 10
                               Decorate 133(g_tTexcdi4) DescriptorSet 0
-                              Decorate 133(g_tTexcdi4) Binding 0
+                              Decorate 133(g_tTexcdi4) Binding 11
                               Decorate 142(g_tTexcdu4) DescriptorSet 0
-                              Decorate 142(g_tTexcdu4) Binding 0
+                              Decorate 142(g_tTexcdu4) Binding 12
                               Decorate 163(@entryPointOutput.Color) Location 0
                               Decorate 167(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 170(g_sSamp2d) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
index 582d4b0..d4d720b 100644
--- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
@@ -432,27 +432,27 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 33(g_tTex1di4) DescriptorSet 0
-                              Decorate 33(g_tTex1di4) Binding 0
+                              Decorate 33(g_tTex1di4) Binding 2
                               Decorate 46(g_tTex1du4) DescriptorSet 0
-                              Decorate 46(g_tTex1du4) Binding 0
+                              Decorate 46(g_tTex1du4) Binding 3
                               Decorate 56(g_tTex2df4) DescriptorSet 0
-                              Decorate 56(g_tTex2df4) Binding 0
+                              Decorate 56(g_tTex2df4) Binding 4
                               Decorate 67(g_tTex2di4) DescriptorSet 0
-                              Decorate 67(g_tTex2di4) Binding 0
+                              Decorate 67(g_tTex2di4) Binding 5
                               Decorate 78(g_tTex2du4) DescriptorSet 0
-                              Decorate 78(g_tTex2du4) Binding 0
+                              Decorate 78(g_tTex2du4) Binding 6
                               Decorate 90(g_tTex3df4) DescriptorSet 0
-                              Decorate 90(g_tTex3df4) Binding 0
+                              Decorate 90(g_tTex3df4) Binding 7
                               Decorate 101(g_tTex3di4) DescriptorSet 0
-                              Decorate 101(g_tTex3di4) Binding 0
+                              Decorate 101(g_tTex3di4) Binding 8
                               Decorate 111(g_tTex3du4) DescriptorSet 0
-                              Decorate 111(g_tTex3du4) Binding 0
+                              Decorate 111(g_tTex3du4) Binding 9
                               Decorate 124(g_tTexcdf4) DescriptorSet 0
-                              Decorate 124(g_tTexcdf4) Binding 0
+                              Decorate 124(g_tTexcdf4) Binding 10
                               Decorate 133(g_tTexcdi4) DescriptorSet 0
-                              Decorate 133(g_tTexcdi4) Binding 0
+                              Decorate 133(g_tTexcdi4) Binding 11
                               Decorate 142(g_tTexcdu4) DescriptorSet 0
-                              Decorate 142(g_tTexcdu4) Binding 0
+                              Decorate 142(g_tTexcdu4) Binding 12
                               Decorate 158(@entryPointOutput.Pos) BuiltIn Position
                               Decorate 161(g_tTex1df4a) DescriptorSet 0
                               Decorate 161(g_tTex1df4a) Binding 1
diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
index cf7b32f..dda4238 100644
--- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
@@ -448,21 +448,21 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 34(g_tTex1di4) DescriptorSet 0
-                              Decorate 34(g_tTex1di4) Binding 0
+                              Decorate 34(g_tTex1di4) Binding 2
                               Decorate 47(g_tTex1du4) DescriptorSet 0
-                              Decorate 47(g_tTex1du4) Binding 0
+                              Decorate 47(g_tTex1du4) Binding 3
                               Decorate 57(g_tTex2df4) DescriptorSet 0
-                              Decorate 57(g_tTex2df4) Binding 0
+                              Decorate 57(g_tTex2df4) Binding 4
                               Decorate 71(g_tTex2di4) DescriptorSet 0
-                              Decorate 71(g_tTex2di4) Binding 0
+                              Decorate 71(g_tTex2di4) Binding 5
                               Decorate 83(g_tTex2du4) DescriptorSet 0
-                              Decorate 83(g_tTex2du4) Binding 0
+                              Decorate 83(g_tTex2du4) Binding 6
                               Decorate 97(g_tTex3df4) DescriptorSet 0
-                              Decorate 97(g_tTex3df4) Binding 0
+                              Decorate 97(g_tTex3df4) Binding 7
                               Decorate 110(g_tTex3di4) DescriptorSet 0
-                              Decorate 110(g_tTex3di4) Binding 0
+                              Decorate 110(g_tTex3di4) Binding 8
                               Decorate 121(g_tTex3du4) DescriptorSet 0
-                              Decorate 121(g_tTex3du4) Binding 0
+                              Decorate 121(g_tTex3du4) Binding 9
                               Decorate 145(@entryPointOutput.Color) Location 0
                               Decorate 149(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 152(g_tTex1df4a) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
index 313f6e4..c0c27e4 100644
--- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
@@ -337,15 +337,15 @@
                               Decorate 20(g_sSamp) DescriptorSet 0
                               Decorate 20(g_sSamp) Binding 0
                               Decorate 37(g_tTex1di4) DescriptorSet 0
-                              Decorate 37(g_tTex1di4) Binding 0
+                              Decorate 37(g_tTex1di4) Binding 2
                               Decorate 52(g_tTex1du4) DescriptorSet 0
-                              Decorate 52(g_tTex1du4) Binding 0
+                              Decorate 52(g_tTex1du4) Binding 3
                               Decorate 64(g_tTex2df4) DescriptorSet 0
-                              Decorate 64(g_tTex2df4) Binding 0
+                              Decorate 64(g_tTex2df4) Binding 4
                               Decorate 77(g_tTex2di4) DescriptorSet 0
-                              Decorate 77(g_tTex2di4) Binding 0
+                              Decorate 77(g_tTex2di4) Binding 5
                               Decorate 88(g_tTex2du4) DescriptorSet 0
-                              Decorate 88(g_tTex2du4) Binding 0
+                              Decorate 88(g_tTex2du4) Binding 6
                               Decorate 111(@entryPointOutput.Color) Location 0
                               Decorate 115(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 118(g_tTex1df4a) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.snorm.uav.comp.out b/Test/baseResults/hlsl.snorm.uav.comp.out
index 333a38a..7b8cd41 100644
--- a/Test/baseResults/hlsl.snorm.uav.comp.out
+++ b/Test/baseResults/hlsl.snorm.uav.comp.out
@@ -141,7 +141,7 @@
                               MemberDecorate 25($Global) 0 Offset 0
                               Decorate 25($Global) Block
                               Decorate 27 DescriptorSet 0
-                              Decorate 27 Binding 0
+                              Decorate 27 Binding 2
                               Decorate 34(ResultOutS) DescriptorSet 0
                               Decorate 34(ResultOutS) Binding 1
                               Decorate 39(ResultInU) DescriptorSet 0
diff --git a/Test/baseResults/hlsl.structarray.flatten.frag.out b/Test/baseResults/hlsl.structarray.flatten.frag.out
index fa9c298..97e57b1 100644
--- a/Test/baseResults/hlsl.structarray.flatten.frag.out
+++ b/Test/baseResults/hlsl.structarray.flatten.frag.out
@@ -199,38 +199,52 @@
                               Name 78  "g_texdata_array2[2].tex"
                               Name 79  "g_texdata_array2[2].nonopaque_thing"
                               Decorate 18(g_texdata.tex) DescriptorSet 0
-                              Decorate 18(g_texdata.tex) Binding 0
+                              Decorate 18(g_texdata.tex) Binding 1
                               Decorate 22(g_texdata.samp) DescriptorSet 0
                               Decorate 22(g_texdata.samp) Binding 0
                               Decorate 28(g_texdata_array[1].tex) DescriptorSet 0
-                              Decorate 28(g_texdata_array[1].tex) Binding 0
+                              Decorate 28(g_texdata_array[1].tex) Binding 3
                               Decorate 30(g_texdata_array[1].samp) DescriptorSet 0
-                              Decorate 30(g_texdata_array[1].samp) Binding 0
+                              Decorate 30(g_texdata_array[1].samp) Binding 2
                               Decorate 40(g_texdata_array2[1].tex) DescriptorSet 0
-                              Decorate 40(g_texdata_array2[1].tex) Binding 0
+                              Decorate 40(g_texdata_array2[1].tex) Binding 5
                               Decorate 45(g_texdata_array2[1].samp) DescriptorSet 0
-                              Decorate 45(g_texdata_array2[1].samp) Binding 0
+                              Decorate 45(g_texdata_array2[1].samp) Binding 4
                               Decorate 59(ps_output.color) Location 0
                               Decorate 62(g_samp) DescriptorSet 0
                               Decorate 62(g_samp) Binding 0
                               Decorate 63(g_tex) DescriptorSet 0
                               Decorate 63(g_tex) Binding 0
+                              Decorate 65(g_texdata.nonopaque_thing) Location 0
+                              Decorate 65(g_texdata.nonopaque_thing) DescriptorSet 0
                               Decorate 66(g_texdata_array[0].samp) DescriptorSet 0
                               Decorate 66(g_texdata_array[0].samp) Binding 0
                               Decorate 67(g_texdata_array[0].tex) DescriptorSet 0
                               Decorate 67(g_texdata_array[0].tex) Binding 0
+                              Decorate 68(g_texdata_array[0].nonopaque_thing) Location 1
+                              Decorate 68(g_texdata_array[0].nonopaque_thing) DescriptorSet 0
+                              Decorate 69(g_texdata_array[1].nonopaque_thing) Location 2
+                              Decorate 69(g_texdata_array[1].nonopaque_thing) DescriptorSet 0
                               Decorate 70(g_texdata_array[2].samp) DescriptorSet 0
                               Decorate 70(g_texdata_array[2].samp) Binding 0
                               Decorate 71(g_texdata_array[2].tex) DescriptorSet 0
                               Decorate 71(g_texdata_array[2].tex) Binding 0
+                              Decorate 72(g_texdata_array[2].nonopaque_thing) Location 3
+                              Decorate 72(g_texdata_array[2].nonopaque_thing) DescriptorSet 0
                               Decorate 73(g_texdata_array2[0].samp) DescriptorSet 0
                               Decorate 73(g_texdata_array2[0].samp) Binding 0
                               Decorate 74(g_texdata_array2[0].tex) DescriptorSet 0
                               Decorate 74(g_texdata_array2[0].tex) Binding 0
+                              Decorate 75(g_texdata_array2[0].nonopaque_thing) Location 4
+                              Decorate 75(g_texdata_array2[0].nonopaque_thing) DescriptorSet 0
+                              Decorate 76(g_texdata_array2[1].nonopaque_thing) Location 5
+                              Decorate 76(g_texdata_array2[1].nonopaque_thing) DescriptorSet 0
                               Decorate 77(g_texdata_array2[2].samp) DescriptorSet 0
                               Decorate 77(g_texdata_array2[2].samp) Binding 0
                               Decorate 78(g_texdata_array2[2].tex) DescriptorSet 0
                               Decorate 78(g_texdata_array2[2].tex) Binding 0
+                              Decorate 79(g_texdata_array2[2].nonopaque_thing) Location 6
+                              Decorate 79(g_texdata_array2[2].nonopaque_thing) DescriptorSet 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/hlsl.structbuffer.append.fn.frag.out b/Test/baseResults/hlsl.structbuffer.append.fn.frag.out
index 5f0358b..6a239da 100644
--- a/Test/baseResults/hlsl.structbuffer.append.fn.frag.out
+++ b/Test/baseResults/hlsl.structbuffer.append.fn.frag.out
@@ -190,13 +190,13 @@
                               Decorate 9 BufferBlock
                               Decorate 12 BufferBlock
                               Decorate 49(sbuf_a) DescriptorSet 0
-                              Decorate 49(sbuf_a) Binding 0
+                              Decorate 49(sbuf_a) Binding 4
                               Decorate 50(sbuf_a@count) DescriptorSet 0
-                              Decorate 50(sbuf_a@count) Binding 0
+                              Decorate 50(sbuf_a@count) Binding 6
                               Decorate 51(sbuf_c) DescriptorSet 0
-                              Decorate 51(sbuf_c) Binding 0
+                              Decorate 51(sbuf_c) Binding 5
                               Decorate 52(sbuf_c@count) DescriptorSet 0
-                              Decorate 52(sbuf_c@count) Binding 0
+                              Decorate 52(sbuf_c@count) Binding 7
                               Decorate 58(pos) Flat
                               Decorate 58(pos) Location 0
                               Decorate 61(@entryPointOutput) Location 0
diff --git a/Test/baseResults/hlsl.structbuffer.append.frag.out b/Test/baseResults/hlsl.structbuffer.append.frag.out
index 31b8558..5631624 100644
--- a/Test/baseResults/hlsl.structbuffer.append.frag.out
+++ b/Test/baseResults/hlsl.structbuffer.append.frag.out
@@ -157,11 +157,11 @@
                               MemberDecorate 20(sbuf_a@count) 0 Offset 0
                               Decorate 20(sbuf_a@count) BufferBlock
                               Decorate 22(sbuf_a@count) DescriptorSet 0
-                              Decorate 22(sbuf_a@count) Binding 0
+                              Decorate 22(sbuf_a@count) Binding 1
                               Decorate 35(sbuf_c) DescriptorSet 0
-                              Decorate 35(sbuf_c) Binding 0
+                              Decorate 35(sbuf_c) Binding 2
                               Decorate 36(sbuf_c@count) DescriptorSet 0
-                              Decorate 36(sbuf_c@count) Binding 0
+                              Decorate 36(sbuf_c@count) Binding 3
                               Decorate 48(pos) Flat
                               Decorate 48(pos) Location 0
                               Decorate 51(@entryPointOutput) Location 0
diff --git a/Test/baseResults/hlsl.structbuffer.coherent.frag.out b/Test/baseResults/hlsl.structbuffer.coherent.frag.out
index 86af402..95a9e67 100644
--- a/Test/baseResults/hlsl.structbuffer.coherent.frag.out
+++ b/Test/baseResults/hlsl.structbuffer.coherent.frag.out
@@ -208,7 +208,7 @@
                               MemberDecorate 15(sbuf2) 0 Offset 0
                               Decorate 15(sbuf2) BufferBlock
                               Decorate 17(sbuf2) DescriptorSet 0
-                              Decorate 17(sbuf2) Binding 0
+                              Decorate 17(sbuf2) Binding 1
                               MemberDecorate 28(sb_t) 0 Offset 0
                               MemberDecorate 28(sb_t) 1 Offset 12
                               Decorate 29 ArrayStride 16
diff --git a/Test/baseResults/hlsl.structbuffer.floatidx.comp.out b/Test/baseResults/hlsl.structbuffer.floatidx.comp.out
index 19c9e35..a7668a7 100644
--- a/Test/baseResults/hlsl.structbuffer.floatidx.comp.out
+++ b/Test/baseResults/hlsl.structbuffer.floatidx.comp.out
@@ -224,14 +224,14 @@
                               MemberDecorate 26(csb@count) 0 Offset 0
                               Decorate 26(csb@count) BufferBlock
                               Decorate 28(csb@count) DescriptorSet 0
-                              Decorate 28(csb@count) Binding 0
+                              Decorate 28(csb@count) Binding 2
                               Decorate 58(outtx) DescriptorSet 0
                               Decorate 58(outtx) Binding 0
                               Decorate 63 ArrayStride 16
                               MemberDecorate 64(rwsb) 0 Offset 0
                               Decorate 64(rwsb) BufferBlock
                               Decorate 66(rwsb) DescriptorSet 0
-                              Decorate 66(rwsb) Binding 0
+                              Decorate 66(rwsb) Binding 3
                               Decorate 80(nThreadId) BuiltIn GlobalInvocationId
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/hlsl.structbuffer.fn.frag.out b/Test/baseResults/hlsl.structbuffer.fn.frag.out
index bd2a4e6..c5afd35 100644
--- a/Test/baseResults/hlsl.structbuffer.fn.frag.out
+++ b/Test/baseResults/hlsl.structbuffer.fn.frag.out
@@ -191,9 +191,9 @@
                               Decorate 18 BufferBlock
                               Decorate 20 BufferBlock
                               Decorate 47(sbuf2) DescriptorSet 0
-                              Decorate 47(sbuf2) Binding 0
+                              Decorate 47(sbuf2) Binding 2
                               Decorate 48(sbuf2@count) DescriptorSet 0
-                              Decorate 48(sbuf2@count) Binding 0
+                              Decorate 48(sbuf2@count) Binding 3
                               Decorate 50(sbuf) DescriptorSet 0
                               Decorate 50(sbuf) Binding 10
                               Decorate 63(pos) Flat
diff --git a/Test/baseResults/hlsl.structbuffer.incdec.frag.out b/Test/baseResults/hlsl.structbuffer.incdec.frag.out
index 5899e9e..8ae9767 100644
--- a/Test/baseResults/hlsl.structbuffer.incdec.frag.out
+++ b/Test/baseResults/hlsl.structbuffer.incdec.frag.out
@@ -238,15 +238,15 @@
                               Decorate 22(sbuf_rw_i) DescriptorSet 0
                               Decorate 22(sbuf_rw_i) Binding 0
                               Decorate 26(sbuf_rw_d) DescriptorSet 0
-                              Decorate 26(sbuf_rw_d) Binding 0
+                              Decorate 26(sbuf_rw_d) Binding 2
                               Decorate 27(sbuf_rw_nocounter) DescriptorSet 0
-                              Decorate 27(sbuf_rw_nocounter) Binding 0
+                              Decorate 27(sbuf_rw_nocounter) Binding 4
                               MemberDecorate 34(sbuf_rw_i@count) 0 Offset 0
                               Decorate 34(sbuf_rw_i@count) BufferBlock
                               Decorate 36(sbuf_rw_i@count) DescriptorSet 0
-                              Decorate 36(sbuf_rw_i@count) Binding 0
+                              Decorate 36(sbuf_rw_i@count) Binding 1
                               Decorate 42(sbuf_rw_d@count) DescriptorSet 0
-                              Decorate 42(sbuf_rw_d@count) Binding 0
+                              Decorate 42(sbuf_rw_d@count) Binding 3
                               Decorate 63(pos) Flat
                               Decorate 63(pos) Location 0
                               Decorate 66(@entryPointOutput) Location 0
diff --git a/Test/baseResults/hlsl.structbuffer.rw.frag.out b/Test/baseResults/hlsl.structbuffer.rw.frag.out
index 1a97000..d6eb8f3 100644
--- a/Test/baseResults/hlsl.structbuffer.rw.frag.out
+++ b/Test/baseResults/hlsl.structbuffer.rw.frag.out
@@ -207,7 +207,7 @@
                               MemberDecorate 15(sbuf2) 0 Offset 0
                               Decorate 15(sbuf2) BufferBlock
                               Decorate 17(sbuf2) DescriptorSet 0
-                              Decorate 17(sbuf2) Binding 0
+                              Decorate 17(sbuf2) Binding 1
                               MemberDecorate 28(sb_t) 0 Offset 0
                               MemberDecorate 28(sb_t) 1 Offset 12
                               Decorate 29 ArrayStride 16
diff --git a/Test/baseResults/hlsl.subpass.frag.out b/Test/baseResults/hlsl.subpass.frag.out
index 36c058a..2aca628 100644
--- a/Test/baseResults/hlsl.subpass.frag.out
+++ b/Test/baseResults/hlsl.subpass.frag.out
@@ -500,73 +500,73 @@
                               Decorate 27(subpass_i4) Binding 0
                               Decorate 27(subpass_i4) InputAttachmentIndex 2
                               Decorate 36(subpass_u4) DescriptorSet 0
-                              Decorate 36(subpass_u4) Binding 0
+                              Decorate 36(subpass_u4) Binding 2
                               Decorate 36(subpass_u4) InputAttachmentIndex 3
                               Decorate 42(subpass_ms_f4) DescriptorSet 0
-                              Decorate 42(subpass_ms_f4) Binding 0
+                              Decorate 42(subpass_ms_f4) Binding 3
                               Decorate 42(subpass_ms_f4) InputAttachmentIndex 4
                               Decorate 49(subpass_ms_i4) DescriptorSet 0
-                              Decorate 49(subpass_ms_i4) Binding 0
+                              Decorate 49(subpass_ms_i4) Binding 4
                               Decorate 49(subpass_ms_i4) InputAttachmentIndex 5
                               Decorate 55(subpass_ms_u4) DescriptorSet 0
-                              Decorate 55(subpass_ms_u4) Binding 0
+                              Decorate 55(subpass_ms_u4) Binding 5
                               Decorate 55(subpass_ms_u4) InputAttachmentIndex 6
                               Decorate 61(subpass_f3) DescriptorSet 0
-                              Decorate 61(subpass_f3) Binding 0
+                              Decorate 61(subpass_f3) Binding 6
                               Decorate 61(subpass_f3) InputAttachmentIndex 1
                               Decorate 71(subpass_i3) DescriptorSet 0
-                              Decorate 71(subpass_i3) Binding 0
+                              Decorate 71(subpass_i3) Binding 7
                               Decorate 71(subpass_i3) InputAttachmentIndex 2
                               Decorate 81(subpass_u3) DescriptorSet 0
-                              Decorate 81(subpass_u3) Binding 0
+                              Decorate 81(subpass_u3) Binding 8
                               Decorate 81(subpass_u3) InputAttachmentIndex 3
                               Decorate 89(subpass_ms_f3) DescriptorSet 0
-                              Decorate 89(subpass_ms_f3) Binding 0
+                              Decorate 89(subpass_ms_f3) Binding 9
                               Decorate 89(subpass_ms_f3) InputAttachmentIndex 4
                               Decorate 97(subpass_ms_i3) DescriptorSet 0
-                              Decorate 97(subpass_ms_i3) Binding 0
+                              Decorate 97(subpass_ms_i3) Binding 10
                               Decorate 97(subpass_ms_i3) InputAttachmentIndex 5
                               Decorate 105(subpass_ms_u3) DescriptorSet 0
-                              Decorate 105(subpass_ms_u3) Binding 0
+                              Decorate 105(subpass_ms_u3) Binding 11
                               Decorate 105(subpass_ms_u3) InputAttachmentIndex 6
                               Decorate 115(subpass_f2) DescriptorSet 0
-                              Decorate 115(subpass_f2) Binding 0
+                              Decorate 115(subpass_f2) Binding 12
                               Decorate 115(subpass_f2) InputAttachmentIndex 1
                               Decorate 123(subpass_i2) DescriptorSet 0
-                              Decorate 123(subpass_i2) Binding 0
+                              Decorate 123(subpass_i2) Binding 13
                               Decorate 123(subpass_i2) InputAttachmentIndex 2
                               Decorate 132(subpass_u2) DescriptorSet 0
-                              Decorate 132(subpass_u2) Binding 0
+                              Decorate 132(subpass_u2) Binding 14
                               Decorate 132(subpass_u2) InputAttachmentIndex 3
                               Decorate 139(subpass_ms_f2) DescriptorSet 0
-                              Decorate 139(subpass_ms_f2) Binding 0
+                              Decorate 139(subpass_ms_f2) Binding 15
                               Decorate 139(subpass_ms_f2) InputAttachmentIndex 4
                               Decorate 147(subpass_ms_i2) DescriptorSet 0
-                              Decorate 147(subpass_ms_i2) Binding 0
+                              Decorate 147(subpass_ms_i2) Binding 16
                               Decorate 147(subpass_ms_i2) InputAttachmentIndex 5
                               Decorate 154(subpass_ms_u2) DescriptorSet 0
-                              Decorate 154(subpass_ms_u2) Binding 0
+                              Decorate 154(subpass_ms_u2) Binding 17
                               Decorate 154(subpass_ms_u2) InputAttachmentIndex 6
                               Decorate 162(subpass_f) DescriptorSet 0
-                              Decorate 162(subpass_f) Binding 0
+                              Decorate 162(subpass_f) Binding 18
                               Decorate 162(subpass_f) InputAttachmentIndex 1
                               Decorate 168(subpass_i) DescriptorSet 0
-                              Decorate 168(subpass_i) Binding 0
+                              Decorate 168(subpass_i) Binding 19
                               Decorate 168(subpass_i) InputAttachmentIndex 2
                               Decorate 174(subpass_u) DescriptorSet 0
-                              Decorate 174(subpass_u) Binding 0
+                              Decorate 174(subpass_u) Binding 20
                               Decorate 174(subpass_u) InputAttachmentIndex 3
                               Decorate 179(subpass_ms_f) DescriptorSet 0
-                              Decorate 179(subpass_ms_f) Binding 0
+                              Decorate 179(subpass_ms_f) Binding 21
                               Decorate 179(subpass_ms_f) InputAttachmentIndex 4
                               Decorate 184(subpass_ms_i) DescriptorSet 0
-                              Decorate 184(subpass_ms_i) Binding 0
+                              Decorate 184(subpass_ms_i) Binding 22
                               Decorate 184(subpass_ms_i) InputAttachmentIndex 5
                               Decorate 189(subpass_ms_u) DescriptorSet 0
-                              Decorate 189(subpass_ms_u) Binding 0
+                              Decorate 189(subpass_ms_u) Binding 23
                               Decorate 189(subpass_ms_u) InputAttachmentIndex 6
                               Decorate 194(subpass_2) DescriptorSet 0
-                              Decorate 194(subpass_2) Binding 0
+                              Decorate 194(subpass_2) Binding 24
                               Decorate 194(subpass_2) InputAttachmentIndex 7
                               Decorate 202(@entryPointOutput) Location 0
                2:             TypeVoid
diff --git a/Test/baseResults/hlsl.texture.struct.frag.out b/Test/baseResults/hlsl.texture.struct.frag.out
index 251c649..3d718de 100644
--- a/Test/baseResults/hlsl.texture.struct.frag.out
+++ b/Test/baseResults/hlsl.texture.struct.frag.out
@@ -907,17 +907,17 @@
                               Decorate 30(g_sSamp) DescriptorSet 0
                               Decorate 30(g_sSamp) Binding 0
                               Decorate 90(g_tTex2s1) DescriptorSet 0
-                              Decorate 90(g_tTex2s1) Binding 0
+                              Decorate 90(g_tTex2s1) Binding 1
                               Decorate 114(g_tTex2s2) DescriptorSet 0
-                              Decorate 114(g_tTex2s2) Binding 0
+                              Decorate 114(g_tTex2s2) Binding 2
                               Decorate 140(g_tTex2s3) DescriptorSet 0
-                              Decorate 140(g_tTex2s3) Binding 0
+                              Decorate 140(g_tTex2s3) Binding 3
                               Decorate 168(g_tTex2s4) DescriptorSet 0
-                              Decorate 168(g_tTex2s4) Binding 0
+                              Decorate 168(g_tTex2s4) Binding 4
                               Decorate 202(g_tTex2s5) DescriptorSet 0
-                              Decorate 202(g_tTex2s5) Binding 0
+                              Decorate 202(g_tTex2s5) Binding 5
                               Decorate 229(g_tTex2s1a) DescriptorSet 0
-                              Decorate 229(g_tTex2s1a) Binding 0
+                              Decorate 229(g_tTex2s1a) Binding 6
                               Decorate 238(@entryPointOutput) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/hlsl.texture.subvec4.frag.out b/Test/baseResults/hlsl.texture.subvec4.frag.out
index 67f5686..8ba67cf 100644
--- a/Test/baseResults/hlsl.texture.subvec4.frag.out
+++ b/Test/baseResults/hlsl.texture.subvec4.frag.out
@@ -388,21 +388,21 @@
                               Decorate 17(g_tTex2dmsf1) DescriptorSet 0
                               Decorate 17(g_tTex2dmsf1) Binding 0
                               Decorate 33(g_tTex2dmsf2) DescriptorSet 0
-                              Decorate 33(g_tTex2dmsf2) Binding 0
+                              Decorate 33(g_tTex2dmsf2) Binding 1
                               Decorate 43(g_tTex2dmsf3) DescriptorSet 0
-                              Decorate 43(g_tTex2dmsf3) Binding 0
+                              Decorate 43(g_tTex2dmsf3) Binding 2
                               Decorate 53(g_tTex2dmsf4) DescriptorSet 0
-                              Decorate 53(g_tTex2dmsf4) Binding 0
+                              Decorate 53(g_tTex2dmsf4) Binding 3
                               Decorate 88(g_tTex2df1) DescriptorSet 0
-                              Decorate 88(g_tTex2df1) Binding 0
+                              Decorate 88(g_tTex2df1) Binding 4
                               Decorate 92(g_sSamp) DescriptorSet 0
-                              Decorate 92(g_sSamp) Binding 0
+                              Decorate 92(g_sSamp) Binding 8
                               Decorate 101(g_tTex2df2) DescriptorSet 0
-                              Decorate 101(g_tTex2df2) Binding 0
+                              Decorate 101(g_tTex2df2) Binding 5
                               Decorate 109(g_tTex2df3) DescriptorSet 0
-                              Decorate 109(g_tTex2df3) Binding 0
+                              Decorate 109(g_tTex2df3) Binding 6
                               Decorate 118(g_tTex2df4) DescriptorSet 0
-                              Decorate 118(g_tTex2df4) Binding 0
+                              Decorate 118(g_tTex2df4) Binding 7
                               Decorate 128(@entryPointOutput) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/hlsl.texturebuffer.frag.out b/Test/baseResults/hlsl.texturebuffer.frag.out
index d813f62..37e19c2 100644
--- a/Test/baseResults/hlsl.texturebuffer.frag.out
+++ b/Test/baseResults/hlsl.texturebuffer.frag.out
@@ -107,7 +107,7 @@
                               MemberDecorate 22(tbuf2) 1 Offset 16
                               Decorate 22(tbuf2) BufferBlock
                               Decorate 24 DescriptorSet 0
-                              Decorate 24 Binding 0
+                              Decorate 24 Binding 1
                               Decorate 32(pos) BuiltIn FragCoord
                               Decorate 35(@entryPointOutput) Location 0
                2:             TypeVoid
diff --git a/Test/baseResults/hlsl.tx.bracket.frag.out b/Test/baseResults/hlsl.tx.bracket.frag.out
index 025161f..424b848 100644
--- a/Test/baseResults/hlsl.tx.bracket.frag.out
+++ b/Test/baseResults/hlsl.tx.bracket.frag.out
@@ -493,25 +493,25 @@
                               MemberDecorate 45($Global) 7 Offset 80
                               Decorate 45($Global) Block
                               Decorate 47 DescriptorSet 0
-                              Decorate 47 Binding 0
+                              Decorate 47 Binding 9
                               Decorate 57(g_tTex1df4) DescriptorSet 0
                               Decorate 57(g_tTex1df4) Binding 0
                               Decorate 72(g_tTex1di4) DescriptorSet 0
-                              Decorate 72(g_tTex1di4) Binding 0
+                              Decorate 72(g_tTex1di4) Binding 1
                               Decorate 80(g_tTex1du4) DescriptorSet 0
-                              Decorate 80(g_tTex1du4) Binding 0
+                              Decorate 80(g_tTex1du4) Binding 2
                               Decorate 88(g_tTex2df4) DescriptorSet 0
-                              Decorate 88(g_tTex2df4) Binding 0
+                              Decorate 88(g_tTex2df4) Binding 3
                               Decorate 98(g_tTex2di4) DescriptorSet 0
-                              Decorate 98(g_tTex2di4) Binding 0
+                              Decorate 98(g_tTex2di4) Binding 4
                               Decorate 106(g_tTex2du4) DescriptorSet 0
-                              Decorate 106(g_tTex2du4) Binding 0
+                              Decorate 106(g_tTex2du4) Binding 5
                               Decorate 114(g_tTex3df4) DescriptorSet 0
-                              Decorate 114(g_tTex3df4) Binding 0
+                              Decorate 114(g_tTex3df4) Binding 6
                               Decorate 124(g_tTex3di4) DescriptorSet 0
-                              Decorate 124(g_tTex3di4) Binding 0
+                              Decorate 124(g_tTex3di4) Binding 7
                               Decorate 132(g_tTex3du4) DescriptorSet 0
-                              Decorate 132(g_tTex3du4) Binding 0
+                              Decorate 132(g_tTex3du4) Binding 8
                               Decorate 164(@entryPointOutput.Color) Location 0
                               Decorate 169(g_sSamp) DescriptorSet 0
                               Decorate 169(g_sSamp) Binding 0
diff --git a/Test/baseResults/hlsl.tx.overload.frag.out b/Test/baseResults/hlsl.tx.overload.frag.out
index f7af692..de8b38b 100644
--- a/Test/baseResults/hlsl.tx.overload.frag.out
+++ b/Test/baseResults/hlsl.tx.overload.frag.out
@@ -165,11 +165,11 @@
                               Decorate 45(tf1) DescriptorSet 0
                               Decorate 45(tf1) Binding 0
                               Decorate 49(tf4) DescriptorSet 0
-                              Decorate 49(tf4) Binding 0
+                              Decorate 49(tf4) Binding 1
                               Decorate 56(twf1) DescriptorSet 0
-                              Decorate 56(twf1) Binding 0
+                              Decorate 56(twf1) Binding 2
                               Decorate 63(twf4) DescriptorSet 0
-                              Decorate 63(twf4) Binding 0
+                              Decorate 63(twf4) Binding 3
                               Decorate 71(@entryPointOutput) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/link.vk.multiBlocksValid.0.0.vert.out b/Test/baseResults/link.vk.multiBlocksValid.0.0.vert.out
index 1f8ff94..ddb856d 100755
--- a/Test/baseResults/link.vk.multiBlocksValid.0.0.vert.out
+++ b/Test/baseResults/link.vk.multiBlocksValid.0.0.vert.out
@@ -211,6 +211,7 @@
                               Name 70  "BufferBlock"
                               MemberName 70(BufferBlock) 0  "p"
                               Name 72  "uBuf"
+                              Decorate 14(oColor) Location 4
                               MemberDecorate 16(ColorBlock) 0 Offset 0
                               MemberDecorate 16(ColorBlock) 1 Offset 16
                               MemberDecorate 16(ColorBlock) 2 Offset 32
@@ -223,6 +224,7 @@
                               Decorate 28(uColorBuf) DescriptorSet 0
                               Decorate 28(uColorBuf) Binding 0
                               Decorate 32(Vertex) Block
+                              Decorate 34(oV) Location 2
                               MemberDecorate 40(gl_PerVertex) 0 BuiltIn Position
                               MemberDecorate 40(gl_PerVertex) 1 BuiltIn PointSize
                               MemberDecorate 40(gl_PerVertex) 2 BuiltIn ClipDistance
@@ -236,6 +238,7 @@
                               Decorate 44(MatrixBlock) Block
                               Decorate 46(uM) DescriptorSet 0
                               Decorate 46(uM) Binding 0
+                              Decorate 65(P) Location 0
                               MemberDecorate 70(BufferBlock) 0 ColMajor
                               MemberDecorate 70(BufferBlock) 0 Offset 0
                               MemberDecorate 70(BufferBlock) 0 MatrixStride 16
diff --git a/Test/baseResults/link.vk.multiBlocksValid.1.0.geom.out b/Test/baseResults/link.vk.multiBlocksValid.1.0.geom.out
index fa37112..63be728 100755
--- a/Test/baseResults/link.vk.multiBlocksValid.1.0.geom.out
+++ b/Test/baseResults/link.vk.multiBlocksValid.1.0.geom.out
@@ -304,6 +304,7 @@
                               MemberName 95(BufferBlock) 0  "p"
                               Name 97  "uBuf"
                               Name 100  "P"
+                              Decorate 18(oColor) Location 2
                               MemberDecorate 20(ColorBlock) 0 Offset 0
                               MemberDecorate 20(ColorBlock) 1 Offset 16
                               MemberDecorate 20(ColorBlock) 2 Offset 32
@@ -325,13 +326,16 @@
                               Decorate 50(uM) DescriptorSet 0
                               Decorate 50(uM) Binding 0
                               Decorate 59(Vertex) Block
+                              Decorate 61(oV) Location 1
                               Decorate 64(Vertex) Block
+                              Decorate 68(iV) Location 0
                               MemberDecorate 95(BufferBlock) 0 ColMajor
                               MemberDecorate 95(BufferBlock) 0 Offset 0
                               MemberDecorate 95(BufferBlock) 0 MatrixStride 16
                               Decorate 95(BufferBlock) BufferBlock
                               Decorate 97(uBuf) DescriptorSet 0
                               Decorate 97(uBuf) Binding 1
+                              Decorate 100(P) Location 4
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/rayQuery.rgen.out b/Test/baseResults/rayQuery.rgen.out
index 69368b4..bf142a3 100644
--- a/Test/baseResults/rayQuery.rgen.out
+++ b/Test/baseResults/rayQuery.rgen.out
@@ -28,6 +28,8 @@
                               MemberDecorate 26(block) 0 Offset 0
                               MemberDecorate 26(block) 1 Offset 16
                               Decorate 26(block) BufferBlock
+                              Decorate 28 DescriptorSet 0
+                              Decorate 28 Binding 1
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
diff --git a/Test/baseResults/remap.basic.dcefunc.frag.out b/Test/baseResults/remap.basic.dcefunc.frag.out
index 1ec5cde..c531eba 100644
--- a/Test/baseResults/remap.basic.dcefunc.frag.out
+++ b/Test/baseResults/remap.basic.dcefunc.frag.out
@@ -12,6 +12,8 @@
                               Name 4  "main"
                               Name 17  "outf4"
                               Name 19  "inf"
+                              Decorate 17(outf4) Location 0
+                              Decorate 19(inf) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/remap.basic.everything.frag.out b/Test/baseResults/remap.basic.everything.frag.out
index b9f7b3a..d483f20 100644
--- a/Test/baseResults/remap.basic.everything.frag.out
+++ b/Test/baseResults/remap.basic.everything.frag.out
@@ -8,6 +8,8 @@
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 5663  "main" 4539 3773
                               ExecutionMode 5663 OriginUpperLeft
+                              Decorate 4539 Location 0
+                              Decorate 3773 Location 0
                8:             TypeVoid
             1282:             TypeFunction 8
               13:             TypeFloat 32
diff --git a/Test/baseResults/remap.basic.none.frag.out b/Test/baseResults/remap.basic.none.frag.out
index 6695428..34f64c8 100644
--- a/Test/baseResults/remap.basic.none.frag.out
+++ b/Test/baseResults/remap.basic.none.frag.out
@@ -13,6 +13,8 @@
                               Name 9  "dead_fn("
                               Name 17  "outf4"
                               Name 19  "inf"
+                              Decorate 17(outf4) Location 0
+                              Decorate 19(inf) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/remap.basic.strip.frag.out b/Test/baseResults/remap.basic.strip.frag.out
index 28f6201..f1d7769 100644
--- a/Test/baseResults/remap.basic.strip.frag.out
+++ b/Test/baseResults/remap.basic.strip.frag.out
@@ -8,6 +8,8 @@
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 17 19
                               ExecutionMode 4 OriginUpperLeft
+                              Decorate 17 Location 0
+                              Decorate 19 Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out
index a940867..88c516f 100644
--- a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out
+++ b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out
@@ -17,27 +17,27 @@
                               Decorate 3305 DescriptorSet 0
                               Decorate 3305 Binding 0
                               Decorate 4743 DescriptorSet 0
-                              Decorate 4743 Binding 0
+                              Decorate 4743 Binding 2
                               Decorate 4807 DescriptorSet 0
-                              Decorate 4807 Binding 0
+                              Decorate 4807 Binding 3
                               Decorate 5042 DescriptorSet 0
-                              Decorate 5042 Binding 0
+                              Decorate 5042 Binding 4
                               Decorate 5058 DescriptorSet 0
-                              Decorate 5058 Binding 0
+                              Decorate 5058 Binding 5
                               Decorate 5122 DescriptorSet 0
-                              Decorate 5122 Binding 0
+                              Decorate 5122 Binding 6
                               Decorate 3967 DescriptorSet 0
-                              Decorate 3967 Binding 0
+                              Decorate 3967 Binding 7
                               Decorate 3983 DescriptorSet 0
-                              Decorate 3983 Binding 0
+                              Decorate 3983 Binding 8
                               Decorate 4047 DescriptorSet 0
-                              Decorate 4047 Binding 0
+                              Decorate 4047 Binding 9
                               Decorate 3789 DescriptorSet 0
-                              Decorate 3789 Binding 0
+                              Decorate 3789 Binding 10
                               Decorate 3805 DescriptorSet 0
-                              Decorate 3805 Binding 0
+                              Decorate 3805 Binding 11
                               Decorate 3869 DescriptorSet 0
-                              Decorate 3869 Binding 0
+                              Decorate 3869 Binding 12
                               Decorate 4253 Location 0
                               Decorate 3709 BuiltIn FragDepth
                8:             TypeVoid
diff --git a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out
index a6a2ae6..465b024 100644
--- a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out
+++ b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out
@@ -69,27 +69,27 @@
                               Decorate 49(g_sSamp) DescriptorSet 0
                               Decorate 49(g_sSamp) Binding 0
                               Decorate 60(g_tTex1di4) DescriptorSet 0
-                              Decorate 60(g_tTex1di4) Binding 0
+                              Decorate 60(g_tTex1di4) Binding 2
                               Decorate 73(g_tTex1du4) DescriptorSet 0
-                              Decorate 73(g_tTex1du4) Binding 0
+                              Decorate 73(g_tTex1du4) Binding 3
                               Decorate 83(g_tTex2df4) DescriptorSet 0
-                              Decorate 83(g_tTex2df4) Binding 0
+                              Decorate 83(g_tTex2df4) Binding 4
                               Decorate 94(g_tTex2di4) DescriptorSet 0
-                              Decorate 94(g_tTex2di4) Binding 0
+                              Decorate 94(g_tTex2di4) Binding 5
                               Decorate 105(g_tTex2du4) DescriptorSet 0
-                              Decorate 105(g_tTex2du4) Binding 0
+                              Decorate 105(g_tTex2du4) Binding 6
                               Decorate 117(g_tTex3df4) DescriptorSet 0
-                              Decorate 117(g_tTex3df4) Binding 0
+                              Decorate 117(g_tTex3df4) Binding 7
                               Decorate 128(g_tTex3di4) DescriptorSet 0
-                              Decorate 128(g_tTex3di4) Binding 0
+                              Decorate 128(g_tTex3di4) Binding 8
                               Decorate 138(g_tTex3du4) DescriptorSet 0
-                              Decorate 138(g_tTex3du4) Binding 0
+                              Decorate 138(g_tTex3du4) Binding 9
                               Decorate 151(g_tTexcdf4) DescriptorSet 0
-                              Decorate 151(g_tTexcdf4) Binding 0
+                              Decorate 151(g_tTexcdf4) Binding 10
                               Decorate 160(g_tTexcdi4) DescriptorSet 0
-                              Decorate 160(g_tTexcdi4) Binding 0
+                              Decorate 160(g_tTexcdi4) Binding 11
                               Decorate 169(g_tTexcdu4) DescriptorSet 0
-                              Decorate 169(g_tTexcdu4) Binding 0
+                              Decorate 169(g_tTexcdu4) Binding 12
                               Decorate 188(@entryPointOutput.Color) Location 0
                               Decorate 192(@entryPointOutput.Depth) BuiltIn FragDepth
                               Decorate 195(g_sSamp2d) DescriptorSet 0
diff --git a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out
index ac02a7a..4fb9218 100644
--- a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out
+++ b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out
@@ -17,27 +17,27 @@
                               Decorate 49 DescriptorSet 0
                               Decorate 49 Binding 0
                               Decorate 60 DescriptorSet 0
-                              Decorate 60 Binding 0
+                              Decorate 60 Binding 2
                               Decorate 73 DescriptorSet 0
-                              Decorate 73 Binding 0
+                              Decorate 73 Binding 3
                               Decorate 83 DescriptorSet 0
-                              Decorate 83 Binding 0
+                              Decorate 83 Binding 4
                               Decorate 94 DescriptorSet 0
-                              Decorate 94 Binding 0
+                              Decorate 94 Binding 5
                               Decorate 105 DescriptorSet 0
-                              Decorate 105 Binding 0
+                              Decorate 105 Binding 6
                               Decorate 117 DescriptorSet 0
-                              Decorate 117 Binding 0
+                              Decorate 117 Binding 7
                               Decorate 128 DescriptorSet 0
-                              Decorate 128 Binding 0
+                              Decorate 128 Binding 8
                               Decorate 138 DescriptorSet 0
-                              Decorate 138 Binding 0
+                              Decorate 138 Binding 9
                               Decorate 151 DescriptorSet 0
-                              Decorate 151 Binding 0
+                              Decorate 151 Binding 10
                               Decorate 160 DescriptorSet 0
-                              Decorate 160 Binding 0
+                              Decorate 160 Binding 11
                               Decorate 169 DescriptorSet 0
-                              Decorate 169 Binding 0
+                              Decorate 169 Binding 12
                               Decorate 188 Location 0
                               Decorate 192 BuiltIn FragDepth
                               Decorate 195 DescriptorSet 0
diff --git a/Test/baseResults/remap.if.everything.frag.out b/Test/baseResults/remap.if.everything.frag.out
index cb28329..3a521be 100644
--- a/Test/baseResults/remap.if.everything.frag.out
+++ b/Test/baseResults/remap.if.everything.frag.out
@@ -8,6 +8,8 @@
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 5663  "main" 3773 4539
                               ExecutionMode 5663 OriginUpperLeft
+                              Decorate 3773 Location 0
+                              Decorate 4539 Location 0
                8:             TypeVoid
             1282:             TypeFunction 8
               13:             TypeFloat 32
diff --git a/Test/baseResults/remap.if.none.frag.out b/Test/baseResults/remap.if.none.frag.out
index 3861aa0..cb2d31b 100644
--- a/Test/baseResults/remap.if.none.frag.out
+++ b/Test/baseResults/remap.if.none.frag.out
@@ -12,6 +12,8 @@
                               Name 4  "main"
                               Name 8  "inf"
                               Name 17  "outf4"
+                              Decorate 8(inf) Location 0
+                              Decorate 17(outf4) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/remap.similar_1a.everything.frag.out b/Test/baseResults/remap.similar_1a.everything.frag.out
index ba49f1d..993dc1c 100644
--- a/Test/baseResults/remap.similar_1a.everything.frag.out
+++ b/Test/baseResults/remap.similar_1a.everything.frag.out
@@ -9,6 +9,9 @@
                               EntryPoint Fragment 5663  "main" 4201 4539 3773
                               ExecutionMode 5663 OriginUpperLeft
                               Decorate 4201 Flat
+                              Decorate 4201 Location 1
+                              Decorate 4539 Location 0
+                              Decorate 3773 Location 0
                8:             TypeVoid
             1282:             TypeFunction 8
               12:             TypeInt 32 1
diff --git a/Test/baseResults/remap.similar_1a.none.frag.out b/Test/baseResults/remap.similar_1a.none.frag.out
index 3031f50..e46b8e1 100644
--- a/Test/baseResults/remap.similar_1a.none.frag.out
+++ b/Test/baseResults/remap.similar_1a.none.frag.out
@@ -23,6 +23,9 @@
                               Name 78  "param"
                               Name 82  "param"
                               Decorate 53(ini4) Flat
+                              Decorate 53(ini4) Location 1
+                              Decorate 73(outf4) Location 0
+                              Decorate 75(inf) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
diff --git a/Test/baseResults/remap.similar_1b.everything.frag.out b/Test/baseResults/remap.similar_1b.everything.frag.out
index d999cbf..ffe5446 100644
--- a/Test/baseResults/remap.similar_1b.everything.frag.out
+++ b/Test/baseResults/remap.similar_1b.everything.frag.out
@@ -9,6 +9,9 @@
                               EntryPoint Fragment 5663  "main" 4201 4539 3773
                               ExecutionMode 5663 OriginUpperLeft
                               Decorate 4201 Flat
+                              Decorate 4201 Location 0
+                              Decorate 4539 Location 0
+                              Decorate 3773 Location 1
                8:             TypeVoid
             1282:             TypeFunction 8
               12:             TypeInt 32 1
diff --git a/Test/baseResults/remap.similar_1b.none.frag.out b/Test/baseResults/remap.similar_1b.none.frag.out
index 5a6c935..5f5241c 100644
--- a/Test/baseResults/remap.similar_1b.none.frag.out
+++ b/Test/baseResults/remap.similar_1b.none.frag.out
@@ -23,6 +23,9 @@
                               Name 83  "param"
                               Name 87  "param"
                               Decorate 58(ini4) Flat
+                              Decorate 58(ini4) Location 0
+                              Decorate 78(outf4) Location 0
+                              Decorate 80(inf) Location 1
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
diff --git a/Test/baseResults/remap.uniformarray.everything.frag.out b/Test/baseResults/remap.uniformarray.everything.frag.out
index 5693894..bebff93 100644
--- a/Test/baseResults/remap.uniformarray.everything.frag.out
+++ b/Test/baseResults/remap.uniformarray.everything.frag.out
@@ -8,6 +8,9 @@
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 5663  "main" 3608 4957 4339 5139
                               ExecutionMode 5663 OriginUpperLeft
+                              Decorate 3608 Location 1
+                              Decorate 4957 Location 0
+                              Decorate 4339 Location 7
                               Decorate 5139 Location 0
                8:             TypeVoid
             1282:             TypeFunction 8
diff --git a/Test/baseResults/remap.uniformarray.none.frag.out b/Test/baseResults/remap.uniformarray.none.frag.out
index bea1d7b..6bd58d2 100644
--- a/Test/baseResults/remap.uniformarray.none.frag.out
+++ b/Test/baseResults/remap.uniformarray.none.frag.out
@@ -16,6 +16,9 @@
                               Name 35  "alpha"
                               Name 47  "gl_FragColor"
                               Name 52  "texSampler2D"
+                              Decorate 14(color) Location 1
+                              Decorate 25(inColor) Location 0
+                              Decorate 35(alpha) Location 7
                               Decorate 47(gl_FragColor) Location 0
                               Decorate 52(texSampler2D) DescriptorSet 0
                               Decorate 52(texSampler2D) Binding 0
diff --git a/Test/baseResults/spv.1.4.image.frag.out b/Test/baseResults/spv.1.4.image.frag.out
index 6fbb0cd..fadde97 100755
--- a/Test/baseResults/spv.1.4.image.frag.out
+++ b/Test/baseResults/spv.1.4.image.frag.out
@@ -26,6 +26,7 @@
                               Decorate 26(i2D) DescriptorSet 0
                               Decorate 26(i2D) Binding 1
                               Decorate 30(ic2D) Flat
+                              Decorate 30(ic2D) Location 0
                               Decorate 40(ii2D) DescriptorSet 0
                               Decorate 40(ii2D) Binding 12
                               Decorate 52(ui2D) DescriptorSet 0
@@ -36,7 +37,9 @@
                               Decorate 77(ii2DMS) Binding 13
                               Decorate 89(ui2DMS) DescriptorSet 0
                               Decorate 89(ui2DMS) Binding 13
+                              Decorate 100(fragData) Location 0
                               Decorate 103(value) Flat
+                              Decorate 103(value) Location 1
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.1.4.sparseTexture.frag.out b/Test/baseResults/spv.1.4.sparseTexture.frag.out
index fd131e2..965f4c8 100755
--- a/Test/baseResults/spv.1.4.sparseTexture.frag.out
+++ b/Test/baseResults/spv.1.4.sparseTexture.frag.out
@@ -49,19 +49,26 @@
                               Name 212  "offsets"
                               Decorate 29(s2D) DescriptorSet 0
                               Decorate 29(s2D) Binding 0
+                              Decorate 33(c2) Location 0
                               Decorate 46(is2D) DescriptorSet 0
-                              Decorate 46(is2D) Binding 0
+                              Decorate 46(is2D) Binding 1
                               Decorate 63(us2D) DescriptorSet 0
-                              Decorate 63(us2D) Binding 0
+                              Decorate 63(us2D) Binding 2
                               Decorate 149(i2D) DescriptorSet 0
-                              Decorate 149(i2D) Binding 0
+                              Decorate 149(i2D) Binding 3
                               Decorate 152(ic2) Flat
+                              Decorate 152(ic2) Location 3
                               Decorate 162(ii2DMS) DescriptorSet 0
-                              Decorate 162(ii2DMS) Binding 0
+                              Decorate 162(ii2DMS) Binding 4
                               Decorate 177(ui3D) DescriptorSet 0
-                              Decorate 177(ui3D) Binding 0
+                              Decorate 177(ui3D) Binding 5
                               Decorate 181(ic3) Flat
+                              Decorate 181(ic3) Location 4
+                              Decorate 189(outColor) Location 0
+                              Decorate 206(c3) Location 1
+                              Decorate 208(c4) Location 2
                               Decorate 212(offsets) Flat
+                              Decorate 212(offsets) Location 5
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
diff --git a/Test/baseResults/spv.1.4.texture.frag.out b/Test/baseResults/spv.1.4.texture.frag.out
index 64fb680..ac9f72f 100755
--- a/Test/baseResults/spv.1.4.texture.frag.out
+++ b/Test/baseResults/spv.1.4.texture.frag.out
@@ -21,12 +21,17 @@
                               Name 78  "color"
                               Decorate 15(texSampler2D) DescriptorSet 0
                               Decorate 15(texSampler2D) Binding 0
+                              Decorate 19(coords2D) Location 1
                               Decorate 28(itexSampler2D) DescriptorSet 0
-                              Decorate 28(itexSampler2D) Binding 0
+                              Decorate 28(itexSampler2D) Binding 1
                               Decorate 40(utexSampler2D) DescriptorSet 0
-                              Decorate 40(utexSampler2D) Binding 0
+                              Decorate 40(utexSampler2D) Binding 2
                               Decorate 51(iCoords2D) Flat
+                              Decorate 51(iCoords2D) Location 2
                               Decorate 54(iLod) Flat
+                              Decorate 54(iLod) Location 3
+                              Decorate 76(t) Location 0
+                              Decorate 78(color) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.100ops.frag.out b/Test/baseResults/spv.100ops.frag.out
index 1808192..42c9995 100644
--- a/Test/baseResults/spv.100ops.frag.out
+++ b/Test/baseResults/spv.100ops.frag.out
@@ -22,14 +22,17 @@
                               Decorate 13(face2) RelaxedPrecision
                               Decorate 17(z) RelaxedPrecision
                               Decorate 21(low) RelaxedPrecision
+                              Decorate 21(low) Location 0
                               Decorate 22 RelaxedPrecision
                               Decorate 23 RelaxedPrecision
                               Decorate 25 RelaxedPrecision
                               Decorate 26(high) RelaxedPrecision
+                              Decorate 26(high) Location 1
                               Decorate 27 RelaxedPrecision
                               Decorate 32 RelaxedPrecision
                               Decorate 34 RelaxedPrecision
                               Decorate 37(Color) RelaxedPrecision
+                              Decorate 37(Color) Location 0
                               Decorate 38 RelaxedPrecision
                               Decorate 39 RelaxedPrecision
                               Decorate 40 RelaxedPrecision
diff --git a/Test/baseResults/spv.130.frag.out b/Test/baseResults/spv.130.frag.out
index 76c474a..29c7d85 100644
--- a/Test/baseResults/spv.130.frag.out
+++ b/Test/baseResults/spv.130.frag.out
@@ -58,27 +58,34 @@
                               Name 199  "s2DRS"
                               Name 203  "s1D"
                               Name 204  "s2DS"
+                              Decorate 17(o) Location 0
                               Decorate 21(samp2D) DescriptorSet 0
-                              Decorate 21(samp2D) Binding 0
+                              Decorate 21(samp2D) Binding 2
                               Decorate 37(samp2DA) DescriptorSet 0
-                              Decorate 37(samp2DA) Binding 0
+                              Decorate 37(samp2DA) Binding 5
                               Decorate 47(samp2DR) DescriptorSet 0
-                              Decorate 47(samp2DR) Binding 0
+                              Decorate 47(samp2DR) Binding 4
                               Decorate 55(samp2DS) DescriptorSet 0
-                              Decorate 55(samp2DS) Binding 0
+                              Decorate 55(samp2DS) Binding 3
+                              Decorate 68(io) Location 1
                               Decorate 72(Sca) DescriptorSet 0
-                              Decorate 72(Sca) Binding 0
+                              Decorate 72(Sca) Binding 6
+                              Decorate 79(i) Location 0
                               Decorate 87(Isca) DescriptorSet 0
-                              Decorate 87(Isca) Binding 0
+                              Decorate 87(Isca) Binding 7
+                              Decorate 99(uo) Location 2
                               Decorate 103(Usca) DescriptorSet 0
-                              Decorate 103(Usca) Binding 0
+                              Decorate 103(Usca) Binding 8
                               Decorate 118(Scas) DescriptorSet 0
-                              Decorate 118(Scas) Binding 0
+                              Decorate 118(Scas) Binding 9
                               Decorate 167(sampC) DescriptorSet 0
-                              Decorate 167(sampC) Binding 0
+                              Decorate 167(sampC) Binding 1
                               Decorate 173(gl_ClipDistance) BuiltIn ClipDistance
                               Decorate 184(fflat) Flat
+                              Decorate 184(fflat) Location 1
+                              Decorate 185(fsmooth) Location 2
                               Decorate 186(fnop) NoPerspective
+                              Decorate 186(fnop) Location 3
                               Decorate 193(bounds) DescriptorSet 0
                               Decorate 193(bounds) Binding 0
                               Decorate 194(s2D) DescriptorSet 0
diff --git a/Test/baseResults/spv.140.frag.out b/Test/baseResults/spv.140.frag.out
index 5a96fbf..a517882 100644
--- a/Test/baseResults/spv.140.frag.out
+++ b/Test/baseResults/spv.140.frag.out
@@ -37,11 +37,13 @@
                               MemberName 92(bi) 0  "v"
                               Name 95  "bname"
                               Decorate 14(gl_FrontFacing) BuiltIn FrontFacing
+                              Decorate 23(o) Location 0
                               Decorate 28(gl_ClipDistance) BuiltIn ClipDistance
+                              Decorate 38(k) Location 0
                               Decorate 50(sampR) DescriptorSet 0
                               Decorate 50(sampR) Binding 0
                               Decorate 58(sampB) DescriptorSet 0
-                              Decorate 58(sampB) Binding 0
+                              Decorate 58(sampB) Binding 1
                               Decorate 82(samp2Da) DescriptorSet 0
                               Decorate 82(samp2Da) Binding 0
                               Decorate 85 ArrayStride 64
diff --git a/Test/baseResults/spv.150.geom.out b/Test/baseResults/spv.150.geom.out
index 3a18a78..0ad3337 100644
--- a/Test/baseResults/spv.150.geom.out
+++ b/Test/baseResults/spv.150.geom.out
@@ -38,8 +38,10 @@
                               MemberName 68(toFragment) 0  "color"
                               Name 70  "toF"
                               Decorate 8(fromVertex) Block
+                              Decorate 10 Location 1
                               Decorate 10 Stream 3
                               Decorate 13(fromVertex) Block
+                              Decorate 18(fromV) Location 0
                               MemberDecorate 27(gl_PerVertex) 0 BuiltIn Position
                               MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize
                               MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance
@@ -55,6 +57,7 @@
                               Decorate 51(gl_Layer) Stream 0
                               Decorate 51(gl_Layer) BuiltIn Layer
                               Decorate 68(toFragment) Block
+                              Decorate 70(toF) Location 0
                               Decorate 70(toF) Stream 3
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.150.vert.out b/Test/baseResults/spv.150.vert.out
index 6694d7c..2b09f4b 100644
--- a/Test/baseResults/spv.150.vert.out
+++ b/Test/baseResults/spv.150.vert.out
@@ -33,8 +33,12 @@
                               MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize
                               MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance
                               Decorate 11(gl_PerVertex) Block
+                              Decorate 17(iv4) Location 0
+                              Decorate 23(ps) Location 1
+                              Decorate 38(s2out) Location 0
                               Decorate 47(s2D) DescriptorSet 0
                               Decorate 47(s2D) Binding 0
+                              Decorate 62(ui) Location 2
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.16bitstorage-int.frag.out b/Test/baseResults/spv.16bitstorage-int.frag.out
index ac0c8a6..a91b4e4 100644
--- a/Test/baseResults/spv.16bitstorage-int.frag.out
+++ b/Test/baseResults/spv.16bitstorage-int.frag.out
@@ -93,7 +93,7 @@
                               MemberDecorate 17(B2) 7 Offset 472
                               Decorate 17(B2) BufferBlock
                               Decorate 19(b2) DescriptorSet 0
-                              Decorate 19(b2) Binding 0
+                              Decorate 19(b2) Binding 1
                               Decorate 22 ArrayStride 16
                               MemberDecorate 23(S) 0 Offset 0
                               MemberDecorate 23(S) 1 Offset 4
@@ -126,7 +126,7 @@
                               MemberDecorate 49(B5) 7 Offset 1696
                               Decorate 49(B5) Block
                               Decorate 51(b5) DescriptorSet 0
-                              Decorate 51(b5) Binding 0
+                              Decorate 51(b5) Binding 2
                               MemberDecorate 88(S2) 0 ColMajor
                               MemberDecorate 88(S2) 0 Offset 0
                               MemberDecorate 88(S2) 0 MatrixStride 16
@@ -137,7 +137,7 @@
                               MemberDecorate 90(B4) 1 Offset 80
                               Decorate 90(B4) BufferBlock
                               Decorate 92(b4) DescriptorSet 0
-                              Decorate 92(b4) Binding 0
+                              Decorate 92(b4) Binding 4
                               MemberDecorate 93(S2) 0 RowMajor
                               MemberDecorate 93(S2) 0 Offset 0
                               MemberDecorate 93(S2) 0 MatrixStride 16
@@ -146,7 +146,7 @@
                               MemberDecorate 94(B3) 0 Offset 0
                               Decorate 94(B3) BufferBlock
                               Decorate 96(b3) DescriptorSet 0
-                              Decorate 96(b3) Binding 0
+                              Decorate 96(b3) Binding 3
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 16 1
diff --git a/Test/baseResults/spv.16bitstorage-uint.frag.out b/Test/baseResults/spv.16bitstorage-uint.frag.out
index 7f1f7c2..f90d0c1 100644
--- a/Test/baseResults/spv.16bitstorage-uint.frag.out
+++ b/Test/baseResults/spv.16bitstorage-uint.frag.out
@@ -93,7 +93,7 @@
                               MemberDecorate 17(B2) 7 Offset 472
                               Decorate 17(B2) BufferBlock
                               Decorate 19(b2) DescriptorSet 0
-                              Decorate 19(b2) Binding 0
+                              Decorate 19(b2) Binding 1
                               Decorate 22 ArrayStride 16
                               MemberDecorate 23(S) 0 Offset 0
                               MemberDecorate 23(S) 1 Offset 4
@@ -126,7 +126,7 @@
                               MemberDecorate 49(B5) 7 Offset 1696
                               Decorate 49(B5) Block
                               Decorate 51(b5) DescriptorSet 0
-                              Decorate 51(b5) Binding 0
+                              Decorate 51(b5) Binding 2
                               MemberDecorate 89(S2) 0 ColMajor
                               MemberDecorate 89(S2) 0 Offset 0
                               MemberDecorate 89(S2) 0 MatrixStride 16
@@ -137,7 +137,7 @@
                               MemberDecorate 91(B4) 1 Offset 80
                               Decorate 91(B4) BufferBlock
                               Decorate 93(b4) DescriptorSet 0
-                              Decorate 93(b4) Binding 0
+                              Decorate 93(b4) Binding 4
                               MemberDecorate 94(S2) 0 RowMajor
                               MemberDecorate 94(S2) 0 Offset 0
                               MemberDecorate 94(S2) 0 MatrixStride 16
@@ -146,7 +146,7 @@
                               MemberDecorate 95(B3) 0 Offset 0
                               Decorate 95(B3) BufferBlock
                               Decorate 97(b3) DescriptorSet 0
-                              Decorate 97(b3) Binding 0
+                              Decorate 97(b3) Binding 3
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 16 0
diff --git a/Test/baseResults/spv.16bitstorage.frag.out b/Test/baseResults/spv.16bitstorage.frag.out
index 367b220..2d934f4 100644
--- a/Test/baseResults/spv.16bitstorage.frag.out
+++ b/Test/baseResults/spv.16bitstorage.frag.out
@@ -93,7 +93,7 @@
                               MemberDecorate 17(B2) 7 Offset 472
                               Decorate 17(B2) BufferBlock
                               Decorate 19(b2) DescriptorSet 0
-                              Decorate 19(b2) Binding 0
+                              Decorate 19(b2) Binding 1
                               Decorate 22 ArrayStride 16
                               MemberDecorate 23(S) 0 Offset 0
                               MemberDecorate 23(S) 1 Offset 4
@@ -126,7 +126,7 @@
                               MemberDecorate 50(B5) 7 Offset 1696
                               Decorate 50(B5) Block
                               Decorate 52(b5) DescriptorSet 0
-                              Decorate 52(b5) Binding 0
+                              Decorate 52(b5) Binding 2
                               MemberDecorate 88(S2) 0 ColMajor
                               MemberDecorate 88(S2) 0 Offset 0
                               MemberDecorate 88(S2) 0 MatrixStride 16
@@ -137,7 +137,7 @@
                               MemberDecorate 90(B4) 1 Offset 80
                               Decorate 90(B4) BufferBlock
                               Decorate 92(b4) DescriptorSet 0
-                              Decorate 92(b4) Binding 0
+                              Decorate 92(b4) Binding 4
                               MemberDecorate 93(S2) 0 RowMajor
                               MemberDecorate 93(S2) 0 Offset 0
                               MemberDecorate 93(S2) 0 MatrixStride 16
@@ -146,7 +146,7 @@
                               MemberDecorate 94(B3) 0 Offset 0
                               Decorate 94(B3) BufferBlock
                               Decorate 96(b3) DescriptorSet 0
-                              Decorate 96(b3) Binding 0
+                              Decorate 96(b3) Binding 3
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 16
diff --git a/Test/baseResults/spv.300BuiltIns.vert.out b/Test/baseResults/spv.300BuiltIns.vert.out
index 0a36b2f..2201788 100644
--- a/Test/baseResults/spv.300BuiltIns.vert.out
+++ b/Test/baseResults/spv.300BuiltIns.vert.out
@@ -21,6 +21,7 @@
                               MemberDecorate 8(gl_PerVertex) 1 BuiltIn PointSize
                               Decorate 8(gl_PerVertex) Block
                               Decorate 14(ps) RelaxedPrecision
+                              Decorate 14(ps) Location 0
                               Decorate 15 RelaxedPrecision
                               Decorate 21(gl_VertexIndex) BuiltIn VertexIndex
                               Decorate 30 RelaxedPrecision
diff --git a/Test/baseResults/spv.300layout.frag.out b/Test/baseResults/spv.300layout.frag.out
index a6be91d..3b691e2 100644
--- a/Test/baseResults/spv.300layout.frag.out
+++ b/Test/baseResults/spv.300layout.frag.out
@@ -21,14 +21,17 @@
                               Decorate 9(c) RelaxedPrecision
                               Decorate 9(c) Location 7
                               Decorate 11(color) RelaxedPrecision
+                              Decorate 11(color) Location 1
                               Decorate 12 RelaxedPrecision
                               MemberDecorate 13(S) 0 RelaxedPrecision
                               MemberDecorate 13(S) 1 RelaxedPrecision
+                              Decorate 15(s) Location 2
                               Decorate 19 RelaxedPrecision
                               Decorate 20 RelaxedPrecision
                               Decorate 26(p) RelaxedPrecision
                               Decorate 26(p) Location 3
                               Decorate 29(pos) RelaxedPrecision
+                              Decorate 29(pos) Location 0
                               Decorate 30 RelaxedPrecision
                               Decorate 33 RelaxedPrecision
                               Decorate 34 RelaxedPrecision
diff --git a/Test/baseResults/spv.300layout.vert.out b/Test/baseResults/spv.300layout.vert.out
index 5c0b934..3db50b0 100644
--- a/Test/baseResults/spv.300layout.vert.out
+++ b/Test/baseResults/spv.300layout.vert.out
@@ -36,6 +36,7 @@
                               MemberName 126(S) 0  "c"
                               MemberName 126(S) 1  "f"
                               Name 128  "s"
+                              Decorate 9(pos) Location 0
                               Decorate 11(p) Location 3
                               MemberDecorate 17(Transform) 0 RowMajor
                               MemberDecorate 17(Transform) 0 Offset 0
@@ -63,17 +64,21 @@
                               MemberDecorate 45(T3) 3 Offset 2048
                               Decorate 45(T3) Block
                               Decorate 47 DescriptorSet 0
-                              Decorate 47 Binding 0
+                              Decorate 47 Binding 2
                               MemberDecorate 78(T2) 0 Offset 0
                               MemberDecorate 78(T2) 1 RowMajor
                               MemberDecorate 78(T2) 1 Offset 16
                               MemberDecorate 78(T2) 1 MatrixStride 16
                               Decorate 78(T2) Block
                               Decorate 80 DescriptorSet 0
-                              Decorate 80 Binding 0
+                              Decorate 80 Binding 1
+                              Decorate 98(color) Location 1
                               Decorate 100(c) Location 7
                               Decorate 108(iout) Flat
+                              Decorate 108(iout) Location 2
+                              Decorate 114(uiuin) Location 0
                               Decorate 120(aiv2) Location 9
+                              Decorate 128(s) Location 3
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.300layoutp.vert.out b/Test/baseResults/spv.300layoutp.vert.out
index 19f707e..315605d 100644
--- a/Test/baseResults/spv.300layoutp.vert.out
+++ b/Test/baseResults/spv.300layoutp.vert.out
@@ -36,6 +36,7 @@
                               MemberName 78(S) 0  "c"
                               MemberName 78(S) 1  "f"
                               Name 80  "s"
+                              Decorate 9(pos) Location 0
                               Decorate 11(p) Location 3
                               MemberDecorate 17(Transform) 0 RowMajor
                               MemberDecorate 17(Transform) 0 Offset 0
@@ -63,17 +64,20 @@
                               MemberDecorate 33(T3) 3 Offset 160
                               Decorate 33(T3) Block
                               Decorate 35 DescriptorSet 0
-                              Decorate 35 Binding 0
+                              Decorate 35 Binding 2
                               MemberDecorate 42(T2) 0 Offset 0
                               MemberDecorate 42(T2) 1 RowMajor
                               MemberDecorate 42(T2) 1 Offset 16
                               MemberDecorate 42(T2) 1 MatrixStride 16
                               Decorate 42(T2) Block
                               Decorate 44 DescriptorSet 0
-                              Decorate 44 Binding 0
+                              Decorate 44 Binding 1
+                              Decorate 50(color) Location 1
                               Decorate 52(c) Location 7
                               Decorate 60(iout) Flat
+                              Decorate 60(iout) Location 2
                               Decorate 72(aiv2) Location 9
+                              Decorate 80(s) Location 3
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.310.bitcast.frag.out b/Test/baseResults/spv.310.bitcast.frag.out
index 4a4f249..b7f823d 100644
--- a/Test/baseResults/spv.310.bitcast.frag.out
+++ b/Test/baseResults/spv.310.bitcast.frag.out
@@ -26,34 +26,46 @@
                               Name 139  "u3"
                               Name 148  "u4"
                               Decorate 14(f1) RelaxedPrecision
+                              Decorate 14(f1) Location 8
                               Decorate 15 RelaxedPrecision
                               Decorate 26(f2) RelaxedPrecision
+                              Decorate 26(f2) Location 9
                               Decorate 27 RelaxedPrecision
                               Decorate 37(f3) RelaxedPrecision
+                              Decorate 37(f3) Location 10
                               Decorate 38 RelaxedPrecision
+                              Decorate 48(f4) Location 11
                               Decorate 57 RelaxedPrecision
                               Decorate 64 RelaxedPrecision
                               Decorate 72 RelaxedPrecision
                               Decorate 89(i1) RelaxedPrecision
                               Decorate 89(i1) Flat
+                              Decorate 89(i1) Location 0
                               Decorate 90 RelaxedPrecision
                               Decorate 98(i2) RelaxedPrecision
                               Decorate 98(i2) Flat
+                              Decorate 98(i2) Location 1
                               Decorate 99 RelaxedPrecision
                               Decorate 107(i3) RelaxedPrecision
                               Decorate 107(i3) Flat
+                              Decorate 107(i3) Location 2
                               Decorate 108 RelaxedPrecision
                               Decorate 116(i4) Flat
+                              Decorate 116(i4) Location 3
                               Decorate 122(u1) RelaxedPrecision
                               Decorate 122(u1) Flat
+                              Decorate 122(u1) Location 4
                               Decorate 123 RelaxedPrecision
                               Decorate 130(u2) RelaxedPrecision
                               Decorate 130(u2) Flat
+                              Decorate 130(u2) Location 5
                               Decorate 131 RelaxedPrecision
                               Decorate 139(u3) RelaxedPrecision
                               Decorate 139(u3) Flat
+                              Decorate 139(u3) Location 6
                               Decorate 140 RelaxedPrecision
                               Decorate 148(u4) Flat
+                              Decorate 148(u4) Location 7
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
diff --git a/Test/baseResults/spv.310.comp.out b/Test/baseResults/spv.310.comp.out
index 25790a5..931d038 100644
--- a/Test/baseResults/spv.310.comp.out
+++ b/Test/baseResults/spv.310.comp.out
@@ -43,13 +43,13 @@
                               MemberDecorate 23(outbna) 1 Offset 16
                               Decorate 23(outbna) BufferBlock
                               Decorate 25(outbnamena) DescriptorSet 0
-                              Decorate 25(outbnamena) Binding 0
+                              Decorate 25(outbnamena) Binding 1
                               Decorate 47 ArrayStride 16
                               MemberDecorate 48(outs) 0 Offset 0
                               MemberDecorate 48(outs) 1 Offset 16
                               Decorate 48(outs) BufferBlock
                               Decorate 50(outnames) DescriptorSet 0
-                              Decorate 50(outnames) Binding 0
+                              Decorate 50(outnames) Binding 2
                               Decorate 53(gl_LocalInvocationID) BuiltIn LocalInvocationId
                               Decorate 65(gl_DeviceIndex) BuiltIn DeviceIndex
                               Decorate 71 BuiltIn WorkgroupSize
diff --git a/Test/baseResults/spv.400.frag.out b/Test/baseResults/spv.400.frag.out
index 7b0100f..2e7b2f5 100644
--- a/Test/baseResults/spv.400.frag.out
+++ b/Test/baseResults/spv.400.frag.out
@@ -53,19 +53,26 @@
                               Name 1107  "u"
                               Name 1115  "id"
                               Name 1116  "gl_PrimitiveID"
+                              Decorate 13(outp) Location 1
                               Decorate 17(u2drs) DescriptorSet 0
-                              Decorate 17(u2drs) Binding 0
+                              Decorate 17(u2drs) Binding 3
                               Decorate 1025(arrayedSampler) DescriptorSet 0
                               Decorate 1025(arrayedSampler) Binding 0
                               Decorate 1027(i) Flat
+                              Decorate 1027(i) Location 1
+                              Decorate 1033(c2D) Location 0
                               Decorate 1038(gl_ClipDistance) BuiltIn ClipDistance
+                              Decorate 1050(uoutp) Location 3
                               Decorate 1054(samp2dr) DescriptorSet 0
-                              Decorate 1054(samp2dr) Binding 0
+                              Decorate 1054(samp2dr) Binding 1
+                              Decorate 1076(ioutp) Location 2
                               Decorate 1080(isamp2DA) DescriptorSet 0
-                              Decorate 1080(isamp2DA) Binding 0
+                              Decorate 1080(isamp2DA) Binding 2
                               Decorate 1097(gl_FragCoord) BuiltIn FragCoord
                               Decorate 1099(vl2) Location 6
+                              Decorate 1105(uo) Location 0
                               Decorate 1107(u) Flat
+                              Decorate 1107(u) Location 2
                               Decorate 1116(gl_PrimitiveID) Flat
                               Decorate 1116(gl_PrimitiveID) BuiltIn PrimitiveId
                2:             TypeVoid
diff --git a/Test/baseResults/spv.400.tesc.out b/Test/baseResults/spv.400.tesc.out
index deea526..a07c9b1 100644
--- a/Test/baseResults/spv.400.tesc.out
+++ b/Test/baseResults/spv.400.tesc.out
@@ -59,6 +59,9 @@
                               Decorate 72(gl_TessLevelInner) Patch
                               Decorate 72(gl_TessLevelInner) BuiltIn TessLevelInner
                               Decorate 78(patchOut) Patch
+                              Decorate 78(patchOut) Location 0
+                              Decorate 82(inb) Location 0
+                              Decorate 83(ind) Location 1
                               Decorate 86(ivla) Location 3
                               Decorate 87(ivlb) Location 4
                               Decorate 90(ovla) Location 3
diff --git a/Test/baseResults/spv.400.tese.out b/Test/baseResults/spv.400.tese.out
index 7140f46..58f4b97 100644
--- a/Test/baseResults/spv.400.tese.out
+++ b/Test/baseResults/spv.400.tese.out
@@ -68,8 +68,13 @@
                               MemberDecorate 64(gl_PerVertex) 2 BuiltIn ClipDistance
                               Decorate 64(gl_PerVertex) Block
                               Decorate 75(patchIn) Patch
+                              Decorate 75(patchIn) Location 0
+                              Decorate 79(inb) Location 1
+                              Decorate 80(ind) Location 2
                               Decorate 81(testblb) Block
+                              Decorate 84(blb) Location 3
                               Decorate 85(testbld) Block
+                              Decorate 88(bld) Location 4
                               Decorate 91(ivla) Location 23
                               Decorate 92(ivlb) Location 24
                               Decorate 95(ovla) Location 23
diff --git a/Test/baseResults/spv.420.geom.out b/Test/baseResults/spv.420.geom.out
index 09d19da..17f2749 100644
--- a/Test/baseResults/spv.420.geom.out
+++ b/Test/baseResults/spv.420.geom.out
@@ -42,6 +42,7 @@
                               Decorate 33(gl_InvocationID) BuiltIn InvocationId
                               Decorate 41(s2D) DescriptorSet 0
                               Decorate 41(s2D) Binding 0
+                              Decorate 46(coord) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.430.frag.out b/Test/baseResults/spv.430.frag.out
index 8cf650e..15da382 100644
--- a/Test/baseResults/spv.430.frag.out
+++ b/Test/baseResults/spv.430.frag.out
@@ -15,6 +15,7 @@
                               Name 9  "color"
                               Name 14  "gl_Layer"
                               Name 19  "gl_ViewportIndex"
+                              Decorate 9(color) Location 0
                               Decorate 14(gl_Layer) Flat
                               Decorate 14(gl_Layer) BuiltIn Layer
                               Decorate 19(gl_ViewportIndex) Flat
diff --git a/Test/baseResults/spv.430.vert.out b/Test/baseResults/spv.430.vert.out
index 7ccbf45..9e1877a 100644
--- a/Test/baseResults/spv.430.vert.out
+++ b/Test/baseResults/spv.430.vert.out
@@ -41,7 +41,12 @@
                               Name 65  "outMS"
                               MemberDecorate 10(gl_PerVertex) 0 BuiltIn ClipDistance
                               Decorate 10(gl_PerVertex) Block
+                              Decorate 23(bad) Location 0
                               Decorate 34(badorder3) Flat
+                              Decorate 34(badorder3) Location 1
+                              Decorate 38(f) Location 11
+                              Decorate 41(badorder) Location 10
+                              Decorate 42(badorder2) Location 0
                               Decorate 42(badorder2) Invariant
                               MemberDecorate 43(boundblock) 0 Offset 0
                               Decorate 43(boundblock) Block
@@ -62,6 +67,7 @@
                               Decorate 62(var) Location 0
                               MemberDecorate 63(MS) 0 Location 17
                               Decorate 63(MS) Block
+                              Decorate 65(outMS) Location 2
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.450.noRedecl.tesc.out b/Test/baseResults/spv.450.noRedecl.tesc.out
index 777c161..0925119 100644
--- a/Test/baseResults/spv.450.noRedecl.tesc.out
+++ b/Test/baseResults/spv.450.noRedecl.tesc.out
@@ -24,6 +24,7 @@
                               MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance
                               Decorate 11(gl_PerVertex) Block
                               Decorate 20(patchOut) Patch
+                              Decorate 20(patchOut) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.450.tesc.out b/Test/baseResults/spv.450.tesc.out
index 85db2a8..4abc3dd 100644
--- a/Test/baseResults/spv.450.tesc.out
+++ b/Test/baseResults/spv.450.tesc.out
@@ -72,6 +72,7 @@
                               MemberDecorate 42(bn) 2 Patch
                               MemberDecorate 42(bn) 2 Location 25
                               Decorate 42(bn) Block
+                              Decorate 44 Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.460.frag.out b/Test/baseResults/spv.460.frag.out
index 11351d8..a8bec34 100644
--- a/Test/baseResults/spv.460.frag.out
+++ b/Test/baseResults/spv.460.frag.out
@@ -16,6 +16,7 @@
                               Name 8  "aui"
                               Name 10  "ui"
                               Decorate 8(aui) Offset 0
+                              Decorate 8(aui) DescriptorSet 0
                               Decorate 8(aui) Binding 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.8bitstorage-int.frag.out b/Test/baseResults/spv.8bitstorage-int.frag.out
index ccd6575..00ef309 100644
--- a/Test/baseResults/spv.8bitstorage-int.frag.out
+++ b/Test/baseResults/spv.8bitstorage-int.frag.out
@@ -92,7 +92,7 @@
                               MemberDecorate 17(B2) 7 Offset 236
                               Decorate 17(B2) BufferBlock
                               Decorate 19(b2) DescriptorSet 0
-                              Decorate 19(b2) Binding 0
+                              Decorate 19(b2) Binding 1
                               Decorate 22 ArrayStride 16
                               MemberDecorate 23(S) 0 Offset 0
                               MemberDecorate 23(S) 1 Offset 2
@@ -125,7 +125,7 @@
                               MemberDecorate 49(B5) 7 Offset 1696
                               Decorate 49(B5) Block
                               Decorate 51(b5) DescriptorSet 0
-                              Decorate 51(b5) Binding 0
+                              Decorate 51(b5) Binding 2
                               MemberDecorate 88(S2) 0 ColMajor
                               MemberDecorate 88(S2) 0 Offset 0
                               MemberDecorate 88(S2) 0 MatrixStride 16
@@ -136,7 +136,7 @@
                               MemberDecorate 90(B4) 1 Offset 80
                               Decorate 90(B4) BufferBlock
                               Decorate 92(b4) DescriptorSet 0
-                              Decorate 92(b4) Binding 0
+                              Decorate 92(b4) Binding 4
                               MemberDecorate 93(S2) 0 RowMajor
                               MemberDecorate 93(S2) 0 Offset 0
                               MemberDecorate 93(S2) 0 MatrixStride 16
@@ -145,7 +145,7 @@
                               MemberDecorate 94(B3) 0 Offset 0
                               Decorate 94(B3) BufferBlock
                               Decorate 96(b3) DescriptorSet 0
-                              Decorate 96(b3) Binding 0
+                              Decorate 96(b3) Binding 3
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 8 1
diff --git a/Test/baseResults/spv.8bitstorage-uint.frag.out b/Test/baseResults/spv.8bitstorage-uint.frag.out
index 746f555..5809991 100644
--- a/Test/baseResults/spv.8bitstorage-uint.frag.out
+++ b/Test/baseResults/spv.8bitstorage-uint.frag.out
@@ -92,7 +92,7 @@
                               MemberDecorate 17(B2) 7 Offset 236
                               Decorate 17(B2) BufferBlock
                               Decorate 19(b2) DescriptorSet 0
-                              Decorate 19(b2) Binding 0
+                              Decorate 19(b2) Binding 1
                               Decorate 22 ArrayStride 16
                               MemberDecorate 23(S) 0 Offset 0
                               MemberDecorate 23(S) 1 Offset 2
@@ -125,7 +125,7 @@
                               MemberDecorate 49(B5) 7 Offset 1696
                               Decorate 49(B5) Block
                               Decorate 51(b5) DescriptorSet 0
-                              Decorate 51(b5) Binding 0
+                              Decorate 51(b5) Binding 2
                               MemberDecorate 89(S2) 0 ColMajor
                               MemberDecorate 89(S2) 0 Offset 0
                               MemberDecorate 89(S2) 0 MatrixStride 16
@@ -136,7 +136,7 @@
                               MemberDecorate 91(B4) 1 Offset 80
                               Decorate 91(B4) BufferBlock
                               Decorate 93(b4) DescriptorSet 0
-                              Decorate 93(b4) Binding 0
+                              Decorate 93(b4) Binding 4
                               MemberDecorate 94(S2) 0 RowMajor
                               MemberDecorate 94(S2) 0 Offset 0
                               MemberDecorate 94(S2) 0 MatrixStride 16
@@ -145,7 +145,7 @@
                               MemberDecorate 95(B3) 0 Offset 0
                               Decorate 95(B3) BufferBlock
                               Decorate 97(b3) DescriptorSet 0
-                              Decorate 97(b3) Binding 0
+                              Decorate 97(b3) Binding 3
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 8 0
diff --git a/Test/baseResults/spv.AofA.frag.out b/Test/baseResults/spv.AofA.frag.out
index 41fedb8..57cdcb0 100644
--- a/Test/baseResults/spv.AofA.frag.out
+++ b/Test/baseResults/spv.AofA.frag.out
@@ -30,9 +30,15 @@
                               Name 94  "uAofA"
                               MemberName 94(uAofA) 0  "f"
                               Name 98  "nameAofA"
+                              Decorate 39(outfloat) Location 0
+                              Decorate 44(g5) Location 1
                               Decorate 68(i) Flat
+                              Decorate 68(i) Location 36
                               Decorate 70(j) Flat
+                              Decorate 70(j) Location 37
                               Decorate 72(k) Flat
+                              Decorate 72(k) Location 38
+                              Decorate 78(infloat) Location 0
                               Decorate 92 ArrayStride 16
                               Decorate 93 ArrayStride 64
                               MemberDecorate 94(uAofA) 0 Offset 0
diff --git a/Test/baseResults/spv.GeometryShaderPassthrough.geom.out b/Test/baseResults/spv.GeometryShaderPassthrough.geom.out
index 113685a..4b29238 100644
--- a/Test/baseResults/spv.GeometryShaderPassthrough.geom.out
+++ b/Test/baseResults/spv.GeometryShaderPassthrough.geom.out
@@ -27,6 +27,7 @@
                               Decorate 8(gl_PerVertex) Block
                               Decorate 10 PassthroughNV
                               Decorate 12(Inputs) Block
+                              Decorate 14 Location 0
                               Decorate 14 PassthroughNV
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.Operations.frag.out b/Test/baseResults/spv.Operations.frag.out
index 3069c83..a856e6e 100644
--- a/Test/baseResults/spv.Operations.frag.out
+++ b/Test/baseResults/spv.Operations.frag.out
@@ -33,10 +33,17 @@
                               Name 564  "m2"
                               Name 580  "uiv4"
                               Name 582  "ub"
+                              Decorate 11(uv4) Location 1
                               Decorate 22(ui) Flat
+                              Decorate 22(ui) Location 3
+                              Decorate 220(uf) Location 2
                               Decorate 296(uui) Flat
+                              Decorate 296(uui) Location 5
                               Decorate 314(uuv4) Flat
+                              Decorate 314(uuv4) Location 4
+                              Decorate 539(FragColor) Location 0
                               Decorate 580(uiv4) Flat
+                              Decorate 580(uiv4) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.RayGenShader.rgen.out b/Test/baseResults/spv.RayGenShader.rgen.out
index 9004093..363b3dd 100644
--- a/Test/baseResults/spv.RayGenShader.rgen.out
+++ b/Test/baseResults/spv.RayGenShader.rgen.out
@@ -31,6 +31,8 @@
                               MemberDecorate 37(block) 0 Offset 0
                               MemberDecorate 37(block) 1 Offset 16
                               Decorate 37(block) BufferBlock
+                              Decorate 39 DescriptorSet 0
+                              Decorate 39 Binding 2
                               Decorate 50(accNV1) DescriptorSet 0
                               Decorate 50(accNV1) Binding 1
                               Decorate 53(payload) Location 0
diff --git a/Test/baseResults/spv.RayGenShader11.rgen.out b/Test/baseResults/spv.RayGenShader11.rgen.out
index 0993324..195071f 100755
--- a/Test/baseResults/spv.RayGenShader11.rgen.out
+++ b/Test/baseResults/spv.RayGenShader11.rgen.out
@@ -30,6 +30,8 @@
                               MemberDecorate 37(block) 0 Offset 0
                               MemberDecorate 37(block) 1 Offset 16
                               Decorate 37(block) Block
+                              Decorate 39 DescriptorSet 0
+                              Decorate 39 Binding 1
                               Decorate 52(payload) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.RayGenShaderArray.rgen.out b/Test/baseResults/spv.RayGenShaderArray.rgen.out
index 4e6a164..fef54aa 100644
--- a/Test/baseResults/spv.RayGenShaderArray.rgen.out
+++ b/Test/baseResults/spv.RayGenShaderArray.rgen.out
@@ -37,6 +37,8 @@
                               MemberDecorate 34(block) 1 Offset 16
                               MemberDecorate 34(block) 2 Offset 28
                               Decorate 34(block) BufferBlock
+                              Decorate 36 DescriptorSet 0
+                              Decorate 36 Binding 2
                               Decorate 60(accNV1) DescriptorSet 0
                               Decorate 60(accNV1) Binding 1
                               Decorate 75 DecorationNonUniformEXT
diff --git a/Test/baseResults/spv.accessChain.frag.out b/Test/baseResults/spv.accessChain.frag.out
index 97ae23a..753688f 100644
--- a/Test/baseResults/spv.accessChain.frag.out
+++ b/Test/baseResults/spv.accessChain.frag.out
@@ -71,6 +71,7 @@
                               Name 219  "param"
                               Decorate 69(OutColor) Location 0
                               Decorate 170(u) Flat
+                              Decorate 170(u) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.aggOps.frag.out b/Test/baseResults/spv.aggOps.frag.out
index 7d1e0d4..05b14ea 100644
--- a/Test/baseResults/spv.aggOps.frag.out
+++ b/Test/baseResults/spv.aggOps.frag.out
@@ -44,6 +44,8 @@
                               Name 97  "samp2D"
                               Name 101  "coord"
                               Name 213  "color"
+                              Decorate 16(u) Location 1
+                              Decorate 41(w) Location 2
                               MemberDecorate 55(s1) 0 Offset 0
                               MemberDecorate 55(s1) 1 Offset 4
                               MemberDecorate 56(s2) 0 Offset 0
@@ -52,7 +54,7 @@
                               MemberDecorate 57(ub1) 0 Offset 0
                               Decorate 57(ub1) Block
                               Decorate 59(uName1) DescriptorSet 0
-                              Decorate 59(uName1) Binding 0
+                              Decorate 59(uName1) Binding 1
                               MemberDecorate 64(s1) 0 Offset 0
                               MemberDecorate 64(s1) 1 Offset 4
                               MemberDecorate 65(s2) 0 Offset 0
@@ -61,14 +63,16 @@
                               MemberDecorate 66(ub2) 0 Offset 0
                               Decorate 66(ub2) BufferBlock
                               Decorate 68(uName2) DescriptorSet 0
-                              Decorate 68(uName2) Binding 0
+                              Decorate 68(uName2) Binding 2
                               Decorate 97(samp2D) DescriptorSet 0
                               Decorate 97(samp2D) Binding 0
                               Decorate 101(coord) RelaxedPrecision
+                              Decorate 101(coord) Location 0
                               Decorate 102 RelaxedPrecision
                               Decorate 107 RelaxedPrecision
                               Decorate 108 RelaxedPrecision
                               Decorate 129 RelaxedPrecision
+                              Decorate 213(color) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
diff --git a/Test/baseResults/spv.always-discard.frag.out b/Test/baseResults/spv.always-discard.frag.out
index d7facc3..ed21b38 100644
--- a/Test/baseResults/spv.always-discard.frag.out
+++ b/Test/baseResults/spv.always-discard.frag.out
@@ -18,6 +18,7 @@
                               Name 30  "y"
                               Name 36  "radius"
                               Name 59  "gl_FragColor"
+                              Decorate 21(tex_coord) Location 0
                               Decorate 59(gl_FragColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.always-discard2.frag.out b/Test/baseResults/spv.always-discard2.frag.out
index 5c6ddb4..5e7ac9f 100644
--- a/Test/baseResults/spv.always-discard2.frag.out
+++ b/Test/baseResults/spv.always-discard2.frag.out
@@ -17,6 +17,7 @@
                               Name 21  "tex_coord"
                               Name 30  "y"
                               Name 38  "gl_FragColor"
+                              Decorate 21(tex_coord) Location 0
                               Decorate 38(gl_FragColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.atomic.comp.out b/Test/baseResults/spv.atomic.comp.out
index 175fbfe..e74066c 100644
--- a/Test/baseResults/spv.atomic.comp.out
+++ b/Test/baseResults/spv.atomic.comp.out
@@ -30,8 +30,10 @@
                               Name 72  "arrY"
                               Name 73  "arrZ"
                               Decorate 20(counter) Offset 0
+                              Decorate 20(counter) DescriptorSet 0
                               Decorate 20(counter) Binding 0
                               Decorate 27(countArr) Offset 4
+                              Decorate 27(countArr) DescriptorSet 0
                               Decorate 27(countArr) Binding 0
                               MemberDecorate 62(dataSSB) 0 Restrict
                               MemberDecorate 62(dataSSB) 0 Offset 0
diff --git a/Test/baseResults/spv.bitCast.frag.out b/Test/baseResults/spv.bitCast.frag.out
index 7041004..daf7b1d 100644
--- a/Test/baseResults/spv.bitCast.frag.out
+++ b/Test/baseResults/spv.bitCast.frag.out
@@ -26,14 +26,27 @@
                               Name 139  "u3"
                               Name 148  "u4"
                               Name 154  "fragColor"
+                              Decorate 14(f1) Location 8
+                              Decorate 26(f2) Location 9
+                              Decorate 37(f3) Location 10
+                              Decorate 48(f4) Location 11
                               Decorate 89(i1) Flat
+                              Decorate 89(i1) Location 0
                               Decorate 98(i2) Flat
+                              Decorate 98(i2) Location 1
                               Decorate 107(i3) Flat
+                              Decorate 107(i3) Location 2
                               Decorate 116(i4) Flat
+                              Decorate 116(i4) Location 3
                               Decorate 122(u1) Flat
+                              Decorate 122(u1) Location 4
                               Decorate 130(u2) Flat
+                              Decorate 130(u2) Location 5
                               Decorate 139(u3) Flat
+                              Decorate 139(u3) Location 6
                               Decorate 148(u4) Flat
+                              Decorate 148(u4) Location 7
+                              Decorate 154(fragColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
diff --git a/Test/baseResults/spv.bufferhandle3.frag.out b/Test/baseResults/spv.bufferhandle3.frag.out
index 4ea98f0..95d4dcf 100644
--- a/Test/baseResults/spv.bufferhandle3.frag.out
+++ b/Test/baseResults/spv.bufferhandle3.frag.out
@@ -46,6 +46,7 @@
                               Decorate 40(x) DescriptorSet 1
                               Decorate 40(x) Binding 2
                               Decorate 42(k) Flat
+                              Decorate 42(k) Location 0
                               Decorate 42(k) DecorationAliasedPointerEXT
                               Decorate 23(param) DecorationAliasedPointerEXT
                2:             TypeVoid
diff --git a/Test/baseResults/spv.bufferhandle7.frag.out b/Test/baseResults/spv.bufferhandle7.frag.out
index 9110ef4..3c8e86c 100644
--- a/Test/baseResults/spv.bufferhandle7.frag.out
+++ b/Test/baseResults/spv.bufferhandle7.frag.out
@@ -47,7 +47,7 @@
                               MemberDecorate 15(t2) 1 Offset 8
                               Decorate 15(t2) Block
                               Decorate 17(u) DescriptorSet 0
-                              Decorate 17(u) Binding 0
+                              Decorate 17(u) Binding 1
                2:             TypeVoid
                3:             TypeFunction 2
                               TypeForwardPointer 6 PhysicalStorageBufferEXT
diff --git a/Test/baseResults/spv.bufferhandle9.frag.out b/Test/baseResults/spv.bufferhandle9.frag.out
index b542757..7e534df 100644
--- a/Test/baseResults/spv.bufferhandle9.frag.out
+++ b/Test/baseResults/spv.bufferhandle9.frag.out
@@ -40,7 +40,9 @@
                               Decorate 8(blockType) Block
                               Decorate 13(b1) DecorationAliasedPointerEXT
                               Decorate 16(h) Flat
+                              Decorate 16(h) Location 0
                               Decorate 19(i) Flat
+                              Decorate 19(i) Location 1
                               Decorate 34(b2) DecorationAliasedPointerEXT
                               Decorate 37(b3) DecorationAliasedPointerEXT
                               MemberDecorate 53(t2) 0 Offset 0
diff --git a/Test/baseResults/spv.bufferhandleUvec2.frag.out b/Test/baseResults/spv.bufferhandleUvec2.frag.out
index edc18a2..fbdbb6a 100755
--- a/Test/baseResults/spv.bufferhandleUvec2.frag.out
+++ b/Test/baseResults/spv.bufferhandleUvec2.frag.out
@@ -41,7 +41,9 @@
                               Decorate 8(blockType) Block
                               Decorate 13(b1) DecorationAliasedPointerEXT
                               Decorate 16(h) Flat
+                              Decorate 16(h) Location 0
                               Decorate 19(i) Flat
+                              Decorate 19(i) Location 1
                               Decorate 34(b2) DecorationAliasedPointerEXT
                               Decorate 37(b3) DecorationAliasedPointerEXT
                               MemberDecorate 68(t2) 0 Offset 0
diff --git a/Test/baseResults/spv.conditionalDiscard.frag.out b/Test/baseResults/spv.conditionalDiscard.frag.out
index 16e126f..2e53e9b 100644
--- a/Test/baseResults/spv.conditionalDiscard.frag.out
+++ b/Test/baseResults/spv.conditionalDiscard.frag.out
@@ -16,6 +16,7 @@
                               Name 34  "gl_FragColor"
                               Decorate 13(tex) DescriptorSet 0
                               Decorate 13(tex) Binding 0
+                              Decorate 17(coord) Location 0
                               Decorate 34(gl_FragColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.conversion.frag.out b/Test/baseResults/spv.conversion.frag.out
index 0996247..b600b38 100644
--- a/Test/baseResults/spv.conversion.frag.out
+++ b/Test/baseResults/spv.conversion.frag.out
@@ -50,10 +50,18 @@
                               Name 452  "i_f3"
                               Name 454  "i_f4"
                               Decorate 39(i_i) Flat
+                              Decorate 39(i_i) Location 0
+                              Decorate 53(i_f) Location 4
                               Decorate 157(i_i4) Flat
+                              Decorate 157(i_i4) Location 3
                               Decorate 322(gl_FragColor) Location 0
                               Decorate 446(i_i2) Flat
+                              Decorate 446(i_i2) Location 1
                               Decorate 448(i_i3) Flat
+                              Decorate 448(i_i3) Location 2
+                              Decorate 450(i_f2) Location 5
+                              Decorate 452(i_f3) Location 6
+                              Decorate 454(i_f4) Location 7
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeBool
diff --git a/Test/baseResults/spv.dataOut.frag.out b/Test/baseResults/spv.dataOut.frag.out
index d0d4df5..7030f63 100644
--- a/Test/baseResults/spv.dataOut.frag.out
+++ b/Test/baseResults/spv.dataOut.frag.out
@@ -12,6 +12,7 @@
                               Name 4  "main"
                               Name 12  "gl_FragData"
                               Name 16  "Color"
+                              Decorate 16(Color) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.dataOutIndirect.frag.out b/Test/baseResults/spv.dataOutIndirect.frag.out
index d37f8c5..a75e8d5 100644
--- a/Test/baseResults/spv.dataOutIndirect.frag.out
+++ b/Test/baseResults/spv.dataOutIndirect.frag.out
@@ -15,10 +15,12 @@
                               MemberName 14(b) 0  "i"
                               Name 16  "bName"
                               Name 22  "Color"
+                              Decorate 12(fcolor) Location 0
                               MemberDecorate 14(b) 0 Offset 0
                               Decorate 14(b) Block
                               Decorate 16(bName) DescriptorSet 0
                               Decorate 16(bName) Binding 0
+                              Decorate 22(Color) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.dataOutIndirect.vert.out b/Test/baseResults/spv.dataOutIndirect.vert.out
index 81e1b7b..1c29410 100644
--- a/Test/baseResults/spv.dataOutIndirect.vert.out
+++ b/Test/baseResults/spv.dataOutIndirect.vert.out
@@ -15,6 +15,8 @@
                               Name 25  "colorOut"
                               Name 28  "color"
                               Name 34  "gl_Position"
+                              Decorate 25(colorOut) Location 0
+                              Decorate 28(color) Location 0
                               Decorate 34(gl_Position) BuiltIn Position
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.depthOut.frag.out b/Test/baseResults/spv.depthOut.frag.out
index 932575a..50c4770 100644
--- a/Test/baseResults/spv.depthOut.frag.out
+++ b/Test/baseResults/spv.depthOut.frag.out
@@ -16,6 +16,8 @@
                               Name 10  "Depth"
                               Name 14  "Color"
                               Decorate 8(gl_FragDepth) BuiltIn FragDepth
+                              Decorate 10(Depth) Location 1
+                              Decorate 14(Color) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.deviceGroup.frag.out b/Test/baseResults/spv.deviceGroup.frag.out
index 685d0c0..57c443c 100644
--- a/Test/baseResults/spv.deviceGroup.frag.out
+++ b/Test/baseResults/spv.deviceGroup.frag.out
@@ -14,6 +14,7 @@
                               Name 4  "main"
                               Name 9  "color"
                               Name 12  "gl_DeviceIndex"
+                              Decorate 9(color) Location 0
                               Decorate 12(gl_DeviceIndex) Flat
                               Decorate 12(gl_DeviceIndex) BuiltIn DeviceIndex
                2:             TypeVoid
diff --git a/Test/baseResults/spv.discard-dce.frag.out b/Test/baseResults/spv.discard-dce.frag.out
index 402279a..93c2de8 100644
--- a/Test/baseResults/spv.discard-dce.frag.out
+++ b/Test/baseResults/spv.discard-dce.frag.out
@@ -18,6 +18,7 @@
                               Name 30  "y"
                               Name 36  "radius"
                               Name 59  "gl_FragColor"
+                              Decorate 21(tex_coord) Location 0
                               Decorate 59(gl_FragColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.doWhileLoop.frag.out b/Test/baseResults/spv.doWhileLoop.frag.out
index 0d526c0..a57b9b2 100644
--- a/Test/baseResults/spv.doWhileLoop.frag.out
+++ b/Test/baseResults/spv.doWhileLoop.frag.out
@@ -15,6 +15,9 @@
                               Name 17  "bigColor"
                               Name 27  "d"
                               Name 32  "gl_FragColor"
+                              Decorate 11(BaseColor) Location 1
+                              Decorate 17(bigColor) Location 0
+                              Decorate 27(d) Location 2
                               Decorate 32(gl_FragColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.drawParams.vert.out b/Test/baseResults/spv.drawParams.vert.out
index 223dbb1..a8dab45 100644
--- a/Test/baseResults/spv.drawParams.vert.out
+++ b/Test/baseResults/spv.drawParams.vert.out
@@ -21,6 +21,7 @@
                               Decorate 10(gl_BaseVertexARB) BuiltIn BaseVertex
                               Decorate 13(gl_BaseInstanceARB) BuiltIn BaseInstance
                               Decorate 16(gl_DrawIDARB) BuiltIn DrawIndex
+                              Decorate 21(pos) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
diff --git a/Test/baseResults/spv.earlyReturnDiscard.frag.out b/Test/baseResults/spv.earlyReturnDiscard.frag.out
index b351527..8f983cb 100644
--- a/Test/baseResults/spv.earlyReturnDiscard.frag.out
+++ b/Test/baseResults/spv.earlyReturnDiscard.frag.out
@@ -24,7 +24,17 @@
                               Name 77  "b"
                               Name 105  "gl_FragColor"
                               Name 109  "threshhold3"
+                              Decorate 11(BaseColor) Location 9
+                              Decorate 14(otherColor) Location 3
+                              Decorate 17(c) Location 4
+                              Decorate 19(d) Location 0
+                              Decorate 25(bigColor) Location 1
+                              Decorate 30(smallColor) Location 2
+                              Decorate 39(minimum) Location 8
+                              Decorate 51(threshhold) Location 5
+                              Decorate 63(threshhold2) Location 6
                               Decorate 105(gl_FragColor) Location 0
+                              Decorate 109(threshhold3) Location 7
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.ext.RayGenShader.rgen.out b/Test/baseResults/spv.ext.RayGenShader.rgen.out
index 269f55a..b1904ac 100644
--- a/Test/baseResults/spv.ext.RayGenShader.rgen.out
+++ b/Test/baseResults/spv.ext.RayGenShader.rgen.out
@@ -34,6 +34,8 @@
                               MemberDecorate 38(block) 0 Offset 0
                               MemberDecorate 38(block) 1 Offset 16
                               Decorate 38(block) Block
+                              Decorate 40 DescriptorSet 0
+                              Decorate 40 Binding 3
                               Decorate 51(accEXT1) DescriptorSet 0
                               Decorate 51(accEXT1) Binding 1
                               Decorate 54(imageu) DescriptorSet 0
diff --git a/Test/baseResults/spv.ext.RayGenShader11.rgen.out b/Test/baseResults/spv.ext.RayGenShader11.rgen.out
index 65e2f9d..cfaf529 100644
--- a/Test/baseResults/spv.ext.RayGenShader11.rgen.out
+++ b/Test/baseResults/spv.ext.RayGenShader11.rgen.out
@@ -30,6 +30,8 @@
                               MemberDecorate 37(block) 0 Offset 0
                               MemberDecorate 37(block) 1 Offset 16
                               Decorate 37(block) Block
+                              Decorate 39 DescriptorSet 0
+                              Decorate 39 Binding 1
                               Decorate 52(payload) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.ext.RayGenShaderArray.rgen.out b/Test/baseResults/spv.ext.RayGenShaderArray.rgen.out
index 44df16f..25d46a6 100644
--- a/Test/baseResults/spv.ext.RayGenShaderArray.rgen.out
+++ b/Test/baseResults/spv.ext.RayGenShaderArray.rgen.out
@@ -37,6 +37,8 @@
                               MemberDecorate 34(block) 1 Offset 16
                               MemberDecorate 34(block) 2 Offset 28
                               Decorate 34(block) Block
+                              Decorate 36 DescriptorSet 0
+                              Decorate 36 Binding 2
                               Decorate 60(accEXT1) DescriptorSet 0
                               Decorate 60(accEXT1) Binding 1
                               Decorate 75 DecorationNonUniformEXT
diff --git a/Test/baseResults/spv.float16.frag.out b/Test/baseResults/spv.float16.frag.out
index af3f749..dd677b4 100644
--- a/Test/baseResults/spv.float16.frag.out
+++ b/Test/baseResults/spv.float16.frag.out
@@ -115,6 +115,7 @@
                               Name 531  "f16_to_d"
                               Name 532  "f_to_f16"
                               Name 533  "d_to_f16"
+                              Decorate 465(if16v) Location 0
                               Decorate 512 ArrayStride 16
                               Decorate 513 ArrayStride 32
                               MemberDecorate 514(S) 0 Offset 0
diff --git a/Test/baseResults/spv.float32.frag.out b/Test/baseResults/spv.float32.frag.out
index 2daac6b..df73497 100644
--- a/Test/baseResults/spv.float32.frag.out
+++ b/Test/baseResults/spv.float32.frag.out
@@ -104,6 +104,7 @@
                               Name 530  "f16_to_d"
                               Name 531  "f_to_f16"
                               Name 532  "d_to_f16"
+                              Decorate 471(if32v) Location 0
                               Decorate 518 ArrayStride 16
                               Decorate 519 ArrayStride 32
                               MemberDecorate 520(S) 0 Offset 0
diff --git a/Test/baseResults/spv.float64.frag.out b/Test/baseResults/spv.float64.frag.out
index 195e667..8a69367 100644
--- a/Test/baseResults/spv.float64.frag.out
+++ b/Test/baseResults/spv.float64.frag.out
@@ -105,6 +105,7 @@
                               Name 522  "f_to_f16"
                               Name 523  "d_to_f16"
                               Decorate 461(if64v) Flat
+                              Decorate 461(if64v) Location 0
                               Decorate 508 ArrayStride 16
                               Decorate 509 ArrayStride 64
                               MemberDecorate 510(S) 0 Offset 0
diff --git a/Test/baseResults/spv.flowControl.frag.out b/Test/baseResults/spv.flowControl.frag.out
index 95eb6ad..efbe63e 100644
--- a/Test/baseResults/spv.flowControl.frag.out
+++ b/Test/baseResults/spv.flowControl.frag.out
@@ -19,6 +19,12 @@
                               Name 25  "bigColor"
                               Name 30  "smallColor"
                               Name 35  "gl_FragColor"
+                              Decorate 11(BaseColor) Location 5
+                              Decorate 14(otherColor) Location 3
+                              Decorate 17(c) Location 4
+                              Decorate 19(d) Location 0
+                              Decorate 25(bigColor) Location 1
+                              Decorate 30(smallColor) Location 2
                               Decorate 35(gl_FragColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.forLoop.frag.out b/Test/baseResults/spv.forLoop.frag.out
index 58ec846..1aac9a6 100644
--- a/Test/baseResults/spv.forLoop.frag.out
+++ b/Test/baseResults/spv.forLoop.frag.out
@@ -25,9 +25,14 @@
                               Name 94  "i"
                               Name 104  "f"
                               Name 117  "i"
+                              Decorate 11(BaseColor) Location 1
                               Decorate 24(Count) Flat
+                              Decorate 24(Count) Location 3
+                              Decorate 28(bigColor) Location 0
                               Decorate 36(gl_FragColor) Location 0
                               Decorate 53(v4) Flat
+                              Decorate 53(v4) Location 4
+                              Decorate 104(f) Location 2
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.forwardFun.frag.out b/Test/baseResults/spv.forwardFun.frag.out
index 4fd7776..acec2c4 100644
--- a/Test/baseResults/spv.forwardFun.frag.out
+++ b/Test/baseResults/spv.forwardFun.frag.out
@@ -26,6 +26,7 @@
                               Decorate 15(bar) RelaxedPrecision
                               Decorate 18(color) RelaxedPrecision
                               Decorate 20(BaseColor) RelaxedPrecision
+                              Decorate 20(BaseColor) Location 1
                               Decorate 21(param) RelaxedPrecision
                               Decorate 22 RelaxedPrecision
                               Decorate 23 RelaxedPrecision
@@ -38,6 +39,7 @@
                               Decorate 32 RelaxedPrecision
                               Decorate 33 RelaxedPrecision
                               Decorate 36(d) RelaxedPrecision
+                              Decorate 36(d) Location 2
                               Decorate 37 RelaxedPrecision
                               Decorate 44 RelaxedPrecision
                               Decorate 45 RelaxedPrecision
@@ -47,6 +49,7 @@
                               Decorate 59 RelaxedPrecision
                               Decorate 60 RelaxedPrecision
                               Decorate 63(bigColor) RelaxedPrecision
+                              Decorate 63(bigColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                8:             TypeFloat 32
diff --git a/Test/baseResults/spv.fullyCovered.frag.out b/Test/baseResults/spv.fullyCovered.frag.out
index e3ba605..ae7b426 100644
--- a/Test/baseResults/spv.fullyCovered.frag.out
+++ b/Test/baseResults/spv.fullyCovered.frag.out
@@ -15,6 +15,7 @@
                               Name 4  "main"
                               Name 9  "color"
                               Name 12  "gl_FragFullyCoveredNV"
+                              Decorate 9(color) Location 0
                               Decorate 12(gl_FragFullyCoveredNV) BuiltIn FullyCoveredEXT
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.functionCall.frag.out b/Test/baseResults/spv.functionCall.frag.out
index f9f4a9f..58b0461 100644
--- a/Test/baseResults/spv.functionCall.frag.out
+++ b/Test/baseResults/spv.functionCall.frag.out
@@ -28,7 +28,10 @@
                               Name 66  "g"
                               Name 69  "gl_FragColor"
                               Name 75  "bigColor"
+                              Decorate 35(d) Location 2
+                              Decorate 58(BaseColor) Location 1
                               Decorate 69(gl_FragColor) Location 0
+                              Decorate 75(bigColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.functionNestedOpaque.vert.out b/Test/baseResults/spv.functionNestedOpaque.vert.out
index 294cd49..96a64aa 100644
--- a/Test/baseResults/spv.functionNestedOpaque.vert.out
+++ b/Test/baseResults/spv.functionNestedOpaque.vert.out
@@ -19,6 +19,8 @@
                               Name 21  "bar(struct-S-s211;"
                               Name 20  "p"
                               Name 36  "si"
+                              Decorate 36(si) DescriptorSet 0
+                              Decorate 36(si) Binding 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.functionSemantics.frag.out b/Test/baseResults/spv.functionSemantics.frag.out
index b753975..f12aae0 100644
--- a/Test/baseResults/spv.functionSemantics.frag.out
+++ b/Test/baseResults/spv.functionSemantics.frag.out
@@ -42,6 +42,7 @@
                               Name 133  "param"
                               Name 136  "arg"
                               Name 152  "gl_FragColor"
+                              Decorate 76(u) Location 0
                               Decorate 152(gl_FragColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.image.frag.out b/Test/baseResults/spv.image.frag.out
index 6b4bf4d..3e2096d 100644
--- a/Test/baseResults/spv.image.frag.out
+++ b/Test/baseResults/spv.image.frag.out
@@ -68,13 +68,17 @@
                               Decorate 108(i2DMSArray) DescriptorSet 0
                               Decorate 108(i2DMSArray) Binding 10
                               Decorate 132(ic1D) Flat
+                              Decorate 132(ic1D) Location 0
                               Decorate 142(ic2D) Flat
+                              Decorate 142(ic2D) Location 1
                               Decorate 152(ic3D) Flat
+                              Decorate 152(ic3D) Location 2
                               Decorate 232(ii1D) DescriptorSet 0
                               Decorate 232(ii1D) Binding 11
                               Decorate 245(ui2D) DescriptorSet 0
                               Decorate 245(ui2D) Binding 12
                               Decorate 248(value) Flat
+                              Decorate 248(value) Location 4
                               Decorate 357(ii2DMS) DescriptorSet 0
                               Decorate 357(ii2DMS) Binding 13
                               Decorate 367(ui2DMSArray) DescriptorSet 0
@@ -82,7 +86,9 @@
                               Decorate 376(wo2D) DescriptorSet 0
                               Decorate 376(wo2D) Binding 1
                               Decorate 376(wo2D) NonReadable
+                              Decorate 381(fragData) Location 0
                               Decorate 394(ic4D) Flat
+                              Decorate 394(ic4D) Location 3
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
diff --git a/Test/baseResults/spv.intOps.vert.out b/Test/baseResults/spv.intOps.vert.out
index eafd5cd..d57c306 100644
--- a/Test/baseResults/spv.intOps.vert.out
+++ b/Test/baseResults/spv.intOps.vert.out
@@ -38,6 +38,21 @@
                               Name 173  "u3"
                               Name 182  "i3"
                               Name 247  "v4"
+                              Decorate 9(iout) Location 1
+                              Decorate 15(uout) Location 0
+                              Decorate 21(fout) Location 2
+                              Decorate 26(u2) Location 1
+                              Decorate 47(u1) Location 0
+                              Decorate 67(u4) Location 3
+                              Decorate 83(i4) Location 11
+                              Decorate 100(v3) Location 6
+                              Decorate 121(v1) Location 4
+                              Decorate 142(v2) Location 5
+                              Decorate 146(i2) Location 9
+                              Decorate 156(i1) Location 8
+                              Decorate 173(u3) Location 2
+                              Decorate 182(i3) Location 10
+                              Decorate 247(v4) Location 7
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
diff --git a/Test/baseResults/spv.interpOps.frag.out b/Test/baseResults/spv.interpOps.frag.out
index 6759ae1..6c285e7 100644
--- a/Test/baseResults/spv.interpOps.frag.out
+++ b/Test/baseResults/spv.interpOps.frag.out
@@ -19,8 +19,15 @@
                               Name 47  "samp"
                               Name 72  "offset"
                               Name 98  "fragColor"
+                              Decorate 13(if1) Location 0
+                              Decorate 24(if2) Location 1
+                              Decorate 33(if3) Location 2
+                              Decorate 41(if4) Location 3
                               Decorate 47(samp) Flat
+                              Decorate 47(samp) Location 4
                               Decorate 72(offset) Flat
+                              Decorate 72(offset) Location 5
+                              Decorate 98(fragColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.layoutNested.vert.out b/Test/baseResults/spv.layoutNested.vert.out
index 59f2a67..7de04d4 100644
--- a/Test/baseResults/spv.layoutNested.vert.out
+++ b/Test/baseResults/spv.layoutNested.vert.out
@@ -167,11 +167,13 @@
                               Decorate 60(bBtn3) DescriptorSet 1
                               Decorate 60(bBtn3) Binding 0
                               Decorate 62(sout) Flat
+                              Decorate 62(sout) Location 0
                               MemberDecorate 63(S) 0 Invariant
                               MemberDecorate 63(S) 1 RelaxedPrecision
                               MemberDecorate 63(S) 1 Invariant
                               MemberDecorate 63(S) 2 RelaxedPrecision
                               MemberDecorate 63(S) 2 Invariant
+                              Decorate 65(soutinv) Location 10
                               Decorate 65(soutinv) Invariant
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.length.frag.out b/Test/baseResults/spv.length.frag.out
index 6c9e262..8957a3c 100644
--- a/Test/baseResults/spv.length.frag.out
+++ b/Test/baseResults/spv.length.frag.out
@@ -14,6 +14,7 @@
                               Name 14  "v"
                               Name 26  "gl_FragColor"
                               Name 32  "u"
+                              Decorate 14(v) Location 0
                               Decorate 26(gl_FragColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.localAggregates.frag.out b/Test/baseResults/spv.localAggregates.frag.out
index 3ffd860..637fb6d 100644
--- a/Test/baseResults/spv.localAggregates.frag.out
+++ b/Test/baseResults/spv.localAggregates.frag.out
@@ -39,12 +39,18 @@
                               Name 134  "foo"
                               Name 135  "foo2"
                               Decorate 15(foo3) Flat
+                              Decorate 15(foo3) Location 9
+                              Decorate 40(coord) Location 0
                               Decorate 90(condition) Flat
+                              Decorate 90(condition) Location 18
+                              Decorate 98(color) Location 1
                               Decorate 108(gl_FragColor) Location 0
                               Decorate 128(samp2D) DescriptorSet 0
                               Decorate 128(samp2D) Binding 0
                               Decorate 134(foo) Flat
+                              Decorate 134(foo) Location 2
                               Decorate 135(foo2) Flat
+                              Decorate 135(foo2) Location 4
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
diff --git a/Test/baseResults/spv.loops.frag.out b/Test/baseResults/spv.loops.frag.out
index 4c1aca9..7178f35 100644
--- a/Test/baseResults/spv.loops.frag.out
+++ b/Test/baseResults/spv.loops.frag.out
@@ -48,8 +48,38 @@
                               Name 649  "d16"
                               Name 687  "d18"
                               Name 698  "d17"
+                              Decorate 11(BaseColor) Location 11
+                              Decorate 54(d) Location 12
+                              Decorate 57(bigColor) Location 0
+                              Decorate 71(bigColor1_1) Location 1
+                              Decorate 106(d2) Location 13
+                              Decorate 114(d3) Location 14
+                              Decorate 118(bigColor1_2) Location 2
+                              Decorate 131(bigColor1_3) Location 3
+                              Decorate 137(d4) Location 15
                               Decorate 157(Count) Flat
+                              Decorate 157(Count) Location 29
+                              Decorate 160(bigColor2) Location 4
+                              Decorate 171(bigColor3) Location 5
+                              Decorate 308(bigColor4) Location 6
+                              Decorate 344(bigColor5) Location 7
+                              Decorate 350(d5) Location 16
+                              Decorate 366(d6) Location 17
+                              Decorate 380(bigColor6) Location 8
+                              Decorate 418(d7) Location 18
+                              Decorate 450(bigColor7) Location 9
+                              Decorate 469(d8) Location 19
+                              Decorate 512(d9) Location 20
+                              Decorate 544(d10) Location 21
+                              Decorate 552(d11) Location 22
+                              Decorate 562(d12) Location 23
+                              Decorate 588(bigColor8) Location 10
                               Decorate 615(gl_FragColor) Location 0
+                              Decorate 624(d14) Location 24
+                              Decorate 629(d15) Location 25
+                              Decorate 649(d16) Location 26
+                              Decorate 687(d18) Location 28
+                              Decorate 698(d17) Location 27
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.loopsArtificial.frag.out b/Test/baseResults/spv.loopsArtificial.frag.out
index 0cc60a5..4de834d 100644
--- a/Test/baseResults/spv.loopsArtificial.frag.out
+++ b/Test/baseResults/spv.loopsArtificial.frag.out
@@ -30,8 +30,26 @@
                               Name 153  "d2"
                               Name 154  "d3"
                               Name 157  "Count"
+                              Decorate 11(BaseColor) Location 11
+                              Decorate 17(bigColor4) Location 6
+                              Decorate 27(d4) Location 15
+                              Decorate 80(d13) Location 16
                               Decorate 140(gl_FragColor) Location 0
+                              Decorate 142(bigColor) Location 0
+                              Decorate 143(bigColor1_1) Location 1
+                              Decorate 144(bigColor1_2) Location 2
+                              Decorate 145(bigColor1_3) Location 3
+                              Decorate 146(bigColor2) Location 4
+                              Decorate 147(bigColor3) Location 5
+                              Decorate 148(bigColor5) Location 7
+                              Decorate 149(bigColor6) Location 8
+                              Decorate 150(bigColor7) Location 9
+                              Decorate 151(bigColor8) Location 10
+                              Decorate 152(d) Location 12
+                              Decorate 153(d2) Location 13
+                              Decorate 154(d3) Location 14
                               Decorate 157(Count) Flat
+                              Decorate 157(Count) Location 17
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.matFun.vert.out b/Test/baseResults/spv.matFun.vert.out
index 19e091d..932018f 100644
--- a/Test/baseResults/spv.matFun.vert.out
+++ b/Test/baseResults/spv.matFun.vert.out
@@ -45,6 +45,7 @@
                               Decorate 77(bl) Block
                               Decorate 79(bName) DescriptorSet 0
                               Decorate 79(bName) Binding 0
+                              Decorate 81(v3) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.matrix.frag.out b/Test/baseResults/spv.matrix.frag.out
index 05be6dd..a287cda 100644
--- a/Test/baseResults/spv.matrix.frag.out
+++ b/Test/baseResults/spv.matrix.frag.out
@@ -23,6 +23,12 @@
                               Name 174  "m43"
                               Name 179  "m4"
                               Name 187  "color"
+                              Decorate 12(m1) Location 0
+                              Decorate 14(m2) Location 3
+                              Decorate 28(f) Location 6
+                              Decorate 161(v4) Location 8
+                              Decorate 169(v3) Location 7
+                              Decorate 187(color) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.matrix2.frag.out b/Test/baseResults/spv.matrix2.frag.out
index 19252cb..13f2708 100644
--- a/Test/baseResults/spv.matrix2.frag.out
+++ b/Test/baseResults/spv.matrix2.frag.out
@@ -27,6 +27,18 @@
                               Name 218  "colorTransform"
                               Name 219  "m"
                               Name 220  "n"
+                              Decorate 12(v) Location 28
+                              Decorate 16(u) Location 29
+                              Decorate 37(FragColor) Location 0
+                              Decorate 38(Color) Location 3
+                              Decorate 65(un34) Location 16
+                              Decorate 87(um43) Location 12
+                              Decorate 147(um4) Location 24
+                              Decorate 158(um2) Location 19
+                              Decorate 181(um3) Location 21
+                              Decorate 218(colorTransform) Location 0
+                              Decorate 219(m) Location 4
+                              Decorate 220(n) Location 8
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.memoryQualifier.frag.out b/Test/baseResults/spv.memoryQualifier.frag.out
index 85596b7..5f0647b 100644
--- a/Test/baseResults/spv.memoryQualifier.frag.out
+++ b/Test/baseResults/spv.memoryQualifier.frag.out
@@ -67,7 +67,7 @@
                               MemberDecorate 50(Buffer) 5 Offset 56
                               Decorate 50(Buffer) BufferBlock
                               Decorate 52 DescriptorSet 0
-                              Decorate 52 Binding 0
+                              Decorate 52 Binding 4
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.meshShaderSharedMem.mesh.out b/Test/baseResults/spv.meshShaderSharedMem.mesh.out
index 890b05a..7960ffa 100644
--- a/Test/baseResults/spv.meshShaderSharedMem.mesh.out
+++ b/Test/baseResults/spv.meshShaderSharedMem.mesh.out
@@ -31,7 +31,7 @@
                               MemberDecorate 37(block0) 0 Offset 0
                               Decorate 37(block0) Block
                               Decorate 39 DescriptorSet 0
-                              Decorate 39 Binding 0
+                              Decorate 39 Binding 1
                               Decorate 55(uni_image) DescriptorSet 0
                               Decorate 55(uni_image) Binding 0
                               Decorate 55(uni_image) NonReadable
diff --git a/Test/baseResults/spv.meshShaderTaskMem.mesh.out b/Test/baseResults/spv.meshShaderTaskMem.mesh.out
index 74e62c3..be80439 100644
--- a/Test/baseResults/spv.meshShaderTaskMem.mesh.out
+++ b/Test/baseResults/spv.meshShaderTaskMem.mesh.out
@@ -38,6 +38,7 @@
                               MemberDecorate 28(taskBlock) 1 PerTaskNV
                               MemberDecorate 28(taskBlock) 1 Offset 16
                               Decorate 28(taskBlock) Block
+                              Decorate 30(mytask) Location 0
                               Decorate 35 ArrayStride 4
                               MemberDecorate 36(bufferBlock) 0 Offset 0
                               MemberDecorate 36(bufferBlock) 1 Offset 16
diff --git a/Test/baseResults/spv.meshTaskShader.task.out b/Test/baseResults/spv.meshTaskShader.task.out
index e9ccb51..9fed191 100644
--- a/Test/baseResults/spv.meshTaskShader.task.out
+++ b/Test/baseResults/spv.meshTaskShader.task.out
@@ -39,7 +39,7 @@
                               MemberDecorate 47(block0) 0 Offset 0
                               Decorate 47(block0) Block
                               Decorate 49 DescriptorSet 0
-                              Decorate 49 Binding 0
+                              Decorate 49 Binding 1
                               Decorate 65(uni_image) DescriptorSet 0
                               Decorate 65(uni_image) Binding 0
                               Decorate 65(uni_image) NonReadable
@@ -51,6 +51,7 @@
                               MemberDecorate 88(Task) 2 PerTaskNV
                               MemberDecorate 88(Task) 2 Offset 32
                               Decorate 88(Task) Block
+                              Decorate 90(mytask) Location 0
                               Decorate 113(gl_TaskCountNV) BuiltIn TaskCountNV
                               Decorate 115 BuiltIn WorkgroupSize
                2:             TypeVoid
diff --git a/Test/baseResults/spv.multiView.frag.out b/Test/baseResults/spv.multiView.frag.out
index 7bebf2e..a1575d9 100644
--- a/Test/baseResults/spv.multiView.frag.out
+++ b/Test/baseResults/spv.multiView.frag.out
@@ -14,6 +14,7 @@
                               Name 4  "main"
                               Name 9  "color"
                               Name 12  "gl_ViewIndex"
+                              Decorate 9(color) Location 0
                               Decorate 12(gl_ViewIndex) Flat
                               Decorate 12(gl_ViewIndex) BuiltIn ViewIndex
                2:             TypeVoid
diff --git a/Test/baseResults/spv.newTexture.frag.out b/Test/baseResults/spv.newTexture.frag.out
index 1f64936..332ca66 100644
--- a/Test/baseResults/spv.newTexture.frag.out
+++ b/Test/baseResults/spv.newTexture.frag.out
@@ -46,33 +46,41 @@
                               Name 283  "ic4D"
                               Decorate 13(s2D) DescriptorSet 0
                               Decorate 13(s2D) Binding 0
+                              Decorate 17(c2D) Location 1
                               Decorate 23(sCubeArrayShadow) DescriptorSet 0
-                              Decorate 23(sCubeArrayShadow) Binding 0
+                              Decorate 23(sCubeArrayShadow) Binding 5
+                              Decorate 26(c4D) Location 3
+                              Decorate 29(c1D) Location 0
                               Decorate 42(s3D) DescriptorSet 0
-                              Decorate 42(s3D) Binding 0
+                              Decorate 42(s3D) Binding 2
                               Decorate 51(s2DArray) DescriptorSet 0
-                              Decorate 51(s2DArray) Binding 0
+                              Decorate 51(s2DArray) Binding 7
+                              Decorate 55(c3D) Location 2
                               Decorate 64(s2DShadow) DescriptorSet 0
-                              Decorate 64(s2DShadow) Binding 0
+                              Decorate 64(s2DShadow) Binding 6
                               Decorate 81(ic3D) Flat
+                              Decorate 81(ic3D) Location 6
                               Decorate 84(ic1D) Flat
+                              Decorate 84(ic1D) Location 4
                               Decorate 92(ic2D) Flat
+                              Decorate 92(ic2D) Location 5
                               Decorate 102(sr) DescriptorSet 0
-                              Decorate 102(sr) Binding 0
+                              Decorate 102(sr) Binding 1
                               Decorate 128(sCube) DescriptorSet 0
-                              Decorate 128(sCube) Binding 0
+                              Decorate 128(sCube) Binding 3
                               Decorate 139(s2DArrayShadow) DescriptorSet 0
-                              Decorate 139(s2DArrayShadow) Binding 0
+                              Decorate 139(s2DArrayShadow) Binding 8
                               Decorate 171(is2D) DescriptorSet 0
-                              Decorate 171(is2D) Binding 0
+                              Decorate 171(is2D) Binding 9
                               Decorate 208(is3D) DescriptorSet 0
-                              Decorate 208(is3D) Binding 0
+                              Decorate 208(is3D) Binding 10
                               Decorate 220(isCube) DescriptorSet 0
-                              Decorate 220(isCube) Binding 0
+                              Decorate 220(isCube) Binding 11
                               Decorate 232(is2DArray) DescriptorSet 0
-                              Decorate 232(is2DArray) Binding 0
+                              Decorate 232(is2DArray) Binding 12
                               Decorate 247(sCubeShadow) DescriptorSet 0
-                              Decorate 247(sCubeShadow) Binding 0
+                              Decorate 247(sCubeShadow) Binding 4
+                              Decorate 253(FragData) Location 0
                               Decorate 265(is2Dms) DescriptorSet 0
                               Decorate 265(is2Dms) Binding 0
                               Decorate 269(us2D) DescriptorSet 0
@@ -84,6 +92,7 @@
                               Decorate 281(us2DArray) DescriptorSet 0
                               Decorate 281(us2DArray) Binding 0
                               Decorate 283(ic4D) Flat
+                              Decorate 283(ic4D) Location 7
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.nonSquare.vert.out b/Test/baseResults/spv.nonSquare.vert.out
index 28d1a79..3728dd5 100644
--- a/Test/baseResults/spv.nonSquare.vert.out
+++ b/Test/baseResults/spv.nonSquare.vert.out
@@ -16,7 +16,10 @@
                               Name 22  "m32"
                               Name 28  "gl_Position"
                               Name 55  "v4"
+                              Decorate 12(v3) Location 0
+                              Decorate 22(m32) Location 0
                               Decorate 28(gl_Position) BuiltIn Position
+                              Decorate 55(v4) Location 1
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.pp.line.frag.out b/Test/baseResults/spv.pp.line.frag.out
index 3a05857..549ae91 100644
--- a/Test/baseResults/spv.pp.line.frag.out
+++ b/Test/baseResults/spv.pp.line.frag.out
@@ -60,8 +60,11 @@
                               Decorate 22(texSampler1D) DescriptorSet 0
                               Decorate 22(texSampler1D) Binding 0
                               Decorate 37(texSampler2D) DescriptorSet 0
-                              Decorate 37(texSampler2D) Binding 0
+                              Decorate 37(texSampler2D) Binding 1
+                              Decorate 41(coords2D) Location 2
                               Decorate 53(gl_FragColor) Location 0
+                              Decorate 56(u) Location 1
+                              Decorate 59(blend) Location 0
                3:             TypeVoid
                4:             TypeFunction 3
                7:             TypeFloat 32
diff --git a/Test/baseResults/spv.precision.frag.out b/Test/baseResults/spv.precision.frag.out
index 919a30c..973147d 100644
--- a/Test/baseResults/spv.precision.frag.out
+++ b/Test/baseResults/spv.precision.frag.out
@@ -35,6 +35,7 @@
                               Name 119  "s"
                               Decorate 12(foo(vf3;) RelaxedPrecision
                               Decorate 11(mv3) RelaxedPrecision
+                              Decorate 23(highfin) Location 2
                               Decorate 27 RelaxedPrecision
                               Decorate 28 RelaxedPrecision
                               Decorate 41(sum) RelaxedPrecision
@@ -49,11 +50,14 @@
                               Decorate 58(arg2) RelaxedPrecision
                               Decorate 60(d) RelaxedPrecision
                               Decorate 62(lowfin) RelaxedPrecision
+                              Decorate 62(lowfin) Location 0
                               Decorate 63 RelaxedPrecision
                               Decorate 64(mediumfin) RelaxedPrecision
+                              Decorate 64(mediumfin) Location 1
                               Decorate 65 RelaxedPrecision
                               Decorate 66 RelaxedPrecision
                               Decorate 76(mediumfout) RelaxedPrecision
+                              Decorate 76(mediumfout) Location 0
                               Decorate 77 RelaxedPrecision
                               Decorate 78 RelaxedPrecision
                               Decorate 79 RelaxedPrecision
@@ -79,6 +83,7 @@
                               Decorate 115 RelaxedPrecision
                               Decorate 116 RelaxedPrecision
                               MemberDecorate 117(S) 1 RelaxedPrecision
+                              Decorate 119(s) Location 3
                               Decorate 123 RelaxedPrecision
                               Decorate 127 RelaxedPrecision
                               Decorate 128 RelaxedPrecision
diff --git a/Test/baseResults/spv.precisionNonESSamp.frag.out b/Test/baseResults/spv.precisionNonESSamp.frag.out
index 4f54e71..c4cd1eb 100644
--- a/Test/baseResults/spv.precisionNonESSamp.frag.out
+++ b/Test/baseResults/spv.precisionNonESSamp.frag.out
@@ -31,14 +31,14 @@
                               Decorate 18 RelaxedPrecision
                               Decorate 19 RelaxedPrecision
                               Decorate 23(t) DescriptorSet 0
-                              Decorate 23(t) Binding 0
+                              Decorate 23(t) Binding 1
                               Decorate 27(v3) RelaxedPrecision
                               Decorate 27(v3) Location 1
                               Decorate 28 RelaxedPrecision
                               Decorate 31(vi1) RelaxedPrecision
                               Decorate 34(i1) RelaxedPrecision
                               Decorate 34(i1) DescriptorSet 0
-                              Decorate 34(i1) Binding 0
+                              Decorate 34(i1) Binding 2
                               Decorate 35 RelaxedPrecision
                               Decorate 39(iv2) RelaxedPrecision
                               Decorate 39(iv2) Flat
@@ -47,7 +47,7 @@
                               Decorate 41 RelaxedPrecision
                               Decorate 42(vi2) RelaxedPrecision
                               Decorate 43(i2) DescriptorSet 0
-                              Decorate 43(i2) Binding 0
+                              Decorate 43(i2) Binding 3
                               Decorate 45 RelaxedPrecision
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.pushConstant.vert.out b/Test/baseResults/spv.pushConstant.vert.out
index f2527e0..888d134 100644
--- a/Test/baseResults/spv.pushConstant.vert.out
+++ b/Test/baseResults/spv.pushConstant.vert.out
@@ -18,6 +18,7 @@
                               MemberDecorate 11(Material) 0 Offset 0
                               MemberDecorate 11(Material) 1 Offset 4
                               Decorate 11(Material) Block
+                              Decorate 24(color) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
diff --git a/Test/baseResults/spv.pushConstantAnon.vert.out b/Test/baseResults/spv.pushConstantAnon.vert.out
index 18b3927..75efdbc 100644
--- a/Test/baseResults/spv.pushConstantAnon.vert.out
+++ b/Test/baseResults/spv.pushConstantAnon.vert.out
@@ -18,6 +18,7 @@
                               MemberDecorate 11(Material) 0 Offset 0
                               MemberDecorate 11(Material) 1 Offset 4
                               Decorate 11(Material) Block
+                              Decorate 24(color) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
diff --git a/Test/baseResults/spv.qualifiers.vert.out b/Test/baseResults/spv.qualifiers.vert.out
index 6a83f49..4180e17 100644
--- a/Test/baseResults/spv.qualifiers.vert.out
+++ b/Test/baseResults/spv.qualifiers.vert.out
@@ -16,10 +16,16 @@
                               Name 17  "outVn"
                               Name 19  "outVcn"
                               Decorate 9(outVc) Centroid
+                              Decorate 9(outVc) Location 0
+                              Decorate 11(inV) Location 0
+                              Decorate 13(outVs) Location 1
                               Decorate 15(outVf) Flat
+                              Decorate 15(outVf) Location 2
                               Decorate 17(outVn) NoPerspective
+                              Decorate 17(outVn) Location 3
                               Decorate 19(outVcn) NoPerspective
                               Decorate 19(outVcn) Centroid
+                              Decorate 19(outVcn) Location 4
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.queryL.frag.out b/Test/baseResults/spv.queryL.frag.out
index d035577..1e38661 100644
--- a/Test/baseResults/spv.queryL.frag.out
+++ b/Test/baseResults/spv.queryL.frag.out
@@ -44,39 +44,39 @@
                               Decorate 13(samp1D) DescriptorSet 0
                               Decorate 13(samp1D) Binding 0
                               Decorate 23(isamp2D) DescriptorSet 0
-                              Decorate 23(isamp2D) Binding 0
+                              Decorate 23(isamp2D) Binding 1
                               Decorate 34(usamp3D) DescriptorSet 0
-                              Decorate 34(usamp3D) Binding 0
+                              Decorate 34(usamp3D) Binding 4
                               Decorate 46(sampCube) DescriptorSet 0
-                              Decorate 46(sampCube) Binding 0
+                              Decorate 46(sampCube) Binding 5
                               Decorate 55(isamp1DA) DescriptorSet 0
-                              Decorate 55(isamp1DA) Binding 0
+                              Decorate 55(isamp1DA) Binding 7
                               Decorate 64(usamp2DA) DescriptorSet 0
-                              Decorate 64(usamp2DA) Binding 0
+                              Decorate 64(usamp2DA) Binding 9
                               Decorate 73(isampCubeA) DescriptorSet 0
-                              Decorate 73(isampCubeA) Binding 0
+                              Decorate 73(isampCubeA) Binding 10
                               Decorate 82(samp1Ds) DescriptorSet 0
-                              Decorate 82(samp1Ds) Binding 0
+                              Decorate 82(samp1Ds) Binding 12
                               Decorate 91(samp2Ds) DescriptorSet 0
-                              Decorate 91(samp2Ds) Binding 0
+                              Decorate 91(samp2Ds) Binding 13
                               Decorate 100(sampCubes) DescriptorSet 0
-                              Decorate 100(sampCubes) Binding 0
+                              Decorate 100(sampCubes) Binding 14
                               Decorate 109(samp1DAs) DescriptorSet 0
-                              Decorate 109(samp1DAs) Binding 0
+                              Decorate 109(samp1DAs) Binding 15
                               Decorate 118(samp2DAs) DescriptorSet 0
-                              Decorate 118(samp2DAs) Binding 0
+                              Decorate 118(samp2DAs) Binding 16
                               Decorate 127(sampCubeAs) DescriptorSet 0
-                              Decorate 127(sampCubeAs) Binding 0
+                              Decorate 127(sampCubeAs) Binding 17
                               Decorate 141(usamp2D) DescriptorSet 0
-                              Decorate 141(usamp2D) Binding 0
+                              Decorate 141(usamp2D) Binding 2
                               Decorate 150(isamp3D) DescriptorSet 0
-                              Decorate 150(isamp3D) Binding 0
+                              Decorate 150(isamp3D) Binding 3
                               Decorate 159(isampCube) DescriptorSet 0
-                              Decorate 159(isampCube) Binding 0
+                              Decorate 159(isampCube) Binding 6
                               Decorate 173(samp2DA) DescriptorSet 0
-                              Decorate 173(samp2DA) Binding 0
+                              Decorate 173(samp2DA) Binding 8
                               Decorate 182(usampCubeA) DescriptorSet 0
-                              Decorate 182(usampCubeA) Binding 0
+                              Decorate 182(usampCubeA) Binding 11
                               Decorate 219(sampBuf) DescriptorSet 0
                               Decorate 219(sampBuf) Binding 0
                               Decorate 223(sampRect) DescriptorSet 0
diff --git a/Test/baseResults/spv.rankShift.comp.out b/Test/baseResults/spv.rankShift.comp.out
index 62f1438..1a725c1 100644
--- a/Test/baseResults/spv.rankShift.comp.out
+++ b/Test/baseResults/spv.rankShift.comp.out
@@ -16,7 +16,11 @@
                               Name 11  "arg0"
                               Name 15  "arg1"
                               Decorate 11(arg0) Location 4
+                              Decorate 11(arg0) DescriptorSet 0
+                              Decorate 11(arg0) Binding 0
                               Decorate 15(arg1) Location 5
+                              Decorate 15(arg1) DescriptorSet 0
+                              Decorate 15(arg1) Binding 1
                               Decorate 32 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.register.autoassign.rangetest.frag.out b/Test/baseResults/spv.register.autoassign.rangetest.frag.out
index 8eb76c9..4381dab 100644
--- a/Test/baseResults/spv.register.autoassign.rangetest.frag.out
+++ b/Test/baseResults/spv.register.autoassign.rangetest.frag.out
@@ -2,4 +2,85 @@
 INTERNAL ERROR: mapped binding out of range: g_tSamp
 INTERNAL ERROR: mapped binding out of range: g_tScene
 
-SPIR-V is not generated for failed compile or link
+// Module Version 10000
+// Generated by (magic number): 8000a
+// Id's are bound by 52
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 49
+                              ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
+                              Name 4  "main"
+                              Name 8  "PS_OUTPUT"
+                              MemberName 8(PS_OUTPUT) 0  "Color"
+                              Name 12  "@main(struct-PS_OUTPUT-vf41;"
+                              Name 11  "psout"
+                              Name 21  "g_tScene"
+                              Name 27  "g_tSamp"
+                              Name 44  "psout"
+                              Name 45  "param"
+                              Name 49  "psout.Color"
+                              Decorate 21(g_tScene) DescriptorSet 0
+                              Decorate 21(g_tScene) Binding 5
+                              Decorate 27(g_tSamp) DescriptorSet 0
+                              Decorate 27(g_tSamp) Binding 5
+                              Decorate 49(psout.Color) Location 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+    8(PS_OUTPUT):             TypeStruct 7(fvec4)
+               9:             TypePointer Function 8(PS_OUTPUT)
+              10:             TypeFunction 2 9(ptr)
+              14:             TypeInt 32 1
+              15:     14(int) Constant 0
+              16:             TypeImage 6(float) 2D sampled format:Unknown
+              17:             TypeInt 32 0
+              18:     17(int) Constant 2
+              19:             TypeArray 16 18
+              20:             TypePointer UniformConstant 19
+    21(g_tScene):     20(ptr) Variable UniformConstant
+              22:             TypePointer UniformConstant 16
+              25:             TypeSampler
+              26:             TypePointer UniformConstant 25
+     27(g_tSamp):     26(ptr) Variable UniformConstant
+              29:             TypeSampledImage 16
+              31:             TypeVector 6(float) 2
+              32:    6(float) Constant 1050253722
+              33:   31(fvec2) ConstantComposite 32 32
+              35:     14(int) Constant 1
+              42:             TypePointer Function 7(fvec4)
+              48:             TypePointer Output 7(fvec4)
+ 49(psout.Color):     48(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+       44(psout):      9(ptr) Variable Function
+       45(param):      9(ptr) Variable Function
+              46:           2 FunctionCall 12(@main(struct-PS_OUTPUT-vf41;) 45(param)
+              47:8(PS_OUTPUT) Load 45(param)
+                              Store 44(psout) 47
+              50:     42(ptr) AccessChain 44(psout) 15
+              51:    7(fvec4) Load 50
+                              Store 49(psout.Color) 51
+                              Return
+                              FunctionEnd
+12(@main(struct-PS_OUTPUT-vf41;):           2 Function None 10
+       11(psout):      9(ptr) FunctionParameter
+              13:             Label
+              23:     22(ptr) AccessChain 21(g_tScene) 15
+              24:          16 Load 23
+              28:          25 Load 27(g_tSamp)
+              30:          29 SampledImage 24 28
+              34:    7(fvec4) ImageSampleImplicitLod 30 33
+              36:     22(ptr) AccessChain 21(g_tScene) 35
+              37:          16 Load 36
+              38:          25 Load 27(g_tSamp)
+              39:          29 SampledImage 37 38
+              40:    7(fvec4) ImageSampleImplicitLod 39 33
+              41:    7(fvec4) FAdd 34 40
+              43:     42(ptr) AccessChain 11(psout) 15
+                              Store 43 41
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out b/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out
index 05c6f60..9b401d8 100644
--- a/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out
+++ b/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out
@@ -17,6 +17,7 @@
                               Name 19  "color"
                               Decorate 11(gl_SampleMask) BuiltIn SampleMask
                               Decorate 11(gl_SampleMask) OverrideCoverageNV
+                              Decorate 19(color) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
diff --git a/Test/baseResults/spv.separate.frag.out b/Test/baseResults/spv.separate.frag.out
index 371cfb4..d31f897 100644
--- a/Test/baseResults/spv.separate.frag.out
+++ b/Test/baseResults/spv.separate.frag.out
@@ -56,15 +56,17 @@
                               Name 283  "tex1D"
                               Name 293  "tex3D"
                               Name 304  "tex2DRect"
+                              Decorate 11(color) Location 0
                               Decorate 14(t2d) DescriptorSet 0
-                              Decorate 14(t2d) Binding 0
+                              Decorate 14(t2d) Binding 2
                               Decorate 18(s) DescriptorSet 0
                               Decorate 18(s) Binding 0
                               Decorate 31(t3d) DescriptorSet 0
-                              Decorate 31(t3d) Binding 0
+                              Decorate 31(t3d) Binding 3
                               Decorate 34(i) Flat
+                              Decorate 34(i) Location 0
                               Decorate 41(sA) DescriptorSet 0
-                              Decorate 41(sA) Binding 0
+                              Decorate 41(sA) Binding 1
                               Decorate 58(tex2D) DescriptorSet 0
                               Decorate 58(tex2D) Binding 0
                               Decorate 64(texCube) DescriptorSet 0
diff --git a/Test/baseResults/spv.set.vert.out b/Test/baseResults/spv.set.vert.out
index cda1d95..245b4bd 100644
--- a/Test/baseResults/spv.set.vert.out
+++ b/Test/baseResults/spv.set.vert.out
@@ -14,6 +14,7 @@
                               MemberName 10(setBuf) 0  "color"
                               Name 12  "setBufInst"
                               Name 21  "samp2D"
+                              Decorate 9(color) Location 0
                               MemberDecorate 10(setBuf) 0 Offset 0
                               Decorate 10(setBuf) BufferBlock
                               Decorate 12(setBufInst) DescriptorSet 0
diff --git a/Test/baseResults/spv.shaderImageFootprint.frag.out b/Test/baseResults/spv.shaderImageFootprint.frag.out
index 36c7c23..ea8873c 100644
--- a/Test/baseResults/spv.shaderImageFootprint.frag.out
+++ b/Test/baseResults/spv.shaderImageFootprint.frag.out
@@ -74,7 +74,7 @@
                               MemberDecorate 8(result2D) 5 Offset 36
                               Decorate 8(result2D) BufferBlock
                               Decorate 10 DescriptorSet 0
-                              Decorate 10 Binding 0
+                              Decorate 10 Binding 2
                               Decorate 17(sample2D) DescriptorSet 0
                               Decorate 17(sample2D) Binding 0
                               Decorate 21(P2) Location 0
@@ -93,9 +93,9 @@
                               MemberDecorate 377(result3D) 5 Offset 60
                               Decorate 377(result3D) BufferBlock
                               Decorate 379 DescriptorSet 0
-                              Decorate 379 Binding 0
+                              Decorate 379 Binding 3
                               Decorate 383(sample3D) DescriptorSet 0
-                              Decorate 383(sample3D) Binding 0
+                              Decorate 383(sample3D) Binding 1
                               Decorate 387(P3) Location 2
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.shiftOps.frag.out b/Test/baseResults/spv.shiftOps.frag.out
index 99a0acb..03f7546 100644
--- a/Test/baseResults/spv.shiftOps.frag.out
+++ b/Test/baseResults/spv.shiftOps.frag.out
@@ -16,10 +16,16 @@
                               Name 25  "ucolor"
                               Name 27  "u3"
                               Name 30  "i1"
+                              Decorate 9(icolor) Location 0
                               Decorate 11(i3) Flat
+                              Decorate 11(i3) Location 2
                               Decorate 15(u1) Flat
+                              Decorate 15(u1) Location 1
+                              Decorate 25(ucolor) Location 1
                               Decorate 27(u3) Flat
+                              Decorate 27(u3) Location 3
                               Decorate 30(i1) Flat
+                              Decorate 30(i1) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
diff --git a/Test/baseResults/spv.shortCircuit.frag.out b/Test/baseResults/spv.shortCircuit.frag.out
index c9825b6..3c706f7 100644
--- a/Test/baseResults/spv.shortCircuit.frag.out
+++ b/Test/baseResults/spv.shortCircuit.frag.out
@@ -21,8 +21,14 @@
                               Name 142  "uv4"
                               Name 145  "ub41"
                               Name 146  "ub42"
+                              Decorate 12(of1) Location 0
+                              Decorate 24(of4) Location 1
                               Decorate 34(ui) Flat
+                              Decorate 34(ui) Location 3
+                              Decorate 113(uf) Location 2
                               Decorate 140(uiv4) Flat
+                              Decorate 140(uiv4) Location 0
+                              Decorate 142(uv4) Location 1
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeBool
diff --git a/Test/baseResults/spv.simpleFunctionCall.frag.out b/Test/baseResults/spv.simpleFunctionCall.frag.out
index adb345f..bda91b7 100644
--- a/Test/baseResults/spv.simpleFunctionCall.frag.out
+++ b/Test/baseResults/spv.simpleFunctionCall.frag.out
@@ -13,6 +13,7 @@
                               Name 9  "foo("
                               Name 12  "BaseColor"
                               Name 17  "gl_FragColor"
+                              Decorate 12(BaseColor) Location 0
                               Decorate 17(gl_FragColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.simpleMat.vert.out b/Test/baseResults/spv.simpleMat.vert.out
index caa680b..cc9b2b2 100644
--- a/Test/baseResults/spv.simpleMat.vert.out
+++ b/Test/baseResults/spv.simpleMat.vert.out
@@ -17,6 +17,12 @@
                               Name 19  "f"
                               Name 23  "am3"
                               Name 34  "arraym"
+                              Decorate 9(glPos) Location 5
+                              Decorate 12(mvp) Location 0
+                              Decorate 15(v) Location 0
+                              Decorate 19(f) Location 4
+                              Decorate 23(am3) Location 1
+                              Decorate 34(arraym) Location 4
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.sparseTexture.frag.out b/Test/baseResults/spv.sparseTexture.frag.out
index 0b32425..0f7c687 100644
--- a/Test/baseResults/spv.sparseTexture.frag.out
+++ b/Test/baseResults/spv.sparseTexture.frag.out
@@ -49,37 +49,44 @@
                               Name 423  "outColor"
                               Decorate 29(s2D) DescriptorSet 0
                               Decorate 29(s2D) Binding 0
+                              Decorate 33(c2) Location 0
                               Decorate 44(s3D) DescriptorSet 0
-                              Decorate 44(s3D) Binding 0
+                              Decorate 44(s3D) Binding 1
+                              Decorate 48(c3) Location 1
                               Decorate 59(isCube) DescriptorSet 0
-                              Decorate 59(isCube) Binding 0
+                              Decorate 59(isCube) Binding 8
                               Decorate 71(s2DShadow) DescriptorSet 0
-                              Decorate 71(s2DShadow) Binding 0
+                              Decorate 71(s2DShadow) Binding 2
                               Decorate 86(sCubeArrayShadow) DescriptorSet 0
-                              Decorate 86(sCubeArrayShadow) Binding 0
+                              Decorate 86(sCubeArrayShadow) Binding 6
+                              Decorate 89(c4) Location 2
                               Decorate 108(usCubeArray) DescriptorSet 0
-                              Decorate 108(usCubeArray) Binding 0
+                              Decorate 108(usCubeArray) Binding 10
                               Decorate 140(us2DRect) DescriptorSet 0
-                              Decorate 140(us2DRect) Binding 0
+                              Decorate 140(us2DRect) Binding 11
                               Decorate 154(s2DArrayShadow) DescriptorSet 0
-                              Decorate 154(s2DArrayShadow) Binding 0
+                              Decorate 154(s2DArrayShadow) Binding 4
                               Decorate 188(s2DMS) DescriptorSet 0
-                              Decorate 188(s2DMS) Binding 0
+                              Decorate 188(s2DMS) Binding 7
                               Decorate 228(is2DArray) DescriptorSet 0
-                              Decorate 228(is2DArray) Binding 0
+                              Decorate 228(is2DArray) Binding 9
                               Decorate 261(sCubeShadow) DescriptorSet 0
-                              Decorate 261(sCubeShadow) Binding 0
+                              Decorate 261(sCubeShadow) Binding 3
                               Decorate 294(s2DRectShadow) DescriptorSet 0
-                              Decorate 294(s2DRectShadow) Binding 0
+                              Decorate 294(s2DRectShadow) Binding 5
                               Decorate 365(offsets) Flat
+                              Decorate 365(offsets) Location 5
                               Decorate 390(i2D) DescriptorSet 0
-                              Decorate 390(i2D) Binding 0
+                              Decorate 390(i2D) Binding 12
                               Decorate 393(ic2) Flat
+                              Decorate 393(ic2) Location 3
                               Decorate 402(ii3D) DescriptorSet 0
-                              Decorate 402(ii3D) Binding 0
+                              Decorate 402(ii3D) Binding 13
                               Decorate 405(ic3) Flat
+                              Decorate 405(ic3) Location 4
                               Decorate 414(i2DMS) DescriptorSet 0
-                              Decorate 414(i2DMS) Binding 0
+                              Decorate 414(i2DMS) Binding 14
+                              Decorate 423(outColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
diff --git a/Test/baseResults/spv.sparseTextureClamp.frag.out b/Test/baseResults/spv.sparseTextureClamp.frag.out
index caac555..f42326d 100644
--- a/Test/baseResults/spv.sparseTextureClamp.frag.out
+++ b/Test/baseResults/spv.sparseTextureClamp.frag.out
@@ -42,26 +42,31 @@
                               Name 345  "outColor"
                               Decorate 29(s2D) DescriptorSet 0
                               Decorate 29(s2D) Binding 0
+                              Decorate 33(c2) Location 0
+                              Decorate 36(lodClamp) Location 3
                               Decorate 47(s3D) DescriptorSet 0
-                              Decorate 47(s3D) Binding 0
+                              Decorate 47(s3D) Binding 1
+                              Decorate 51(c3) Location 1
                               Decorate 63(isCube) DescriptorSet 0
-                              Decorate 63(isCube) Binding 0
+                              Decorate 63(isCube) Binding 7
                               Decorate 76(s2DShadow) DescriptorSet 0
-                              Decorate 76(s2DShadow) Binding 0
+                              Decorate 76(s2DShadow) Binding 2
                               Decorate 92(sCubeArrayShadow) DescriptorSet 0
-                              Decorate 92(sCubeArrayShadow) Binding 0
+                              Decorate 92(sCubeArrayShadow) Binding 6
+                              Decorate 95(c4) Location 2
                               Decorate 154(us2DRect) DescriptorSet 0
-                              Decorate 154(us2DRect) Binding 0
+                              Decorate 154(us2DRect) Binding 10
                               Decorate 170(s2DArrayShadow) DescriptorSet 0
-                              Decorate 170(s2DArrayShadow) Binding 0
+                              Decorate 170(s2DArrayShadow) Binding 4
                               Decorate 218(sCubeShadow) DescriptorSet 0
-                              Decorate 218(sCubeShadow) Binding 0
+                              Decorate 218(sCubeShadow) Binding 3
                               Decorate 235(usCubeArray) DescriptorSet 0
-                              Decorate 235(usCubeArray) Binding 0
+                              Decorate 235(usCubeArray) Binding 9
                               Decorate 286(s2DRectShadow) DescriptorSet 0
-                              Decorate 286(s2DRectShadow) Binding 0
+                              Decorate 286(s2DRectShadow) Binding 5
                               Decorate 305(is2DArray) DescriptorSet 0
-                              Decorate 305(is2DArray) Binding 0
+                              Decorate 305(is2DArray) Binding 8
+                              Decorate 345(outColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
diff --git a/Test/baseResults/spv.specConstant.vert.out b/Test/baseResults/spv.specConstant.vert.out
index bdc5704..921cc68 100644
--- a/Test/baseResults/spv.specConstant.vert.out
+++ b/Test/baseResults/spv.specConstant.vert.out
@@ -31,11 +31,15 @@
                               Name 76  "result"
                               Name 77  "gl_MaxImageUnits"
                               Decorate 9(arraySize) SpecId 16
+                              Decorate 20(color) Location 0
+                              Decorate 22(ucol) Location 0
+                              Decorate 28(size) Location 1
                               Decorate 30(spBool) SpecId 17
                               Decorate 34(scale) SpecId 22
                               Decorate 39(spDouble) SpecId 19
                               Decorate 40(spFloat) SpecId 18
                               Decorate 50(dupArraySize) SpecId 116
+                              Decorate 53(dupUcol) Location 5
                               Decorate 60(spDupBool) SpecId 117
                               Decorate 63(dupScale) SpecId 122
                               Decorate 67(spDupDouble) SpecId 119
diff --git a/Test/baseResults/spv.specConstantComposite.vert.out b/Test/baseResults/spv.specConstantComposite.vert.out
index 98d21b5..15777d8 100644
--- a/Test/baseResults/spv.specConstantComposite.vert.out
+++ b/Test/baseResults/spv.specConstantComposite.vert.out
@@ -24,9 +24,11 @@
                               Name 39  "spec_double"
                               Name 42  "global_vec4_array_with_spec_length"
                               Decorate 21(spec_bool) SpecId 203
+                              Decorate 27(color) Location 0
                               Decorate 28(spec_int) SpecId 200
                               Decorate 37(spec_float) SpecId 201
                               Decorate 39(spec_double) SpecId 202
+                              Decorate 42(global_vec4_array_with_spec_length) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
               14:             TypeInt 32 1
diff --git a/Test/baseResults/spv.specTexture.frag.out b/Test/baseResults/spv.specTexture.frag.out
index 7c1fb4f..4ca488e 100755
--- a/Test/baseResults/spv.specTexture.frag.out
+++ b/Test/baseResults/spv.specTexture.frag.out
@@ -14,6 +14,7 @@
                               Name 13  "tex"
                               Name 19  "offs"
                               Decorate 9(color_out) Location 0
+                              Decorate 13(tex) Location 0
                               Decorate 13(tex) DescriptorSet 0
                               Decorate 13(tex) Binding 0
                               Decorate 19(offs) SpecId 1
diff --git a/Test/baseResults/spv.storageBuffer.vert.out b/Test/baseResults/spv.storageBuffer.vert.out
index 03d912d..2411d2f 100644
--- a/Test/baseResults/spv.storageBuffer.vert.out
+++ b/Test/baseResults/spv.storageBuffer.vert.out
@@ -34,7 +34,7 @@
                               MemberDecorate 22(bb) 0 Offset 0
                               Decorate 22(bb) Block
                               Decorate 24(bbi) DescriptorSet 0
-                              Decorate 24(bbi) Binding 0
+                              Decorate 24(bbi) Binding 1
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.structAssignment.frag.out b/Test/baseResults/spv.structAssignment.frag.out
index 4ad4531..8e82cac 100644
--- a/Test/baseResults/spv.structAssignment.frag.out
+++ b/Test/baseResults/spv.structAssignment.frag.out
@@ -40,6 +40,7 @@
                               Decorate 40(samp2D) DescriptorSet 0
                               Decorate 40(samp2D) Binding 0
                               Decorate 44(coord) RelaxedPrecision
+                              Decorate 44(coord) Location 0
                               Decorate 45 RelaxedPrecision
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.structDeref.frag.out b/Test/baseResults/spv.structDeref.frag.out
index 79db27e..94fc4e2 100644
--- a/Test/baseResults/spv.structDeref.frag.out
+++ b/Test/baseResults/spv.structDeref.frag.out
@@ -40,6 +40,7 @@
                               Name 99  "gl_FragColor"
                               Name 116  "samp2D"
                               Name 122  "foo2"
+                              Decorate 61(coord) Location 0
                               Decorate 99(gl_FragColor) Location 0
                               Decorate 116(samp2D) DescriptorSet 0
                               Decorate 116(samp2D) Binding 0
diff --git a/Test/baseResults/spv.structure.frag.out b/Test/baseResults/spv.structure.frag.out
index 980db85..00fed0e 100644
--- a/Test/baseResults/spv.structure.frag.out
+++ b/Test/baseResults/spv.structure.frag.out
@@ -27,6 +27,7 @@
                               Decorate 45(gl_FragColor) Location 0
                               Decorate 50(samp2D) DescriptorSet 0
                               Decorate 50(samp2D) Binding 0
+                              Decorate 54(coord) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.subpass.frag.out b/Test/baseResults/spv.subpass.frag.out
index 9fbf719..6b534a6 100644
--- a/Test/baseResults/spv.subpass.frag.out
+++ b/Test/baseResults/spv.subpass.frag.out
@@ -22,23 +22,26 @@
                               Name 53  "ucolor"
                               Name 56  "usub"
                               Name 61  "usubMS"
+                              Decorate 15(icolor) Location 1
+                              Decorate 27(color) Location 0
                               Decorate 30(sub) DescriptorSet 0
                               Decorate 30(sub) Binding 0
                               Decorate 30(sub) InputAttachmentIndex 1
                               Decorate 35(subMS) DescriptorSet 0
-                              Decorate 35(subMS) Binding 0
+                              Decorate 35(subMS) Binding 1
                               Decorate 35(subMS) InputAttachmentIndex 2
                               Decorate 42(isub) DescriptorSet 0
-                              Decorate 42(isub) Binding 0
+                              Decorate 42(isub) Binding 2
                               Decorate 42(isub) InputAttachmentIndex 3
                               Decorate 45(isubMS) DescriptorSet 0
-                              Decorate 45(isubMS) Binding 0
+                              Decorate 45(isubMS) Binding 3
                               Decorate 45(isubMS) InputAttachmentIndex 4
+                              Decorate 53(ucolor) Location 2
                               Decorate 56(usub) DescriptorSet 0
-                              Decorate 56(usub) Binding 0
+                              Decorate 56(usub) Binding 4
                               Decorate 56(usub) InputAttachmentIndex 5
                               Decorate 61(usubMS) DescriptorSet 0
-                              Decorate 61(usubMS) Binding 0
+                              Decorate 61(usubMS) Binding 5
                               Decorate 61(usubMS) InputAttachmentIndex 6
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.switch.frag.out b/Test/baseResults/spv.switch.frag.out
index 796b6ce..7612f5f 100644
--- a/Test/baseResults/spv.switch.frag.out
+++ b/Test/baseResults/spv.switch.frag.out
@@ -66,12 +66,14 @@
                               Decorate 66(local) RelaxedPrecision
                               Decorate 68(c) RelaxedPrecision
                               Decorate 68(c) Flat
+                              Decorate 68(c) Location 0
                               Decorate 69 RelaxedPrecision
                               Decorate 70 RelaxedPrecision
                               Decorate 72 RelaxedPrecision
                               Decorate 73 RelaxedPrecision
                               Decorate 79(f) RelaxedPrecision
                               Decorate 81(x) RelaxedPrecision
+                              Decorate 81(x) Location 2
                               Decorate 82 RelaxedPrecision
                               Decorate 83 RelaxedPrecision
                               Decorate 85 RelaxedPrecision
@@ -107,6 +109,7 @@
                               Decorate 133 RelaxedPrecision
                               Decorate 135(d) RelaxedPrecision
                               Decorate 135(d) Flat
+                              Decorate 135(d) Location 1
                               Decorate 136 RelaxedPrecision
                               Decorate 140 RelaxedPrecision
                               Decorate 141 RelaxedPrecision
@@ -155,11 +158,13 @@
                               Decorate 227 RelaxedPrecision
                               Decorate 228 RelaxedPrecision
                               Decorate 233(color) RelaxedPrecision
+                              Decorate 233(color) Location 0
                               Decorate 234 RelaxedPrecision
                               Decorate 235 RelaxedPrecision
                               Decorate 236 RelaxedPrecision
                               Decorate 237 RelaxedPrecision
                               Decorate 239(v) RelaxedPrecision
+                              Decorate 239(v) Location 3
                               Decorate 240(param) RelaxedPrecision
                               Decorate 241 RelaxedPrecision
                               Decorate 242(param) RelaxedPrecision
diff --git a/Test/baseResults/spv.swizzle.frag.out b/Test/baseResults/spv.swizzle.frag.out
index da0aa95..7e42c3e 100644
--- a/Test/baseResults/spv.swizzle.frag.out
+++ b/Test/baseResults/spv.swizzle.frag.out
@@ -24,7 +24,10 @@
                               Name 81  "c"
                               Name 83  "rep"
                               Name 107  "blend"
+                              Decorate 14(u) Location 1
+                              Decorate 30(t) Location 2
                               Decorate 69(gl_FragColor) Location 0
+                              Decorate 107(blend) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.swizzleInversion.frag.out b/Test/baseResults/spv.swizzleInversion.frag.out
index 3571a5c..8d09934 100644
--- a/Test/baseResults/spv.swizzleInversion.frag.out
+++ b/Test/baseResults/spv.swizzleInversion.frag.out
@@ -20,6 +20,8 @@
                               Name 37  "in3"
                               Name 40  "v32"
                               Name 43  "v31"
+                              Decorate 12(in4) Location 0
+                              Decorate 37(in3) Location 1
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.test.frag.out b/Test/baseResults/spv.test.frag.out
index 2d2334b..fddcdb8 100644
--- a/Test/baseResults/spv.test.frag.out
+++ b/Test/baseResults/spv.test.frag.out
@@ -23,9 +23,14 @@
                               Name 49  "blend"
                               Decorate 16(texSampler2D) DescriptorSet 0
                               Decorate 16(texSampler2D) Binding 0
+                              Decorate 20(t) Location 3
+                              Decorate 22(scale) Location 1
                               Decorate 33(texSampler3D) DescriptorSet 0
-                              Decorate 33(texSampler3D) Binding 0
+                              Decorate 33(texSampler3D) Binding 1
+                              Decorate 37(coords) Location 4
                               Decorate 43(gl_FragColor) Location 0
+                              Decorate 46(u) Location 2
+                              Decorate 49(blend) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.test.vert.out b/Test/baseResults/spv.test.vert.out
index b008026..3eb6435 100644
--- a/Test/baseResults/spv.test.vert.out
+++ b/Test/baseResults/spv.test.vert.out
@@ -16,7 +16,11 @@
                               Name 15  "gl_Position"
                               Name 18  "transform"
                               Name 21  "position"
+                              Decorate 9(uv) Location 0
+                              Decorate 11(uv_in) Location 5
                               Decorate 15(gl_Position) BuiltIn Position
+                              Decorate 18(transform) Location 0
+                              Decorate 21(position) Location 4
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.texture.frag.out b/Test/baseResults/spv.texture.frag.out
index 7df5b5a..841bbd3 100644
--- a/Test/baseResults/spv.texture.frag.out
+++ b/Test/baseResults/spv.texture.frag.out
@@ -41,17 +41,22 @@
                               Name 304  "t"
                               Decorate 32(texSampler1D) DescriptorSet 0
                               Decorate 32(texSampler1D) Binding 0
+                              Decorate 47(coords2D) Location 4
                               Decorate 76(texSampler2D) DescriptorSet 0
-                              Decorate 76(texSampler2D) Binding 0
+                              Decorate 76(texSampler2D) Binding 1
                               Decorate 104(texSampler3D) DescriptorSet 0
-                              Decorate 104(texSampler3D) Binding 0
+                              Decorate 104(texSampler3D) Binding 2
                               Decorate 130(texSamplerCube) DescriptorSet 0
-                              Decorate 130(texSamplerCube) Binding 0
+                              Decorate 130(texSamplerCube) Binding 3
                               Decorate 145(shadowSampler1D) DescriptorSet 0
-                              Decorate 145(shadowSampler1D) Binding 0
+                              Decorate 145(shadowSampler1D) Binding 4
                               Decorate 164(shadowSampler2D) DescriptorSet 0
-                              Decorate 164(shadowSampler2D) Binding 0
+                              Decorate 164(shadowSampler2D) Binding 5
                               Decorate 291(gl_FragColor) Location 0
+                              Decorate 294(u) Location 2
+                              Decorate 297(blend) Location 0
+                              Decorate 303(scale) Location 1
+                              Decorate 304(t) Location 3
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.texture.sampler.transform.frag.out b/Test/baseResults/spv.texture.sampler.transform.frag.out
index ef53786..a297ea7 100644
--- a/Test/baseResults/spv.texture.sampler.transform.frag.out
+++ b/Test/baseResults/spv.texture.sampler.transform.frag.out
@@ -13,8 +13,10 @@
                               Name 9  "color"
                               Name 13  "tex"
                               Name 17  "coord"
+                              Decorate 9(color) Location 0
                               Decorate 13(tex) DescriptorSet 0
                               Decorate 13(tex) Binding 0
+                              Decorate 17(coord) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.texture.vert.out b/Test/baseResults/spv.texture.vert.out
index 0779e06..544a0f3 100644
--- a/Test/baseResults/spv.texture.vert.out
+++ b/Test/baseResults/spv.texture.vert.out
@@ -25,16 +25,17 @@
                               Name 148  "gl_Position"
                               Decorate 29(texSampler1D) DescriptorSet 0
                               Decorate 29(texSampler1D) Binding 0
+                              Decorate 39(coords2D) Location 0
                               Decorate 56(texSampler2D) DescriptorSet 0
-                              Decorate 56(texSampler2D) Binding 0
+                              Decorate 56(texSampler2D) Binding 1
                               Decorate 80(texSampler3D) DescriptorSet 0
-                              Decorate 80(texSampler3D) Binding 0
+                              Decorate 80(texSampler3D) Binding 2
                               Decorate 96(texSamplerCube) DescriptorSet 0
-                              Decorate 96(texSamplerCube) Binding 0
+                              Decorate 96(texSamplerCube) Binding 3
                               Decorate 106(shadowSampler1D) DescriptorSet 0
-                              Decorate 106(shadowSampler1D) Binding 0
+                              Decorate 106(shadowSampler1D) Binding 4
                               Decorate 118(shadowSampler2D) DescriptorSet 0
-                              Decorate 118(shadowSampler2D) Binding 0
+                              Decorate 118(shadowSampler2D) Binding 5
                               Decorate 148(gl_Position) BuiltIn Position
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.textureBuffer.vert.out b/Test/baseResults/spv.textureBuffer.vert.out
index b86d965..d18c656 100644
--- a/Test/baseResults/spv.textureBuffer.vert.out
+++ b/Test/baseResults/spv.textureBuffer.vert.out
@@ -18,13 +18,13 @@
                               Decorate 9(tBuf) DescriptorSet 0
                               Decorate 9(tBuf) Binding 0
                               Decorate 13(s) DescriptorSet 0
-                              Decorate 13(s) Binding 0
+                              Decorate 13(s) Binding 1
                               Decorate 23(sBuf) DescriptorSet 0
-                              Decorate 23(sBuf) Binding 0
+                              Decorate 23(sBuf) Binding 2
                               Decorate 32(utBuf) DescriptorSet 0
-                              Decorate 32(utBuf) Binding 0
+                              Decorate 32(utBuf) Binding 3
                               Decorate 38(itBuf) DescriptorSet 0
-                              Decorate 38(itBuf) Binding 0
+                              Decorate 38(itBuf) Binding 4
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.textureGatherBiasLod.frag.out b/Test/baseResults/spv.textureGatherBiasLod.frag.out
index b1ab545..3a9bb80 100644
--- a/Test/baseResults/spv.textureGatherBiasLod.frag.out
+++ b/Test/baseResults/spv.textureGatherBiasLod.frag.out
@@ -32,12 +32,18 @@
                               Name 296  "fragColor"
                               Decorate 16(s2D) DescriptorSet 0
                               Decorate 16(s2D) Binding 0
+                              Decorate 20(c2) Location 0
+                              Decorate 25(bias) Location 4
                               Decorate 33(s2DArray) DescriptorSet 0
-                              Decorate 33(s2DArray) Binding 0
+                              Decorate 33(s2DArray) Binding 1
+                              Decorate 37(c3) Location 1
                               Decorate 47(sCube) DescriptorSet 0
-                              Decorate 47(sCube) Binding 0
+                              Decorate 47(sCube) Binding 2
                               Decorate 58(sCubeArray) DescriptorSet 0
-                              Decorate 58(sCubeArray) Binding 0
+                              Decorate 58(sCubeArray) Binding 3
+                              Decorate 61(c4) Location 2
+                              Decorate 176(lod) Location 3
+                              Decorate 296(fragColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.types.frag.out b/Test/baseResults/spv.types.frag.out
index 96340e3..3e35da2 100644
--- a/Test/baseResults/spv.types.frag.out
+++ b/Test/baseResults/spv.types.frag.out
@@ -48,13 +48,29 @@
                               Name 161  "i_f4"
                               Name 165  "gl_FragColor"
                               Decorate 96(u_i) Flat
+                              Decorate 96(u_i) Location 0
                               Decorate 98(i_i) Flat
+                              Decorate 98(i_i) Location 8
                               Decorate 105(u_i2) Flat
+                              Decorate 105(u_i2) Location 1
                               Decorate 107(i_i2) Flat
+                              Decorate 107(i_i2) Location 9
                               Decorate 114(u_i3) Flat
+                              Decorate 114(u_i3) Location 2
                               Decorate 116(i_i3) Flat
+                              Decorate 116(i_i3) Location 10
                               Decorate 123(u_i4) Flat
+                              Decorate 123(u_i4) Location 3
                               Decorate 125(i_i4) Flat
+                              Decorate 125(i_i4) Location 11
+                              Decorate 132(u_f) Location 4
+                              Decorate 134(i_f) Location 12
+                              Decorate 141(u_f2) Location 5
+                              Decorate 143(i_f2) Location 13
+                              Decorate 150(u_f3) Location 6
+                              Decorate 152(i_f3) Location 14
+                              Decorate 159(u_f4) Location 7
+                              Decorate 161(i_f4) Location 15
                               Decorate 165(gl_FragColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.uint.frag.out b/Test/baseResults/spv.uint.frag.out
index 1f8899f..c19064d 100644
--- a/Test/baseResults/spv.uint.frag.out
+++ b/Test/baseResults/spv.uint.frag.out
@@ -35,6 +35,7 @@
                               Decorate 12(u) RelaxedPrecision
                               Decorate 15(t) RelaxedPrecision
                               Decorate 15(t) Flat
+                              Decorate 15(t) Location 0
                               Decorate 19 RelaxedPrecision
                               Decorate 21 RelaxedPrecision
                               Decorate 27 RelaxedPrecision
@@ -56,11 +57,13 @@
                               Decorate 61 RelaxedPrecision
                               Decorate 62 RelaxedPrecision
                               Decorate 68(c) RelaxedPrecision
+                              Decorate 68(c) Location 0
                               Decorate 72(usampler) RelaxedPrecision
                               Decorate 72(usampler) DescriptorSet 0
                               Decorate 72(usampler) Binding 0
                               Decorate 73 RelaxedPrecision
                               Decorate 77(tc) RelaxedPrecision
+                              Decorate 77(tc) Location 2
                               Decorate 78 RelaxedPrecision
                               Decorate 79 RelaxedPrecision
                               Decorate 80 RelaxedPrecision
@@ -136,10 +139,13 @@
                               Decorate 202 RelaxedPrecision
                               Decorate 203 RelaxedPrecision
                               Decorate 206(f) RelaxedPrecision
+                              Decorate 206(f) Location 1
                               Decorate 208(v) RelaxedPrecision
                               Decorate 208(v) Flat
+                              Decorate 208(v) Location 3
                               Decorate 210(i) RelaxedPrecision
                               Decorate 210(i) Flat
+                              Decorate 210(i) Location 4
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
diff --git a/Test/baseResults/spv.uniformArray.frag.out b/Test/baseResults/spv.uniformArray.frag.out
index 0f21ae8..8134383 100644
--- a/Test/baseResults/spv.uniformArray.frag.out
+++ b/Test/baseResults/spv.uniformArray.frag.out
@@ -16,6 +16,9 @@
                               Name 35  "alpha"
                               Name 47  "gl_FragColor"
                               Name 52  "texSampler2D"
+                              Decorate 14(color) Location 1
+                              Decorate 25(inColor) Location 0
+                              Decorate 35(alpha) Location 7
                               Decorate 47(gl_FragColor) Location 0
                               Decorate 52(texSampler2D) DescriptorSet 0
                               Decorate 52(texSampler2D) Binding 0
diff --git a/Test/baseResults/spv.uniformInitializer.frag.out b/Test/baseResults/spv.uniformInitializer.frag.out
index 8eecd05..63595ae 100644
--- a/Test/baseResults/spv.uniformInitializer.frag.out
+++ b/Test/baseResults/spv.uniformInitializer.frag.out
@@ -14,6 +14,8 @@
                               Name 14  "in_color"
                               Decorate 9(color) Location 0
                               Decorate 14(in_color) Location 0
+                              Decorate 14(in_color) DescriptorSet 0
+                              Decorate 14(in_color) Binding 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.uniformInitializerStruct.frag.out b/Test/baseResults/spv.uniformInitializerStruct.frag.out
index 20eb8a1..5ce854d 100644
--- a/Test/baseResults/spv.uniformInitializerStruct.frag.out
+++ b/Test/baseResults/spv.uniformInitializerStruct.frag.out
@@ -19,6 +19,8 @@
                               Name 34  "parts"
                               Decorate 9(color) Location 0
                               Decorate 34(parts) Location 0
+                              Decorate 34(parts) DescriptorSet 0
+                              Decorate 34(parts) Binding 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.unit1.frag.out b/Test/baseResults/spv.unit1.frag.out
index 33b1a8b..02ddfec 100644
--- a/Test/baseResults/spv.unit1.frag.out
+++ b/Test/baseResults/spv.unit1.frag.out
@@ -217,6 +217,8 @@
                               Name 67  "a1"
                               Name 68  "a2"
                               Decorate 25(gl_FragCoord) BuiltIn FragCoord
+                              Decorate 37(cin) Location 0
+                              Decorate 57(cout) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.variableArrayIndex.frag.out b/Test/baseResults/spv.variableArrayIndex.frag.out
index 5187b0c..ee57d43 100644
--- a/Test/baseResults/spv.variableArrayIndex.frag.out
+++ b/Test/baseResults/spv.variableArrayIndex.frag.out
@@ -33,12 +33,17 @@
                               Name 63  "coord"
                               Name 69  "constructed"
                               Decorate 10(Count) Flat
+                              Decorate 10(Count) Location 39
                               Decorate 20(foo3) Flat
+                              Decorate 20(foo3) Location 23
                               Decorate 34(foo2) Flat
+                              Decorate 34(foo2) Location 3
                               Decorate 36(foo) Flat
+                              Decorate 36(foo) Location 1
                               Decorate 54(gl_FragColor) Location 0
                               Decorate 59(samp2D) DescriptorSet 0
                               Decorate 59(samp2D) Binding 0
+                              Decorate 63(coord) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
diff --git a/Test/baseResults/spv.varyingArray.frag.out b/Test/baseResults/spv.varyingArray.frag.out
index f2c9c11..1e6334a 100644
--- a/Test/baseResults/spv.varyingArray.frag.out
+++ b/Test/baseResults/spv.varyingArray.frag.out
@@ -19,7 +19,11 @@
                               Name 48  "foo"
                               Decorate 13(texSampler2D) DescriptorSet 0
                               Decorate 13(texSampler2D) Binding 0
+                              Decorate 19(TexCoord) Location 2
+                              Decorate 34(color) Location 0
+                              Decorate 39(alpha) Location 1
                               Decorate 45(gl_FragColor) Location 0
+                              Decorate 48(foo) Location 8
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.varyingArrayIndirect.frag.out b/Test/baseResults/spv.varyingArrayIndirect.frag.out
index 9e52337..ac9d192 100644
--- a/Test/baseResults/spv.varyingArrayIndirect.frag.out
+++ b/Test/baseResults/spv.varyingArrayIndirect.frag.out
@@ -21,8 +21,14 @@
                               Name 56  "gl_FragColor"
                               Decorate 13(texSampler2D) DescriptorSet 0
                               Decorate 13(texSampler2D) Binding 0
+                              Decorate 19(userIn) Location 8
                               Decorate 22(b) Flat
+                              Decorate 22(b) Location 11
+                              Decorate 30(TexCoord) Location 2
                               Decorate 31(a) Flat
+                              Decorate 31(a) Location 10
+                              Decorate 45(color) Location 0
+                              Decorate 50(alpha) Location 1
                               Decorate 56(gl_FragColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/Test/baseResults/spv.voidFunction.frag.out b/Test/baseResults/spv.voidFunction.frag.out
index 65adf0c..c77285b 100644
--- a/Test/baseResults/spv.voidFunction.frag.out
+++ b/Test/baseResults/spv.voidFunction.frag.out
@@ -18,7 +18,10 @@
                               Name 37  "gl_FragColor"
                               Name 40  "BaseColor"
                               Name 42  "d"
+                              Decorate 24(bigColor) Location 0
                               Decorate 37(gl_FragColor) Location 0
+                              Decorate 40(BaseColor) Location 1
+                              Decorate 42(d) Location 2
                2:             TypeVoid
                3:             TypeFunction 2
               10:             TypeFloat 32
diff --git a/Test/baseResults/spv.vulkan110.storageBuffer.vert.out b/Test/baseResults/spv.vulkan110.storageBuffer.vert.out
index ba8b029..0774960 100644
--- a/Test/baseResults/spv.vulkan110.storageBuffer.vert.out
+++ b/Test/baseResults/spv.vulkan110.storageBuffer.vert.out
@@ -33,7 +33,7 @@
                               MemberDecorate 22(bb) 0 Offset 0
                               Decorate 22(bb) Block
                               Decorate 24(bbi) DescriptorSet 0
-                              Decorate 24(bbi) Binding 0
+                              Decorate 24(bbi) Binding 1
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
diff --git a/Test/baseResults/spv.whileLoop.frag.out b/Test/baseResults/spv.whileLoop.frag.out
index a1bfad1..6155f7b 100644
--- a/Test/baseResults/spv.whileLoop.frag.out
+++ b/Test/baseResults/spv.whileLoop.frag.out
@@ -15,6 +15,9 @@
                               Name 24  "d"
                               Name 28  "bigColor"
                               Name 33  "gl_FragColor"
+                              Decorate 11(BaseColor) Location 1
+                              Decorate 24(d) Location 2
+                              Decorate 28(bigColor) Location 0
                               Decorate 33(gl_FragColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
diff --git a/gtests/Link.FromFile.Vk.cpp b/gtests/Link.FromFile.Vk.cpp
index a43edcf..ee868c2 100755
--- a/gtests/Link.FromFile.Vk.cpp
+++ b/gtests/Link.FromFile.Vk.cpp
@@ -75,6 +75,11 @@
     result.linkingOutput = program.getInfoLog();
     result.linkingError = program.getInfoDebugLog();
 
+#ifndef GLSLANG_WEB
+        if (success)
+            program.mapIO();
+#endif
+
     if (success && (controls & EShMsgSpvRules)) {
         spv::SpvBuildLogger logger;
         std::vector<uint32_t> spirv_binary;
diff --git a/gtests/TestFixture.h b/gtests/TestFixture.h
index 8d2ebd9..c8e72d3 100755
--- a/gtests/TestFixture.h
+++ b/gtests/TestFixture.h
@@ -253,10 +253,13 @@
         glslang::TProgram program;
         program.addShader(&shader);
         success &= program.link(controls);
-
-        spv::SpvBuildLogger logger;
+#ifndef GLSLANG_WEB
+        if (success)
+            program.mapIO();
+#endif
 
         if (success && (controls & EShMsgSpvRules)) {
+            spv::SpvBuildLogger logger;
             std::vector<uint32_t> spirv_binary;
             options().disableOptimizer = !enableOptimizer;
             options().generateDebugInfo = enableDebug;
@@ -313,7 +316,8 @@
         
         success &= program.link(controls);
 #ifndef GLSLANG_WEB
-        success &= program.mapIO();
+        if (success)
+            program.mapIO();
 #endif
 
         spv::SpvBuildLogger logger;
@@ -356,10 +360,13 @@
         glslang::TProgram program;
         program.addShader(&shader);
         success &= program.link(controls);
-
-        spv::SpvBuildLogger logger;
+#ifndef GLSLANG_WEB
+        if (success)
+            program.mapIO();
+#endif
 
         if (success && (controls & EShMsgSpvRules)) {
+        spv::SpvBuildLogger logger;
             std::vector<uint32_t> spirv_binary;
             glslang::GlslangToSpv(*program.getIntermediate(stage),
                                   spirv_binary, &logger, &options());