mirror of https://github.com/bkaradzic/bgfx
Updated glslang.
This commit is contained in:
parent
244847e6e8
commit
2ddefa50b7
|
@ -0,0 +1,41 @@
|
|||
glsl.450.subgroup.frag
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
0:? Sequence
|
||||
0:4 Function Definition: main( ( global void)
|
||||
0:4 Function Parameters:
|
||||
0:6 Sequence
|
||||
0:6 move second child to first child ( temp 4-component vector of uint)
|
||||
0:6 'data' (layout( location=0) out 4-component vector of uint)
|
||||
0:6 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:6 'gl_SubgroupSize' ( flat in uint unknown built-in variable)
|
||||
0:6 'gl_SubgroupInvocationID' ( flat in uint unknown built-in variable)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'data' (layout( location=0) out 4-component vector of uint)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
0:? Sequence
|
||||
0:4 Function Definition: main( ( global void)
|
||||
0:4 Function Parameters:
|
||||
0:6 Sequence
|
||||
0:6 move second child to first child ( temp 4-component vector of uint)
|
||||
0:6 'data' (layout( location=0) out 4-component vector of uint)
|
||||
0:6 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:6 'gl_SubgroupSize' ( flat in uint unknown built-in variable)
|
||||
0:6 'gl_SubgroupInvocationID' ( flat in uint unknown built-in variable)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'data' (layout( location=0) out 4-component vector of uint)
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
glsl.450.subgroup.geom
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
invocations = -1
|
||||
max_vertices = 1
|
||||
input primitive = points
|
||||
output primitive = points
|
||||
0:? Sequence
|
||||
0:10 Function Definition: main( ( global void)
|
||||
0:10 Function Parameters:
|
||||
0:12 Sequence
|
||||
0:12 move second child to first child ( temp 4-component vector of uint)
|
||||
0:12 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:12 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:12 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 'gl_PrimitiveIDIn' ( in int PrimitiveID)
|
||||
0:12 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:12 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:12 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
|
||||
|
||||
Linked geometry stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
invocations = 1
|
||||
max_vertices = 1
|
||||
input primitive = points
|
||||
output primitive = points
|
||||
0:? Sequence
|
||||
0:10 Function Definition: main( ( global void)
|
||||
0:10 Function Parameters:
|
||||
0:12 Sequence
|
||||
0:12 move second child to first child ( temp 4-component vector of uint)
|
||||
0:12 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:12 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:12 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 'gl_PrimitiveIDIn' ( in int PrimitiveID)
|
||||
0:12 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:12 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:12 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
glsl.450.subgroup.tesc
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
vertices = 1
|
||||
0:? Sequence
|
||||
0:9 Function Definition: main( ( global void)
|
||||
0:9 Function Parameters:
|
||||
0:11 Sequence
|
||||
0:11 move second child to first child ( temp 4-component vector of uint)
|
||||
0:11 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:11 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
|
||||
|
||||
Linked tessellation control stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
vertices = 1
|
||||
0:? Sequence
|
||||
0:9 Function Definition: main( ( global void)
|
||||
0:9 Function Parameters:
|
||||
0:11 Sequence
|
||||
0:11 move second child to first child ( temp 4-component vector of uint)
|
||||
0:11 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:11 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
glsl.450.subgroup.tese
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
input primitive = isolines
|
||||
vertex spacing = none
|
||||
triangle order = none
|
||||
0:? Sequence
|
||||
0:9 Function Definition: main( ( global void)
|
||||
0:9 Function Parameters:
|
||||
0:11 Sequence
|
||||
0:11 move second child to first child ( temp 4-component vector of uint)
|
||||
0:11 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:11 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
|
||||
|
||||
Linked tessellation evaluation stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
input primitive = isolines
|
||||
vertex spacing = equal_spacing
|
||||
triangle order = ccw
|
||||
0:? Sequence
|
||||
0:9 Function Definition: main( ( global void)
|
||||
0:9 Function Parameters:
|
||||
0:11 Sequence
|
||||
0:11 move second child to first child ( temp 4-component vector of uint)
|
||||
0:11 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:11 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
glsl.450.subgroup.vert
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
0:? Sequence
|
||||
0:8 Function Definition: main( ( global void)
|
||||
0:8 Function Parameters:
|
||||
0:10 Sequence
|
||||
0:10 move second child to first child ( temp 4-component vector of uint)
|
||||
0:10 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:10 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:10 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||
0:10 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:10 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:10 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
0:? Sequence
|
||||
0:8 Function Definition: main( ( global void)
|
||||
0:8 Function Parameters:
|
||||
0:10 Sequence
|
||||
0:10 move second child to first child ( temp 4-component vector of uint)
|
||||
0:10 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:10 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:10 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||
0:10 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:10 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:10 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,267 @@
|
|||
glsl.450.subgroupBallotNeg.comp
|
||||
ERROR: 0:32: 'id' : argument must be compile-time constant
|
||||
ERROR: 1 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
local_size = (8, 8, 1)
|
||||
ERROR: node is still EOpNull!
|
||||
0:15 Function Definition: main( ( global void)
|
||||
0:15 Function Parameters:
|
||||
0:17 Sequence
|
||||
0:17 Sequence
|
||||
0:17 move second child to first child ( temp uint)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 Sequence
|
||||
0:19 move second child to first child ( temp 4-component vector of uint)
|
||||
0:19 'relMask' ( temp 4-component vector of uint)
|
||||
0:22 add ( temp 4-component vector of uint)
|
||||
0:21 add ( temp 4-component vector of uint)
|
||||
0:20 add ( temp 4-component vector of uint)
|
||||
0:19 add ( temp 4-component vector of uint)
|
||||
0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:25 Sequence
|
||||
0:25 move second child to first child ( temp 4-component vector of uint)
|
||||
0:25 'result' ( temp 4-component vector of uint)
|
||||
0:25 subgroupBallot ( global 4-component vector of uint)
|
||||
0:25 Constant:
|
||||
0:25 true (const bool)
|
||||
0:27 move second child to first child ( temp uint)
|
||||
0:27 direct index ( temp uint)
|
||||
0:27 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:27 'invocation' ( temp uint)
|
||||
0:27 Constant:
|
||||
0:27 2 (const int)
|
||||
0:27 Constant:
|
||||
0:27 0 (const int)
|
||||
0:27 subgroupBallotBitCount ( global uint)
|
||||
0:27 'result' ( temp 4-component vector of uint)
|
||||
0:28 move second child to first child ( temp uint)
|
||||
0:28 direct index ( temp uint)
|
||||
0:28 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:28 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:28 'invocation' ( temp uint)
|
||||
0:28 Constant:
|
||||
0:28 2 (const int)
|
||||
0:28 Constant:
|
||||
0:28 1 (const int)
|
||||
0:28 Convert int to uint ( temp uint)
|
||||
0:28 Test condition and select ( temp int)
|
||||
0:28 Condition
|
||||
0:28 subgroupBallotBitExtract ( global bool)
|
||||
0:28 'result' ( temp 4-component vector of uint)
|
||||
0:28 Constant:
|
||||
0:28 0 (const uint)
|
||||
0:28 true case
|
||||
0:28 Constant:
|
||||
0:28 1 (const int)
|
||||
0:28 false case
|
||||
0:28 Constant:
|
||||
0:28 0 (const int)
|
||||
0:29 move second child to first child ( temp uint)
|
||||
0:29 direct index ( temp uint)
|
||||
0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:29 'invocation' ( temp uint)
|
||||
0:29 Constant:
|
||||
0:29 2 (const int)
|
||||
0:29 Constant:
|
||||
0:29 2 (const int)
|
||||
0:29 add ( temp uint)
|
||||
0:29 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:29 'result' ( temp 4-component vector of uint)
|
||||
0:29 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:29 'result' ( temp 4-component vector of uint)
|
||||
0:30 move second child to first child ( temp uint)
|
||||
0:30 direct index ( temp uint)
|
||||
0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:30 'invocation' ( temp uint)
|
||||
0:30 Constant:
|
||||
0:30 2 (const int)
|
||||
0:30 Constant:
|
||||
0:30 3 (const int)
|
||||
0:30 add ( temp uint)
|
||||
0:30 subgroupBallotFindLSB ( global uint)
|
||||
0:30 'result' ( temp 4-component vector of uint)
|
||||
0:30 subgroupBallotFindMSB ( global uint)
|
||||
0:30 'result' ( temp 4-component vector of uint)
|
||||
0:32 move second child to first child ( temp float)
|
||||
0:32 direct index ( temp float)
|
||||
0:32 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:32 'invocation' ( temp uint)
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 subgroupBroadcast ( global float)
|
||||
0:32 direct index ( temp float)
|
||||
0:32 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 'invocation' ( temp uint)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
0:? 8 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
local_size = (8, 8, 1)
|
||||
ERROR: node is still EOpNull!
|
||||
0:15 Function Definition: main( ( global void)
|
||||
0:15 Function Parameters:
|
||||
0:17 Sequence
|
||||
0:17 Sequence
|
||||
0:17 move second child to first child ( temp uint)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 Sequence
|
||||
0:19 move second child to first child ( temp 4-component vector of uint)
|
||||
0:19 'relMask' ( temp 4-component vector of uint)
|
||||
0:22 add ( temp 4-component vector of uint)
|
||||
0:21 add ( temp 4-component vector of uint)
|
||||
0:20 add ( temp 4-component vector of uint)
|
||||
0:19 add ( temp 4-component vector of uint)
|
||||
0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:25 Sequence
|
||||
0:25 move second child to first child ( temp 4-component vector of uint)
|
||||
0:25 'result' ( temp 4-component vector of uint)
|
||||
0:25 subgroupBallot ( global 4-component vector of uint)
|
||||
0:25 Constant:
|
||||
0:25 true (const bool)
|
||||
0:27 move second child to first child ( temp uint)
|
||||
0:27 direct index ( temp uint)
|
||||
0:27 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:27 'invocation' ( temp uint)
|
||||
0:27 Constant:
|
||||
0:27 2 (const int)
|
||||
0:27 Constant:
|
||||
0:27 0 (const int)
|
||||
0:27 subgroupBallotBitCount ( global uint)
|
||||
0:27 'result' ( temp 4-component vector of uint)
|
||||
0:28 move second child to first child ( temp uint)
|
||||
0:28 direct index ( temp uint)
|
||||
0:28 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:28 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:28 'invocation' ( temp uint)
|
||||
0:28 Constant:
|
||||
0:28 2 (const int)
|
||||
0:28 Constant:
|
||||
0:28 1 (const int)
|
||||
0:28 Convert int to uint ( temp uint)
|
||||
0:28 Test condition and select ( temp int)
|
||||
0:28 Condition
|
||||
0:28 subgroupBallotBitExtract ( global bool)
|
||||
0:28 'result' ( temp 4-component vector of uint)
|
||||
0:28 Constant:
|
||||
0:28 0 (const uint)
|
||||
0:28 true case
|
||||
0:28 Constant:
|
||||
0:28 1 (const int)
|
||||
0:28 false case
|
||||
0:28 Constant:
|
||||
0:28 0 (const int)
|
||||
0:29 move second child to first child ( temp uint)
|
||||
0:29 direct index ( temp uint)
|
||||
0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:29 'invocation' ( temp uint)
|
||||
0:29 Constant:
|
||||
0:29 2 (const int)
|
||||
0:29 Constant:
|
||||
0:29 2 (const int)
|
||||
0:29 add ( temp uint)
|
||||
0:29 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:29 'result' ( temp 4-component vector of uint)
|
||||
0:29 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:29 'result' ( temp 4-component vector of uint)
|
||||
0:30 move second child to first child ( temp uint)
|
||||
0:30 direct index ( temp uint)
|
||||
0:30 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:30 'invocation' ( temp uint)
|
||||
0:30 Constant:
|
||||
0:30 2 (const int)
|
||||
0:30 Constant:
|
||||
0:30 3 (const int)
|
||||
0:30 add ( temp uint)
|
||||
0:30 subgroupBallotFindLSB ( global uint)
|
||||
0:30 'result' ( temp 4-component vector of uint)
|
||||
0:30 subgroupBallotFindMSB ( global uint)
|
||||
0:30 'result' ( temp 4-component vector of uint)
|
||||
0:32 move second child to first child ( temp float)
|
||||
0:32 direct index ( temp float)
|
||||
0:32 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:32 'invocation' ( temp uint)
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 subgroupBroadcast ( global float)
|
||||
0:32 direct index ( temp float)
|
||||
0:32 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 'invocation' ( temp uint)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
0:? 8 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
|
|
@ -0,0 +1,129 @@
|
|||
glsl.450.subgroupBasic.comp
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
local_size = (8, 8, 1)
|
||||
0:? Sequence
|
||||
0:12 Function Definition: main( ( global void)
|
||||
0:12 Function Parameters:
|
||||
0:14 Sequence
|
||||
0:14 move second child to first child ( temp int)
|
||||
0:14 indirect index (layout( column_major shared) temp int)
|
||||
0:14 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:14 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:14 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:14 Constant:
|
||||
0:14 1 (const int)
|
||||
0:15 move second child to first child ( temp int)
|
||||
0:15 indirect index (layout( column_major shared) temp int)
|
||||
0:15 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:15 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:15 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:16 move second child to first child ( temp int)
|
||||
0:16 indirect index (layout( column_major shared) temp int)
|
||||
0:16 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:16 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:16 Constant:
|
||||
0:16 0 (const int)
|
||||
0:16 'gl_NumSubgroups' ( in uint unknown built-in variable)
|
||||
0:16 Constant:
|
||||
0:16 1 (const int)
|
||||
0:17 move second child to first child ( temp int)
|
||||
0:17 indirect index (layout( column_major shared) temp int)
|
||||
0:17 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:17 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:17 'gl_SubgroupID' ( in uint unknown built-in variable)
|
||||
0:17 Test condition and select ( temp int)
|
||||
0:17 Condition
|
||||
0:17 subgroupElect ( global bool)
|
||||
0:17 true case
|
||||
0:17 Constant:
|
||||
0:17 1 (const int)
|
||||
0:17 false case
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:18 subgroupBarrier ( global void)
|
||||
0:19 subgroupMemoryBarrier ( global void)
|
||||
0:20 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:21 subgroupMemoryBarrierShared ( global void)
|
||||
0:22 subgroupMemoryBarrierImage ( global void)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
0:? 8 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
local_size = (8, 8, 1)
|
||||
0:? Sequence
|
||||
0:12 Function Definition: main( ( global void)
|
||||
0:12 Function Parameters:
|
||||
0:14 Sequence
|
||||
0:14 move second child to first child ( temp int)
|
||||
0:14 indirect index (layout( column_major shared) temp int)
|
||||
0:14 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:14 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:14 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:14 Constant:
|
||||
0:14 1 (const int)
|
||||
0:15 move second child to first child ( temp int)
|
||||
0:15 indirect index (layout( column_major shared) temp int)
|
||||
0:15 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:15 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:15 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:16 move second child to first child ( temp int)
|
||||
0:16 indirect index (layout( column_major shared) temp int)
|
||||
0:16 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:16 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:16 Constant:
|
||||
0:16 0 (const int)
|
||||
0:16 'gl_NumSubgroups' ( in uint unknown built-in variable)
|
||||
0:16 Constant:
|
||||
0:16 1 (const int)
|
||||
0:17 move second child to first child ( temp int)
|
||||
0:17 indirect index (layout( column_major shared) temp int)
|
||||
0:17 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:17 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:17 'gl_SubgroupID' ( in uint unknown built-in variable)
|
||||
0:17 Test condition and select ( temp int)
|
||||
0:17 Condition
|
||||
0:17 subgroupElect ( global bool)
|
||||
0:17 true case
|
||||
0:17 Constant:
|
||||
0:17 1 (const int)
|
||||
0:17 false case
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:18 subgroupBarrier ( global void)
|
||||
0:19 subgroupMemoryBarrier ( global void)
|
||||
0:20 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:21 subgroupMemoryBarrierShared ( global void)
|
||||
0:22 subgroupMemoryBarrierImage ( global void)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
0:? 8 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,668 @@
|
|||
glsl.450.subgroupClusteredNeg.comp
|
||||
ERROR: 0:22: 'cluster size' : argument must be at least 1
|
||||
ERROR: 0:24: 'cluster size' : argument must be a power of 2
|
||||
ERROR: 0:27: 'cluster size' : argument must be a power of 2
|
||||
ERROR: 0:29: 'cluster size' : argument must be at least 1
|
||||
ERROR: 0:31: 'cluster size' : argument must be at least 1
|
||||
ERROR: 0:33: 'cluster size' : argument must be compile-time constant
|
||||
ERROR: 0:36: 'cluster size' : argument must be compile-time constant
|
||||
ERROR: 0:37: 'cluster size' : argument must be compile-time constant
|
||||
ERROR: 8 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
local_size = (8, 1, 1)
|
||||
ERROR: node is still EOpNull!
|
||||
0:15 Function Definition: main( ( global void)
|
||||
0:15 Function Parameters:
|
||||
0:17 Sequence
|
||||
0:17 Sequence
|
||||
0:17 move second child to first child ( temp int)
|
||||
0:17 'a' ( temp int)
|
||||
0:17 Constant:
|
||||
0:17 1 (const int)
|
||||
0:20 Sequence
|
||||
0:20 move second child to first child ( temp uint)
|
||||
0:20 'invocation' ( temp uint)
|
||||
0:20 mod ( temp uint)
|
||||
0:20 add ( temp uint)
|
||||
0:20 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:20 Constant:
|
||||
0:20 4 (const uint)
|
||||
0:22 move second child to first child ( temp 2-component vector of float)
|
||||
0:22 vector swizzle ( temp 2-component vector of float)
|
||||
0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:22 'invocation' ( temp uint)
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Sequence
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Constant:
|
||||
0:22 1 (const int)
|
||||
0:22 subgroupClusteredAdd ( global 2-component vector of float)
|
||||
0:22 vector swizzle ( temp 2-component vector of float)
|
||||
0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:22 Constant:
|
||||
0:22 1 (const int)
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Sequence
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Constant:
|
||||
0:22 1 (const int)
|
||||
0:22 Constant:
|
||||
0:22 0 (const uint)
|
||||
0:24 move second child to first child ( temp float)
|
||||
0:24 direct index ( temp float)
|
||||
0:24 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:24 'invocation' ( temp uint)
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 subgroupClusteredMul ( global float)
|
||||
0:24 direct index ( temp float)
|
||||
0:24 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 Constant:
|
||||
0:24 3 (const uint)
|
||||
0:26 move second child to first child ( temp 2-component vector of int)
|
||||
0:26 vector swizzle ( temp 2-component vector of int)
|
||||
0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:26 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:26 'invocation' ( temp uint)
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Sequence
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 subgroupClusteredMin ( global 2-component vector of int)
|
||||
0:26 vector swizzle ( temp 2-component vector of int)
|
||||
0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Sequence
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Constant:
|
||||
0:26 8 (const uint)
|
||||
0:27 move second child to first child ( temp 3-component vector of int)
|
||||
0:27 vector swizzle ( temp 3-component vector of int)
|
||||
0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:27 'invocation' ( temp uint)
|
||||
0:27 Constant:
|
||||
0:27 1 (const int)
|
||||
0:27 Sequence
|
||||
0:27 Constant:
|
||||
0:27 0 (const int)
|
||||
0:27 Constant:
|
||||
0:27 1 (const int)
|
||||
0:27 Constant:
|
||||
0:27 2 (const int)
|
||||
0:27 subgroupClusteredMin ( global 3-component vector of int)
|
||||
0:27 vector swizzle ( temp 3-component vector of int)
|
||||
0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:27 Constant:
|
||||
0:27 2 (const int)
|
||||
0:27 Constant:
|
||||
0:27 1 (const int)
|
||||
0:27 Sequence
|
||||
0:27 Constant:
|
||||
0:27 0 (const int)
|
||||
0:27 Constant:
|
||||
0:27 1 (const int)
|
||||
0:27 Constant:
|
||||
0:27 2 (const int)
|
||||
0:27 Constant:
|
||||
0:27 6 (const uint)
|
||||
0:29 move second child to first child ( temp float)
|
||||
0:29 direct index ( temp float)
|
||||
0:29 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:29 'invocation' ( temp uint)
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 subgroupClusteredMax ( global float)
|
||||
0:29 direct index ( temp float)
|
||||
0:29 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 Constant:
|
||||
0:29 4294967295 (const uint)
|
||||
0:31 move second child to first child ( temp 4-component vector of int)
|
||||
0:31 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:31 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:31 'invocation' ( temp uint)
|
||||
0:31 Constant:
|
||||
0:31 1 (const int)
|
||||
0:31 subgroupClusteredAnd ( global 4-component vector of int)
|
||||
0:31 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:31 Constant:
|
||||
0:31 3 (const int)
|
||||
0:31 Constant:
|
||||
0:31 1 (const int)
|
||||
0:31 Constant:
|
||||
0:31 4294967293 (const uint)
|
||||
0:33 move second child to first child ( temp int)
|
||||
0:33 direct index ( temp int)
|
||||
0:33 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:33 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:33 'invocation' ( temp uint)
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:33 Constant:
|
||||
0:33 0 (const int)
|
||||
0:33 subgroupClusteredOr ( global int)
|
||||
0:33 direct index ( temp int)
|
||||
0:33 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:33 Constant:
|
||||
0:33 0 (const int)
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:33 Constant:
|
||||
0:33 0 (const int)
|
||||
0:33 Convert int to uint ( temp uint)
|
||||
0:33 'a' ( temp int)
|
||||
0:34 move second child to first child ( temp 2-component vector of int)
|
||||
0:34 vector swizzle ( temp 2-component vector of int)
|
||||
0:34 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:34 'invocation' ( temp uint)
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 Sequence
|
||||
0:34 Constant:
|
||||
0:34 0 (const int)
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 subgroupClusteredOr ( global 2-component vector of int)
|
||||
0:34 vector swizzle ( temp 2-component vector of int)
|
||||
0:34 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 Sequence
|
||||
0:34 Constant:
|
||||
0:34 0 (const int)
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 Constant:
|
||||
0:34 1 (const uint)
|
||||
0:36 move second child to first child ( temp int)
|
||||
0:36 direct index ( temp int)
|
||||
0:36 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:36 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:36 'invocation' ( temp uint)
|
||||
0:36 Constant:
|
||||
0:36 1 (const int)
|
||||
0:36 Constant:
|
||||
0:36 0 (const int)
|
||||
0:36 subgroupClusteredXor ( global int)
|
||||
0:36 direct index ( temp int)
|
||||
0:36 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:36 Constant:
|
||||
0:36 0 (const int)
|
||||
0:36 Constant:
|
||||
0:36 1 (const int)
|
||||
0:36 Constant:
|
||||
0:36 0 (const int)
|
||||
0:36 Convert int to uint ( temp uint)
|
||||
0:36 add ( temp int)
|
||||
0:36 Constant:
|
||||
0:36 1 (const int)
|
||||
0:36 'a' ( temp int)
|
||||
0:37 move second child to first child ( temp 2-component vector of int)
|
||||
0:37 vector swizzle ( temp 2-component vector of int)
|
||||
0:37 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:37 'invocation' ( temp uint)
|
||||
0:37 Constant:
|
||||
0:37 1 (const int)
|
||||
0:37 Sequence
|
||||
0:37 Constant:
|
||||
0:37 0 (const int)
|
||||
0:37 Constant:
|
||||
0:37 1 (const int)
|
||||
0:37 subgroupClusteredXor ( global 2-component vector of int)
|
||||
0:37 vector swizzle ( temp 2-component vector of int)
|
||||
0:37 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:37 Constant:
|
||||
0:37 1 (const int)
|
||||
0:37 Constant:
|
||||
0:37 1 (const int)
|
||||
0:37 Sequence
|
||||
0:37 Constant:
|
||||
0:37 0 (const int)
|
||||
0:37 Constant:
|
||||
0:37 1 (const int)
|
||||
0:37 Convert int to uint ( temp uint)
|
||||
0:37 add ( temp int)
|
||||
0:37 Constant:
|
||||
0:37 1 (const int)
|
||||
0:37 'a' ( temp int)
|
||||
0:38 move second child to first child ( temp 3-component vector of int)
|
||||
0:38 vector swizzle ( temp 3-component vector of int)
|
||||
0:38 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:38 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:38 'invocation' ( temp uint)
|
||||
0:38 Constant:
|
||||
0:38 1 (const int)
|
||||
0:38 Sequence
|
||||
0:38 Constant:
|
||||
0:38 0 (const int)
|
||||
0:38 Constant:
|
||||
0:38 1 (const int)
|
||||
0:38 Constant:
|
||||
0:38 2 (const int)
|
||||
0:38 subgroupClusteredXor ( global 3-component vector of int)
|
||||
0:38 vector swizzle ( temp 3-component vector of int)
|
||||
0:38 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:38 Constant:
|
||||
0:38 2 (const int)
|
||||
0:38 Constant:
|
||||
0:38 1 (const int)
|
||||
0:38 Sequence
|
||||
0:38 Constant:
|
||||
0:38 0 (const int)
|
||||
0:38 Constant:
|
||||
0:38 1 (const int)
|
||||
0:38 Constant:
|
||||
0:38 2 (const int)
|
||||
0:38 Constant:
|
||||
0:38 2 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
local_size = (8, 1, 1)
|
||||
ERROR: node is still EOpNull!
|
||||
0:15 Function Definition: main( ( global void)
|
||||
0:15 Function Parameters:
|
||||
0:17 Sequence
|
||||
0:17 Sequence
|
||||
0:17 move second child to first child ( temp int)
|
||||
0:17 'a' ( temp int)
|
||||
0:17 Constant:
|
||||
0:17 1 (const int)
|
||||
0:20 Sequence
|
||||
0:20 move second child to first child ( temp uint)
|
||||
0:20 'invocation' ( temp uint)
|
||||
0:20 mod ( temp uint)
|
||||
0:20 add ( temp uint)
|
||||
0:20 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:20 Constant:
|
||||
0:20 4 (const uint)
|
||||
0:22 move second child to first child ( temp 2-component vector of float)
|
||||
0:22 vector swizzle ( temp 2-component vector of float)
|
||||
0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:22 'invocation' ( temp uint)
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Sequence
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Constant:
|
||||
0:22 1 (const int)
|
||||
0:22 subgroupClusteredAdd ( global 2-component vector of float)
|
||||
0:22 vector swizzle ( temp 2-component vector of float)
|
||||
0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:22 Constant:
|
||||
0:22 1 (const int)
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Sequence
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Constant:
|
||||
0:22 1 (const int)
|
||||
0:22 Constant:
|
||||
0:22 0 (const uint)
|
||||
0:24 move second child to first child ( temp float)
|
||||
0:24 direct index ( temp float)
|
||||
0:24 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:24 'invocation' ( temp uint)
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 subgroupClusteredMul ( global float)
|
||||
0:24 direct index ( temp float)
|
||||
0:24 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 Constant:
|
||||
0:24 3 (const uint)
|
||||
0:26 move second child to first child ( temp 2-component vector of int)
|
||||
0:26 vector swizzle ( temp 2-component vector of int)
|
||||
0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:26 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:26 'invocation' ( temp uint)
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Sequence
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 subgroupClusteredMin ( global 2-component vector of int)
|
||||
0:26 vector swizzle ( temp 2-component vector of int)
|
||||
0:26 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Sequence
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Constant:
|
||||
0:26 8 (const uint)
|
||||
0:27 move second child to first child ( temp 3-component vector of int)
|
||||
0:27 vector swizzle ( temp 3-component vector of int)
|
||||
0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:27 'invocation' ( temp uint)
|
||||
0:27 Constant:
|
||||
0:27 1 (const int)
|
||||
0:27 Sequence
|
||||
0:27 Constant:
|
||||
0:27 0 (const int)
|
||||
0:27 Constant:
|
||||
0:27 1 (const int)
|
||||
0:27 Constant:
|
||||
0:27 2 (const int)
|
||||
0:27 subgroupClusteredMin ( global 3-component vector of int)
|
||||
0:27 vector swizzle ( temp 3-component vector of int)
|
||||
0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:27 Constant:
|
||||
0:27 2 (const int)
|
||||
0:27 Constant:
|
||||
0:27 1 (const int)
|
||||
0:27 Sequence
|
||||
0:27 Constant:
|
||||
0:27 0 (const int)
|
||||
0:27 Constant:
|
||||
0:27 1 (const int)
|
||||
0:27 Constant:
|
||||
0:27 2 (const int)
|
||||
0:27 Constant:
|
||||
0:27 6 (const uint)
|
||||
0:29 move second child to first child ( temp float)
|
||||
0:29 direct index ( temp float)
|
||||
0:29 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:29 'invocation' ( temp uint)
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 subgroupClusteredMax ( global float)
|
||||
0:29 direct index ( temp float)
|
||||
0:29 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 Constant:
|
||||
0:29 4294967295 (const uint)
|
||||
0:31 move second child to first child ( temp 4-component vector of int)
|
||||
0:31 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:31 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:31 'invocation' ( temp uint)
|
||||
0:31 Constant:
|
||||
0:31 1 (const int)
|
||||
0:31 subgroupClusteredAnd ( global 4-component vector of int)
|
||||
0:31 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:31 Constant:
|
||||
0:31 3 (const int)
|
||||
0:31 Constant:
|
||||
0:31 1 (const int)
|
||||
0:31 Constant:
|
||||
0:31 4294967293 (const uint)
|
||||
0:33 move second child to first child ( temp int)
|
||||
0:33 direct index ( temp int)
|
||||
0:33 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:33 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:33 'invocation' ( temp uint)
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:33 Constant:
|
||||
0:33 0 (const int)
|
||||
0:33 subgroupClusteredOr ( global int)
|
||||
0:33 direct index ( temp int)
|
||||
0:33 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:33 Constant:
|
||||
0:33 0 (const int)
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:33 Constant:
|
||||
0:33 0 (const int)
|
||||
0:33 Convert int to uint ( temp uint)
|
||||
0:33 'a' ( temp int)
|
||||
0:34 move second child to first child ( temp 2-component vector of int)
|
||||
0:34 vector swizzle ( temp 2-component vector of int)
|
||||
0:34 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:34 'invocation' ( temp uint)
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 Sequence
|
||||
0:34 Constant:
|
||||
0:34 0 (const int)
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 subgroupClusteredOr ( global 2-component vector of int)
|
||||
0:34 vector swizzle ( temp 2-component vector of int)
|
||||
0:34 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 Sequence
|
||||
0:34 Constant:
|
||||
0:34 0 (const int)
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 Constant:
|
||||
0:34 1 (const uint)
|
||||
0:36 move second child to first child ( temp int)
|
||||
0:36 direct index ( temp int)
|
||||
0:36 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:36 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:36 'invocation' ( temp uint)
|
||||
0:36 Constant:
|
||||
0:36 1 (const int)
|
||||
0:36 Constant:
|
||||
0:36 0 (const int)
|
||||
0:36 subgroupClusteredXor ( global int)
|
||||
0:36 direct index ( temp int)
|
||||
0:36 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:36 Constant:
|
||||
0:36 0 (const int)
|
||||
0:36 Constant:
|
||||
0:36 1 (const int)
|
||||
0:36 Constant:
|
||||
0:36 0 (const int)
|
||||
0:36 Convert int to uint ( temp uint)
|
||||
0:36 add ( temp int)
|
||||
0:36 Constant:
|
||||
0:36 1 (const int)
|
||||
0:36 'a' ( temp int)
|
||||
0:37 move second child to first child ( temp 2-component vector of int)
|
||||
0:37 vector swizzle ( temp 2-component vector of int)
|
||||
0:37 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:37 'invocation' ( temp uint)
|
||||
0:37 Constant:
|
||||
0:37 1 (const int)
|
||||
0:37 Sequence
|
||||
0:37 Constant:
|
||||
0:37 0 (const int)
|
||||
0:37 Constant:
|
||||
0:37 1 (const int)
|
||||
0:37 subgroupClusteredXor ( global 2-component vector of int)
|
||||
0:37 vector swizzle ( temp 2-component vector of int)
|
||||
0:37 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:37 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:37 Constant:
|
||||
0:37 1 (const int)
|
||||
0:37 Constant:
|
||||
0:37 1 (const int)
|
||||
0:37 Sequence
|
||||
0:37 Constant:
|
||||
0:37 0 (const int)
|
||||
0:37 Constant:
|
||||
0:37 1 (const int)
|
||||
0:37 Convert int to uint ( temp uint)
|
||||
0:37 add ( temp int)
|
||||
0:37 Constant:
|
||||
0:37 1 (const int)
|
||||
0:37 'a' ( temp int)
|
||||
0:38 move second child to first child ( temp 3-component vector of int)
|
||||
0:38 vector swizzle ( temp 3-component vector of int)
|
||||
0:38 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:38 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:38 'invocation' ( temp uint)
|
||||
0:38 Constant:
|
||||
0:38 1 (const int)
|
||||
0:38 Sequence
|
||||
0:38 Constant:
|
||||
0:38 0 (const int)
|
||||
0:38 Constant:
|
||||
0:38 1 (const int)
|
||||
0:38 Constant:
|
||||
0:38 2 (const int)
|
||||
0:38 subgroupClusteredXor ( global 3-component vector of int)
|
||||
0:38 vector swizzle ( temp 3-component vector of int)
|
||||
0:38 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
0:38 Constant:
|
||||
0:38 2 (const int)
|
||||
0:38 Constant:
|
||||
0:38 1 (const int)
|
||||
0:38 Sequence
|
||||
0:38 Constant:
|
||||
0:38 0 (const int)
|
||||
0:38 Constant:
|
||||
0:38 1 (const int)
|
||||
0:38 Constant:
|
||||
0:38 2 (const int)
|
||||
0:38 Constant:
|
||||
0:38 2 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
2101
3rdparty/glslang/Test/baseResults/glsl.450.subgroupShuffleRelative.comp.out
vendored
Normal file
2101
3rdparty/glslang/Test/baseResults/glsl.450.subgroupShuffleRelative.comp.out
vendored
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,971 @@
|
|||
glsl.450.subgroupVote.comp
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
local_size = (8, 8, 1)
|
||||
0:? Sequence
|
||||
0:16 Function Definition: main( ( global void)
|
||||
0:16 Function Parameters:
|
||||
0:18 Sequence
|
||||
0:18 Sequence
|
||||
0:18 move second child to first child ( temp uint)
|
||||
0:18 'invocation' ( temp uint)
|
||||
0:18 mod ( temp uint)
|
||||
0:18 add ( temp uint)
|
||||
0:18 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:18 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:18 Constant:
|
||||
0:18 4 (const uint)
|
||||
0:20 Test condition and select ( temp void)
|
||||
0:20 Condition
|
||||
0:20 subgroupAll ( global bool)
|
||||
0:20 Compare Less Than ( temp bool)
|
||||
0:20 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:20 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:20 'invocation' ( temp uint)
|
||||
0:20 Constant:
|
||||
0:20 4 (const int)
|
||||
0:20 Constant:
|
||||
0:20 0 (const int)
|
||||
0:20 true case
|
||||
0:22 Sequence
|
||||
0:22 move second child to first child ( temp int)
|
||||
0:22 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:22 'invocation' ( temp uint)
|
||||
0:22 Constant:
|
||||
0:22 4 (const int)
|
||||
0:22 Convert bool to int ( temp int)
|
||||
0:22 subgroupAllEqual ( global bool)
|
||||
0:22 direct index ( temp float)
|
||||
0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:23 move second child to first child ( temp int)
|
||||
0:23 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:23 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:23 'invocation' ( temp uint)
|
||||
0:23 Constant:
|
||||
0:23 4 (const int)
|
||||
0:23 Convert bool to int ( temp int)
|
||||
0:23 subgroupAllEqual ( global bool)
|
||||
0:23 vector swizzle ( temp 2-component vector of float)
|
||||
0:23 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:23 Constant:
|
||||
0:23 1 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Sequence
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 1 (const int)
|
||||
0:24 move second child to first child ( temp int)
|
||||
0:24 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:24 'invocation' ( temp uint)
|
||||
0:24 Constant:
|
||||
0:24 4 (const int)
|
||||
0:24 Convert bool to int ( temp int)
|
||||
0:24 subgroupAllEqual ( global bool)
|
||||
0:24 vector swizzle ( temp 3-component vector of float)
|
||||
0:24 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:24 Constant:
|
||||
0:24 2 (const int)
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 Sequence
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 Constant:
|
||||
0:24 1 (const int)
|
||||
0:24 Constant:
|
||||
0:24 2 (const int)
|
||||
0:25 move second child to first child ( temp int)
|
||||
0:25 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:25 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:25 'invocation' ( temp uint)
|
||||
0:25 Constant:
|
||||
0:25 4 (const int)
|
||||
0:25 Convert bool to int ( temp int)
|
||||
0:25 subgroupAllEqual ( global bool)
|
||||
0:25 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:25 Constant:
|
||||
0:25 3 (const int)
|
||||
0:25 Constant:
|
||||
0:25 0 (const int)
|
||||
0:27 move second child to first child ( temp int)
|
||||
0:27 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:27 'invocation' ( temp uint)
|
||||
0:27 Constant:
|
||||
0:27 4 (const int)
|
||||
0:27 Convert bool to int ( temp int)
|
||||
0:27 subgroupAllEqual ( global bool)
|
||||
0:27 direct index ( temp int)
|
||||
0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:27 Constant:
|
||||
0:27 0 (const int)
|
||||
0:27 Constant:
|
||||
0:27 1 (const int)
|
||||
0:27 Constant:
|
||||
0:27 0 (const int)
|
||||
0:28 move second child to first child ( temp int)
|
||||
0:28 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:28 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:28 'invocation' ( temp uint)
|
||||
0:28 Constant:
|
||||
0:28 4 (const int)
|
||||
0:28 Convert bool to int ( temp int)
|
||||
0:28 subgroupAllEqual ( global bool)
|
||||
0:28 vector swizzle ( temp 2-component vector of int)
|
||||
0:28 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:28 Constant:
|
||||
0:28 1 (const int)
|
||||
0:28 Constant:
|
||||
0:28 1 (const int)
|
||||
0:28 Sequence
|
||||
0:28 Constant:
|
||||
0:28 0 (const int)
|
||||
0:28 Constant:
|
||||
0:28 1 (const int)
|
||||
0:29 move second child to first child ( temp int)
|
||||
0:29 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:29 'invocation' ( temp uint)
|
||||
0:29 Constant:
|
||||
0:29 4 (const int)
|
||||
0:29 Convert bool to int ( temp int)
|
||||
0:29 subgroupAllEqual ( global bool)
|
||||
0:29 vector swizzle ( temp 3-component vector of int)
|
||||
0:29 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:29 Constant:
|
||||
0:29 2 (const int)
|
||||
0:29 Constant:
|
||||
0:29 1 (const int)
|
||||
0:29 Sequence
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 Constant:
|
||||
0:29 1 (const int)
|
||||
0:29 Constant:
|
||||
0:29 2 (const int)
|
||||
0:30 move second child to first child ( temp int)
|
||||
0:30 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:30 'invocation' ( temp uint)
|
||||
0:30 Constant:
|
||||
0:30 4 (const int)
|
||||
0:30 Convert bool to int ( temp int)
|
||||
0:30 subgroupAllEqual ( global bool)
|
||||
0:30 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:30 Constant:
|
||||
0:30 3 (const int)
|
||||
0:30 Constant:
|
||||
0:30 1 (const int)
|
||||
0:32 move second child to first child ( temp int)
|
||||
0:32 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:32 'invocation' ( temp uint)
|
||||
0:32 Constant:
|
||||
0:32 4 (const int)
|
||||
0:32 Convert bool to int ( temp int)
|
||||
0:32 subgroupAllEqual ( global bool)
|
||||
0:32 direct index ( temp uint)
|
||||
0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 Constant:
|
||||
0:32 2 (const int)
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:33 move second child to first child ( temp int)
|
||||
0:33 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:33 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:33 'invocation' ( temp uint)
|
||||
0:33 Constant:
|
||||
0:33 4 (const int)
|
||||
0:33 Convert bool to int ( temp int)
|
||||
0:33 subgroupAllEqual ( global bool)
|
||||
0:33 vector swizzle ( temp 2-component vector of uint)
|
||||
0:33 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:33 Constant:
|
||||
0:33 2 (const int)
|
||||
0:33 Sequence
|
||||
0:33 Constant:
|
||||
0:33 0 (const int)
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:34 move second child to first child ( temp int)
|
||||
0:34 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:34 'invocation' ( temp uint)
|
||||
0:34 Constant:
|
||||
0:34 4 (const int)
|
||||
0:34 Convert bool to int ( temp int)
|
||||
0:34 subgroupAllEqual ( global bool)
|
||||
0:34 vector swizzle ( temp 3-component vector of uint)
|
||||
0:34 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:34 Constant:
|
||||
0:34 2 (const int)
|
||||
0:34 Constant:
|
||||
0:34 2 (const int)
|
||||
0:34 Sequence
|
||||
0:34 Constant:
|
||||
0:34 0 (const int)
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 Constant:
|
||||
0:34 2 (const int)
|
||||
0:35 move second child to first child ( temp int)
|
||||
0:35 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:35 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:35 'invocation' ( temp uint)
|
||||
0:35 Constant:
|
||||
0:35 4 (const int)
|
||||
0:35 Convert bool to int ( temp int)
|
||||
0:35 subgroupAllEqual ( global bool)
|
||||
0:35 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:35 Constant:
|
||||
0:35 3 (const int)
|
||||
0:35 Constant:
|
||||
0:35 2 (const int)
|
||||
0:20 false case
|
||||
0:37 Test condition and select ( temp void)
|
||||
0:37 Condition
|
||||
0:37 subgroupAny ( global bool)
|
||||
0:37 Compare Less Than ( temp bool)
|
||||
0:37 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:37 'invocation' ( temp uint)
|
||||
0:37 Constant:
|
||||
0:37 4 (const int)
|
||||
0:37 Constant:
|
||||
0:37 0 (const int)
|
||||
0:37 true case
|
||||
0:39 Sequence
|
||||
0:39 move second child to first child ( temp int)
|
||||
0:39 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:39 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:39 'invocation' ( temp uint)
|
||||
0:39 Constant:
|
||||
0:39 4 (const int)
|
||||
0:39 Convert bool to int ( temp int)
|
||||
0:39 subgroupAllEqual ( global bool)
|
||||
0:39 direct index ( temp double)
|
||||
0:39 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
|
||||
0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:39 Constant:
|
||||
0:39 0 (const int)
|
||||
0:39 Constant:
|
||||
0:39 3 (const int)
|
||||
0:39 Constant:
|
||||
0:39 0 (const int)
|
||||
0:40 move second child to first child ( temp int)
|
||||
0:40 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:40 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:40 'invocation' ( temp uint)
|
||||
0:40 Constant:
|
||||
0:40 4 (const int)
|
||||
0:40 Convert bool to int ( temp int)
|
||||
0:40 subgroupAllEqual ( global bool)
|
||||
0:40 vector swizzle ( temp 2-component vector of double)
|
||||
0:40 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
|
||||
0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:40 Constant:
|
||||
0:40 1 (const int)
|
||||
0:40 Constant:
|
||||
0:40 3 (const int)
|
||||
0:40 Sequence
|
||||
0:40 Constant:
|
||||
0:40 0 (const int)
|
||||
0:40 Constant:
|
||||
0:40 1 (const int)
|
||||
0:41 move second child to first child ( temp int)
|
||||
0:41 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:41 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:41 'invocation' ( temp uint)
|
||||
0:41 Constant:
|
||||
0:41 4 (const int)
|
||||
0:41 Convert bool to int ( temp int)
|
||||
0:41 subgroupAllEqual ( global bool)
|
||||
0:41 vector swizzle ( temp 3-component vector of double)
|
||||
0:41 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
|
||||
0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:41 Constant:
|
||||
0:41 2 (const int)
|
||||
0:41 Constant:
|
||||
0:41 3 (const int)
|
||||
0:41 Sequence
|
||||
0:41 Constant:
|
||||
0:41 0 (const int)
|
||||
0:41 Constant:
|
||||
0:41 1 (const int)
|
||||
0:41 Constant:
|
||||
0:41 2 (const int)
|
||||
0:42 move second child to first child ( temp int)
|
||||
0:42 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:42 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:42 'invocation' ( temp uint)
|
||||
0:42 Constant:
|
||||
0:42 4 (const int)
|
||||
0:42 Convert bool to int ( temp int)
|
||||
0:42 subgroupAllEqual ( global bool)
|
||||
0:42 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
|
||||
0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:42 Constant:
|
||||
0:42 3 (const int)
|
||||
0:42 Constant:
|
||||
0:42 3 (const int)
|
||||
0:44 move second child to first child ( temp int)
|
||||
0:44 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:44 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:44 'invocation' ( temp uint)
|
||||
0:44 Constant:
|
||||
0:44 4 (const int)
|
||||
0:44 Construct int ( temp int)
|
||||
0:44 Convert bool to int ( temp int)
|
||||
0:44 subgroupAllEqual ( global bool)
|
||||
0:44 Compare Less Than ( temp bool)
|
||||
0:44 direct index ( temp int)
|
||||
0:44 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:44 Constant:
|
||||
0:44 0 (const int)
|
||||
0:44 Constant:
|
||||
0:44 1 (const int)
|
||||
0:44 Constant:
|
||||
0:44 0 (const int)
|
||||
0:44 Constant:
|
||||
0:44 0 (const int)
|
||||
0:45 move second child to first child ( temp int)
|
||||
0:45 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:45 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:45 'invocation' ( temp uint)
|
||||
0:45 Constant:
|
||||
0:45 4 (const int)
|
||||
0:45 Construct int ( temp int)
|
||||
0:45 Construct ivec2 ( temp 2-component vector of int)
|
||||
0:45 Convert bool to int ( temp int)
|
||||
0:45 subgroupAllEqual ( global bool)
|
||||
0:45 Compare Less Than ( global 2-component vector of bool)
|
||||
0:45 vector swizzle ( temp 2-component vector of int)
|
||||
0:45 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:45 Constant:
|
||||
0:45 1 (const int)
|
||||
0:45 Constant:
|
||||
0:45 1 (const int)
|
||||
0:45 Sequence
|
||||
0:45 Constant:
|
||||
0:45 0 (const int)
|
||||
0:45 Constant:
|
||||
0:45 1 (const int)
|
||||
0:45 Constant:
|
||||
0:45 0 (const int)
|
||||
0:45 0 (const int)
|
||||
0:46 move second child to first child ( temp int)
|
||||
0:46 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:46 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:46 'invocation' ( temp uint)
|
||||
0:46 Constant:
|
||||
0:46 4 (const int)
|
||||
0:46 Construct int ( temp int)
|
||||
0:46 Construct ivec3 ( temp 3-component vector of int)
|
||||
0:46 Convert bool to int ( temp int)
|
||||
0:46 subgroupAllEqual ( global bool)
|
||||
0:46 Compare Less Than ( global 3-component vector of bool)
|
||||
0:46 vector swizzle ( temp 3-component vector of int)
|
||||
0:46 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:46 Constant:
|
||||
0:46 1 (const int)
|
||||
0:46 Constant:
|
||||
0:46 1 (const int)
|
||||
0:46 Sequence
|
||||
0:46 Constant:
|
||||
0:46 0 (const int)
|
||||
0:46 Constant:
|
||||
0:46 1 (const int)
|
||||
0:46 Constant:
|
||||
0:46 2 (const int)
|
||||
0:46 Constant:
|
||||
0:46 0 (const int)
|
||||
0:46 0 (const int)
|
||||
0:46 0 (const int)
|
||||
0:47 move second child to first child ( temp int)
|
||||
0:47 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:47 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:47 'invocation' ( temp uint)
|
||||
0:47 Constant:
|
||||
0:47 4 (const int)
|
||||
0:47 Construct int ( temp int)
|
||||
0:47 Construct ivec4 ( temp 4-component vector of int)
|
||||
0:47 Convert bool to int ( temp int)
|
||||
0:47 subgroupAllEqual ( global bool)
|
||||
0:47 Compare Less Than ( global 4-component vector of bool)
|
||||
0:47 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:47 Constant:
|
||||
0:47 1 (const int)
|
||||
0:47 Constant:
|
||||
0:47 1 (const int)
|
||||
0:47 Constant:
|
||||
0:47 0 (const int)
|
||||
0:47 0 (const int)
|
||||
0:47 0 (const int)
|
||||
0:47 0 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
0:? 8 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
local_size = (8, 8, 1)
|
||||
0:? Sequence
|
||||
0:16 Function Definition: main( ( global void)
|
||||
0:16 Function Parameters:
|
||||
0:18 Sequence
|
||||
0:18 Sequence
|
||||
0:18 move second child to first child ( temp uint)
|
||||
0:18 'invocation' ( temp uint)
|
||||
0:18 mod ( temp uint)
|
||||
0:18 add ( temp uint)
|
||||
0:18 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:18 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:18 Constant:
|
||||
0:18 4 (const uint)
|
||||
0:20 Test condition and select ( temp void)
|
||||
0:20 Condition
|
||||
0:20 subgroupAll ( global bool)
|
||||
0:20 Compare Less Than ( temp bool)
|
||||
0:20 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:20 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:20 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:20 'invocation' ( temp uint)
|
||||
0:20 Constant:
|
||||
0:20 4 (const int)
|
||||
0:20 Constant:
|
||||
0:20 0 (const int)
|
||||
0:20 true case
|
||||
0:22 Sequence
|
||||
0:22 move second child to first child ( temp int)
|
||||
0:22 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:22 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:22 'invocation' ( temp uint)
|
||||
0:22 Constant:
|
||||
0:22 4 (const int)
|
||||
0:22 Convert bool to int ( temp int)
|
||||
0:22 subgroupAllEqual ( global bool)
|
||||
0:22 direct index ( temp float)
|
||||
0:22 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:23 move second child to first child ( temp int)
|
||||
0:23 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:23 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:23 'invocation' ( temp uint)
|
||||
0:23 Constant:
|
||||
0:23 4 (const int)
|
||||
0:23 Convert bool to int ( temp int)
|
||||
0:23 subgroupAllEqual ( global bool)
|
||||
0:23 vector swizzle ( temp 2-component vector of float)
|
||||
0:23 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:23 Constant:
|
||||
0:23 1 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Sequence
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 1 (const int)
|
||||
0:24 move second child to first child ( temp int)
|
||||
0:24 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:24 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:24 'invocation' ( temp uint)
|
||||
0:24 Constant:
|
||||
0:24 4 (const int)
|
||||
0:24 Convert bool to int ( temp int)
|
||||
0:24 subgroupAllEqual ( global bool)
|
||||
0:24 vector swizzle ( temp 3-component vector of float)
|
||||
0:24 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:24 Constant:
|
||||
0:24 2 (const int)
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 Sequence
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 Constant:
|
||||
0:24 1 (const int)
|
||||
0:24 Constant:
|
||||
0:24 2 (const int)
|
||||
0:25 move second child to first child ( temp int)
|
||||
0:25 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:25 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:25 'invocation' ( temp uint)
|
||||
0:25 Constant:
|
||||
0:25 4 (const int)
|
||||
0:25 Convert bool to int ( temp int)
|
||||
0:25 subgroupAllEqual ( global bool)
|
||||
0:25 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:25 Constant:
|
||||
0:25 3 (const int)
|
||||
0:25 Constant:
|
||||
0:25 0 (const int)
|
||||
0:27 move second child to first child ( temp int)
|
||||
0:27 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:27 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:27 'invocation' ( temp uint)
|
||||
0:27 Constant:
|
||||
0:27 4 (const int)
|
||||
0:27 Convert bool to int ( temp int)
|
||||
0:27 subgroupAllEqual ( global bool)
|
||||
0:27 direct index ( temp int)
|
||||
0:27 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:27 Constant:
|
||||
0:27 0 (const int)
|
||||
0:27 Constant:
|
||||
0:27 1 (const int)
|
||||
0:27 Constant:
|
||||
0:27 0 (const int)
|
||||
0:28 move second child to first child ( temp int)
|
||||
0:28 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:28 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:28 'invocation' ( temp uint)
|
||||
0:28 Constant:
|
||||
0:28 4 (const int)
|
||||
0:28 Convert bool to int ( temp int)
|
||||
0:28 subgroupAllEqual ( global bool)
|
||||
0:28 vector swizzle ( temp 2-component vector of int)
|
||||
0:28 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:28 Constant:
|
||||
0:28 1 (const int)
|
||||
0:28 Constant:
|
||||
0:28 1 (const int)
|
||||
0:28 Sequence
|
||||
0:28 Constant:
|
||||
0:28 0 (const int)
|
||||
0:28 Constant:
|
||||
0:28 1 (const int)
|
||||
0:29 move second child to first child ( temp int)
|
||||
0:29 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:29 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:29 'invocation' ( temp uint)
|
||||
0:29 Constant:
|
||||
0:29 4 (const int)
|
||||
0:29 Convert bool to int ( temp int)
|
||||
0:29 subgroupAllEqual ( global bool)
|
||||
0:29 vector swizzle ( temp 3-component vector of int)
|
||||
0:29 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:29 Constant:
|
||||
0:29 2 (const int)
|
||||
0:29 Constant:
|
||||
0:29 1 (const int)
|
||||
0:29 Sequence
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 Constant:
|
||||
0:29 1 (const int)
|
||||
0:29 Constant:
|
||||
0:29 2 (const int)
|
||||
0:30 move second child to first child ( temp int)
|
||||
0:30 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:30 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:30 'invocation' ( temp uint)
|
||||
0:30 Constant:
|
||||
0:30 4 (const int)
|
||||
0:30 Convert bool to int ( temp int)
|
||||
0:30 subgroupAllEqual ( global bool)
|
||||
0:30 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:30 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:30 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:30 Constant:
|
||||
0:30 3 (const int)
|
||||
0:30 Constant:
|
||||
0:30 1 (const int)
|
||||
0:32 move second child to first child ( temp int)
|
||||
0:32 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:32 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:32 'invocation' ( temp uint)
|
||||
0:32 Constant:
|
||||
0:32 4 (const int)
|
||||
0:32 Convert bool to int ( temp int)
|
||||
0:32 subgroupAllEqual ( global bool)
|
||||
0:32 direct index ( temp uint)
|
||||
0:32 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 Constant:
|
||||
0:32 2 (const int)
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:33 move second child to first child ( temp int)
|
||||
0:33 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:33 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:33 'invocation' ( temp uint)
|
||||
0:33 Constant:
|
||||
0:33 4 (const int)
|
||||
0:33 Convert bool to int ( temp int)
|
||||
0:33 subgroupAllEqual ( global bool)
|
||||
0:33 vector swizzle ( temp 2-component vector of uint)
|
||||
0:33 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:33 Constant:
|
||||
0:33 2 (const int)
|
||||
0:33 Sequence
|
||||
0:33 Constant:
|
||||
0:33 0 (const int)
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:34 move second child to first child ( temp int)
|
||||
0:34 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:34 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:34 'invocation' ( temp uint)
|
||||
0:34 Constant:
|
||||
0:34 4 (const int)
|
||||
0:34 Convert bool to int ( temp int)
|
||||
0:34 subgroupAllEqual ( global bool)
|
||||
0:34 vector swizzle ( temp 3-component vector of uint)
|
||||
0:34 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:34 Constant:
|
||||
0:34 2 (const int)
|
||||
0:34 Constant:
|
||||
0:34 2 (const int)
|
||||
0:34 Sequence
|
||||
0:34 Constant:
|
||||
0:34 0 (const int)
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 Constant:
|
||||
0:34 2 (const int)
|
||||
0:35 move second child to first child ( temp int)
|
||||
0:35 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:35 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:35 'invocation' ( temp uint)
|
||||
0:35 Constant:
|
||||
0:35 4 (const int)
|
||||
0:35 Convert bool to int ( temp int)
|
||||
0:35 subgroupAllEqual ( global bool)
|
||||
0:35 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:35 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:35 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:35 Constant:
|
||||
0:35 3 (const int)
|
||||
0:35 Constant:
|
||||
0:35 2 (const int)
|
||||
0:20 false case
|
||||
0:37 Test condition and select ( temp void)
|
||||
0:37 Condition
|
||||
0:37 subgroupAny ( global bool)
|
||||
0:37 Compare Less Than ( temp bool)
|
||||
0:37 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:37 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:37 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:37 'invocation' ( temp uint)
|
||||
0:37 Constant:
|
||||
0:37 4 (const int)
|
||||
0:37 Constant:
|
||||
0:37 0 (const int)
|
||||
0:37 true case
|
||||
0:39 Sequence
|
||||
0:39 move second child to first child ( temp int)
|
||||
0:39 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:39 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:39 'invocation' ( temp uint)
|
||||
0:39 Constant:
|
||||
0:39 4 (const int)
|
||||
0:39 Convert bool to int ( temp int)
|
||||
0:39 subgroupAllEqual ( global bool)
|
||||
0:39 direct index ( temp double)
|
||||
0:39 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
|
||||
0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:39 Constant:
|
||||
0:39 0 (const int)
|
||||
0:39 Constant:
|
||||
0:39 3 (const int)
|
||||
0:39 Constant:
|
||||
0:39 0 (const int)
|
||||
0:40 move second child to first child ( temp int)
|
||||
0:40 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:40 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:40 'invocation' ( temp uint)
|
||||
0:40 Constant:
|
||||
0:40 4 (const int)
|
||||
0:40 Convert bool to int ( temp int)
|
||||
0:40 subgroupAllEqual ( global bool)
|
||||
0:40 vector swizzle ( temp 2-component vector of double)
|
||||
0:40 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
|
||||
0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:40 Constant:
|
||||
0:40 1 (const int)
|
||||
0:40 Constant:
|
||||
0:40 3 (const int)
|
||||
0:40 Sequence
|
||||
0:40 Constant:
|
||||
0:40 0 (const int)
|
||||
0:40 Constant:
|
||||
0:40 1 (const int)
|
||||
0:41 move second child to first child ( temp int)
|
||||
0:41 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:41 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:41 'invocation' ( temp uint)
|
||||
0:41 Constant:
|
||||
0:41 4 (const int)
|
||||
0:41 Convert bool to int ( temp int)
|
||||
0:41 subgroupAllEqual ( global bool)
|
||||
0:41 vector swizzle ( temp 3-component vector of double)
|
||||
0:41 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
|
||||
0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:41 Constant:
|
||||
0:41 2 (const int)
|
||||
0:41 Constant:
|
||||
0:41 3 (const int)
|
||||
0:41 Sequence
|
||||
0:41 Constant:
|
||||
0:41 0 (const int)
|
||||
0:41 Constant:
|
||||
0:41 1 (const int)
|
||||
0:41 Constant:
|
||||
0:41 2 (const int)
|
||||
0:42 move second child to first child ( temp int)
|
||||
0:42 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:42 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:42 'invocation' ( temp uint)
|
||||
0:42 Constant:
|
||||
0:42 4 (const int)
|
||||
0:42 Convert bool to int ( temp int)
|
||||
0:42 subgroupAllEqual ( global bool)
|
||||
0:42 d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
|
||||
0:42 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:42 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:42 Constant:
|
||||
0:42 3 (const int)
|
||||
0:42 Constant:
|
||||
0:42 3 (const int)
|
||||
0:44 move second child to first child ( temp int)
|
||||
0:44 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:44 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:44 'invocation' ( temp uint)
|
||||
0:44 Constant:
|
||||
0:44 4 (const int)
|
||||
0:44 Construct int ( temp int)
|
||||
0:44 Convert bool to int ( temp int)
|
||||
0:44 subgroupAllEqual ( global bool)
|
||||
0:44 Compare Less Than ( temp bool)
|
||||
0:44 direct index ( temp int)
|
||||
0:44 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:44 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:44 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:44 Constant:
|
||||
0:44 0 (const int)
|
||||
0:44 Constant:
|
||||
0:44 1 (const int)
|
||||
0:44 Constant:
|
||||
0:44 0 (const int)
|
||||
0:44 Constant:
|
||||
0:44 0 (const int)
|
||||
0:45 move second child to first child ( temp int)
|
||||
0:45 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:45 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:45 'invocation' ( temp uint)
|
||||
0:45 Constant:
|
||||
0:45 4 (const int)
|
||||
0:45 Construct int ( temp int)
|
||||
0:45 Construct ivec2 ( temp 2-component vector of int)
|
||||
0:45 Convert bool to int ( temp int)
|
||||
0:45 subgroupAllEqual ( global bool)
|
||||
0:45 Compare Less Than ( global 2-component vector of bool)
|
||||
0:45 vector swizzle ( temp 2-component vector of int)
|
||||
0:45 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:45 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:45 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:45 Constant:
|
||||
0:45 1 (const int)
|
||||
0:45 Constant:
|
||||
0:45 1 (const int)
|
||||
0:45 Sequence
|
||||
0:45 Constant:
|
||||
0:45 0 (const int)
|
||||
0:45 Constant:
|
||||
0:45 1 (const int)
|
||||
0:45 Constant:
|
||||
0:45 0 (const int)
|
||||
0:45 0 (const int)
|
||||
0:46 move second child to first child ( temp int)
|
||||
0:46 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:46 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:46 'invocation' ( temp uint)
|
||||
0:46 Constant:
|
||||
0:46 4 (const int)
|
||||
0:46 Construct int ( temp int)
|
||||
0:46 Construct ivec3 ( temp 3-component vector of int)
|
||||
0:46 Convert bool to int ( temp int)
|
||||
0:46 subgroupAllEqual ( global bool)
|
||||
0:46 Compare Less Than ( global 3-component vector of bool)
|
||||
0:46 vector swizzle ( temp 3-component vector of int)
|
||||
0:46 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:46 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:46 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:46 Constant:
|
||||
0:46 1 (const int)
|
||||
0:46 Constant:
|
||||
0:46 1 (const int)
|
||||
0:46 Sequence
|
||||
0:46 Constant:
|
||||
0:46 0 (const int)
|
||||
0:46 Constant:
|
||||
0:46 1 (const int)
|
||||
0:46 Constant:
|
||||
0:46 2 (const int)
|
||||
0:46 Constant:
|
||||
0:46 0 (const int)
|
||||
0:46 0 (const int)
|
||||
0:46 0 (const int)
|
||||
0:47 move second child to first child ( temp int)
|
||||
0:47 r: direct index for structure (layout( column_major shared) buffer int)
|
||||
0:47 indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:47 'invocation' ( temp uint)
|
||||
0:47 Constant:
|
||||
0:47 4 (const int)
|
||||
0:47 Construct int ( temp int)
|
||||
0:47 Construct ivec4 ( temp 4-component vector of int)
|
||||
0:47 Convert bool to int ( temp int)
|
||||
0:47 subgroupAllEqual ( global bool)
|
||||
0:47 Compare Less Than ( global 4-component vector of bool)
|
||||
0:47 i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
|
||||
0:47 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:47 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
0:47 Constant:
|
||||
0:47 1 (const int)
|
||||
0:47 Constant:
|
||||
0:47 1 (const int)
|
||||
0:47 Constant:
|
||||
0:47 0 (const int)
|
||||
0:47 0 (const int)
|
||||
0:47 0 (const int)
|
||||
0:47 0 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
0:? 8 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4, layout( column_major shared) buffer int r})
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
glsl.es320.subgroup.frag
|
||||
Shader version: 320
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
0:? Sequence
|
||||
0:4 Function Definition: main( ( global void)
|
||||
0:4 Function Parameters:
|
||||
0:6 Sequence
|
||||
0:6 move second child to first child ( temp mediump 4-component vector of uint)
|
||||
0:6 'data' (layout( location=0) out mediump 4-component vector of uint)
|
||||
0:6 Construct uvec4 ( temp mediump 4-component vector of uint)
|
||||
0:6 'gl_SubgroupSize' ( flat in mediump uint unknown built-in variable)
|
||||
0:6 'gl_SubgroupInvocationID' ( flat in mediump uint unknown built-in variable)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'data' (layout( location=0) out mediump 4-component vector of uint)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 320
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
0:? Sequence
|
||||
0:4 Function Definition: main( ( global void)
|
||||
0:4 Function Parameters:
|
||||
0:6 Sequence
|
||||
0:6 move second child to first child ( temp mediump 4-component vector of uint)
|
||||
0:6 'data' (layout( location=0) out mediump 4-component vector of uint)
|
||||
0:6 Construct uvec4 ( temp mediump 4-component vector of uint)
|
||||
0:6 'gl_SubgroupSize' ( flat in mediump uint unknown built-in variable)
|
||||
0:6 'gl_SubgroupInvocationID' ( flat in mediump uint unknown built-in variable)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'data' (layout( location=0) out mediump 4-component vector of uint)
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
glsl.es320.subgroup.geom
|
||||
Shader version: 320
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
invocations = -1
|
||||
max_vertices = 1
|
||||
input primitive = points
|
||||
output primitive = points
|
||||
0:? Sequence
|
||||
0:10 Function Definition: main( ( global void)
|
||||
0:10 Function Parameters:
|
||||
0:12 Sequence
|
||||
0:12 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:12 indirect index (layout( column_major std430 offset=0) temp highp 4-component vector of uint)
|
||||
0:12 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint)
|
||||
0:12 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result})
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 'gl_PrimitiveIDIn' ( in highp int PrimitiveID)
|
||||
0:12 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:12 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:12 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result})
|
||||
|
||||
|
||||
Linked geometry stage:
|
||||
|
||||
|
||||
Shader version: 320
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
invocations = 1
|
||||
max_vertices = 1
|
||||
input primitive = points
|
||||
output primitive = points
|
||||
0:? Sequence
|
||||
0:10 Function Definition: main( ( global void)
|
||||
0:10 Function Parameters:
|
||||
0:12 Sequence
|
||||
0:12 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:12 indirect index (layout( column_major std430 offset=0) temp highp 4-component vector of uint)
|
||||
0:12 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint)
|
||||
0:12 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result})
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 'gl_PrimitiveIDIn' ( in highp int PrimitiveID)
|
||||
0:12 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:12 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:12 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result})
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
glsl.es320.subgroup.tesc
|
||||
Shader version: 320
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
vertices = 1
|
||||
0:? Sequence
|
||||
0:9 Function Definition: main( ( global void)
|
||||
0:9 Function Parameters:
|
||||
0:11 Sequence
|
||||
0:11 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:11 indirect index (layout( column_major std430 offset=0) temp highp 4-component vector of uint)
|
||||
0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint)
|
||||
0:11 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in highp int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result})
|
||||
|
||||
|
||||
Linked tessellation control stage:
|
||||
|
||||
|
||||
Shader version: 320
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
vertices = 1
|
||||
0:? Sequence
|
||||
0:9 Function Definition: main( ( global void)
|
||||
0:9 Function Parameters:
|
||||
0:11 Sequence
|
||||
0:11 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:11 indirect index (layout( column_major std430 offset=0) temp highp 4-component vector of uint)
|
||||
0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint)
|
||||
0:11 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in highp int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result})
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
glsl.es320.subgroup.tese
|
||||
Shader version: 320
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
input primitive = isolines
|
||||
vertex spacing = none
|
||||
triangle order = none
|
||||
0:? Sequence
|
||||
0:9 Function Definition: main( ( global void)
|
||||
0:9 Function Parameters:
|
||||
0:11 Sequence
|
||||
0:11 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:11 indirect index (layout( column_major std430 offset=0) temp highp 4-component vector of uint)
|
||||
0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint)
|
||||
0:11 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in highp int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result})
|
||||
|
||||
|
||||
Linked tessellation evaluation stage:
|
||||
|
||||
|
||||
Shader version: 320
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
input primitive = isolines
|
||||
vertex spacing = equal_spacing
|
||||
triangle order = ccw
|
||||
0:? Sequence
|
||||
0:9 Function Definition: main( ( global void)
|
||||
0:9 Function Parameters:
|
||||
0:11 Sequence
|
||||
0:11 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:11 indirect index (layout( column_major std430 offset=0) temp highp 4-component vector of uint)
|
||||
0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint)
|
||||
0:11 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result})
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in highp int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result})
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
glsl.es320.subgroup.vert
|
||||
Shader version: 320
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
0:? Sequence
|
||||
0:8 Function Definition: main( ( global void)
|
||||
0:8 Function Parameters:
|
||||
0:10 Sequence
|
||||
0:10 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:10 indirect index (layout( column_major std430 offset=0) temp highp 4-component vector of uint)
|
||||
0:10 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint)
|
||||
0:10 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result})
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 'gl_VertexID' ( gl_VertexId highp int VertexId)
|
||||
0:10 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:10 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:10 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result})
|
||||
0:? 'gl_VertexID' ( gl_VertexId highp int VertexId)
|
||||
0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId)
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
Shader version: 320
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
0:? Sequence
|
||||
0:8 Function Definition: main( ( global void)
|
||||
0:8 Function Parameters:
|
||||
0:10 Sequence
|
||||
0:10 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:10 indirect index (layout( column_major std430 offset=0) temp highp 4-component vector of uint)
|
||||
0:10 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint)
|
||||
0:10 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result})
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 'gl_VertexID' ( gl_VertexId highp int VertexId)
|
||||
0:10 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:10 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:10 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of highp 4-component vector of uint result})
|
||||
0:? 'gl_VertexID' ( gl_VertexId highp int VertexId)
|
||||
0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId)
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,275 @@
|
|||
glsl.es320.subgroupBallotNeg.comp
|
||||
ERROR: 0:31: 'id' : argument must be compile-time constant
|
||||
ERROR: 1 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
local_size = (8, 8, 1)
|
||||
ERROR: node is still EOpNull!
|
||||
0:14 Function Definition: main( ( global void)
|
||||
0:14 Function Parameters:
|
||||
0:16 Sequence
|
||||
0:16 Sequence
|
||||
0:16 move second child to first child ( temp uint)
|
||||
0:16 'invocation' ( temp uint)
|
||||
0:16 mod ( temp uint)
|
||||
0:16 add ( temp uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 Sequence
|
||||
0:18 move second child to first child ( temp 4-component vector of uint)
|
||||
0:18 'relMask' ( temp 4-component vector of uint)
|
||||
0:21 add ( temp 4-component vector of uint)
|
||||
0:20 add ( temp 4-component vector of uint)
|
||||
0:19 add ( temp 4-component vector of uint)
|
||||
0:18 add ( temp 4-component vector of uint)
|
||||
0:18 'gl_SubgroupEqMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupGeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupLeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:24 Sequence
|
||||
0:24 move second child to first child ( temp 4-component vector of uint)
|
||||
0:24 'result' ( temp 4-component vector of uint)
|
||||
0:24 subgroupBallot ( global 4-component vector of uint)
|
||||
0:24 Constant:
|
||||
0:24 true (const bool)
|
||||
0:26 move second child to first child ( temp uint)
|
||||
0:26 direct index ( temp uint)
|
||||
0:26 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:26 Constant:
|
||||
0:26 2 (const int)
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:26 subgroupBallotBitCount ( global uint)
|
||||
0:26 'result' ( temp 4-component vector of uint)
|
||||
0:27 move second child to first child ( temp uint)
|
||||
0:27 direct index ( temp uint)
|
||||
0:27 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:27 Constant:
|
||||
0:27 0 (const int)
|
||||
0:27 Constant:
|
||||
0:27 2 (const int)
|
||||
0:27 Constant:
|
||||
0:27 1 (const int)
|
||||
0:27 Test condition and select ( temp uint)
|
||||
0:27 Condition
|
||||
0:27 subgroupBallotBitExtract ( global bool)
|
||||
0:27 'result' ( temp 4-component vector of uint)
|
||||
0:27 Constant:
|
||||
0:27 0 (const uint)
|
||||
0:27 true case
|
||||
0:27 Constant:
|
||||
0:27 1 (const uint)
|
||||
0:27 false case
|
||||
0:27 Constant:
|
||||
0:27 0 (const uint)
|
||||
0:28 move second child to first child ( temp uint)
|
||||
0:28 direct index ( temp uint)
|
||||
0:28 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:28 Constant:
|
||||
0:28 0 (const int)
|
||||
0:28 Constant:
|
||||
0:28 2 (const int)
|
||||
0:28 Constant:
|
||||
0:28 2 (const int)
|
||||
0:28 add ( temp uint)
|
||||
0:28 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:28 'result' ( temp 4-component vector of uint)
|
||||
0:28 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:28 'result' ( temp 4-component vector of uint)
|
||||
0:29 move second child to first child ( temp uint)
|
||||
0:29 direct index ( temp uint)
|
||||
0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 Constant:
|
||||
0:29 2 (const int)
|
||||
0:29 Constant:
|
||||
0:29 3 (const int)
|
||||
0:29 add ( temp uint)
|
||||
0:29 subgroupBallotFindLSB ( global uint)
|
||||
0:29 'result' ( temp 4-component vector of uint)
|
||||
0:29 subgroupBallotFindMSB ( global uint)
|
||||
0:29 'result' ( temp 4-component vector of uint)
|
||||
0:31 move second child to first child ( temp float)
|
||||
0:31 direct index ( temp float)
|
||||
0:31 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:31 Constant:
|
||||
0:31 1 (const int)
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 subgroupBroadcast ( global float)
|
||||
0:31 direct index ( temp float)
|
||||
0:31 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 'invocation' ( temp uint)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
0:? 8 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
local_size = (8, 8, 1)
|
||||
ERROR: node is still EOpNull!
|
||||
0:14 Function Definition: main( ( global void)
|
||||
0:14 Function Parameters:
|
||||
0:16 Sequence
|
||||
0:16 Sequence
|
||||
0:16 move second child to first child ( temp uint)
|
||||
0:16 'invocation' ( temp uint)
|
||||
0:16 mod ( temp uint)
|
||||
0:16 add ( temp uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 Sequence
|
||||
0:18 move second child to first child ( temp 4-component vector of uint)
|
||||
0:18 'relMask' ( temp 4-component vector of uint)
|
||||
0:21 add ( temp 4-component vector of uint)
|
||||
0:20 add ( temp 4-component vector of uint)
|
||||
0:19 add ( temp 4-component vector of uint)
|
||||
0:18 add ( temp 4-component vector of uint)
|
||||
0:18 'gl_SubgroupEqMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupGeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupLeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:24 Sequence
|
||||
0:24 move second child to first child ( temp 4-component vector of uint)
|
||||
0:24 'result' ( temp 4-component vector of uint)
|
||||
0:24 subgroupBallot ( global 4-component vector of uint)
|
||||
0:24 Constant:
|
||||
0:24 true (const bool)
|
||||
0:26 move second child to first child ( temp uint)
|
||||
0:26 direct index ( temp uint)
|
||||
0:26 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:26 Constant:
|
||||
0:26 2 (const int)
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:26 subgroupBallotBitCount ( global uint)
|
||||
0:26 'result' ( temp 4-component vector of uint)
|
||||
0:27 move second child to first child ( temp uint)
|
||||
0:27 direct index ( temp uint)
|
||||
0:27 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:27 Constant:
|
||||
0:27 0 (const int)
|
||||
0:27 Constant:
|
||||
0:27 2 (const int)
|
||||
0:27 Constant:
|
||||
0:27 1 (const int)
|
||||
0:27 Test condition and select ( temp uint)
|
||||
0:27 Condition
|
||||
0:27 subgroupBallotBitExtract ( global bool)
|
||||
0:27 'result' ( temp 4-component vector of uint)
|
||||
0:27 Constant:
|
||||
0:27 0 (const uint)
|
||||
0:27 true case
|
||||
0:27 Constant:
|
||||
0:27 1 (const uint)
|
||||
0:27 false case
|
||||
0:27 Constant:
|
||||
0:27 0 (const uint)
|
||||
0:28 move second child to first child ( temp uint)
|
||||
0:28 direct index ( temp uint)
|
||||
0:28 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:28 Constant:
|
||||
0:28 0 (const int)
|
||||
0:28 Constant:
|
||||
0:28 2 (const int)
|
||||
0:28 Constant:
|
||||
0:28 2 (const int)
|
||||
0:28 add ( temp uint)
|
||||
0:28 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:28 'result' ( temp 4-component vector of uint)
|
||||
0:28 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:28 'result' ( temp 4-component vector of uint)
|
||||
0:29 move second child to first child ( temp uint)
|
||||
0:29 direct index ( temp uint)
|
||||
0:29 u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
|
||||
0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 Constant:
|
||||
0:29 2 (const int)
|
||||
0:29 Constant:
|
||||
0:29 3 (const int)
|
||||
0:29 add ( temp uint)
|
||||
0:29 subgroupBallotFindLSB ( global uint)
|
||||
0:29 'result' ( temp 4-component vector of uint)
|
||||
0:29 subgroupBallotFindMSB ( global uint)
|
||||
0:29 'result' ( temp 4-component vector of uint)
|
||||
0:31 move second child to first child ( temp float)
|
||||
0:31 direct index ( temp float)
|
||||
0:31 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:31 Constant:
|
||||
0:31 1 (const int)
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 subgroupBroadcast ( global float)
|
||||
0:31 direct index ( temp float)
|
||||
0:31 f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
|
||||
0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 'invocation' ( temp uint)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
0:? 8 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4})
|
||||
|
|
@ -0,0 +1,129 @@
|
|||
glsl.es320.subgroupBasic.comp
|
||||
Shader version: 320
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
local_size = (8, 8, 1)
|
||||
0:? Sequence
|
||||
0:12 Function Definition: main( ( global void)
|
||||
0:12 Function Parameters:
|
||||
0:14 Sequence
|
||||
0:14 move second child to first child ( temp highp int)
|
||||
0:14 indirect index (layout( column_major shared) temp highp int)
|
||||
0:14 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp int)
|
||||
0:14 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:14 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:14 Constant:
|
||||
0:14 1 (const int)
|
||||
0:15 move second child to first child ( temp highp int)
|
||||
0:15 indirect index (layout( column_major shared) temp highp int)
|
||||
0:15 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp int)
|
||||
0:15 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:15 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:16 move second child to first child ( temp highp int)
|
||||
0:16 indirect index (layout( column_major shared) temp highp int)
|
||||
0:16 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp int)
|
||||
0:16 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:16 Constant:
|
||||
0:16 0 (const int)
|
||||
0:16 'gl_NumSubgroups' ( in highp uint unknown built-in variable)
|
||||
0:16 Constant:
|
||||
0:16 1 (const int)
|
||||
0:17 move second child to first child ( temp highp int)
|
||||
0:17 indirect index (layout( column_major shared) temp highp int)
|
||||
0:17 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp int)
|
||||
0:17 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:17 'gl_SubgroupID' ( in highp uint unknown built-in variable)
|
||||
0:17 Test condition and select ( temp highp int)
|
||||
0:17 Condition
|
||||
0:17 subgroupElect ( global bool)
|
||||
0:17 true case
|
||||
0:17 Constant:
|
||||
0:17 1 (const int)
|
||||
0:17 false case
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:18 subgroupBarrier ( global void)
|
||||
0:19 subgroupMemoryBarrier ( global void)
|
||||
0:20 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:21 subgroupMemoryBarrierShared ( global void)
|
||||
0:22 subgroupMemoryBarrierImage ( global void)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
0:? 8 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
||||
|
||||
Shader version: 320
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
local_size = (8, 8, 1)
|
||||
0:? Sequence
|
||||
0:12 Function Definition: main( ( global void)
|
||||
0:12 Function Parameters:
|
||||
0:14 Sequence
|
||||
0:14 move second child to first child ( temp highp int)
|
||||
0:14 indirect index (layout( column_major shared) temp highp int)
|
||||
0:14 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp int)
|
||||
0:14 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:14 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:14 Constant:
|
||||
0:14 1 (const int)
|
||||
0:15 move second child to first child ( temp highp int)
|
||||
0:15 indirect index (layout( column_major shared) temp highp int)
|
||||
0:15 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp int)
|
||||
0:15 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:15 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:16 move second child to first child ( temp highp int)
|
||||
0:16 indirect index (layout( column_major shared) temp highp int)
|
||||
0:16 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp int)
|
||||
0:16 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:16 Constant:
|
||||
0:16 0 (const int)
|
||||
0:16 'gl_NumSubgroups' ( in highp uint unknown built-in variable)
|
||||
0:16 Constant:
|
||||
0:16 1 (const int)
|
||||
0:17 move second child to first child ( temp highp int)
|
||||
0:17 indirect index (layout( column_major shared) temp highp int)
|
||||
0:17 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp int)
|
||||
0:17 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:17 'gl_SubgroupID' ( in highp uint unknown built-in variable)
|
||||
0:17 Test condition and select ( temp highp int)
|
||||
0:17 Condition
|
||||
0:17 subgroupElect ( global bool)
|
||||
0:17 true case
|
||||
0:17 Constant:
|
||||
0:17 1 (const int)
|
||||
0:17 false case
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:18 subgroupBarrier ( global void)
|
||||
0:19 subgroupMemoryBarrier ( global void)
|
||||
0:20 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:21 subgroupMemoryBarrierShared ( global void)
|
||||
0:22 subgroupMemoryBarrierImage ( global void)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
0:? 8 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,604 @@
|
|||
glsl.es320.subgroupClusteredNeg.comp
|
||||
ERROR: 0:21: 'cluster size' : argument must be at least 1
|
||||
ERROR: 0:23: 'cluster size' : argument must be a power of 2
|
||||
ERROR: 0:26: 'cluster size' : argument must be a power of 2
|
||||
ERROR: 0:28: 'cluster size' : argument must be compile-time constant
|
||||
ERROR: 0:31: 'cluster size' : argument must be compile-time constant
|
||||
ERROR: 0:32: 'cluster size' : argument must be compile-time constant
|
||||
ERROR: 6 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 320
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
local_size = (8, 1, 1)
|
||||
ERROR: node is still EOpNull!
|
||||
0:14 Function Definition: main( ( global void)
|
||||
0:14 Function Parameters:
|
||||
0:16 Sequence
|
||||
0:16 Sequence
|
||||
0:16 move second child to first child ( temp highp int)
|
||||
0:16 'a' ( temp highp int)
|
||||
0:16 Constant:
|
||||
0:16 1 (const int)
|
||||
0:19 Sequence
|
||||
0:19 move second child to first child ( temp highp uint)
|
||||
0:19 'invocation' ( temp highp uint)
|
||||
0:19 mod ( temp mediump uint)
|
||||
0:19 add ( temp mediump uint)
|
||||
0:19 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:19 Constant:
|
||||
0:19 4 (const uint)
|
||||
0:21 move second child to first child ( temp highp 2-component vector of float)
|
||||
0:21 vector swizzle ( temp highp 2-component vector of float)
|
||||
0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
|
||||
0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 Sequence
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 Constant:
|
||||
0:21 1 (const int)
|
||||
0:21 subgroupClusteredAdd ( global highp 2-component vector of float)
|
||||
0:21 vector swizzle ( temp highp 2-component vector of float)
|
||||
0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
|
||||
0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:21 Constant:
|
||||
0:21 1 (const int)
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 Sequence
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 Constant:
|
||||
0:21 1 (const int)
|
||||
0:21 Constant:
|
||||
0:21 0 (const uint)
|
||||
0:23 move second child to first child ( temp highp float)
|
||||
0:23 direct index ( temp highp float)
|
||||
0:23 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
|
||||
0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 subgroupClusteredMul ( global highp float)
|
||||
0:23 direct index ( temp highp float)
|
||||
0:23 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
|
||||
0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 3 (const uint)
|
||||
0:25 move second child to first child ( temp highp 2-component vector of int)
|
||||
0:25 vector swizzle ( temp highp 2-component vector of int)
|
||||
0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:25 Constant:
|
||||
0:25 1 (const int)
|
||||
0:25 Constant:
|
||||
0:25 1 (const int)
|
||||
0:25 Sequence
|
||||
0:25 Constant:
|
||||
0:25 0 (const int)
|
||||
0:25 Constant:
|
||||
0:25 1 (const int)
|
||||
0:25 subgroupClusteredMin ( global highp 2-component vector of int)
|
||||
0:25 vector swizzle ( temp highp 2-component vector of int)
|
||||
0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:25 Constant:
|
||||
0:25 1 (const int)
|
||||
0:25 Constant:
|
||||
0:25 1 (const int)
|
||||
0:25 Sequence
|
||||
0:25 Constant:
|
||||
0:25 0 (const int)
|
||||
0:25 Constant:
|
||||
0:25 1 (const int)
|
||||
0:25 Constant:
|
||||
0:25 8 (const uint)
|
||||
0:26 move second child to first child ( temp highp 3-component vector of int)
|
||||
0:26 vector swizzle ( temp highp 3-component vector of int)
|
||||
0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Sequence
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Constant:
|
||||
0:26 2 (const int)
|
||||
0:26 subgroupClusteredMin ( global highp 3-component vector of int)
|
||||
0:26 vector swizzle ( temp highp 3-component vector of int)
|
||||
0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:26 Constant:
|
||||
0:26 2 (const int)
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Sequence
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Constant:
|
||||
0:26 2 (const int)
|
||||
0:26 Constant:
|
||||
0:26 6 (const uint)
|
||||
0:28 move second child to first child ( temp highp int)
|
||||
0:28 direct index ( temp highp int)
|
||||
0:28 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:28 Constant:
|
||||
0:28 3 (const int)
|
||||
0:28 Constant:
|
||||
0:28 1 (const int)
|
||||
0:28 Constant:
|
||||
0:28 0 (const int)
|
||||
0:28 subgroupClusteredOr ( global highp int)
|
||||
0:28 direct index ( temp highp int)
|
||||
0:28 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:28 Constant:
|
||||
0:28 0 (const int)
|
||||
0:28 Constant:
|
||||
0:28 1 (const int)
|
||||
0:28 Constant:
|
||||
0:28 0 (const int)
|
||||
0:28 Convert int to uint ( temp highp uint)
|
||||
0:28 'a' ( temp highp int)
|
||||
0:29 move second child to first child ( temp highp 2-component vector of int)
|
||||
0:29 vector swizzle ( temp highp 2-component vector of int)
|
||||
0:29 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:29 Constant:
|
||||
0:29 3 (const int)
|
||||
0:29 Constant:
|
||||
0:29 1 (const int)
|
||||
0:29 Sequence
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 Constant:
|
||||
0:29 1 (const int)
|
||||
0:29 subgroupClusteredOr ( global highp 2-component vector of int)
|
||||
0:29 vector swizzle ( temp highp 2-component vector of int)
|
||||
0:29 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:29 Constant:
|
||||
0:29 1 (const int)
|
||||
0:29 Constant:
|
||||
0:29 1 (const int)
|
||||
0:29 Sequence
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 Constant:
|
||||
0:29 1 (const int)
|
||||
0:29 Constant:
|
||||
0:29 1 (const uint)
|
||||
0:31 move second child to first child ( temp highp int)
|
||||
0:31 direct index ( temp highp int)
|
||||
0:31 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 Constant:
|
||||
0:31 1 (const int)
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 subgroupClusteredXor ( global highp int)
|
||||
0:31 direct index ( temp highp int)
|
||||
0:31 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 Constant:
|
||||
0:31 1 (const int)
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 Convert int to uint ( temp highp uint)
|
||||
0:31 add ( temp highp int)
|
||||
0:31 Constant:
|
||||
0:31 1 (const int)
|
||||
0:31 'a' ( temp highp int)
|
||||
0:32 move second child to first child ( temp highp 2-component vector of int)
|
||||
0:32 vector swizzle ( temp highp 2-component vector of int)
|
||||
0:32 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:32 Sequence
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:32 subgroupClusteredXor ( global highp 2-component vector of int)
|
||||
0:32 vector swizzle ( temp highp 2-component vector of int)
|
||||
0:32 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:32 Sequence
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:32 Convert int to uint ( temp highp uint)
|
||||
0:32 add ( temp highp int)
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:32 'a' ( temp highp int)
|
||||
0:33 move second child to first child ( temp highp 3-component vector of int)
|
||||
0:33 vector swizzle ( temp highp 3-component vector of int)
|
||||
0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:33 Constant:
|
||||
0:33 0 (const int)
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:33 Sequence
|
||||
0:33 Constant:
|
||||
0:33 0 (const int)
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:33 Constant:
|
||||
0:33 2 (const int)
|
||||
0:33 subgroupClusteredXor ( global highp 3-component vector of int)
|
||||
0:33 vector swizzle ( temp highp 3-component vector of int)
|
||||
0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:33 Constant:
|
||||
0:33 2 (const int)
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:33 Sequence
|
||||
0:33 Constant:
|
||||
0:33 0 (const int)
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:33 Constant:
|
||||
0:33 2 (const int)
|
||||
0:33 Constant:
|
||||
0:33 2 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
||||
|
||||
Shader version: 320
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
local_size = (8, 1, 1)
|
||||
ERROR: node is still EOpNull!
|
||||
0:14 Function Definition: main( ( global void)
|
||||
0:14 Function Parameters:
|
||||
0:16 Sequence
|
||||
0:16 Sequence
|
||||
0:16 move second child to first child ( temp highp int)
|
||||
0:16 'a' ( temp highp int)
|
||||
0:16 Constant:
|
||||
0:16 1 (const int)
|
||||
0:19 Sequence
|
||||
0:19 move second child to first child ( temp highp uint)
|
||||
0:19 'invocation' ( temp highp uint)
|
||||
0:19 mod ( temp mediump uint)
|
||||
0:19 add ( temp mediump uint)
|
||||
0:19 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:19 Constant:
|
||||
0:19 4 (const uint)
|
||||
0:21 move second child to first child ( temp highp 2-component vector of float)
|
||||
0:21 vector swizzle ( temp highp 2-component vector of float)
|
||||
0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
|
||||
0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 Sequence
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 Constant:
|
||||
0:21 1 (const int)
|
||||
0:21 subgroupClusteredAdd ( global highp 2-component vector of float)
|
||||
0:21 vector swizzle ( temp highp 2-component vector of float)
|
||||
0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
|
||||
0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:21 Constant:
|
||||
0:21 1 (const int)
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 Sequence
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 Constant:
|
||||
0:21 1 (const int)
|
||||
0:21 Constant:
|
||||
0:21 0 (const uint)
|
||||
0:23 move second child to first child ( temp highp float)
|
||||
0:23 direct index ( temp highp float)
|
||||
0:23 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
|
||||
0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 subgroupClusteredMul ( global highp float)
|
||||
0:23 direct index ( temp highp float)
|
||||
0:23 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
|
||||
0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 3 (const uint)
|
||||
0:25 move second child to first child ( temp highp 2-component vector of int)
|
||||
0:25 vector swizzle ( temp highp 2-component vector of int)
|
||||
0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:25 Constant:
|
||||
0:25 1 (const int)
|
||||
0:25 Constant:
|
||||
0:25 1 (const int)
|
||||
0:25 Sequence
|
||||
0:25 Constant:
|
||||
0:25 0 (const int)
|
||||
0:25 Constant:
|
||||
0:25 1 (const int)
|
||||
0:25 subgroupClusteredMin ( global highp 2-component vector of int)
|
||||
0:25 vector swizzle ( temp highp 2-component vector of int)
|
||||
0:25 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:25 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:25 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:25 Constant:
|
||||
0:25 1 (const int)
|
||||
0:25 Constant:
|
||||
0:25 1 (const int)
|
||||
0:25 Sequence
|
||||
0:25 Constant:
|
||||
0:25 0 (const int)
|
||||
0:25 Constant:
|
||||
0:25 1 (const int)
|
||||
0:25 Constant:
|
||||
0:25 8 (const uint)
|
||||
0:26 move second child to first child ( temp highp 3-component vector of int)
|
||||
0:26 vector swizzle ( temp highp 3-component vector of int)
|
||||
0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Sequence
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Constant:
|
||||
0:26 2 (const int)
|
||||
0:26 subgroupClusteredMin ( global highp 3-component vector of int)
|
||||
0:26 vector swizzle ( temp highp 3-component vector of int)
|
||||
0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:26 Constant:
|
||||
0:26 2 (const int)
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Sequence
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Constant:
|
||||
0:26 2 (const int)
|
||||
0:26 Constant:
|
||||
0:26 6 (const uint)
|
||||
0:28 move second child to first child ( temp highp int)
|
||||
0:28 direct index ( temp highp int)
|
||||
0:28 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:28 Constant:
|
||||
0:28 3 (const int)
|
||||
0:28 Constant:
|
||||
0:28 1 (const int)
|
||||
0:28 Constant:
|
||||
0:28 0 (const int)
|
||||
0:28 subgroupClusteredOr ( global highp int)
|
||||
0:28 direct index ( temp highp int)
|
||||
0:28 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:28 Constant:
|
||||
0:28 0 (const int)
|
||||
0:28 Constant:
|
||||
0:28 1 (const int)
|
||||
0:28 Constant:
|
||||
0:28 0 (const int)
|
||||
0:28 Convert int to uint ( temp highp uint)
|
||||
0:28 'a' ( temp highp int)
|
||||
0:29 move second child to first child ( temp highp 2-component vector of int)
|
||||
0:29 vector swizzle ( temp highp 2-component vector of int)
|
||||
0:29 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:29 Constant:
|
||||
0:29 3 (const int)
|
||||
0:29 Constant:
|
||||
0:29 1 (const int)
|
||||
0:29 Sequence
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 Constant:
|
||||
0:29 1 (const int)
|
||||
0:29 subgroupClusteredOr ( global highp 2-component vector of int)
|
||||
0:29 vector swizzle ( temp highp 2-component vector of int)
|
||||
0:29 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:29 Constant:
|
||||
0:29 1 (const int)
|
||||
0:29 Constant:
|
||||
0:29 1 (const int)
|
||||
0:29 Sequence
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 Constant:
|
||||
0:29 1 (const int)
|
||||
0:29 Constant:
|
||||
0:29 1 (const uint)
|
||||
0:31 move second child to first child ( temp highp int)
|
||||
0:31 direct index ( temp highp int)
|
||||
0:31 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 Constant:
|
||||
0:31 1 (const int)
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 subgroupClusteredXor ( global highp int)
|
||||
0:31 direct index ( temp highp int)
|
||||
0:31 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 Constant:
|
||||
0:31 1 (const int)
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 Convert int to uint ( temp highp uint)
|
||||
0:31 add ( temp highp int)
|
||||
0:31 Constant:
|
||||
0:31 1 (const int)
|
||||
0:31 'a' ( temp highp int)
|
||||
0:32 move second child to first child ( temp highp 2-component vector of int)
|
||||
0:32 vector swizzle ( temp highp 2-component vector of int)
|
||||
0:32 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:32 Sequence
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:32 subgroupClusteredXor ( global highp 2-component vector of int)
|
||||
0:32 vector swizzle ( temp highp 2-component vector of int)
|
||||
0:32 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:32 Sequence
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:32 Convert int to uint ( temp highp uint)
|
||||
0:32 add ( temp highp int)
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:32 'a' ( temp highp int)
|
||||
0:33 move second child to first child ( temp highp 3-component vector of int)
|
||||
0:33 vector swizzle ( temp highp 3-component vector of int)
|
||||
0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:33 Constant:
|
||||
0:33 0 (const int)
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:33 Sequence
|
||||
0:33 Constant:
|
||||
0:33 0 (const int)
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:33 Constant:
|
||||
0:33 2 (const int)
|
||||
0:33 subgroupClusteredXor ( global highp 3-component vector of int)
|
||||
0:33 vector swizzle ( temp highp 3-component vector of int)
|
||||
0:33 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
0:33 Constant:
|
||||
0:33 2 (const int)
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:33 Sequence
|
||||
0:33 Constant:
|
||||
0:33 0 (const int)
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:33 Constant:
|
||||
0:33 2 (const int)
|
||||
0:33 Constant:
|
||||
0:33 2 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
|
||||
|
14471
3rdparty/glslang/Test/baseResults/glsl.es320.subgroupPartitioned.comp.out
vendored
Normal file
14471
3rdparty/glslang/Test/baseResults/glsl.es320.subgroupPartitioned.comp.out
vendored
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1773
3rdparty/glslang/Test/baseResults/glsl.es320.subgroupShuffleRelative.comp.out
vendored
Normal file
1773
3rdparty/glslang/Test/baseResults/glsl.es320.subgroupShuffleRelative.comp.out
vendored
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,845 @@
|
|||
glsl.es320.subgroupVote.comp
|
||||
Shader version: 320
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
local_size = (8, 8, 1)
|
||||
0:? Sequence
|
||||
0:15 Function Definition: main( ( global void)
|
||||
0:15 Function Parameters:
|
||||
0:17 Sequence
|
||||
0:17 Sequence
|
||||
0:17 move second child to first child ( temp highp uint)
|
||||
0:17 'invocation' ( temp highp uint)
|
||||
0:17 mod ( temp mediump uint)
|
||||
0:17 add ( temp mediump uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 Test condition and select ( temp void)
|
||||
0:19 Condition
|
||||
0:19 subgroupAll ( global bool)
|
||||
0:19 Compare Less Than ( temp bool)
|
||||
0:19 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:19 Constant:
|
||||
0:19 0 (const int)
|
||||
0:19 Constant:
|
||||
0:19 3 (const int)
|
||||
0:19 Constant:
|
||||
0:19 0 (const int)
|
||||
0:19 true case
|
||||
0:21 Sequence
|
||||
0:21 move second child to first child ( temp highp int)
|
||||
0:21 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 Constant:
|
||||
0:21 3 (const int)
|
||||
0:21 Convert bool to int ( temp highp int)
|
||||
0:21 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:21 direct index ( temp highp float)
|
||||
0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
|
||||
0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:22 move second child to first child ( temp highp int)
|
||||
0:22 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Constant:
|
||||
0:22 3 (const int)
|
||||
0:22 Convert bool to int ( temp highp int)
|
||||
0:22 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:22 vector swizzle ( temp highp 2-component vector of float)
|
||||
0:22 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
|
||||
0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:22 Constant:
|
||||
0:22 1 (const int)
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Sequence
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Constant:
|
||||
0:22 1 (const int)
|
||||
0:23 move second child to first child ( temp highp int)
|
||||
0:23 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 3 (const int)
|
||||
0:23 Convert bool to int ( temp highp int)
|
||||
0:23 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:23 vector swizzle ( temp highp 3-component vector of float)
|
||||
0:23 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
|
||||
0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:23 Constant:
|
||||
0:23 2 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Sequence
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 1 (const int)
|
||||
0:23 Constant:
|
||||
0:23 2 (const int)
|
||||
0:24 move second child to first child ( temp highp int)
|
||||
0:24 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 Constant:
|
||||
0:24 3 (const int)
|
||||
0:24 Convert bool to int ( temp highp int)
|
||||
0:24 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:24 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
|
||||
0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:24 Constant:
|
||||
0:24 3 (const int)
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:26 move second child to first child ( temp highp int)
|
||||
0:26 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:26 Constant:
|
||||
0:26 3 (const int)
|
||||
0:26 Convert bool to int ( temp highp int)
|
||||
0:26 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:26 direct index ( temp highp int)
|
||||
0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:27 move second child to first child ( temp highp int)
|
||||
0:27 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:27 Constant:
|
||||
0:27 0 (const int)
|
||||
0:27 Constant:
|
||||
0:27 3 (const int)
|
||||
0:27 Convert bool to int ( temp highp int)
|
||||
0:27 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:27 vector swizzle ( temp highp 2-component vector of int)
|
||||
0:27 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:27 Constant:
|
||||
0:27 1 (const int)
|
||||
0:27 Constant:
|
||||
0:27 1 (const int)
|
||||
0:27 Sequence
|
||||
0:27 Constant:
|
||||
0:27 0 (const int)
|
||||
0:27 Constant:
|
||||
0:27 1 (const int)
|
||||
0:28 move second child to first child ( temp highp int)
|
||||
0:28 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:28 Constant:
|
||||
0:28 0 (const int)
|
||||
0:28 Constant:
|
||||
0:28 3 (const int)
|
||||
0:28 Convert bool to int ( temp highp int)
|
||||
0:28 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:28 vector swizzle ( temp highp 3-component vector of int)
|
||||
0:28 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:28 Constant:
|
||||
0:28 2 (const int)
|
||||
0:28 Constant:
|
||||
0:28 1 (const int)
|
||||
0:28 Sequence
|
||||
0:28 Constant:
|
||||
0:28 0 (const int)
|
||||
0:28 Constant:
|
||||
0:28 1 (const int)
|
||||
0:28 Constant:
|
||||
0:28 2 (const int)
|
||||
0:29 move second child to first child ( temp highp int)
|
||||
0:29 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 Constant:
|
||||
0:29 3 (const int)
|
||||
0:29 Convert bool to int ( temp highp int)
|
||||
0:29 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:29 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:29 Constant:
|
||||
0:29 3 (const int)
|
||||
0:29 Constant:
|
||||
0:29 1 (const int)
|
||||
0:31 move second child to first child ( temp highp int)
|
||||
0:31 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 Constant:
|
||||
0:31 3 (const int)
|
||||
0:31 Convert bool to int ( temp highp int)
|
||||
0:31 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:31 direct index ( temp highp uint)
|
||||
0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
|
||||
0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 Constant:
|
||||
0:31 2 (const int)
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:32 move second child to first child ( temp highp int)
|
||||
0:32 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 Constant:
|
||||
0:32 3 (const int)
|
||||
0:32 Convert bool to int ( temp highp int)
|
||||
0:32 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:32 vector swizzle ( temp highp 2-component vector of uint)
|
||||
0:32 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
|
||||
0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:32 Constant:
|
||||
0:32 2 (const int)
|
||||
0:32 Sequence
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:33 move second child to first child ( temp highp int)
|
||||
0:33 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:33 Constant:
|
||||
0:33 0 (const int)
|
||||
0:33 Constant:
|
||||
0:33 3 (const int)
|
||||
0:33 Convert bool to int ( temp highp int)
|
||||
0:33 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:33 vector swizzle ( temp highp 3-component vector of uint)
|
||||
0:33 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
|
||||
0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:33 Constant:
|
||||
0:33 2 (const int)
|
||||
0:33 Constant:
|
||||
0:33 2 (const int)
|
||||
0:33 Sequence
|
||||
0:33 Constant:
|
||||
0:33 0 (const int)
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:33 Constant:
|
||||
0:33 2 (const int)
|
||||
0:34 move second child to first child ( temp highp int)
|
||||
0:34 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:34 Constant:
|
||||
0:34 0 (const int)
|
||||
0:34 Constant:
|
||||
0:34 3 (const int)
|
||||
0:34 Convert bool to int ( temp highp int)
|
||||
0:34 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:34 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
|
||||
0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:34 Constant:
|
||||
0:34 3 (const int)
|
||||
0:34 Constant:
|
||||
0:34 2 (const int)
|
||||
0:19 false case
|
||||
0:36 Test condition and select ( temp void)
|
||||
0:36 Condition
|
||||
0:36 subgroupAny ( global bool)
|
||||
0:36 Compare Less Than ( temp bool)
|
||||
0:36 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:36 Constant:
|
||||
0:36 1 (const int)
|
||||
0:36 Constant:
|
||||
0:36 3 (const int)
|
||||
0:36 Constant:
|
||||
0:36 0 (const int)
|
||||
0:36 true case
|
||||
0:38 Sequence
|
||||
0:38 move second child to first child ( temp highp int)
|
||||
0:38 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:38 Constant:
|
||||
0:38 1 (const int)
|
||||
0:38 Constant:
|
||||
0:38 3 (const int)
|
||||
0:38 Construct int ( temp highp int)
|
||||
0:38 Convert bool to int ( temp highp int)
|
||||
0:38 subgroupAllEqual ( global bool)
|
||||
0:38 Compare Less Than ( temp bool)
|
||||
0:38 direct index ( temp highp int)
|
||||
0:38 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:38 Constant:
|
||||
0:38 0 (const int)
|
||||
0:38 Constant:
|
||||
0:38 1 (const int)
|
||||
0:38 Constant:
|
||||
0:38 0 (const int)
|
||||
0:38 Constant:
|
||||
0:38 0 (const int)
|
||||
0:39 move second child to first child ( temp highp int)
|
||||
0:39 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:39 Constant:
|
||||
0:39 1 (const int)
|
||||
0:39 Constant:
|
||||
0:39 3 (const int)
|
||||
0:39 Construct int ( temp highp int)
|
||||
0:39 Construct ivec2 ( temp highp 2-component vector of int)
|
||||
0:39 Convert bool to int ( temp highp int)
|
||||
0:39 subgroupAllEqual ( global bool)
|
||||
0:39 Compare Less Than ( global 2-component vector of bool, operation at highp)
|
||||
0:39 vector swizzle ( temp highp 2-component vector of int)
|
||||
0:39 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:39 Constant:
|
||||
0:39 1 (const int)
|
||||
0:39 Constant:
|
||||
0:39 1 (const int)
|
||||
0:39 Sequence
|
||||
0:39 Constant:
|
||||
0:39 0 (const int)
|
||||
0:39 Constant:
|
||||
0:39 1 (const int)
|
||||
0:39 Constant:
|
||||
0:39 0 (const int)
|
||||
0:39 0 (const int)
|
||||
0:40 move second child to first child ( temp highp int)
|
||||
0:40 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:40 Constant:
|
||||
0:40 1 (const int)
|
||||
0:40 Constant:
|
||||
0:40 3 (const int)
|
||||
0:40 Construct int ( temp highp int)
|
||||
0:40 Construct ivec3 ( temp highp 3-component vector of int)
|
||||
0:40 Convert bool to int ( temp highp int)
|
||||
0:40 subgroupAllEqual ( global bool)
|
||||
0:40 Compare Less Than ( global 3-component vector of bool, operation at highp)
|
||||
0:40 vector swizzle ( temp highp 3-component vector of int)
|
||||
0:40 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:40 Constant:
|
||||
0:40 1 (const int)
|
||||
0:40 Constant:
|
||||
0:40 1 (const int)
|
||||
0:40 Sequence
|
||||
0:40 Constant:
|
||||
0:40 0 (const int)
|
||||
0:40 Constant:
|
||||
0:40 1 (const int)
|
||||
0:40 Constant:
|
||||
0:40 2 (const int)
|
||||
0:40 Constant:
|
||||
0:40 0 (const int)
|
||||
0:40 0 (const int)
|
||||
0:40 0 (const int)
|
||||
0:41 move second child to first child ( temp highp int)
|
||||
0:41 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:41 Constant:
|
||||
0:41 1 (const int)
|
||||
0:41 Constant:
|
||||
0:41 3 (const int)
|
||||
0:41 Construct int ( temp highp int)
|
||||
0:41 Construct ivec4 ( temp highp 4-component vector of int)
|
||||
0:41 Convert bool to int ( temp highp int)
|
||||
0:41 subgroupAllEqual ( global bool)
|
||||
0:41 Compare Less Than ( global 4-component vector of bool, operation at highp)
|
||||
0:41 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:41 Constant:
|
||||
0:41 1 (const int)
|
||||
0:41 Constant:
|
||||
0:41 1 (const int)
|
||||
0:41 Constant:
|
||||
0:41 0 (const int)
|
||||
0:41 0 (const int)
|
||||
0:41 0 (const int)
|
||||
0:41 0 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
0:? 8 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
||||
|
||||
Shader version: 320
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
local_size = (8, 8, 1)
|
||||
0:? Sequence
|
||||
0:15 Function Definition: main( ( global void)
|
||||
0:15 Function Parameters:
|
||||
0:17 Sequence
|
||||
0:17 Sequence
|
||||
0:17 move second child to first child ( temp highp uint)
|
||||
0:17 'invocation' ( temp highp uint)
|
||||
0:17 mod ( temp mediump uint)
|
||||
0:17 add ( temp mediump uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 Test condition and select ( temp void)
|
||||
0:19 Condition
|
||||
0:19 subgroupAll ( global bool)
|
||||
0:19 Compare Less Than ( temp bool)
|
||||
0:19 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:19 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:19 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:19 Constant:
|
||||
0:19 0 (const int)
|
||||
0:19 Constant:
|
||||
0:19 3 (const int)
|
||||
0:19 Constant:
|
||||
0:19 0 (const int)
|
||||
0:19 true case
|
||||
0:21 Sequence
|
||||
0:21 move second child to first child ( temp highp int)
|
||||
0:21 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 Constant:
|
||||
0:21 3 (const int)
|
||||
0:21 Convert bool to int ( temp highp int)
|
||||
0:21 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:21 direct index ( temp highp float)
|
||||
0:21 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
|
||||
0:21 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:21 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:22 move second child to first child ( temp highp int)
|
||||
0:22 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Constant:
|
||||
0:22 3 (const int)
|
||||
0:22 Convert bool to int ( temp highp int)
|
||||
0:22 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:22 vector swizzle ( temp highp 2-component vector of float)
|
||||
0:22 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
|
||||
0:22 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:22 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:22 Constant:
|
||||
0:22 1 (const int)
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Sequence
|
||||
0:22 Constant:
|
||||
0:22 0 (const int)
|
||||
0:22 Constant:
|
||||
0:22 1 (const int)
|
||||
0:23 move second child to first child ( temp highp int)
|
||||
0:23 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 3 (const int)
|
||||
0:23 Convert bool to int ( temp highp int)
|
||||
0:23 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:23 vector swizzle ( temp highp 3-component vector of float)
|
||||
0:23 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
|
||||
0:23 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:23 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:23 Constant:
|
||||
0:23 2 (const int)
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Sequence
|
||||
0:23 Constant:
|
||||
0:23 0 (const int)
|
||||
0:23 Constant:
|
||||
0:23 1 (const int)
|
||||
0:23 Constant:
|
||||
0:23 2 (const int)
|
||||
0:24 move second child to first child ( temp highp int)
|
||||
0:24 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 Constant:
|
||||
0:24 3 (const int)
|
||||
0:24 Convert bool to int ( temp highp int)
|
||||
0:24 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:24 f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
|
||||
0:24 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:24 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:24 Constant:
|
||||
0:24 3 (const int)
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:26 move second child to first child ( temp highp int)
|
||||
0:26 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:26 Constant:
|
||||
0:26 3 (const int)
|
||||
0:26 Convert bool to int ( temp highp int)
|
||||
0:26 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:26 direct index ( temp highp int)
|
||||
0:26 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:26 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:26 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:27 move second child to first child ( temp highp int)
|
||||
0:27 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:27 Constant:
|
||||
0:27 0 (const int)
|
||||
0:27 Constant:
|
||||
0:27 3 (const int)
|
||||
0:27 Convert bool to int ( temp highp int)
|
||||
0:27 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:27 vector swizzle ( temp highp 2-component vector of int)
|
||||
0:27 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:27 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:27 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:27 Constant:
|
||||
0:27 1 (const int)
|
||||
0:27 Constant:
|
||||
0:27 1 (const int)
|
||||
0:27 Sequence
|
||||
0:27 Constant:
|
||||
0:27 0 (const int)
|
||||
0:27 Constant:
|
||||
0:27 1 (const int)
|
||||
0:28 move second child to first child ( temp highp int)
|
||||
0:28 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:28 Constant:
|
||||
0:28 0 (const int)
|
||||
0:28 Constant:
|
||||
0:28 3 (const int)
|
||||
0:28 Convert bool to int ( temp highp int)
|
||||
0:28 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:28 vector swizzle ( temp highp 3-component vector of int)
|
||||
0:28 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:28 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:28 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:28 Constant:
|
||||
0:28 2 (const int)
|
||||
0:28 Constant:
|
||||
0:28 1 (const int)
|
||||
0:28 Sequence
|
||||
0:28 Constant:
|
||||
0:28 0 (const int)
|
||||
0:28 Constant:
|
||||
0:28 1 (const int)
|
||||
0:28 Constant:
|
||||
0:28 2 (const int)
|
||||
0:29 move second child to first child ( temp highp int)
|
||||
0:29 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:29 Constant:
|
||||
0:29 3 (const int)
|
||||
0:29 Convert bool to int ( temp highp int)
|
||||
0:29 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:29 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:29 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:29 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:29 Constant:
|
||||
0:29 3 (const int)
|
||||
0:29 Constant:
|
||||
0:29 1 (const int)
|
||||
0:31 move second child to first child ( temp highp int)
|
||||
0:31 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 Constant:
|
||||
0:31 3 (const int)
|
||||
0:31 Convert bool to int ( temp highp int)
|
||||
0:31 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:31 direct index ( temp highp uint)
|
||||
0:31 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
|
||||
0:31 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:31 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:31 Constant:
|
||||
0:31 2 (const int)
|
||||
0:31 Constant:
|
||||
0:31 0 (const int)
|
||||
0:32 move second child to first child ( temp highp int)
|
||||
0:32 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 Constant:
|
||||
0:32 3 (const int)
|
||||
0:32 Convert bool to int ( temp highp int)
|
||||
0:32 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:32 vector swizzle ( temp highp 2-component vector of uint)
|
||||
0:32 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
|
||||
0:32 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:32 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:32 Constant:
|
||||
0:32 2 (const int)
|
||||
0:32 Sequence
|
||||
0:32 Constant:
|
||||
0:32 0 (const int)
|
||||
0:32 Constant:
|
||||
0:32 1 (const int)
|
||||
0:33 move second child to first child ( temp highp int)
|
||||
0:33 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:33 Constant:
|
||||
0:33 0 (const int)
|
||||
0:33 Constant:
|
||||
0:33 3 (const int)
|
||||
0:33 Convert bool to int ( temp highp int)
|
||||
0:33 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:33 vector swizzle ( temp highp 3-component vector of uint)
|
||||
0:33 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
|
||||
0:33 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:33 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:33 Constant:
|
||||
0:33 2 (const int)
|
||||
0:33 Constant:
|
||||
0:33 2 (const int)
|
||||
0:33 Sequence
|
||||
0:33 Constant:
|
||||
0:33 0 (const int)
|
||||
0:33 Constant:
|
||||
0:33 1 (const int)
|
||||
0:33 Constant:
|
||||
0:33 2 (const int)
|
||||
0:34 move second child to first child ( temp highp int)
|
||||
0:34 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:34 Constant:
|
||||
0:34 0 (const int)
|
||||
0:34 Constant:
|
||||
0:34 3 (const int)
|
||||
0:34 Convert bool to int ( temp highp int)
|
||||
0:34 subgroupAllEqual ( global bool, operation at highp)
|
||||
0:34 u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
|
||||
0:34 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:34 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:34 Constant:
|
||||
0:34 3 (const int)
|
||||
0:34 Constant:
|
||||
0:34 2 (const int)
|
||||
0:19 false case
|
||||
0:36 Test condition and select ( temp void)
|
||||
0:36 Condition
|
||||
0:36 subgroupAny ( global bool)
|
||||
0:36 Compare Less Than ( temp bool)
|
||||
0:36 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:36 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:36 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:36 Constant:
|
||||
0:36 1 (const int)
|
||||
0:36 Constant:
|
||||
0:36 3 (const int)
|
||||
0:36 Constant:
|
||||
0:36 0 (const int)
|
||||
0:36 true case
|
||||
0:38 Sequence
|
||||
0:38 move second child to first child ( temp highp int)
|
||||
0:38 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:38 Constant:
|
||||
0:38 1 (const int)
|
||||
0:38 Constant:
|
||||
0:38 3 (const int)
|
||||
0:38 Construct int ( temp highp int)
|
||||
0:38 Convert bool to int ( temp highp int)
|
||||
0:38 subgroupAllEqual ( global bool)
|
||||
0:38 Compare Less Than ( temp bool)
|
||||
0:38 direct index ( temp highp int)
|
||||
0:38 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:38 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:38 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:38 Constant:
|
||||
0:38 0 (const int)
|
||||
0:38 Constant:
|
||||
0:38 1 (const int)
|
||||
0:38 Constant:
|
||||
0:38 0 (const int)
|
||||
0:38 Constant:
|
||||
0:38 0 (const int)
|
||||
0:39 move second child to first child ( temp highp int)
|
||||
0:39 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:39 Constant:
|
||||
0:39 1 (const int)
|
||||
0:39 Constant:
|
||||
0:39 3 (const int)
|
||||
0:39 Construct int ( temp highp int)
|
||||
0:39 Construct ivec2 ( temp highp 2-component vector of int)
|
||||
0:39 Convert bool to int ( temp highp int)
|
||||
0:39 subgroupAllEqual ( global bool)
|
||||
0:39 Compare Less Than ( global 2-component vector of bool, operation at highp)
|
||||
0:39 vector swizzle ( temp highp 2-component vector of int)
|
||||
0:39 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:39 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:39 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:39 Constant:
|
||||
0:39 1 (const int)
|
||||
0:39 Constant:
|
||||
0:39 1 (const int)
|
||||
0:39 Sequence
|
||||
0:39 Constant:
|
||||
0:39 0 (const int)
|
||||
0:39 Constant:
|
||||
0:39 1 (const int)
|
||||
0:39 Constant:
|
||||
0:39 0 (const int)
|
||||
0:39 0 (const int)
|
||||
0:40 move second child to first child ( temp highp int)
|
||||
0:40 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:40 Constant:
|
||||
0:40 1 (const int)
|
||||
0:40 Constant:
|
||||
0:40 3 (const int)
|
||||
0:40 Construct int ( temp highp int)
|
||||
0:40 Construct ivec3 ( temp highp 3-component vector of int)
|
||||
0:40 Convert bool to int ( temp highp int)
|
||||
0:40 subgroupAllEqual ( global bool)
|
||||
0:40 Compare Less Than ( global 3-component vector of bool, operation at highp)
|
||||
0:40 vector swizzle ( temp highp 3-component vector of int)
|
||||
0:40 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:40 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:40 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:40 Constant:
|
||||
0:40 1 (const int)
|
||||
0:40 Constant:
|
||||
0:40 1 (const int)
|
||||
0:40 Sequence
|
||||
0:40 Constant:
|
||||
0:40 0 (const int)
|
||||
0:40 Constant:
|
||||
0:40 1 (const int)
|
||||
0:40 Constant:
|
||||
0:40 2 (const int)
|
||||
0:40 Constant:
|
||||
0:40 0 (const int)
|
||||
0:40 0 (const int)
|
||||
0:40 0 (const int)
|
||||
0:41 move second child to first child ( temp highp int)
|
||||
0:41 r: direct index for structure (layout( column_major shared) buffer highp int)
|
||||
0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:41 Constant:
|
||||
0:41 1 (const int)
|
||||
0:41 Constant:
|
||||
0:41 3 (const int)
|
||||
0:41 Construct int ( temp highp int)
|
||||
0:41 Construct ivec4 ( temp highp 4-component vector of int)
|
||||
0:41 Convert bool to int ( temp highp int)
|
||||
0:41 subgroupAllEqual ( global bool)
|
||||
0:41 Compare Less Than ( global 4-component vector of bool, operation at highp)
|
||||
0:41 i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
|
||||
0:41 direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:41 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
0:41 Constant:
|
||||
0:41 1 (const int)
|
||||
0:41 Constant:
|
||||
0:41 1 (const int)
|
||||
0:41 Constant:
|
||||
0:41 0 (const int)
|
||||
0:41 0 (const int)
|
||||
0:41 0 (const int)
|
||||
0:41 0 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
0:? 8 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4, layout( column_major shared) buffer highp int r})
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
spv.RayCallable.rcall
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 38
|
||||
// Id's are bound by 30
|
||||
|
||||
Capability RayTracingNV
|
||||
Extension "SPV_NV_ray_tracing"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint CallableNV 4 "main" 11 14 19
|
||||
EntryPoint CallableNV 4 "main" 11 14
|
||||
Source GLSL 460
|
||||
SourceExtension "GL_NV_ray_tracing"
|
||||
Name 4 "main"
|
||||
|
@ -15,18 +15,15 @@ spv.RayCallable.rcall
|
|||
Name 11 "gl_LaunchIDNV"
|
||||
Name 13 "size"
|
||||
Name 14 "gl_LaunchSizeNV"
|
||||
Name 17 "curFlags"
|
||||
Name 19 "gl_IncomingRayFlagsNV"
|
||||
Name 24 "dataBlock"
|
||||
MemberName 24(dataBlock) 0 "data1"
|
||||
Name 26 ""
|
||||
Name 37 "data0"
|
||||
Name 16 "dataBlock"
|
||||
MemberName 16(dataBlock) 0 "data1"
|
||||
Name 18 ""
|
||||
Name 29 "data0"
|
||||
Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdNV
|
||||
Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeNV
|
||||
Decorate 19(gl_IncomingRayFlagsNV) BuiltIn IncomingRayFlagsNV
|
||||
Decorate 24(dataBlock) Block
|
||||
Decorate 26 Location 1
|
||||
Decorate 37(data0) Location 0
|
||||
Decorate 16(dataBlock) Block
|
||||
Decorate 18 Location 1
|
||||
Decorate 29(data0) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
|
@ -35,39 +32,29 @@ spv.RayCallable.rcall
|
|||
10: TypePointer Input 7(ivec3)
|
||||
11(gl_LaunchIDNV): 10(ptr) Variable Input
|
||||
14(gl_LaunchSizeNV): 10(ptr) Variable Input
|
||||
16: TypePointer Function 6(int)
|
||||
18: TypePointer Input 6(int)
|
||||
19(gl_IncomingRayFlagsNV): 18(ptr) Variable Input
|
||||
22: 6(int) Constant 1
|
||||
24(dataBlock): TypeStruct 6(int)
|
||||
25: TypePointer IncomingCallableDataNV 24(dataBlock)
|
||||
26: 25(ptr) Variable IncomingCallableDataNV
|
||||
27: TypeInt 32 1
|
||||
28: 27(int) Constant 0
|
||||
29: 6(int) Constant 256
|
||||
30: TypePointer IncomingCallableDataNV 6(int)
|
||||
32: 6(int) Constant 2
|
||||
33: 27(int) Constant 1
|
||||
34: TypeFloat 32
|
||||
35: TypeVector 34(float) 4
|
||||
36: TypePointer CallableDataNV 35(fvec4)
|
||||
37(data0): 36(ptr) Variable CallableDataNV
|
||||
16(dataBlock): TypeStruct 6(int)
|
||||
17: TypePointer IncomingCallableDataNV 16(dataBlock)
|
||||
18: 17(ptr) Variable IncomingCallableDataNV
|
||||
19: TypeInt 32 1
|
||||
20: 19(int) Constant 0
|
||||
21: 6(int) Constant 256
|
||||
22: TypePointer IncomingCallableDataNV 6(int)
|
||||
24: 6(int) Constant 2
|
||||
25: 19(int) Constant 1
|
||||
26: TypeFloat 32
|
||||
27: TypeVector 26(float) 4
|
||||
28: TypePointer CallableDataNV 27(fvec4)
|
||||
29(data0): 28(ptr) Variable CallableDataNV
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(id): 8(ptr) Variable Function
|
||||
13(size): 8(ptr) Variable Function
|
||||
17(curFlags): 16(ptr) Variable Function
|
||||
12: 7(ivec3) Load 11(gl_LaunchIDNV)
|
||||
Store 9(id) 12
|
||||
15: 7(ivec3) Load 14(gl_LaunchSizeNV)
|
||||
Store 13(size) 15
|
||||
20: 6(int) Load 19(gl_IncomingRayFlagsNV)
|
||||
Store 17(curFlags) 20
|
||||
21: 6(int) Load 17(curFlags)
|
||||
23: 6(int) BitwiseAnd 21 22
|
||||
Store 17(curFlags) 23
|
||||
31: 30(ptr) AccessChain 26 28
|
||||
Store 31 29
|
||||
ExecuteCallableNV 32 33
|
||||
23: 22(ptr) AccessChain 18 20
|
||||
Store 23 21
|
||||
ExecuteCallableNV 24 25
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
@ -24,10 +24,12 @@ ERROR: 0:19: 'gl_WorldToObjectNV' : undeclared identifier
|
|||
ERROR: 0:19: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float'
|
||||
ERROR: 0:20: 'gl_HitTNV' : undeclared identifier
|
||||
ERROR: 0:21: 'gl_HitKindNV' : undeclared identifier
|
||||
ERROR: 0:22: 'reportIntersectionNV' : no matching overloaded function found
|
||||
ERROR: 0:23: 'ignoreIntersectionNV' : no matching overloaded function found
|
||||
ERROR: 0:24: 'terminateRayNV' : no matching overloaded function found
|
||||
ERROR: 28 compilation errors. No code generated.
|
||||
ERROR: 0:22: 'gl_IncomingRayFlagsNV' : undeclared identifier
|
||||
ERROR: 0:22: '=' : cannot convert from ' temp float' to ' temp highp uint'
|
||||
ERROR: 0:23: 'reportIntersectionNV' : no matching overloaded function found
|
||||
ERROR: 0:24: 'ignoreIntersectionNV' : no matching overloaded function found
|
||||
ERROR: 0:25: 'terminateRayNV' : no matching overloaded function found
|
||||
ERROR: 30 compilation errors. No code generated.
|
||||
|
||||
|
||||
SPIR-V is not generated for failed compile or link
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
#version 450
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(location = 0) out uvec4 data;
|
||||
void main (void)
|
||||
{
|
||||
data = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
#version 450
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(points) in;
|
||||
layout(points, max_vertices = 1) out;
|
||||
layout(set = 0, binding = 0, std430) buffer Output
|
||||
{
|
||||
uvec4 result[];
|
||||
};
|
||||
|
||||
void main (void)
|
||||
{
|
||||
result[gl_PrimitiveIDIn] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
#version 450
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(vertices=1) out;
|
||||
layout(set = 0, binding = 0, std430) buffer Output
|
||||
{
|
||||
uvec4 result[];
|
||||
};
|
||||
|
||||
void main (void)
|
||||
{
|
||||
result[gl_PrimitiveID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
#version 450
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(isolines) in;
|
||||
layout(set = 0, binding = 0, std430) buffer Output
|
||||
{
|
||||
uvec4 result[];
|
||||
};
|
||||
|
||||
void main (void)
|
||||
{
|
||||
result[gl_PrimitiveID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
#version 450
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(set = 0, binding = 0, std430) buffer Output
|
||||
{
|
||||
uvec4 result[];
|
||||
};
|
||||
|
||||
void main (void)
|
||||
{
|
||||
result[gl_VertexID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
}
|
|
@ -0,0 +1,393 @@
|
|||
#version 450
|
||||
|
||||
#extension GL_KHR_shader_subgroup_arithmetic: enable
|
||||
|
||||
layout (local_size_x = 8) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
dvec4 d4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||
|
||||
data[invocation].f4.x = subgroupAdd(data[0].f4.x);
|
||||
data[invocation].f4.xy = subgroupAdd(data[1].f4.xy);
|
||||
data[invocation].f4.xyz = subgroupAdd(data[2].f4.xyz);
|
||||
data[invocation].f4 = subgroupAdd(data[3].f4);
|
||||
|
||||
data[invocation].i4.x = subgroupAdd(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupAdd(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupAdd(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupAdd(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupAdd(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupAdd(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupAdd(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupAdd(data[3].u4);
|
||||
|
||||
data[invocation].d4.x = subgroupAdd(data[0].d4.x);
|
||||
data[invocation].d4.xy = subgroupAdd(data[1].d4.xy);
|
||||
data[invocation].d4.xyz = subgroupAdd(data[2].d4.xyz);
|
||||
data[invocation].d4 = subgroupAdd(data[3].d4);
|
||||
|
||||
data[invocation].f4.x = subgroupMul(data[0].f4.x);
|
||||
data[invocation].f4.xy = subgroupMul(data[1].f4.xy);
|
||||
data[invocation].f4.xyz = subgroupMul(data[2].f4.xyz);
|
||||
data[invocation].f4 = subgroupMul(data[3].f4);
|
||||
|
||||
data[invocation].i4.x = subgroupMul(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupMul(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupMul(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupMul(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupMul(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupMul(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupMul(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupMul(data[3].u4);
|
||||
|
||||
data[invocation].d4.x = subgroupMul(data[0].d4.x);
|
||||
data[invocation].d4.xy = subgroupMul(data[1].d4.xy);
|
||||
data[invocation].d4.xyz = subgroupMul(data[2].d4.xyz);
|
||||
data[invocation].d4 = subgroupMul(data[3].d4);
|
||||
|
||||
data[invocation].f4.x = subgroupMin(data[0].f4.x);
|
||||
data[invocation].f4.xy = subgroupMin(data[1].f4.xy);
|
||||
data[invocation].f4.xyz = subgroupMin(data[2].f4.xyz);
|
||||
data[invocation].f4 = subgroupMin(data[3].f4);
|
||||
|
||||
data[invocation].i4.x = subgroupMin(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupMin(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupMin(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupMin(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupMin(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupMin(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupMin(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupMin(data[3].u4);
|
||||
|
||||
data[invocation].d4.x = subgroupMin(data[0].d4.x);
|
||||
data[invocation].d4.xy = subgroupMin(data[1].d4.xy);
|
||||
data[invocation].d4.xyz = subgroupMin(data[2].d4.xyz);
|
||||
data[invocation].d4 = subgroupMin(data[3].d4);
|
||||
|
||||
data[invocation].f4.x = subgroupMax(data[0].f4.x);
|
||||
data[invocation].f4.xy = subgroupMax(data[1].f4.xy);
|
||||
data[invocation].f4.xyz = subgroupMax(data[2].f4.xyz);
|
||||
data[invocation].f4 = subgroupMax(data[3].f4);
|
||||
|
||||
data[invocation].i4.x = subgroupMax(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupMax(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupMax(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupMax(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupMax(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupMax(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupMax(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupMax(data[3].u4);
|
||||
|
||||
data[invocation].d4.x = subgroupMax(data[0].d4.x);
|
||||
data[invocation].d4.xy = subgroupMax(data[1].d4.xy);
|
||||
data[invocation].d4.xyz = subgroupMax(data[2].d4.xyz);
|
||||
data[invocation].d4 = subgroupMax(data[3].d4);
|
||||
|
||||
data[invocation].i4.x = subgroupAnd(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupAnd(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupAnd(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupAnd(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupAnd(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupAnd(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupAnd(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupAnd(data[3].u4);
|
||||
|
||||
data[invocation].i4.x = int(subgroupAnd(data[0].i4.x < 0));
|
||||
data[invocation].i4.xy = ivec2(subgroupAnd(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[invocation].i4.xyz = ivec3(subgroupAnd(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[invocation].i4 = ivec4(subgroupAnd(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[invocation].i4.x = subgroupOr(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupOr(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupOr(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupOr(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupOr(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupOr(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupOr(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupOr(data[3].u4);
|
||||
|
||||
data[invocation].i4.x = int(subgroupOr(data[0].i4.x < 0));
|
||||
data[invocation].i4.xy = ivec2(subgroupOr(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[invocation].i4.xyz = ivec3(subgroupOr(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[invocation].i4 = ivec4(subgroupOr(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[invocation].i4.x = subgroupXor(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupXor(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupXor(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupXor(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupXor(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupXor(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupXor(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupXor(data[3].u4);
|
||||
|
||||
data[invocation].i4.x = int(subgroupXor(data[0].i4.x < 0));
|
||||
data[invocation].i4.xy = ivec2(subgroupXor(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[invocation].i4.xyz = ivec3(subgroupXor(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[invocation].i4 = ivec4(subgroupXor(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[invocation].f4.x = subgroupInclusiveAdd(data[0].f4.x);
|
||||
data[invocation].f4.xy = subgroupInclusiveAdd(data[1].f4.xy);
|
||||
data[invocation].f4.xyz = subgroupInclusiveAdd(data[2].f4.xyz);
|
||||
data[invocation].f4 = subgroupInclusiveAdd(data[3].f4);
|
||||
|
||||
data[invocation].i4.x = subgroupInclusiveAdd(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupInclusiveAdd(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupInclusiveAdd(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupInclusiveAdd(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupInclusiveAdd(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupInclusiveAdd(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupInclusiveAdd(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupInclusiveAdd(data[3].u4);
|
||||
|
||||
data[invocation].d4.x = subgroupInclusiveAdd(data[0].d4.x);
|
||||
data[invocation].d4.xy = subgroupInclusiveAdd(data[1].d4.xy);
|
||||
data[invocation].d4.xyz = subgroupInclusiveAdd(data[2].d4.xyz);
|
||||
data[invocation].d4 = subgroupInclusiveAdd(data[3].d4);
|
||||
|
||||
data[invocation].f4.x = subgroupInclusiveMul(data[0].f4.x);
|
||||
data[invocation].f4.xy = subgroupInclusiveMul(data[1].f4.xy);
|
||||
data[invocation].f4.xyz = subgroupInclusiveMul(data[2].f4.xyz);
|
||||
data[invocation].f4 = subgroupInclusiveMul(data[3].f4);
|
||||
|
||||
data[invocation].i4.x = subgroupInclusiveMul(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupInclusiveMul(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupInclusiveMul(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupInclusiveMul(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupInclusiveMul(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupInclusiveMul(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupInclusiveMul(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupInclusiveMul(data[3].u4);
|
||||
|
||||
data[invocation].d4.x = subgroupInclusiveMul(data[0].d4.x);
|
||||
data[invocation].d4.xy = subgroupInclusiveMul(data[1].d4.xy);
|
||||
data[invocation].d4.xyz = subgroupInclusiveMul(data[2].d4.xyz);
|
||||
data[invocation].d4 = subgroupInclusiveMul(data[3].d4);
|
||||
|
||||
data[invocation].f4.x = subgroupInclusiveMin(data[0].f4.x);
|
||||
data[invocation].f4.xy = subgroupInclusiveMin(data[1].f4.xy);
|
||||
data[invocation].f4.xyz = subgroupInclusiveMin(data[2].f4.xyz);
|
||||
data[invocation].f4 = subgroupInclusiveMin(data[3].f4);
|
||||
|
||||
data[invocation].i4.x = subgroupInclusiveMin(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupInclusiveMin(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupInclusiveMin(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupInclusiveMin(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupInclusiveMin(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupInclusiveMin(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupInclusiveMin(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupInclusiveMin(data[3].u4);
|
||||
|
||||
data[invocation].d4.x = subgroupInclusiveMin(data[0].d4.x);
|
||||
data[invocation].d4.xy = subgroupInclusiveMin(data[1].d4.xy);
|
||||
data[invocation].d4.xyz = subgroupInclusiveMin(data[2].d4.xyz);
|
||||
data[invocation].d4 = subgroupInclusiveMin(data[3].d4);
|
||||
|
||||
data[invocation].f4.x = subgroupInclusiveMax(data[0].f4.x);
|
||||
data[invocation].f4.xy = subgroupInclusiveMax(data[1].f4.xy);
|
||||
data[invocation].f4.xyz = subgroupInclusiveMax(data[2].f4.xyz);
|
||||
data[invocation].f4 = subgroupInclusiveMax(data[3].f4);
|
||||
|
||||
data[invocation].i4.x = subgroupInclusiveMax(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupInclusiveMax(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupInclusiveMax(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupInclusiveMax(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupInclusiveMax(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupInclusiveMax(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupInclusiveMax(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupInclusiveMax(data[3].u4);
|
||||
|
||||
data[invocation].d4.x = subgroupInclusiveMax(data[0].d4.x);
|
||||
data[invocation].d4.xy = subgroupInclusiveMax(data[1].d4.xy);
|
||||
data[invocation].d4.xyz = subgroupInclusiveMax(data[2].d4.xyz);
|
||||
data[invocation].d4 = subgroupInclusiveMax(data[3].d4);
|
||||
|
||||
data[invocation].i4.x = subgroupInclusiveAnd(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupInclusiveAnd(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupInclusiveAnd(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupInclusiveAnd(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupInclusiveAnd(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupInclusiveAnd(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupInclusiveAnd(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupInclusiveAnd(data[3].u4);
|
||||
|
||||
data[invocation].i4.x = int(subgroupInclusiveAnd(data[0].i4.x < 0));
|
||||
data[invocation].i4.xy = ivec2(subgroupInclusiveAnd(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[invocation].i4.xyz = ivec3(subgroupInclusiveAnd(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[invocation].i4 = ivec4(subgroupInclusiveAnd(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[invocation].i4.x = subgroupInclusiveOr(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupInclusiveOr(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupInclusiveOr(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupInclusiveOr(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupInclusiveOr(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupInclusiveOr(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupInclusiveOr(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupInclusiveOr(data[3].u4);
|
||||
|
||||
data[invocation].i4.x = int(subgroupInclusiveOr(data[0].i4.x < 0));
|
||||
data[invocation].i4.xy = ivec2(subgroupInclusiveOr(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[invocation].i4.xyz = ivec3(subgroupInclusiveOr(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[invocation].i4 = ivec4(subgroupInclusiveOr(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[invocation].i4.x = subgroupInclusiveXor(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupInclusiveXor(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupInclusiveXor(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupInclusiveXor(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupInclusiveXor(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupInclusiveXor(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupInclusiveXor(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupInclusiveXor(data[3].u4);
|
||||
|
||||
data[invocation].i4.x = int(subgroupInclusiveXor(data[0].i4.x < 0));
|
||||
data[invocation].i4.xy = ivec2(subgroupInclusiveXor(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[invocation].i4.xyz = ivec3(subgroupInclusiveXor(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[invocation].i4 = ivec4(subgroupInclusiveXor(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[invocation].f4.x = subgroupExclusiveAdd(data[0].f4.x);
|
||||
data[invocation].f4.xy = subgroupExclusiveAdd(data[1].f4.xy);
|
||||
data[invocation].f4.xyz = subgroupExclusiveAdd(data[2].f4.xyz);
|
||||
data[invocation].f4 = subgroupExclusiveAdd(data[3].f4);
|
||||
|
||||
data[invocation].i4.x = subgroupExclusiveAdd(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupExclusiveAdd(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupExclusiveAdd(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupExclusiveAdd(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupExclusiveAdd(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupExclusiveAdd(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupExclusiveAdd(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupExclusiveAdd(data[3].u4);
|
||||
|
||||
data[invocation].d4.x = subgroupExclusiveAdd(data[0].d4.x);
|
||||
data[invocation].d4.xy = subgroupExclusiveAdd(data[1].d4.xy);
|
||||
data[invocation].d4.xyz = subgroupExclusiveAdd(data[2].d4.xyz);
|
||||
data[invocation].d4 = subgroupExclusiveAdd(data[3].d4);
|
||||
|
||||
data[invocation].f4.x = subgroupExclusiveMul(data[0].f4.x);
|
||||
data[invocation].f4.xy = subgroupExclusiveMul(data[1].f4.xy);
|
||||
data[invocation].f4.xyz = subgroupExclusiveMul(data[2].f4.xyz);
|
||||
data[invocation].f4 = subgroupExclusiveMul(data[3].f4);
|
||||
|
||||
data[invocation].i4.x = subgroupExclusiveMul(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupExclusiveMul(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupExclusiveMul(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupExclusiveMul(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupExclusiveMul(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupExclusiveMul(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupExclusiveMul(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupExclusiveMul(data[3].u4);
|
||||
|
||||
data[invocation].d4.x = subgroupExclusiveMul(data[0].d4.x);
|
||||
data[invocation].d4.xy = subgroupExclusiveMul(data[1].d4.xy);
|
||||
data[invocation].d4.xyz = subgroupExclusiveMul(data[2].d4.xyz);
|
||||
data[invocation].d4 = subgroupExclusiveMul(data[3].d4);
|
||||
|
||||
data[invocation].f4.x = subgroupExclusiveMin(data[0].f4.x);
|
||||
data[invocation].f4.xy = subgroupExclusiveMin(data[1].f4.xy);
|
||||
data[invocation].f4.xyz = subgroupExclusiveMin(data[2].f4.xyz);
|
||||
data[invocation].f4 = subgroupExclusiveMin(data[3].f4);
|
||||
|
||||
data[invocation].i4.x = subgroupExclusiveMin(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupExclusiveMin(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupExclusiveMin(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupExclusiveMin(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupExclusiveMin(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupExclusiveMin(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupExclusiveMin(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupExclusiveMin(data[3].u4);
|
||||
|
||||
data[invocation].d4.x = subgroupExclusiveMin(data[0].d4.x);
|
||||
data[invocation].d4.xy = subgroupExclusiveMin(data[1].d4.xy);
|
||||
data[invocation].d4.xyz = subgroupExclusiveMin(data[2].d4.xyz);
|
||||
data[invocation].d4 = subgroupExclusiveMin(data[3].d4);
|
||||
|
||||
data[invocation].f4.x = subgroupExclusiveMax(data[0].f4.x);
|
||||
data[invocation].f4.xy = subgroupExclusiveMax(data[1].f4.xy);
|
||||
data[invocation].f4.xyz = subgroupExclusiveMax(data[2].f4.xyz);
|
||||
data[invocation].f4 = subgroupExclusiveMax(data[3].f4);
|
||||
|
||||
data[invocation].i4.x = subgroupExclusiveMax(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupExclusiveMax(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupExclusiveMax(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupExclusiveMax(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupExclusiveMax(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupExclusiveMax(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupExclusiveMax(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupExclusiveMax(data[3].u4);
|
||||
|
||||
data[invocation].d4.x = subgroupExclusiveMax(data[0].d4.x);
|
||||
data[invocation].d4.xy = subgroupExclusiveMax(data[1].d4.xy);
|
||||
data[invocation].d4.xyz = subgroupExclusiveMax(data[2].d4.xyz);
|
||||
data[invocation].d4 = subgroupExclusiveMax(data[3].d4);
|
||||
|
||||
data[invocation].i4.x = subgroupExclusiveAnd(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupExclusiveAnd(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupExclusiveAnd(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupExclusiveAnd(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupExclusiveAnd(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupExclusiveAnd(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupExclusiveAnd(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupExclusiveAnd(data[3].u4);
|
||||
|
||||
data[invocation].i4.x = int(subgroupExclusiveAnd(data[0].i4.x < 0));
|
||||
data[invocation].i4.xy = ivec2(subgroupExclusiveAnd(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[invocation].i4.xyz = ivec3(subgroupExclusiveAnd(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[invocation].i4 = ivec4(subgroupExclusiveAnd(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[invocation].i4.x = subgroupExclusiveOr(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupExclusiveOr(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupExclusiveOr(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupExclusiveOr(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupExclusiveOr(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupExclusiveOr(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupExclusiveOr(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupExclusiveOr(data[3].u4);
|
||||
|
||||
data[invocation].i4.x = int(subgroupExclusiveOr(data[0].i4.x < 0));
|
||||
data[invocation].i4.xy = ivec2(subgroupExclusiveOr(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[invocation].i4.xyz = ivec3(subgroupExclusiveOr(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[invocation].i4 = ivec4(subgroupExclusiveOr(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[invocation].i4.x = subgroupExclusiveXor(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupExclusiveXor(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupExclusiveXor(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupExclusiveXor(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupExclusiveXor(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupExclusiveXor(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupExclusiveXor(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupExclusiveXor(data[3].u4);
|
||||
|
||||
data[invocation].i4.x = int(subgroupExclusiveXor(data[0].i4.x < 0));
|
||||
data[invocation].i4.xy = ivec2(subgroupExclusiveXor(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[invocation].i4.xyz = ivec3(subgroupExclusiveXor(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[invocation].i4 = ivec4(subgroupExclusiveXor(lessThan(data[1].i4, ivec4(0))));
|
||||
}
|
|
@ -0,0 +1,86 @@
|
|||
#version 450
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
|
||||
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
dvec4 d4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||
|
||||
uvec4 relMask = gl_SubgroupEqMask +
|
||||
gl_SubgroupGeMask +
|
||||
gl_SubgroupGtMask +
|
||||
gl_SubgroupLeMask +
|
||||
gl_SubgroupLtMask;
|
||||
|
||||
uvec4 result = subgroupBallot(true);
|
||||
|
||||
data[invocation].u4.x = subgroupBallotBitCount(result);
|
||||
data[invocation].u4.y = subgroupBallotBitExtract(result, 0) ? 1 : 0;
|
||||
data[invocation].u4.z = subgroupBallotInclusiveBitCount(result) + subgroupBallotExclusiveBitCount(result);
|
||||
data[invocation].u4.w = subgroupBallotFindLSB(result) + subgroupBallotFindMSB(result);
|
||||
|
||||
if ((relMask == result) && subgroupInverseBallot(data[0].u4))
|
||||
{
|
||||
data[invocation].f4.x = subgroupBroadcast(data[0].f4.x, 3);
|
||||
data[invocation].f4.xy = subgroupBroadcast(data[1].f4.xy, 3);
|
||||
data[invocation].f4.xyz = subgroupBroadcast(data[2].f4.xyz, 3);
|
||||
data[invocation].f4 = subgroupBroadcast(data[3].f4, 3);
|
||||
|
||||
data[invocation].i4.x = subgroupBroadcast(data[0].i4.x, 2);
|
||||
data[invocation].i4.xy = subgroupBroadcast(data[1].i4.xy, 2);
|
||||
data[invocation].i4.xyz = subgroupBroadcast(data[2].i4.xyz, 2);
|
||||
data[invocation].i4 = subgroupBroadcast(data[3].i4, 2);
|
||||
|
||||
data[invocation].u4.x = subgroupBroadcast(data[0].u4.x, 1);
|
||||
data[invocation].u4.xy = subgroupBroadcast(data[1].u4.xy, 1);
|
||||
data[invocation].u4.xyz = subgroupBroadcast(data[2].u4.xyz, 1);
|
||||
data[invocation].u4 = subgroupBroadcast(data[3].u4, 1);
|
||||
|
||||
data[invocation].d4.x = subgroupBroadcast(data[0].d4.x, 0);
|
||||
data[invocation].d4.xy = subgroupBroadcast(data[1].d4.xy, 0);
|
||||
data[invocation].d4.xyz = subgroupBroadcast(data[2].d4.xyz, 0);
|
||||
data[invocation].d4 = subgroupBroadcast(data[3].d4, 0);
|
||||
|
||||
data[invocation].i4.x = int(subgroupBroadcast(data[0].i4.x < 0, 1));
|
||||
data[invocation].i4.xy = ivec2(subgroupBroadcast(lessThan(data[1].i4.xy, ivec2(0)), 1));
|
||||
data[invocation].i4.xyz = ivec3(subgroupBroadcast(lessThan(data[1].i4.xyz, ivec3(0)), 1));
|
||||
data[invocation].i4 = ivec4(subgroupBroadcast(lessThan(data[1].i4, ivec4(0)), 1));
|
||||
}
|
||||
else
|
||||
{
|
||||
data[invocation].f4.x = subgroupBroadcastFirst(data[0].f4.x);
|
||||
data[invocation].f4.xy = subgroupBroadcastFirst(data[1].f4.xy);
|
||||
data[invocation].f4.xyz = subgroupBroadcastFirst(data[2].f4.xyz);
|
||||
data[invocation].f4 = subgroupBroadcastFirst(data[3].f4);
|
||||
|
||||
data[invocation].i4.x = subgroupBroadcastFirst(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupBroadcastFirst(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupBroadcastFirst(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupBroadcastFirst(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupBroadcastFirst(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupBroadcastFirst(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupBroadcastFirst(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupBroadcastFirst(data[3].u4);
|
||||
|
||||
data[invocation].d4.x = subgroupBroadcastFirst(data[0].d4.x);
|
||||
data[invocation].d4.xy = subgroupBroadcastFirst(data[1].d4.xy);
|
||||
data[invocation].d4.xyz = subgroupBroadcastFirst(data[2].d4.xyz);
|
||||
data[invocation].d4 = subgroupBroadcastFirst(data[3].d4);
|
||||
|
||||
data[invocation].i4.x = int(subgroupBroadcastFirst(data[0].i4.x < 0));
|
||||
data[invocation].i4.xy = ivec2(subgroupBroadcastFirst(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[invocation].i4.xyz = ivec3(subgroupBroadcastFirst(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[invocation].i4 = ivec4(subgroupBroadcastFirst(lessThan(data[1].i4, ivec4(0))));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
#version 450
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
|
||||
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
dvec4 d4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||
|
||||
uvec4 relMask = gl_SubgroupEqMask +
|
||||
gl_SubgroupGeMask +
|
||||
gl_SubgroupGtMask +
|
||||
gl_SubgroupLeMask +
|
||||
gl_SubgroupLtMask;
|
||||
|
||||
uvec4 result = subgroupBallot(true);
|
||||
|
||||
data[invocation].u4.x = subgroupBallotBitCount(result);
|
||||
data[invocation].u4.y = subgroupBallotBitExtract(result, 0) ? 1 : 0;
|
||||
data[invocation].u4.z = subgroupBallotInclusiveBitCount(result) + subgroupBallotExclusiveBitCount(result);
|
||||
data[invocation].u4.w = subgroupBallotFindLSB(result) + subgroupBallotFindMSB(result);
|
||||
|
||||
data[invocation].f4.x = subgroupBroadcast(data[0].f4.x, invocation); // ERROR: not constant
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
#version 450
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
|
||||
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
|
||||
layout(binding = 0) buffer Buffer
|
||||
{
|
||||
int a[];
|
||||
} data;
|
||||
|
||||
void main()
|
||||
{
|
||||
data.a[gl_SubgroupSize] = 1;
|
||||
data.a[gl_SubgroupInvocationID] = 1;
|
||||
data.a[gl_NumSubgroups] = 1;
|
||||
data.a[gl_SubgroupID] = (subgroupElect()) ? 1 : 0;
|
||||
subgroupBarrier();
|
||||
subgroupMemoryBarrier();
|
||||
subgroupMemoryBarrierBuffer();
|
||||
subgroupMemoryBarrierShared();
|
||||
subgroupMemoryBarrierImage();
|
||||
}
|
|
@ -0,0 +1,143 @@
|
|||
#version 450
|
||||
|
||||
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||
|
||||
layout (local_size_x = 8) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
dvec4 d4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||
|
||||
data[invocation].f4.x = subgroupClusteredAdd(data[0].f4.x, 1);
|
||||
data[invocation].f4.xy = subgroupClusteredAdd(data[1].f4.xy, 1);
|
||||
data[invocation].f4.xyz = subgroupClusteredAdd(data[2].f4.xyz, 1);
|
||||
data[invocation].f4 = subgroupClusteredAdd(data[3].f4, 1);
|
||||
|
||||
data[invocation].i4.x = subgroupClusteredAdd(data[0].i4.x, 1);
|
||||
data[invocation].i4.xy = subgroupClusteredAdd(data[1].i4.xy, 1);
|
||||
data[invocation].i4.xyz = subgroupClusteredAdd(data[2].i4.xyz, 1);
|
||||
data[invocation].i4 = subgroupClusteredAdd(data[3].i4, 1);
|
||||
|
||||
data[invocation].u4.x = subgroupClusteredAdd(data[0].u4.x, 1);
|
||||
data[invocation].u4.xy = subgroupClusteredAdd(data[1].u4.xy, 1);
|
||||
data[invocation].u4.xyz = subgroupClusteredAdd(data[2].u4.xyz, 1);
|
||||
data[invocation].u4 = subgroupClusteredAdd(data[3].u4, 1);
|
||||
|
||||
data[invocation].d4.x = subgroupClusteredAdd(data[0].d4.x, 1);
|
||||
data[invocation].d4.xy = subgroupClusteredAdd(data[1].d4.xy, 1);
|
||||
data[invocation].d4.xyz = subgroupClusteredAdd(data[2].d4.xyz, 1);
|
||||
data[invocation].d4 = subgroupClusteredAdd(data[3].d4, 1);
|
||||
|
||||
data[invocation].f4.x = subgroupClusteredMul(data[0].f4.x, 1);
|
||||
data[invocation].f4.xy = subgroupClusteredMul(data[1].f4.xy, 1);
|
||||
data[invocation].f4.xyz = subgroupClusteredMul(data[2].f4.xyz, 1);
|
||||
data[invocation].f4 = subgroupClusteredMul(data[3].f4, 1);
|
||||
|
||||
data[invocation].i4.x = subgroupClusteredMul(data[0].i4.x, 1);
|
||||
data[invocation].i4.xy = subgroupClusteredMul(data[1].i4.xy, 1);
|
||||
data[invocation].i4.xyz = subgroupClusteredMul(data[2].i4.xyz, 1);
|
||||
data[invocation].i4 = subgroupClusteredMul(data[3].i4, 1);
|
||||
|
||||
data[invocation].u4.x = subgroupClusteredMul(data[0].u4.x, 1);
|
||||
data[invocation].u4.xy = subgroupClusteredMul(data[1].u4.xy, 1);
|
||||
data[invocation].u4.xyz = subgroupClusteredMul(data[2].u4.xyz, 1);
|
||||
data[invocation].u4 = subgroupClusteredMul(data[3].u4, 1);
|
||||
|
||||
data[invocation].d4.x = subgroupClusteredMul(data[0].d4.x, 1);
|
||||
data[invocation].d4.xy = subgroupClusteredMul(data[1].d4.xy, 1);
|
||||
data[invocation].d4.xyz = subgroupClusteredMul(data[2].d4.xyz, 1);
|
||||
data[invocation].d4 = subgroupClusteredMul(data[3].d4, 1);
|
||||
|
||||
data[invocation].f4.x = subgroupClusteredMin(data[0].f4.x, 1);
|
||||
data[invocation].f4.xy = subgroupClusteredMin(data[1].f4.xy, 1);
|
||||
data[invocation].f4.xyz = subgroupClusteredMin(data[2].f4.xyz, 1);
|
||||
data[invocation].f4 = subgroupClusteredMin(data[3].f4, 1);
|
||||
|
||||
data[invocation].i4.x = subgroupClusteredMin(data[0].i4.x, 1);
|
||||
data[invocation].i4.xy = subgroupClusteredMin(data[1].i4.xy, 1);
|
||||
data[invocation].i4.xyz = subgroupClusteredMin(data[2].i4.xyz, 1);
|
||||
data[invocation].i4 = subgroupClusteredMin(data[3].i4, 1);
|
||||
|
||||
data[invocation].u4.x = subgroupClusteredMin(data[0].u4.x, 1);
|
||||
data[invocation].u4.xy = subgroupClusteredMin(data[1].u4.xy, 1);
|
||||
data[invocation].u4.xyz = subgroupClusteredMin(data[2].u4.xyz, 1);
|
||||
data[invocation].u4 = subgroupClusteredMin(data[3].u4, 1);
|
||||
|
||||
data[invocation].d4.x = subgroupClusteredMin(data[0].d4.x, 1);
|
||||
data[invocation].d4.xy = subgroupClusteredMin(data[1].d4.xy, 1);
|
||||
data[invocation].d4.xyz = subgroupClusteredMin(data[2].d4.xyz, 1);
|
||||
data[invocation].d4 = subgroupClusteredMin(data[3].d4, 1);
|
||||
|
||||
data[invocation].f4.x = subgroupClusteredMax(data[0].f4.x, 1);
|
||||
data[invocation].f4.xy = subgroupClusteredMax(data[1].f4.xy, 1);
|
||||
data[invocation].f4.xyz = subgroupClusteredMax(data[2].f4.xyz, 1);
|
||||
data[invocation].f4 = subgroupClusteredMax(data[3].f4, 1);
|
||||
|
||||
data[invocation].i4.x = subgroupClusteredMax(data[0].i4.x, 1);
|
||||
data[invocation].i4.xy = subgroupClusteredMax(data[1].i4.xy, 1);
|
||||
data[invocation].i4.xyz = subgroupClusteredMax(data[2].i4.xyz, 1);
|
||||
data[invocation].i4 = subgroupClusteredMax(data[3].i4, 1);
|
||||
|
||||
data[invocation].u4.x = subgroupClusteredMax(data[0].u4.x, 1);
|
||||
data[invocation].u4.xy = subgroupClusteredMax(data[1].u4.xy, 1);
|
||||
data[invocation].u4.xyz = subgroupClusteredMax(data[2].u4.xyz, 1);
|
||||
data[invocation].u4 = subgroupClusteredMax(data[3].u4, 1);
|
||||
|
||||
data[invocation].d4.x = subgroupClusteredMax(data[0].d4.x, 1);
|
||||
data[invocation].d4.xy = subgroupClusteredMax(data[1].d4.xy, 1);
|
||||
data[invocation].d4.xyz = subgroupClusteredMax(data[2].d4.xyz, 1);
|
||||
data[invocation].d4 = subgroupClusteredMax(data[3].d4, 1);
|
||||
|
||||
data[invocation].i4.x = subgroupClusteredAnd(data[0].i4.x, 1);
|
||||
data[invocation].i4.xy = subgroupClusteredAnd(data[1].i4.xy, 1);
|
||||
data[invocation].i4.xyz = subgroupClusteredAnd(data[2].i4.xyz, 1);
|
||||
data[invocation].i4 = subgroupClusteredAnd(data[3].i4, 1);
|
||||
|
||||
data[invocation].u4.x = subgroupClusteredAnd(data[0].u4.x, 1);
|
||||
data[invocation].u4.xy = subgroupClusteredAnd(data[1].u4.xy, 1);
|
||||
data[invocation].u4.xyz = subgroupClusteredAnd(data[2].u4.xyz, 1);
|
||||
data[invocation].u4 = subgroupClusteredAnd(data[3].u4, 1);
|
||||
|
||||
data[invocation].i4.x = int(subgroupClusteredAnd(data[0].i4.x < 0, 1));
|
||||
data[invocation].i4.xy = ivec2(subgroupClusteredAnd(lessThan(data[1].i4.xy, ivec2(0)), 1));
|
||||
data[invocation].i4.xyz = ivec3(subgroupClusteredAnd(lessThan(data[1].i4.xyz, ivec3(0)), 1));
|
||||
data[invocation].i4 = ivec4(subgroupClusteredAnd(lessThan(data[1].i4, ivec4(0)), 1));
|
||||
|
||||
data[invocation].i4.x = subgroupClusteredOr(data[0].i4.x, 1);
|
||||
data[invocation].i4.xy = subgroupClusteredOr(data[1].i4.xy, 1);
|
||||
data[invocation].i4.xyz = subgroupClusteredOr(data[2].i4.xyz, 1);
|
||||
data[invocation].i4 = subgroupClusteredOr(data[3].i4, 1);
|
||||
|
||||
data[invocation].u4.x = subgroupClusteredOr(data[0].u4.x, 1);
|
||||
data[invocation].u4.xy = subgroupClusteredOr(data[1].u4.xy, 1);
|
||||
data[invocation].u4.xyz = subgroupClusteredOr(data[2].u4.xyz, 1);
|
||||
data[invocation].u4 = subgroupClusteredOr(data[3].u4, 1);
|
||||
|
||||
data[invocation].i4.x = int(subgroupClusteredOr(data[0].i4.x < 0, 1));
|
||||
data[invocation].i4.xy = ivec2(subgroupClusteredOr(lessThan(data[1].i4.xy, ivec2(0)), 1));
|
||||
data[invocation].i4.xyz = ivec3(subgroupClusteredOr(lessThan(data[1].i4.xyz, ivec3(0)), 1));
|
||||
data[invocation].i4 = ivec4(subgroupClusteredOr(lessThan(data[1].i4, ivec4(0)), 1));
|
||||
|
||||
data[invocation].i4.x = subgroupClusteredXor(data[0].i4.x, 1);
|
||||
data[invocation].i4.xy = subgroupClusteredXor(data[1].i4.xy, 1);
|
||||
data[invocation].i4.xyz = subgroupClusteredXor(data[2].i4.xyz, 1);
|
||||
data[invocation].i4 = subgroupClusteredXor(data[3].i4, 1);
|
||||
|
||||
data[invocation].u4.x = subgroupClusteredXor(data[0].u4.x, 1);
|
||||
data[invocation].u4.xy = subgroupClusteredXor(data[1].u4.xy, 1);
|
||||
data[invocation].u4.xyz = subgroupClusteredXor(data[2].u4.xyz, 1);
|
||||
data[invocation].u4 = subgroupClusteredXor(data[3].u4, 1);
|
||||
|
||||
data[invocation].i4.x = int(subgroupClusteredXor(data[0].i4.x < 0, 1));
|
||||
data[invocation].i4.xy = ivec2(subgroupClusteredXor(lessThan(data[1].i4.xy, ivec2(0)), 1));
|
||||
data[invocation].i4.xyz = ivec3(subgroupClusteredXor(lessThan(data[1].i4.xyz, ivec3(0)), 1));
|
||||
data[invocation].i4 = ivec4(subgroupClusteredXor(lessThan(data[1].i4, ivec4(0)), 1));
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
#version 450
|
||||
|
||||
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||
|
||||
layout (local_size_x = 8) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
dvec4 d4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
int a = 1;
|
||||
const int aConst = 1;
|
||||
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||
|
||||
data[invocation].f4.xy = subgroupClusteredAdd(data[1].f4.xy, 0); // ERROR, less than 1
|
||||
|
||||
data[invocation].f4.x = subgroupClusteredMul(data[0].f4.x, 3); // ERROR, not a power of 2
|
||||
|
||||
data[invocation].i4.xy = subgroupClusteredMin(data[1].i4.xy, 8);
|
||||
data[invocation].i4.xyz = subgroupClusteredMin(data[2].i4.xyz, 6); // ERROR, not a power of 2
|
||||
|
||||
data[invocation].f4.x = subgroupClusteredMax(data[0].f4.x, -1); // ERROR, less than 1
|
||||
|
||||
data[invocation].i4 = subgroupClusteredAnd(data[3].i4, -3); // ERROR, less than 1
|
||||
|
||||
data[invocation].i4.x = subgroupClusteredOr(data[0].i4.x, a); // ERROR, not constant
|
||||
data[invocation].i4.xy = subgroupClusteredOr(data[1].i4.xy, aConst);
|
||||
|
||||
data[invocation].i4.x = subgroupClusteredXor(data[0].i4.x, 1 + a); // ERROR, not constant
|
||||
data[invocation].i4.xy = subgroupClusteredXor(data[1].i4.xy, aConst + a); // ERROR, not constant
|
||||
data[invocation].i4.xyz = subgroupClusteredXor(data[2].i4.xyz, 1 + aConst);
|
||||
}
|
|
@ -0,0 +1,420 @@
|
|||
#version 450
|
||||
|
||||
#extension GL_NV_shader_subgroup_partitioned: enable
|
||||
|
||||
layout (local_size_x = 8) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
dvec4 d4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||
|
||||
uvec4 ballot = subgroupPartitionNV(invocation);
|
||||
|
||||
data[invocation].u4 = subgroupPartitionNV(data[0].f4.x);
|
||||
data[invocation].u4 = subgroupPartitionNV(data[0].f4.xy);
|
||||
data[invocation].u4 = subgroupPartitionNV(data[0].f4.xyz);
|
||||
data[invocation].u4 = subgroupPartitionNV(data[0].f4);
|
||||
|
||||
data[invocation].u4 = subgroupPartitionNV(data[0].i4.x);
|
||||
data[invocation].u4 = subgroupPartitionNV(data[0].i4.xy);
|
||||
data[invocation].u4 = subgroupPartitionNV(data[0].i4.xyz);
|
||||
data[invocation].u4 = subgroupPartitionNV(data[0].i4);
|
||||
|
||||
data[invocation].u4 = subgroupPartitionNV(data[0].u4.x);
|
||||
data[invocation].u4 = subgroupPartitionNV(data[0].u4.xy);
|
||||
data[invocation].u4 = subgroupPartitionNV(data[0].u4.xyz);
|
||||
data[invocation].u4 = subgroupPartitionNV(data[0].u4);
|
||||
|
||||
data[invocation].u4 = subgroupPartitionNV(data[0].d4.x);
|
||||
data[invocation].u4 = subgroupPartitionNV(data[0].d4.xy);
|
||||
data[invocation].u4 = subgroupPartitionNV(data[0].d4.xyz);
|
||||
data[invocation].u4 = subgroupPartitionNV(data[0].d4);
|
||||
|
||||
data[invocation].u4 = subgroupPartitionNV(bool(data[0].i4.x));
|
||||
data[invocation].u4 = subgroupPartitionNV(bvec2(data[0].i4.xy));
|
||||
data[invocation].u4 = subgroupPartitionNV(bvec3(data[0].i4.xyz));
|
||||
data[invocation].u4 = subgroupPartitionNV(bvec4(data[0].i4));
|
||||
|
||||
data[invocation].f4.x = subgroupPartitionedAddNV(data[0].f4.x, ballot);
|
||||
data[invocation].f4.xy = subgroupPartitionedAddNV(data[1].f4.xy, ballot);
|
||||
data[invocation].f4.xyz = subgroupPartitionedAddNV(data[2].f4.xyz, ballot);
|
||||
data[invocation].f4 = subgroupPartitionedAddNV(data[3].f4, ballot);
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedAddNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedAddNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedAddNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedAddNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedAddNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedAddNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedAddNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedAddNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].d4.x = subgroupPartitionedAddNV(data[0].d4.x, ballot);
|
||||
data[invocation].d4.xy = subgroupPartitionedAddNV(data[1].d4.xy, ballot);
|
||||
data[invocation].d4.xyz = subgroupPartitionedAddNV(data[2].d4.xyz, ballot);
|
||||
data[invocation].d4 = subgroupPartitionedAddNV(data[3].d4, ballot);
|
||||
|
||||
data[invocation].f4.x = subgroupPartitionedMulNV(data[0].f4.x, ballot);
|
||||
data[invocation].f4.xy = subgroupPartitionedMulNV(data[1].f4.xy, ballot);
|
||||
data[invocation].f4.xyz = subgroupPartitionedMulNV(data[2].f4.xyz, ballot);
|
||||
data[invocation].f4 = subgroupPartitionedMulNV(data[3].f4, ballot);
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedMulNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedMulNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedMulNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedMulNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedMulNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedMulNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedMulNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedMulNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].d4.x = subgroupPartitionedMulNV(data[0].d4.x, ballot);
|
||||
data[invocation].d4.xy = subgroupPartitionedMulNV(data[1].d4.xy, ballot);
|
||||
data[invocation].d4.xyz = subgroupPartitionedMulNV(data[2].d4.xyz, ballot);
|
||||
data[invocation].d4 = subgroupPartitionedMulNV(data[3].d4, ballot);
|
||||
|
||||
data[invocation].f4.x = subgroupPartitionedMinNV(data[0].f4.x, ballot);
|
||||
data[invocation].f4.xy = subgroupPartitionedMinNV(data[1].f4.xy, ballot);
|
||||
data[invocation].f4.xyz = subgroupPartitionedMinNV(data[2].f4.xyz, ballot);
|
||||
data[invocation].f4 = subgroupPartitionedMinNV(data[3].f4, ballot);
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedMinNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedMinNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedMinNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedMinNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedMinNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedMinNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedMinNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedMinNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].d4.x = subgroupPartitionedMinNV(data[0].d4.x, ballot);
|
||||
data[invocation].d4.xy = subgroupPartitionedMinNV(data[1].d4.xy, ballot);
|
||||
data[invocation].d4.xyz = subgroupPartitionedMinNV(data[2].d4.xyz, ballot);
|
||||
data[invocation].d4 = subgroupPartitionedMinNV(data[3].d4, ballot);
|
||||
|
||||
data[invocation].f4.x = subgroupPartitionedMaxNV(data[0].f4.x, ballot);
|
||||
data[invocation].f4.xy = subgroupPartitionedMaxNV(data[1].f4.xy, ballot);
|
||||
data[invocation].f4.xyz = subgroupPartitionedMaxNV(data[2].f4.xyz, ballot);
|
||||
data[invocation].f4 = subgroupPartitionedMaxNV(data[3].f4, ballot);
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedMaxNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedMaxNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedMaxNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedMaxNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedMaxNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedMaxNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedMaxNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedMaxNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].d4.x = subgroupPartitionedMaxNV(data[0].d4.x, ballot);
|
||||
data[invocation].d4.xy = subgroupPartitionedMaxNV(data[1].d4.xy, ballot);
|
||||
data[invocation].d4.xyz = subgroupPartitionedMaxNV(data[2].d4.xyz, ballot);
|
||||
data[invocation].d4 = subgroupPartitionedMaxNV(data[3].d4, ballot);
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedAndNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedAndNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedAndNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedAndNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedAndNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedAndNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedAndNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedAndNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].i4.x = int(subgroupPartitionedAndNV(data[0].i4.x < 0, ballot));
|
||||
data[invocation].i4.xy = ivec2(subgroupPartitionedAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
|
||||
data[invocation].i4.xyz = ivec3(subgroupPartitionedAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
|
||||
data[invocation].i4 = ivec4(subgroupPartitionedAndNV(lessThan(data[1].i4, ivec4(0)), ballot));
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedOrNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedOrNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedOrNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedOrNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedOrNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedOrNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedOrNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedOrNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].i4.x = int(subgroupPartitionedOrNV(data[0].i4.x < 0, ballot));
|
||||
data[invocation].i4.xy = ivec2(subgroupPartitionedOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
|
||||
data[invocation].i4.xyz = ivec3(subgroupPartitionedOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
|
||||
data[invocation].i4 = ivec4(subgroupPartitionedOrNV(lessThan(data[1].i4, ivec4(0)), ballot));
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedXorNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedXorNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedXorNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedXorNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedXorNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedXorNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedXorNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedXorNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].i4.x = int(subgroupPartitionedXorNV(data[0].i4.x < 0, ballot));
|
||||
data[invocation].i4.xy = ivec2(subgroupPartitionedXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
|
||||
data[invocation].i4.xyz = ivec3(subgroupPartitionedXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
|
||||
data[invocation].i4 = ivec4(subgroupPartitionedXorNV(lessThan(data[1].i4, ivec4(0)), ballot));
|
||||
|
||||
data[invocation].f4.x = subgroupPartitionedInclusiveAddNV(data[0].f4.x, ballot);
|
||||
data[invocation].f4.xy = subgroupPartitionedInclusiveAddNV(data[1].f4.xy, ballot);
|
||||
data[invocation].f4.xyz = subgroupPartitionedInclusiveAddNV(data[2].f4.xyz, ballot);
|
||||
data[invocation].f4 = subgroupPartitionedInclusiveAddNV(data[3].f4, ballot);
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedInclusiveAddNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedInclusiveAddNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedInclusiveAddNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedInclusiveAddNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedInclusiveAddNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedInclusiveAddNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedInclusiveAddNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedInclusiveAddNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].d4.x = subgroupPartitionedInclusiveAddNV(data[0].d4.x, ballot);
|
||||
data[invocation].d4.xy = subgroupPartitionedInclusiveAddNV(data[1].d4.xy, ballot);
|
||||
data[invocation].d4.xyz = subgroupPartitionedInclusiveAddNV(data[2].d4.xyz, ballot);
|
||||
data[invocation].d4 = subgroupPartitionedInclusiveAddNV(data[3].d4, ballot);
|
||||
|
||||
data[invocation].f4.x = subgroupPartitionedInclusiveMulNV(data[0].f4.x, ballot);
|
||||
data[invocation].f4.xy = subgroupPartitionedInclusiveMulNV(data[1].f4.xy, ballot);
|
||||
data[invocation].f4.xyz = subgroupPartitionedInclusiveMulNV(data[2].f4.xyz, ballot);
|
||||
data[invocation].f4 = subgroupPartitionedInclusiveMulNV(data[3].f4, ballot);
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedInclusiveMulNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedInclusiveMulNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedInclusiveMulNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedInclusiveMulNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedInclusiveMulNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedInclusiveMulNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedInclusiveMulNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedInclusiveMulNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].d4.x = subgroupPartitionedInclusiveMulNV(data[0].d4.x, ballot);
|
||||
data[invocation].d4.xy = subgroupPartitionedInclusiveMulNV(data[1].d4.xy, ballot);
|
||||
data[invocation].d4.xyz = subgroupPartitionedInclusiveMulNV(data[2].d4.xyz, ballot);
|
||||
data[invocation].d4 = subgroupPartitionedInclusiveMulNV(data[3].d4, ballot);
|
||||
|
||||
data[invocation].f4.x = subgroupPartitionedInclusiveMinNV(data[0].f4.x, ballot);
|
||||
data[invocation].f4.xy = subgroupPartitionedInclusiveMinNV(data[1].f4.xy, ballot);
|
||||
data[invocation].f4.xyz = subgroupPartitionedInclusiveMinNV(data[2].f4.xyz, ballot);
|
||||
data[invocation].f4 = subgroupPartitionedInclusiveMinNV(data[3].f4, ballot);
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedInclusiveMinNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedInclusiveMinNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedInclusiveMinNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedInclusiveMinNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedInclusiveMinNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedInclusiveMinNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedInclusiveMinNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedInclusiveMinNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].d4.x = subgroupPartitionedInclusiveMinNV(data[0].d4.x, ballot);
|
||||
data[invocation].d4.xy = subgroupPartitionedInclusiveMinNV(data[1].d4.xy, ballot);
|
||||
data[invocation].d4.xyz = subgroupPartitionedInclusiveMinNV(data[2].d4.xyz, ballot);
|
||||
data[invocation].d4 = subgroupPartitionedInclusiveMinNV(data[3].d4, ballot);
|
||||
|
||||
data[invocation].f4.x = subgroupPartitionedInclusiveMaxNV(data[0].f4.x, ballot);
|
||||
data[invocation].f4.xy = subgroupPartitionedInclusiveMaxNV(data[1].f4.xy, ballot);
|
||||
data[invocation].f4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].f4.xyz, ballot);
|
||||
data[invocation].f4 = subgroupPartitionedInclusiveMaxNV(data[3].f4, ballot);
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedInclusiveMaxNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedInclusiveMaxNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedInclusiveMaxNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedInclusiveMaxNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedInclusiveMaxNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedInclusiveMaxNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].d4.x = subgroupPartitionedInclusiveMaxNV(data[0].d4.x, ballot);
|
||||
data[invocation].d4.xy = subgroupPartitionedInclusiveMaxNV(data[1].d4.xy, ballot);
|
||||
data[invocation].d4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].d4.xyz, ballot);
|
||||
data[invocation].d4 = subgroupPartitionedInclusiveMaxNV(data[3].d4, ballot);
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedInclusiveAndNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedInclusiveAndNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedInclusiveAndNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedInclusiveAndNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedInclusiveAndNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedInclusiveAndNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedInclusiveAndNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedInclusiveAndNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].i4.x = int(subgroupPartitionedInclusiveAndNV(data[0].i4.x < 0, ballot));
|
||||
data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
|
||||
data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
|
||||
data[invocation].i4 = ivec4(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot));
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedInclusiveOrNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedInclusiveOrNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedInclusiveOrNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedInclusiveOrNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedInclusiveOrNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedInclusiveOrNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedInclusiveOrNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedInclusiveOrNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].i4.x = int(subgroupPartitionedInclusiveOrNV(data[0].i4.x < 0, ballot));
|
||||
data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
|
||||
data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
|
||||
data[invocation].i4 = ivec4(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot));
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedInclusiveXorNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedInclusiveXorNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedInclusiveXorNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedInclusiveXorNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedInclusiveXorNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedInclusiveXorNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedInclusiveXorNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedInclusiveXorNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].i4.x = int(subgroupPartitionedInclusiveXorNV(data[0].i4.x < 0, ballot));
|
||||
data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
|
||||
data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
|
||||
data[invocation].i4 = ivec4(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot));
|
||||
|
||||
data[invocation].f4.x = subgroupPartitionedExclusiveAddNV(data[0].f4.x, ballot);
|
||||
data[invocation].f4.xy = subgroupPartitionedExclusiveAddNV(data[1].f4.xy, ballot);
|
||||
data[invocation].f4.xyz = subgroupPartitionedExclusiveAddNV(data[2].f4.xyz, ballot);
|
||||
data[invocation].f4 = subgroupPartitionedExclusiveAddNV(data[3].f4, ballot);
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedExclusiveAddNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedExclusiveAddNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedExclusiveAddNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedExclusiveAddNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedExclusiveAddNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedExclusiveAddNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedExclusiveAddNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedExclusiveAddNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].d4.x = subgroupPartitionedExclusiveAddNV(data[0].d4.x, ballot);
|
||||
data[invocation].d4.xy = subgroupPartitionedExclusiveAddNV(data[1].d4.xy, ballot);
|
||||
data[invocation].d4.xyz = subgroupPartitionedExclusiveAddNV(data[2].d4.xyz, ballot);
|
||||
data[invocation].d4 = subgroupPartitionedExclusiveAddNV(data[3].d4, ballot);
|
||||
|
||||
data[invocation].f4.x = subgroupPartitionedExclusiveMulNV(data[0].f4.x, ballot);
|
||||
data[invocation].f4.xy = subgroupPartitionedExclusiveMulNV(data[1].f4.xy, ballot);
|
||||
data[invocation].f4.xyz = subgroupPartitionedExclusiveMulNV(data[2].f4.xyz, ballot);
|
||||
data[invocation].f4 = subgroupPartitionedExclusiveMulNV(data[3].f4, ballot);
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedExclusiveMulNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedExclusiveMulNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedExclusiveMulNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedExclusiveMulNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedExclusiveMulNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedExclusiveMulNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedExclusiveMulNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedExclusiveMulNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].d4.x = subgroupPartitionedExclusiveMulNV(data[0].d4.x, ballot);
|
||||
data[invocation].d4.xy = subgroupPartitionedExclusiveMulNV(data[1].d4.xy, ballot);
|
||||
data[invocation].d4.xyz = subgroupPartitionedExclusiveMulNV(data[2].d4.xyz, ballot);
|
||||
data[invocation].d4 = subgroupPartitionedExclusiveMulNV(data[3].d4, ballot);
|
||||
|
||||
data[invocation].f4.x = subgroupPartitionedExclusiveMinNV(data[0].f4.x, ballot);
|
||||
data[invocation].f4.xy = subgroupPartitionedExclusiveMinNV(data[1].f4.xy, ballot);
|
||||
data[invocation].f4.xyz = subgroupPartitionedExclusiveMinNV(data[2].f4.xyz, ballot);
|
||||
data[invocation].f4 = subgroupPartitionedExclusiveMinNV(data[3].f4, ballot);
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedExclusiveMinNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedExclusiveMinNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedExclusiveMinNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedExclusiveMinNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedExclusiveMinNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedExclusiveMinNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedExclusiveMinNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedExclusiveMinNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].d4.x = subgroupPartitionedExclusiveMinNV(data[0].d4.x, ballot);
|
||||
data[invocation].d4.xy = subgroupPartitionedExclusiveMinNV(data[1].d4.xy, ballot);
|
||||
data[invocation].d4.xyz = subgroupPartitionedExclusiveMinNV(data[2].d4.xyz, ballot);
|
||||
data[invocation].d4 = subgroupPartitionedExclusiveMinNV(data[3].d4, ballot);
|
||||
|
||||
data[invocation].f4.x = subgroupPartitionedExclusiveMaxNV(data[0].f4.x, ballot);
|
||||
data[invocation].f4.xy = subgroupPartitionedExclusiveMaxNV(data[1].f4.xy, ballot);
|
||||
data[invocation].f4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].f4.xyz, ballot);
|
||||
data[invocation].f4 = subgroupPartitionedExclusiveMaxNV(data[3].f4, ballot);
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedExclusiveMaxNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedExclusiveMaxNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedExclusiveMaxNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedExclusiveMaxNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedExclusiveMaxNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedExclusiveMaxNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].d4.x = subgroupPartitionedExclusiveMaxNV(data[0].d4.x, ballot);
|
||||
data[invocation].d4.xy = subgroupPartitionedExclusiveMaxNV(data[1].d4.xy, ballot);
|
||||
data[invocation].d4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].d4.xyz, ballot);
|
||||
data[invocation].d4 = subgroupPartitionedExclusiveMaxNV(data[3].d4, ballot);
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedExclusiveAndNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedExclusiveAndNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedExclusiveAndNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedExclusiveAndNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedExclusiveAndNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedExclusiveAndNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedExclusiveAndNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedExclusiveAndNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].i4.x = int(subgroupPartitionedExclusiveAndNV(data[0].i4.x < 0, ballot));
|
||||
data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
|
||||
data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
|
||||
data[invocation].i4 = ivec4(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot));
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedExclusiveOrNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedExclusiveOrNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedExclusiveOrNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedExclusiveOrNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedExclusiveOrNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedExclusiveOrNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedExclusiveOrNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedExclusiveOrNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].i4.x = int(subgroupPartitionedExclusiveOrNV(data[0].i4.x < 0, ballot));
|
||||
data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
|
||||
data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
|
||||
data[invocation].i4 = ivec4(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot));
|
||||
|
||||
data[invocation].i4.x = subgroupPartitionedExclusiveXorNV(data[0].i4.x, ballot);
|
||||
data[invocation].i4.xy = subgroupPartitionedExclusiveXorNV(data[1].i4.xy, ballot);
|
||||
data[invocation].i4.xyz = subgroupPartitionedExclusiveXorNV(data[2].i4.xyz, ballot);
|
||||
data[invocation].i4 = subgroupPartitionedExclusiveXorNV(data[3].i4, ballot);
|
||||
|
||||
data[invocation].u4.x = subgroupPartitionedExclusiveXorNV(data[0].u4.x, ballot);
|
||||
data[invocation].u4.xy = subgroupPartitionedExclusiveXorNV(data[1].u4.xy, ballot);
|
||||
data[invocation].u4.xyz = subgroupPartitionedExclusiveXorNV(data[2].u4.xyz, ballot);
|
||||
data[invocation].u4 = subgroupPartitionedExclusiveXorNV(data[3].u4, ballot);
|
||||
|
||||
data[invocation].i4.x = int(subgroupPartitionedExclusiveXorNV(data[0].i4.x < 0, ballot));
|
||||
data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
|
||||
data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
|
||||
data[invocation].i4 = ivec4(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot));
|
||||
}
|
|
@ -0,0 +1,118 @@
|
|||
#version 450
|
||||
|
||||
#extension GL_KHR_shader_subgroup_quad: enable
|
||||
|
||||
layout (local_size_x = 8) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
dvec4 d4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||
|
||||
data[invocation].f4.x = subgroupQuadBroadcast(data[0].f4.x, 1);
|
||||
data[invocation].f4.xy = subgroupQuadBroadcast(data[1].f4.xy, 1);
|
||||
data[invocation].f4.xyz = subgroupQuadBroadcast(data[2].f4.xyz, 1);
|
||||
data[invocation].f4 = subgroupQuadBroadcast(data[3].f4, 1);
|
||||
|
||||
data[invocation].i4.x = subgroupQuadBroadcast(data[0].i4.x, 1);
|
||||
data[invocation].i4.xy = subgroupQuadBroadcast(data[1].i4.xy, 1);
|
||||
data[invocation].i4.xyz = subgroupQuadBroadcast(data[2].i4.xyz, 1);
|
||||
data[invocation].i4 = subgroupQuadBroadcast(data[3].i4, 1);
|
||||
|
||||
data[invocation].u4.x = subgroupQuadBroadcast(data[0].u4.x, 1);
|
||||
data[invocation].u4.xy = subgroupQuadBroadcast(data[1].u4.xy, 1);
|
||||
data[invocation].u4.xyz = subgroupQuadBroadcast(data[2].u4.xyz, 1);
|
||||
data[invocation].u4 = subgroupQuadBroadcast(data[3].u4, 1);
|
||||
|
||||
data[invocation].d4.x = subgroupQuadBroadcast(data[0].d4.x, 1);
|
||||
data[invocation].d4.xy = subgroupQuadBroadcast(data[1].d4.xy, 1);
|
||||
data[invocation].d4.xyz = subgroupQuadBroadcast(data[2].d4.xyz, 1);
|
||||
data[invocation].d4 = subgroupQuadBroadcast(data[3].d4, 1);
|
||||
|
||||
data[invocation].i4.x = int(subgroupQuadBroadcast(data[0].i4.x < 0, 1));
|
||||
data[invocation].i4.xy = ivec2(subgroupQuadBroadcast(lessThan(data[1].i4.xy, ivec2(0)), 1));
|
||||
data[invocation].i4.xyz = ivec3(subgroupQuadBroadcast(lessThan(data[1].i4.xyz, ivec3(0)), 1));
|
||||
data[invocation].i4 = ivec4(subgroupQuadBroadcast(lessThan(data[1].i4, ivec4(0)), 1));
|
||||
|
||||
data[invocation].f4.x = subgroupQuadSwapHorizontal(data[0].f4.x);
|
||||
data[invocation].f4.xy = subgroupQuadSwapHorizontal(data[1].f4.xy);
|
||||
data[invocation].f4.xyz = subgroupQuadSwapHorizontal(data[2].f4.xyz);
|
||||
data[invocation].f4 = subgroupQuadSwapHorizontal(data[3].f4);
|
||||
|
||||
data[invocation].i4.x = subgroupQuadSwapHorizontal(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupQuadSwapHorizontal(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupQuadSwapHorizontal(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupQuadSwapHorizontal(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupQuadSwapHorizontal(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupQuadSwapHorizontal(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupQuadSwapHorizontal(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupQuadSwapHorizontal(data[3].u4);
|
||||
|
||||
data[invocation].d4.x = subgroupQuadSwapHorizontal(data[0].d4.x);
|
||||
data[invocation].d4.xy = subgroupQuadSwapHorizontal(data[1].d4.xy);
|
||||
data[invocation].d4.xyz = subgroupQuadSwapHorizontal(data[2].d4.xyz);
|
||||
data[invocation].d4 = subgroupQuadSwapHorizontal(data[3].d4);
|
||||
|
||||
data[invocation].i4.x = int(subgroupQuadSwapHorizontal(data[0].i4.x < 0));
|
||||
data[invocation].i4.xy = ivec2(subgroupQuadSwapHorizontal(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[invocation].i4.xyz = ivec3(subgroupQuadSwapHorizontal(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[invocation].i4 = ivec4(subgroupQuadSwapHorizontal(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[invocation].f4.x = subgroupQuadSwapVertical(data[0].f4.x);
|
||||
data[invocation].f4.xy = subgroupQuadSwapVertical(data[1].f4.xy);
|
||||
data[invocation].f4.xyz = subgroupQuadSwapVertical(data[2].f4.xyz);
|
||||
data[invocation].f4 = subgroupQuadSwapVertical(data[3].f4);
|
||||
|
||||
data[invocation].i4.x = subgroupQuadSwapVertical(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupQuadSwapVertical(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupQuadSwapVertical(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupQuadSwapVertical(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupQuadSwapVertical(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupQuadSwapVertical(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupQuadSwapVertical(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupQuadSwapVertical(data[3].u4);
|
||||
|
||||
data[invocation].d4.x = subgroupQuadSwapVertical(data[0].d4.x);
|
||||
data[invocation].d4.xy = subgroupQuadSwapVertical(data[1].d4.xy);
|
||||
data[invocation].d4.xyz = subgroupQuadSwapVertical(data[2].d4.xyz);
|
||||
data[invocation].d4 = subgroupQuadSwapVertical(data[3].d4);
|
||||
|
||||
data[invocation].i4.x = int(subgroupQuadSwapVertical(data[0].i4.x < 0));
|
||||
data[invocation].i4.xy = ivec2(subgroupQuadSwapVertical(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[invocation].i4.xyz = ivec3(subgroupQuadSwapVertical(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[invocation].i4 = ivec4(subgroupQuadSwapVertical(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[invocation].f4.x = subgroupQuadSwapDiagonal(data[0].f4.x);
|
||||
data[invocation].f4.xy = subgroupQuadSwapDiagonal(data[1].f4.xy);
|
||||
data[invocation].f4.xyz = subgroupQuadSwapDiagonal(data[2].f4.xyz);
|
||||
data[invocation].f4 = subgroupQuadSwapDiagonal(data[3].f4);
|
||||
|
||||
data[invocation].i4.x = subgroupQuadSwapDiagonal(data[0].i4.x);
|
||||
data[invocation].i4.xy = subgroupQuadSwapDiagonal(data[1].i4.xy);
|
||||
data[invocation].i4.xyz = subgroupQuadSwapDiagonal(data[2].i4.xyz);
|
||||
data[invocation].i4 = subgroupQuadSwapDiagonal(data[3].i4);
|
||||
|
||||
data[invocation].u4.x = subgroupQuadSwapDiagonal(data[0].u4.x);
|
||||
data[invocation].u4.xy = subgroupQuadSwapDiagonal(data[1].u4.xy);
|
||||
data[invocation].u4.xyz = subgroupQuadSwapDiagonal(data[2].u4.xyz);
|
||||
data[invocation].u4 = subgroupQuadSwapDiagonal(data[3].u4);
|
||||
|
||||
data[invocation].d4.x = subgroupQuadSwapDiagonal(data[0].d4.x);
|
||||
data[invocation].d4.xy = subgroupQuadSwapDiagonal(data[1].d4.xy);
|
||||
data[invocation].d4.xyz = subgroupQuadSwapDiagonal(data[2].d4.xyz);
|
||||
data[invocation].d4 = subgroupQuadSwapDiagonal(data[3].d4);
|
||||
|
||||
data[invocation].i4.x = int(subgroupQuadSwapDiagonal(data[0].i4.x < 0));
|
||||
data[invocation].i4.xy = ivec2(subgroupQuadSwapDiagonal(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[invocation].i4.xyz = ivec3(subgroupQuadSwapDiagonal(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[invocation].i4 = ivec4(subgroupQuadSwapDiagonal(lessThan(data[1].i4, ivec4(0))));
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
#version 450
|
||||
|
||||
#extension GL_KHR_shader_subgroup_shuffle: enable
|
||||
|
||||
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
dvec4 d4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||
|
||||
data[invocation].f4.x = subgroupShuffle(data[0].f4.x, invocation);
|
||||
data[invocation].f4.xy = subgroupShuffle(data[1].f4.xy, invocation);
|
||||
data[invocation].f4.xyz = subgroupShuffle(data[2].f4.xyz, invocation);
|
||||
data[invocation].f4 = subgroupShuffle(data[3].f4, invocation);
|
||||
|
||||
data[invocation].i4.x = subgroupShuffle(data[0].i4.x, invocation);
|
||||
data[invocation].i4.xy = subgroupShuffle(data[1].i4.xy, invocation);
|
||||
data[invocation].i4.xyz = subgroupShuffle(data[2].i4.xyz, invocation);
|
||||
data[invocation].i4 = subgroupShuffle(data[3].i4, invocation);
|
||||
|
||||
data[invocation].u4.x = subgroupShuffle(data[0].u4.x, invocation);
|
||||
data[invocation].u4.xy = subgroupShuffle(data[1].u4.xy, invocation);
|
||||
data[invocation].u4.xyz = subgroupShuffle(data[2].u4.xyz, invocation);
|
||||
data[invocation].u4 = subgroupShuffle(data[3].u4, invocation);
|
||||
|
||||
data[invocation].d4.x = subgroupShuffle(data[0].d4.x, invocation);
|
||||
data[invocation].d4.xy = subgroupShuffle(data[1].d4.xy, invocation);
|
||||
data[invocation].d4.xyz = subgroupShuffle(data[2].d4.xyz, invocation);
|
||||
data[invocation].d4 = subgroupShuffle(data[3].d4, invocation);
|
||||
|
||||
data[invocation].i4.x = int(subgroupShuffle(data[0].i4.x < 0, invocation));
|
||||
data[invocation].i4.xy = ivec2(subgroupShuffle(lessThan(data[1].i4.xy, ivec2(0)), invocation));
|
||||
data[invocation].i4.xyz = ivec3(subgroupShuffle(lessThan(data[1].i4.xyz, ivec3(0)), invocation));
|
||||
data[invocation].i4 = ivec4(subgroupShuffle(lessThan(data[1].i4, ivec4(0)), invocation));
|
||||
|
||||
data[invocation].f4.x = subgroupShuffleXor(data[0].f4.x, invocation);
|
||||
data[invocation].f4.xy = subgroupShuffleXor(data[1].f4.xy, invocation);
|
||||
data[invocation].f4.xyz = subgroupShuffleXor(data[2].f4.xyz, invocation);
|
||||
data[invocation].f4 = subgroupShuffleXor(data[3].f4, invocation);
|
||||
|
||||
data[invocation].i4.x = subgroupShuffleXor(data[0].i4.x, invocation);
|
||||
data[invocation].i4.xy = subgroupShuffleXor(data[1].i4.xy, invocation);
|
||||
data[invocation].i4.xyz = subgroupShuffleXor(data[2].i4.xyz, invocation);
|
||||
data[invocation].i4 = subgroupShuffleXor(data[3].i4, invocation);
|
||||
|
||||
data[invocation].u4.x = subgroupShuffleXor(data[0].u4.x, invocation);
|
||||
data[invocation].u4.xy = subgroupShuffleXor(data[1].u4.xy, invocation);
|
||||
data[invocation].u4.xyz = subgroupShuffleXor(data[2].u4.xyz, invocation);
|
||||
data[invocation].u4 = subgroupShuffleXor(data[3].u4, invocation);
|
||||
|
||||
data[invocation].d4.x = subgroupShuffleXor(data[0].d4.x, invocation);
|
||||
data[invocation].d4.xy = subgroupShuffleXor(data[1].d4.xy, invocation);
|
||||
data[invocation].d4.xyz = subgroupShuffleXor(data[2].d4.xyz, invocation);
|
||||
data[invocation].d4 = subgroupShuffleXor(data[3].d4, invocation);
|
||||
|
||||
data[invocation].i4.x = int(subgroupShuffleXor(data[0].i4.x < 0, invocation));
|
||||
data[invocation].i4.xy = ivec2(subgroupShuffleXor(lessThan(data[1].i4.xy, ivec2(0)), invocation));
|
||||
data[invocation].i4.xyz = ivec3(subgroupShuffleXor(lessThan(data[1].i4.xyz, ivec3(0)), invocation));
|
||||
data[invocation].i4 = ivec4(subgroupShuffleXor(lessThan(data[1].i4, ivec4(0)), invocation));
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
#version 450
|
||||
|
||||
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
|
||||
|
||||
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
dvec4 d4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||
|
||||
data[invocation].f4.x = subgroupShuffleUp(data[0].f4.x, invocation);
|
||||
data[invocation].f4.xy = subgroupShuffleUp(data[1].f4.xy, invocation);
|
||||
data[invocation].f4.xyz = subgroupShuffleUp(data[2].f4.xyz, invocation);
|
||||
data[invocation].f4 = subgroupShuffleUp(data[3].f4, invocation);
|
||||
|
||||
data[invocation].i4.x = subgroupShuffleUp(data[0].i4.x, invocation);
|
||||
data[invocation].i4.xy = subgroupShuffleUp(data[1].i4.xy, invocation);
|
||||
data[invocation].i4.xyz = subgroupShuffleUp(data[2].i4.xyz, invocation);
|
||||
data[invocation].i4 = subgroupShuffleUp(data[3].i4, invocation);
|
||||
|
||||
data[invocation].u4.x = subgroupShuffleUp(data[0].u4.x, invocation);
|
||||
data[invocation].u4.xy = subgroupShuffleUp(data[1].u4.xy, invocation);
|
||||
data[invocation].u4.xyz = subgroupShuffleUp(data[2].u4.xyz, invocation);
|
||||
data[invocation].u4 = subgroupShuffleUp(data[3].u4, invocation);
|
||||
|
||||
data[invocation].d4.x = subgroupShuffleUp(data[0].d4.x, invocation);
|
||||
data[invocation].d4.xy = subgroupShuffleUp(data[1].d4.xy, invocation);
|
||||
data[invocation].d4.xyz = subgroupShuffleUp(data[2].d4.xyz, invocation);
|
||||
data[invocation].d4 = subgroupShuffleUp(data[3].d4, invocation);
|
||||
|
||||
data[invocation].i4.x = int(subgroupShuffleUp(data[0].i4.x < 0, invocation));
|
||||
data[invocation].i4.xy = ivec2(subgroupShuffleUp(lessThan(data[1].i4.xy, ivec2(0)), invocation));
|
||||
data[invocation].i4.xyz = ivec3(subgroupShuffleUp(lessThan(data[1].i4.xyz, ivec3(0)), invocation));
|
||||
data[invocation].i4 = ivec4(subgroupShuffleUp(lessThan(data[1].i4, ivec4(0)), invocation));
|
||||
|
||||
data[invocation].f4.x = subgroupShuffleDown(data[0].f4.x, invocation);
|
||||
data[invocation].f4.xy = subgroupShuffleDown(data[1].f4.xy, invocation);
|
||||
data[invocation].f4.xyz = subgroupShuffleDown(data[2].f4.xyz, invocation);
|
||||
data[invocation].f4 = subgroupShuffleDown(data[3].f4, invocation);
|
||||
|
||||
data[invocation].i4.x = subgroupShuffleDown(data[0].i4.x, invocation);
|
||||
data[invocation].i4.xy = subgroupShuffleDown(data[1].i4.xy, invocation);
|
||||
data[invocation].i4.xyz = subgroupShuffleDown(data[2].i4.xyz, invocation);
|
||||
data[invocation].i4 = subgroupShuffleDown(data[3].i4, invocation);
|
||||
|
||||
data[invocation].u4.x = subgroupShuffleDown(data[0].u4.x, invocation);
|
||||
data[invocation].u4.xy = subgroupShuffleDown(data[1].u4.xy, invocation);
|
||||
data[invocation].u4.xyz = subgroupShuffleDown(data[2].u4.xyz, invocation);
|
||||
data[invocation].u4 = subgroupShuffleDown(data[3].u4, invocation);
|
||||
|
||||
data[invocation].d4.x = subgroupShuffleDown(data[0].d4.x, invocation);
|
||||
data[invocation].d4.xy = subgroupShuffleDown(data[1].d4.xy, invocation);
|
||||
data[invocation].d4.xyz = subgroupShuffleDown(data[2].d4.xyz, invocation);
|
||||
data[invocation].d4 = subgroupShuffleDown(data[3].d4, invocation);
|
||||
|
||||
data[invocation].i4.x = int(subgroupShuffleDown(data[0].i4.x < 0, invocation));
|
||||
data[invocation].i4.xy = ivec2(subgroupShuffleDown(lessThan(data[1].i4.xy, ivec2(0)), invocation));
|
||||
data[invocation].i4.xyz = ivec3(subgroupShuffleDown(lessThan(data[1].i4.xyz, ivec3(0)), invocation));
|
||||
data[invocation].i4 = ivec4(subgroupShuffleDown(lessThan(data[1].i4, ivec4(0)), invocation));
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
#version 450
|
||||
|
||||
#extension GL_KHR_shader_subgroup_vote: enable
|
||||
|
||||
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
dvec4 d4;
|
||||
int r;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||
|
||||
if (subgroupAll(data[invocation].r < 0))
|
||||
{
|
||||
data[invocation].r = int(subgroupAllEqual(data[0].f4.x));
|
||||
data[invocation].r = int(subgroupAllEqual(data[1].f4.xy));
|
||||
data[invocation].r = int(subgroupAllEqual(data[2].f4.xyz));
|
||||
data[invocation].r = int(subgroupAllEqual(data[3].f4));
|
||||
|
||||
data[invocation].r = int(subgroupAllEqual(data[0].i4.x));
|
||||
data[invocation].r = int(subgroupAllEqual(data[1].i4.xy));
|
||||
data[invocation].r = int(subgroupAllEqual(data[2].i4.xyz));
|
||||
data[invocation].r = int(subgroupAllEqual(data[3].i4));
|
||||
|
||||
data[invocation].r = int(subgroupAllEqual(data[0].u4.x));
|
||||
data[invocation].r = int(subgroupAllEqual(data[1].u4.xy));
|
||||
data[invocation].r = int(subgroupAllEqual(data[2].u4.xyz));
|
||||
data[invocation].r = int(subgroupAllEqual(data[3].u4));
|
||||
}
|
||||
else if (subgroupAny(data[invocation].r < 0))
|
||||
{
|
||||
data[invocation].r = int(subgroupAllEqual(data[0].d4.x));
|
||||
data[invocation].r = int(subgroupAllEqual(data[1].d4.xy));
|
||||
data[invocation].r = int(subgroupAllEqual(data[2].d4.xyz));
|
||||
data[invocation].r = int(subgroupAllEqual(data[3].d4));
|
||||
|
||||
data[invocation].r = int(int(subgroupAllEqual(data[0].i4.x < 0)));
|
||||
data[invocation].r = int(ivec2(subgroupAllEqual(lessThan(data[1].i4.xy, ivec2(0)))));
|
||||
data[invocation].r = int(ivec3(subgroupAllEqual(lessThan(data[1].i4.xyz, ivec3(0)))));
|
||||
data[invocation].r = int(ivec4(subgroupAllEqual(lessThan(data[1].i4, ivec4(0)))));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
#version 320 es
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(location = 0) out uvec4 data;
|
||||
void main (void)
|
||||
{
|
||||
data = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
#version 320 es
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(points) in;
|
||||
layout(points, max_vertices = 1) out;
|
||||
layout(set = 0, binding = 0, std430) buffer Output
|
||||
{
|
||||
uvec4 result[];
|
||||
};
|
||||
|
||||
void main (void)
|
||||
{
|
||||
result[gl_PrimitiveIDIn] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
#version 320 es
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(vertices=1) out;
|
||||
layout(set = 0, binding = 0, std430) buffer Output
|
||||
{
|
||||
uvec4 result[];
|
||||
};
|
||||
|
||||
void main (void)
|
||||
{
|
||||
result[gl_PrimitiveID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
#version 320 es
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(isolines) in;
|
||||
layout(set = 0, binding = 0, std430) buffer Output
|
||||
{
|
||||
uvec4 result[];
|
||||
};
|
||||
|
||||
void main (void)
|
||||
{
|
||||
result[gl_PrimitiveID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
#version 320 es
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(set = 0, binding = 0, std430) buffer Output
|
||||
{
|
||||
uvec4 result[];
|
||||
};
|
||||
|
||||
void main (void)
|
||||
{
|
||||
result[gl_VertexID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
}
|
|
@ -0,0 +1,332 @@
|
|||
#version 320 es
|
||||
|
||||
#extension GL_KHR_shader_subgroup_arithmetic: enable
|
||||
|
||||
layout (local_size_x = 8) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u;
|
||||
|
||||
data[0].f4.x = subgroupAdd(data[0].f4.x);
|
||||
data[0].f4.xy = subgroupAdd(data[1].f4.xy);
|
||||
data[0].f4.xyz = subgroupAdd(data[2].f4.xyz);
|
||||
data[0].f4 = subgroupAdd(data[3].f4);
|
||||
|
||||
data[1].i4.x = subgroupAdd(data[0].i4.x);
|
||||
data[1].i4.xy = subgroupAdd(data[1].i4.xy);
|
||||
data[1].i4.xyz = subgroupAdd(data[2].i4.xyz);
|
||||
data[1].i4 = subgroupAdd(data[3].i4);
|
||||
|
||||
data[2].u4.x = subgroupAdd(data[0].u4.x);
|
||||
data[2].u4.xy = subgroupAdd(data[1].u4.xy);
|
||||
data[2].u4.xyz = subgroupAdd(data[2].u4.xyz);
|
||||
data[2].u4 = subgroupAdd(data[3].u4);
|
||||
|
||||
data[3].f4.x = subgroupMul(data[0].f4.x);
|
||||
data[3].f4.xy = subgroupMul(data[1].f4.xy);
|
||||
data[3].f4.xyz = subgroupMul(data[2].f4.xyz);
|
||||
data[3].f4 = subgroupMul(data[3].f4);
|
||||
|
||||
data[0].i4.x = subgroupMul(data[0].i4.x);
|
||||
data[0].i4.xy = subgroupMul(data[1].i4.xy);
|
||||
data[0].i4.xyz = subgroupMul(data[2].i4.xyz);
|
||||
data[0].i4 = subgroupMul(data[3].i4);
|
||||
|
||||
data[1].u4.x = subgroupMul(data[0].u4.x);
|
||||
data[1].u4.xy = subgroupMul(data[1].u4.xy);
|
||||
data[1].u4.xyz = subgroupMul(data[2].u4.xyz);
|
||||
data[1].u4 = subgroupMul(data[3].u4);
|
||||
|
||||
data[2].f4.x = subgroupMin(data[0].f4.x);
|
||||
data[2].f4.xy = subgroupMin(data[1].f4.xy);
|
||||
data[2].f4.xyz = subgroupMin(data[2].f4.xyz);
|
||||
data[2].f4 = subgroupMin(data[3].f4);
|
||||
|
||||
data[3].i4.x = subgroupMin(data[0].i4.x);
|
||||
data[3].i4.xy = subgroupMin(data[1].i4.xy);
|
||||
data[3].i4.xyz = subgroupMin(data[2].i4.xyz);
|
||||
data[3].i4 = subgroupMin(data[3].i4);
|
||||
|
||||
data[0].u4.x = subgroupMin(data[0].u4.x);
|
||||
data[0].u4.xy = subgroupMin(data[1].u4.xy);
|
||||
data[0].u4.xyz = subgroupMin(data[2].u4.xyz);
|
||||
data[0].u4 = subgroupMin(data[3].u4);
|
||||
|
||||
data[1].f4.x = subgroupMax(data[0].f4.x);
|
||||
data[1].f4.xy = subgroupMax(data[1].f4.xy);
|
||||
data[1].f4.xyz = subgroupMax(data[2].f4.xyz);
|
||||
data[1].f4 = subgroupMax(data[3].f4);
|
||||
|
||||
data[2].i4.x = subgroupMax(data[0].i4.x);
|
||||
data[2].i4.xy = subgroupMax(data[1].i4.xy);
|
||||
data[2].i4.xyz = subgroupMax(data[2].i4.xyz);
|
||||
data[2].i4 = subgroupMax(data[3].i4);
|
||||
|
||||
data[3].u4.x = subgroupMax(data[0].u4.x);
|
||||
data[3].u4.xy = subgroupMax(data[1].u4.xy);
|
||||
data[3].u4.xyz = subgroupMax(data[2].u4.xyz);
|
||||
data[3].u4 = subgroupMax(data[3].u4);
|
||||
|
||||
data[0].i4.x = subgroupAnd(data[0].i4.x);
|
||||
data[0].i4.xy = subgroupAnd(data[1].i4.xy);
|
||||
data[0].i4.xyz = subgroupAnd(data[2].i4.xyz);
|
||||
data[0].i4 = subgroupAnd(data[3].i4);
|
||||
|
||||
data[1].u4.x = subgroupAnd(data[0].u4.x);
|
||||
data[1].u4.xy = subgroupAnd(data[1].u4.xy);
|
||||
data[1].u4.xyz = subgroupAnd(data[2].u4.xyz);
|
||||
data[1].u4 = subgroupAnd(data[3].u4);
|
||||
|
||||
data[2].i4.x = int(subgroupAnd(data[0].i4.x < 0));
|
||||
data[2].i4.xy = ivec2(subgroupAnd(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[2].i4.xyz = ivec3(subgroupAnd(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[2].i4 = ivec4(subgroupAnd(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[3].i4.x = subgroupOr(data[0].i4.x);
|
||||
data[3].i4.xy = subgroupOr(data[1].i4.xy);
|
||||
data[3].i4.xyz = subgroupOr(data[2].i4.xyz);
|
||||
data[3].i4 = subgroupOr(data[3].i4);
|
||||
|
||||
data[0].u4.x = subgroupOr(data[0].u4.x);
|
||||
data[0].u4.xy = subgroupOr(data[1].u4.xy);
|
||||
data[0].u4.xyz = subgroupOr(data[2].u4.xyz);
|
||||
data[0].u4 = subgroupOr(data[3].u4);
|
||||
|
||||
data[1].i4.x = int(subgroupOr(data[0].i4.x < 0));
|
||||
data[1].i4.xy = ivec2(subgroupOr(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[1].i4.xyz = ivec3(subgroupOr(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[1].i4 = ivec4(subgroupOr(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[2].i4.x = subgroupXor(data[0].i4.x);
|
||||
data[2].i4.xy = subgroupXor(data[1].i4.xy);
|
||||
data[2].i4.xyz = subgroupXor(data[2].i4.xyz);
|
||||
data[2].i4 = subgroupXor(data[3].i4);
|
||||
|
||||
data[3].u4.x = subgroupXor(data[0].u4.x);
|
||||
data[3].u4.xy = subgroupXor(data[1].u4.xy);
|
||||
data[3].u4.xyz = subgroupXor(data[2].u4.xyz);
|
||||
data[3].u4 = subgroupXor(data[3].u4);
|
||||
|
||||
data[0].i4.x = int(subgroupXor(data[0].i4.x < 0));
|
||||
data[0].i4.xy = ivec2(subgroupXor(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[0].i4.xyz = ivec3(subgroupXor(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[0].i4 = ivec4(subgroupXor(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[1].f4.x = subgroupInclusiveAdd(data[0].f4.x);
|
||||
data[1].f4.xy = subgroupInclusiveAdd(data[1].f4.xy);
|
||||
data[1].f4.xyz = subgroupInclusiveAdd(data[2].f4.xyz);
|
||||
data[1].f4 = subgroupInclusiveAdd(data[3].f4);
|
||||
|
||||
data[2].i4.x = subgroupInclusiveAdd(data[0].i4.x);
|
||||
data[2].i4.xy = subgroupInclusiveAdd(data[1].i4.xy);
|
||||
data[2].i4.xyz = subgroupInclusiveAdd(data[2].i4.xyz);
|
||||
data[2].i4 = subgroupInclusiveAdd(data[3].i4);
|
||||
|
||||
data[3].u4.x = subgroupInclusiveAdd(data[0].u4.x);
|
||||
data[3].u4.xy = subgroupInclusiveAdd(data[1].u4.xy);
|
||||
data[3].u4.xyz = subgroupInclusiveAdd(data[2].u4.xyz);
|
||||
data[3].u4 = subgroupInclusiveAdd(data[3].u4);
|
||||
|
||||
data[0].f4.x = subgroupInclusiveMul(data[0].f4.x);
|
||||
data[0].f4.xy = subgroupInclusiveMul(data[1].f4.xy);
|
||||
data[0].f4.xyz = subgroupInclusiveMul(data[2].f4.xyz);
|
||||
data[0].f4 = subgroupInclusiveMul(data[3].f4);
|
||||
|
||||
data[1].i4.x = subgroupInclusiveMul(data[0].i4.x);
|
||||
data[1].i4.xy = subgroupInclusiveMul(data[1].i4.xy);
|
||||
data[1].i4.xyz = subgroupInclusiveMul(data[2].i4.xyz);
|
||||
data[1].i4 = subgroupInclusiveMul(data[3].i4);
|
||||
|
||||
data[2].u4.x = subgroupInclusiveMul(data[0].u4.x);
|
||||
data[2].u4.xy = subgroupInclusiveMul(data[1].u4.xy);
|
||||
data[2].u4.xyz = subgroupInclusiveMul(data[2].u4.xyz);
|
||||
data[2].u4 = subgroupInclusiveMul(data[3].u4);
|
||||
|
||||
data[3].f4.x = subgroupInclusiveMin(data[0].f4.x);
|
||||
data[3].f4.xy = subgroupInclusiveMin(data[1].f4.xy);
|
||||
data[3].f4.xyz = subgroupInclusiveMin(data[2].f4.xyz);
|
||||
data[3].f4 = subgroupInclusiveMin(data[3].f4);
|
||||
|
||||
data[0].i4.x = subgroupInclusiveMin(data[0].i4.x);
|
||||
data[0].i4.xy = subgroupInclusiveMin(data[1].i4.xy);
|
||||
data[0].i4.xyz = subgroupInclusiveMin(data[2].i4.xyz);
|
||||
data[0].i4 = subgroupInclusiveMin(data[3].i4);
|
||||
|
||||
data[1].u4.x = subgroupInclusiveMin(data[0].u4.x);
|
||||
data[1].u4.xy = subgroupInclusiveMin(data[1].u4.xy);
|
||||
data[1].u4.xyz = subgroupInclusiveMin(data[2].u4.xyz);
|
||||
data[1].u4 = subgroupInclusiveMin(data[3].u4);
|
||||
|
||||
data[2].f4.x = subgroupInclusiveMax(data[0].f4.x);
|
||||
data[2].f4.xy = subgroupInclusiveMax(data[1].f4.xy);
|
||||
data[2].f4.xyz = subgroupInclusiveMax(data[2].f4.xyz);
|
||||
data[2].f4 = subgroupInclusiveMax(data[3].f4);
|
||||
|
||||
data[3].i4.x = subgroupInclusiveMax(data[0].i4.x);
|
||||
data[3].i4.xy = subgroupInclusiveMax(data[1].i4.xy);
|
||||
data[3].i4.xyz = subgroupInclusiveMax(data[2].i4.xyz);
|
||||
data[3].i4 = subgroupInclusiveMax(data[3].i4);
|
||||
|
||||
data[0].u4.x = subgroupInclusiveMax(data[0].u4.x);
|
||||
data[0].u4.xy = subgroupInclusiveMax(data[1].u4.xy);
|
||||
data[0].u4.xyz = subgroupInclusiveMax(data[2].u4.xyz);
|
||||
data[0].u4 = subgroupInclusiveMax(data[3].u4);
|
||||
|
||||
data[1].i4.x = subgroupInclusiveAnd(data[0].i4.x);
|
||||
data[1].i4.xy = subgroupInclusiveAnd(data[1].i4.xy);
|
||||
data[1].i4.xyz = subgroupInclusiveAnd(data[2].i4.xyz);
|
||||
data[1].i4 = subgroupInclusiveAnd(data[3].i4);
|
||||
|
||||
data[2].u4.x = subgroupInclusiveAnd(data[0].u4.x);
|
||||
data[2].u4.xy = subgroupInclusiveAnd(data[1].u4.xy);
|
||||
data[2].u4.xyz = subgroupInclusiveAnd(data[2].u4.xyz);
|
||||
data[2].u4 = subgroupInclusiveAnd(data[3].u4);
|
||||
|
||||
data[3].i4.x = int(subgroupInclusiveAnd(data[0].i4.x < 0));
|
||||
data[3].i4.xy = ivec2(subgroupInclusiveAnd(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[3].i4.xyz = ivec3(subgroupInclusiveAnd(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[3].i4 = ivec4(subgroupInclusiveAnd(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[0].i4.x = subgroupInclusiveOr(data[0].i4.x);
|
||||
data[0].i4.xy = subgroupInclusiveOr(data[1].i4.xy);
|
||||
data[0].i4.xyz = subgroupInclusiveOr(data[2].i4.xyz);
|
||||
data[0].i4 = subgroupInclusiveOr(data[3].i4);
|
||||
|
||||
data[1].u4.x = subgroupInclusiveOr(data[0].u4.x);
|
||||
data[1].u4.xy = subgroupInclusiveOr(data[1].u4.xy);
|
||||
data[1].u4.xyz = subgroupInclusiveOr(data[2].u4.xyz);
|
||||
data[1].u4 = subgroupInclusiveOr(data[3].u4);
|
||||
|
||||
data[2].i4.x = int(subgroupInclusiveOr(data[0].i4.x < 0));
|
||||
data[2].i4.xy = ivec2(subgroupInclusiveOr(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[2].i4.xyz = ivec3(subgroupInclusiveOr(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[2].i4 = ivec4(subgroupInclusiveOr(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[3].i4.x = subgroupInclusiveXor(data[0].i4.x);
|
||||
data[3].i4.xy = subgroupInclusiveXor(data[1].i4.xy);
|
||||
data[3].i4.xyz = subgroupInclusiveXor(data[2].i4.xyz);
|
||||
data[3].i4 = subgroupInclusiveXor(data[3].i4);
|
||||
|
||||
data[0].u4.x = subgroupInclusiveXor(data[0].u4.x);
|
||||
data[0].u4.xy = subgroupInclusiveXor(data[1].u4.xy);
|
||||
data[0].u4.xyz = subgroupInclusiveXor(data[2].u4.xyz);
|
||||
data[0].u4 = subgroupInclusiveXor(data[3].u4);
|
||||
|
||||
data[1].i4.x = int(subgroupInclusiveXor(data[0].i4.x < 0));
|
||||
data[1].i4.xy = ivec2(subgroupInclusiveXor(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[1].i4.xyz = ivec3(subgroupInclusiveXor(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[1].i4 = ivec4(subgroupInclusiveXor(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[2].f4.x = subgroupExclusiveAdd(data[0].f4.x);
|
||||
data[2].f4.xy = subgroupExclusiveAdd(data[1].f4.xy);
|
||||
data[2].f4.xyz = subgroupExclusiveAdd(data[2].f4.xyz);
|
||||
data[2].f4 = subgroupExclusiveAdd(data[3].f4);
|
||||
|
||||
data[3].i4.x = subgroupExclusiveAdd(data[0].i4.x);
|
||||
data[3].i4.xy = subgroupExclusiveAdd(data[1].i4.xy);
|
||||
data[3].i4.xyz = subgroupExclusiveAdd(data[2].i4.xyz);
|
||||
data[3].i4 = subgroupExclusiveAdd(data[3].i4);
|
||||
|
||||
data[0].u4.x = subgroupExclusiveAdd(data[0].u4.x);
|
||||
data[0].u4.xy = subgroupExclusiveAdd(data[1].u4.xy);
|
||||
data[0].u4.xyz = subgroupExclusiveAdd(data[2].u4.xyz);
|
||||
data[0].u4 = subgroupExclusiveAdd(data[3].u4);
|
||||
|
||||
data[1].f4.x = subgroupExclusiveMul(data[0].f4.x);
|
||||
data[1].f4.xy = subgroupExclusiveMul(data[1].f4.xy);
|
||||
data[1].f4.xyz = subgroupExclusiveMul(data[2].f4.xyz);
|
||||
data[1].f4 = subgroupExclusiveMul(data[3].f4);
|
||||
|
||||
data[2].i4.x = subgroupExclusiveMul(data[0].i4.x);
|
||||
data[2].i4.xy = subgroupExclusiveMul(data[1].i4.xy);
|
||||
data[2].i4.xyz = subgroupExclusiveMul(data[2].i4.xyz);
|
||||
data[2].i4 = subgroupExclusiveMul(data[3].i4);
|
||||
|
||||
data[3].u4.x = subgroupExclusiveMul(data[0].u4.x);
|
||||
data[3].u4.xy = subgroupExclusiveMul(data[1].u4.xy);
|
||||
data[3].u4.xyz = subgroupExclusiveMul(data[2].u4.xyz);
|
||||
data[3].u4 = subgroupExclusiveMul(data[3].u4);
|
||||
|
||||
data[0].f4.x = subgroupExclusiveMin(data[0].f4.x);
|
||||
data[0].f4.xy = subgroupExclusiveMin(data[1].f4.xy);
|
||||
data[0].f4.xyz = subgroupExclusiveMin(data[2].f4.xyz);
|
||||
data[0].f4 = subgroupExclusiveMin(data[3].f4);
|
||||
|
||||
data[1].i4.x = subgroupExclusiveMin(data[0].i4.x);
|
||||
data[1].i4.xy = subgroupExclusiveMin(data[1].i4.xy);
|
||||
data[1].i4.xyz = subgroupExclusiveMin(data[2].i4.xyz);
|
||||
data[1].i4 = subgroupExclusiveMin(data[3].i4);
|
||||
|
||||
data[2].u4.x = subgroupExclusiveMin(data[0].u4.x);
|
||||
data[2].u4.xy = subgroupExclusiveMin(data[1].u4.xy);
|
||||
data[2].u4.xyz = subgroupExclusiveMin(data[2].u4.xyz);
|
||||
data[2].u4 = subgroupExclusiveMin(data[3].u4);
|
||||
|
||||
data[3].f4.x = subgroupExclusiveMax(data[0].f4.x);
|
||||
data[3].f4.xy = subgroupExclusiveMax(data[1].f4.xy);
|
||||
data[3].f4.xyz = subgroupExclusiveMax(data[2].f4.xyz);
|
||||
data[3].f4 = subgroupExclusiveMax(data[3].f4);
|
||||
|
||||
data[0].i4.x = subgroupExclusiveMax(data[0].i4.x);
|
||||
data[0].i4.xy = subgroupExclusiveMax(data[1].i4.xy);
|
||||
data[0].i4.xyz = subgroupExclusiveMax(data[2].i4.xyz);
|
||||
data[0].i4 = subgroupExclusiveMax(data[3].i4);
|
||||
|
||||
data[1].u4.x = subgroupExclusiveMax(data[0].u4.x);
|
||||
data[1].u4.xy = subgroupExclusiveMax(data[1].u4.xy);
|
||||
data[1].u4.xyz = subgroupExclusiveMax(data[2].u4.xyz);
|
||||
data[1].u4 = subgroupExclusiveMax(data[3].u4);
|
||||
|
||||
data[2].i4.x = subgroupExclusiveAnd(data[0].i4.x);
|
||||
data[2].i4.xy = subgroupExclusiveAnd(data[1].i4.xy);
|
||||
data[2].i4.xyz = subgroupExclusiveAnd(data[2].i4.xyz);
|
||||
data[2].i4 = subgroupExclusiveAnd(data[3].i4);
|
||||
|
||||
data[3].u4.x = subgroupExclusiveAnd(data[0].u4.x);
|
||||
data[3].u4.xy = subgroupExclusiveAnd(data[1].u4.xy);
|
||||
data[3].u4.xyz = subgroupExclusiveAnd(data[2].u4.xyz);
|
||||
data[3].u4 = subgroupExclusiveAnd(data[3].u4);
|
||||
|
||||
data[0].i4.x = int(subgroupExclusiveAnd(data[0].i4.x < 0));
|
||||
data[0].i4.xy = ivec2(subgroupExclusiveAnd(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[0].i4.xyz = ivec3(subgroupExclusiveAnd(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[0].i4 = ivec4(subgroupExclusiveAnd(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[1].i4.x = subgroupExclusiveOr(data[0].i4.x);
|
||||
data[1].i4.xy = subgroupExclusiveOr(data[1].i4.xy);
|
||||
data[1].i4.xyz = subgroupExclusiveOr(data[2].i4.xyz);
|
||||
data[1].i4 = subgroupExclusiveOr(data[3].i4);
|
||||
|
||||
data[2].u4.x = subgroupExclusiveOr(data[0].u4.x);
|
||||
data[2].u4.xy = subgroupExclusiveOr(data[1].u4.xy);
|
||||
data[2].u4.xyz = subgroupExclusiveOr(data[2].u4.xyz);
|
||||
data[2].u4 = subgroupExclusiveOr(data[3].u4);
|
||||
|
||||
data[3].i4.x = int(subgroupExclusiveOr(data[0].i4.x < 0));
|
||||
data[3].i4.xy = ivec2(subgroupExclusiveOr(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[3].i4.xyz = ivec3(subgroupExclusiveOr(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[3].i4 = ivec4(subgroupExclusiveOr(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[0].i4.x = subgroupExclusiveXor(data[0].i4.x);
|
||||
data[0].i4.xy = subgroupExclusiveXor(data[1].i4.xy);
|
||||
data[0].i4.xyz = subgroupExclusiveXor(data[2].i4.xyz);
|
||||
data[0].i4 = subgroupExclusiveXor(data[3].i4);
|
||||
|
||||
data[1].u4.x = subgroupExclusiveXor(data[0].u4.x);
|
||||
data[1].u4.xy = subgroupExclusiveXor(data[1].u4.xy);
|
||||
data[1].u4.xyz = subgroupExclusiveXor(data[2].u4.xyz);
|
||||
data[1].u4 = subgroupExclusiveXor(data[3].u4);
|
||||
|
||||
data[2].i4.x = int(subgroupExclusiveXor(data[0].i4.x < 0));
|
||||
data[2].i4.xy = ivec2(subgroupExclusiveXor(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[2].i4.xyz = ivec3(subgroupExclusiveXor(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[2].i4 = ivec4(subgroupExclusiveXor(lessThan(data[1].i4, ivec4(0))));
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
#version 320 es
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
|
||||
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u;
|
||||
|
||||
uvec4 relMask = gl_SubgroupEqMask +
|
||||
gl_SubgroupGeMask +
|
||||
gl_SubgroupGtMask +
|
||||
gl_SubgroupLeMask +
|
||||
gl_SubgroupLtMask;
|
||||
|
||||
uvec4 result = subgroupBallot(true);
|
||||
|
||||
data[0].u4.x = subgroupBallotBitCount(result);
|
||||
data[0].u4.y = subgroupBallotBitExtract(result, 0u) ? 1u : 0u;
|
||||
data[0].u4.z = subgroupBallotInclusiveBitCount(result) + subgroupBallotExclusiveBitCount(result);
|
||||
data[0].u4.w = subgroupBallotFindLSB(result) + subgroupBallotFindMSB(result);
|
||||
|
||||
if ((relMask == result) && subgroupInverseBallot(data[0].u4))
|
||||
{
|
||||
data[1].f4.x = subgroupBroadcast(data[0].f4.x, 3u);
|
||||
data[1].f4.xy = subgroupBroadcast(data[1].f4.xy, 3u);
|
||||
data[1].f4.xyz = subgroupBroadcast(data[2].f4.xyz, 3u);
|
||||
data[1].f4 = subgroupBroadcast(data[3].f4, 3u);
|
||||
|
||||
data[2].i4.x = subgroupBroadcast(data[0].i4.x, 2u);
|
||||
data[2].i4.xy = subgroupBroadcast(data[1].i4.xy, 2u);
|
||||
data[2].i4.xyz = subgroupBroadcast(data[2].i4.xyz, 2u);
|
||||
data[2].i4 = subgroupBroadcast(data[3].i4, 2u);
|
||||
|
||||
data[3].u4.x = subgroupBroadcast(data[0].u4.x, 1u);
|
||||
data[3].u4.xy = subgroupBroadcast(data[1].u4.xy, 1u);
|
||||
data[3].u4.xyz = subgroupBroadcast(data[2].u4.xyz, 1u);
|
||||
data[3].u4 = subgroupBroadcast(data[3].u4, 1u);
|
||||
|
||||
data[0].i4.x = int(subgroupBroadcast(data[0].i4.x < 0, 1u));
|
||||
data[0].i4.xy = ivec2(subgroupBroadcast(lessThan(data[1].i4.xy, ivec2(0)), 1u));
|
||||
data[0].i4.xyz = ivec3(subgroupBroadcast(lessThan(data[1].i4.xyz, ivec3(0)), 1u));
|
||||
data[0].i4 = ivec4(subgroupBroadcast(lessThan(data[1].i4, ivec4(0)), 1u));
|
||||
}
|
||||
else
|
||||
{
|
||||
data[1].f4.x = subgroupBroadcastFirst(data[0].f4.x);
|
||||
data[1].f4.xy = subgroupBroadcastFirst(data[1].f4.xy);
|
||||
data[1].f4.xyz = subgroupBroadcastFirst(data[2].f4.xyz);
|
||||
data[1].f4 = subgroupBroadcastFirst(data[3].f4);
|
||||
|
||||
data[2].i4.x = subgroupBroadcastFirst(data[0].i4.x);
|
||||
data[2].i4.xy = subgroupBroadcastFirst(data[1].i4.xy);
|
||||
data[2].i4.xyz = subgroupBroadcastFirst(data[2].i4.xyz);
|
||||
data[2].i4 = subgroupBroadcastFirst(data[3].i4);
|
||||
|
||||
data[3].u4.x = subgroupBroadcastFirst(data[0].u4.x);
|
||||
data[3].u4.xy = subgroupBroadcastFirst(data[1].u4.xy);
|
||||
data[3].u4.xyz = subgroupBroadcastFirst(data[2].u4.xyz);
|
||||
data[3].u4 = subgroupBroadcastFirst(data[3].u4);
|
||||
|
||||
data[0].i4.x = int(subgroupBroadcastFirst(data[0].i4.x < 0));
|
||||
data[0].i4.xy = ivec2(subgroupBroadcastFirst(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[0].i4.xyz = ivec3(subgroupBroadcastFirst(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[0].i4 = ivec4(subgroupBroadcastFirst(lessThan(data[1].i4, ivec4(0))));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
#version 450
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
|
||||
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u;
|
||||
|
||||
uvec4 relMask = gl_SubgroupEqMask +
|
||||
gl_SubgroupGeMask +
|
||||
gl_SubgroupGtMask +
|
||||
gl_SubgroupLeMask +
|
||||
gl_SubgroupLtMask;
|
||||
|
||||
uvec4 result = subgroupBallot(true);
|
||||
|
||||
data[0].u4.x = subgroupBallotBitCount(result);
|
||||
data[0].u4.y = subgroupBallotBitExtract(result, 0) ? 1u : 0u;
|
||||
data[0].u4.z = subgroupBallotInclusiveBitCount(result) + subgroupBallotExclusiveBitCount(result);
|
||||
data[0].u4.w = subgroupBallotFindLSB(result) + subgroupBallotFindMSB(result);
|
||||
|
||||
data[1].f4.x = subgroupBroadcast(data[0].f4.x, invocation); // ERROR: not constant
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
#version 320 es
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
|
||||
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
|
||||
layout(binding = 0) buffer Buffer
|
||||
{
|
||||
int a[];
|
||||
} data;
|
||||
|
||||
void main()
|
||||
{
|
||||
data.a[gl_SubgroupSize] = 1;
|
||||
data.a[gl_SubgroupInvocationID] = 1;
|
||||
data.a[gl_NumSubgroups] = 1;
|
||||
data.a[gl_SubgroupID] = (subgroupElect()) ? 1 : 0;
|
||||
subgroupBarrier();
|
||||
subgroupMemoryBarrier();
|
||||
subgroupMemoryBarrierBuffer();
|
||||
subgroupMemoryBarrierShared();
|
||||
subgroupMemoryBarrierImage();
|
||||
}
|
|
@ -0,0 +1,122 @@
|
|||
#version 320 es
|
||||
|
||||
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||
|
||||
layout (local_size_x = 8) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u;
|
||||
|
||||
data[0].f4.x = subgroupClusteredAdd(data[0].f4.x, 1u);
|
||||
data[0].f4.xy = subgroupClusteredAdd(data[1].f4.xy, 1u);
|
||||
data[0].f4.xyz = subgroupClusteredAdd(data[2].f4.xyz, 1u);
|
||||
data[0].f4 = subgroupClusteredAdd(data[3].f4, 1u);
|
||||
|
||||
data[1].i4.x = subgroupClusteredAdd(data[0].i4.x, 1u);
|
||||
data[1].i4.xy = subgroupClusteredAdd(data[1].i4.xy, 1u);
|
||||
data[1].i4.xyz = subgroupClusteredAdd(data[2].i4.xyz, 1u);
|
||||
data[1].i4 = subgroupClusteredAdd(data[3].i4, 1u);
|
||||
|
||||
data[2].u4.x = subgroupClusteredAdd(data[0].u4.x, 1u);
|
||||
data[2].u4.xy = subgroupClusteredAdd(data[1].u4.xy, 1u);
|
||||
data[2].u4.xyz = subgroupClusteredAdd(data[2].u4.xyz, 1u);
|
||||
data[2].u4 = subgroupClusteredAdd(data[3].u4, 1u);
|
||||
|
||||
data[3].f4.x = subgroupClusteredMul(data[0].f4.x, 1u);
|
||||
data[3].f4.xy = subgroupClusteredMul(data[1].f4.xy, 1u);
|
||||
data[3].f4.xyz = subgroupClusteredMul(data[2].f4.xyz, 1u);
|
||||
data[3].f4 = subgroupClusteredMul(data[3].f4, 1u);
|
||||
|
||||
data[0].i4.x = subgroupClusteredMul(data[0].i4.x, 1u);
|
||||
data[0].i4.xy = subgroupClusteredMul(data[1].i4.xy, 1u);
|
||||
data[0].i4.xyz = subgroupClusteredMul(data[2].i4.xyz, 1u);
|
||||
data[0].i4 = subgroupClusteredMul(data[3].i4, 1u);
|
||||
|
||||
data[1].u4.x = subgroupClusteredMul(data[0].u4.x, 1u);
|
||||
data[1].u4.xy = subgroupClusteredMul(data[1].u4.xy, 1u);
|
||||
data[1].u4.xyz = subgroupClusteredMul(data[2].u4.xyz, 1u);
|
||||
data[1].u4 = subgroupClusteredMul(data[3].u4, 1u);
|
||||
|
||||
data[2].f4.x = subgroupClusteredMin(data[0].f4.x, 1u);
|
||||
data[2].f4.xy = subgroupClusteredMin(data[1].f4.xy, 1u);
|
||||
data[2].f4.xyz = subgroupClusteredMin(data[2].f4.xyz, 1u);
|
||||
data[2].f4 = subgroupClusteredMin(data[3].f4, 1u);
|
||||
|
||||
data[3].i4.x = subgroupClusteredMin(data[0].i4.x, 1u);
|
||||
data[3].i4.xy = subgroupClusteredMin(data[1].i4.xy, 1u);
|
||||
data[3].i4.xyz = subgroupClusteredMin(data[2].i4.xyz, 1u);
|
||||
data[3].i4 = subgroupClusteredMin(data[3].i4, 1u);
|
||||
|
||||
data[0].u4.x = subgroupClusteredMin(data[0].u4.x, 1u);
|
||||
data[0].u4.xy = subgroupClusteredMin(data[1].u4.xy, 1u);
|
||||
data[0].u4.xyz = subgroupClusteredMin(data[2].u4.xyz, 1u);
|
||||
data[0].u4 = subgroupClusteredMin(data[3].u4, 1u);
|
||||
|
||||
data[1].f4.x = subgroupClusteredMax(data[0].f4.x, 1u);
|
||||
data[1].f4.xy = subgroupClusteredMax(data[1].f4.xy, 1u);
|
||||
data[1].f4.xyz = subgroupClusteredMax(data[2].f4.xyz, 1u);
|
||||
data[1].f4 = subgroupClusteredMax(data[3].f4, 1u);
|
||||
|
||||
data[2].i4.x = subgroupClusteredMax(data[0].i4.x, 1u);
|
||||
data[2].i4.xy = subgroupClusteredMax(data[1].i4.xy, 1u);
|
||||
data[2].i4.xyz = subgroupClusteredMax(data[2].i4.xyz, 1u);
|
||||
data[2].i4 = subgroupClusteredMax(data[3].i4, 1u);
|
||||
|
||||
data[3].u4.x = subgroupClusteredMax(data[0].u4.x, 1u);
|
||||
data[3].u4.xy = subgroupClusteredMax(data[1].u4.xy, 1u);
|
||||
data[3].u4.xyz = subgroupClusteredMax(data[2].u4.xyz, 1u);
|
||||
data[3].u4 = subgroupClusteredMax(data[3].u4, 1u);
|
||||
|
||||
data[0].i4.x = subgroupClusteredAnd(data[0].i4.x, 1u);
|
||||
data[0].i4.xy = subgroupClusteredAnd(data[1].i4.xy, 1u);
|
||||
data[0].i4.xyz = subgroupClusteredAnd(data[2].i4.xyz, 1u);
|
||||
data[0].i4 = subgroupClusteredAnd(data[3].i4, 1u);
|
||||
|
||||
data[1].u4.x = subgroupClusteredAnd(data[0].u4.x, 1u);
|
||||
data[1].u4.xy = subgroupClusteredAnd(data[1].u4.xy, 1u);
|
||||
data[1].u4.xyz = subgroupClusteredAnd(data[2].u4.xyz, 1u);
|
||||
data[1].u4 = subgroupClusteredAnd(data[3].u4, 1u);
|
||||
|
||||
data[2].i4.x = int(subgroupClusteredAnd(data[0].i4.x < 0, 1u));
|
||||
data[2].i4.xy = ivec2(subgroupClusteredAnd(lessThan(data[1].i4.xy, ivec2(0)), 1u));
|
||||
data[2].i4.xyz = ivec3(subgroupClusteredAnd(lessThan(data[1].i4.xyz, ivec3(0)), 1u));
|
||||
data[2].i4 = ivec4(subgroupClusteredAnd(lessThan(data[1].i4, ivec4(0)), 1u));
|
||||
|
||||
data[3].i4.x = subgroupClusteredOr(data[0].i4.x, 1u);
|
||||
data[3].i4.xy = subgroupClusteredOr(data[1].i4.xy, 1u);
|
||||
data[3].i4.xyz = subgroupClusteredOr(data[2].i4.xyz, 1u);
|
||||
data[3].i4 = subgroupClusteredOr(data[3].i4, 1u);
|
||||
|
||||
data[0].u4.x = subgroupClusteredOr(data[0].u4.x, 1u);
|
||||
data[0].u4.xy = subgroupClusteredOr(data[1].u4.xy, 1u);
|
||||
data[0].u4.xyz = subgroupClusteredOr(data[2].u4.xyz, 1u);
|
||||
data[0].u4 = subgroupClusteredOr(data[3].u4, 1u);
|
||||
|
||||
data[1].i4.x = int(subgroupClusteredOr(data[0].i4.x < 0, 1u));
|
||||
data[1].i4.xy = ivec2(subgroupClusteredOr(lessThan(data[1].i4.xy, ivec2(0)), 1u));
|
||||
data[1].i4.xyz = ivec3(subgroupClusteredOr(lessThan(data[1].i4.xyz, ivec3(0)), 1u));
|
||||
data[1].i4 = ivec4(subgroupClusteredOr(lessThan(data[1].i4, ivec4(0)), 1u));
|
||||
|
||||
data[2].i4.x = subgroupClusteredXor(data[0].i4.x, 1u);
|
||||
data[2].i4.xy = subgroupClusteredXor(data[1].i4.xy, 1u);
|
||||
data[2].i4.xyz = subgroupClusteredXor(data[2].i4.xyz, 1u);
|
||||
data[2].i4 = subgroupClusteredXor(data[3].i4, 1u);
|
||||
|
||||
data[3].u4.x = subgroupClusteredXor(data[0].u4.x, 1u);
|
||||
data[3].u4.xy = subgroupClusteredXor(data[1].u4.xy, 1u);
|
||||
data[3].u4.xyz = subgroupClusteredXor(data[2].u4.xyz, 1u);
|
||||
data[3].u4 = subgroupClusteredXor(data[3].u4, 1u);
|
||||
|
||||
data[0].i4.x = int(subgroupClusteredXor(data[0].i4.x < 0, 1u));
|
||||
data[0].i4.xy = ivec2(subgroupClusteredXor(lessThan(data[1].i4.xy, ivec2(0)), 1u));
|
||||
data[0].i4.xyz = ivec3(subgroupClusteredXor(lessThan(data[1].i4.xyz, ivec3(0)), 1u));
|
||||
data[0].i4 = ivec4(subgroupClusteredXor(lessThan(data[1].i4, ivec4(0)), 1u));
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
#version 320 es
|
||||
|
||||
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||
|
||||
layout (local_size_x = 8) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
int a = 1;
|
||||
const int aConst = 1;
|
||||
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u;
|
||||
|
||||
data[0].f4.xy = subgroupClusteredAdd(data[1].f4.xy, 0u); // ERROR, less than 1
|
||||
|
||||
data[0].f4.x = subgroupClusteredMul(data[0].f4.x, 3u); // ERROR, not a power of 2
|
||||
|
||||
data[1].i4.xy = subgroupClusteredMin(data[1].i4.xy, 8u);
|
||||
data[1].i4.xyz = subgroupClusteredMin(data[2].i4.xyz, 6u); // ERROR, not a power of 2
|
||||
|
||||
data[3].i4.x = subgroupClusteredOr(data[0].i4.x, uint(a)); // ERROR, not constant
|
||||
data[3].i4.xy = subgroupClusteredOr(data[1].i4.xy, uint(aConst));
|
||||
|
||||
data[0].i4.x = subgroupClusteredXor(data[0].i4.x, uint(1 + a)); // ERROR, not constant
|
||||
data[0].i4.xy = subgroupClusteredXor(data[1].i4.xy, uint(aConst + a)); // ERROR, not constant
|
||||
data[0].i4.xyz = subgroupClusteredXor(data[2].i4.xyz, uint(1 + aConst));
|
||||
}
|
|
@ -0,0 +1,354 @@
|
|||
#version 320 es
|
||||
|
||||
#extension GL_NV_shader_subgroup_partitioned: enable
|
||||
|
||||
layout (local_size_x = 8) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u;
|
||||
|
||||
uvec4 ballot = subgroupPartitionNV(invocation);
|
||||
|
||||
data[0].u4 = subgroupPartitionNV(data[0].f4.x);
|
||||
data[0].u4 = subgroupPartitionNV(data[0].f4.xy);
|
||||
data[0].u4 = subgroupPartitionNV(data[0].f4.xyz);
|
||||
data[0].u4 = subgroupPartitionNV(data[0].f4);
|
||||
|
||||
data[0].u4 = subgroupPartitionNV(data[0].i4.x);
|
||||
data[0].u4 = subgroupPartitionNV(data[0].i4.xy);
|
||||
data[0].u4 = subgroupPartitionNV(data[0].i4.xyz);
|
||||
data[0].u4 = subgroupPartitionNV(data[0].i4);
|
||||
|
||||
data[0].u4 = subgroupPartitionNV(data[0].u4.x);
|
||||
data[0].u4 = subgroupPartitionNV(data[0].u4.xy);
|
||||
data[0].u4 = subgroupPartitionNV(data[0].u4.xyz);
|
||||
data[0].u4 = subgroupPartitionNV(data[0].u4);
|
||||
|
||||
data[1].u4 = subgroupPartitionNV(bool(data[0].i4.x));
|
||||
data[1].u4 = subgroupPartitionNV(bvec2(data[0].i4.xy));
|
||||
data[1].u4 = subgroupPartitionNV(bvec3(data[0].i4.xyz));
|
||||
data[1].u4 = subgroupPartitionNV(bvec4(data[0].i4));
|
||||
|
||||
data[1].f4.x = subgroupPartitionedAddNV(data[0].f4.x, ballot);
|
||||
data[1].f4.xy = subgroupPartitionedAddNV(data[1].f4.xy, ballot);
|
||||
data[1].f4.xyz = subgroupPartitionedAddNV(data[2].f4.xyz, ballot);
|
||||
data[1].f4 = subgroupPartitionedAddNV(data[3].f4, ballot);
|
||||
|
||||
data[1].i4.x = subgroupPartitionedAddNV(data[0].i4.x, ballot);
|
||||
data[1].i4.xy = subgroupPartitionedAddNV(data[1].i4.xy, ballot);
|
||||
data[1].i4.xyz = subgroupPartitionedAddNV(data[2].i4.xyz, ballot);
|
||||
data[1].i4 = subgroupPartitionedAddNV(data[3].i4, ballot);
|
||||
|
||||
data[1].u4.x = subgroupPartitionedAddNV(data[0].u4.x, ballot);
|
||||
data[1].u4.xy = subgroupPartitionedAddNV(data[1].u4.xy, ballot);
|
||||
data[1].u4.xyz = subgroupPartitionedAddNV(data[2].u4.xyz, ballot);
|
||||
data[1].u4 = subgroupPartitionedAddNV(data[3].u4, ballot);
|
||||
|
||||
data[2].f4.x = subgroupPartitionedMulNV(data[0].f4.x, ballot);
|
||||
data[2].f4.xy = subgroupPartitionedMulNV(data[1].f4.xy, ballot);
|
||||
data[2].f4.xyz = subgroupPartitionedMulNV(data[2].f4.xyz, ballot);
|
||||
data[2].f4 = subgroupPartitionedMulNV(data[3].f4, ballot);
|
||||
|
||||
data[2].i4.x = subgroupPartitionedMulNV(data[0].i4.x, ballot);
|
||||
data[2].i4.xy = subgroupPartitionedMulNV(data[1].i4.xy, ballot);
|
||||
data[2].i4.xyz = subgroupPartitionedMulNV(data[2].i4.xyz, ballot);
|
||||
data[2].i4 = subgroupPartitionedMulNV(data[3].i4, ballot);
|
||||
|
||||
data[2].u4.x = subgroupPartitionedMulNV(data[0].u4.x, ballot);
|
||||
data[2].u4.xy = subgroupPartitionedMulNV(data[1].u4.xy, ballot);
|
||||
data[2].u4.xyz = subgroupPartitionedMulNV(data[2].u4.xyz, ballot);
|
||||
data[2].u4 = subgroupPartitionedMulNV(data[3].u4, ballot);
|
||||
|
||||
data[2].f4.x = subgroupPartitionedMinNV(data[0].f4.x, ballot);
|
||||
data[2].f4.xy = subgroupPartitionedMinNV(data[1].f4.xy, ballot);
|
||||
data[2].f4.xyz = subgroupPartitionedMinNV(data[2].f4.xyz, ballot);
|
||||
data[2].f4 = subgroupPartitionedMinNV(data[3].f4, ballot);
|
||||
|
||||
data[3].i4.x = subgroupPartitionedMinNV(data[0].i4.x, ballot);
|
||||
data[3].i4.xy = subgroupPartitionedMinNV(data[1].i4.xy, ballot);
|
||||
data[3].i4.xyz = subgroupPartitionedMinNV(data[2].i4.xyz, ballot);
|
||||
data[3].i4 = subgroupPartitionedMinNV(data[3].i4, ballot);
|
||||
|
||||
data[3].u4.x = subgroupPartitionedMinNV(data[0].u4.x, ballot);
|
||||
data[3].u4.xy = subgroupPartitionedMinNV(data[1].u4.xy, ballot);
|
||||
data[3].u4.xyz = subgroupPartitionedMinNV(data[2].u4.xyz, ballot);
|
||||
data[3].u4 = subgroupPartitionedMinNV(data[3].u4, ballot);
|
||||
|
||||
data[3].f4.x = subgroupPartitionedMaxNV(data[0].f4.x, ballot);
|
||||
data[3].f4.xy = subgroupPartitionedMaxNV(data[1].f4.xy, ballot);
|
||||
data[3].f4.xyz = subgroupPartitionedMaxNV(data[2].f4.xyz, ballot);
|
||||
data[3].f4 = subgroupPartitionedMaxNV(data[3].f4, ballot);
|
||||
|
||||
data[0].i4.x = subgroupPartitionedMaxNV(data[0].i4.x, ballot);
|
||||
data[0].i4.xy = subgroupPartitionedMaxNV(data[1].i4.xy, ballot);
|
||||
data[0].i4.xyz = subgroupPartitionedMaxNV(data[2].i4.xyz, ballot);
|
||||
data[0].i4 = subgroupPartitionedMaxNV(data[3].i4, ballot);
|
||||
|
||||
data[0].u4.x = subgroupPartitionedMaxNV(data[0].u4.x, ballot);
|
||||
data[0].u4.xy = subgroupPartitionedMaxNV(data[1].u4.xy, ballot);
|
||||
data[0].u4.xyz = subgroupPartitionedMaxNV(data[2].u4.xyz, ballot);
|
||||
data[0].u4 = subgroupPartitionedMaxNV(data[3].u4, ballot);
|
||||
|
||||
data[0].i4.x = subgroupPartitionedAndNV(data[0].i4.x, ballot);
|
||||
data[0].i4.xy = subgroupPartitionedAndNV(data[1].i4.xy, ballot);
|
||||
data[0].i4.xyz = subgroupPartitionedAndNV(data[2].i4.xyz, ballot);
|
||||
data[0].i4 = subgroupPartitionedAndNV(data[3].i4, ballot);
|
||||
|
||||
data[1].u4.x = subgroupPartitionedAndNV(data[0].u4.x, ballot);
|
||||
data[1].u4.xy = subgroupPartitionedAndNV(data[1].u4.xy, ballot);
|
||||
data[1].u4.xyz = subgroupPartitionedAndNV(data[2].u4.xyz, ballot);
|
||||
data[1].u4 = subgroupPartitionedAndNV(data[3].u4, ballot);
|
||||
|
||||
data[1].i4.x = int(subgroupPartitionedAndNV(data[0].i4.x < 0, ballot));
|
||||
data[1].i4.xy = ivec2(subgroupPartitionedAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
|
||||
data[1].i4.xyz = ivec3(subgroupPartitionedAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
|
||||
data[1].i4 = ivec4(subgroupPartitionedAndNV(lessThan(data[1].i4, ivec4(0)), ballot));
|
||||
|
||||
data[1].i4.x = subgroupPartitionedOrNV(data[0].i4.x, ballot);
|
||||
data[1].i4.xy = subgroupPartitionedOrNV(data[1].i4.xy, ballot);
|
||||
data[1].i4.xyz = subgroupPartitionedOrNV(data[2].i4.xyz, ballot);
|
||||
data[1].i4 = subgroupPartitionedOrNV(data[3].i4, ballot);
|
||||
|
||||
data[2].u4.x = subgroupPartitionedOrNV(data[0].u4.x, ballot);
|
||||
data[2].u4.xy = subgroupPartitionedOrNV(data[1].u4.xy, ballot);
|
||||
data[2].u4.xyz = subgroupPartitionedOrNV(data[2].u4.xyz, ballot);
|
||||
data[2].u4 = subgroupPartitionedOrNV(data[3].u4, ballot);
|
||||
|
||||
data[2].i4.x = int(subgroupPartitionedOrNV(data[0].i4.x < 0, ballot));
|
||||
data[2].i4.xy = ivec2(subgroupPartitionedOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
|
||||
data[2].i4.xyz = ivec3(subgroupPartitionedOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
|
||||
data[2].i4 = ivec4(subgroupPartitionedOrNV(lessThan(data[1].i4, ivec4(0)), ballot));
|
||||
|
||||
data[2].i4.x = subgroupPartitionedXorNV(data[0].i4.x, ballot);
|
||||
data[2].i4.xy = subgroupPartitionedXorNV(data[1].i4.xy, ballot);
|
||||
data[2].i4.xyz = subgroupPartitionedXorNV(data[2].i4.xyz, ballot);
|
||||
data[2].i4 = subgroupPartitionedXorNV(data[3].i4, ballot);
|
||||
|
||||
data[2].u4.x = subgroupPartitionedXorNV(data[0].u4.x, ballot);
|
||||
data[2].u4.xy = subgroupPartitionedXorNV(data[1].u4.xy, ballot);
|
||||
data[2].u4.xyz = subgroupPartitionedXorNV(data[2].u4.xyz, ballot);
|
||||
data[2].u4 = subgroupPartitionedXorNV(data[3].u4, ballot);
|
||||
|
||||
data[3].i4.x = int(subgroupPartitionedXorNV(data[0].i4.x < 0, ballot));
|
||||
data[3].i4.xy = ivec2(subgroupPartitionedXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
|
||||
data[3].i4.xyz = ivec3(subgroupPartitionedXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
|
||||
data[3].i4 = ivec4(subgroupPartitionedXorNV(lessThan(data[1].i4, ivec4(0)), ballot));
|
||||
|
||||
data[3].f4.x = subgroupPartitionedInclusiveAddNV(data[0].f4.x, ballot);
|
||||
data[3].f4.xy = subgroupPartitionedInclusiveAddNV(data[1].f4.xy, ballot);
|
||||
data[3].f4.xyz = subgroupPartitionedInclusiveAddNV(data[2].f4.xyz, ballot);
|
||||
data[3].f4 = subgroupPartitionedInclusiveAddNV(data[3].f4, ballot);
|
||||
|
||||
data[3].i4.x = subgroupPartitionedInclusiveAddNV(data[0].i4.x, ballot);
|
||||
data[3].i4.xy = subgroupPartitionedInclusiveAddNV(data[1].i4.xy, ballot);
|
||||
data[3].i4.xyz = subgroupPartitionedInclusiveAddNV(data[2].i4.xyz, ballot);
|
||||
data[3].i4 = subgroupPartitionedInclusiveAddNV(data[3].i4, ballot);
|
||||
|
||||
data[3].u4.x = subgroupPartitionedInclusiveAddNV(data[0].u4.x, ballot);
|
||||
data[3].u4.xy = subgroupPartitionedInclusiveAddNV(data[1].u4.xy, ballot);
|
||||
data[3].u4.xyz = subgroupPartitionedInclusiveAddNV(data[2].u4.xyz, ballot);
|
||||
data[3].u4 = subgroupPartitionedInclusiveAddNV(data[3].u4, ballot);
|
||||
|
||||
data[3].f4.x = subgroupPartitionedInclusiveMulNV(data[0].f4.x, ballot);
|
||||
data[3].f4.xy = subgroupPartitionedInclusiveMulNV(data[1].f4.xy, ballot);
|
||||
data[3].f4.xyz = subgroupPartitionedInclusiveMulNV(data[2].f4.xyz, ballot);
|
||||
data[3].f4 = subgroupPartitionedInclusiveMulNV(data[3].f4, ballot);
|
||||
|
||||
data[3].i4.x = subgroupPartitionedInclusiveMulNV(data[0].i4.x, ballot);
|
||||
data[3].i4.xy = subgroupPartitionedInclusiveMulNV(data[1].i4.xy, ballot);
|
||||
data[3].i4.xyz = subgroupPartitionedInclusiveMulNV(data[2].i4.xyz, ballot);
|
||||
data[3].i4 = subgroupPartitionedInclusiveMulNV(data[3].i4, ballot);
|
||||
|
||||
data[0].u4.x = subgroupPartitionedInclusiveMulNV(data[0].u4.x, ballot);
|
||||
data[0].u4.xy = subgroupPartitionedInclusiveMulNV(data[1].u4.xy, ballot);
|
||||
data[0].u4.xyz = subgroupPartitionedInclusiveMulNV(data[2].u4.xyz, ballot);
|
||||
data[0].u4 = subgroupPartitionedInclusiveMulNV(data[3].u4, ballot);
|
||||
|
||||
data[0].f4.x = subgroupPartitionedInclusiveMinNV(data[0].f4.x, ballot);
|
||||
data[0].f4.xy = subgroupPartitionedInclusiveMinNV(data[1].f4.xy, ballot);
|
||||
data[0].f4.xyz = subgroupPartitionedInclusiveMinNV(data[2].f4.xyz, ballot);
|
||||
data[0].f4 = subgroupPartitionedInclusiveMinNV(data[3].f4, ballot);
|
||||
|
||||
data[0].i4.x = subgroupPartitionedInclusiveMinNV(data[0].i4.x, ballot);
|
||||
data[0].i4.xy = subgroupPartitionedInclusiveMinNV(data[1].i4.xy, ballot);
|
||||
data[0].i4.xyz = subgroupPartitionedInclusiveMinNV(data[2].i4.xyz, ballot);
|
||||
data[0].i4 = subgroupPartitionedInclusiveMinNV(data[3].i4, ballot);
|
||||
|
||||
data[0].u4.x = subgroupPartitionedInclusiveMinNV(data[0].u4.x, ballot);
|
||||
data[0].u4.xy = subgroupPartitionedInclusiveMinNV(data[1].u4.xy, ballot);
|
||||
data[0].u4.xyz = subgroupPartitionedInclusiveMinNV(data[2].u4.xyz, ballot);
|
||||
data[0].u4 = subgroupPartitionedInclusiveMinNV(data[3].u4, ballot);
|
||||
|
||||
data[1].f4.x = subgroupPartitionedInclusiveMaxNV(data[0].f4.x, ballot);
|
||||
data[1].f4.xy = subgroupPartitionedInclusiveMaxNV(data[1].f4.xy, ballot);
|
||||
data[1].f4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].f4.xyz, ballot);
|
||||
data[1].f4 = subgroupPartitionedInclusiveMaxNV(data[3].f4, ballot);
|
||||
|
||||
data[1].i4.x = subgroupPartitionedInclusiveMaxNV(data[0].i4.x, ballot);
|
||||
data[1].i4.xy = subgroupPartitionedInclusiveMaxNV(data[1].i4.xy, ballot);
|
||||
data[1].i4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].i4.xyz, ballot);
|
||||
data[1].i4 = subgroupPartitionedInclusiveMaxNV(data[3].i4, ballot);
|
||||
|
||||
data[1].u4.x = subgroupPartitionedInclusiveMaxNV(data[0].u4.x, ballot);
|
||||
data[1].u4.xy = subgroupPartitionedInclusiveMaxNV(data[1].u4.xy, ballot);
|
||||
data[1].u4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].u4.xyz, ballot);
|
||||
data[1].u4 = subgroupPartitionedInclusiveMaxNV(data[3].u4, ballot);
|
||||
|
||||
data[1].i4.x = subgroupPartitionedInclusiveAndNV(data[0].i4.x, ballot);
|
||||
data[1].i4.xy = subgroupPartitionedInclusiveAndNV(data[1].i4.xy, ballot);
|
||||
data[1].i4.xyz = subgroupPartitionedInclusiveAndNV(data[2].i4.xyz, ballot);
|
||||
data[1].i4 = subgroupPartitionedInclusiveAndNV(data[3].i4, ballot);
|
||||
|
||||
data[2].u4.x = subgroupPartitionedInclusiveAndNV(data[0].u4.x, ballot);
|
||||
data[2].u4.xy = subgroupPartitionedInclusiveAndNV(data[1].u4.xy, ballot);
|
||||
data[2].u4.xyz = subgroupPartitionedInclusiveAndNV(data[2].u4.xyz, ballot);
|
||||
data[2].u4 = subgroupPartitionedInclusiveAndNV(data[3].u4, ballot);
|
||||
|
||||
data[2].i4.x = int(subgroupPartitionedInclusiveAndNV(data[0].i4.x < 0, ballot));
|
||||
data[2].i4.xy = ivec2(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
|
||||
data[2].i4.xyz = ivec3(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
|
||||
data[2].i4 = ivec4(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot));
|
||||
|
||||
data[2].i4.x = subgroupPartitionedInclusiveOrNV(data[0].i4.x, ballot);
|
||||
data[2].i4.xy = subgroupPartitionedInclusiveOrNV(data[1].i4.xy, ballot);
|
||||
data[2].i4.xyz = subgroupPartitionedInclusiveOrNV(data[2].i4.xyz, ballot);
|
||||
data[2].i4 = subgroupPartitionedInclusiveOrNV(data[3].i4, ballot);
|
||||
|
||||
data[2].u4.x = subgroupPartitionedInclusiveOrNV(data[0].u4.x, ballot);
|
||||
data[2].u4.xy = subgroupPartitionedInclusiveOrNV(data[1].u4.xy, ballot);
|
||||
data[2].u4.xyz = subgroupPartitionedInclusiveOrNV(data[2].u4.xyz, ballot);
|
||||
data[2].u4 = subgroupPartitionedInclusiveOrNV(data[3].u4, ballot);
|
||||
|
||||
data[3].i4.x = int(subgroupPartitionedInclusiveOrNV(data[0].i4.x < 0, ballot));
|
||||
data[3].i4.xy = ivec2(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
|
||||
data[3].i4.xyz = ivec3(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
|
||||
data[3].i4 = ivec4(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot));
|
||||
|
||||
data[3].i4.x = subgroupPartitionedInclusiveXorNV(data[0].i4.x, ballot);
|
||||
data[3].i4.xy = subgroupPartitionedInclusiveXorNV(data[1].i4.xy, ballot);
|
||||
data[3].i4.xyz = subgroupPartitionedInclusiveXorNV(data[2].i4.xyz, ballot);
|
||||
data[3].i4 = subgroupPartitionedInclusiveXorNV(data[3].i4, ballot);
|
||||
|
||||
data[3].u4.x = subgroupPartitionedInclusiveXorNV(data[0].u4.x, ballot);
|
||||
data[3].u4.xy = subgroupPartitionedInclusiveXorNV(data[1].u4.xy, ballot);
|
||||
data[3].u4.xyz = subgroupPartitionedInclusiveXorNV(data[2].u4.xyz, ballot);
|
||||
data[3].u4 = subgroupPartitionedInclusiveXorNV(data[3].u4, ballot);
|
||||
|
||||
data[3].i4.x = int(subgroupPartitionedInclusiveXorNV(data[0].i4.x < 0, ballot));
|
||||
data[3].i4.xy = ivec2(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
|
||||
data[3].i4.xyz = ivec3(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
|
||||
data[3].i4 = ivec4(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot));
|
||||
|
||||
data[0].f4.x = subgroupPartitionedExclusiveAddNV(data[0].f4.x, ballot);
|
||||
data[0].f4.xy = subgroupPartitionedExclusiveAddNV(data[1].f4.xy, ballot);
|
||||
data[0].f4.xyz = subgroupPartitionedExclusiveAddNV(data[2].f4.xyz, ballot);
|
||||
data[0].f4 = subgroupPartitionedExclusiveAddNV(data[3].f4, ballot);
|
||||
|
||||
data[0].i4.x = subgroupPartitionedExclusiveAddNV(data[0].i4.x, ballot);
|
||||
data[0].i4.xy = subgroupPartitionedExclusiveAddNV(data[1].i4.xy, ballot);
|
||||
data[0].i4.xyz = subgroupPartitionedExclusiveAddNV(data[2].i4.xyz, ballot);
|
||||
data[0].i4 = subgroupPartitionedExclusiveAddNV(data[3].i4, ballot);
|
||||
|
||||
data[0].u4.x = subgroupPartitionedExclusiveAddNV(data[0].u4.x, ballot);
|
||||
data[0].u4.xy = subgroupPartitionedExclusiveAddNV(data[1].u4.xy, ballot);
|
||||
data[0].u4.xyz = subgroupPartitionedExclusiveAddNV(data[2].u4.xyz, ballot);
|
||||
data[0].u4 = subgroupPartitionedExclusiveAddNV(data[3].u4, ballot);
|
||||
|
||||
data[0].f4.x = subgroupPartitionedExclusiveMulNV(data[0].f4.x, ballot);
|
||||
data[0].f4.xy = subgroupPartitionedExclusiveMulNV(data[1].f4.xy, ballot);
|
||||
data[0].f4.xyz = subgroupPartitionedExclusiveMulNV(data[2].f4.xyz, ballot);
|
||||
data[0].f4 = subgroupPartitionedExclusiveMulNV(data[3].f4, ballot);
|
||||
|
||||
data[1].i4.x = subgroupPartitionedExclusiveMulNV(data[0].i4.x, ballot);
|
||||
data[1].i4.xy = subgroupPartitionedExclusiveMulNV(data[1].i4.xy, ballot);
|
||||
data[1].i4.xyz = subgroupPartitionedExclusiveMulNV(data[2].i4.xyz, ballot);
|
||||
data[1].i4 = subgroupPartitionedExclusiveMulNV(data[3].i4, ballot);
|
||||
|
||||
data[1].u4.x = subgroupPartitionedExclusiveMulNV(data[0].u4.x, ballot);
|
||||
data[1].u4.xy = subgroupPartitionedExclusiveMulNV(data[1].u4.xy, ballot);
|
||||
data[1].u4.xyz = subgroupPartitionedExclusiveMulNV(data[2].u4.xyz, ballot);
|
||||
data[1].u4 = subgroupPartitionedExclusiveMulNV(data[3].u4, ballot);
|
||||
|
||||
data[1].f4.x = subgroupPartitionedExclusiveMinNV(data[0].f4.x, ballot);
|
||||
data[1].f4.xy = subgroupPartitionedExclusiveMinNV(data[1].f4.xy, ballot);
|
||||
data[1].f4.xyz = subgroupPartitionedExclusiveMinNV(data[2].f4.xyz, ballot);
|
||||
data[1].f4 = subgroupPartitionedExclusiveMinNV(data[3].f4, ballot);
|
||||
|
||||
data[1].i4.x = subgroupPartitionedExclusiveMinNV(data[0].i4.x, ballot);
|
||||
data[1].i4.xy = subgroupPartitionedExclusiveMinNV(data[1].i4.xy, ballot);
|
||||
data[1].i4.xyz = subgroupPartitionedExclusiveMinNV(data[2].i4.xyz, ballot);
|
||||
data[1].i4 = subgroupPartitionedExclusiveMinNV(data[3].i4, ballot);
|
||||
|
||||
data[2].u4.x = subgroupPartitionedExclusiveMinNV(data[0].u4.x, ballot);
|
||||
data[2].u4.xy = subgroupPartitionedExclusiveMinNV(data[1].u4.xy, ballot);
|
||||
data[2].u4.xyz = subgroupPartitionedExclusiveMinNV(data[2].u4.xyz, ballot);
|
||||
data[2].u4 = subgroupPartitionedExclusiveMinNV(data[3].u4, ballot);
|
||||
|
||||
data[2].f4.x = subgroupPartitionedExclusiveMaxNV(data[0].f4.x, ballot);
|
||||
data[2].f4.xy = subgroupPartitionedExclusiveMaxNV(data[1].f4.xy, ballot);
|
||||
data[2].f4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].f4.xyz, ballot);
|
||||
data[2].f4 = subgroupPartitionedExclusiveMaxNV(data[3].f4, ballot);
|
||||
|
||||
data[2].i4.x = subgroupPartitionedExclusiveMaxNV(data[0].i4.x, ballot);
|
||||
data[2].i4.xy = subgroupPartitionedExclusiveMaxNV(data[1].i4.xy, ballot);
|
||||
data[2].i4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].i4.xyz, ballot);
|
||||
data[2].i4 = subgroupPartitionedExclusiveMaxNV(data[3].i4, ballot);
|
||||
|
||||
data[2].u4.x = subgroupPartitionedExclusiveMaxNV(data[0].u4.x, ballot);
|
||||
data[2].u4.xy = subgroupPartitionedExclusiveMaxNV(data[1].u4.xy, ballot);
|
||||
data[2].u4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].u4.xyz, ballot);
|
||||
data[2].u4 = subgroupPartitionedExclusiveMaxNV(data[3].u4, ballot);
|
||||
|
||||
data[2].i4.x = subgroupPartitionedExclusiveAndNV(data[0].i4.x, ballot);
|
||||
data[2].i4.xy = subgroupPartitionedExclusiveAndNV(data[1].i4.xy, ballot);
|
||||
data[2].i4.xyz = subgroupPartitionedExclusiveAndNV(data[2].i4.xyz, ballot);
|
||||
data[2].i4 = subgroupPartitionedExclusiveAndNV(data[3].i4, ballot);
|
||||
|
||||
data[2].u4.x = subgroupPartitionedExclusiveAndNV(data[0].u4.x, ballot);
|
||||
data[2].u4.xy = subgroupPartitionedExclusiveAndNV(data[1].u4.xy, ballot);
|
||||
data[2].u4.xyz = subgroupPartitionedExclusiveAndNV(data[2].u4.xyz, ballot);
|
||||
data[2].u4 = subgroupPartitionedExclusiveAndNV(data[3].u4, ballot);
|
||||
|
||||
data[3].i4.x = int(subgroupPartitionedExclusiveAndNV(data[0].i4.x < 0, ballot));
|
||||
data[3].i4.xy = ivec2(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
|
||||
data[3].i4.xyz = ivec3(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
|
||||
data[3].i4 = ivec4(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot));
|
||||
|
||||
data[3].i4.x = subgroupPartitionedExclusiveOrNV(data[0].i4.x, ballot);
|
||||
data[3].i4.xy = subgroupPartitionedExclusiveOrNV(data[1].i4.xy, ballot);
|
||||
data[3].i4.xyz = subgroupPartitionedExclusiveOrNV(data[2].i4.xyz, ballot);
|
||||
data[3].i4 = subgroupPartitionedExclusiveOrNV(data[3].i4, ballot);
|
||||
|
||||
data[3].u4.x = subgroupPartitionedExclusiveOrNV(data[0].u4.x, ballot);
|
||||
data[3].u4.xy = subgroupPartitionedExclusiveOrNV(data[1].u4.xy, ballot);
|
||||
data[3].u4.xyz = subgroupPartitionedExclusiveOrNV(data[2].u4.xyz, ballot);
|
||||
data[3].u4 = subgroupPartitionedExclusiveOrNV(data[3].u4, ballot);
|
||||
|
||||
data[3].i4.x = int(subgroupPartitionedExclusiveOrNV(data[0].i4.x < 0, ballot));
|
||||
data[3].i4.xy = ivec2(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
|
||||
data[3].i4.xyz = ivec3(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
|
||||
data[3].i4 = ivec4(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot));
|
||||
|
||||
data[3].i4.x = subgroupPartitionedExclusiveXorNV(data[0].i4.x, ballot);
|
||||
data[3].i4.xy = subgroupPartitionedExclusiveXorNV(data[1].i4.xy, ballot);
|
||||
data[3].i4.xyz = subgroupPartitionedExclusiveXorNV(data[2].i4.xyz, ballot);
|
||||
data[3].i4 = subgroupPartitionedExclusiveXorNV(data[3].i4, ballot);
|
||||
|
||||
data[0].u4.x = subgroupPartitionedExclusiveXorNV(data[0].u4.x, ballot);
|
||||
data[0].u4.xy = subgroupPartitionedExclusiveXorNV(data[1].u4.xy, ballot);
|
||||
data[0].u4.xyz = subgroupPartitionedExclusiveXorNV(data[2].u4.xyz, ballot);
|
||||
data[0].u4 = subgroupPartitionedExclusiveXorNV(data[3].u4, ballot);
|
||||
|
||||
data[0].i4.x = int(subgroupPartitionedExclusiveXorNV(data[0].i4.x < 0, ballot));
|
||||
data[0].i4.xy = ivec2(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
|
||||
data[0].i4.xyz = ivec3(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
|
||||
data[0].i4 = ivec4(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot));
|
||||
}
|
|
@ -0,0 +1,97 @@
|
|||
#version 320 es
|
||||
|
||||
#extension GL_KHR_shader_subgroup_quad: enable
|
||||
|
||||
layout (local_size_x = 8) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u;
|
||||
|
||||
data[0].f4.x = subgroupQuadBroadcast(data[0].f4.x, 1u);
|
||||
data[0].f4.xy = subgroupQuadBroadcast(data[1].f4.xy, 1u);
|
||||
data[0].f4.xyz = subgroupQuadBroadcast(data[2].f4.xyz, 1u);
|
||||
data[0].f4 = subgroupQuadBroadcast(data[3].f4, 1u);
|
||||
|
||||
data[0].i4.x = subgroupQuadBroadcast(data[0].i4.x, 1u);
|
||||
data[0].i4.xy = subgroupQuadBroadcast(data[1].i4.xy, 1u);
|
||||
data[0].i4.xyz = subgroupQuadBroadcast(data[2].i4.xyz, 1u);
|
||||
data[0].i4 = subgroupQuadBroadcast(data[3].i4, 1u);
|
||||
|
||||
data[0].u4.x = subgroupQuadBroadcast(data[0].u4.x, 1u);
|
||||
data[0].u4.xy = subgroupQuadBroadcast(data[1].u4.xy, 1u);
|
||||
data[0].u4.xyz = subgroupQuadBroadcast(data[2].u4.xyz, 1u);
|
||||
data[0].u4 = subgroupQuadBroadcast(data[3].u4, 1u);
|
||||
|
||||
data[1].i4.x = int(subgroupQuadBroadcast(data[0].i4.x < 0, 1u));
|
||||
data[1].i4.xy = ivec2(subgroupQuadBroadcast(lessThan(data[1].i4.xy, ivec2(0)), 1u));
|
||||
data[1].i4.xyz = ivec3(subgroupQuadBroadcast(lessThan(data[1].i4.xyz, ivec3(0)), 1u));
|
||||
data[1].i4 = ivec4(subgroupQuadBroadcast(lessThan(data[1].i4, ivec4(0)), 1u));
|
||||
|
||||
data[1].f4.x = subgroupQuadSwapHorizontal(data[0].f4.x);
|
||||
data[1].f4.xy = subgroupQuadSwapHorizontal(data[1].f4.xy);
|
||||
data[1].f4.xyz = subgroupQuadSwapHorizontal(data[2].f4.xyz);
|
||||
data[1].f4 = subgroupQuadSwapHorizontal(data[3].f4);
|
||||
|
||||
data[1].i4.x = subgroupQuadSwapHorizontal(data[0].i4.x);
|
||||
data[1].i4.xy = subgroupQuadSwapHorizontal(data[1].i4.xy);
|
||||
data[1].i4.xyz = subgroupQuadSwapHorizontal(data[2].i4.xyz);
|
||||
data[1].i4 = subgroupQuadSwapHorizontal(data[3].i4);
|
||||
|
||||
data[1].u4.x = subgroupQuadSwapHorizontal(data[0].u4.x);
|
||||
data[1].u4.xy = subgroupQuadSwapHorizontal(data[1].u4.xy);
|
||||
data[1].u4.xyz = subgroupQuadSwapHorizontal(data[2].u4.xyz);
|
||||
data[1].u4 = subgroupQuadSwapHorizontal(data[3].u4);
|
||||
|
||||
data[2].i4.x = int(subgroupQuadSwapHorizontal(data[0].i4.x < 0));
|
||||
data[2].i4.xy = ivec2(subgroupQuadSwapHorizontal(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[2].i4.xyz = ivec3(subgroupQuadSwapHorizontal(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[2].i4 = ivec4(subgroupQuadSwapHorizontal(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[2].f4.x = subgroupQuadSwapVertical(data[0].f4.x);
|
||||
data[2].f4.xy = subgroupQuadSwapVertical(data[1].f4.xy);
|
||||
data[2].f4.xyz = subgroupQuadSwapVertical(data[2].f4.xyz);
|
||||
data[2].f4 = subgroupQuadSwapVertical(data[3].f4);
|
||||
|
||||
data[2].i4.x = subgroupQuadSwapVertical(data[0].i4.x);
|
||||
data[2].i4.xy = subgroupQuadSwapVertical(data[1].i4.xy);
|
||||
data[2].i4.xyz = subgroupQuadSwapVertical(data[2].i4.xyz);
|
||||
data[2].i4 = subgroupQuadSwapVertical(data[3].i4);
|
||||
|
||||
data[2].u4.x = subgroupQuadSwapVertical(data[0].u4.x);
|
||||
data[2].u4.xy = subgroupQuadSwapVertical(data[1].u4.xy);
|
||||
data[2].u4.xyz = subgroupQuadSwapVertical(data[2].u4.xyz);
|
||||
data[2].u4 = subgroupQuadSwapVertical(data[3].u4);
|
||||
|
||||
data[3].i4.x = int(subgroupQuadSwapVertical(data[0].i4.x < 0));
|
||||
data[3].i4.xy = ivec2(subgroupQuadSwapVertical(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[3].i4.xyz = ivec3(subgroupQuadSwapVertical(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[3].i4 = ivec4(subgroupQuadSwapVertical(lessThan(data[1].i4, ivec4(0))));
|
||||
|
||||
data[3].f4.x = subgroupQuadSwapDiagonal(data[0].f4.x);
|
||||
data[3].f4.xy = subgroupQuadSwapDiagonal(data[1].f4.xy);
|
||||
data[3].f4.xyz = subgroupQuadSwapDiagonal(data[2].f4.xyz);
|
||||
data[3].f4 = subgroupQuadSwapDiagonal(data[3].f4);
|
||||
|
||||
data[3].i4.x = subgroupQuadSwapDiagonal(data[0].i4.x);
|
||||
data[3].i4.xy = subgroupQuadSwapDiagonal(data[1].i4.xy);
|
||||
data[3].i4.xyz = subgroupQuadSwapDiagonal(data[2].i4.xyz);
|
||||
data[3].i4 = subgroupQuadSwapDiagonal(data[3].i4);
|
||||
|
||||
data[3].u4.x = subgroupQuadSwapDiagonal(data[0].u4.x);
|
||||
data[3].u4.xy = subgroupQuadSwapDiagonal(data[1].u4.xy);
|
||||
data[3].u4.xyz = subgroupQuadSwapDiagonal(data[2].u4.xyz);
|
||||
data[3].u4 = subgroupQuadSwapDiagonal(data[3].u4);
|
||||
|
||||
data[3].i4.x = int(subgroupQuadSwapDiagonal(data[0].i4.x < 0));
|
||||
data[3].i4.xy = ivec2(subgroupQuadSwapDiagonal(lessThan(data[1].i4.xy, ivec2(0))));
|
||||
data[3].i4.xyz = ivec3(subgroupQuadSwapDiagonal(lessThan(data[1].i4.xyz, ivec3(0))));
|
||||
data[3].i4 = ivec4(subgroupQuadSwapDiagonal(lessThan(data[1].i4, ivec4(0))));
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
#version 320 es
|
||||
|
||||
#extension GL_KHR_shader_subgroup_shuffle: enable
|
||||
|
||||
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u;
|
||||
|
||||
data[0].f4.x = subgroupShuffle(data[0].f4.x, invocation);
|
||||
data[0].f4.xy = subgroupShuffle(data[1].f4.xy, invocation);
|
||||
data[0].f4.xyz = subgroupShuffle(data[2].f4.xyz, invocation);
|
||||
data[0].f4 = subgroupShuffle(data[3].f4, invocation);
|
||||
|
||||
data[0].i4.x = subgroupShuffle(data[0].i4.x, invocation);
|
||||
data[0].i4.xy = subgroupShuffle(data[1].i4.xy, invocation);
|
||||
data[0].i4.xyz = subgroupShuffle(data[2].i4.xyz, invocation);
|
||||
data[0].i4 = subgroupShuffle(data[3].i4, invocation);
|
||||
|
||||
data[1].u4.x = subgroupShuffle(data[0].u4.x, invocation);
|
||||
data[1].u4.xy = subgroupShuffle(data[1].u4.xy, invocation);
|
||||
data[1].u4.xyz = subgroupShuffle(data[2].u4.xyz, invocation);
|
||||
data[1].u4 = subgroupShuffle(data[3].u4, invocation);
|
||||
|
||||
data[1].i4.x = int(subgroupShuffle(data[0].i4.x < 0, invocation));
|
||||
data[1].i4.xy = ivec2(subgroupShuffle(lessThan(data[1].i4.xy, ivec2(0)), invocation));
|
||||
data[1].i4.xyz = ivec3(subgroupShuffle(lessThan(data[1].i4.xyz, ivec3(0)), invocation));
|
||||
data[1].i4 = ivec4(subgroupShuffle(lessThan(data[1].i4, ivec4(0)), invocation));
|
||||
|
||||
data[2].f4.x = subgroupShuffleXor(data[0].f4.x, invocation);
|
||||
data[2].f4.xy = subgroupShuffleXor(data[1].f4.xy, invocation);
|
||||
data[2].f4.xyz = subgroupShuffleXor(data[2].f4.xyz, invocation);
|
||||
data[2].f4 = subgroupShuffleXor(data[3].f4, invocation);
|
||||
|
||||
data[2].i4.x = subgroupShuffleXor(data[0].i4.x, invocation);
|
||||
data[2].i4.xy = subgroupShuffleXor(data[1].i4.xy, invocation);
|
||||
data[2].i4.xyz = subgroupShuffleXor(data[2].i4.xyz, invocation);
|
||||
data[2].i4 = subgroupShuffleXor(data[3].i4, invocation);
|
||||
|
||||
data[3].u4.x = subgroupShuffleXor(data[0].u4.x, invocation);
|
||||
data[3].u4.xy = subgroupShuffleXor(data[1].u4.xy, invocation);
|
||||
data[3].u4.xyz = subgroupShuffleXor(data[2].u4.xyz, invocation);
|
||||
data[3].u4 = subgroupShuffleXor(data[3].u4, invocation);
|
||||
|
||||
data[3].i4.x = int(subgroupShuffleXor(data[0].i4.x < 0, invocation));
|
||||
data[3].i4.xy = ivec2(subgroupShuffleXor(lessThan(data[1].i4.xy, ivec2(0)), invocation));
|
||||
data[3].i4.xyz = ivec3(subgroupShuffleXor(lessThan(data[1].i4.xyz, ivec3(0)), invocation));
|
||||
data[3].i4 = ivec4(subgroupShuffleXor(lessThan(data[1].i4, ivec4(0)), invocation));
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
#version 320 es
|
||||
|
||||
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
|
||||
|
||||
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u;
|
||||
|
||||
data[0].f4.x = subgroupShuffleUp(data[0].f4.x, invocation);
|
||||
data[0].f4.xy = subgroupShuffleUp(data[1].f4.xy, invocation);
|
||||
data[0].f4.xyz = subgroupShuffleUp(data[2].f4.xyz, invocation);
|
||||
data[0].f4 = subgroupShuffleUp(data[3].f4, invocation);
|
||||
|
||||
data[0].i4.x = subgroupShuffleUp(data[0].i4.x, invocation);
|
||||
data[0].i4.xy = subgroupShuffleUp(data[1].i4.xy, invocation);
|
||||
data[0].i4.xyz = subgroupShuffleUp(data[2].i4.xyz, invocation);
|
||||
data[0].i4 = subgroupShuffleUp(data[3].i4, invocation);
|
||||
|
||||
data[1].u4.x = subgroupShuffleUp(data[0].u4.x, invocation);
|
||||
data[1].u4.xy = subgroupShuffleUp(data[1].u4.xy, invocation);
|
||||
data[1].u4.xyz = subgroupShuffleUp(data[2].u4.xyz, invocation);
|
||||
data[1].u4 = subgroupShuffleUp(data[3].u4, invocation);
|
||||
|
||||
data[1].i4.x = int(subgroupShuffleUp(data[0].i4.x < 0, invocation));
|
||||
data[1].i4.xy = ivec2(subgroupShuffleUp(lessThan(data[1].i4.xy, ivec2(0)), invocation));
|
||||
data[1].i4.xyz = ivec3(subgroupShuffleUp(lessThan(data[1].i4.xyz, ivec3(0)), invocation));
|
||||
data[1].i4 = ivec4(subgroupShuffleUp(lessThan(data[1].i4, ivec4(0)), invocation));
|
||||
|
||||
data[2].f4.x = subgroupShuffleDown(data[0].f4.x, invocation);
|
||||
data[2].f4.xy = subgroupShuffleDown(data[1].f4.xy, invocation);
|
||||
data[2].f4.xyz = subgroupShuffleDown(data[2].f4.xyz, invocation);
|
||||
data[2].f4 = subgroupShuffleDown(data[3].f4, invocation);
|
||||
|
||||
data[2].i4.x = subgroupShuffleDown(data[0].i4.x, invocation);
|
||||
data[2].i4.xy = subgroupShuffleDown(data[1].i4.xy, invocation);
|
||||
data[2].i4.xyz = subgroupShuffleDown(data[2].i4.xyz, invocation);
|
||||
data[2].i4 = subgroupShuffleDown(data[3].i4, invocation);
|
||||
|
||||
data[3].u4.x = subgroupShuffleDown(data[0].u4.x, invocation);
|
||||
data[3].u4.xy = subgroupShuffleDown(data[1].u4.xy, invocation);
|
||||
data[3].u4.xyz = subgroupShuffleDown(data[2].u4.xyz, invocation);
|
||||
data[3].u4 = subgroupShuffleDown(data[3].u4, invocation);
|
||||
|
||||
data[3].i4.x = int(subgroupShuffleDown(data[0].i4.x < 0, invocation));
|
||||
data[3].i4.xy = ivec2(subgroupShuffleDown(lessThan(data[1].i4.xy, ivec2(0)), invocation));
|
||||
data[3].i4.xyz = ivec3(subgroupShuffleDown(lessThan(data[1].i4.xyz, ivec3(0)), invocation));
|
||||
data[3].i4 = ivec4(subgroupShuffleDown(lessThan(data[1].i4, ivec4(0)), invocation));
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
#version 320 es
|
||||
|
||||
#extension GL_KHR_shader_subgroup_vote: enable
|
||||
|
||||
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
int r;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u;
|
||||
|
||||
if (subgroupAll(data[0].r < 0))
|
||||
{
|
||||
data[0].r = int(subgroupAllEqual(data[0].f4.x));
|
||||
data[0].r = int(subgroupAllEqual(data[1].f4.xy));
|
||||
data[0].r = int(subgroupAllEqual(data[2].f4.xyz));
|
||||
data[0].r = int(subgroupAllEqual(data[3].f4));
|
||||
|
||||
data[0].r = int(subgroupAllEqual(data[0].i4.x));
|
||||
data[0].r = int(subgroupAllEqual(data[1].i4.xy));
|
||||
data[0].r = int(subgroupAllEqual(data[2].i4.xyz));
|
||||
data[0].r = int(subgroupAllEqual(data[3].i4));
|
||||
|
||||
data[0].r = int(subgroupAllEqual(data[0].u4.x));
|
||||
data[0].r = int(subgroupAllEqual(data[1].u4.xy));
|
||||
data[0].r = int(subgroupAllEqual(data[2].u4.xyz));
|
||||
data[0].r = int(subgroupAllEqual(data[3].u4));
|
||||
}
|
||||
else if (subgroupAny(data[1].r < 0))
|
||||
{
|
||||
data[1].r = int(int(subgroupAllEqual(data[0].i4.x < 0)));
|
||||
data[1].r = int(ivec2(subgroupAllEqual(lessThan(data[1].i4.xy, ivec2(0)))));
|
||||
data[1].r = int(ivec3(subgroupAllEqual(lessThan(data[1].i4.xyz, ivec3(0)))));
|
||||
data[1].r = int(ivec4(subgroupAllEqual(lessThan(data[1].i4, ivec4(0)))));
|
||||
}
|
||||
}
|
|
@ -8,8 +8,6 @@ void main()
|
|||
{
|
||||
uvec3 id = gl_LaunchIDNV;
|
||||
uvec3 size = gl_LaunchSizeNV;
|
||||
uint curFlags = gl_IncomingRayFlagsNV;
|
||||
curFlags = curFlags & gl_RayFlagsOpaqueNV;
|
||||
data1 = 256U;
|
||||
executeCallableNV(2,1);
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ void main()
|
|||
mat4x3 e11 = gl_WorldToObjectNV; // ERROR, unsupported builtin in stage
|
||||
float e12 = gl_HitTNV; // ERROR, unsupported builtin in stage
|
||||
float e13 = gl_HitKindNV; // ERROR, unsupported builtin in stage
|
||||
uint curFlags = gl_IncomingRayFlagsNV; // ERROR, unsupported builtin in stage
|
||||
reportIntersectionNV(1.0, 1U); // ERROR, unsupported builtin in stage
|
||||
ignoreIntersectionNV(); // ERROR, unsupported builtin in stage
|
||||
terminateRayNV(); // ERROR, unsupported builtin in stage
|
||||
|
|
|
@ -1873,7 +1873,8 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||
}
|
||||
|
||||
// GL_KHR_shader_subgroup
|
||||
if (spvVersion.vulkan > 0) {
|
||||
if ((profile == EEsProfile && version >= 310) ||
|
||||
(profile != EEsProfile && version >= 140)) {
|
||||
commonBuiltins.append(
|
||||
"void subgroupBarrier();"
|
||||
"void subgroupMemoryBarrier();"
|
||||
|
@ -6126,7 +6127,8 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||
}
|
||||
|
||||
// GL_KHR_shader_subgroup
|
||||
if (spvVersion.vulkan > 0) {
|
||||
if ((profile == EEsProfile && version >= 310) ||
|
||||
(profile != EEsProfile && version >= 140)) {
|
||||
const char* ballotDecls =
|
||||
"in mediump uint gl_SubgroupSize;"
|
||||
"in mediump uint gl_SubgroupInvocationID;"
|
||||
|
@ -6240,7 +6242,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||
const char *callableDecls =
|
||||
"in uvec3 gl_LaunchIDNV;"
|
||||
"in uvec3 gl_LaunchSizeNV;"
|
||||
"in uint gl_IncomingRayFlagsNV;"
|
||||
"\n";
|
||||
|
||||
stageBuiltins[EShLangRayGenNV].append(rayGenDecls);
|
||||
|
@ -8160,7 +8161,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||
}
|
||||
|
||||
// GL_KHR_shader_subgroup
|
||||
if (spvVersion.vulkan > 0) {
|
||||
if ((profile == EEsProfile && version >= 310) ||
|
||||
(profile != EEsProfile && version >= 140)) {
|
||||
symbolTable.setVariableExtensions("gl_SubgroupSize", 1, &E_GL_KHR_shader_subgroup_basic);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupInvocationID", 1, &E_GL_KHR_shader_subgroup_basic);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupEqMask", 1, &E_GL_KHR_shader_subgroup_ballot);
|
||||
|
@ -8479,7 +8481,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||
}
|
||||
|
||||
// GL_KHR_shader_subgroup
|
||||
if (spvVersion.vulkan > 0) {
|
||||
if ((profile == EEsProfile && version >= 310) ||
|
||||
(profile != EEsProfile && version >= 140)) {
|
||||
symbolTable.setVariableExtensions("gl_SubgroupSize", 1, &E_GL_KHR_shader_subgroup_basic);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupInvocationID", 1, &E_GL_KHR_shader_subgroup_basic);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupEqMask", 1, &E_GL_KHR_shader_subgroup_ballot);
|
||||
|
@ -8663,7 +8666,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||
}
|
||||
|
||||
// GL_KHR_shader_subgroup
|
||||
if (spvVersion.vulkan > 0) {
|
||||
if ((profile == EEsProfile && version >= 310) ||
|
||||
(profile != EEsProfile && version >= 140)) {
|
||||
symbolTable.setVariableExtensions("gl_SubgroupSize", 1, &E_GL_KHR_shader_subgroup_basic);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupInvocationID", 1, &E_GL_KHR_shader_subgroup_basic);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupEqMask", 1, &E_GL_KHR_shader_subgroup_ballot);
|
||||
|
@ -8690,7 +8694,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||
}
|
||||
|
||||
// GL_KHR_shader_subgroup
|
||||
if (spvVersion.vulkan > 0) {
|
||||
if ((profile == EEsProfile && version >= 310) ||
|
||||
(profile != EEsProfile && version >= 140)) {
|
||||
symbolTable.setVariableExtensions("gl_NumSubgroups", 1, &E_GL_KHR_shader_subgroup_basic);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupID", 1, &E_GL_KHR_shader_subgroup_basic);
|
||||
|
||||
|
@ -8859,7 +8864,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||
}
|
||||
|
||||
// GL_KHR_shader_subgroup
|
||||
if (spvVersion.vulkan > 0) {
|
||||
if ((profile == EEsProfile && version >= 310) ||
|
||||
(profile != EEsProfile && version >= 140)) {
|
||||
symbolTable.setVariableExtensions("gl_NumSubgroups", 1, &E_GL_KHR_shader_subgroup_basic);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupID", 1, &E_GL_KHR_shader_subgroup_basic);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupSize", 1, &E_GL_KHR_shader_subgroup_basic);
|
||||
|
@ -8948,7 +8954,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||
}
|
||||
|
||||
// GL_KHR_shader_subgroup
|
||||
if (spvVersion.vulkan > 0) {
|
||||
if ((profile == EEsProfile && version >= 310) ||
|
||||
(profile != EEsProfile && version >= 140)) {
|
||||
symbolTable.setVariableExtensions("gl_NumSubgroups", 1, &E_GL_KHR_shader_subgroup_basic);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupID", 1, &E_GL_KHR_shader_subgroup_basic);
|
||||
symbolTable.setVariableExtensions("gl_SubgroupSize", 1, &E_GL_KHR_shader_subgroup_basic);
|
||||
|
@ -9365,7 +9372,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||
}
|
||||
|
||||
// GL_KHR_shader_subgroup
|
||||
if (spvVersion.vulkan > 0) {
|
||||
if ((profile == EEsProfile && version >= 310) ||
|
||||
(profile != EEsProfile && version >= 140)) {
|
||||
symbolTable.relateToOperator("subgroupBarrier", EOpSubgroupBarrier);
|
||||
symbolTable.relateToOperator("subgroupMemoryBarrier", EOpSubgroupMemoryBarrier);
|
||||
symbolTable.relateToOperator("subgroupMemoryBarrierBuffer", EOpSubgroupMemoryBarrierBuffer);
|
||||
|
|
|
@ -236,7 +236,39 @@ INSTANTIATE_TEST_CASE_P(
|
|||
"precise_struct_block.vert",
|
||||
"maxClipDistances.vert",
|
||||
"findFunction.frag",
|
||||
"constantUnaryConversion.comp"
|
||||
"constantUnaryConversion.comp",
|
||||
"glsl.450.subgroup.frag",
|
||||
"glsl.450.subgroup.geom",
|
||||
"glsl.450.subgroup.tesc",
|
||||
"glsl.450.subgroup.tese",
|
||||
"glsl.450.subgroup.vert",
|
||||
"glsl.450.subgroupArithmetic.comp",
|
||||
"glsl.450.subgroupBasic.comp",
|
||||
"glsl.450.subgroupBallot.comp",
|
||||
"glsl.450.subgroupBallotNeg.comp",
|
||||
"glsl.450.subgroupClustered.comp",
|
||||
"glsl.450.subgroupClusteredNeg.comp",
|
||||
"glsl.450.subgroupPartitioned.comp",
|
||||
"glsl.450.subgroupShuffle.comp",
|
||||
"glsl.450.subgroupShuffleRelative.comp",
|
||||
"glsl.450.subgroupQuad.comp",
|
||||
"glsl.450.subgroupVote.comp",
|
||||
"glsl.es320.subgroup.frag",
|
||||
"glsl.es320.subgroup.geom",
|
||||
"glsl.es320.subgroup.tesc",
|
||||
"glsl.es320.subgroup.tese",
|
||||
"glsl.es320.subgroup.vert",
|
||||
"glsl.es320.subgroupArithmetic.comp",
|
||||
"glsl.es320.subgroupBasic.comp",
|
||||
"glsl.es320.subgroupBallot.comp",
|
||||
"glsl.es320.subgroupBallotNeg.comp",
|
||||
"glsl.es320.subgroupClustered.comp",
|
||||
"glsl.es320.subgroupClusteredNeg.comp",
|
||||
"glsl.es320.subgroupPartitioned.comp",
|
||||
"glsl.es320.subgroupShuffle.comp",
|
||||
"glsl.es320.subgroupShuffleRelative.comp",
|
||||
"glsl.es320.subgroupQuad.comp",
|
||||
"glsl.es320.subgroupVote.comp",
|
||||
})),
|
||||
FileNameAsCustomTestSuffix
|
||||
);
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
"site" : "github",
|
||||
"subrepo" : "KhronosGroup/SPIRV-Tools",
|
||||
"subdir" : "External/spirv-tools",
|
||||
"commit" : "b12e7338eeeaa06571839d1dfbc21126180090cc"
|
||||
"commit" : "2ff54e34ed3730477401f340c71ae14b7641031e"
|
||||
},
|
||||
{
|
||||
"name" : "spirv-tools/external/spirv-headers",
|
||||
"site" : "github",
|
||||
"subrepo" : "KhronosGroup/SPIRV-Headers",
|
||||
"subdir" : "External/spirv-tools/external/spirv-headers",
|
||||
"commit" : "3beb2a0373101562e1a1206edc33cf64fae87b54"
|
||||
"commit" : "111a25e4ae45e2b4d7c18415e1d6884712b958c4"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue