SPV arrays: Add support for runtime-sized array types and arrays of arrays.
This includes run-time block.member.length() (OpArrayLength).
This commit is contained in:
@@ -5,4 +5,121 @@ Warning, version 310 is not yet complete; most version-specific features are pre
|
||||
Linked compute stage:
|
||||
|
||||
|
||||
Missing functionality: Unsized array
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 72
|
||||
|
||||
Source ESSL 310
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint GLCompute 4 "main"
|
||||
Name 4 "main"
|
||||
Name 14 "outb"
|
||||
MemberName 14(outb) 0 "f"
|
||||
MemberName 14(outb) 1 "g"
|
||||
MemberName 14(outb) 2 "h"
|
||||
MemberName 14(outb) 3 "uns"
|
||||
Name 16 "outbname"
|
||||
Name 20 "s"
|
||||
Name 25 "outbna"
|
||||
MemberName 25(outbna) 0 "k"
|
||||
MemberName 25(outbna) 1 "na"
|
||||
Name 27 "outbnamena"
|
||||
Name 47 "i"
|
||||
Name 53 "outs"
|
||||
MemberName 53(outs) 0 "s"
|
||||
MemberName 53(outs) 1 "va"
|
||||
Name 55 "outnames"
|
||||
Name 59 "gl_LocalInvocationID"
|
||||
Decorate 14(outb) GLSLShared
|
||||
Decorate 14(outb) BufferBlock
|
||||
Decorate 25(outbna) GLSLShared
|
||||
Decorate 25(outbna) BufferBlock
|
||||
Decorate 53(outs) GLSLShared
|
||||
Decorate 53(outs) BufferBlock
|
||||
Decorate 59(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
||||
Decorate 71 BuiltIn WorkgroupSize
|
||||
Decorate 71 NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 0
|
||||
8: 7(int) Constant 1
|
||||
9: 7(int) Constant 1023
|
||||
10: 7(int) Constant 0
|
||||
11: TypeFloat 32
|
||||
12: TypeVector 11(float) 3
|
||||
13: TypeRuntimeArray 12(fvec3)
|
||||
14(outb): TypeStruct 11(float) 11(float) 11(float) 13
|
||||
15: TypePointer Uniform 14(outb)
|
||||
16(outbname): 15(ptr) Variable Uniform
|
||||
17: TypeInt 32 1
|
||||
18: 17(int) Constant 0
|
||||
19: TypePointer WorkgroupLocal 11(float)
|
||||
20(s): 19(ptr) Variable WorkgroupLocal
|
||||
22: TypePointer Uniform 11(float)
|
||||
24: TypeVector 11(float) 4
|
||||
25(outbna): TypeStruct 17(int) 24(fvec4)
|
||||
26: TypePointer Uniform 25(outbna)
|
||||
27(outbnamena): 26(ptr) Variable Uniform
|
||||
28: 17(int) Constant 1
|
||||
31: TypePointer Uniform 24(fvec4)
|
||||
33: TypeRuntimeArray 12(fvec3)
|
||||
34: 17(int) Constant 3
|
||||
35: 17(int) Constant 18
|
||||
36: TypePointer Uniform 12(fvec3)
|
||||
40: TypeRuntimeArray 12(fvec3)
|
||||
41: 17(int) Constant 17
|
||||
42: 11(float) Constant 1077936128
|
||||
43: 12(fvec3) ConstantComposite 42 42 42
|
||||
45: TypeRuntimeArray 12(fvec3)
|
||||
46: TypePointer WorkgroupLocal 17(int)
|
||||
47(i): 46(ptr) Variable WorkgroupLocal
|
||||
52: TypeRuntimeArray 24(fvec4)
|
||||
53(outs): TypeStruct 17(int) 52
|
||||
54: TypePointer Uniform 53(outs)
|
||||
55(outnames): 54(ptr) Variable Uniform
|
||||
56: TypeRuntimeArray 24(fvec4)
|
||||
57: TypeVector 7(int) 3
|
||||
58: TypePointer Input 57(ivec3)
|
||||
59(gl_LocalInvocationID): 58(ptr) Variable Input
|
||||
66: TypePointer Uniform 17(int)
|
||||
68: 7(int) Constant 16
|
||||
69: 7(int) Constant 32
|
||||
70: 7(int) Constant 4
|
||||
71: 57(ivec3) ConstantComposite 68 69 70
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
MemoryBarrier 8 9
|
||||
ControlBarrier 8 8 10
|
||||
21: 11(float) Load 20(s)
|
||||
23: 22(ptr) AccessChain 16(outbname) 18
|
||||
Store 23 21
|
||||
29: 11(float) Load 20(s)
|
||||
30: 24(fvec4) CompositeConstruct 29 29 29 29
|
||||
32: 31(ptr) AccessChain 27(outbnamena) 28
|
||||
Store 32 30
|
||||
37: 36(ptr) AccessChain 16(outbname) 34 35
|
||||
38: 12(fvec3) Load 37
|
||||
39: 11(float) CompositeExtract 38 0
|
||||
Store 20(s) 39
|
||||
44: 36(ptr) AccessChain 16(outbname) 34 41
|
||||
Store 44 43
|
||||
48: 17(int) Load 47(i)
|
||||
49: 11(float) Load 20(s)
|
||||
50: 12(fvec3) CompositeConstruct 49 49 49
|
||||
51: 36(ptr) AccessChain 16(outbname) 34 48
|
||||
Store 51 50
|
||||
60: 57(ivec3) Load 59(gl_LocalInvocationID)
|
||||
61: 7(int) CompositeExtract 60 0
|
||||
62: 11(float) Load 20(s)
|
||||
63: 24(fvec4) CompositeConstruct 62 62 62 62
|
||||
64: 31(ptr) AccessChain 55(outnames) 28 61
|
||||
Store 64 63
|
||||
65: 17(int) ArrayLength 16(outbname)
|
||||
67: 66(ptr) AccessChain 55(outnames) 18
|
||||
Store 67 65
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
Reference in New Issue
Block a user