Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
glslang
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
glslang
Commits
80f92a19
Commit
80f92a19
authored
May 19, 2017
by
John Kessenich
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix #857: Convert uniform int to local bool for struct alias assignment.
This was done for one direction, but not both directions, so this commit picks up the other direction.
parent
0d2b4713
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
302 additions
and
294 deletions
+302
-294
GlslangToSpv.cpp
SPIRV/GlslangToSpv.cpp
+12
-10
hlsl.structbuffer.frag.out
Test/baseResults/hlsl.structbuffer.frag.out
+86
-84
spv.boolInBlock.frag.out
Test/baseResults/spv.boolInBlock.frag.out
+6
-6
spv.multiStruct.comp.out
Test/baseResults/spv.multiStruct.comp.out
+198
-194
No files found.
SPIRV/GlslangToSpv.cpp
View file @
80f92a19
...
@@ -2590,20 +2590,22 @@ void TGlslangToSpvTraverser::accessChainStore(const glslang::TType& type, spv::I
...
@@ -2590,20 +2590,22 @@ void TGlslangToSpvTraverser::accessChainStore(const glslang::TType& type, spv::I
if
(
builder
.
isScalarType
(
nominalTypeId
))
{
if
(
builder
.
isScalarType
(
nominalTypeId
))
{
// Conversion for bool
// Conversion for bool
spv
::
Id
boolType
=
builder
.
makeBoolType
();
spv
::
Id
boolType
=
builder
.
makeBoolType
();
if
(
nominalTypeId
!=
boolType
)
{
if
(
nominalTypeId
!=
boolType
)
spv
::
Id
zero
=
builder
.
makeUintConstant
(
0
);
rvalue
=
builder
.
createTriOp
(
spv
::
OpSelect
,
nominalTypeId
,
rvalue
,
builder
.
makeUintConstant
(
1
),
spv
::
Id
one
=
builder
.
makeUintConstant
(
1
);
builder
.
makeUintConstant
(
0
)
);
rvalue
=
builder
.
createTriOp
(
spv
::
OpSelect
,
nominalTypeId
,
rvalue
,
one
,
zero
);
else
if
(
builder
.
getTypeId
(
rvalue
)
!=
boolType
)
}
rvalue
=
builder
.
createBinOp
(
spv
::
OpINotEqual
,
boolType
,
rvalue
,
builder
.
makeUintConstant
(
0
));
}
else
if
(
builder
.
isVectorType
(
nominalTypeId
))
{
}
else
if
(
builder
.
isVectorType
(
nominalTypeId
))
{
// Conversion for bvec
// Conversion for bvec
int
vecSize
=
builder
.
getNumTypeComponents
(
nominalTypeId
);
int
vecSize
=
builder
.
getNumTypeComponents
(
nominalTypeId
);
spv
::
Id
bvecType
=
builder
.
makeVectorType
(
builder
.
makeBoolType
(),
vecSize
);
spv
::
Id
bvecType
=
builder
.
makeVectorType
(
builder
.
makeBoolType
(),
vecSize
);
if
(
nominalTypeId
!=
bvecType
)
{
if
(
nominalTypeId
!=
bvecType
)
spv
::
Id
zero
=
makeSmearedConstant
(
builder
.
makeUintConstant
(
0
),
vecSize
);
rvalue
=
builder
.
createTriOp
(
spv
::
OpSelect
,
nominalTypeId
,
rvalue
,
spv
::
Id
one
=
makeSmearedConstant
(
builder
.
makeUintConstant
(
1
),
vecSize
);
makeSmearedConstant
(
builder
.
makeUintConstant
(
1
),
vecSize
),
rvalue
=
builder
.
createTriOp
(
spv
::
OpSelect
,
nominalTypeId
,
rvalue
,
one
,
zero
);
makeSmearedConstant
(
builder
.
makeUintConstant
(
0
),
vecSize
));
}
else
if
(
builder
.
getTypeId
(
rvalue
)
!=
bvecType
)
rvalue
=
builder
.
createBinOp
(
spv
::
OpINotEqual
,
bvecType
,
rvalue
,
makeSmearedConstant
(
builder
.
makeUintConstant
(
0
),
vecSize
));
}
}
}
}
...
...
Test/baseResults/hlsl.structbuffer.frag.out
View file @
80f92a19
...
@@ -189,12 +189,12 @@ gl_FragCoord origin is upper left
...
@@ -189,12 +189,12 @@ gl_FragCoord origin is upper left
// Module Version 10000
// Module Version 10000
// Generated by (magic number): 80001
// Generated by (magic number): 80001
// Id's are bound by 9
4
// Id's are bound by 9
6
Capability Shader
Capability Shader
1: ExtInstImport "GLSL.std.450"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 8
7 90
EntryPoint Fragment 4 "main" 8
9 92
ExecutionMode 4 OriginUpperLeft
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Source HLSL 500
Name 4 "main"
Name 4 "main"
...
@@ -212,15 +212,15 @@ gl_FragCoord origin is upper left
...
@@ -212,15 +212,15 @@ gl_FragCoord origin is upper left
Name 21 "sbuf"
Name 21 "sbuf"
MemberName 21(sbuf) 0 "@data"
MemberName 21(sbuf) 0 "@data"
Name 23 "sbuf"
Name 23 "sbuf"
Name 40 "size"
Name 43 "size"
Name 42 "stride"
Name 45 "stride"
Name 57 "sbuf2"
MemberName 57(sbuf2) 0 "@data"
Name 59 "sbuf2"
Name 59 "sbuf2"
Name 85 "pos"
MemberName 59(sbuf2) 0 "@data"
Name 61 "sbuf2"
Name 87 "pos"
Name 87 "pos"
Name 90 "@entryPointOutput"
Name 89 "pos"
Name 91 "param"
Name 92 "@entryPointOutput"
Name 93 "param"
MemberDecorate 19(sb_t) 0 NonWritable
MemberDecorate 19(sb_t) 0 NonWritable
MemberDecorate 19(sb_t) 0 Offset 0
MemberDecorate 19(sb_t) 0 Offset 0
MemberDecorate 19(sb_t) 1 NonWritable
MemberDecorate 19(sb_t) 1 NonWritable
...
@@ -233,13 +233,13 @@ gl_FragCoord origin is upper left
...
@@ -233,13 +233,13 @@ gl_FragCoord origin is upper left
Decorate 21(sbuf) BufferBlock
Decorate 21(sbuf) BufferBlock
Decorate 23(sbuf) DescriptorSet 0
Decorate 23(sbuf) DescriptorSet 0
Decorate 23(sbuf) Binding 10
Decorate 23(sbuf) Binding 10
Decorate 5
6
ArrayStride 4
Decorate 5
8
ArrayStride 4
MemberDecorate 5
7
(sbuf2) 0 NonWritable
MemberDecorate 5
9
(sbuf2) 0 NonWritable
MemberDecorate 5
7
(sbuf2) 0 Offset 0
MemberDecorate 5
9
(sbuf2) 0 Offset 0
Decorate 5
7
(sbuf2) BufferBlock
Decorate 5
9
(sbuf2) BufferBlock
Decorate
59
(sbuf2) DescriptorSet 0
Decorate
61
(sbuf2) DescriptorSet 0
Decorate 8
7
(pos) Location 0
Decorate 8
9
(pos) Location 0
Decorate 9
0
(@entryPointOutput) Location 0
Decorate 9
2
(@entryPointOutput) Location 0
2: TypeVoid
2: TypeVoid
3: TypeFunction 2
3: TypeFunction 2
6: TypeInt 32 0
6: TypeInt 32 0
...
@@ -261,41 +261,41 @@ gl_FragCoord origin is upper left
...
@@ -261,41 +261,41 @@ gl_FragCoord origin is upper left
27: TypePointer Uniform 19(sb_t)
27: TypePointer Uniform 19(sb_t)
31: TypePointer Function 14(fvec3)
31: TypePointer Function 14(fvec3)
34: 24(int) Constant 1
34: 24(int) Constant 1
35:
TypePointer Function 15(bool)
35:
6(int) Constant 0
3
8: 24(int) Constant 2
3
7: TypePointer Function 15(bool)
4
3: 6(int) Constant 3
2
4
0: 24(int) Constant
2
4
5: TypePointer Uniform 6(int)
4
6: 6(int) Constant 32
48:
6(int) Constant 0
48:
TypePointer Uniform 6(int)
5
3
: TypePointer Uniform 14(fvec3)
5
5
: TypePointer Uniform 14(fvec3)
5
6
: TypeRuntimeArray 8(float)
5
8
: TypeRuntimeArray 8(float)
5
7(sbuf2): TypeStruct 56
5
9(sbuf2): TypeStruct 58
58: TypePointer Uniform 57
(sbuf2)
60: TypePointer Uniform 59
(sbuf2)
59(sbuf2): 58
(ptr) Variable Uniform
61(sbuf2): 60
(ptr) Variable Uniform
6
1
: TypePointer Uniform 8(float)
6
3
: TypePointer Uniform 8(float)
6
6
: 8(float) Constant 0
6
8
: 8(float) Constant 0
7
3
: TypePointer Function 8(float)
7
5
: TypePointer Function 8(float)
8
6
: TypePointer Input 6(int)
8
8
: TypePointer Input 6(int)
8
7(pos): 86
(ptr) Variable Input
8
9(pos): 88
(ptr) Variable Input
89
: TypePointer Output 9(fvec4)
91
: TypePointer Output 9(fvec4)
9
0(@entryPointOutput): 89
(ptr) Variable Output
9
2(@entryPointOutput): 91
(ptr) Variable Output
4(main): 2 Function None 3
4(main): 2 Function None 3
5: Label
5: Label
8
5
(pos): 7(ptr) Variable Function
8
7
(pos): 7(ptr) Variable Function
9
1
(param): 7(ptr) Variable Function
9
3
(param): 7(ptr) Variable Function
88: 6(int) Load 87
(pos)
90: 6(int) Load 89
(pos)
Store 8
5(pos) 88
Store 8
7(pos) 90
9
2: 6(int) Load 85
(pos)
9
4: 6(int) Load 87
(pos)
Store 9
1(param) 92
Store 9
3(param) 94
9
3: 9(fvec4) FunctionCall 12(@main(u1;) 91
(param)
9
5: 9(fvec4) FunctionCall 12(@main(u1;) 93
(param)
Store 9
0(@entryPointOutput) 93
Store 9
2(@entryPointOutput) 95
Return
Return
FunctionEnd
FunctionEnd
12(@main(u1;): 9(fvec4) Function None 10
12(@main(u1;): 9(fvec4) Function None 10
11(pos): 7(ptr) FunctionParameter
11(pos): 7(ptr) FunctionParameter
13: Label
13: Label
18(mydata): 17(ptr) Variable Function
18(mydata): 17(ptr) Variable Function
4
0
(size): 7(ptr) Variable Function
4
3
(size): 7(ptr) Variable Function
4
2
(stride): 7(ptr) Variable Function
4
5
(stride): 7(ptr) Variable Function
26: 6(int) Load 11(pos)
26: 6(int) Load 11(pos)
28: 27(ptr) AccessChain 23(sbuf) 25 26
28: 27(ptr) AccessChain 23(sbuf) 25 26
29: 19(sb_t) Load 28
29: 19(sb_t) Load 28
...
@@ -303,46 +303,48 @@ gl_FragCoord origin is upper left
...
@@ -303,46 +303,48 @@ gl_FragCoord origin is upper left
32: 31(ptr) AccessChain 18(mydata) 25
32: 31(ptr) AccessChain 18(mydata) 25
Store 32 30
Store 32 30
33: 6(int) CompositeExtract 29 1
33: 6(int) CompositeExtract 29 1
36: 35(ptr) AccessChain 18(mydata) 34
36: 15(bool) INotEqual 33 35
Store 36 33
38: 37(ptr) AccessChain 18(mydata) 34
37: 6(int) CompositeExtract 29 2
Store 38 36
39: 35(ptr) AccessChain 18(mydata) 38
39: 6(int) CompositeExtract 29 2
Store 39 37
41: 15(bool) INotEqual 39 35
41: 24(int) ArrayLength 23(sbuf) 0
42: 37(ptr) AccessChain 18(mydata) 40
Store 40(size) 41
Store 42 41
Store 42(stride) 43
44: 24(int) ArrayLength 23(sbuf) 0
44: 6(int) Load 11(pos)
Store 43(size) 44
46: 45(ptr) AccessChain 23(sbuf) 25 44 34
Store 45(stride) 46
47: 6(int) Load 46
47: 6(int) Load 11(pos)
49: 15(bool) INotEqual 47 48
49: 48(ptr) AccessChain 23(sbuf) 25 47 34
SelectionMerge 51 None
50: 6(int) Load 49
BranchConditional 49 50 72
51: 15(bool) INotEqual 50 35
50: Label
SelectionMerge 53 None
52: 6(int) Load 11(pos)
BranchConditional 51 52 74
54: 53(ptr) AccessChain 23(sbuf) 25 52 25
52: Label
55: 14(fvec3) Load 54
54: 6(int) Load 11(pos)
60: 6(int) Load 11(pos)
56: 55(ptr) AccessChain 23(sbuf) 25 54 25
62: 61(ptr) AccessChain 59(sbuf2) 25 60
57: 14(fvec3) Load 56
63: 8(float) Load 62
62: 6(int) Load 11(pos)
64: 14(fvec3) CompositeConstruct 63 63 63
64: 63(ptr) AccessChain 61(sbuf2) 25 62
65: 14(fvec3) FAdd 55 64
65: 8(float) Load 64
67: 8(float) CompositeExtract 65 0
66: 14(fvec3) CompositeConstruct 65 65 65
68: 8(float) CompositeExtract 65 1
67: 14(fvec3) FAdd 57 66
69: 8(float) CompositeExtract 65 2
69: 8(float) CompositeExtract 67 0
70: 9(fvec4) CompositeConstruct 67 68 69 66
70: 8(float) CompositeExtract 67 1
ReturnValue 70
71: 8(float) CompositeExtract 67 2
72: Label
72: 9(fvec4) CompositeConstruct 69 70 71 68
74: 73(ptr) AccessChain 18(mydata) 25 48
ReturnValue 72
75: 8(float) Load 74
74: Label
76: 6(int) Load 40(size)
76: 75(ptr) AccessChain 18(mydata) 25 35
77: 8(float) ConvertUToF 76
77: 8(float) Load 76
78: 8(float) FAdd 75 77
78: 6(int) Load 43(size)
79: 6(int) Load 42(stride)
79: 8(float) ConvertUToF 78
80: 8(float) ConvertUToF 79
80: 8(float) FAdd 77 79
81: 8(float) FAdd 78 80
81: 6(int) Load 45(stride)
82: 9(fvec4) CompositeConstruct 81 81 81 81
82: 8(float) ConvertUToF 81
ReturnValue 82
83: 8(float) FAdd 80 82
51: Label
84: 9(fvec4) CompositeConstruct 83 83 83 83
84: 9(fvec4) Undef
ReturnValue 84
ReturnValue 84
53: Label
86: 9(fvec4) Undef
ReturnValue 86
FunctionEnd
FunctionEnd
Test/baseResults/spv.boolInBlock.frag.out
View file @
80f92a19
...
@@ -53,9 +53,9 @@ Warning, version 450 is not yet complete; most version-specific features are pre
...
@@ -53,9 +53,9 @@ Warning, version 450 is not yet complete; most version-specific features are pre
29: 6(bool) ConstantFalse
29: 6(bool) ConstantFalse
30: 9(bvec2) ConstantComposite 29 29
30: 9(bvec2) ConstantComposite 29 29
31: 22(int) Constant 0
31: 22(int) Constant 0
32:
23(ivec2) ConstantComposite 31 3
1
32:
22(int) Constant
1
33:
22(int) Constant
1
33:
23(ivec2) ConstantComposite 31 3
1
34: 23(ivec2) ConstantComposite 3
3 33
34: 23(ivec2) ConstantComposite 3
2 32
36: TypePointer Uniform 23(ivec2)
36: TypePointer Uniform 23(ivec2)
38: TypeVector 22(int) 4
38: TypeVector 22(int) 4
39(Uniform): TypeStruct 38(ivec4)
39(Uniform): TypeStruct 38(ivec4)
...
@@ -73,7 +73,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
...
@@ -73,7 +73,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
5: Label
5: Label
62(param): 8(ptr) Variable Function
62(param): 8(ptr) Variable Function
67(param): 10(ptr) Variable Function
67(param): 10(ptr) Variable Function
35: 23(ivec2) Select 30 34 3
2
35: 23(ivec2) Select 30 34 3
3
37: 36(ptr) AccessChain 26 28
37: 36(ptr) AccessChain 26 28
Store 37 35
Store 37 35
43: 42(ptr) AccessChain 41 28
43: 42(ptr) AccessChain 41 28
...
@@ -88,7 +88,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
...
@@ -88,7 +88,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
51: 22(int) CompositeExtract 50 0
51: 22(int) CompositeExtract 50 0
52: 6(bool) INotEqual 51 31
52: 6(bool) INotEqual 51 31
53: 9(bvec2) CompositeConstruct 52 52
53: 9(bvec2) CompositeConstruct 52 52
54: 23(ivec2) Select 53 34 3
2
54: 23(ivec2) Select 53 34 3
3
55: 36(ptr) AccessChain 26 28
55: 36(ptr) AccessChain 26 28
Store 55 54
Store 55 54
Branch 48
Branch 48
...
@@ -106,7 +106,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
...
@@ -106,7 +106,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
Store 62(param) 66
Store 62(param) 66
68: 2 FunctionCall 14(foo(vb4;vb2;) 62(param) 67(param)
68: 2 FunctionCall 14(foo(vb4;vb2;) 62(param) 67(param)
69: 9(bvec2) Load 67(param)
69: 9(bvec2) Load 67(param)
70: 23(ivec2) Select 69 34 3
2
70: 23(ivec2) Select 69 34 3
3
71: 36(ptr) AccessChain 26 28
71: 36(ptr) AccessChain 26 28
Store 71 70
Store 71 70
Branch 61
Branch 61
...
...
Test/baseResults/spv.multiStruct.comp.out
View file @
80f92a19
...
@@ -3,7 +3,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
...
@@ -3,7 +3,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
// Module Version 10000
// Module Version 10000
// Generated by (magic number): 80001
// Generated by (magic number): 80001
// Id's are bound by 1
57
// Id's are bound by 1
61
Capability Shader
Capability Shader
1: ExtInstImport "GLSL.std.450"
1: ExtInstImport "GLSL.std.450"
...
@@ -22,31 +22,31 @@ Warning, version 450 is not yet complete; most version-specific features are pre
...
@@ -22,31 +22,31 @@ Warning, version 450 is not yet complete; most version-specific features are pre
Name 17 "SSBO0"
Name 17 "SSBO0"
MemberName 17(SSBO0) 0 "a"
MemberName 17(SSBO0) 0 "a"
Name 19 "inBuf"
Name 19 "inBuf"
Name 3
7
"SSBO1"
Name 3
9
"SSBO1"
MemberName 3
7
(SSBO1) 0 "b"
MemberName 3
9
(SSBO1) 0 "b"
Name
39
"outBuf"
Name
41
"outBuf"
Name 5
7
"MyStruct"
Name 5
8
"MyStruct"
MemberName 5
7
(MyStruct) 0 "foo"
MemberName 5
8
(MyStruct) 0 "foo"
MemberName 5
7
(MyStruct) 1 "sb"
MemberName 5
8
(MyStruct) 1 "sb"
Name 5
8
"UBO"
Name 5
9
"UBO"
MemberName 5
8
(UBO) 0 "c"
MemberName 5
9
(UBO) 0 "c"
Name 6
0
"uBuf"
Name 6
1
"uBuf"
Name 8
4
"Nested"
Name 8
6
"Nested"
MemberName 8
4
(Nested) 0 "f"
MemberName 8
6
(Nested) 0 "f"
MemberName 8
4
(Nested) 1 "S"
MemberName 8
6
(Nested) 1 "S"
Name 8
6
"n"
Name 8
8
"n"
Name
88
"Nested"
Name
90
"Nested"
MemberName
88
(Nested) 0 "f"
MemberName
90
(Nested) 0 "f"
MemberName
88
(Nested) 1 "S"
MemberName
90
(Nested) 1 "S"
Name
89
"UBON"
Name
91
"UBON"
MemberName
89
(UBON) 0 "N1"
MemberName
91
(UBON) 0 "N1"
Name 9
1
"uBufN"
Name 9
3
"uBufN"
Name 12
2
"Nested"
Name 12
6
"Nested"
MemberName 12
2
(Nested) 0 "f"
MemberName 12
6
(Nested) 0 "f"
MemberName 12
2
(Nested) 1 "S"
MemberName 12
6
(Nested) 1 "S"
Name 12
3
"SSBO1N"
Name 12
7
"SSBO1N"
MemberName 12
3
(SSBO1N) 0 "N2"
MemberName 12
7
(SSBO1N) 0 "N2"
Name 12
5
"outBufN"
Name 12
9
"outBufN"
Decorate 15 ArrayStride 8
Decorate 15 ArrayStride 8
MemberDecorate 16(MyStruct) 0 Offset 0
MemberDecorate 16(MyStruct) 0 Offset 0
MemberDecorate 16(MyStruct) 1 Offset 16
MemberDecorate 16(MyStruct) 1 Offset 16
...
@@ -54,31 +54,31 @@ Warning, version 450 is not yet complete; most version-specific features are pre
...
@@ -54,31 +54,31 @@ Warning, version 450 is not yet complete; most version-specific features are pre
Decorate 17(SSBO0) BufferBlock
Decorate 17(SSBO0) BufferBlock
Decorate 19(inBuf) DescriptorSet 0
Decorate 19(inBuf) DescriptorSet 0
Decorate 19(inBuf) Binding 0
Decorate 19(inBuf) Binding 0
MemberDecorate 3
7
(SSBO1) 0 Offset 0
MemberDecorate 3
9
(SSBO1) 0 Offset 0
Decorate 3
7
(SSBO1) BufferBlock
Decorate 3
9
(SSBO1) BufferBlock
Decorate
39
(outBuf) DescriptorSet 0
Decorate
41
(outBuf) DescriptorSet 0
Decorate
39
(outBuf) Binding 1
Decorate
41
(outBuf) Binding 1
Decorate 5
6
ArrayStride 16
Decorate 5
7
ArrayStride 16
MemberDecorate 5
7
(MyStruct) 0 Offset 0
MemberDecorate 5
8
(MyStruct) 0 Offset 0
MemberDecorate 5
7
(MyStruct) 1 Offset 32
MemberDecorate 5
8
(MyStruct) 1 Offset 32
MemberDecorate 5
8
(UBO) 0 Offset 0
MemberDecorate 5
9
(UBO) 0 Offset 0
Decorate 5
8
(UBO) Block
Decorate 5
9
(UBO) Block
Decorate 6
0
(uBuf) DescriptorSet 0
Decorate 6
1
(uBuf) DescriptorSet 0
Decorate 6
0
(uBuf) Binding 2
Decorate 6
1
(uBuf) Binding 2
Decorate 8
7
ArrayStride 48
Decorate 8
9
ArrayStride 48
MemberDecorate
88
(Nested) 0 Offset 0
MemberDecorate
90
(Nested) 0 Offset 0
MemberDecorate
88
(Nested) 1 Offset 16
MemberDecorate
90
(Nested) 1 Offset 16
MemberDecorate
89
(UBON) 0 Offset 0
MemberDecorate
91
(UBON) 0 Offset 0
Decorate
89
(UBON) Block
Decorate
91
(UBON) Block
Decorate 9
1
(uBufN) DescriptorSet 0
Decorate 9
3
(uBufN) DescriptorSet 0
Decorate 9
1
(uBufN) Binding 2
Decorate 9
3
(uBufN) Binding 2
Decorate 12
1
ArrayStride 24
Decorate 12
5
ArrayStride 24
MemberDecorate 12
2
(Nested) 0 Offset 0
MemberDecorate 12
6
(Nested) 0 Offset 0
MemberDecorate 12
2
(Nested) 1 Offset 8
MemberDecorate 12
6
(Nested) 1 Offset 8
MemberDecorate 12
3
(SSBO1N) 0 Offset 0
MemberDecorate 12
7
(SSBO1N) 0 Offset 0
Decorate 12
3
(SSBO1N) BufferBlock
Decorate 12
7
(SSBO1N) BufferBlock
Decorate 12
5
(outBufN) DescriptorSet 0
Decorate 12
9
(outBufN) DescriptorSet 0
Decorate 12
5
(outBufN) Binding 1
Decorate 12
9
(outBufN) Binding 1
2: TypeVoid
2: TypeVoid
3: TypeFunction 2
3: TypeFunction 2
6: TypeFloat 32
6: TypeFloat 32
...
@@ -100,44 +100,44 @@ Warning, version 450 is not yet complete; most version-specific features are pre
...
@@ -100,44 +100,44 @@ Warning, version 450 is not yet complete; most version-specific features are pre
26: TypePointer Function 10
26: TypePointer Function 10
29: TypePointer Function 7(fvec2)
29: TypePointer Function 7(fvec2)
32: 20(int) Constant 1
32: 20(int) Constant 1
35:
TypePointer Function 11(bool)
35:
8(int) Constant 0
37(SSBO1): TypeStruct 16(MyStruct
)
37: TypePointer Function 11(bool
)
38: TypePointer Uniform 37(SSBO1
)
39(SSBO1): TypeStruct 16(MyStruct
)
39(outBuf): 38(ptr) Variable Uniform
40: TypePointer Uniform 39(SSBO1)
43: TypePointer Uniform 15
41(outBuf): 40(ptr) Variable Uniform
4
6: TypePointer Uniform 7(fvec2)
4
5: TypePointer Uniform 15
51: 8(int) Constant 0
48: TypePointer Uniform 7(fvec2)
5
2
: 8(int) Constant 1
5
3
: 8(int) Constant 1
5
4
: TypePointer Uniform 8(int)
5
5
: TypePointer Uniform 8(int)
5
6
: TypeArray 7(fvec2) 9
5
7
: TypeArray 7(fvec2) 9
5
7(MyStruct): TypeStruct 56
8(int)
5
8(MyStruct): TypeStruct 57
8(int)
5
8(UBO): TypeStruct 57
(MyStruct)
5
9(UBO): TypeStruct 58
(MyStruct)
59: TypePointer Uniform 58
(UBO)
60: TypePointer Uniform 59
(UBO)
6
0(uBuf): 59
(ptr) Variable Uniform
6
1(uBuf): 60
(ptr) Variable Uniform
6
1: TypePointer Uniform 57
(MyStruct)
6
2: TypePointer Uniform 58
(MyStruct)
8
3
: TypeArray 12(MyStruct) 9
8
5
: TypeArray 12(MyStruct) 9
8
4(Nested): TypeStruct 6(float) 83
8
6(Nested): TypeStruct 6(float) 85
8
5: TypePointer Function 84
(Nested)
8
7: TypePointer Function 86
(Nested)
8
7: TypeArray 57
(MyStruct) 9
8
9: TypeArray 58
(MyStruct) 9
88(Nested): TypeStruct 6(float) 87
90(Nested): TypeStruct 6(float) 89
89(UBON): TypeStruct 88
(Nested)
91(UBON): TypeStruct 90
(Nested)
9
0: TypePointer Uniform 89
(UBON)
9
2: TypePointer Uniform 91
(UBON)
9
1(uBufN): 90
(ptr) Variable Uniform
9
3(uBufN): 92
(ptr) Variable Uniform
9
2: TypePointer Uniform 88
(Nested)
9
4: TypePointer Uniform 90
(Nested)
9
6
: TypePointer Function 6(float)
9
8
: TypePointer Function 6(float)
99: TypePointer Function 83
101: TypePointer Function 85
12
1
: TypeArray 16(MyStruct) 9
12
5
: TypeArray 16(MyStruct) 9
12
2(Nested): TypeStruct 6(float) 121
12
6(Nested): TypeStruct 6(float) 125
12
3(SSBO1N): TypeStruct 122
(Nested)
12
7(SSBO1N): TypeStruct 126
(Nested)
12
4: TypePointer Uniform 123
(SSBO1N)
12
8: TypePointer Uniform 127
(SSBO1N)
12
5(outBufN): 124
(ptr) Variable Uniform
12
9(outBufN): 128
(ptr) Variable Uniform
1
27: TypePointer Uniform 122
(Nested)
1
31: TypePointer Uniform 126
(Nested)
13
0
: TypePointer Uniform 6(float)
13
4
: TypePointer Uniform 6(float)
13
3: TypePointer Uniform 121
13
7: TypePointer Uniform 125
4(main): 2 Function None 3
4(main): 2 Function None 3
5: Label
5: Label
14(t): 13(ptr) Variable Function
14(t): 13(ptr) Variable Function
8
6(n): 85
(ptr) Variable Function
8
8(n): 87
(ptr) Variable Function
23: 22(ptr) AccessChain 19(inBuf) 21
23: 22(ptr) AccessChain 19(inBuf) 21
24:16(MyStruct) Load 23
24:16(MyStruct) Load 23
25: 15 CompositeExtract 24 0
25: 15 CompositeExtract 24 0
...
@@ -149,116 +149,120 @@ Warning, version 450 is not yet complete; most version-specific features are pre
...
@@ -149,116 +149,120 @@ Warning, version 450 is not yet complete; most version-specific features are pre
33: 29(ptr) AccessChain 27 32
33: 29(ptr) AccessChain 27 32
Store 33 31
Store 33 31
34: 8(int) CompositeExtract 24 1
34: 8(int) CompositeExtract 24 1
36: 35(ptr) AccessChain 14(t) 32
36: 11(bool) INotEqual 34 35
Store 36 34
38: 37(ptr) AccessChain 14(t) 32
40:12(MyStruct) Load 14(t)
Store 38 36
41: 22(ptr) AccessChain 39(outBuf) 21
42:12(MyStruct) Load 14(t)
42: 10 CompositeExtract 40 0
43: 22(ptr) AccessChain 41(outBuf) 21
44: 43(ptr) AccessChain 41 21
44: 10 CompositeExtract 42 0
45: 7(fvec2) CompositeExtract 42 0
46: 45(ptr) AccessChain 43 21
47: 46(ptr) AccessChain 44 21
47: 7(fvec2) CompositeExtract 44 0
Store 47 45
49: 48(ptr) AccessChain 46 21
48: 7(fvec2) CompositeExtract 42 1
Store 49 47
49: 46(ptr) AccessChain 44 32
50: 7(fvec2) CompositeExtract 44 1
Store 49 48
51: 48(ptr) AccessChain 46 32
50: 11(bool) CompositeExtract 40 1
Store 51 50
53: 8(int) Select 50 52 51
52: 11(bool) CompositeExtract 42 1
55: 54(ptr) AccessChain 41 32
54: 8(int) Select 52 53 35
Store 55 53
56: 55(ptr) AccessChain 43 32
62: 61(ptr) AccessChain 60(uBuf) 21
Store 56 54
63:57(MyStruct) Load 62
63: 62(ptr) AccessChain 61(uBuf) 21
64: 56 CompositeExtract 63 0
64:58(MyStruct) Load 63
65: 26(ptr) AccessChain 14(t) 21
65: 57 CompositeExtract 64 0
66: 7(fvec2) CompositeExtract 64 0
66: 26(ptr) AccessChain 14(t) 21
67: 29(ptr) AccessChain 65 21
67: 7(fvec2) CompositeExtract 65 0
Store 67 66
68: 29(ptr) AccessChain 66 21
68: 7(fvec2) CompositeExtract 64 1
Store 68 67
69: 29(ptr) AccessChain 65 32
69: 7(fvec2) CompositeExtract 65 1
Store 69 68
70: 29(ptr) AccessChain 66 32
70: 8(int) CompositeExtract 63 1
Store 70 69
71: 35(ptr) AccessChain 14(t) 32
71: 8(int) CompositeExtract 64 1
Store 71 70
72: 11(bool) INotEqual 71 35
72:12(MyStruct) Load 14(t)
73: 37(ptr) AccessChain 14(t) 32
73: 22(ptr) AccessChain 39(outBuf) 21
Store 73 72
74: 10 CompositeExtract 72 0
74:12(MyStruct) Load 14(t)
75: 43(ptr) AccessChain 73 21
75: 22(ptr) AccessChain 41(outBuf) 21
76: 7(fvec2) CompositeExtract 74 0
76: 10 CompositeExtract 74 0
77: 46(ptr) AccessChain 75 21
77: 45(ptr) AccessChain 75 21
Store 77 76
78: 7(fvec2) CompositeExtract 76 0
78: 7(fvec2) CompositeExtract 74 1
79: 48(ptr) AccessChain 77 21
79: 46(ptr) AccessChain 75 32
Store 79 78
Store 79 78
80:
11(bool) CompositeExtract 72
1
80:
7(fvec2) CompositeExtract 76
1
81:
8(int) Select 80 52 51
81:
48(ptr) AccessChain 77 32
82: 54(ptr) AccessChain 73 32
Store 81 80
Store 82 8
1
82: 11(bool) CompositeExtract 74
1
93: 92(ptr) AccessChain 91(uBufN) 21
83: 8(int) Select 82 53 35
94: 88(Nested) Load 93
84: 55(ptr) AccessChain 75 32
95: 6(float) CompositeExtract 94 0
Store 84 83
9
7: 96(ptr) AccessChain 86(n
) 21
9
5: 94(ptr) AccessChain 93(uBufN
) 21
Store 97
95
96: 90(Nested) Load
95
9
8: 87 CompositeExtract 94 1
9
7: 6(float) CompositeExtract 96 0
100: 99(ptr) AccessChain 86(n) 32
99: 98(ptr) AccessChain 88(n) 21
101:57(MyStruct) CompositeExtract 98 0
Store 99 97
10
2: 13(ptr) AccessChain 100 2
1
10
0: 89 CompositeExtract 96
1
10
3: 56 CompositeExtract 101 0
10
2: 101(ptr) AccessChain 88(n) 32
10
4: 26(ptr) AccessChain 102 21
10
3:58(MyStruct) CompositeExtract 100 0
10
5: 7(fvec2) CompositeExtract 103 0
10
4: 13(ptr) AccessChain 102 21
10
6: 29(ptr) AccessChain 104 21
10
5: 57 CompositeExtract 103 0
Store 106 105
106: 26(ptr) AccessChain 104 21
107: 7(fvec2) CompositeExtract 10
3 1
107: 7(fvec2) CompositeExtract 10
5 0
108: 29(ptr) AccessChain 10
4 32
108: 29(ptr) AccessChain 10
6 21
Store 108 107
Store 108 107
109:
8(int) CompositeExtract 101
1
109:
7(fvec2) CompositeExtract 105
1
110:
35(ptr) AccessChain 102
32
110:
29(ptr) AccessChain 106
32
Store 110 109
Store 110 109
111:57(MyStruct) CompositeExtract 98 1
111: 8(int) CompositeExtract 103 1
112: 13(ptr) AccessChain 100 32
112: 11(bool) INotEqual 111 35
113: 56 CompositeExtract 111 0
113: 37(ptr) AccessChain 104 32
114: 26(ptr) AccessChain 112 21
Store 113 112
115: 7(fvec2) CompositeExtract 113 0
114:58(MyStruct) CompositeExtract 100 1
116: 29(ptr) AccessChain 114 21
115: 13(ptr) AccessChain 102 32
Store 116 115
116: 57 CompositeExtract 114 0
117: 7(fvec2) CompositeExtract 113 1
117: 26(ptr) AccessChain 115 21
118: 29(ptr) AccessChain 114 32
118: 7(fvec2) CompositeExtract 116 0
Store 118 117
119: 29(ptr) AccessChain 117 21
119: 8(int) CompositeExtract 111 1
Store 119 118
120: 35(ptr) AccessChain 112 32
120: 7(fvec2) CompositeExtract 116 1
Store 120 119
121: 29(ptr) AccessChain 117 32
126: 84(Nested) Load 86(n)
Store 121 120
128: 127(ptr) AccessChain 125(outBufN) 21
122: 8(int) CompositeExtract 114 1
129: 6(float) CompositeExtract 126 0
123: 11(bool) INotEqual 122 35
131: 130(ptr) AccessChain 128 21
124: 37(ptr) AccessChain 115 32
Store 131 129
Store 124 123
132: 83 CompositeExtract 126 1
130: 86(Nested) Load 88(n)
134: 133(ptr) AccessChain 128 32
132: 131(ptr) AccessChain 129(outBufN) 21
135:12(MyStruct) CompositeExtract 132 0
133: 6(float) CompositeExtract 130 0
136: 22(ptr) AccessChain 134 21
135: 134(ptr) AccessChain 132 21
137: 10 CompositeExtract 135 0
Store 135 133
138: 43(ptr) AccessChain 136 21
136: 85 CompositeExtract 130 1
139: 7(fvec2) CompositeExtract 137 0
138: 137(ptr) AccessChain 132 32
140: 46(ptr) AccessChain 138 21
139:12(MyStruct) CompositeExtract 136 0
Store 140 139
140: 22(ptr) AccessChain 138 21
141: 7(fvec2) CompositeExtract 137 1
141: 10 CompositeExtract 139 0
142: 46(ptr) AccessChain 138 32
142: 45(ptr) AccessChain 140 21
Store 142 141
143: 7(fvec2) CompositeExtract 141 0
143: 11(bool) CompositeExtract 135 1
144: 48(ptr) AccessChain 142 21
144: 8(int) Select 143 52 51
Store 144 143
145: 54(ptr) AccessChain 136 32
145: 7(fvec2) CompositeExtract 141 1
Store 145 144
146: 48(ptr) AccessChain 142 32
146:12(MyStruct) CompositeExtract 132 1
Store 146 145
147: 22(ptr) AccessChain 134 32
147: 11(bool) CompositeExtract 139 1
148: 10 CompositeExtract 146 0
148: 8(int) Select 147 53 35
149: 43(ptr) AccessChain 147 21
149: 55(ptr) AccessChain 140 32
150: 7(fvec2) CompositeExtract 148 0
Store 149 148
151: 46(ptr) AccessChain 149 21
150:12(MyStruct) CompositeExtract 136 1
Store 151 150
151: 22(ptr) AccessChain 138 32
152: 7(fvec2) CompositeExtract 148 1
152: 10 CompositeExtract 150 0
153: 46(ptr) AccessChain 149 32
153: 45(ptr) AccessChain 151 21
Store 153 152
154: 7(fvec2) CompositeExtract 152 0
154: 11(bool) CompositeExtract 146 1
155: 48(ptr) AccessChain 153 21
155: 8(int) Select 154 52 51
Store 155 154
156: 54(ptr) AccessChain 147 32
156: 7(fvec2) CompositeExtract 152 1
Store 156 155
157: 48(ptr) AccessChain 153 32
Store 157 156
158: 11(bool) CompositeExtract 150 1
159: 8(int) Select 158 53 35
160: 55(ptr) AccessChain 151 32
Store 160 159
Return
Return
FunctionEnd
FunctionEnd
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment