Added new test to gtests and updated test data

This commit is contained in:
Sebastian Tafuri 2017-11-27 16:53:09 +01:00
parent 59677daef7
commit 66b319d30b
4 changed files with 1096 additions and 890 deletions

View File

@ -0,0 +1,173 @@
hlsl.store.rwbyteaddressbuffer.type.comp
Shader version: 500
local_size = (64, 1, 1)
0:? Sequence
0:5 Function Definition: @main(vu3; ( temp void)
0:5 Function Parameters:
0:5 'dispatchThreadID' ( in 3-component vector of uint)
0:? Sequence
0:6 Test condition and select ( temp void)
0:6 Condition
0:6 Compare Equal ( temp bool)
0:6 direct index ( temp uint)
0:6 'dispatchThreadID' ( in 3-component vector of uint)
0:6 Constant:
0:6 0 (const int)
0:6 Constant:
0:6 0 (const uint)
0:6 true case
0:? Sequence
0:7 move second child to first child ( temp int)
0:7 'byteAddrTemp' ( temp int)
0:7 right-shift ( temp int)
0:7 Constant:
0:7 0 (const int)
0:7 Constant:
0:7 2 (const int)
0:7 move second child to first child ( temp uint)
0:7 indirect index (layout( row_major std430) buffer uint)
0:7 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:7 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:7 Constant:
0:7 0 (const uint)
0:7 'byteAddrTemp' ( temp int)
0:7 Constant:
0:7 2 (const uint)
0:5 Function Definition: main( ( temp void)
0:5 Function Parameters:
0:? Sequence
0:5 move second child to first child ( temp 3-component vector of uint)
0:? 'dispatchThreadID' ( temp 3-component vector of uint)
0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID)
0:5 Function Call: @main(vu3; ( temp void)
0:? 'dispatchThreadID' ( temp 3-component vector of uint)
0:? Linker Objects
0:? 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID)
Linked compute stage:
Shader version: 500
local_size = (64, 1, 1)
0:? Sequence
0:5 Function Definition: @main(vu3; ( temp void)
0:5 Function Parameters:
0:5 'dispatchThreadID' ( in 3-component vector of uint)
0:? Sequence
0:6 Test condition and select ( temp void)
0:6 Condition
0:6 Compare Equal ( temp bool)
0:6 direct index ( temp uint)
0:6 'dispatchThreadID' ( in 3-component vector of uint)
0:6 Constant:
0:6 0 (const int)
0:6 Constant:
0:6 0 (const uint)
0:6 true case
0:? Sequence
0:7 move second child to first child ( temp int)
0:7 'byteAddrTemp' ( temp int)
0:7 right-shift ( temp int)
0:7 Constant:
0:7 0 (const int)
0:7 Constant:
0:7 2 (const int)
0:7 move second child to first child ( temp uint)
0:7 indirect index (layout( row_major std430) buffer uint)
0:7 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:7 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:7 Constant:
0:7 0 (const uint)
0:7 'byteAddrTemp' ( temp int)
0:7 Constant:
0:7 2 (const uint)
0:5 Function Definition: main( ( temp void)
0:5 Function Parameters:
0:? Sequence
0:5 move second child to first child ( temp 3-component vector of uint)
0:? 'dispatchThreadID' ( temp 3-component vector of uint)
0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID)
0:5 Function Call: @main(vu3; ( temp void)
0:? 'dispatchThreadID' ( temp 3-component vector of uint)
0:? Linker Objects
0:? 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID)
// Module Version 10000
// Generated by (magic number): 80002
// Id's are bound by 42
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 37
ExecutionMode 4 LocalSize 64 1 1
Source HLSL 500
Name 4 "main"
Name 11 "@main(vu3;"
Name 10 "dispatchThreadID"
Name 23 "byteAddrTemp"
Name 28 "buffer"
MemberName 28(buffer) 0 "@data"
Name 30 "buffer"
Name 35 "dispatchThreadID"
Name 37 "dispatchThreadID"
Name 39 "param"
Decorate 27 ArrayStride 4
MemberDecorate 28(buffer) 0 Offset 0
Decorate 28(buffer) BufferBlock
Decorate 30(buffer) DescriptorSet 0
Decorate 37(dispatchThreadID) BuiltIn GlobalInvocationId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypeVector 6(int) 3
8: TypePointer Function 7(ivec3)
9: TypeFunction 2 8(ptr)
13: 6(int) Constant 0
14: TypePointer Function 6(int)
17: TypeBool
21: TypeInt 32 1
22: TypePointer Function 21(int)
24: 21(int) Constant 0
25: 21(int) Constant 2
27: TypeRuntimeArray 6(int)
28(buffer): TypeStruct 27
29: TypePointer Uniform 28(buffer)
30(buffer): 29(ptr) Variable Uniform
32: 6(int) Constant 2
33: TypePointer Uniform 6(int)
36: TypePointer Input 7(ivec3)
37(dispatchThreadID): 36(ptr) Variable Input
4(main): 2 Function None 3
5: Label
35(dispatchThreadID): 8(ptr) Variable Function
39(param): 8(ptr) Variable Function
38: 7(ivec3) Load 37(dispatchThreadID)
Store 35(dispatchThreadID) 38
40: 7(ivec3) Load 35(dispatchThreadID)
Store 39(param) 40
41: 2 FunctionCall 11(@main(vu3;) 39(param)
Return
FunctionEnd
11(@main(vu3;): 2 Function None 9
10(dispatchThreadID): 8(ptr) FunctionParameter
12: Label
23(byteAddrTemp): 22(ptr) Variable Function
15: 14(ptr) AccessChain 10(dispatchThreadID) 13
16: 6(int) Load 15
18: 17(bool) IEqual 16 13
SelectionMerge 20 None
BranchConditional 18 19 20
19: Label
26: 21(int) ShiftRightArithmetic 24 25
Store 23(byteAddrTemp) 26
31: 21(int) Load 23(byteAddrTemp)
34: 33(ptr) AccessChain 30(buffer) 24 31
Store 34 32
Branch 20
20: Label
Return
FunctionEnd

View File

@ -21,14 +21,13 @@ gl_FragCoord origin is upper left
0:9 'pos' ( in uint) 0:9 'pos' ( in uint)
0:9 Constant: 0:9 Constant:
0:9 2 (const int) 0:9 2 (const int)
0:9 move second child to first child ( temp float) 0:9 move second child to first child ( temp uint)
0:9 indirect index ( temp float) 0:9 indirect index (layout( row_major std430) buffer uint)
0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:9 Constant: 0:9 Constant:
0:9 0 (const uint) 0:9 0 (const uint)
0:9 'byteAddrTemp' ( temp int) 0:9 'byteAddrTemp' ( temp int)
0:9 Convert uint to float ( temp float)
0:9 indirect index (layout( row_major std430) buffer uint) 0:9 indirect index (layout( row_major std430) buffer uint)
0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
@ -45,13 +44,14 @@ gl_FragCoord origin is upper left
0:10 'pos' ( in uint) 0:10 'pos' ( in uint)
0:10 Constant: 0:10 Constant:
0:10 2 (const int) 0:10 2 (const int)
0:10 move second child to first child ( temp float) 0:10 move second child to first child ( temp uint)
0:10 indirect index ( temp float) 0:10 indirect index (layout( row_major std430) buffer uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 Constant: 0:10 Constant:
0:10 0 (const uint) 0:10 0 (const uint)
0:10 'byteAddrTemp' ( temp int) 0:10 'byteAddrTemp' ( temp int)
0:10 Convert float to uint ( temp uint)
0:10 direct index ( temp float) 0:10 direct index ( temp float)
0:? Sequence 0:? Sequence
0:10 move second child to first child ( temp int) 0:10 move second child to first child ( temp int)
@ -78,8 +78,8 @@ gl_FragCoord origin is upper left
0:10 1 (const int) 0:10 1 (const int)
0:10 Constant: 0:10 Constant:
0:10 0 (const int) 0:10 0 (const int)
0:10 move second child to first child ( temp float) 0:10 move second child to first child ( temp uint)
0:10 indirect index ( temp float) 0:10 indirect index (layout( row_major std430) buffer uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 Constant: 0:10 Constant:
@ -88,6 +88,7 @@ gl_FragCoord origin is upper left
0:10 'byteAddrTemp' ( temp int) 0:10 'byteAddrTemp' ( temp int)
0:10 Constant: 0:10 Constant:
0:10 1 (const int) 0:10 1 (const int)
0:10 Convert float to uint ( temp uint)
0:10 direct index ( temp float) 0:10 direct index ( temp float)
0:? Sequence 0:? Sequence
0:10 move second child to first child ( temp int) 0:10 move second child to first child ( temp int)
@ -121,13 +122,14 @@ gl_FragCoord origin is upper left
0:11 'pos' ( in uint) 0:11 'pos' ( in uint)
0:11 Constant: 0:11 Constant:
0:11 2 (const int) 0:11 2 (const int)
0:11 move second child to first child ( temp float) 0:11 move second child to first child ( temp uint)
0:11 indirect index ( temp float) 0:11 indirect index (layout( row_major std430) buffer uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 Constant: 0:11 Constant:
0:11 0 (const uint) 0:11 0 (const uint)
0:11 'byteAddrTemp' ( temp int) 0:11 'byteAddrTemp' ( temp int)
0:11 Convert float to uint ( temp uint)
0:11 direct index ( temp float) 0:11 direct index ( temp float)
0:? Sequence 0:? Sequence
0:11 move second child to first child ( temp int) 0:11 move second child to first child ( temp int)
@ -163,8 +165,8 @@ gl_FragCoord origin is upper left
0:11 2 (const int) 0:11 2 (const int)
0:11 Constant: 0:11 Constant:
0:11 0 (const int) 0:11 0 (const int)
0:11 move second child to first child ( temp float) 0:11 move second child to first child ( temp uint)
0:11 indirect index ( temp float) 0:11 indirect index (layout( row_major std430) buffer uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 Constant: 0:11 Constant:
@ -173,6 +175,7 @@ gl_FragCoord origin is upper left
0:11 'byteAddrTemp' ( temp int) 0:11 'byteAddrTemp' ( temp int)
0:11 Constant: 0:11 Constant:
0:11 1 (const int) 0:11 1 (const int)
0:11 Convert float to uint ( temp uint)
0:11 direct index ( temp float) 0:11 direct index ( temp float)
0:? Sequence 0:? Sequence
0:11 move second child to first child ( temp int) 0:11 move second child to first child ( temp int)
@ -208,8 +211,8 @@ gl_FragCoord origin is upper left
0:11 2 (const int) 0:11 2 (const int)
0:11 Constant: 0:11 Constant:
0:11 1 (const int) 0:11 1 (const int)
0:11 move second child to first child ( temp float) 0:11 move second child to first child ( temp uint)
0:11 indirect index ( temp float) 0:11 indirect index (layout( row_major std430) buffer uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 Constant: 0:11 Constant:
@ -218,6 +221,7 @@ gl_FragCoord origin is upper left
0:11 'byteAddrTemp' ( temp int) 0:11 'byteAddrTemp' ( temp int)
0:11 Constant: 0:11 Constant:
0:11 2 (const int) 0:11 2 (const int)
0:11 Convert float to uint ( temp uint)
0:11 direct index ( temp float) 0:11 direct index ( temp float)
0:? Sequence 0:? Sequence
0:11 move second child to first child ( temp int) 0:11 move second child to first child ( temp int)
@ -260,13 +264,14 @@ gl_FragCoord origin is upper left
0:12 'pos' ( in uint) 0:12 'pos' ( in uint)
0:12 Constant: 0:12 Constant:
0:12 2 (const int) 0:12 2 (const int)
0:12 move second child to first child ( temp float) 0:12 move second child to first child ( temp uint)
0:12 indirect index ( temp float) 0:12 indirect index (layout( row_major std430) buffer uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 Constant: 0:12 Constant:
0:12 0 (const uint) 0:12 0 (const uint)
0:12 'byteAddrTemp' ( temp int) 0:12 'byteAddrTemp' ( temp int)
0:12 Convert float to uint ( temp uint)
0:12 direct index ( temp float) 0:12 direct index ( temp float)
0:? Sequence 0:? Sequence
0:12 move second child to first child ( temp int) 0:12 move second child to first child ( temp int)
@ -311,8 +316,8 @@ gl_FragCoord origin is upper left
0:12 3 (const int) 0:12 3 (const int)
0:12 Constant: 0:12 Constant:
0:12 0 (const int) 0:12 0 (const int)
0:12 move second child to first child ( temp float) 0:12 move second child to first child ( temp uint)
0:12 indirect index ( temp float) 0:12 indirect index (layout( row_major std430) buffer uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 Constant: 0:12 Constant:
@ -321,6 +326,7 @@ gl_FragCoord origin is upper left
0:12 'byteAddrTemp' ( temp int) 0:12 'byteAddrTemp' ( temp int)
0:12 Constant: 0:12 Constant:
0:12 1 (const int) 0:12 1 (const int)
0:12 Convert float to uint ( temp uint)
0:12 direct index ( temp float) 0:12 direct index ( temp float)
0:? Sequence 0:? Sequence
0:12 move second child to first child ( temp int) 0:12 move second child to first child ( temp int)
@ -365,8 +371,8 @@ gl_FragCoord origin is upper left
0:12 3 (const int) 0:12 3 (const int)
0:12 Constant: 0:12 Constant:
0:12 1 (const int) 0:12 1 (const int)
0:12 move second child to first child ( temp float) 0:12 move second child to first child ( temp uint)
0:12 indirect index ( temp float) 0:12 indirect index (layout( row_major std430) buffer uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 Constant: 0:12 Constant:
@ -375,6 +381,7 @@ gl_FragCoord origin is upper left
0:12 'byteAddrTemp' ( temp int) 0:12 'byteAddrTemp' ( temp int)
0:12 Constant: 0:12 Constant:
0:12 2 (const int) 0:12 2 (const int)
0:12 Convert float to uint ( temp uint)
0:12 direct index ( temp float) 0:12 direct index ( temp float)
0:? Sequence 0:? Sequence
0:12 move second child to first child ( temp int) 0:12 move second child to first child ( temp int)
@ -419,8 +426,8 @@ gl_FragCoord origin is upper left
0:12 3 (const int) 0:12 3 (const int)
0:12 Constant: 0:12 Constant:
0:12 2 (const int) 0:12 2 (const int)
0:12 move second child to first child ( temp float) 0:12 move second child to first child ( temp uint)
0:12 indirect index ( temp float) 0:12 indirect index (layout( row_major std430) buffer uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 Constant: 0:12 Constant:
@ -429,6 +436,7 @@ gl_FragCoord origin is upper left
0:12 'byteAddrTemp' ( temp int) 0:12 'byteAddrTemp' ( temp int)
0:12 Constant: 0:12 Constant:
0:12 3 (const int) 0:12 3 (const int)
0:12 Convert float to uint ( temp uint)
0:12 direct index ( temp float) 0:12 direct index ( temp float)
0:? Sequence 0:? Sequence
0:12 move second child to first child ( temp int) 0:12 move second child to first child ( temp int)
@ -526,14 +534,13 @@ gl_FragCoord origin is upper left
0:9 'pos' ( in uint) 0:9 'pos' ( in uint)
0:9 Constant: 0:9 Constant:
0:9 2 (const int) 0:9 2 (const int)
0:9 move second child to first child ( temp float) 0:9 move second child to first child ( temp uint)
0:9 indirect index ( temp float) 0:9 indirect index (layout( row_major std430) buffer uint)
0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:9 Constant: 0:9 Constant:
0:9 0 (const uint) 0:9 0 (const uint)
0:9 'byteAddrTemp' ( temp int) 0:9 'byteAddrTemp' ( temp int)
0:9 Convert uint to float ( temp float)
0:9 indirect index (layout( row_major std430) buffer uint) 0:9 indirect index (layout( row_major std430) buffer uint)
0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
@ -550,13 +557,14 @@ gl_FragCoord origin is upper left
0:10 'pos' ( in uint) 0:10 'pos' ( in uint)
0:10 Constant: 0:10 Constant:
0:10 2 (const int) 0:10 2 (const int)
0:10 move second child to first child ( temp float) 0:10 move second child to first child ( temp uint)
0:10 indirect index ( temp float) 0:10 indirect index (layout( row_major std430) buffer uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 Constant: 0:10 Constant:
0:10 0 (const uint) 0:10 0 (const uint)
0:10 'byteAddrTemp' ( temp int) 0:10 'byteAddrTemp' ( temp int)
0:10 Convert float to uint ( temp uint)
0:10 direct index ( temp float) 0:10 direct index ( temp float)
0:? Sequence 0:? Sequence
0:10 move second child to first child ( temp int) 0:10 move second child to first child ( temp int)
@ -583,8 +591,8 @@ gl_FragCoord origin is upper left
0:10 1 (const int) 0:10 1 (const int)
0:10 Constant: 0:10 Constant:
0:10 0 (const int) 0:10 0 (const int)
0:10 move second child to first child ( temp float) 0:10 move second child to first child ( temp uint)
0:10 indirect index ( temp float) 0:10 indirect index (layout( row_major std430) buffer uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 Constant: 0:10 Constant:
@ -593,6 +601,7 @@ gl_FragCoord origin is upper left
0:10 'byteAddrTemp' ( temp int) 0:10 'byteAddrTemp' ( temp int)
0:10 Constant: 0:10 Constant:
0:10 1 (const int) 0:10 1 (const int)
0:10 Convert float to uint ( temp uint)
0:10 direct index ( temp float) 0:10 direct index ( temp float)
0:? Sequence 0:? Sequence
0:10 move second child to first child ( temp int) 0:10 move second child to first child ( temp int)
@ -626,13 +635,14 @@ gl_FragCoord origin is upper left
0:11 'pos' ( in uint) 0:11 'pos' ( in uint)
0:11 Constant: 0:11 Constant:
0:11 2 (const int) 0:11 2 (const int)
0:11 move second child to first child ( temp float) 0:11 move second child to first child ( temp uint)
0:11 indirect index ( temp float) 0:11 indirect index (layout( row_major std430) buffer uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 Constant: 0:11 Constant:
0:11 0 (const uint) 0:11 0 (const uint)
0:11 'byteAddrTemp' ( temp int) 0:11 'byteAddrTemp' ( temp int)
0:11 Convert float to uint ( temp uint)
0:11 direct index ( temp float) 0:11 direct index ( temp float)
0:? Sequence 0:? Sequence
0:11 move second child to first child ( temp int) 0:11 move second child to first child ( temp int)
@ -668,8 +678,8 @@ gl_FragCoord origin is upper left
0:11 2 (const int) 0:11 2 (const int)
0:11 Constant: 0:11 Constant:
0:11 0 (const int) 0:11 0 (const int)
0:11 move second child to first child ( temp float) 0:11 move second child to first child ( temp uint)
0:11 indirect index ( temp float) 0:11 indirect index (layout( row_major std430) buffer uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 Constant: 0:11 Constant:
@ -678,6 +688,7 @@ gl_FragCoord origin is upper left
0:11 'byteAddrTemp' ( temp int) 0:11 'byteAddrTemp' ( temp int)
0:11 Constant: 0:11 Constant:
0:11 1 (const int) 0:11 1 (const int)
0:11 Convert float to uint ( temp uint)
0:11 direct index ( temp float) 0:11 direct index ( temp float)
0:? Sequence 0:? Sequence
0:11 move second child to first child ( temp int) 0:11 move second child to first child ( temp int)
@ -713,8 +724,8 @@ gl_FragCoord origin is upper left
0:11 2 (const int) 0:11 2 (const int)
0:11 Constant: 0:11 Constant:
0:11 1 (const int) 0:11 1 (const int)
0:11 move second child to first child ( temp float) 0:11 move second child to first child ( temp uint)
0:11 indirect index ( temp float) 0:11 indirect index (layout( row_major std430) buffer uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 Constant: 0:11 Constant:
@ -723,6 +734,7 @@ gl_FragCoord origin is upper left
0:11 'byteAddrTemp' ( temp int) 0:11 'byteAddrTemp' ( temp int)
0:11 Constant: 0:11 Constant:
0:11 2 (const int) 0:11 2 (const int)
0:11 Convert float to uint ( temp uint)
0:11 direct index ( temp float) 0:11 direct index ( temp float)
0:? Sequence 0:? Sequence
0:11 move second child to first child ( temp int) 0:11 move second child to first child ( temp int)
@ -765,13 +777,14 @@ gl_FragCoord origin is upper left
0:12 'pos' ( in uint) 0:12 'pos' ( in uint)
0:12 Constant: 0:12 Constant:
0:12 2 (const int) 0:12 2 (const int)
0:12 move second child to first child ( temp float) 0:12 move second child to first child ( temp uint)
0:12 indirect index ( temp float) 0:12 indirect index (layout( row_major std430) buffer uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 Constant: 0:12 Constant:
0:12 0 (const uint) 0:12 0 (const uint)
0:12 'byteAddrTemp' ( temp int) 0:12 'byteAddrTemp' ( temp int)
0:12 Convert float to uint ( temp uint)
0:12 direct index ( temp float) 0:12 direct index ( temp float)
0:? Sequence 0:? Sequence
0:12 move second child to first child ( temp int) 0:12 move second child to first child ( temp int)
@ -816,8 +829,8 @@ gl_FragCoord origin is upper left
0:12 3 (const int) 0:12 3 (const int)
0:12 Constant: 0:12 Constant:
0:12 0 (const int) 0:12 0 (const int)
0:12 move second child to first child ( temp float) 0:12 move second child to first child ( temp uint)
0:12 indirect index ( temp float) 0:12 indirect index (layout( row_major std430) buffer uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 Constant: 0:12 Constant:
@ -826,6 +839,7 @@ gl_FragCoord origin is upper left
0:12 'byteAddrTemp' ( temp int) 0:12 'byteAddrTemp' ( temp int)
0:12 Constant: 0:12 Constant:
0:12 1 (const int) 0:12 1 (const int)
0:12 Convert float to uint ( temp uint)
0:12 direct index ( temp float) 0:12 direct index ( temp float)
0:? Sequence 0:? Sequence
0:12 move second child to first child ( temp int) 0:12 move second child to first child ( temp int)
@ -870,8 +884,8 @@ gl_FragCoord origin is upper left
0:12 3 (const int) 0:12 3 (const int)
0:12 Constant: 0:12 Constant:
0:12 1 (const int) 0:12 1 (const int)
0:12 move second child to first child ( temp float) 0:12 move second child to first child ( temp uint)
0:12 indirect index ( temp float) 0:12 indirect index (layout( row_major std430) buffer uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 Constant: 0:12 Constant:
@ -880,6 +894,7 @@ gl_FragCoord origin is upper left
0:12 'byteAddrTemp' ( temp int) 0:12 'byteAddrTemp' ( temp int)
0:12 Constant: 0:12 Constant:
0:12 2 (const int) 0:12 2 (const int)
0:12 Convert float to uint ( temp uint)
0:12 direct index ( temp float) 0:12 direct index ( temp float)
0:? Sequence 0:? Sequence
0:12 move second child to first child ( temp int) 0:12 move second child to first child ( temp int)
@ -924,8 +939,8 @@ gl_FragCoord origin is upper left
0:12 3 (const int) 0:12 3 (const int)
0:12 Constant: 0:12 Constant:
0:12 2 (const int) 0:12 2 (const int)
0:12 move second child to first child ( temp float) 0:12 move second child to first child ( temp uint)
0:12 indirect index ( temp float) 0:12 indirect index (layout( row_major std430) buffer uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 Constant: 0:12 Constant:
@ -934,6 +949,7 @@ gl_FragCoord origin is upper left
0:12 'byteAddrTemp' ( temp int) 0:12 'byteAddrTemp' ( temp int)
0:12 Constant: 0:12 Constant:
0:12 3 (const int) 0:12 3 (const int)
0:12 Convert float to uint ( temp uint)
0:12 direct index ( temp float) 0:12 direct index ( temp float)
0:? Sequence 0:? Sequence
0:12 move second child to first child ( temp int) 0:12 move second child to first child ( temp int)
@ -1007,12 +1023,12 @@ gl_FragCoord origin is upper left
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80002 // Generated by (magic number): 80002
// Id's are bound by 240 // Id's are bound by 248
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 233 236 EntryPoint Fragment 4 "main" 241 244
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
@ -1023,23 +1039,23 @@ gl_FragCoord origin is upper left
MemberName 16(sbuf) 0 "@data" MemberName 16(sbuf) 0 "@data"
Name 18 "sbuf" Name 18 "sbuf"
Name 22 "byteAddrTemp" Name 22 "byteAddrTemp"
Name 35 "byteAddrTemp" Name 34 "byteAddrTemp"
Name 39 "byteAddrTemp" Name 38 "byteAddrTemp"
Name 70 "byteAddrTemp" Name 71 "byteAddrTemp"
Name 74 "byteAddrTemp" Name 75 "byteAddrTemp"
Name 129 "byteAddrTemp"
Name 133 "byteAddrTemp" Name 133 "byteAddrTemp"
Name 231 "pos" Name 137 "byteAddrTemp"
Name 233 "pos" Name 239 "pos"
Name 236 "@entryPointOutput" Name 241 "pos"
Name 237 "param" Name 244 "@entryPointOutput"
Name 245 "param"
Decorate 15 ArrayStride 4 Decorate 15 ArrayStride 4
MemberDecorate 16(sbuf) 0 Offset 0 MemberDecorate 16(sbuf) 0 Offset 0
Decorate 16(sbuf) BufferBlock Decorate 16(sbuf) BufferBlock
Decorate 18(sbuf) DescriptorSet 0 Decorate 18(sbuf) DescriptorSet 0
Decorate 233(pos) Flat Decorate 241(pos) Flat
Decorate 233(pos) Location 0 Decorate 241(pos) Location 0
Decorate 236(@entryPointOutput) Location 0 Decorate 244(@entryPointOutput) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0
@ -1056,29 +1072,29 @@ gl_FragCoord origin is upper left
24: 19(int) Constant 2 24: 19(int) Constant 2
26: 19(int) Constant 0 26: 19(int) Constant 0
30: TypePointer Uniform 6(int) 30: TypePointer Uniform 6(int)
46: 19(int) Constant 1 45: 19(int) Constant 1
50: TypeVector 6(int) 2 49: TypeVector 6(int) 2
52: 6(int) Constant 0 51: 6(int) Constant 0
67: 6(int) Constant 1 67: 6(int) Constant 1
88: TypeVector 6(int) 3 89: TypeVector 6(int) 3
126: 6(int) Constant 2 129: 6(int) Constant 2
148: 19(int) Constant 3 152: 19(int) Constant 3
152: TypeVector 6(int) 4 156: TypeVector 6(int) 4
220: 6(int) Constant 3 227: 6(int) Constant 3
232: TypePointer Input 6(int) 240: TypePointer Input 6(int)
233(pos): 232(ptr) Variable Input 241(pos): 240(ptr) Variable Input
235: TypePointer Output 9(fvec4) 243: TypePointer Output 9(fvec4)
236(@entryPointOutput): 235(ptr) Variable Output 244(@entryPointOutput): 243(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
231(pos): 7(ptr) Variable Function 239(pos): 7(ptr) Variable Function
237(param): 7(ptr) Variable Function 245(param): 7(ptr) Variable Function
234: 6(int) Load 233(pos) 242: 6(int) Load 241(pos)
Store 231(pos) 234 Store 239(pos) 242
238: 6(int) Load 231(pos) 246: 6(int) Load 239(pos)
Store 237(param) 238 Store 245(param) 246
239: 9(fvec4) FunctionCall 12(@main(u1;) 237(param) 247: 9(fvec4) FunctionCall 12(@main(u1;) 245(param)
Store 236(@entryPointOutput) 239 Store 244(@entryPointOutput) 247
Return Return
FunctionEnd FunctionEnd
12(@main(u1;): 9(fvec4) Function None 10 12(@main(u1;): 9(fvec4) Function None 10
@ -1086,12 +1102,12 @@ gl_FragCoord origin is upper left
13: Label 13: Label
14(size): 7(ptr) Variable Function 14(size): 7(ptr) Variable Function
22(byteAddrTemp): 21(ptr) Variable Function 22(byteAddrTemp): 21(ptr) Variable Function
35(byteAddrTemp): 21(ptr) Variable Function 34(byteAddrTemp): 21(ptr) Variable Function
39(byteAddrTemp): 21(ptr) Variable Function 38(byteAddrTemp): 21(ptr) Variable Function
70(byteAddrTemp): 21(ptr) Variable Function 71(byteAddrTemp): 21(ptr) Variable Function
74(byteAddrTemp): 21(ptr) Variable Function 75(byteAddrTemp): 21(ptr) Variable Function
129(byteAddrTemp): 21(ptr) Variable Function
133(byteAddrTemp): 21(ptr) Variable Function 133(byteAddrTemp): 21(ptr) Variable Function
137(byteAddrTemp): 21(ptr) Variable Function
20: 19(int) ArrayLength 18(sbuf) 0 20: 19(int) ArrayLength 18(sbuf) 0
Store 14(size) 20 Store 14(size) 20
23: 6(int) Load 11(pos) 23: 6(int) Load 11(pos)
@ -1102,208 +1118,216 @@ gl_FragCoord origin is upper left
29: 19(int) ShiftRightLogical 28 24 29: 19(int) ShiftRightLogical 28 24
31: 30(ptr) AccessChain 18(sbuf) 26 29 31: 30(ptr) AccessChain 18(sbuf) 26 29
32: 6(int) Load 31 32: 6(int) Load 31
33: 8(float) ConvertUToF 32 33: 30(ptr) AccessChain 18(sbuf) 26 27
34: 30(ptr) AccessChain 18(sbuf) 26 27 Store 33 32
Store 34 33 35: 6(int) Load 11(pos)
36: 6(int) Load 11(pos) 36: 19(int) ShiftRightLogical 35 24
37: 19(int) ShiftRightLogical 36 24 Store 34(byteAddrTemp) 36
Store 35(byteAddrTemp) 37 37: 19(int) Load 34(byteAddrTemp)
38: 19(int) Load 35(byteAddrTemp) 39: 6(int) Load 11(pos)
40: 6(int) Load 11(pos) 40: 19(int) ShiftRightLogical 39 24
41: 19(int) ShiftRightLogical 40 24 Store 38(byteAddrTemp) 40
Store 39(byteAddrTemp) 41 41: 19(int) Load 38(byteAddrTemp)
42: 19(int) Load 39(byteAddrTemp) 42: 30(ptr) AccessChain 18(sbuf) 26 41
43: 30(ptr) AccessChain 18(sbuf) 26 42 43: 6(int) Load 42
44: 6(int) Load 43 44: 19(int) Load 38(byteAddrTemp)
45: 19(int) Load 39(byteAddrTemp) 46: 19(int) IAdd 44 45
47: 19(int) IAdd 45 46 47: 30(ptr) AccessChain 18(sbuf) 26 46
48: 30(ptr) AccessChain 18(sbuf) 26 47 48: 6(int) Load 47
49: 6(int) Load 48 50: 49(ivec2) CompositeConstruct 43 48
51: 50(ivec2) CompositeConstruct 44 49 52: 6(int) CompositeExtract 50 0
53: 6(int) CompositeExtract 51 0 53: 6(int) ConvertFToU 52
54: 30(ptr) AccessChain 18(sbuf) 26 38 54: 30(ptr) AccessChain 18(sbuf) 26 37
Store 54 53 Store 54 53
55: 19(int) Load 35(byteAddrTemp) 55: 19(int) Load 34(byteAddrTemp)
56: 19(int) IAdd 55 46 56: 19(int) IAdd 55 45
57: 6(int) Load 11(pos) 57: 6(int) Load 11(pos)
58: 19(int) ShiftRightLogical 57 24 58: 19(int) ShiftRightLogical 57 24
Store 39(byteAddrTemp) 58 Store 38(byteAddrTemp) 58
59: 19(int) Load 39(byteAddrTemp) 59: 19(int) Load 38(byteAddrTemp)
60: 30(ptr) AccessChain 18(sbuf) 26 59 60: 30(ptr) AccessChain 18(sbuf) 26 59
61: 6(int) Load 60 61: 6(int) Load 60
62: 19(int) Load 39(byteAddrTemp) 62: 19(int) Load 38(byteAddrTemp)
63: 19(int) IAdd 62 46 63: 19(int) IAdd 62 45
64: 30(ptr) AccessChain 18(sbuf) 26 63 64: 30(ptr) AccessChain 18(sbuf) 26 63
65: 6(int) Load 64 65: 6(int) Load 64
66: 50(ivec2) CompositeConstruct 61 65 66: 49(ivec2) CompositeConstruct 61 65
68: 6(int) CompositeExtract 66 1 68: 6(int) CompositeExtract 66 1
69: 30(ptr) AccessChain 18(sbuf) 26 56 69: 6(int) ConvertFToU 68
Store 69 68 70: 30(ptr) AccessChain 18(sbuf) 26 56
71: 6(int) Load 11(pos) Store 70 69
72: 19(int) ShiftRightLogical 71 24 72: 6(int) Load 11(pos)
Store 70(byteAddrTemp) 72 73: 19(int) ShiftRightLogical 72 24
73: 19(int) Load 70(byteAddrTemp) Store 71(byteAddrTemp) 73
75: 6(int) Load 11(pos) 74: 19(int) Load 71(byteAddrTemp)
76: 19(int) ShiftRightLogical 75 24 76: 6(int) Load 11(pos)
Store 74(byteAddrTemp) 76 77: 19(int) ShiftRightLogical 76 24
77: 19(int) Load 74(byteAddrTemp) Store 75(byteAddrTemp) 77
78: 30(ptr) AccessChain 18(sbuf) 26 77 78: 19(int) Load 75(byteAddrTemp)
79: 6(int) Load 78 79: 30(ptr) AccessChain 18(sbuf) 26 78
80: 19(int) Load 74(byteAddrTemp) 80: 6(int) Load 79
81: 19(int) IAdd 80 46 81: 19(int) Load 75(byteAddrTemp)
82: 30(ptr) AccessChain 18(sbuf) 26 81 82: 19(int) IAdd 81 45
83: 6(int) Load 82 83: 30(ptr) AccessChain 18(sbuf) 26 82
84: 19(int) Load 74(byteAddrTemp) 84: 6(int) Load 83
85: 19(int) IAdd 84 24 85: 19(int) Load 75(byteAddrTemp)
86: 30(ptr) AccessChain 18(sbuf) 26 85 86: 19(int) IAdd 85 24
87: 6(int) Load 86 87: 30(ptr) AccessChain 18(sbuf) 26 86
89: 88(ivec3) CompositeConstruct 79 83 87 88: 6(int) Load 87
90: 6(int) CompositeExtract 89 0 90: 89(ivec3) CompositeConstruct 80 84 88
91: 30(ptr) AccessChain 18(sbuf) 26 73 91: 6(int) CompositeExtract 90 0
Store 91 90 92: 6(int) ConvertFToU 91
92: 19(int) Load 70(byteAddrTemp) 93: 30(ptr) AccessChain 18(sbuf) 26 74
93: 19(int) IAdd 92 46 Store 93 92
94: 6(int) Load 11(pos) 94: 19(int) Load 71(byteAddrTemp)
95: 19(int) ShiftRightLogical 94 24 95: 19(int) IAdd 94 45
Store 74(byteAddrTemp) 95 96: 6(int) Load 11(pos)
96: 19(int) Load 74(byteAddrTemp) 97: 19(int) ShiftRightLogical 96 24
97: 30(ptr) AccessChain 18(sbuf) 26 96 Store 75(byteAddrTemp) 97
98: 6(int) Load 97 98: 19(int) Load 75(byteAddrTemp)
99: 19(int) Load 74(byteAddrTemp) 99: 30(ptr) AccessChain 18(sbuf) 26 98
100: 19(int) IAdd 99 46 100: 6(int) Load 99
101: 30(ptr) AccessChain 18(sbuf) 26 100 101: 19(int) Load 75(byteAddrTemp)
102: 6(int) Load 101 102: 19(int) IAdd 101 45
103: 19(int) Load 74(byteAddrTemp) 103: 30(ptr) AccessChain 18(sbuf) 26 102
104: 19(int) IAdd 103 24 104: 6(int) Load 103
105: 30(ptr) AccessChain 18(sbuf) 26 104 105: 19(int) Load 75(byteAddrTemp)
106: 6(int) Load 105 106: 19(int) IAdd 105 24
107: 88(ivec3) CompositeConstruct 98 102 106 107: 30(ptr) AccessChain 18(sbuf) 26 106
108: 6(int) CompositeExtract 107 1 108: 6(int) Load 107
109: 30(ptr) AccessChain 18(sbuf) 26 93 109: 89(ivec3) CompositeConstruct 100 104 108
Store 109 108 110: 6(int) CompositeExtract 109 1
110: 19(int) Load 70(byteAddrTemp) 111: 6(int) ConvertFToU 110
111: 19(int) IAdd 110 24 112: 30(ptr) AccessChain 18(sbuf) 26 95
112: 6(int) Load 11(pos) Store 112 111
113: 19(int) ShiftRightLogical 112 24 113: 19(int) Load 71(byteAddrTemp)
Store 74(byteAddrTemp) 113 114: 19(int) IAdd 113 24
114: 19(int) Load 74(byteAddrTemp) 115: 6(int) Load 11(pos)
115: 30(ptr) AccessChain 18(sbuf) 26 114 116: 19(int) ShiftRightLogical 115 24
116: 6(int) Load 115 Store 75(byteAddrTemp) 116
117: 19(int) Load 74(byteAddrTemp) 117: 19(int) Load 75(byteAddrTemp)
118: 19(int) IAdd 117 46 118: 30(ptr) AccessChain 18(sbuf) 26 117
119: 30(ptr) AccessChain 18(sbuf) 26 118 119: 6(int) Load 118
120: 6(int) Load 119 120: 19(int) Load 75(byteAddrTemp)
121: 19(int) Load 74(byteAddrTemp) 121: 19(int) IAdd 120 45
122: 19(int) IAdd 121 24 122: 30(ptr) AccessChain 18(sbuf) 26 121
123: 30(ptr) AccessChain 18(sbuf) 26 122 123: 6(int) Load 122
124: 6(int) Load 123 124: 19(int) Load 75(byteAddrTemp)
125: 88(ivec3) CompositeConstruct 116 120 124 125: 19(int) IAdd 124 24
127: 6(int) CompositeExtract 125 2 126: 30(ptr) AccessChain 18(sbuf) 26 125
128: 30(ptr) AccessChain 18(sbuf) 26 111 127: 6(int) Load 126
Store 128 127 128: 89(ivec3) CompositeConstruct 119 123 127
130: 6(int) Load 11(pos) 130: 6(int) CompositeExtract 128 2
131: 19(int) ShiftRightLogical 130 24 131: 6(int) ConvertFToU 130
Store 129(byteAddrTemp) 131 132: 30(ptr) AccessChain 18(sbuf) 26 114
132: 19(int) Load 129(byteAddrTemp) Store 132 131
134: 6(int) Load 11(pos) 134: 6(int) Load 11(pos)
135: 19(int) ShiftRightLogical 134 24 135: 19(int) ShiftRightLogical 134 24
Store 133(byteAddrTemp) 135 Store 133(byteAddrTemp) 135
136: 19(int) Load 133(byteAddrTemp) 136: 19(int) Load 133(byteAddrTemp)
137: 30(ptr) AccessChain 18(sbuf) 26 136 138: 6(int) Load 11(pos)
138: 6(int) Load 137 139: 19(int) ShiftRightLogical 138 24
139: 19(int) Load 133(byteAddrTemp) Store 137(byteAddrTemp) 139
140: 19(int) IAdd 139 46 140: 19(int) Load 137(byteAddrTemp)
141: 30(ptr) AccessChain 18(sbuf) 26 140 141: 30(ptr) AccessChain 18(sbuf) 26 140
142: 6(int) Load 141 142: 6(int) Load 141
143: 19(int) Load 133(byteAddrTemp) 143: 19(int) Load 137(byteAddrTemp)
144: 19(int) IAdd 143 24 144: 19(int) IAdd 143 45
145: 30(ptr) AccessChain 18(sbuf) 26 144 145: 30(ptr) AccessChain 18(sbuf) 26 144
146: 6(int) Load 145 146: 6(int) Load 145
147: 19(int) Load 133(byteAddrTemp) 147: 19(int) Load 137(byteAddrTemp)
149: 19(int) IAdd 147 148 148: 19(int) IAdd 147 24
150: 30(ptr) AccessChain 18(sbuf) 26 149 149: 30(ptr) AccessChain 18(sbuf) 26 148
151: 6(int) Load 150 150: 6(int) Load 149
153: 152(ivec4) CompositeConstruct 138 142 146 151 151: 19(int) Load 137(byteAddrTemp)
154: 6(int) CompositeExtract 153 0 153: 19(int) IAdd 151 152
155: 30(ptr) AccessChain 18(sbuf) 26 132 154: 30(ptr) AccessChain 18(sbuf) 26 153
Store 155 154 155: 6(int) Load 154
156: 19(int) Load 129(byteAddrTemp) 157: 156(ivec4) CompositeConstruct 142 146 150 155
157: 19(int) IAdd 156 46 158: 6(int) CompositeExtract 157 0
158: 6(int) Load 11(pos) 159: 6(int) ConvertFToU 158
159: 19(int) ShiftRightLogical 158 24 160: 30(ptr) AccessChain 18(sbuf) 26 136
Store 133(byteAddrTemp) 159 Store 160 159
160: 19(int) Load 133(byteAddrTemp) 161: 19(int) Load 133(byteAddrTemp)
161: 30(ptr) AccessChain 18(sbuf) 26 160 162: 19(int) IAdd 161 45
162: 6(int) Load 161 163: 6(int) Load 11(pos)
163: 19(int) Load 133(byteAddrTemp) 164: 19(int) ShiftRightLogical 163 24
164: 19(int) IAdd 163 46 Store 137(byteAddrTemp) 164
165: 30(ptr) AccessChain 18(sbuf) 26 164 165: 19(int) Load 137(byteAddrTemp)
166: 6(int) Load 165 166: 30(ptr) AccessChain 18(sbuf) 26 165
167: 19(int) Load 133(byteAddrTemp) 167: 6(int) Load 166
168: 19(int) IAdd 167 24 168: 19(int) Load 137(byteAddrTemp)
169: 30(ptr) AccessChain 18(sbuf) 26 168 169: 19(int) IAdd 168 45
170: 6(int) Load 169 170: 30(ptr) AccessChain 18(sbuf) 26 169
171: 19(int) Load 133(byteAddrTemp) 171: 6(int) Load 170
172: 19(int) IAdd 171 148 172: 19(int) Load 137(byteAddrTemp)
173: 30(ptr) AccessChain 18(sbuf) 26 172 173: 19(int) IAdd 172 24
174: 6(int) Load 173 174: 30(ptr) AccessChain 18(sbuf) 26 173
175: 152(ivec4) CompositeConstruct 162 166 170 174 175: 6(int) Load 174
176: 6(int) CompositeExtract 175 1 176: 19(int) Load 137(byteAddrTemp)
177: 30(ptr) AccessChain 18(sbuf) 26 157 177: 19(int) IAdd 176 152
Store 177 176 178: 30(ptr) AccessChain 18(sbuf) 26 177
178: 19(int) Load 129(byteAddrTemp) 179: 6(int) Load 178
179: 19(int) IAdd 178 24 180: 156(ivec4) CompositeConstruct 167 171 175 179
180: 6(int) Load 11(pos) 181: 6(int) CompositeExtract 180 1
181: 19(int) ShiftRightLogical 180 24 182: 6(int) ConvertFToU 181
Store 133(byteAddrTemp) 181 183: 30(ptr) AccessChain 18(sbuf) 26 162
182: 19(int) Load 133(byteAddrTemp) Store 183 182
183: 30(ptr) AccessChain 18(sbuf) 26 182 184: 19(int) Load 133(byteAddrTemp)
184: 6(int) Load 183 185: 19(int) IAdd 184 24
185: 19(int) Load 133(byteAddrTemp) 186: 6(int) Load 11(pos)
186: 19(int) IAdd 185 46 187: 19(int) ShiftRightLogical 186 24
187: 30(ptr) AccessChain 18(sbuf) 26 186 Store 137(byteAddrTemp) 187
188: 6(int) Load 187 188: 19(int) Load 137(byteAddrTemp)
189: 19(int) Load 133(byteAddrTemp) 189: 30(ptr) AccessChain 18(sbuf) 26 188
190: 19(int) IAdd 189 24 190: 6(int) Load 189
191: 30(ptr) AccessChain 18(sbuf) 26 190 191: 19(int) Load 137(byteAddrTemp)
192: 6(int) Load 191 192: 19(int) IAdd 191 45
193: 19(int) Load 133(byteAddrTemp) 193: 30(ptr) AccessChain 18(sbuf) 26 192
194: 19(int) IAdd 193 148 194: 6(int) Load 193
195: 30(ptr) AccessChain 18(sbuf) 26 194 195: 19(int) Load 137(byteAddrTemp)
196: 6(int) Load 195 196: 19(int) IAdd 195 24
197: 152(ivec4) CompositeConstruct 184 188 192 196 197: 30(ptr) AccessChain 18(sbuf) 26 196
198: 6(int) CompositeExtract 197 2 198: 6(int) Load 197
199: 30(ptr) AccessChain 18(sbuf) 26 179 199: 19(int) Load 137(byteAddrTemp)
Store 199 198 200: 19(int) IAdd 199 152
200: 19(int) Load 129(byteAddrTemp) 201: 30(ptr) AccessChain 18(sbuf) 26 200
201: 19(int) IAdd 200 148 202: 6(int) Load 201
202: 6(int) Load 11(pos) 203: 156(ivec4) CompositeConstruct 190 194 198 202
203: 19(int) ShiftRightLogical 202 24 204: 6(int) CompositeExtract 203 2
Store 133(byteAddrTemp) 203 205: 6(int) ConvertFToU 204
204: 19(int) Load 133(byteAddrTemp) 206: 30(ptr) AccessChain 18(sbuf) 26 185
205: 30(ptr) AccessChain 18(sbuf) 26 204 Store 206 205
206: 6(int) Load 205
207: 19(int) Load 133(byteAddrTemp) 207: 19(int) Load 133(byteAddrTemp)
208: 19(int) IAdd 207 46 208: 19(int) IAdd 207 152
209: 30(ptr) AccessChain 18(sbuf) 26 208 209: 6(int) Load 11(pos)
210: 6(int) Load 209 210: 19(int) ShiftRightLogical 209 24
211: 19(int) Load 133(byteAddrTemp) Store 137(byteAddrTemp) 210
212: 19(int) IAdd 211 24 211: 19(int) Load 137(byteAddrTemp)
213: 30(ptr) AccessChain 18(sbuf) 26 212 212: 30(ptr) AccessChain 18(sbuf) 26 211
214: 6(int) Load 213 213: 6(int) Load 212
215: 19(int) Load 133(byteAddrTemp) 214: 19(int) Load 137(byteAddrTemp)
216: 19(int) IAdd 215 148 215: 19(int) IAdd 214 45
217: 30(ptr) AccessChain 18(sbuf) 26 216 216: 30(ptr) AccessChain 18(sbuf) 26 215
218: 6(int) Load 217 217: 6(int) Load 216
219: 152(ivec4) CompositeConstruct 206 210 214 218 218: 19(int) Load 137(byteAddrTemp)
221: 6(int) CompositeExtract 219 3 219: 19(int) IAdd 218 24
222: 30(ptr) AccessChain 18(sbuf) 26 201 220: 30(ptr) AccessChain 18(sbuf) 26 219
Store 222 221 221: 6(int) Load 220
223: 6(int) Load 11(pos) 222: 19(int) Load 137(byteAddrTemp)
224: 19(int) ShiftRightLogical 223 24 223: 19(int) IAdd 222 152
225: 30(ptr) AccessChain 18(sbuf) 26 224 224: 30(ptr) AccessChain 18(sbuf) 26 223
226: 6(int) Load 225 225: 6(int) Load 224
227: 8(float) ConvertUToF 226 226: 156(ivec4) CompositeConstruct 213 217 221 225
228: 9(fvec4) CompositeConstruct 227 227 227 227 228: 6(int) CompositeExtract 226 3
ReturnValue 228 229: 6(int) ConvertFToU 228
230: 30(ptr) AccessChain 18(sbuf) 26 208
Store 230 229
231: 6(int) Load 11(pos)
232: 19(int) ShiftRightLogical 231 24
233: 30(ptr) AccessChain 18(sbuf) 26 232
234: 6(int) Load 233
235: 8(float) ConvertUToF 234
236: 9(fvec4) CompositeConstruct 235 235 235 235
ReturnValue 236
FunctionEnd FunctionEnd

View File

@ -0,0 +1,8 @@
RWByteAddressBuffer buffer;
[numthreads(64, 1, 1)]
void main( uint3 dispatchThreadID : SV_DispatchThreadID)
{
if(dispatchThreadID.x == 0)
buffer.Store(0, 2);
}

View File

@ -301,6 +301,7 @@ INSTANTIATE_TEST_CASE_P(
{"hlsl.shapeConvRet.frag", "main"}, {"hlsl.shapeConvRet.frag", "main"},
{"hlsl.snorm.uav.comp", "main"}, {"hlsl.snorm.uav.comp", "main"},
{"hlsl.staticMemberFunction.frag", "main"}, {"hlsl.staticMemberFunction.frag", "main"},
{"hlsl.store.rwbyteaddressbuffer.type.comp", "main"},
{"hlsl.stringtoken.frag", "main"}, {"hlsl.stringtoken.frag", "main"},
{"hlsl.string.frag", "main"}, {"hlsl.string.frag", "main"},
{"hlsl.struct.split-1.vert", "main"}, {"hlsl.struct.split-1.vert", "main"},