Fix crash with --resource-set-binding [n] (common set form, not per-register form)
--resource-set-binding has a mode which allows per-register assignments of
bindings and descriptor sets on the command line, and another accepting a
single descriptor set value to assign to all variables.
The former worked, but the latter would crash when assigning the values.
This fixes it, and makes the former case a bit more robust against premature
termination of the pre-register values, which must come in (regname,set,binding)
triples.
This also allows the form "--resource-set-binding stage setnum", which was
mentioned in the usage message, but did not parse.
The operation of the per-register form of this option is unchanged.
diff --git a/Test/baseResults/hlsl.explicitDescriptorSet.frag.out b/Test/baseResults/hlsl.explicitDescriptorSet.frag.out
new file mode 100644
index 0000000..e33f9d6
--- /dev/null
+++ b/Test/baseResults/hlsl.explicitDescriptorSet.frag.out
@@ -0,0 +1,66 @@
+hlsl.explicitDescriptorSet.frag
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 31
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledBuffer
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 19
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 500
+ Name 4 "main"
+ Name 9 "@main("
+ Name 13 "g_sSamp2_amb"
+ Name 19 "@entryPointOutput"
+ Name 21 "g_sSamp"
+ Name 24 "g_tTex1df4"
+ Name 25 "$Global"
+ MemberName 25($Global) 0 "floatval_amb"
+ Name 27 ""
+ Name 30 "floatbuff"
+ Decorate 13(g_sSamp2_amb) DescriptorSet 4
+ Decorate 13(g_sSamp2_amb) Binding 10
+ Decorate 19(@entryPointOutput) Location 0
+ Decorate 21(g_sSamp) DescriptorSet 4
+ Decorate 21(g_sSamp) Binding 11
+ Decorate 24(g_tTex1df4) DescriptorSet 4
+ Decorate 24(g_tTex1df4) Binding 20
+ MemberDecorate 25($Global) 0 Offset 0
+ Decorate 25($Global) Block
+ Decorate 27 DescriptorSet 4
+ Decorate 30(floatbuff) DescriptorSet 4
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypeFunction 7(fvec4)
+ 11: TypeSampler
+ 12: TypePointer UniformConstant 11
+13(g_sSamp2_amb): 12(ptr) Variable UniformConstant
+ 14: 6(float) Constant 0
+ 15: 7(fvec4) ConstantComposite 14 14 14 14
+ 18: TypePointer Output 7(fvec4)
+19(@entryPointOutput): 18(ptr) Variable Output
+ 21(g_sSamp): 12(ptr) Variable UniformConstant
+ 22: TypeImage 6(float) 1D sampled format:Unknown
+ 23: TypePointer UniformConstant 22
+ 24(g_tTex1df4): 23(ptr) Variable UniformConstant
+ 25($Global): TypeStruct 6(float)
+ 26: TypePointer Uniform 25($Global)
+ 27: 26(ptr) Variable Uniform
+ 28: TypeImage 6(float) Buffer sampled format:R32f
+ 29: TypePointer UniformConstant 28
+ 30(floatbuff): 29(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 20: 7(fvec4) FunctionCall 9(@main()
+ Store 19(@entryPointOutput) 20
+ Return
+ FunctionEnd
+ 9(@main(): 7(fvec4) Function None 8
+ 10: Label
+ ReturnValue 15
+ FunctionEnd