
- Add new queries: TProgram::getUniformTType and getUniformBlockTType, which return a const TType*, or nullptr on a bad index. These are valid for any source language. - Interface name for HLSL cbuffers is taken from the (only) available declaration name, whereas before it was always an empty string, which caused some troubles with reflection mapping them all to the same index slot. This also makes it appear in the SPIR-V binary instead of an empty string. - Print the binding as part of the reflection textual dump. - TType::clone becomes const. Needed to call it from a const method, and anyway it doesn't change the object it's called on. - Because the TObjectReflection constructor is called with a TType *reference* (not pointer) so that it's guaranteed to pass in a type, and the "badReflection" value should use a nullptr there, that now has a dedicated static method to obtain the bad value. It uses a private constructor, so external users can't create one with a nullptr type.
138 lines
7.6 KiB
Plaintext
Executable File
138 lines
7.6 KiB
Plaintext
Executable File
hlsl.layout.frag
|
|
Shader version: 450
|
|
gl_FragCoord origin is upper left
|
|
0:? Sequence
|
|
0:16 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
|
0:16 Function Parameters:
|
|
0:16 'input' (in 4-component vector of float)
|
|
0:? Sequence
|
|
0:17 Branch: Return with expression
|
|
0:17 add (temp 4-component vector of float)
|
|
0:17 add (temp 4-component vector of float)
|
|
0:17 add (temp 4-component vector of float)
|
|
0:17 'input' (in 4-component vector of float)
|
|
0:17 v1: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float)
|
|
0:17 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1})
|
|
0:17 Constant:
|
|
0:17 0 (const uint)
|
|
0:17 v5: direct index for structure (layout(row_major std430 offset=0 ) buffer 4-component vector of float)
|
|
0:17 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5})
|
|
0:17 Constant:
|
|
0:17 0 (const uint)
|
|
0:17 v1PostLayout: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float)
|
|
0:17 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout})
|
|
0:17 Constant:
|
|
0:17 0 (const uint)
|
|
0:? Linker Objects
|
|
0:? 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1})
|
|
0:? 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5})
|
|
0:? 'specConst' (specialization-constant const int)
|
|
0:? 10 (const int)
|
|
0:? 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout})
|
|
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
Shader version: 450
|
|
gl_FragCoord origin is upper left
|
|
0:? Sequence
|
|
0:16 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
|
0:16 Function Parameters:
|
|
0:16 'input' (in 4-component vector of float)
|
|
0:? Sequence
|
|
0:17 Branch: Return with expression
|
|
0:17 add (temp 4-component vector of float)
|
|
0:17 add (temp 4-component vector of float)
|
|
0:17 add (temp 4-component vector of float)
|
|
0:17 'input' (in 4-component vector of float)
|
|
0:17 v1: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float)
|
|
0:17 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1})
|
|
0:17 Constant:
|
|
0:17 0 (const uint)
|
|
0:17 v5: direct index for structure (layout(row_major std430 offset=0 ) buffer 4-component vector of float)
|
|
0:17 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5})
|
|
0:17 Constant:
|
|
0:17 0 (const uint)
|
|
0:17 v1PostLayout: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float)
|
|
0:17 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout})
|
|
0:17 Constant:
|
|
0:17 0 (const uint)
|
|
0:? Linker Objects
|
|
0:? 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1})
|
|
0:? 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5})
|
|
0:? 'specConst' (specialization-constant const int)
|
|
0:? 10 (const int)
|
|
0:? 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout})
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 39
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main"
|
|
ExecutionMode 4 OriginUpperLeft
|
|
Name 4 "main"
|
|
Name 11 "PixelShaderFunction(vf4;"
|
|
Name 10 "input"
|
|
Name 14 "tbufName"
|
|
MemberName 14(tbufName) 0 "v1"
|
|
Name 16 ""
|
|
Name 23 "tbufName2"
|
|
MemberName 23(tbufName2) 0 "v5"
|
|
Name 25 ""
|
|
Name 30 "tbufName2"
|
|
MemberName 30(tbufName2) 0 "v1PostLayout"
|
|
Name 32 ""
|
|
MemberDecorate 14(tbufName) 0 Offset 16
|
|
Decorate 14(tbufName) BufferBlock
|
|
Decorate 16 DescriptorSet 3
|
|
Decorate 16 Binding 5
|
|
MemberDecorate 23(tbufName2) 0 Offset 0
|
|
Decorate 23(tbufName2) BufferBlock
|
|
MemberDecorate 30(tbufName2) 0 Offset 16
|
|
Decorate 30(tbufName2) BufferBlock
|
|
Decorate 32 DescriptorSet 4
|
|
Decorate 32 Binding 7
|
|
Decorate 38 SpecId 17
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeVector 6(float) 4
|
|
8: TypePointer Function 7(fvec4)
|
|
9: TypeFunction 7(fvec4) 8(ptr)
|
|
14(tbufName): TypeStruct 7(fvec4)
|
|
15: TypePointer Uniform 14(tbufName)
|
|
16: 15(ptr) Variable Uniform
|
|
17: TypeInt 32 1
|
|
18: 17(int) Constant 0
|
|
19: TypePointer Uniform 7(fvec4)
|
|
23(tbufName2): TypeStruct 7(fvec4)
|
|
24: TypePointer PushConstant 23(tbufName2)
|
|
25: 24(ptr) Variable PushConstant
|
|
26: TypePointer PushConstant 7(fvec4)
|
|
30(tbufName2): TypeStruct 7(fvec4)
|
|
31: TypePointer Uniform 30(tbufName2)
|
|
32: 31(ptr) Variable Uniform
|
|
38: 17(int) SpecConstant 10
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
FunctionEnd
|
|
11(PixelShaderFunction(vf4;): 7(fvec4) Function None 9
|
|
10(input): 8(ptr) FunctionParameter
|
|
12: Label
|
|
13: 7(fvec4) Load 10(input)
|
|
20: 19(ptr) AccessChain 16 18
|
|
21: 7(fvec4) Load 20
|
|
22: 7(fvec4) FAdd 13 21
|
|
27: 26(ptr) AccessChain 25 18
|
|
28: 7(fvec4) Load 27
|
|
29: 7(fvec4) FAdd 22 28
|
|
33: 19(ptr) AccessChain 32 18
|
|
34: 7(fvec4) Load 33
|
|
35: 7(fvec4) FAdd 29 34
|
|
ReturnValue 35
|
|
FunctionEnd
|