--- /dev/null
+hlsl.attributeGlobalBuffer.frag
+Shader version: 500
+gl_FragCoord origin is upper left
+0:? Sequence
+0:6 Function Definition: @main( ( temp 4-component vector of float)
+0:6 Function Parameters:
+0:? Sequence
+0:7 Branch: Return with expression
+0:7 add ( temp 4-component vector of float)
+0:7 u1: direct index for structure ( uniform 4-component vector of float)
+0:7 'anon@0' (layout( set=2 binding=5 row_major std140) uniform block{ uniform 4-component vector of float u1, uniform 4-component vector of float u2})
+0:7 Constant:
+0:7 0 (const uint)
+0:7 u2: direct index for structure ( uniform 4-component vector of float)
+0:7 'anon@0' (layout( set=2 binding=5 row_major std140) uniform block{ uniform 4-component vector of float u1, uniform 4-component vector of float u2})
+0:7 Constant:
+0:7 1 (const uint)
+0:6 Function Definition: main( ( temp void)
+0:6 Function Parameters:
+0:? Sequence
+0:6 move second child to first child ( temp 4-component vector of float)
+0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+0:6 Function Call: @main( ( temp 4-component vector of float)
+0:? Linker Objects
+0:? 'anon@0' (layout( set=2 binding=5 row_major std140) uniform block{ uniform 4-component vector of float u1, uniform 4-component vector of float u2})
+0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 500
+gl_FragCoord origin is upper left
+0:? Sequence
+0:6 Function Definition: @main( ( temp 4-component vector of float)
+0:6 Function Parameters:
+0:? Sequence
+0:7 Branch: Return with expression
+0:7 add ( temp 4-component vector of float)
+0:7 u1: direct index for structure ( uniform 4-component vector of float)
+0:7 'anon@0' (layout( set=2 binding=5 row_major std140) uniform block{ uniform 4-component vector of float u1, uniform 4-component vector of float u2})
+0:7 Constant:
+0:7 0 (const uint)
+0:7 u2: direct index for structure ( uniform 4-component vector of float)
+0:7 'anon@0' (layout( set=2 binding=5 row_major std140) uniform block{ uniform 4-component vector of float u1, uniform 4-component vector of float u2})
+0:7 Constant:
+0:7 1 (const uint)
+0:6 Function Definition: main( ( temp void)
+0:6 Function Parameters:
+0:? Sequence
+0:6 move second child to first child ( temp 4-component vector of float)
+0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+0:6 Function Call: @main( ( temp 4-component vector of float)
+0:? Linker Objects
+0:? 'anon@0' (layout( set=2 binding=5 row_major std140) uniform block{ uniform 4-component vector of float u1, uniform 4-component vector of float u2})
+0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+
+// Module Version 10000
+// Generated by (magic number): 80002
+// Id's are bound by 28
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 26
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 500
+ Name 4 "main"
+ Name 9 "@main("
+ Name 11 "$Global"
+ MemberName 11($Global) 0 "u1"
+ MemberName 11($Global) 1 "u2"
+ Name 13 ""
+ Name 26 "@entryPointOutput"
+ MemberDecorate 11($Global) 0 Offset 0
+ MemberDecorate 11($Global) 1 Offset 16
+ Decorate 11($Global) Block
+ Decorate 13 DescriptorSet 2
+ Decorate 13 Binding 5
+ Decorate 26(@entryPointOutput) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypeFunction 7(fvec4)
+ 11($Global): TypeStruct 7(fvec4) 7(fvec4)
+ 12: TypePointer Uniform 11($Global)
+ 13: 12(ptr) Variable Uniform
+ 14: TypeInt 32 1
+ 15: 14(int) Constant 0
+ 16: TypePointer Uniform 7(fvec4)
+ 19: 14(int) Constant 1
+ 25: TypePointer Output 7(fvec4)
+26(@entryPointOutput): 25(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 27: 7(fvec4) FunctionCall 9(@main()
+ Store 26(@entryPointOutput) 27
+ Return
+ FunctionEnd
+ 9(@main(): 7(fvec4) Function None 8
+ 10: Label
+ 17: 16(ptr) AccessChain 13 15
+ 18: 7(fvec4) Load 17
+ 20: 16(ptr) AccessChain 13 19
+ 21: 7(fvec4) Load 20
+ 22: 7(fvec4) FAdd 18 21
+ ReturnValue 22
+ FunctionEnd
contextPragma(true, false),
parsingBuiltins(parsingBuiltins), scanContext(nullptr), ppContext(nullptr),
limits(resources.limits),
- globalUniformBlock(nullptr)
+ globalUniformBlock(nullptr),
+ globalUniformBinding(TQualifier::layoutBindingEnd),
+ globalUniformSet(TQualifier::layoutSetEnd)
{
if (entryPoint != nullptr)
sourceEntryPointName = *entryPoint;
// Manage the global uniform block (default uniforms in GLSL, $Global in HLSL)
TVariable* globalUniformBlock; // the actual block, inserted into the symbol table
+ unsigned int globalUniformBinding;
+ unsigned int globalUniformSet;
int firstNewMember; // the index of the first member not yet inserted into the symbol table
// override this to set the language-specific name
virtual const char* getGlobalUniformBlockName() const { return ""; }