Add GL_EXT_shader_subgroup_extended_types support
This commit is contained in:
parent
8b8adf79c1
commit
c5b669e04c
@ -6837,8 +6837,9 @@ spv::Id TGlslangToSpvTraverser::createSubgroupOperation(glslang::TOperator op, s
|
|||||||
default: assert(0 && "Unhandled subgroup operation!");
|
default: assert(0 && "Unhandled subgroup operation!");
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64;
|
|
||||||
const bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble;
|
const bool isUnsigned = isTypeUnsignedInt(typeProxy);
|
||||||
|
const bool isFloat = isTypeFloat(typeProxy);
|
||||||
const bool isBool = typeProxy == glslang::EbtBool;
|
const bool isBool = typeProxy == glslang::EbtBool;
|
||||||
|
|
||||||
spv::Op opCode = spv::OpNop;
|
spv::Op opCode = spv::OpNop;
|
||||||
|
@ -11,7 +11,7 @@ spv.specConstant.vert
|
|||||||
Source GLSL 400
|
Source GLSL 400
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "arraySize"
|
Name 9 "arraySize"
|
||||||
Name 14 "foo(vf4[s2769];"
|
Name 14 "foo(vf4[s4393];"
|
||||||
Name 13 "p"
|
Name 13 "p"
|
||||||
Name 17 "builtin_spec_constant("
|
Name 17 "builtin_spec_constant("
|
||||||
Name 20 "color"
|
Name 20 "color"
|
||||||
@ -102,10 +102,10 @@ spv.specConstant.vert
|
|||||||
Store 20(color) 46
|
Store 20(color) 46
|
||||||
48: 10 Load 22(ucol)
|
48: 10 Load 22(ucol)
|
||||||
Store 47(param) 48
|
Store 47(param) 48
|
||||||
49: 2 FunctionCall 14(foo(vf4[s2769];) 47(param)
|
49: 2 FunctionCall 14(foo(vf4[s4393];) 47(param)
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
14(foo(vf4[s2769];): 2 Function None 12
|
14(foo(vf4[s4393];): 2 Function None 12
|
||||||
13(p): 11(ptr) FunctionParameter
|
13(p): 11(ptr) FunctionParameter
|
||||||
15: Label
|
15: Label
|
||||||
54: 24(ptr) AccessChain 53(dupUcol) 23
|
54: 24(ptr) AccessChain 53(dupUcol) 23
|
||||||
|
4280
Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out
Normal file
4280
Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out
Normal file
File diff suppressed because it is too large
Load Diff
557
Test/baseResults/spv.subgroupExtendedTypesArithmeticNeg.comp.out
Normal file
557
Test/baseResults/spv.subgroupExtendedTypesArithmeticNeg.comp.out
Normal file
@ -0,0 +1,557 @@
|
|||||||
|
spv.subgroupExtendedTypesArithmeticNeg.comp
|
||||||
|
ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:36: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:37: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:38: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:41: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:42: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:43: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:46: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:47: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:48: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:51: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:52: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:53: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:56: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:57: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:58: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:61: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:62: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:63: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:66: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:67: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:68: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:71: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:72: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:73: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:76: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:77: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:78: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:81: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:82: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:83: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:86: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:87: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:88: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:89: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:91: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:92: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:93: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:94: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:96: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:97: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:98: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:99: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:101: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:102: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:103: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:104: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:106: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:107: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:108: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:109: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:111: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:112: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:113: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:114: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:116: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:117: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:118: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:119: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:121: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:122: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:123: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:124: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:126: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:127: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:128: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:129: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:131: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:132: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:133: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:134: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:136: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:137: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:138: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:139: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:141: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:142: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:143: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:144: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:146: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:147: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:148: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:149: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:151: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:152: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:153: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:154: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:156: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:157: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:158: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:159: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:161: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:162: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:163: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:164: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:166: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:167: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:168: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:169: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:171: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:172: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:173: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:174: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:176: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:177: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:178: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:179: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:181: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:182: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:183: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:184: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:186: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:187: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:188: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:189: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:191: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:192: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:193: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:194: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:196: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:197: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:198: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:199: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:201: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:202: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:203: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:204: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:206: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:207: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:208: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:209: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:211: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:212: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:213: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:214: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:216: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:217: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:218: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:219: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:221: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:222: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:223: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:224: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:226: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:227: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:228: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:229: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:231: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:232: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:233: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:234: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:236: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:237: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:238: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:239: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:241: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:242: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:243: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:244: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:246: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:247: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:248: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:249: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:251: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:252: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:253: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:254: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:256: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:257: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:258: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:259: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:261: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:262: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:263: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:264: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:266: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:267: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:268: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:269: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:271: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:272: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:273: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:274: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:276: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:277: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:278: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:279: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:281: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:282: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:283: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:284: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:286: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:287: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:288: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:289: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:291: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:292: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:293: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:294: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:296: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:297: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:298: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:299: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:301: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:302: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:303: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:304: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:306: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:307: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:308: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:309: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:311: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:312: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:313: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:314: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:316: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:317: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:318: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:319: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:321: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:322: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:323: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:324: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:326: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:327: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:328: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:329: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:331: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:332: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:333: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:334: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:336: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:337: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:338: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:339: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:341: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:342: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:343: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:344: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:346: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:347: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:348: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:349: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:351: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:352: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:353: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:354: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:356: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:357: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:358: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:359: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:361: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:362: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:363: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:364: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:366: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:367: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:368: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:369: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:371: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:372: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:373: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:374: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:376: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:377: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:378: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:379: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:381: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:382: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:383: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:384: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:386: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:387: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:388: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:389: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:391: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:392: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:393: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:394: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:396: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:397: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:398: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:399: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:401: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:402: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:403: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:404: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:406: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:407: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:408: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:409: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:411: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:412: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:413: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:414: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:416: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:417: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:418: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:419: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:421: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:422: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:423: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:424: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:426: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:427: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:428: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:429: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:431: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:432: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:433: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:434: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:436: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:437: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:438: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:439: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:441: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:442: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:443: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:444: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:446: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:447: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:448: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:449: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:451: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:452: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:453: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:454: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:456: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:457: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:458: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:459: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:461: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:462: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:463: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:464: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:466: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:467: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:468: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:469: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:471: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:472: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:473: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:474: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:476: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:477: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:478: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:479: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:481: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:482: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:483: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:484: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:486: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:487: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:488: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:489: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:491: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:492: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:493: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:494: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:496: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:497: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:498: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:499: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:501: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:502: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:503: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:504: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:506: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:507: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:508: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:509: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:511: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:512: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:513: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:514: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:516: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:517: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:518: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:519: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:521: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:522: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:523: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:524: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:526: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:527: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:528: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:529: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:531: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:532: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:533: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:534: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:536: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:537: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:538: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:539: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:541: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:542: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:543: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:544: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:546: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:547: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:548: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:549: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:551: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:552: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:553: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:554: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:556: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:557: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:558: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:559: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:561: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:562: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:563: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:564: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:566: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:567: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:568: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:569: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:571: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:572: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:573: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:574: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:576: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:577: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:578: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:579: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:581: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:582: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:583: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:584: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:586: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:587: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:588: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:589: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:591: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:592: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:593: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:594: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:596: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:597: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:598: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:599: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:601: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:602: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:603: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:604: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:606: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:607: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:608: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:609: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:611: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:612: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:613: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:614: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:616: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:617: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:618: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:619: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:621: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:622: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:623: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:624: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:626: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:627: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:628: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:629: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:631: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:632: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:633: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:634: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:636: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:637: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:638: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:639: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:641: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:642: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:643: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:644: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:646: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:647: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:648: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:649: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:651: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:652: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:653: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:654: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:656: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:657: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:658: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:659: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:661: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:662: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:663: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:664: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:666: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:667: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:668: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:669: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:671: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:672: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:673: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:674: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:676: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:677: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:678: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:679: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:681: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:682: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:683: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:684: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:686: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:687: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:688: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:689: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:691: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:692: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:693: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:694: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:696: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:697: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:698: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:699: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:701: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:702: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:703: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:704: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:706: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:707: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:708: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:709: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:711: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:712: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:713: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:714: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 552 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
SPIR-V is not generated for failed compile or link
|
560
Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out
Normal file
560
Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out
Normal file
@ -0,0 +1,560 @@
|
|||||||
|
spv.subgroupExtendedTypesBallot.comp
|
||||||
|
// Module Version 10300
|
||||||
|
// Generated by (magic number): 80007
|
||||||
|
// Id's are bound by 441
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability Float16
|
||||||
|
Capability Int64
|
||||||
|
Capability Int16
|
||||||
|
Capability Int8
|
||||||
|
Capability GroupNonUniform
|
||||||
|
Capability GroupNonUniformBallot
|
||||||
|
Capability StorageUniformBufferBlock16
|
||||||
|
Capability StorageBuffer8BitAccess
|
||||||
|
Extension "SPV_KHR_8bit_storage"
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint GLCompute 4 "main" 10 12
|
||||||
|
ExecutionMode 4 LocalSize 8 1 1
|
||||||
|
Source GLSL 450
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_float16"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_int16"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_int64"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_int8"
|
||||||
|
SourceExtension "GL_KHR_shader_subgroup_ballot"
|
||||||
|
SourceExtension "GL_KHR_shader_subgroup_basic"
|
||||||
|
Name 4 "main"
|
||||||
|
Name 8 "invocation"
|
||||||
|
Name 10 "gl_SubgroupInvocationID"
|
||||||
|
Name 12 "gl_SubgroupSize"
|
||||||
|
Name 31 "Buffers"
|
||||||
|
MemberName 31(Buffers) 0 "i8"
|
||||||
|
MemberName 31(Buffers) 1 "u8"
|
||||||
|
MemberName 31(Buffers) 2 "i16"
|
||||||
|
MemberName 31(Buffers) 3 "u16"
|
||||||
|
MemberName 31(Buffers) 4 "i64"
|
||||||
|
MemberName 31(Buffers) 5 "u64"
|
||||||
|
MemberName 31(Buffers) 6 "f16"
|
||||||
|
Name 34 "data"
|
||||||
|
Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision
|
||||||
|
Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
|
||||||
|
Decorate 11 RelaxedPrecision
|
||||||
|
Decorate 12(gl_SubgroupSize) RelaxedPrecision
|
||||||
|
Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize
|
||||||
|
Decorate 13 RelaxedPrecision
|
||||||
|
Decorate 14 RelaxedPrecision
|
||||||
|
Decorate 16 RelaxedPrecision
|
||||||
|
MemberDecorate 31(Buffers) 0 Offset 0
|
||||||
|
MemberDecorate 31(Buffers) 1 Offset 4
|
||||||
|
MemberDecorate 31(Buffers) 2 Offset 8
|
||||||
|
MemberDecorate 31(Buffers) 3 Offset 16
|
||||||
|
MemberDecorate 31(Buffers) 4 Offset 32
|
||||||
|
MemberDecorate 31(Buffers) 5 Offset 64
|
||||||
|
MemberDecorate 31(Buffers) 6 Offset 96
|
||||||
|
Decorate 31(Buffers) Block
|
||||||
|
Decorate 34(data) DescriptorSet 0
|
||||||
|
Decorate 34(data) Binding 0
|
||||||
|
Decorate 440 BuiltIn WorkgroupSize
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeInt 32 0
|
||||||
|
7: TypePointer Function 6(int)
|
||||||
|
9: TypePointer Input 6(int)
|
||||||
|
10(gl_SubgroupInvocationID): 9(ptr) Variable Input
|
||||||
|
12(gl_SubgroupSize): 9(ptr) Variable Input
|
||||||
|
15: 6(int) Constant 4
|
||||||
|
17: TypeInt 8 1
|
||||||
|
18: TypeVector 17(int8_t) 4
|
||||||
|
19: TypeInt 8 0
|
||||||
|
20: TypeVector 19(int8_t) 4
|
||||||
|
21: TypeInt 16 1
|
||||||
|
22: TypeVector 21(int16_t) 4
|
||||||
|
23: TypeInt 16 0
|
||||||
|
24: TypeVector 23(int16_t) 4
|
||||||
|
25: TypeInt 64 1
|
||||||
|
26: TypeVector 25(int64_t) 4
|
||||||
|
27: TypeInt 64 0
|
||||||
|
28: TypeVector 27(int64_t) 4
|
||||||
|
29: TypeFloat 16
|
||||||
|
30: TypeVector 29(float16_t) 4
|
||||||
|
31(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4)
|
||||||
|
32: TypeArray 31(Buffers) 15
|
||||||
|
33: TypePointer StorageBuffer 32
|
||||||
|
34(data): 33(ptr) Variable StorageBuffer
|
||||||
|
36: TypeInt 32 1
|
||||||
|
37: 36(int) Constant 0
|
||||||
|
38: 6(int) Constant 0
|
||||||
|
39: TypePointer StorageBuffer 17(int8_t)
|
||||||
|
42: 6(int) Constant 3
|
||||||
|
46: 36(int) Constant 1
|
||||||
|
47: TypeVector 17(int8_t) 2
|
||||||
|
48: TypePointer StorageBuffer 18(i8vec4)
|
||||||
|
57: 36(int) Constant 2
|
||||||
|
58: TypeVector 17(int8_t) 3
|
||||||
|
67: 36(int) Constant 3
|
||||||
|
99: TypePointer StorageBuffer 19(int8_t)
|
||||||
|
105: TypeVector 19(int8_t) 2
|
||||||
|
106: TypePointer StorageBuffer 20(i8vec4)
|
||||||
|
115: TypeVector 19(int8_t) 3
|
||||||
|
155: TypePointer StorageBuffer 21(int16_t)
|
||||||
|
161: TypeVector 21(int16_t) 2
|
||||||
|
162: TypePointer StorageBuffer 22(i16vec4)
|
||||||
|
171: TypeVector 21(int16_t) 3
|
||||||
|
211: TypePointer StorageBuffer 23(int16_t)
|
||||||
|
217: TypeVector 23(int16_t) 2
|
||||||
|
218: TypePointer StorageBuffer 24(i16vec4)
|
||||||
|
227: TypeVector 23(int16_t) 3
|
||||||
|
267: 36(int) Constant 4
|
||||||
|
268: TypePointer StorageBuffer 25(int64_t)
|
||||||
|
274: TypeVector 25(int64_t) 2
|
||||||
|
275: TypePointer StorageBuffer 26(i64vec4)
|
||||||
|
284: TypeVector 25(int64_t) 3
|
||||||
|
324: 36(int) Constant 5
|
||||||
|
325: TypePointer StorageBuffer 27(int64_t)
|
||||||
|
331: TypeVector 27(int64_t) 2
|
||||||
|
332: TypePointer StorageBuffer 28(i64vec4)
|
||||||
|
341: TypeVector 27(int64_t) 3
|
||||||
|
381: 36(int) Constant 6
|
||||||
|
382: TypePointer StorageBuffer 29(float16_t)
|
||||||
|
388: TypeVector 29(float16_t) 2
|
||||||
|
389: TypePointer StorageBuffer 30(f16vec4)
|
||||||
|
398: TypeVector 29(float16_t) 3
|
||||||
|
437: TypeVector 6(int) 3
|
||||||
|
438: 6(int) Constant 8
|
||||||
|
439: 6(int) Constant 1
|
||||||
|
440: 437(ivec3) ConstantComposite 438 439 439
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
8(invocation): 7(ptr) Variable Function
|
||||||
|
11: 6(int) Load 10(gl_SubgroupInvocationID)
|
||||||
|
13: 6(int) Load 12(gl_SubgroupSize)
|
||||||
|
14: 6(int) IAdd 11 13
|
||||||
|
16: 6(int) UMod 14 15
|
||||||
|
Store 8(invocation) 16
|
||||||
|
35: 6(int) Load 8(invocation)
|
||||||
|
40: 39(ptr) AccessChain 34(data) 37 37 38
|
||||||
|
41: 17(int8_t) Load 40
|
||||||
|
43: 17(int8_t) GroupNonUniformBroadcast 42 41 42
|
||||||
|
44: 39(ptr) AccessChain 34(data) 35 37 38
|
||||||
|
Store 44 43
|
||||||
|
45: 6(int) Load 8(invocation)
|
||||||
|
49: 48(ptr) AccessChain 34(data) 46 37
|
||||||
|
50: 18(i8vec4) Load 49
|
||||||
|
51: 47(i8vec2) VectorShuffle 50 50 0 1
|
||||||
|
52: 47(i8vec2) GroupNonUniformBroadcast 42 51 42
|
||||||
|
53: 48(ptr) AccessChain 34(data) 45 37
|
||||||
|
54: 18(i8vec4) Load 53
|
||||||
|
55: 18(i8vec4) VectorShuffle 54 52 4 5 2 3
|
||||||
|
Store 53 55
|
||||||
|
56: 6(int) Load 8(invocation)
|
||||||
|
59: 48(ptr) AccessChain 34(data) 57 37
|
||||||
|
60: 18(i8vec4) Load 59
|
||||||
|
61: 58(i8vec3) VectorShuffle 60 60 0 1 2
|
||||||
|
62: 58(i8vec3) GroupNonUniformBroadcast 42 61 42
|
||||||
|
63: 48(ptr) AccessChain 34(data) 56 37
|
||||||
|
64: 18(i8vec4) Load 63
|
||||||
|
65: 18(i8vec4) VectorShuffle 64 62 4 5 6 3
|
||||||
|
Store 63 65
|
||||||
|
66: 6(int) Load 8(invocation)
|
||||||
|
68: 48(ptr) AccessChain 34(data) 67 37
|
||||||
|
69: 18(i8vec4) Load 68
|
||||||
|
70: 18(i8vec4) GroupNonUniformBroadcast 42 69 42
|
||||||
|
71: 48(ptr) AccessChain 34(data) 66 37
|
||||||
|
Store 71 70
|
||||||
|
72: 6(int) Load 8(invocation)
|
||||||
|
73: 39(ptr) AccessChain 34(data) 37 37 38
|
||||||
|
74: 17(int8_t) Load 73
|
||||||
|
75: 17(int8_t) GroupNonUniformBroadcastFirst 42 74
|
||||||
|
76: 39(ptr) AccessChain 34(data) 72 37 38
|
||||||
|
Store 76 75
|
||||||
|
77: 6(int) Load 8(invocation)
|
||||||
|
78: 48(ptr) AccessChain 34(data) 46 37
|
||||||
|
79: 18(i8vec4) Load 78
|
||||||
|
80: 47(i8vec2) VectorShuffle 79 79 0 1
|
||||||
|
81: 47(i8vec2) GroupNonUniformBroadcastFirst 42 80
|
||||||
|
82: 48(ptr) AccessChain 34(data) 77 37
|
||||||
|
83: 18(i8vec4) Load 82
|
||||||
|
84: 18(i8vec4) VectorShuffle 83 81 4 5 2 3
|
||||||
|
Store 82 84
|
||||||
|
85: 6(int) Load 8(invocation)
|
||||||
|
86: 48(ptr) AccessChain 34(data) 57 37
|
||||||
|
87: 18(i8vec4) Load 86
|
||||||
|
88: 58(i8vec3) VectorShuffle 87 87 0 1 2
|
||||||
|
89: 58(i8vec3) GroupNonUniformBroadcastFirst 42 88
|
||||||
|
90: 48(ptr) AccessChain 34(data) 85 37
|
||||||
|
91: 18(i8vec4) Load 90
|
||||||
|
92: 18(i8vec4) VectorShuffle 91 89 4 5 6 3
|
||||||
|
Store 90 92
|
||||||
|
93: 6(int) Load 8(invocation)
|
||||||
|
94: 48(ptr) AccessChain 34(data) 67 37
|
||||||
|
95: 18(i8vec4) Load 94
|
||||||
|
96: 18(i8vec4) GroupNonUniformBroadcastFirst 42 95
|
||||||
|
97: 48(ptr) AccessChain 34(data) 93 37
|
||||||
|
Store 97 96
|
||||||
|
98: 6(int) Load 8(invocation)
|
||||||
|
100: 99(ptr) AccessChain 34(data) 37 46 38
|
||||||
|
101: 19(int8_t) Load 100
|
||||||
|
102: 19(int8_t) GroupNonUniformBroadcast 42 101 42
|
||||||
|
103: 99(ptr) AccessChain 34(data) 98 46 38
|
||||||
|
Store 103 102
|
||||||
|
104: 6(int) Load 8(invocation)
|
||||||
|
107: 106(ptr) AccessChain 34(data) 46 46
|
||||||
|
108: 20(i8vec4) Load 107
|
||||||
|
109: 105(i8vec2) VectorShuffle 108 108 0 1
|
||||||
|
110: 105(i8vec2) GroupNonUniformBroadcast 42 109 42
|
||||||
|
111: 106(ptr) AccessChain 34(data) 104 46
|
||||||
|
112: 20(i8vec4) Load 111
|
||||||
|
113: 20(i8vec4) VectorShuffle 112 110 4 5 2 3
|
||||||
|
Store 111 113
|
||||||
|
114: 6(int) Load 8(invocation)
|
||||||
|
116: 106(ptr) AccessChain 34(data) 57 46
|
||||||
|
117: 20(i8vec4) Load 116
|
||||||
|
118: 115(i8vec3) VectorShuffle 117 117 0 1 2
|
||||||
|
119: 115(i8vec3) GroupNonUniformBroadcast 42 118 42
|
||||||
|
120: 106(ptr) AccessChain 34(data) 114 46
|
||||||
|
121: 20(i8vec4) Load 120
|
||||||
|
122: 20(i8vec4) VectorShuffle 121 119 4 5 6 3
|
||||||
|
Store 120 122
|
||||||
|
123: 6(int) Load 8(invocation)
|
||||||
|
124: 106(ptr) AccessChain 34(data) 67 46
|
||||||
|
125: 20(i8vec4) Load 124
|
||||||
|
126: 20(i8vec4) GroupNonUniformBroadcast 42 125 42
|
||||||
|
127: 106(ptr) AccessChain 34(data) 123 46
|
||||||
|
Store 127 126
|
||||||
|
128: 6(int) Load 8(invocation)
|
||||||
|
129: 99(ptr) AccessChain 34(data) 37 46 38
|
||||||
|
130: 19(int8_t) Load 129
|
||||||
|
131: 19(int8_t) GroupNonUniformBroadcastFirst 42 130
|
||||||
|
132: 99(ptr) AccessChain 34(data) 128 46 38
|
||||||
|
Store 132 131
|
||||||
|
133: 6(int) Load 8(invocation)
|
||||||
|
134: 106(ptr) AccessChain 34(data) 46 46
|
||||||
|
135: 20(i8vec4) Load 134
|
||||||
|
136: 105(i8vec2) VectorShuffle 135 135 0 1
|
||||||
|
137: 105(i8vec2) GroupNonUniformBroadcastFirst 42 136
|
||||||
|
138: 106(ptr) AccessChain 34(data) 133 46
|
||||||
|
139: 20(i8vec4) Load 138
|
||||||
|
140: 20(i8vec4) VectorShuffle 139 137 4 5 2 3
|
||||||
|
Store 138 140
|
||||||
|
141: 6(int) Load 8(invocation)
|
||||||
|
142: 106(ptr) AccessChain 34(data) 57 46
|
||||||
|
143: 20(i8vec4) Load 142
|
||||||
|
144: 115(i8vec3) VectorShuffle 143 143 0 1 2
|
||||||
|
145: 115(i8vec3) GroupNonUniformBroadcastFirst 42 144
|
||||||
|
146: 106(ptr) AccessChain 34(data) 141 46
|
||||||
|
147: 20(i8vec4) Load 146
|
||||||
|
148: 20(i8vec4) VectorShuffle 147 145 4 5 6 3
|
||||||
|
Store 146 148
|
||||||
|
149: 6(int) Load 8(invocation)
|
||||||
|
150: 106(ptr) AccessChain 34(data) 67 46
|
||||||
|
151: 20(i8vec4) Load 150
|
||||||
|
152: 20(i8vec4) GroupNonUniformBroadcastFirst 42 151
|
||||||
|
153: 106(ptr) AccessChain 34(data) 149 46
|
||||||
|
Store 153 152
|
||||||
|
154: 6(int) Load 8(invocation)
|
||||||
|
156: 155(ptr) AccessChain 34(data) 37 57 38
|
||||||
|
157: 21(int16_t) Load 156
|
||||||
|
158: 21(int16_t) GroupNonUniformBroadcast 42 157 42
|
||||||
|
159: 155(ptr) AccessChain 34(data) 154 57 38
|
||||||
|
Store 159 158
|
||||||
|
160: 6(int) Load 8(invocation)
|
||||||
|
163: 162(ptr) AccessChain 34(data) 46 57
|
||||||
|
164: 22(i16vec4) Load 163
|
||||||
|
165:161(i16vec2) VectorShuffle 164 164 0 1
|
||||||
|
166:161(i16vec2) GroupNonUniformBroadcast 42 165 42
|
||||||
|
167: 162(ptr) AccessChain 34(data) 160 57
|
||||||
|
168: 22(i16vec4) Load 167
|
||||||
|
169: 22(i16vec4) VectorShuffle 168 166 4 5 2 3
|
||||||
|
Store 167 169
|
||||||
|
170: 6(int) Load 8(invocation)
|
||||||
|
172: 162(ptr) AccessChain 34(data) 57 57
|
||||||
|
173: 22(i16vec4) Load 172
|
||||||
|
174:171(i16vec3) VectorShuffle 173 173 0 1 2
|
||||||
|
175:171(i16vec3) GroupNonUniformBroadcast 42 174 42
|
||||||
|
176: 162(ptr) AccessChain 34(data) 170 57
|
||||||
|
177: 22(i16vec4) Load 176
|
||||||
|
178: 22(i16vec4) VectorShuffle 177 175 4 5 6 3
|
||||||
|
Store 176 178
|
||||||
|
179: 6(int) Load 8(invocation)
|
||||||
|
180: 162(ptr) AccessChain 34(data) 67 57
|
||||||
|
181: 22(i16vec4) Load 180
|
||||||
|
182: 22(i16vec4) GroupNonUniformBroadcast 42 181 42
|
||||||
|
183: 162(ptr) AccessChain 34(data) 179 57
|
||||||
|
Store 183 182
|
||||||
|
184: 6(int) Load 8(invocation)
|
||||||
|
185: 155(ptr) AccessChain 34(data) 37 57 38
|
||||||
|
186: 21(int16_t) Load 185
|
||||||
|
187: 21(int16_t) GroupNonUniformBroadcastFirst 42 186
|
||||||
|
188: 155(ptr) AccessChain 34(data) 184 57 38
|
||||||
|
Store 188 187
|
||||||
|
189: 6(int) Load 8(invocation)
|
||||||
|
190: 162(ptr) AccessChain 34(data) 46 57
|
||||||
|
191: 22(i16vec4) Load 190
|
||||||
|
192:161(i16vec2) VectorShuffle 191 191 0 1
|
||||||
|
193:161(i16vec2) GroupNonUniformBroadcastFirst 42 192
|
||||||
|
194: 162(ptr) AccessChain 34(data) 189 57
|
||||||
|
195: 22(i16vec4) Load 194
|
||||||
|
196: 22(i16vec4) VectorShuffle 195 193 4 5 2 3
|
||||||
|
Store 194 196
|
||||||
|
197: 6(int) Load 8(invocation)
|
||||||
|
198: 162(ptr) AccessChain 34(data) 57 57
|
||||||
|
199: 22(i16vec4) Load 198
|
||||||
|
200:171(i16vec3) VectorShuffle 199 199 0 1 2
|
||||||
|
201:171(i16vec3) GroupNonUniformBroadcastFirst 42 200
|
||||||
|
202: 162(ptr) AccessChain 34(data) 197 57
|
||||||
|
203: 22(i16vec4) Load 202
|
||||||
|
204: 22(i16vec4) VectorShuffle 203 201 4 5 6 3
|
||||||
|
Store 202 204
|
||||||
|
205: 6(int) Load 8(invocation)
|
||||||
|
206: 162(ptr) AccessChain 34(data) 67 57
|
||||||
|
207: 22(i16vec4) Load 206
|
||||||
|
208: 22(i16vec4) GroupNonUniformBroadcastFirst 42 207
|
||||||
|
209: 162(ptr) AccessChain 34(data) 205 57
|
||||||
|
Store 209 208
|
||||||
|
210: 6(int) Load 8(invocation)
|
||||||
|
212: 211(ptr) AccessChain 34(data) 37 67 38
|
||||||
|
213: 23(int16_t) Load 212
|
||||||
|
214: 23(int16_t) GroupNonUniformBroadcast 42 213 42
|
||||||
|
215: 211(ptr) AccessChain 34(data) 210 67 38
|
||||||
|
Store 215 214
|
||||||
|
216: 6(int) Load 8(invocation)
|
||||||
|
219: 218(ptr) AccessChain 34(data) 46 67
|
||||||
|
220: 24(i16vec4) Load 219
|
||||||
|
221:217(i16vec2) VectorShuffle 220 220 0 1
|
||||||
|
222:217(i16vec2) GroupNonUniformBroadcast 42 221 42
|
||||||
|
223: 218(ptr) AccessChain 34(data) 216 67
|
||||||
|
224: 24(i16vec4) Load 223
|
||||||
|
225: 24(i16vec4) VectorShuffle 224 222 4 5 2 3
|
||||||
|
Store 223 225
|
||||||
|
226: 6(int) Load 8(invocation)
|
||||||
|
228: 218(ptr) AccessChain 34(data) 57 67
|
||||||
|
229: 24(i16vec4) Load 228
|
||||||
|
230:227(i16vec3) VectorShuffle 229 229 0 1 2
|
||||||
|
231:227(i16vec3) GroupNonUniformBroadcast 42 230 42
|
||||||
|
232: 218(ptr) AccessChain 34(data) 226 67
|
||||||
|
233: 24(i16vec4) Load 232
|
||||||
|
234: 24(i16vec4) VectorShuffle 233 231 4 5 6 3
|
||||||
|
Store 232 234
|
||||||
|
235: 6(int) Load 8(invocation)
|
||||||
|
236: 218(ptr) AccessChain 34(data) 67 67
|
||||||
|
237: 24(i16vec4) Load 236
|
||||||
|
238: 24(i16vec4) GroupNonUniformBroadcast 42 237 42
|
||||||
|
239: 218(ptr) AccessChain 34(data) 235 67
|
||||||
|
Store 239 238
|
||||||
|
240: 6(int) Load 8(invocation)
|
||||||
|
241: 211(ptr) AccessChain 34(data) 37 67 38
|
||||||
|
242: 23(int16_t) Load 241
|
||||||
|
243: 23(int16_t) GroupNonUniformBroadcastFirst 42 242
|
||||||
|
244: 211(ptr) AccessChain 34(data) 240 67 38
|
||||||
|
Store 244 243
|
||||||
|
245: 6(int) Load 8(invocation)
|
||||||
|
246: 218(ptr) AccessChain 34(data) 46 67
|
||||||
|
247: 24(i16vec4) Load 246
|
||||||
|
248:217(i16vec2) VectorShuffle 247 247 0 1
|
||||||
|
249:217(i16vec2) GroupNonUniformBroadcastFirst 42 248
|
||||||
|
250: 218(ptr) AccessChain 34(data) 245 67
|
||||||
|
251: 24(i16vec4) Load 250
|
||||||
|
252: 24(i16vec4) VectorShuffle 251 249 4 5 2 3
|
||||||
|
Store 250 252
|
||||||
|
253: 6(int) Load 8(invocation)
|
||||||
|
254: 218(ptr) AccessChain 34(data) 57 67
|
||||||
|
255: 24(i16vec4) Load 254
|
||||||
|
256:227(i16vec3) VectorShuffle 255 255 0 1 2
|
||||||
|
257:227(i16vec3) GroupNonUniformBroadcastFirst 42 256
|
||||||
|
258: 218(ptr) AccessChain 34(data) 253 67
|
||||||
|
259: 24(i16vec4) Load 258
|
||||||
|
260: 24(i16vec4) VectorShuffle 259 257 4 5 6 3
|
||||||
|
Store 258 260
|
||||||
|
261: 6(int) Load 8(invocation)
|
||||||
|
262: 218(ptr) AccessChain 34(data) 67 67
|
||||||
|
263: 24(i16vec4) Load 262
|
||||||
|
264: 24(i16vec4) GroupNonUniformBroadcastFirst 42 263
|
||||||
|
265: 218(ptr) AccessChain 34(data) 261 67
|
||||||
|
Store 265 264
|
||||||
|
266: 6(int) Load 8(invocation)
|
||||||
|
269: 268(ptr) AccessChain 34(data) 37 267 38
|
||||||
|
270: 25(int64_t) Load 269
|
||||||
|
271: 25(int64_t) GroupNonUniformBroadcast 42 270 42
|
||||||
|
272: 268(ptr) AccessChain 34(data) 266 267 38
|
||||||
|
Store 272 271
|
||||||
|
273: 6(int) Load 8(invocation)
|
||||||
|
276: 275(ptr) AccessChain 34(data) 46 267
|
||||||
|
277: 26(i64vec4) Load 276
|
||||||
|
278:274(i64vec2) VectorShuffle 277 277 0 1
|
||||||
|
279:274(i64vec2) GroupNonUniformBroadcast 42 278 42
|
||||||
|
280: 275(ptr) AccessChain 34(data) 273 267
|
||||||
|
281: 26(i64vec4) Load 280
|
||||||
|
282: 26(i64vec4) VectorShuffle 281 279 4 5 2 3
|
||||||
|
Store 280 282
|
||||||
|
283: 6(int) Load 8(invocation)
|
||||||
|
285: 275(ptr) AccessChain 34(data) 57 267
|
||||||
|
286: 26(i64vec4) Load 285
|
||||||
|
287:284(i64vec3) VectorShuffle 286 286 0 1 2
|
||||||
|
288:284(i64vec3) GroupNonUniformBroadcast 42 287 42
|
||||||
|
289: 275(ptr) AccessChain 34(data) 283 267
|
||||||
|
290: 26(i64vec4) Load 289
|
||||||
|
291: 26(i64vec4) VectorShuffle 290 288 4 5 6 3
|
||||||
|
Store 289 291
|
||||||
|
292: 6(int) Load 8(invocation)
|
||||||
|
293: 275(ptr) AccessChain 34(data) 67 267
|
||||||
|
294: 26(i64vec4) Load 293
|
||||||
|
295: 26(i64vec4) GroupNonUniformBroadcast 42 294 42
|
||||||
|
296: 275(ptr) AccessChain 34(data) 292 267
|
||||||
|
Store 296 295
|
||||||
|
297: 6(int) Load 8(invocation)
|
||||||
|
298: 268(ptr) AccessChain 34(data) 37 267 38
|
||||||
|
299: 25(int64_t) Load 298
|
||||||
|
300: 25(int64_t) GroupNonUniformBroadcastFirst 42 299
|
||||||
|
301: 268(ptr) AccessChain 34(data) 297 267 38
|
||||||
|
Store 301 300
|
||||||
|
302: 6(int) Load 8(invocation)
|
||||||
|
303: 275(ptr) AccessChain 34(data) 46 267
|
||||||
|
304: 26(i64vec4) Load 303
|
||||||
|
305:274(i64vec2) VectorShuffle 304 304 0 1
|
||||||
|
306:274(i64vec2) GroupNonUniformBroadcastFirst 42 305
|
||||||
|
307: 275(ptr) AccessChain 34(data) 302 267
|
||||||
|
308: 26(i64vec4) Load 307
|
||||||
|
309: 26(i64vec4) VectorShuffle 308 306 4 5 2 3
|
||||||
|
Store 307 309
|
||||||
|
310: 6(int) Load 8(invocation)
|
||||||
|
311: 275(ptr) AccessChain 34(data) 57 267
|
||||||
|
312: 26(i64vec4) Load 311
|
||||||
|
313:284(i64vec3) VectorShuffle 312 312 0 1 2
|
||||||
|
314:284(i64vec3) GroupNonUniformBroadcastFirst 42 313
|
||||||
|
315: 275(ptr) AccessChain 34(data) 310 267
|
||||||
|
316: 26(i64vec4) Load 315
|
||||||
|
317: 26(i64vec4) VectorShuffle 316 314 4 5 6 3
|
||||||
|
Store 315 317
|
||||||
|
318: 6(int) Load 8(invocation)
|
||||||
|
319: 275(ptr) AccessChain 34(data) 67 267
|
||||||
|
320: 26(i64vec4) Load 319
|
||||||
|
321: 26(i64vec4) GroupNonUniformBroadcastFirst 42 320
|
||||||
|
322: 275(ptr) AccessChain 34(data) 318 267
|
||||||
|
Store 322 321
|
||||||
|
323: 6(int) Load 8(invocation)
|
||||||
|
326: 325(ptr) AccessChain 34(data) 37 324 38
|
||||||
|
327: 27(int64_t) Load 326
|
||||||
|
328: 27(int64_t) GroupNonUniformBroadcast 42 327 42
|
||||||
|
329: 325(ptr) AccessChain 34(data) 323 324 38
|
||||||
|
Store 329 328
|
||||||
|
330: 6(int) Load 8(invocation)
|
||||||
|
333: 332(ptr) AccessChain 34(data) 46 324
|
||||||
|
334: 28(i64vec4) Load 333
|
||||||
|
335:331(i64vec2) VectorShuffle 334 334 0 1
|
||||||
|
336:331(i64vec2) GroupNonUniformBroadcast 42 335 42
|
||||||
|
337: 332(ptr) AccessChain 34(data) 330 324
|
||||||
|
338: 28(i64vec4) Load 337
|
||||||
|
339: 28(i64vec4) VectorShuffle 338 336 4 5 2 3
|
||||||
|
Store 337 339
|
||||||
|
340: 6(int) Load 8(invocation)
|
||||||
|
342: 332(ptr) AccessChain 34(data) 57 324
|
||||||
|
343: 28(i64vec4) Load 342
|
||||||
|
344:341(i64vec3) VectorShuffle 343 343 0 1 2
|
||||||
|
345:341(i64vec3) GroupNonUniformBroadcast 42 344 42
|
||||||
|
346: 332(ptr) AccessChain 34(data) 340 324
|
||||||
|
347: 28(i64vec4) Load 346
|
||||||
|
348: 28(i64vec4) VectorShuffle 347 345 4 5 6 3
|
||||||
|
Store 346 348
|
||||||
|
349: 6(int) Load 8(invocation)
|
||||||
|
350: 332(ptr) AccessChain 34(data) 67 324
|
||||||
|
351: 28(i64vec4) Load 350
|
||||||
|
352: 28(i64vec4) GroupNonUniformBroadcast 42 351 42
|
||||||
|
353: 332(ptr) AccessChain 34(data) 349 324
|
||||||
|
Store 353 352
|
||||||
|
354: 6(int) Load 8(invocation)
|
||||||
|
355: 325(ptr) AccessChain 34(data) 37 324 38
|
||||||
|
356: 27(int64_t) Load 355
|
||||||
|
357: 27(int64_t) GroupNonUniformBroadcastFirst 42 356
|
||||||
|
358: 325(ptr) AccessChain 34(data) 354 324 38
|
||||||
|
Store 358 357
|
||||||
|
359: 6(int) Load 8(invocation)
|
||||||
|
360: 332(ptr) AccessChain 34(data) 46 324
|
||||||
|
361: 28(i64vec4) Load 360
|
||||||
|
362:331(i64vec2) VectorShuffle 361 361 0 1
|
||||||
|
363:331(i64vec2) GroupNonUniformBroadcastFirst 42 362
|
||||||
|
364: 332(ptr) AccessChain 34(data) 359 324
|
||||||
|
365: 28(i64vec4) Load 364
|
||||||
|
366: 28(i64vec4) VectorShuffle 365 363 4 5 2 3
|
||||||
|
Store 364 366
|
||||||
|
367: 6(int) Load 8(invocation)
|
||||||
|
368: 332(ptr) AccessChain 34(data) 57 324
|
||||||
|
369: 28(i64vec4) Load 368
|
||||||
|
370:341(i64vec3) VectorShuffle 369 369 0 1 2
|
||||||
|
371:341(i64vec3) GroupNonUniformBroadcastFirst 42 370
|
||||||
|
372: 332(ptr) AccessChain 34(data) 367 324
|
||||||
|
373: 28(i64vec4) Load 372
|
||||||
|
374: 28(i64vec4) VectorShuffle 373 371 4 5 6 3
|
||||||
|
Store 372 374
|
||||||
|
375: 6(int) Load 8(invocation)
|
||||||
|
376: 332(ptr) AccessChain 34(data) 67 324
|
||||||
|
377: 28(i64vec4) Load 376
|
||||||
|
378: 28(i64vec4) GroupNonUniformBroadcastFirst 42 377
|
||||||
|
379: 332(ptr) AccessChain 34(data) 375 324
|
||||||
|
Store 379 378
|
||||||
|
380: 6(int) Load 8(invocation)
|
||||||
|
383: 382(ptr) AccessChain 34(data) 37 381 38
|
||||||
|
384:29(float16_t) Load 383
|
||||||
|
385:29(float16_t) GroupNonUniformBroadcast 42 384 42
|
||||||
|
386: 382(ptr) AccessChain 34(data) 380 381 38
|
||||||
|
Store 386 385
|
||||||
|
387: 6(int) Load 8(invocation)
|
||||||
|
390: 389(ptr) AccessChain 34(data) 46 381
|
||||||
|
391: 30(f16vec4) Load 390
|
||||||
|
392:388(f16vec2) VectorShuffle 391 391 0 1
|
||||||
|
393:388(f16vec2) GroupNonUniformBroadcast 42 392 42
|
||||||
|
394: 389(ptr) AccessChain 34(data) 387 381
|
||||||
|
395: 30(f16vec4) Load 394
|
||||||
|
396: 30(f16vec4) VectorShuffle 395 393 4 5 2 3
|
||||||
|
Store 394 396
|
||||||
|
397: 6(int) Load 8(invocation)
|
||||||
|
399: 389(ptr) AccessChain 34(data) 57 381
|
||||||
|
400: 30(f16vec4) Load 399
|
||||||
|
401:398(f16vec3) VectorShuffle 400 400 0 1 2
|
||||||
|
402:398(f16vec3) GroupNonUniformBroadcast 42 401 42
|
||||||
|
403: 389(ptr) AccessChain 34(data) 397 381
|
||||||
|
404: 30(f16vec4) Load 403
|
||||||
|
405: 30(f16vec4) VectorShuffle 404 402 4 5 6 3
|
||||||
|
Store 403 405
|
||||||
|
406: 6(int) Load 8(invocation)
|
||||||
|
407: 389(ptr) AccessChain 34(data) 67 381
|
||||||
|
408: 30(f16vec4) Load 407
|
||||||
|
409: 30(f16vec4) GroupNonUniformBroadcast 42 408 42
|
||||||
|
410: 389(ptr) AccessChain 34(data) 406 381
|
||||||
|
Store 410 409
|
||||||
|
411: 6(int) Load 8(invocation)
|
||||||
|
412: 382(ptr) AccessChain 34(data) 37 381 38
|
||||||
|
413:29(float16_t) Load 412
|
||||||
|
414:29(float16_t) GroupNonUniformBroadcastFirst 42 413
|
||||||
|
415: 382(ptr) AccessChain 34(data) 411 381 38
|
||||||
|
Store 415 414
|
||||||
|
416: 6(int) Load 8(invocation)
|
||||||
|
417: 389(ptr) AccessChain 34(data) 46 381
|
||||||
|
418: 30(f16vec4) Load 417
|
||||||
|
419:388(f16vec2) VectorShuffle 418 418 0 1
|
||||||
|
420:388(f16vec2) GroupNonUniformBroadcastFirst 42 419
|
||||||
|
421: 389(ptr) AccessChain 34(data) 416 381
|
||||||
|
422: 30(f16vec4) Load 421
|
||||||
|
423: 30(f16vec4) VectorShuffle 422 420 4 5 2 3
|
||||||
|
Store 421 423
|
||||||
|
424: 6(int) Load 8(invocation)
|
||||||
|
425: 389(ptr) AccessChain 34(data) 57 381
|
||||||
|
426: 30(f16vec4) Load 425
|
||||||
|
427:398(f16vec3) VectorShuffle 426 426 0 1 2
|
||||||
|
428:398(f16vec3) GroupNonUniformBroadcastFirst 42 427
|
||||||
|
429: 389(ptr) AccessChain 34(data) 424 381
|
||||||
|
430: 30(f16vec4) Load 429
|
||||||
|
431: 30(f16vec4) VectorShuffle 430 428 4 5 6 3
|
||||||
|
Store 429 431
|
||||||
|
432: 6(int) Load 8(invocation)
|
||||||
|
433: 389(ptr) AccessChain 34(data) 67 381
|
||||||
|
434: 30(f16vec4) Load 433
|
||||||
|
435: 30(f16vec4) GroupNonUniformBroadcastFirst 42 434
|
||||||
|
436: 389(ptr) AccessChain 34(data) 432 381
|
||||||
|
Store 436 435
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
61
Test/baseResults/spv.subgroupExtendedTypesBallotNeg.comp.out
Normal file
61
Test/baseResults/spv.subgroupExtendedTypesBallotNeg.comp.out
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
spv.subgroupExtendedTypesBallotNeg.comp
|
||||||
|
ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:30: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:31: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:32: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:33: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:35: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:36: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:37: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:38: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:39: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:40: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:41: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:42: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:44: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:45: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:46: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:47: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:48: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:49: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:50: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:51: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:53: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:54: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:55: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:56: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:57: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:58: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:59: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:60: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:62: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:63: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:64: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:65: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:66: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:67: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:68: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:71: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:72: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:73: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:75: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:76: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:77: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:78: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:80: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:81: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:82: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:83: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:84: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:85: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:86: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:87: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 56 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
SPIR-V is not generated for failed compile or link
|
9
Test/baseResults/spv.subgroupExtendedTypesBasic.comp.out
Normal file
9
Test/baseResults/spv.subgroupExtendedTypesBasic.comp.out
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
spv.subgroupExtendedTypesBasic.comp
|
||||||
|
ERROR: #version: compute shaders require es profile with version 310 or above, or non-es profile with version 420 or above
|
||||||
|
ERROR: #version: statement must appear first in es-profile shader; before comments or newlines
|
||||||
|
ERROR: 1 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
ERROR: Linking compute stage: Missing entry point: Each stage requires one entry point
|
||||||
|
|
||||||
|
SPIR-V is not generated for failed compile or link
|
1520
Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out
Normal file
1520
Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out
Normal file
File diff suppressed because it is too large
Load Diff
189
Test/baseResults/spv.subgroupExtendedTypesClusteredNeg.comp.out
Normal file
189
Test/baseResults/spv.subgroupExtendedTypesClusteredNeg.comp.out
Normal file
@ -0,0 +1,189 @@
|
|||||||
|
spv.subgroupExtendedTypesClusteredNeg.comp
|
||||||
|
ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:36: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:37: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:38: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:41: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:42: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:43: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:46: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:47: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:48: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:51: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:52: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:53: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:56: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:57: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:58: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:61: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:62: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:63: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:66: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:67: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:68: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:71: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:72: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:73: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:76: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:77: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:78: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:81: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:82: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:83: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:86: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:87: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:88: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:89: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:91: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:92: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:93: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:94: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:96: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:97: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:98: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:99: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:101: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:102: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:103: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:104: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:106: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:107: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:108: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:109: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:111: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:112: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:113: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:114: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:116: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:117: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:118: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:119: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:121: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:122: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:123: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:124: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:126: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:127: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:128: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:129: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:131: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:132: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:133: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:134: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:136: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:137: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:138: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:139: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:141: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:142: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:143: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:144: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:146: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:147: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:148: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:149: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:151: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:152: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:153: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:154: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:156: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:157: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:158: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:159: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:161: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:162: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:163: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:164: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:166: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:167: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:168: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:169: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:171: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:172: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:173: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:174: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:176: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:177: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:178: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:179: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:181: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:182: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:183: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:184: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:186: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:187: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:188: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:189: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:191: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:192: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:193: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:194: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:196: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:197: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:198: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:199: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:201: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:202: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:203: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:204: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:206: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:207: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:208: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:209: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:211: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:212: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:213: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:214: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:216: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:217: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:218: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:219: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:221: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:222: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:223: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:224: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:226: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:227: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:228: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:229: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:231: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:232: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:233: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:234: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:236: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:237: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:238: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:239: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:241: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:242: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:243: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:244: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:246: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:247: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:248: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:249: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:251: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:252: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:253: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:254: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 184 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
SPIR-V is not generated for failed compile or link
|
1835
Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out
Normal file
1835
Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,217 @@
|
|||||||
|
spv.subgroupExtendedTypesPartitionedNeg.comp
|
||||||
|
ERROR: 0:27: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:28: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:29: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:30: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:32: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:33: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:34: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:35: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:37: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:38: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:39: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:40: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:42: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:43: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:44: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:45: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:47: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:48: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:49: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:50: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:52: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:53: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:54: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:55: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:57: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:58: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:59: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:60: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:62: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:63: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:64: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:65: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:67: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:68: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:69: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:70: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:72: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:73: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:74: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:75: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:77: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:78: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:79: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:80: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:82: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:83: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:84: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:85: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:87: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:88: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:89: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:90: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:92: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:93: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:94: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:95: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:97: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:98: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:99: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:100: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:102: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:103: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:104: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:105: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:107: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:108: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:109: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:110: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:112: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:113: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:114: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:115: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:117: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:118: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:119: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:120: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:122: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:123: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:124: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:125: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:127: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:128: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:129: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:130: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:132: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:133: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:134: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:135: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:137: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:138: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:139: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:140: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:142: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:143: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:144: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:145: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:147: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:148: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:149: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:150: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:152: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:153: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:154: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:155: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:157: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:158: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:159: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:160: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:162: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:163: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:164: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:165: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:167: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:168: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:169: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:170: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:172: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:173: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:174: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:175: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:177: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:178: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:179: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:180: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:182: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:183: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:184: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:185: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:187: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:188: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:189: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:190: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:192: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:193: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:194: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:195: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:197: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:198: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:199: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:200: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:202: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:203: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:204: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:205: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:207: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:208: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:209: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:210: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:212: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:213: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:214: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:215: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:217: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:218: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:219: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:220: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:222: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:223: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:224: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:225: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:227: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:228: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:229: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:230: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:232: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:233: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:234: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:235: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:237: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:238: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:239: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:240: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:242: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:243: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:244: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:245: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:247: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:248: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:249: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:250: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:252: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:253: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:254: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:255: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:257: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:258: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:259: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:260: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:262: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:263: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:264: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:265: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:267: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:268: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:269: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:270: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:272: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:273: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:274: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:275: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:277: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:278: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:279: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:280: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:282: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:283: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:284: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:285: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:287: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:288: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:289: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:290: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 212 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
SPIR-V is not generated for failed compile or link
|
981
Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out
Normal file
981
Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out
Normal file
@ -0,0 +1,981 @@
|
|||||||
|
spv.subgroupExtendedTypesQuad.comp
|
||||||
|
// Module Version 10300
|
||||||
|
// Generated by (magic number): 80007
|
||||||
|
// Id's are bound by 806
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability Float16
|
||||||
|
Capability Int64
|
||||||
|
Capability Int16
|
||||||
|
Capability Int8
|
||||||
|
Capability GroupNonUniform
|
||||||
|
Capability GroupNonUniformQuad
|
||||||
|
Capability StorageUniformBufferBlock16
|
||||||
|
Capability StorageBuffer8BitAccess
|
||||||
|
Extension "SPV_KHR_8bit_storage"
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint GLCompute 4 "main" 10 12
|
||||||
|
ExecutionMode 4 LocalSize 8 1 1
|
||||||
|
Source GLSL 450
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_float16"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_int16"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_int64"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_int8"
|
||||||
|
SourceExtension "GL_KHR_shader_subgroup_basic"
|
||||||
|
SourceExtension "GL_KHR_shader_subgroup_quad"
|
||||||
|
Name 4 "main"
|
||||||
|
Name 8 "invocation"
|
||||||
|
Name 10 "gl_SubgroupInvocationID"
|
||||||
|
Name 12 "gl_SubgroupSize"
|
||||||
|
Name 31 "Buffers"
|
||||||
|
MemberName 31(Buffers) 0 "i8"
|
||||||
|
MemberName 31(Buffers) 1 "u8"
|
||||||
|
MemberName 31(Buffers) 2 "i16"
|
||||||
|
MemberName 31(Buffers) 3 "u16"
|
||||||
|
MemberName 31(Buffers) 4 "i64"
|
||||||
|
MemberName 31(Buffers) 5 "u64"
|
||||||
|
MemberName 31(Buffers) 6 "f16"
|
||||||
|
Name 34 "data"
|
||||||
|
Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision
|
||||||
|
Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
|
||||||
|
Decorate 11 RelaxedPrecision
|
||||||
|
Decorate 12(gl_SubgroupSize) RelaxedPrecision
|
||||||
|
Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize
|
||||||
|
Decorate 13 RelaxedPrecision
|
||||||
|
Decorate 14 RelaxedPrecision
|
||||||
|
Decorate 16 RelaxedPrecision
|
||||||
|
MemberDecorate 31(Buffers) 0 Offset 0
|
||||||
|
MemberDecorate 31(Buffers) 1 Offset 4
|
||||||
|
MemberDecorate 31(Buffers) 2 Offset 8
|
||||||
|
MemberDecorate 31(Buffers) 3 Offset 16
|
||||||
|
MemberDecorate 31(Buffers) 4 Offset 32
|
||||||
|
MemberDecorate 31(Buffers) 5 Offset 64
|
||||||
|
MemberDecorate 31(Buffers) 6 Offset 96
|
||||||
|
Decorate 31(Buffers) Block
|
||||||
|
Decorate 34(data) DescriptorSet 0
|
||||||
|
Decorate 34(data) Binding 0
|
||||||
|
Decorate 805 BuiltIn WorkgroupSize
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeInt 32 0
|
||||||
|
7: TypePointer Function 6(int)
|
||||||
|
9: TypePointer Input 6(int)
|
||||||
|
10(gl_SubgroupInvocationID): 9(ptr) Variable Input
|
||||||
|
12(gl_SubgroupSize): 9(ptr) Variable Input
|
||||||
|
15: 6(int) Constant 4
|
||||||
|
17: TypeInt 8 1
|
||||||
|
18: TypeVector 17(int8_t) 4
|
||||||
|
19: TypeInt 8 0
|
||||||
|
20: TypeVector 19(int8_t) 4
|
||||||
|
21: TypeInt 16 1
|
||||||
|
22: TypeVector 21(int16_t) 4
|
||||||
|
23: TypeInt 16 0
|
||||||
|
24: TypeVector 23(int16_t) 4
|
||||||
|
25: TypeInt 64 1
|
||||||
|
26: TypeVector 25(int64_t) 4
|
||||||
|
27: TypeInt 64 0
|
||||||
|
28: TypeVector 27(int64_t) 4
|
||||||
|
29: TypeFloat 16
|
||||||
|
30: TypeVector 29(float16_t) 4
|
||||||
|
31(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4)
|
||||||
|
32: TypeArray 31(Buffers) 15
|
||||||
|
33: TypePointer StorageBuffer 32
|
||||||
|
34(data): 33(ptr) Variable StorageBuffer
|
||||||
|
36: TypeInt 32 1
|
||||||
|
37: 36(int) Constant 0
|
||||||
|
38: 6(int) Constant 0
|
||||||
|
39: TypePointer StorageBuffer 17(int8_t)
|
||||||
|
42: 6(int) Constant 1
|
||||||
|
43: 6(int) Constant 3
|
||||||
|
47: 36(int) Constant 1
|
||||||
|
48: TypeVector 17(int8_t) 2
|
||||||
|
49: TypePointer StorageBuffer 18(i8vec4)
|
||||||
|
58: 36(int) Constant 2
|
||||||
|
59: TypeVector 17(int8_t) 3
|
||||||
|
68: 36(int) Constant 3
|
||||||
|
128: 6(int) Constant 2
|
||||||
|
153: TypePointer StorageBuffer 19(int8_t)
|
||||||
|
159: TypeVector 19(int8_t) 2
|
||||||
|
160: TypePointer StorageBuffer 20(i8vec4)
|
||||||
|
169: TypeVector 19(int8_t) 3
|
||||||
|
261: TypePointer StorageBuffer 21(int16_t)
|
||||||
|
267: TypeVector 21(int16_t) 2
|
||||||
|
268: TypePointer StorageBuffer 22(i16vec4)
|
||||||
|
277: TypeVector 21(int16_t) 3
|
||||||
|
369: TypePointer StorageBuffer 23(int16_t)
|
||||||
|
375: TypeVector 23(int16_t) 2
|
||||||
|
376: TypePointer StorageBuffer 24(i16vec4)
|
||||||
|
385: TypeVector 23(int16_t) 3
|
||||||
|
477: 36(int) Constant 4
|
||||||
|
478: TypePointer StorageBuffer 25(int64_t)
|
||||||
|
484: TypeVector 25(int64_t) 2
|
||||||
|
485: TypePointer StorageBuffer 26(i64vec4)
|
||||||
|
494: TypeVector 25(int64_t) 3
|
||||||
|
586: 36(int) Constant 5
|
||||||
|
587: TypePointer StorageBuffer 27(int64_t)
|
||||||
|
593: TypeVector 27(int64_t) 2
|
||||||
|
594: TypePointer StorageBuffer 28(i64vec4)
|
||||||
|
603: TypeVector 27(int64_t) 3
|
||||||
|
695: 36(int) Constant 6
|
||||||
|
696: TypePointer StorageBuffer 29(float16_t)
|
||||||
|
702: TypeVector 29(float16_t) 2
|
||||||
|
703: TypePointer StorageBuffer 30(f16vec4)
|
||||||
|
712: TypeVector 29(float16_t) 3
|
||||||
|
803: TypeVector 6(int) 3
|
||||||
|
804: 6(int) Constant 8
|
||||||
|
805: 803(ivec3) ConstantComposite 804 42 42
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
8(invocation): 7(ptr) Variable Function
|
||||||
|
11: 6(int) Load 10(gl_SubgroupInvocationID)
|
||||||
|
13: 6(int) Load 12(gl_SubgroupSize)
|
||||||
|
14: 6(int) IAdd 11 13
|
||||||
|
16: 6(int) UMod 14 15
|
||||||
|
Store 8(invocation) 16
|
||||||
|
35: 6(int) Load 8(invocation)
|
||||||
|
40: 39(ptr) AccessChain 34(data) 37 37 38
|
||||||
|
41: 17(int8_t) Load 40
|
||||||
|
44: 17(int8_t) GroupNonUniformQuadBroadcast 43 41 42
|
||||||
|
45: 39(ptr) AccessChain 34(data) 35 37 38
|
||||||
|
Store 45 44
|
||||||
|
46: 6(int) Load 8(invocation)
|
||||||
|
50: 49(ptr) AccessChain 34(data) 47 37
|
||||||
|
51: 18(i8vec4) Load 50
|
||||||
|
52: 48(i8vec2) VectorShuffle 51 51 0 1
|
||||||
|
53: 48(i8vec2) GroupNonUniformQuadBroadcast 43 52 42
|
||||||
|
54: 49(ptr) AccessChain 34(data) 46 37
|
||||||
|
55: 18(i8vec4) Load 54
|
||||||
|
56: 18(i8vec4) VectorShuffle 55 53 4 5 2 3
|
||||||
|
Store 54 56
|
||||||
|
57: 6(int) Load 8(invocation)
|
||||||
|
60: 49(ptr) AccessChain 34(data) 58 37
|
||||||
|
61: 18(i8vec4) Load 60
|
||||||
|
62: 59(i8vec3) VectorShuffle 61 61 0 1 2
|
||||||
|
63: 59(i8vec3) GroupNonUniformQuadBroadcast 43 62 42
|
||||||
|
64: 49(ptr) AccessChain 34(data) 57 37
|
||||||
|
65: 18(i8vec4) Load 64
|
||||||
|
66: 18(i8vec4) VectorShuffle 65 63 4 5 6 3
|
||||||
|
Store 64 66
|
||||||
|
67: 6(int) Load 8(invocation)
|
||||||
|
69: 49(ptr) AccessChain 34(data) 68 37
|
||||||
|
70: 18(i8vec4) Load 69
|
||||||
|
71: 18(i8vec4) GroupNonUniformQuadBroadcast 43 70 42
|
||||||
|
72: 49(ptr) AccessChain 34(data) 67 37
|
||||||
|
Store 72 71
|
||||||
|
73: 6(int) Load 8(invocation)
|
||||||
|
74: 39(ptr) AccessChain 34(data) 37 37 38
|
||||||
|
75: 17(int8_t) Load 74
|
||||||
|
76: 17(int8_t) GroupNonUniformQuadSwap 43 75 38
|
||||||
|
77: 39(ptr) AccessChain 34(data) 73 37 38
|
||||||
|
Store 77 76
|
||||||
|
78: 6(int) Load 8(invocation)
|
||||||
|
79: 49(ptr) AccessChain 34(data) 47 37
|
||||||
|
80: 18(i8vec4) Load 79
|
||||||
|
81: 48(i8vec2) VectorShuffle 80 80 0 1
|
||||||
|
82: 48(i8vec2) GroupNonUniformQuadSwap 43 81 38
|
||||||
|
83: 49(ptr) AccessChain 34(data) 78 37
|
||||||
|
84: 18(i8vec4) Load 83
|
||||||
|
85: 18(i8vec4) VectorShuffle 84 82 4 5 2 3
|
||||||
|
Store 83 85
|
||||||
|
86: 6(int) Load 8(invocation)
|
||||||
|
87: 49(ptr) AccessChain 34(data) 58 37
|
||||||
|
88: 18(i8vec4) Load 87
|
||||||
|
89: 59(i8vec3) VectorShuffle 88 88 0 1 2
|
||||||
|
90: 59(i8vec3) GroupNonUniformQuadSwap 43 89 38
|
||||||
|
91: 49(ptr) AccessChain 34(data) 86 37
|
||||||
|
92: 18(i8vec4) Load 91
|
||||||
|
93: 18(i8vec4) VectorShuffle 92 90 4 5 6 3
|
||||||
|
Store 91 93
|
||||||
|
94: 6(int) Load 8(invocation)
|
||||||
|
95: 49(ptr) AccessChain 34(data) 68 37
|
||||||
|
96: 18(i8vec4) Load 95
|
||||||
|
97: 18(i8vec4) GroupNonUniformQuadSwap 43 96 38
|
||||||
|
98: 49(ptr) AccessChain 34(data) 94 37
|
||||||
|
Store 98 97
|
||||||
|
99: 6(int) Load 8(invocation)
|
||||||
|
100: 39(ptr) AccessChain 34(data) 37 37 38
|
||||||
|
101: 17(int8_t) Load 100
|
||||||
|
102: 17(int8_t) GroupNonUniformQuadSwap 43 101 42
|
||||||
|
103: 39(ptr) AccessChain 34(data) 99 37 38
|
||||||
|
Store 103 102
|
||||||
|
104: 6(int) Load 8(invocation)
|
||||||
|
105: 49(ptr) AccessChain 34(data) 47 37
|
||||||
|
106: 18(i8vec4) Load 105
|
||||||
|
107: 48(i8vec2) VectorShuffle 106 106 0 1
|
||||||
|
108: 48(i8vec2) GroupNonUniformQuadSwap 43 107 42
|
||||||
|
109: 49(ptr) AccessChain 34(data) 104 37
|
||||||
|
110: 18(i8vec4) Load 109
|
||||||
|
111: 18(i8vec4) VectorShuffle 110 108 4 5 2 3
|
||||||
|
Store 109 111
|
||||||
|
112: 6(int) Load 8(invocation)
|
||||||
|
113: 49(ptr) AccessChain 34(data) 58 37
|
||||||
|
114: 18(i8vec4) Load 113
|
||||||
|
115: 59(i8vec3) VectorShuffle 114 114 0 1 2
|
||||||
|
116: 59(i8vec3) GroupNonUniformQuadSwap 43 115 42
|
||||||
|
117: 49(ptr) AccessChain 34(data) 112 37
|
||||||
|
118: 18(i8vec4) Load 117
|
||||||
|
119: 18(i8vec4) VectorShuffle 118 116 4 5 6 3
|
||||||
|
Store 117 119
|
||||||
|
120: 6(int) Load 8(invocation)
|
||||||
|
121: 49(ptr) AccessChain 34(data) 68 37
|
||||||
|
122: 18(i8vec4) Load 121
|
||||||
|
123: 18(i8vec4) GroupNonUniformQuadSwap 43 122 42
|
||||||
|
124: 49(ptr) AccessChain 34(data) 120 37
|
||||||
|
Store 124 123
|
||||||
|
125: 6(int) Load 8(invocation)
|
||||||
|
126: 39(ptr) AccessChain 34(data) 37 37 38
|
||||||
|
127: 17(int8_t) Load 126
|
||||||
|
129: 17(int8_t) GroupNonUniformQuadSwap 43 127 128
|
||||||
|
130: 39(ptr) AccessChain 34(data) 125 37 38
|
||||||
|
Store 130 129
|
||||||
|
131: 6(int) Load 8(invocation)
|
||||||
|
132: 49(ptr) AccessChain 34(data) 47 37
|
||||||
|
133: 18(i8vec4) Load 132
|
||||||
|
134: 48(i8vec2) VectorShuffle 133 133 0 1
|
||||||
|
135: 48(i8vec2) GroupNonUniformQuadSwap 43 134 128
|
||||||
|
136: 49(ptr) AccessChain 34(data) 131 37
|
||||||
|
137: 18(i8vec4) Load 136
|
||||||
|
138: 18(i8vec4) VectorShuffle 137 135 4 5 2 3
|
||||||
|
Store 136 138
|
||||||
|
139: 6(int) Load 8(invocation)
|
||||||
|
140: 49(ptr) AccessChain 34(data) 58 37
|
||||||
|
141: 18(i8vec4) Load 140
|
||||||
|
142: 59(i8vec3) VectorShuffle 141 141 0 1 2
|
||||||
|
143: 59(i8vec3) GroupNonUniformQuadSwap 43 142 128
|
||||||
|
144: 49(ptr) AccessChain 34(data) 139 37
|
||||||
|
145: 18(i8vec4) Load 144
|
||||||
|
146: 18(i8vec4) VectorShuffle 145 143 4 5 6 3
|
||||||
|
Store 144 146
|
||||||
|
147: 6(int) Load 8(invocation)
|
||||||
|
148: 49(ptr) AccessChain 34(data) 68 37
|
||||||
|
149: 18(i8vec4) Load 148
|
||||||
|
150: 18(i8vec4) GroupNonUniformQuadSwap 43 149 128
|
||||||
|
151: 49(ptr) AccessChain 34(data) 147 37
|
||||||
|
Store 151 150
|
||||||
|
152: 6(int) Load 8(invocation)
|
||||||
|
154: 153(ptr) AccessChain 34(data) 37 47 38
|
||||||
|
155: 19(int8_t) Load 154
|
||||||
|
156: 19(int8_t) GroupNonUniformQuadBroadcast 43 155 42
|
||||||
|
157: 153(ptr) AccessChain 34(data) 152 47 38
|
||||||
|
Store 157 156
|
||||||
|
158: 6(int) Load 8(invocation)
|
||||||
|
161: 160(ptr) AccessChain 34(data) 47 47
|
||||||
|
162: 20(i8vec4) Load 161
|
||||||
|
163: 159(i8vec2) VectorShuffle 162 162 0 1
|
||||||
|
164: 159(i8vec2) GroupNonUniformQuadBroadcast 43 163 42
|
||||||
|
165: 160(ptr) AccessChain 34(data) 158 47
|
||||||
|
166: 20(i8vec4) Load 165
|
||||||
|
167: 20(i8vec4) VectorShuffle 166 164 4 5 2 3
|
||||||
|
Store 165 167
|
||||||
|
168: 6(int) Load 8(invocation)
|
||||||
|
170: 160(ptr) AccessChain 34(data) 58 47
|
||||||
|
171: 20(i8vec4) Load 170
|
||||||
|
172: 169(i8vec3) VectorShuffle 171 171 0 1 2
|
||||||
|
173: 169(i8vec3) GroupNonUniformQuadBroadcast 43 172 42
|
||||||
|
174: 160(ptr) AccessChain 34(data) 168 47
|
||||||
|
175: 20(i8vec4) Load 174
|
||||||
|
176: 20(i8vec4) VectorShuffle 175 173 4 5 6 3
|
||||||
|
Store 174 176
|
||||||
|
177: 6(int) Load 8(invocation)
|
||||||
|
178: 160(ptr) AccessChain 34(data) 68 47
|
||||||
|
179: 20(i8vec4) Load 178
|
||||||
|
180: 20(i8vec4) GroupNonUniformQuadBroadcast 43 179 42
|
||||||
|
181: 160(ptr) AccessChain 34(data) 177 47
|
||||||
|
Store 181 180
|
||||||
|
182: 6(int) Load 8(invocation)
|
||||||
|
183: 153(ptr) AccessChain 34(data) 37 47 38
|
||||||
|
184: 19(int8_t) Load 183
|
||||||
|
185: 19(int8_t) GroupNonUniformQuadSwap 43 184 38
|
||||||
|
186: 153(ptr) AccessChain 34(data) 182 47 38
|
||||||
|
Store 186 185
|
||||||
|
187: 6(int) Load 8(invocation)
|
||||||
|
188: 160(ptr) AccessChain 34(data) 47 47
|
||||||
|
189: 20(i8vec4) Load 188
|
||||||
|
190: 159(i8vec2) VectorShuffle 189 189 0 1
|
||||||
|
191: 159(i8vec2) GroupNonUniformQuadSwap 43 190 38
|
||||||
|
192: 160(ptr) AccessChain 34(data) 187 47
|
||||||
|
193: 20(i8vec4) Load 192
|
||||||
|
194: 20(i8vec4) VectorShuffle 193 191 4 5 2 3
|
||||||
|
Store 192 194
|
||||||
|
195: 6(int) Load 8(invocation)
|
||||||
|
196: 160(ptr) AccessChain 34(data) 58 47
|
||||||
|
197: 20(i8vec4) Load 196
|
||||||
|
198: 169(i8vec3) VectorShuffle 197 197 0 1 2
|
||||||
|
199: 169(i8vec3) GroupNonUniformQuadSwap 43 198 38
|
||||||
|
200: 160(ptr) AccessChain 34(data) 195 47
|
||||||
|
201: 20(i8vec4) Load 200
|
||||||
|
202: 20(i8vec4) VectorShuffle 201 199 4 5 6 3
|
||||||
|
Store 200 202
|
||||||
|
203: 6(int) Load 8(invocation)
|
||||||
|
204: 160(ptr) AccessChain 34(data) 68 47
|
||||||
|
205: 20(i8vec4) Load 204
|
||||||
|
206: 20(i8vec4) GroupNonUniformQuadSwap 43 205 38
|
||||||
|
207: 160(ptr) AccessChain 34(data) 203 47
|
||||||
|
Store 207 206
|
||||||
|
208: 6(int) Load 8(invocation)
|
||||||
|
209: 153(ptr) AccessChain 34(data) 37 47 38
|
||||||
|
210: 19(int8_t) Load 209
|
||||||
|
211: 19(int8_t) GroupNonUniformQuadSwap 43 210 42
|
||||||
|
212: 153(ptr) AccessChain 34(data) 208 47 38
|
||||||
|
Store 212 211
|
||||||
|
213: 6(int) Load 8(invocation)
|
||||||
|
214: 160(ptr) AccessChain 34(data) 47 47
|
||||||
|
215: 20(i8vec4) Load 214
|
||||||
|
216: 159(i8vec2) VectorShuffle 215 215 0 1
|
||||||
|
217: 159(i8vec2) GroupNonUniformQuadSwap 43 216 42
|
||||||
|
218: 160(ptr) AccessChain 34(data) 213 47
|
||||||
|
219: 20(i8vec4) Load 218
|
||||||
|
220: 20(i8vec4) VectorShuffle 219 217 4 5 2 3
|
||||||
|
Store 218 220
|
||||||
|
221: 6(int) Load 8(invocation)
|
||||||
|
222: 160(ptr) AccessChain 34(data) 58 47
|
||||||
|
223: 20(i8vec4) Load 222
|
||||||
|
224: 169(i8vec3) VectorShuffle 223 223 0 1 2
|
||||||
|
225: 169(i8vec3) GroupNonUniformQuadSwap 43 224 42
|
||||||
|
226: 160(ptr) AccessChain 34(data) 221 47
|
||||||
|
227: 20(i8vec4) Load 226
|
||||||
|
228: 20(i8vec4) VectorShuffle 227 225 4 5 6 3
|
||||||
|
Store 226 228
|
||||||
|
229: 6(int) Load 8(invocation)
|
||||||
|
230: 160(ptr) AccessChain 34(data) 68 47
|
||||||
|
231: 20(i8vec4) Load 230
|
||||||
|
232: 20(i8vec4) GroupNonUniformQuadSwap 43 231 42
|
||||||
|
233: 160(ptr) AccessChain 34(data) 229 47
|
||||||
|
Store 233 232
|
||||||
|
234: 6(int) Load 8(invocation)
|
||||||
|
235: 153(ptr) AccessChain 34(data) 37 47 38
|
||||||
|
236: 19(int8_t) Load 235
|
||||||
|
237: 19(int8_t) GroupNonUniformQuadSwap 43 236 128
|
||||||
|
238: 153(ptr) AccessChain 34(data) 234 47 38
|
||||||
|
Store 238 237
|
||||||
|
239: 6(int) Load 8(invocation)
|
||||||
|
240: 160(ptr) AccessChain 34(data) 47 47
|
||||||
|
241: 20(i8vec4) Load 240
|
||||||
|
242: 159(i8vec2) VectorShuffle 241 241 0 1
|
||||||
|
243: 159(i8vec2) GroupNonUniformQuadSwap 43 242 128
|
||||||
|
244: 160(ptr) AccessChain 34(data) 239 47
|
||||||
|
245: 20(i8vec4) Load 244
|
||||||
|
246: 20(i8vec4) VectorShuffle 245 243 4 5 2 3
|
||||||
|
Store 244 246
|
||||||
|
247: 6(int) Load 8(invocation)
|
||||||
|
248: 160(ptr) AccessChain 34(data) 58 47
|
||||||
|
249: 20(i8vec4) Load 248
|
||||||
|
250: 169(i8vec3) VectorShuffle 249 249 0 1 2
|
||||||
|
251: 169(i8vec3) GroupNonUniformQuadSwap 43 250 128
|
||||||
|
252: 160(ptr) AccessChain 34(data) 247 47
|
||||||
|
253: 20(i8vec4) Load 252
|
||||||
|
254: 20(i8vec4) VectorShuffle 253 251 4 5 6 3
|
||||||
|
Store 252 254
|
||||||
|
255: 6(int) Load 8(invocation)
|
||||||
|
256: 160(ptr) AccessChain 34(data) 68 47
|
||||||
|
257: 20(i8vec4) Load 256
|
||||||
|
258: 20(i8vec4) GroupNonUniformQuadSwap 43 257 128
|
||||||
|
259: 160(ptr) AccessChain 34(data) 255 47
|
||||||
|
Store 259 258
|
||||||
|
260: 6(int) Load 8(invocation)
|
||||||
|
262: 261(ptr) AccessChain 34(data) 37 58 38
|
||||||
|
263: 21(int16_t) Load 262
|
||||||
|
264: 21(int16_t) GroupNonUniformQuadBroadcast 43 263 42
|
||||||
|
265: 261(ptr) AccessChain 34(data) 260 58 38
|
||||||
|
Store 265 264
|
||||||
|
266: 6(int) Load 8(invocation)
|
||||||
|
269: 268(ptr) AccessChain 34(data) 47 58
|
||||||
|
270: 22(i16vec4) Load 269
|
||||||
|
271:267(i16vec2) VectorShuffle 270 270 0 1
|
||||||
|
272:267(i16vec2) GroupNonUniformQuadBroadcast 43 271 42
|
||||||
|
273: 268(ptr) AccessChain 34(data) 266 58
|
||||||
|
274: 22(i16vec4) Load 273
|
||||||
|
275: 22(i16vec4) VectorShuffle 274 272 4 5 2 3
|
||||||
|
Store 273 275
|
||||||
|
276: 6(int) Load 8(invocation)
|
||||||
|
278: 268(ptr) AccessChain 34(data) 58 58
|
||||||
|
279: 22(i16vec4) Load 278
|
||||||
|
280:277(i16vec3) VectorShuffle 279 279 0 1 2
|
||||||
|
281:277(i16vec3) GroupNonUniformQuadBroadcast 43 280 42
|
||||||
|
282: 268(ptr) AccessChain 34(data) 276 58
|
||||||
|
283: 22(i16vec4) Load 282
|
||||||
|
284: 22(i16vec4) VectorShuffle 283 281 4 5 6 3
|
||||||
|
Store 282 284
|
||||||
|
285: 6(int) Load 8(invocation)
|
||||||
|
286: 268(ptr) AccessChain 34(data) 68 58
|
||||||
|
287: 22(i16vec4) Load 286
|
||||||
|
288: 22(i16vec4) GroupNonUniformQuadBroadcast 43 287 42
|
||||||
|
289: 268(ptr) AccessChain 34(data) 285 58
|
||||||
|
Store 289 288
|
||||||
|
290: 6(int) Load 8(invocation)
|
||||||
|
291: 261(ptr) AccessChain 34(data) 37 58 38
|
||||||
|
292: 21(int16_t) Load 291
|
||||||
|
293: 21(int16_t) GroupNonUniformQuadSwap 43 292 38
|
||||||
|
294: 261(ptr) AccessChain 34(data) 290 58 38
|
||||||
|
Store 294 293
|
||||||
|
295: 6(int) Load 8(invocation)
|
||||||
|
296: 268(ptr) AccessChain 34(data) 47 58
|
||||||
|
297: 22(i16vec4) Load 296
|
||||||
|
298:267(i16vec2) VectorShuffle 297 297 0 1
|
||||||
|
299:267(i16vec2) GroupNonUniformQuadSwap 43 298 38
|
||||||
|
300: 268(ptr) AccessChain 34(data) 295 58
|
||||||
|
301: 22(i16vec4) Load 300
|
||||||
|
302: 22(i16vec4) VectorShuffle 301 299 4 5 2 3
|
||||||
|
Store 300 302
|
||||||
|
303: 6(int) Load 8(invocation)
|
||||||
|
304: 268(ptr) AccessChain 34(data) 58 58
|
||||||
|
305: 22(i16vec4) Load 304
|
||||||
|
306:277(i16vec3) VectorShuffle 305 305 0 1 2
|
||||||
|
307:277(i16vec3) GroupNonUniformQuadSwap 43 306 38
|
||||||
|
308: 268(ptr) AccessChain 34(data) 303 58
|
||||||
|
309: 22(i16vec4) Load 308
|
||||||
|
310: 22(i16vec4) VectorShuffle 309 307 4 5 6 3
|
||||||
|
Store 308 310
|
||||||
|
311: 6(int) Load 8(invocation)
|
||||||
|
312: 268(ptr) AccessChain 34(data) 68 58
|
||||||
|
313: 22(i16vec4) Load 312
|
||||||
|
314: 22(i16vec4) GroupNonUniformQuadSwap 43 313 38
|
||||||
|
315: 268(ptr) AccessChain 34(data) 311 58
|
||||||
|
Store 315 314
|
||||||
|
316: 6(int) Load 8(invocation)
|
||||||
|
317: 261(ptr) AccessChain 34(data) 37 58 38
|
||||||
|
318: 21(int16_t) Load 317
|
||||||
|
319: 21(int16_t) GroupNonUniformQuadSwap 43 318 42
|
||||||
|
320: 261(ptr) AccessChain 34(data) 316 58 38
|
||||||
|
Store 320 319
|
||||||
|
321: 6(int) Load 8(invocation)
|
||||||
|
322: 268(ptr) AccessChain 34(data) 47 58
|
||||||
|
323: 22(i16vec4) Load 322
|
||||||
|
324:267(i16vec2) VectorShuffle 323 323 0 1
|
||||||
|
325:267(i16vec2) GroupNonUniformQuadSwap 43 324 42
|
||||||
|
326: 268(ptr) AccessChain 34(data) 321 58
|
||||||
|
327: 22(i16vec4) Load 326
|
||||||
|
328: 22(i16vec4) VectorShuffle 327 325 4 5 2 3
|
||||||
|
Store 326 328
|
||||||
|
329: 6(int) Load 8(invocation)
|
||||||
|
330: 268(ptr) AccessChain 34(data) 58 58
|
||||||
|
331: 22(i16vec4) Load 330
|
||||||
|
332:277(i16vec3) VectorShuffle 331 331 0 1 2
|
||||||
|
333:277(i16vec3) GroupNonUniformQuadSwap 43 332 42
|
||||||
|
334: 268(ptr) AccessChain 34(data) 329 58
|
||||||
|
335: 22(i16vec4) Load 334
|
||||||
|
336: 22(i16vec4) VectorShuffle 335 333 4 5 6 3
|
||||||
|
Store 334 336
|
||||||
|
337: 6(int) Load 8(invocation)
|
||||||
|
338: 268(ptr) AccessChain 34(data) 68 58
|
||||||
|
339: 22(i16vec4) Load 338
|
||||||
|
340: 22(i16vec4) GroupNonUniformQuadSwap 43 339 42
|
||||||
|
341: 268(ptr) AccessChain 34(data) 337 58
|
||||||
|
Store 341 340
|
||||||
|
342: 6(int) Load 8(invocation)
|
||||||
|
343: 261(ptr) AccessChain 34(data) 37 58 38
|
||||||
|
344: 21(int16_t) Load 343
|
||||||
|
345: 21(int16_t) GroupNonUniformQuadSwap 43 344 128
|
||||||
|
346: 261(ptr) AccessChain 34(data) 342 58 38
|
||||||
|
Store 346 345
|
||||||
|
347: 6(int) Load 8(invocation)
|
||||||
|
348: 268(ptr) AccessChain 34(data) 47 58
|
||||||
|
349: 22(i16vec4) Load 348
|
||||||
|
350:267(i16vec2) VectorShuffle 349 349 0 1
|
||||||
|
351:267(i16vec2) GroupNonUniformQuadSwap 43 350 128
|
||||||
|
352: 268(ptr) AccessChain 34(data) 347 58
|
||||||
|
353: 22(i16vec4) Load 352
|
||||||
|
354: 22(i16vec4) VectorShuffle 353 351 4 5 2 3
|
||||||
|
Store 352 354
|
||||||
|
355: 6(int) Load 8(invocation)
|
||||||
|
356: 268(ptr) AccessChain 34(data) 58 58
|
||||||
|
357: 22(i16vec4) Load 356
|
||||||
|
358:277(i16vec3) VectorShuffle 357 357 0 1 2
|
||||||
|
359:277(i16vec3) GroupNonUniformQuadSwap 43 358 128
|
||||||
|
360: 268(ptr) AccessChain 34(data) 355 58
|
||||||
|
361: 22(i16vec4) Load 360
|
||||||
|
362: 22(i16vec4) VectorShuffle 361 359 4 5 6 3
|
||||||
|
Store 360 362
|
||||||
|
363: 6(int) Load 8(invocation)
|
||||||
|
364: 268(ptr) AccessChain 34(data) 68 58
|
||||||
|
365: 22(i16vec4) Load 364
|
||||||
|
366: 22(i16vec4) GroupNonUniformQuadSwap 43 365 128
|
||||||
|
367: 268(ptr) AccessChain 34(data) 363 58
|
||||||
|
Store 367 366
|
||||||
|
368: 6(int) Load 8(invocation)
|
||||||
|
370: 369(ptr) AccessChain 34(data) 37 68 38
|
||||||
|
371: 23(int16_t) Load 370
|
||||||
|
372: 23(int16_t) GroupNonUniformQuadBroadcast 43 371 42
|
||||||
|
373: 369(ptr) AccessChain 34(data) 368 68 38
|
||||||
|
Store 373 372
|
||||||
|
374: 6(int) Load 8(invocation)
|
||||||
|
377: 376(ptr) AccessChain 34(data) 47 68
|
||||||
|
378: 24(i16vec4) Load 377
|
||||||
|
379:375(i16vec2) VectorShuffle 378 378 0 1
|
||||||
|
380:375(i16vec2) GroupNonUniformQuadBroadcast 43 379 42
|
||||||
|
381: 376(ptr) AccessChain 34(data) 374 68
|
||||||
|
382: 24(i16vec4) Load 381
|
||||||
|
383: 24(i16vec4) VectorShuffle 382 380 4 5 2 3
|
||||||
|
Store 381 383
|
||||||
|
384: 6(int) Load 8(invocation)
|
||||||
|
386: 376(ptr) AccessChain 34(data) 58 68
|
||||||
|
387: 24(i16vec4) Load 386
|
||||||
|
388:385(i16vec3) VectorShuffle 387 387 0 1 2
|
||||||
|
389:385(i16vec3) GroupNonUniformQuadBroadcast 43 388 42
|
||||||
|
390: 376(ptr) AccessChain 34(data) 384 68
|
||||||
|
391: 24(i16vec4) Load 390
|
||||||
|
392: 24(i16vec4) VectorShuffle 391 389 4 5 6 3
|
||||||
|
Store 390 392
|
||||||
|
393: 6(int) Load 8(invocation)
|
||||||
|
394: 376(ptr) AccessChain 34(data) 68 68
|
||||||
|
395: 24(i16vec4) Load 394
|
||||||
|
396: 24(i16vec4) GroupNonUniformQuadBroadcast 43 395 42
|
||||||
|
397: 376(ptr) AccessChain 34(data) 393 68
|
||||||
|
Store 397 396
|
||||||
|
398: 6(int) Load 8(invocation)
|
||||||
|
399: 369(ptr) AccessChain 34(data) 37 68 38
|
||||||
|
400: 23(int16_t) Load 399
|
||||||
|
401: 23(int16_t) GroupNonUniformQuadSwap 43 400 38
|
||||||
|
402: 369(ptr) AccessChain 34(data) 398 68 38
|
||||||
|
Store 402 401
|
||||||
|
403: 6(int) Load 8(invocation)
|
||||||
|
404: 376(ptr) AccessChain 34(data) 47 68
|
||||||
|
405: 24(i16vec4) Load 404
|
||||||
|
406:375(i16vec2) VectorShuffle 405 405 0 1
|
||||||
|
407:375(i16vec2) GroupNonUniformQuadSwap 43 406 38
|
||||||
|
408: 376(ptr) AccessChain 34(data) 403 68
|
||||||
|
409: 24(i16vec4) Load 408
|
||||||
|
410: 24(i16vec4) VectorShuffle 409 407 4 5 2 3
|
||||||
|
Store 408 410
|
||||||
|
411: 6(int) Load 8(invocation)
|
||||||
|
412: 376(ptr) AccessChain 34(data) 58 68
|
||||||
|
413: 24(i16vec4) Load 412
|
||||||
|
414:385(i16vec3) VectorShuffle 413 413 0 1 2
|
||||||
|
415:385(i16vec3) GroupNonUniformQuadSwap 43 414 38
|
||||||
|
416: 376(ptr) AccessChain 34(data) 411 68
|
||||||
|
417: 24(i16vec4) Load 416
|
||||||
|
418: 24(i16vec4) VectorShuffle 417 415 4 5 6 3
|
||||||
|
Store 416 418
|
||||||
|
419: 6(int) Load 8(invocation)
|
||||||
|
420: 376(ptr) AccessChain 34(data) 68 68
|
||||||
|
421: 24(i16vec4) Load 420
|
||||||
|
422: 24(i16vec4) GroupNonUniformQuadSwap 43 421 38
|
||||||
|
423: 376(ptr) AccessChain 34(data) 419 68
|
||||||
|
Store 423 422
|
||||||
|
424: 6(int) Load 8(invocation)
|
||||||
|
425: 369(ptr) AccessChain 34(data) 37 68 38
|
||||||
|
426: 23(int16_t) Load 425
|
||||||
|
427: 23(int16_t) GroupNonUniformQuadSwap 43 426 42
|
||||||
|
428: 369(ptr) AccessChain 34(data) 424 68 38
|
||||||
|
Store 428 427
|
||||||
|
429: 6(int) Load 8(invocation)
|
||||||
|
430: 376(ptr) AccessChain 34(data) 47 68
|
||||||
|
431: 24(i16vec4) Load 430
|
||||||
|
432:375(i16vec2) VectorShuffle 431 431 0 1
|
||||||
|
433:375(i16vec2) GroupNonUniformQuadSwap 43 432 42
|
||||||
|
434: 376(ptr) AccessChain 34(data) 429 68
|
||||||
|
435: 24(i16vec4) Load 434
|
||||||
|
436: 24(i16vec4) VectorShuffle 435 433 4 5 2 3
|
||||||
|
Store 434 436
|
||||||
|
437: 6(int) Load 8(invocation)
|
||||||
|
438: 376(ptr) AccessChain 34(data) 58 68
|
||||||
|
439: 24(i16vec4) Load 438
|
||||||
|
440:385(i16vec3) VectorShuffle 439 439 0 1 2
|
||||||
|
441:385(i16vec3) GroupNonUniformQuadSwap 43 440 42
|
||||||
|
442: 376(ptr) AccessChain 34(data) 437 68
|
||||||
|
443: 24(i16vec4) Load 442
|
||||||
|
444: 24(i16vec4) VectorShuffle 443 441 4 5 6 3
|
||||||
|
Store 442 444
|
||||||
|
445: 6(int) Load 8(invocation)
|
||||||
|
446: 376(ptr) AccessChain 34(data) 68 68
|
||||||
|
447: 24(i16vec4) Load 446
|
||||||
|
448: 24(i16vec4) GroupNonUniformQuadSwap 43 447 42
|
||||||
|
449: 376(ptr) AccessChain 34(data) 445 68
|
||||||
|
Store 449 448
|
||||||
|
450: 6(int) Load 8(invocation)
|
||||||
|
451: 369(ptr) AccessChain 34(data) 37 68 38
|
||||||
|
452: 23(int16_t) Load 451
|
||||||
|
453: 23(int16_t) GroupNonUniformQuadSwap 43 452 128
|
||||||
|
454: 369(ptr) AccessChain 34(data) 450 68 38
|
||||||
|
Store 454 453
|
||||||
|
455: 6(int) Load 8(invocation)
|
||||||
|
456: 376(ptr) AccessChain 34(data) 47 68
|
||||||
|
457: 24(i16vec4) Load 456
|
||||||
|
458:375(i16vec2) VectorShuffle 457 457 0 1
|
||||||
|
459:375(i16vec2) GroupNonUniformQuadSwap 43 458 128
|
||||||
|
460: 376(ptr) AccessChain 34(data) 455 68
|
||||||
|
461: 24(i16vec4) Load 460
|
||||||
|
462: 24(i16vec4) VectorShuffle 461 459 4 5 2 3
|
||||||
|
Store 460 462
|
||||||
|
463: 6(int) Load 8(invocation)
|
||||||
|
464: 376(ptr) AccessChain 34(data) 58 68
|
||||||
|
465: 24(i16vec4) Load 464
|
||||||
|
466:385(i16vec3) VectorShuffle 465 465 0 1 2
|
||||||
|
467:385(i16vec3) GroupNonUniformQuadSwap 43 466 128
|
||||||
|
468: 376(ptr) AccessChain 34(data) 463 68
|
||||||
|
469: 24(i16vec4) Load 468
|
||||||
|
470: 24(i16vec4) VectorShuffle 469 467 4 5 6 3
|
||||||
|
Store 468 470
|
||||||
|
471: 6(int) Load 8(invocation)
|
||||||
|
472: 376(ptr) AccessChain 34(data) 68 68
|
||||||
|
473: 24(i16vec4) Load 472
|
||||||
|
474: 24(i16vec4) GroupNonUniformQuadSwap 43 473 128
|
||||||
|
475: 376(ptr) AccessChain 34(data) 471 68
|
||||||
|
Store 475 474
|
||||||
|
476: 6(int) Load 8(invocation)
|
||||||
|
479: 478(ptr) AccessChain 34(data) 37 477 38
|
||||||
|
480: 25(int64_t) Load 479
|
||||||
|
481: 25(int64_t) GroupNonUniformQuadBroadcast 43 480 42
|
||||||
|
482: 478(ptr) AccessChain 34(data) 476 477 38
|
||||||
|
Store 482 481
|
||||||
|
483: 6(int) Load 8(invocation)
|
||||||
|
486: 485(ptr) AccessChain 34(data) 47 477
|
||||||
|
487: 26(i64vec4) Load 486
|
||||||
|
488:484(i64vec2) VectorShuffle 487 487 0 1
|
||||||
|
489:484(i64vec2) GroupNonUniformQuadBroadcast 43 488 42
|
||||||
|
490: 485(ptr) AccessChain 34(data) 483 477
|
||||||
|
491: 26(i64vec4) Load 490
|
||||||
|
492: 26(i64vec4) VectorShuffle 491 489 4 5 2 3
|
||||||
|
Store 490 492
|
||||||
|
493: 6(int) Load 8(invocation)
|
||||||
|
495: 485(ptr) AccessChain 34(data) 58 477
|
||||||
|
496: 26(i64vec4) Load 495
|
||||||
|
497:494(i64vec3) VectorShuffle 496 496 0 1 2
|
||||||
|
498:494(i64vec3) GroupNonUniformQuadBroadcast 43 497 42
|
||||||
|
499: 485(ptr) AccessChain 34(data) 493 477
|
||||||
|
500: 26(i64vec4) Load 499
|
||||||
|
501: 26(i64vec4) VectorShuffle 500 498 4 5 6 3
|
||||||
|
Store 499 501
|
||||||
|
502: 6(int) Load 8(invocation)
|
||||||
|
503: 485(ptr) AccessChain 34(data) 68 477
|
||||||
|
504: 26(i64vec4) Load 503
|
||||||
|
505: 26(i64vec4) GroupNonUniformQuadBroadcast 43 504 42
|
||||||
|
506: 485(ptr) AccessChain 34(data) 502 477
|
||||||
|
Store 506 505
|
||||||
|
507: 6(int) Load 8(invocation)
|
||||||
|
508: 478(ptr) AccessChain 34(data) 37 477 38
|
||||||
|
509: 25(int64_t) Load 508
|
||||||
|
510: 25(int64_t) GroupNonUniformQuadSwap 43 509 38
|
||||||
|
511: 478(ptr) AccessChain 34(data) 507 477 38
|
||||||
|
Store 511 510
|
||||||
|
512: 6(int) Load 8(invocation)
|
||||||
|
513: 485(ptr) AccessChain 34(data) 47 477
|
||||||
|
514: 26(i64vec4) Load 513
|
||||||
|
515:484(i64vec2) VectorShuffle 514 514 0 1
|
||||||
|
516:484(i64vec2) GroupNonUniformQuadSwap 43 515 38
|
||||||
|
517: 485(ptr) AccessChain 34(data) 512 477
|
||||||
|
518: 26(i64vec4) Load 517
|
||||||
|
519: 26(i64vec4) VectorShuffle 518 516 4 5 2 3
|
||||||
|
Store 517 519
|
||||||
|
520: 6(int) Load 8(invocation)
|
||||||
|
521: 485(ptr) AccessChain 34(data) 58 477
|
||||||
|
522: 26(i64vec4) Load 521
|
||||||
|
523:494(i64vec3) VectorShuffle 522 522 0 1 2
|
||||||
|
524:494(i64vec3) GroupNonUniformQuadSwap 43 523 38
|
||||||
|
525: 485(ptr) AccessChain 34(data) 520 477
|
||||||
|
526: 26(i64vec4) Load 525
|
||||||
|
527: 26(i64vec4) VectorShuffle 526 524 4 5 6 3
|
||||||
|
Store 525 527
|
||||||
|
528: 6(int) Load 8(invocation)
|
||||||
|
529: 485(ptr) AccessChain 34(data) 68 477
|
||||||
|
530: 26(i64vec4) Load 529
|
||||||
|
531: 26(i64vec4) GroupNonUniformQuadSwap 43 530 38
|
||||||
|
532: 485(ptr) AccessChain 34(data) 528 477
|
||||||
|
Store 532 531
|
||||||
|
533: 6(int) Load 8(invocation)
|
||||||
|
534: 478(ptr) AccessChain 34(data) 37 477 38
|
||||||
|
535: 25(int64_t) Load 534
|
||||||
|
536: 25(int64_t) GroupNonUniformQuadSwap 43 535 42
|
||||||
|
537: 478(ptr) AccessChain 34(data) 533 477 38
|
||||||
|
Store 537 536
|
||||||
|
538: 6(int) Load 8(invocation)
|
||||||
|
539: 485(ptr) AccessChain 34(data) 47 477
|
||||||
|
540: 26(i64vec4) Load 539
|
||||||
|
541:484(i64vec2) VectorShuffle 540 540 0 1
|
||||||
|
542:484(i64vec2) GroupNonUniformQuadSwap 43 541 42
|
||||||
|
543: 485(ptr) AccessChain 34(data) 538 477
|
||||||
|
544: 26(i64vec4) Load 543
|
||||||
|
545: 26(i64vec4) VectorShuffle 544 542 4 5 2 3
|
||||||
|
Store 543 545
|
||||||
|
546: 6(int) Load 8(invocation)
|
||||||
|
547: 485(ptr) AccessChain 34(data) 58 477
|
||||||
|
548: 26(i64vec4) Load 547
|
||||||
|
549:494(i64vec3) VectorShuffle 548 548 0 1 2
|
||||||
|
550:494(i64vec3) GroupNonUniformQuadSwap 43 549 42
|
||||||
|
551: 485(ptr) AccessChain 34(data) 546 477
|
||||||
|
552: 26(i64vec4) Load 551
|
||||||
|
553: 26(i64vec4) VectorShuffle 552 550 4 5 6 3
|
||||||
|
Store 551 553
|
||||||
|
554: 6(int) Load 8(invocation)
|
||||||
|
555: 485(ptr) AccessChain 34(data) 68 477
|
||||||
|
556: 26(i64vec4) Load 555
|
||||||
|
557: 26(i64vec4) GroupNonUniformQuadSwap 43 556 42
|
||||||
|
558: 485(ptr) AccessChain 34(data) 554 477
|
||||||
|
Store 558 557
|
||||||
|
559: 6(int) Load 8(invocation)
|
||||||
|
560: 478(ptr) AccessChain 34(data) 37 477 38
|
||||||
|
561: 25(int64_t) Load 560
|
||||||
|
562: 25(int64_t) GroupNonUniformQuadSwap 43 561 128
|
||||||
|
563: 478(ptr) AccessChain 34(data) 559 477 38
|
||||||
|
Store 563 562
|
||||||
|
564: 6(int) Load 8(invocation)
|
||||||
|
565: 485(ptr) AccessChain 34(data) 47 477
|
||||||
|
566: 26(i64vec4) Load 565
|
||||||
|
567:484(i64vec2) VectorShuffle 566 566 0 1
|
||||||
|
568:484(i64vec2) GroupNonUniformQuadSwap 43 567 128
|
||||||
|
569: 485(ptr) AccessChain 34(data) 564 477
|
||||||
|
570: 26(i64vec4) Load 569
|
||||||
|
571: 26(i64vec4) VectorShuffle 570 568 4 5 2 3
|
||||||
|
Store 569 571
|
||||||
|
572: 6(int) Load 8(invocation)
|
||||||
|
573: 485(ptr) AccessChain 34(data) 58 477
|
||||||
|
574: 26(i64vec4) Load 573
|
||||||
|
575:494(i64vec3) VectorShuffle 574 574 0 1 2
|
||||||
|
576:494(i64vec3) GroupNonUniformQuadSwap 43 575 128
|
||||||
|
577: 485(ptr) AccessChain 34(data) 572 477
|
||||||
|
578: 26(i64vec4) Load 577
|
||||||
|
579: 26(i64vec4) VectorShuffle 578 576 4 5 6 3
|
||||||
|
Store 577 579
|
||||||
|
580: 6(int) Load 8(invocation)
|
||||||
|
581: 485(ptr) AccessChain 34(data) 68 477
|
||||||
|
582: 26(i64vec4) Load 581
|
||||||
|
583: 26(i64vec4) GroupNonUniformQuadSwap 43 582 128
|
||||||
|
584: 485(ptr) AccessChain 34(data) 580 477
|
||||||
|
Store 584 583
|
||||||
|
585: 6(int) Load 8(invocation)
|
||||||
|
588: 587(ptr) AccessChain 34(data) 37 586 38
|
||||||
|
589: 27(int64_t) Load 588
|
||||||
|
590: 27(int64_t) GroupNonUniformQuadBroadcast 43 589 42
|
||||||
|
591: 587(ptr) AccessChain 34(data) 585 586 38
|
||||||
|
Store 591 590
|
||||||
|
592: 6(int) Load 8(invocation)
|
||||||
|
595: 594(ptr) AccessChain 34(data) 47 586
|
||||||
|
596: 28(i64vec4) Load 595
|
||||||
|
597:593(i64vec2) VectorShuffle 596 596 0 1
|
||||||
|
598:593(i64vec2) GroupNonUniformQuadBroadcast 43 597 42
|
||||||
|
599: 594(ptr) AccessChain 34(data) 592 586
|
||||||
|
600: 28(i64vec4) Load 599
|
||||||
|
601: 28(i64vec4) VectorShuffle 600 598 4 5 2 3
|
||||||
|
Store 599 601
|
||||||
|
602: 6(int) Load 8(invocation)
|
||||||
|
604: 594(ptr) AccessChain 34(data) 58 586
|
||||||
|
605: 28(i64vec4) Load 604
|
||||||
|
606:603(i64vec3) VectorShuffle 605 605 0 1 2
|
||||||
|
607:603(i64vec3) GroupNonUniformQuadBroadcast 43 606 42
|
||||||
|
608: 594(ptr) AccessChain 34(data) 602 586
|
||||||
|
609: 28(i64vec4) Load 608
|
||||||
|
610: 28(i64vec4) VectorShuffle 609 607 4 5 6 3
|
||||||
|
Store 608 610
|
||||||
|
611: 6(int) Load 8(invocation)
|
||||||
|
612: 594(ptr) AccessChain 34(data) 68 586
|
||||||
|
613: 28(i64vec4) Load 612
|
||||||
|
614: 28(i64vec4) GroupNonUniformQuadBroadcast 43 613 42
|
||||||
|
615: 594(ptr) AccessChain 34(data) 611 586
|
||||||
|
Store 615 614
|
||||||
|
616: 6(int) Load 8(invocation)
|
||||||
|
617: 587(ptr) AccessChain 34(data) 37 586 38
|
||||||
|
618: 27(int64_t) Load 617
|
||||||
|
619: 27(int64_t) GroupNonUniformQuadSwap 43 618 38
|
||||||
|
620: 587(ptr) AccessChain 34(data) 616 586 38
|
||||||
|
Store 620 619
|
||||||
|
621: 6(int) Load 8(invocation)
|
||||||
|
622: 594(ptr) AccessChain 34(data) 47 586
|
||||||
|
623: 28(i64vec4) Load 622
|
||||||
|
624:593(i64vec2) VectorShuffle 623 623 0 1
|
||||||
|
625:593(i64vec2) GroupNonUniformQuadSwap 43 624 38
|
||||||
|
626: 594(ptr) AccessChain 34(data) 621 586
|
||||||
|
627: 28(i64vec4) Load 626
|
||||||
|
628: 28(i64vec4) VectorShuffle 627 625 4 5 2 3
|
||||||
|
Store 626 628
|
||||||
|
629: 6(int) Load 8(invocation)
|
||||||
|
630: 594(ptr) AccessChain 34(data) 58 586
|
||||||
|
631: 28(i64vec4) Load 630
|
||||||
|
632:603(i64vec3) VectorShuffle 631 631 0 1 2
|
||||||
|
633:603(i64vec3) GroupNonUniformQuadSwap 43 632 38
|
||||||
|
634: 594(ptr) AccessChain 34(data) 629 586
|
||||||
|
635: 28(i64vec4) Load 634
|
||||||
|
636: 28(i64vec4) VectorShuffle 635 633 4 5 6 3
|
||||||
|
Store 634 636
|
||||||
|
637: 6(int) Load 8(invocation)
|
||||||
|
638: 594(ptr) AccessChain 34(data) 68 586
|
||||||
|
639: 28(i64vec4) Load 638
|
||||||
|
640: 28(i64vec4) GroupNonUniformQuadSwap 43 639 38
|
||||||
|
641: 594(ptr) AccessChain 34(data) 637 586
|
||||||
|
Store 641 640
|
||||||
|
642: 6(int) Load 8(invocation)
|
||||||
|
643: 587(ptr) AccessChain 34(data) 37 586 38
|
||||||
|
644: 27(int64_t) Load 643
|
||||||
|
645: 27(int64_t) GroupNonUniformQuadSwap 43 644 42
|
||||||
|
646: 587(ptr) AccessChain 34(data) 642 586 38
|
||||||
|
Store 646 645
|
||||||
|
647: 6(int) Load 8(invocation)
|
||||||
|
648: 594(ptr) AccessChain 34(data) 47 586
|
||||||
|
649: 28(i64vec4) Load 648
|
||||||
|
650:593(i64vec2) VectorShuffle 649 649 0 1
|
||||||
|
651:593(i64vec2) GroupNonUniformQuadSwap 43 650 42
|
||||||
|
652: 594(ptr) AccessChain 34(data) 647 586
|
||||||
|
653: 28(i64vec4) Load 652
|
||||||
|
654: 28(i64vec4) VectorShuffle 653 651 4 5 2 3
|
||||||
|
Store 652 654
|
||||||
|
655: 6(int) Load 8(invocation)
|
||||||
|
656: 594(ptr) AccessChain 34(data) 58 586
|
||||||
|
657: 28(i64vec4) Load 656
|
||||||
|
658:603(i64vec3) VectorShuffle 657 657 0 1 2
|
||||||
|
659:603(i64vec3) GroupNonUniformQuadSwap 43 658 42
|
||||||
|
660: 594(ptr) AccessChain 34(data) 655 586
|
||||||
|
661: 28(i64vec4) Load 660
|
||||||
|
662: 28(i64vec4) VectorShuffle 661 659 4 5 6 3
|
||||||
|
Store 660 662
|
||||||
|
663: 6(int) Load 8(invocation)
|
||||||
|
664: 594(ptr) AccessChain 34(data) 68 586
|
||||||
|
665: 28(i64vec4) Load 664
|
||||||
|
666: 28(i64vec4) GroupNonUniformQuadSwap 43 665 42
|
||||||
|
667: 594(ptr) AccessChain 34(data) 663 586
|
||||||
|
Store 667 666
|
||||||
|
668: 6(int) Load 8(invocation)
|
||||||
|
669: 587(ptr) AccessChain 34(data) 37 586 38
|
||||||
|
670: 27(int64_t) Load 669
|
||||||
|
671: 27(int64_t) GroupNonUniformQuadSwap 43 670 128
|
||||||
|
672: 587(ptr) AccessChain 34(data) 668 586 38
|
||||||
|
Store 672 671
|
||||||
|
673: 6(int) Load 8(invocation)
|
||||||
|
674: 594(ptr) AccessChain 34(data) 47 586
|
||||||
|
675: 28(i64vec4) Load 674
|
||||||
|
676:593(i64vec2) VectorShuffle 675 675 0 1
|
||||||
|
677:593(i64vec2) GroupNonUniformQuadSwap 43 676 128
|
||||||
|
678: 594(ptr) AccessChain 34(data) 673 586
|
||||||
|
679: 28(i64vec4) Load 678
|
||||||
|
680: 28(i64vec4) VectorShuffle 679 677 4 5 2 3
|
||||||
|
Store 678 680
|
||||||
|
681: 6(int) Load 8(invocation)
|
||||||
|
682: 594(ptr) AccessChain 34(data) 58 586
|
||||||
|
683: 28(i64vec4) Load 682
|
||||||
|
684:603(i64vec3) VectorShuffle 683 683 0 1 2
|
||||||
|
685:603(i64vec3) GroupNonUniformQuadSwap 43 684 128
|
||||||
|
686: 594(ptr) AccessChain 34(data) 681 586
|
||||||
|
687: 28(i64vec4) Load 686
|
||||||
|
688: 28(i64vec4) VectorShuffle 687 685 4 5 6 3
|
||||||
|
Store 686 688
|
||||||
|
689: 6(int) Load 8(invocation)
|
||||||
|
690: 594(ptr) AccessChain 34(data) 68 586
|
||||||
|
691: 28(i64vec4) Load 690
|
||||||
|
692: 28(i64vec4) GroupNonUniformQuadSwap 43 691 128
|
||||||
|
693: 594(ptr) AccessChain 34(data) 689 586
|
||||||
|
Store 693 692
|
||||||
|
694: 6(int) Load 8(invocation)
|
||||||
|
697: 696(ptr) AccessChain 34(data) 37 695 38
|
||||||
|
698:29(float16_t) Load 697
|
||||||
|
699:29(float16_t) GroupNonUniformQuadBroadcast 43 698 42
|
||||||
|
700: 696(ptr) AccessChain 34(data) 694 695 38
|
||||||
|
Store 700 699
|
||||||
|
701: 6(int) Load 8(invocation)
|
||||||
|
704: 703(ptr) AccessChain 34(data) 47 695
|
||||||
|
705: 30(f16vec4) Load 704
|
||||||
|
706:702(f16vec2) VectorShuffle 705 705 0 1
|
||||||
|
707:702(f16vec2) GroupNonUniformQuadBroadcast 43 706 42
|
||||||
|
708: 703(ptr) AccessChain 34(data) 701 695
|
||||||
|
709: 30(f16vec4) Load 708
|
||||||
|
710: 30(f16vec4) VectorShuffle 709 707 4 5 2 3
|
||||||
|
Store 708 710
|
||||||
|
711: 6(int) Load 8(invocation)
|
||||||
|
713: 703(ptr) AccessChain 34(data) 58 695
|
||||||
|
714: 30(f16vec4) Load 713
|
||||||
|
715:712(f16vec3) VectorShuffle 714 714 0 1 2
|
||||||
|
716:712(f16vec3) GroupNonUniformQuadBroadcast 43 715 42
|
||||||
|
717: 703(ptr) AccessChain 34(data) 711 695
|
||||||
|
718: 30(f16vec4) Load 717
|
||||||
|
719: 30(f16vec4) VectorShuffle 718 716 4 5 6 3
|
||||||
|
Store 717 719
|
||||||
|
720: 6(int) Load 8(invocation)
|
||||||
|
721: 703(ptr) AccessChain 34(data) 68 695
|
||||||
|
722: 30(f16vec4) Load 721
|
||||||
|
723: 30(f16vec4) GroupNonUniformQuadBroadcast 43 722 42
|
||||||
|
724: 703(ptr) AccessChain 34(data) 720 695
|
||||||
|
Store 724 723
|
||||||
|
725: 6(int) Load 8(invocation)
|
||||||
|
726: 696(ptr) AccessChain 34(data) 37 695 38
|
||||||
|
727:29(float16_t) Load 726
|
||||||
|
728:29(float16_t) GroupNonUniformQuadSwap 43 727 38
|
||||||
|
729: 696(ptr) AccessChain 34(data) 725 695 38
|
||||||
|
Store 729 728
|
||||||
|
730: 6(int) Load 8(invocation)
|
||||||
|
731: 703(ptr) AccessChain 34(data) 47 695
|
||||||
|
732: 30(f16vec4) Load 731
|
||||||
|
733:702(f16vec2) VectorShuffle 732 732 0 1
|
||||||
|
734:702(f16vec2) GroupNonUniformQuadSwap 43 733 38
|
||||||
|
735: 703(ptr) AccessChain 34(data) 730 695
|
||||||
|
736: 30(f16vec4) Load 735
|
||||||
|
737: 30(f16vec4) VectorShuffle 736 734 4 5 2 3
|
||||||
|
Store 735 737
|
||||||
|
738: 6(int) Load 8(invocation)
|
||||||
|
739: 703(ptr) AccessChain 34(data) 58 695
|
||||||
|
740: 30(f16vec4) Load 739
|
||||||
|
741:712(f16vec3) VectorShuffle 740 740 0 1 2
|
||||||
|
742:712(f16vec3) GroupNonUniformQuadSwap 43 741 38
|
||||||
|
743: 703(ptr) AccessChain 34(data) 738 695
|
||||||
|
744: 30(f16vec4) Load 743
|
||||||
|
745: 30(f16vec4) VectorShuffle 744 742 4 5 6 3
|
||||||
|
Store 743 745
|
||||||
|
746: 6(int) Load 8(invocation)
|
||||||
|
747: 703(ptr) AccessChain 34(data) 68 695
|
||||||
|
748: 30(f16vec4) Load 747
|
||||||
|
749: 30(f16vec4) GroupNonUniformQuadSwap 43 748 38
|
||||||
|
750: 703(ptr) AccessChain 34(data) 746 695
|
||||||
|
Store 750 749
|
||||||
|
751: 6(int) Load 8(invocation)
|
||||||
|
752: 696(ptr) AccessChain 34(data) 37 695 38
|
||||||
|
753:29(float16_t) Load 752
|
||||||
|
754:29(float16_t) GroupNonUniformQuadSwap 43 753 42
|
||||||
|
755: 696(ptr) AccessChain 34(data) 751 695 38
|
||||||
|
Store 755 754
|
||||||
|
756: 6(int) Load 8(invocation)
|
||||||
|
757: 703(ptr) AccessChain 34(data) 47 695
|
||||||
|
758: 30(f16vec4) Load 757
|
||||||
|
759:702(f16vec2) VectorShuffle 758 758 0 1
|
||||||
|
760:702(f16vec2) GroupNonUniformQuadSwap 43 759 42
|
||||||
|
761: 703(ptr) AccessChain 34(data) 756 695
|
||||||
|
762: 30(f16vec4) Load 761
|
||||||
|
763: 30(f16vec4) VectorShuffle 762 760 4 5 2 3
|
||||||
|
Store 761 763
|
||||||
|
764: 6(int) Load 8(invocation)
|
||||||
|
765: 703(ptr) AccessChain 34(data) 58 695
|
||||||
|
766: 30(f16vec4) Load 765
|
||||||
|
767:712(f16vec3) VectorShuffle 766 766 0 1 2
|
||||||
|
768:712(f16vec3) GroupNonUniformQuadSwap 43 767 42
|
||||||
|
769: 703(ptr) AccessChain 34(data) 764 695
|
||||||
|
770: 30(f16vec4) Load 769
|
||||||
|
771: 30(f16vec4) VectorShuffle 770 768 4 5 6 3
|
||||||
|
Store 769 771
|
||||||
|
772: 6(int) Load 8(invocation)
|
||||||
|
773: 703(ptr) AccessChain 34(data) 68 695
|
||||||
|
774: 30(f16vec4) Load 773
|
||||||
|
775: 30(f16vec4) GroupNonUniformQuadSwap 43 774 42
|
||||||
|
776: 703(ptr) AccessChain 34(data) 772 695
|
||||||
|
Store 776 775
|
||||||
|
777: 6(int) Load 8(invocation)
|
||||||
|
778: 696(ptr) AccessChain 34(data) 37 695 38
|
||||||
|
779:29(float16_t) Load 778
|
||||||
|
780:29(float16_t) GroupNonUniformQuadSwap 43 779 128
|
||||||
|
781: 696(ptr) AccessChain 34(data) 777 695 38
|
||||||
|
Store 781 780
|
||||||
|
782: 6(int) Load 8(invocation)
|
||||||
|
783: 703(ptr) AccessChain 34(data) 47 695
|
||||||
|
784: 30(f16vec4) Load 783
|
||||||
|
785:702(f16vec2) VectorShuffle 784 784 0 1
|
||||||
|
786:702(f16vec2) GroupNonUniformQuadSwap 43 785 128
|
||||||
|
787: 703(ptr) AccessChain 34(data) 782 695
|
||||||
|
788: 30(f16vec4) Load 787
|
||||||
|
789: 30(f16vec4) VectorShuffle 788 786 4 5 2 3
|
||||||
|
Store 787 789
|
||||||
|
790: 6(int) Load 8(invocation)
|
||||||
|
791: 703(ptr) AccessChain 34(data) 58 695
|
||||||
|
792: 30(f16vec4) Load 791
|
||||||
|
793:712(f16vec3) VectorShuffle 792 792 0 1 2
|
||||||
|
794:712(f16vec3) GroupNonUniformQuadSwap 43 793 128
|
||||||
|
795: 703(ptr) AccessChain 34(data) 790 695
|
||||||
|
796: 30(f16vec4) Load 795
|
||||||
|
797: 30(f16vec4) VectorShuffle 796 794 4 5 6 3
|
||||||
|
Store 795 797
|
||||||
|
798: 6(int) Load 8(invocation)
|
||||||
|
799: 703(ptr) AccessChain 34(data) 68 695
|
||||||
|
800: 30(f16vec4) Load 799
|
||||||
|
801: 30(f16vec4) GroupNonUniformQuadSwap 43 800 128
|
||||||
|
802: 703(ptr) AccessChain 34(data) 798 695
|
||||||
|
Store 802 801
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
117
Test/baseResults/spv.subgroupExtendedTypesQuadNeg.comp.out
Normal file
117
Test/baseResults/spv.subgroupExtendedTypesQuadNeg.comp.out
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
spv.subgroupExtendedTypesQuadNeg.comp
|
||||||
|
ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:36: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:37: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:38: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:41: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:42: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:43: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:46: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:47: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:48: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:51: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:52: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:53: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:56: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:57: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:58: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:61: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:62: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:63: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:66: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:67: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:68: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:71: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:72: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:73: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:76: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:77: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:78: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:81: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:82: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:83: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:86: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:87: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:88: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:89: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:91: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:92: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:93: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:94: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:96: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:97: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:98: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:99: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:101: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:102: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:103: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:104: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:106: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:107: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:108: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:109: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:111: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:112: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:113: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:114: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:116: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:117: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:118: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:119: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:121: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:122: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:123: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:124: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:126: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:127: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:128: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:129: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:131: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:132: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:133: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:134: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:136: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:137: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:138: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:139: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:141: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:142: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:143: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:144: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:146: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:147: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:148: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:149: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:151: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:152: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:153: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:154: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:156: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:157: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:158: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:159: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:161: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:162: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:163: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:164: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 112 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
SPIR-V is not generated for failed compile or link
|
616
Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out
Normal file
616
Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out
Normal file
@ -0,0 +1,616 @@
|
|||||||
|
spv.subgroupExtendedTypesShuffle.comp
|
||||||
|
// Module Version 10300
|
||||||
|
// Generated by (magic number): 80007
|
||||||
|
// Id's are bound by 497
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability Float16
|
||||||
|
Capability Int64
|
||||||
|
Capability Int16
|
||||||
|
Capability Int8
|
||||||
|
Capability GroupNonUniform
|
||||||
|
Capability GroupNonUniformShuffle
|
||||||
|
Capability StorageUniformBufferBlock16
|
||||||
|
Capability StorageBuffer8BitAccess
|
||||||
|
Extension "SPV_KHR_8bit_storage"
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint GLCompute 4 "main" 10 12
|
||||||
|
ExecutionMode 4 LocalSize 8 1 1
|
||||||
|
Source GLSL 450
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_float16"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_int16"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_int64"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_int8"
|
||||||
|
SourceExtension "GL_KHR_shader_subgroup_basic"
|
||||||
|
SourceExtension "GL_KHR_shader_subgroup_shuffle"
|
||||||
|
Name 4 "main"
|
||||||
|
Name 8 "invocation"
|
||||||
|
Name 10 "gl_SubgroupInvocationID"
|
||||||
|
Name 12 "gl_SubgroupSize"
|
||||||
|
Name 31 "Buffers"
|
||||||
|
MemberName 31(Buffers) 0 "i8"
|
||||||
|
MemberName 31(Buffers) 1 "u8"
|
||||||
|
MemberName 31(Buffers) 2 "i16"
|
||||||
|
MemberName 31(Buffers) 3 "u16"
|
||||||
|
MemberName 31(Buffers) 4 "i64"
|
||||||
|
MemberName 31(Buffers) 5 "u64"
|
||||||
|
MemberName 31(Buffers) 6 "f16"
|
||||||
|
Name 34 "data"
|
||||||
|
Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision
|
||||||
|
Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
|
||||||
|
Decorate 11 RelaxedPrecision
|
||||||
|
Decorate 12(gl_SubgroupSize) RelaxedPrecision
|
||||||
|
Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize
|
||||||
|
Decorate 13 RelaxedPrecision
|
||||||
|
Decorate 14 RelaxedPrecision
|
||||||
|
Decorate 16 RelaxedPrecision
|
||||||
|
MemberDecorate 31(Buffers) 0 Offset 0
|
||||||
|
MemberDecorate 31(Buffers) 1 Offset 4
|
||||||
|
MemberDecorate 31(Buffers) 2 Offset 8
|
||||||
|
MemberDecorate 31(Buffers) 3 Offset 16
|
||||||
|
MemberDecorate 31(Buffers) 4 Offset 32
|
||||||
|
MemberDecorate 31(Buffers) 5 Offset 64
|
||||||
|
MemberDecorate 31(Buffers) 6 Offset 96
|
||||||
|
Decorate 31(Buffers) Block
|
||||||
|
Decorate 34(data) DescriptorSet 0
|
||||||
|
Decorate 34(data) Binding 0
|
||||||
|
Decorate 496 BuiltIn WorkgroupSize
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeInt 32 0
|
||||||
|
7: TypePointer Function 6(int)
|
||||||
|
9: TypePointer Input 6(int)
|
||||||
|
10(gl_SubgroupInvocationID): 9(ptr) Variable Input
|
||||||
|
12(gl_SubgroupSize): 9(ptr) Variable Input
|
||||||
|
15: 6(int) Constant 4
|
||||||
|
17: TypeInt 8 1
|
||||||
|
18: TypeVector 17(int8_t) 4
|
||||||
|
19: TypeInt 8 0
|
||||||
|
20: TypeVector 19(int8_t) 4
|
||||||
|
21: TypeInt 16 1
|
||||||
|
22: TypeVector 21(int16_t) 4
|
||||||
|
23: TypeInt 16 0
|
||||||
|
24: TypeVector 23(int16_t) 4
|
||||||
|
25: TypeInt 64 1
|
||||||
|
26: TypeVector 25(int64_t) 4
|
||||||
|
27: TypeInt 64 0
|
||||||
|
28: TypeVector 27(int64_t) 4
|
||||||
|
29: TypeFloat 16
|
||||||
|
30: TypeVector 29(float16_t) 4
|
||||||
|
31(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4)
|
||||||
|
32: TypeArray 31(Buffers) 15
|
||||||
|
33: TypePointer StorageBuffer 32
|
||||||
|
34(data): 33(ptr) Variable StorageBuffer
|
||||||
|
36: TypeInt 32 1
|
||||||
|
37: 36(int) Constant 0
|
||||||
|
38: 6(int) Constant 0
|
||||||
|
39: TypePointer StorageBuffer 17(int8_t)
|
||||||
|
43: 6(int) Constant 3
|
||||||
|
47: 36(int) Constant 1
|
||||||
|
48: TypeVector 17(int8_t) 2
|
||||||
|
49: TypePointer StorageBuffer 18(i8vec4)
|
||||||
|
59: 36(int) Constant 2
|
||||||
|
60: TypeVector 17(int8_t) 3
|
||||||
|
70: 36(int) Constant 3
|
||||||
|
107: TypePointer StorageBuffer 19(int8_t)
|
||||||
|
114: TypeVector 19(int8_t) 2
|
||||||
|
115: TypePointer StorageBuffer 20(i8vec4)
|
||||||
|
125: TypeVector 19(int8_t) 3
|
||||||
|
171: TypePointer StorageBuffer 21(int16_t)
|
||||||
|
178: TypeVector 21(int16_t) 2
|
||||||
|
179: TypePointer StorageBuffer 22(i16vec4)
|
||||||
|
189: TypeVector 21(int16_t) 3
|
||||||
|
235: TypePointer StorageBuffer 23(int16_t)
|
||||||
|
242: TypeVector 23(int16_t) 2
|
||||||
|
243: TypePointer StorageBuffer 24(i16vec4)
|
||||||
|
253: TypeVector 23(int16_t) 3
|
||||||
|
299: 36(int) Constant 4
|
||||||
|
300: TypePointer StorageBuffer 25(int64_t)
|
||||||
|
307: TypeVector 25(int64_t) 2
|
||||||
|
308: TypePointer StorageBuffer 26(i64vec4)
|
||||||
|
318: TypeVector 25(int64_t) 3
|
||||||
|
364: 36(int) Constant 5
|
||||||
|
365: TypePointer StorageBuffer 27(int64_t)
|
||||||
|
372: TypeVector 27(int64_t) 2
|
||||||
|
373: TypePointer StorageBuffer 28(i64vec4)
|
||||||
|
383: TypeVector 27(int64_t) 3
|
||||||
|
429: 36(int) Constant 6
|
||||||
|
430: TypePointer StorageBuffer 29(float16_t)
|
||||||
|
437: TypeVector 29(float16_t) 2
|
||||||
|
438: TypePointer StorageBuffer 30(f16vec4)
|
||||||
|
448: TypeVector 29(float16_t) 3
|
||||||
|
493: TypeVector 6(int) 3
|
||||||
|
494: 6(int) Constant 8
|
||||||
|
495: 6(int) Constant 1
|
||||||
|
496: 493(ivec3) ConstantComposite 494 495 495
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
8(invocation): 7(ptr) Variable Function
|
||||||
|
11: 6(int) Load 10(gl_SubgroupInvocationID)
|
||||||
|
13: 6(int) Load 12(gl_SubgroupSize)
|
||||||
|
14: 6(int) IAdd 11 13
|
||||||
|
16: 6(int) UMod 14 15
|
||||||
|
Store 8(invocation) 16
|
||||||
|
35: 6(int) Load 8(invocation)
|
||||||
|
40: 39(ptr) AccessChain 34(data) 37 37 38
|
||||||
|
41: 17(int8_t) Load 40
|
||||||
|
42: 6(int) Load 8(invocation)
|
||||||
|
44: 17(int8_t) GroupNonUniformShuffle 43 41 42
|
||||||
|
45: 39(ptr) AccessChain 34(data) 35 37 38
|
||||||
|
Store 45 44
|
||||||
|
46: 6(int) Load 8(invocation)
|
||||||
|
50: 49(ptr) AccessChain 34(data) 47 37
|
||||||
|
51: 18(i8vec4) Load 50
|
||||||
|
52: 48(i8vec2) VectorShuffle 51 51 0 1
|
||||||
|
53: 6(int) Load 8(invocation)
|
||||||
|
54: 48(i8vec2) GroupNonUniformShuffle 43 52 53
|
||||||
|
55: 49(ptr) AccessChain 34(data) 46 37
|
||||||
|
56: 18(i8vec4) Load 55
|
||||||
|
57: 18(i8vec4) VectorShuffle 56 54 4 5 2 3
|
||||||
|
Store 55 57
|
||||||
|
58: 6(int) Load 8(invocation)
|
||||||
|
61: 49(ptr) AccessChain 34(data) 59 37
|
||||||
|
62: 18(i8vec4) Load 61
|
||||||
|
63: 60(i8vec3) VectorShuffle 62 62 0 1 2
|
||||||
|
64: 6(int) Load 8(invocation)
|
||||||
|
65: 60(i8vec3) GroupNonUniformShuffle 43 63 64
|
||||||
|
66: 49(ptr) AccessChain 34(data) 58 37
|
||||||
|
67: 18(i8vec4) Load 66
|
||||||
|
68: 18(i8vec4) VectorShuffle 67 65 4 5 6 3
|
||||||
|
Store 66 68
|
||||||
|
69: 6(int) Load 8(invocation)
|
||||||
|
71: 49(ptr) AccessChain 34(data) 70 37
|
||||||
|
72: 18(i8vec4) Load 71
|
||||||
|
73: 6(int) Load 8(invocation)
|
||||||
|
74: 18(i8vec4) GroupNonUniformShuffle 43 72 73
|
||||||
|
75: 49(ptr) AccessChain 34(data) 69 37
|
||||||
|
Store 75 74
|
||||||
|
76: 6(int) Load 8(invocation)
|
||||||
|
77: 39(ptr) AccessChain 34(data) 37 37 38
|
||||||
|
78: 17(int8_t) Load 77
|
||||||
|
79: 6(int) Load 8(invocation)
|
||||||
|
80: 17(int8_t) GroupNonUniformShuffleXor 43 78 79
|
||||||
|
81: 39(ptr) AccessChain 34(data) 76 37 38
|
||||||
|
Store 81 80
|
||||||
|
82: 6(int) Load 8(invocation)
|
||||||
|
83: 49(ptr) AccessChain 34(data) 47 37
|
||||||
|
84: 18(i8vec4) Load 83
|
||||||
|
85: 48(i8vec2) VectorShuffle 84 84 0 1
|
||||||
|
86: 6(int) Load 8(invocation)
|
||||||
|
87: 48(i8vec2) GroupNonUniformShuffleXor 43 85 86
|
||||||
|
88: 49(ptr) AccessChain 34(data) 82 37
|
||||||
|
89: 18(i8vec4) Load 88
|
||||||
|
90: 18(i8vec4) VectorShuffle 89 87 4 5 2 3
|
||||||
|
Store 88 90
|
||||||
|
91: 6(int) Load 8(invocation)
|
||||||
|
92: 49(ptr) AccessChain 34(data) 59 37
|
||||||
|
93: 18(i8vec4) Load 92
|
||||||
|
94: 60(i8vec3) VectorShuffle 93 93 0 1 2
|
||||||
|
95: 6(int) Load 8(invocation)
|
||||||
|
96: 60(i8vec3) GroupNonUniformShuffleXor 43 94 95
|
||||||
|
97: 49(ptr) AccessChain 34(data) 91 37
|
||||||
|
98: 18(i8vec4) Load 97
|
||||||
|
99: 18(i8vec4) VectorShuffle 98 96 4 5 6 3
|
||||||
|
Store 97 99
|
||||||
|
100: 6(int) Load 8(invocation)
|
||||||
|
101: 49(ptr) AccessChain 34(data) 70 37
|
||||||
|
102: 18(i8vec4) Load 101
|
||||||
|
103: 6(int) Load 8(invocation)
|
||||||
|
104: 18(i8vec4) GroupNonUniformShuffleXor 43 102 103
|
||||||
|
105: 49(ptr) AccessChain 34(data) 100 37
|
||||||
|
Store 105 104
|
||||||
|
106: 6(int) Load 8(invocation)
|
||||||
|
108: 107(ptr) AccessChain 34(data) 37 47 38
|
||||||
|
109: 19(int8_t) Load 108
|
||||||
|
110: 6(int) Load 8(invocation)
|
||||||
|
111: 19(int8_t) GroupNonUniformShuffle 43 109 110
|
||||||
|
112: 107(ptr) AccessChain 34(data) 106 47 38
|
||||||
|
Store 112 111
|
||||||
|
113: 6(int) Load 8(invocation)
|
||||||
|
116: 115(ptr) AccessChain 34(data) 47 47
|
||||||
|
117: 20(i8vec4) Load 116
|
||||||
|
118: 114(i8vec2) VectorShuffle 117 117 0 1
|
||||||
|
119: 6(int) Load 8(invocation)
|
||||||
|
120: 114(i8vec2) GroupNonUniformShuffle 43 118 119
|
||||||
|
121: 115(ptr) AccessChain 34(data) 113 47
|
||||||
|
122: 20(i8vec4) Load 121
|
||||||
|
123: 20(i8vec4) VectorShuffle 122 120 4 5 2 3
|
||||||
|
Store 121 123
|
||||||
|
124: 6(int) Load 8(invocation)
|
||||||
|
126: 115(ptr) AccessChain 34(data) 59 47
|
||||||
|
127: 20(i8vec4) Load 126
|
||||||
|
128: 125(i8vec3) VectorShuffle 127 127 0 1 2
|
||||||
|
129: 6(int) Load 8(invocation)
|
||||||
|
130: 125(i8vec3) GroupNonUniformShuffle 43 128 129
|
||||||
|
131: 115(ptr) AccessChain 34(data) 124 47
|
||||||
|
132: 20(i8vec4) Load 131
|
||||||
|
133: 20(i8vec4) VectorShuffle 132 130 4 5 6 3
|
||||||
|
Store 131 133
|
||||||
|
134: 6(int) Load 8(invocation)
|
||||||
|
135: 115(ptr) AccessChain 34(data) 70 47
|
||||||
|
136: 20(i8vec4) Load 135
|
||||||
|
137: 6(int) Load 8(invocation)
|
||||||
|
138: 20(i8vec4) GroupNonUniformShuffle 43 136 137
|
||||||
|
139: 115(ptr) AccessChain 34(data) 134 47
|
||||||
|
Store 139 138
|
||||||
|
140: 6(int) Load 8(invocation)
|
||||||
|
141: 107(ptr) AccessChain 34(data) 37 47 38
|
||||||
|
142: 19(int8_t) Load 141
|
||||||
|
143: 6(int) Load 8(invocation)
|
||||||
|
144: 19(int8_t) GroupNonUniformShuffleXor 43 142 143
|
||||||
|
145: 107(ptr) AccessChain 34(data) 140 47 38
|
||||||
|
Store 145 144
|
||||||
|
146: 6(int) Load 8(invocation)
|
||||||
|
147: 115(ptr) AccessChain 34(data) 47 47
|
||||||
|
148: 20(i8vec4) Load 147
|
||||||
|
149: 114(i8vec2) VectorShuffle 148 148 0 1
|
||||||
|
150: 6(int) Load 8(invocation)
|
||||||
|
151: 114(i8vec2) GroupNonUniformShuffleXor 43 149 150
|
||||||
|
152: 115(ptr) AccessChain 34(data) 146 47
|
||||||
|
153: 20(i8vec4) Load 152
|
||||||
|
154: 20(i8vec4) VectorShuffle 153 151 4 5 2 3
|
||||||
|
Store 152 154
|
||||||
|
155: 6(int) Load 8(invocation)
|
||||||
|
156: 115(ptr) AccessChain 34(data) 59 47
|
||||||
|
157: 20(i8vec4) Load 156
|
||||||
|
158: 125(i8vec3) VectorShuffle 157 157 0 1 2
|
||||||
|
159: 6(int) Load 8(invocation)
|
||||||
|
160: 125(i8vec3) GroupNonUniformShuffleXor 43 158 159
|
||||||
|
161: 115(ptr) AccessChain 34(data) 155 47
|
||||||
|
162: 20(i8vec4) Load 161
|
||||||
|
163: 20(i8vec4) VectorShuffle 162 160 4 5 6 3
|
||||||
|
Store 161 163
|
||||||
|
164: 6(int) Load 8(invocation)
|
||||||
|
165: 115(ptr) AccessChain 34(data) 70 47
|
||||||
|
166: 20(i8vec4) Load 165
|
||||||
|
167: 6(int) Load 8(invocation)
|
||||||
|
168: 20(i8vec4) GroupNonUniformShuffleXor 43 166 167
|
||||||
|
169: 115(ptr) AccessChain 34(data) 164 47
|
||||||
|
Store 169 168
|
||||||
|
170: 6(int) Load 8(invocation)
|
||||||
|
172: 171(ptr) AccessChain 34(data) 37 59 38
|
||||||
|
173: 21(int16_t) Load 172
|
||||||
|
174: 6(int) Load 8(invocation)
|
||||||
|
175: 21(int16_t) GroupNonUniformShuffle 43 173 174
|
||||||
|
176: 171(ptr) AccessChain 34(data) 170 59 38
|
||||||
|
Store 176 175
|
||||||
|
177: 6(int) Load 8(invocation)
|
||||||
|
180: 179(ptr) AccessChain 34(data) 47 59
|
||||||
|
181: 22(i16vec4) Load 180
|
||||||
|
182:178(i16vec2) VectorShuffle 181 181 0 1
|
||||||
|
183: 6(int) Load 8(invocation)
|
||||||
|
184:178(i16vec2) GroupNonUniformShuffle 43 182 183
|
||||||
|
185: 179(ptr) AccessChain 34(data) 177 59
|
||||||
|
186: 22(i16vec4) Load 185
|
||||||
|
187: 22(i16vec4) VectorShuffle 186 184 4 5 2 3
|
||||||
|
Store 185 187
|
||||||
|
188: 6(int) Load 8(invocation)
|
||||||
|
190: 179(ptr) AccessChain 34(data) 59 59
|
||||||
|
191: 22(i16vec4) Load 190
|
||||||
|
192:189(i16vec3) VectorShuffle 191 191 0 1 2
|
||||||
|
193: 6(int) Load 8(invocation)
|
||||||
|
194:189(i16vec3) GroupNonUniformShuffle 43 192 193
|
||||||
|
195: 179(ptr) AccessChain 34(data) 188 59
|
||||||
|
196: 22(i16vec4) Load 195
|
||||||
|
197: 22(i16vec4) VectorShuffle 196 194 4 5 6 3
|
||||||
|
Store 195 197
|
||||||
|
198: 6(int) Load 8(invocation)
|
||||||
|
199: 179(ptr) AccessChain 34(data) 70 59
|
||||||
|
200: 22(i16vec4) Load 199
|
||||||
|
201: 6(int) Load 8(invocation)
|
||||||
|
202: 22(i16vec4) GroupNonUniformShuffle 43 200 201
|
||||||
|
203: 179(ptr) AccessChain 34(data) 198 59
|
||||||
|
Store 203 202
|
||||||
|
204: 6(int) Load 8(invocation)
|
||||||
|
205: 171(ptr) AccessChain 34(data) 37 59 38
|
||||||
|
206: 21(int16_t) Load 205
|
||||||
|
207: 6(int) Load 8(invocation)
|
||||||
|
208: 21(int16_t) GroupNonUniformShuffleXor 43 206 207
|
||||||
|
209: 171(ptr) AccessChain 34(data) 204 59 38
|
||||||
|
Store 209 208
|
||||||
|
210: 6(int) Load 8(invocation)
|
||||||
|
211: 179(ptr) AccessChain 34(data) 47 59
|
||||||
|
212: 22(i16vec4) Load 211
|
||||||
|
213:178(i16vec2) VectorShuffle 212 212 0 1
|
||||||
|
214: 6(int) Load 8(invocation)
|
||||||
|
215:178(i16vec2) GroupNonUniformShuffleXor 43 213 214
|
||||||
|
216: 179(ptr) AccessChain 34(data) 210 59
|
||||||
|
217: 22(i16vec4) Load 216
|
||||||
|
218: 22(i16vec4) VectorShuffle 217 215 4 5 2 3
|
||||||
|
Store 216 218
|
||||||
|
219: 6(int) Load 8(invocation)
|
||||||
|
220: 179(ptr) AccessChain 34(data) 59 59
|
||||||
|
221: 22(i16vec4) Load 220
|
||||||
|
222:189(i16vec3) VectorShuffle 221 221 0 1 2
|
||||||
|
223: 6(int) Load 8(invocation)
|
||||||
|
224:189(i16vec3) GroupNonUniformShuffleXor 43 222 223
|
||||||
|
225: 179(ptr) AccessChain 34(data) 219 59
|
||||||
|
226: 22(i16vec4) Load 225
|
||||||
|
227: 22(i16vec4) VectorShuffle 226 224 4 5 6 3
|
||||||
|
Store 225 227
|
||||||
|
228: 6(int) Load 8(invocation)
|
||||||
|
229: 179(ptr) AccessChain 34(data) 70 59
|
||||||
|
230: 22(i16vec4) Load 229
|
||||||
|
231: 6(int) Load 8(invocation)
|
||||||
|
232: 22(i16vec4) GroupNonUniformShuffleXor 43 230 231
|
||||||
|
233: 179(ptr) AccessChain 34(data) 228 59
|
||||||
|
Store 233 232
|
||||||
|
234: 6(int) Load 8(invocation)
|
||||||
|
236: 235(ptr) AccessChain 34(data) 37 70 38
|
||||||
|
237: 23(int16_t) Load 236
|
||||||
|
238: 6(int) Load 8(invocation)
|
||||||
|
239: 23(int16_t) GroupNonUniformShuffle 43 237 238
|
||||||
|
240: 235(ptr) AccessChain 34(data) 234 70 38
|
||||||
|
Store 240 239
|
||||||
|
241: 6(int) Load 8(invocation)
|
||||||
|
244: 243(ptr) AccessChain 34(data) 47 70
|
||||||
|
245: 24(i16vec4) Load 244
|
||||||
|
246:242(i16vec2) VectorShuffle 245 245 0 1
|
||||||
|
247: 6(int) Load 8(invocation)
|
||||||
|
248:242(i16vec2) GroupNonUniformShuffle 43 246 247
|
||||||
|
249: 243(ptr) AccessChain 34(data) 241 70
|
||||||
|
250: 24(i16vec4) Load 249
|
||||||
|
251: 24(i16vec4) VectorShuffle 250 248 4 5 2 3
|
||||||
|
Store 249 251
|
||||||
|
252: 6(int) Load 8(invocation)
|
||||||
|
254: 243(ptr) AccessChain 34(data) 59 70
|
||||||
|
255: 24(i16vec4) Load 254
|
||||||
|
256:253(i16vec3) VectorShuffle 255 255 0 1 2
|
||||||
|
257: 6(int) Load 8(invocation)
|
||||||
|
258:253(i16vec3) GroupNonUniformShuffle 43 256 257
|
||||||
|
259: 243(ptr) AccessChain 34(data) 252 70
|
||||||
|
260: 24(i16vec4) Load 259
|
||||||
|
261: 24(i16vec4) VectorShuffle 260 258 4 5 6 3
|
||||||
|
Store 259 261
|
||||||
|
262: 6(int) Load 8(invocation)
|
||||||
|
263: 243(ptr) AccessChain 34(data) 70 70
|
||||||
|
264: 24(i16vec4) Load 263
|
||||||
|
265: 6(int) Load 8(invocation)
|
||||||
|
266: 24(i16vec4) GroupNonUniformShuffle 43 264 265
|
||||||
|
267: 243(ptr) AccessChain 34(data) 262 70
|
||||||
|
Store 267 266
|
||||||
|
268: 6(int) Load 8(invocation)
|
||||||
|
269: 235(ptr) AccessChain 34(data) 37 70 38
|
||||||
|
270: 23(int16_t) Load 269
|
||||||
|
271: 6(int) Load 8(invocation)
|
||||||
|
272: 23(int16_t) GroupNonUniformShuffleXor 43 270 271
|
||||||
|
273: 235(ptr) AccessChain 34(data) 268 70 38
|
||||||
|
Store 273 272
|
||||||
|
274: 6(int) Load 8(invocation)
|
||||||
|
275: 243(ptr) AccessChain 34(data) 47 70
|
||||||
|
276: 24(i16vec4) Load 275
|
||||||
|
277:242(i16vec2) VectorShuffle 276 276 0 1
|
||||||
|
278: 6(int) Load 8(invocation)
|
||||||
|
279:242(i16vec2) GroupNonUniformShuffleXor 43 277 278
|
||||||
|
280: 243(ptr) AccessChain 34(data) 274 70
|
||||||
|
281: 24(i16vec4) Load 280
|
||||||
|
282: 24(i16vec4) VectorShuffle 281 279 4 5 2 3
|
||||||
|
Store 280 282
|
||||||
|
283: 6(int) Load 8(invocation)
|
||||||
|
284: 243(ptr) AccessChain 34(data) 59 70
|
||||||
|
285: 24(i16vec4) Load 284
|
||||||
|
286:253(i16vec3) VectorShuffle 285 285 0 1 2
|
||||||
|
287: 6(int) Load 8(invocation)
|
||||||
|
288:253(i16vec3) GroupNonUniformShuffleXor 43 286 287
|
||||||
|
289: 243(ptr) AccessChain 34(data) 283 70
|
||||||
|
290: 24(i16vec4) Load 289
|
||||||
|
291: 24(i16vec4) VectorShuffle 290 288 4 5 6 3
|
||||||
|
Store 289 291
|
||||||
|
292: 6(int) Load 8(invocation)
|
||||||
|
293: 243(ptr) AccessChain 34(data) 70 70
|
||||||
|
294: 24(i16vec4) Load 293
|
||||||
|
295: 6(int) Load 8(invocation)
|
||||||
|
296: 24(i16vec4) GroupNonUniformShuffleXor 43 294 295
|
||||||
|
297: 243(ptr) AccessChain 34(data) 292 70
|
||||||
|
Store 297 296
|
||||||
|
298: 6(int) Load 8(invocation)
|
||||||
|
301: 300(ptr) AccessChain 34(data) 37 299 38
|
||||||
|
302: 25(int64_t) Load 301
|
||||||
|
303: 6(int) Load 8(invocation)
|
||||||
|
304: 25(int64_t) GroupNonUniformShuffle 43 302 303
|
||||||
|
305: 300(ptr) AccessChain 34(data) 298 299 38
|
||||||
|
Store 305 304
|
||||||
|
306: 6(int) Load 8(invocation)
|
||||||
|
309: 308(ptr) AccessChain 34(data) 47 299
|
||||||
|
310: 26(i64vec4) Load 309
|
||||||
|
311:307(i64vec2) VectorShuffle 310 310 0 1
|
||||||
|
312: 6(int) Load 8(invocation)
|
||||||
|
313:307(i64vec2) GroupNonUniformShuffle 43 311 312
|
||||||
|
314: 308(ptr) AccessChain 34(data) 306 299
|
||||||
|
315: 26(i64vec4) Load 314
|
||||||
|
316: 26(i64vec4) VectorShuffle 315 313 4 5 2 3
|
||||||
|
Store 314 316
|
||||||
|
317: 6(int) Load 8(invocation)
|
||||||
|
319: 308(ptr) AccessChain 34(data) 59 299
|
||||||
|
320: 26(i64vec4) Load 319
|
||||||
|
321:318(i64vec3) VectorShuffle 320 320 0 1 2
|
||||||
|
322: 6(int) Load 8(invocation)
|
||||||
|
323:318(i64vec3) GroupNonUniformShuffle 43 321 322
|
||||||
|
324: 308(ptr) AccessChain 34(data) 317 299
|
||||||
|
325: 26(i64vec4) Load 324
|
||||||
|
326: 26(i64vec4) VectorShuffle 325 323 4 5 6 3
|
||||||
|
Store 324 326
|
||||||
|
327: 6(int) Load 8(invocation)
|
||||||
|
328: 308(ptr) AccessChain 34(data) 70 299
|
||||||
|
329: 26(i64vec4) Load 328
|
||||||
|
330: 6(int) Load 8(invocation)
|
||||||
|
331: 26(i64vec4) GroupNonUniformShuffle 43 329 330
|
||||||
|
332: 308(ptr) AccessChain 34(data) 327 299
|
||||||
|
Store 332 331
|
||||||
|
333: 6(int) Load 8(invocation)
|
||||||
|
334: 300(ptr) AccessChain 34(data) 37 299 38
|
||||||
|
335: 25(int64_t) Load 334
|
||||||
|
336: 6(int) Load 8(invocation)
|
||||||
|
337: 25(int64_t) GroupNonUniformShuffleXor 43 335 336
|
||||||
|
338: 300(ptr) AccessChain 34(data) 333 299 38
|
||||||
|
Store 338 337
|
||||||
|
339: 6(int) Load 8(invocation)
|
||||||
|
340: 308(ptr) AccessChain 34(data) 47 299
|
||||||
|
341: 26(i64vec4) Load 340
|
||||||
|
342:307(i64vec2) VectorShuffle 341 341 0 1
|
||||||
|
343: 6(int) Load 8(invocation)
|
||||||
|
344:307(i64vec2) GroupNonUniformShuffleXor 43 342 343
|
||||||
|
345: 308(ptr) AccessChain 34(data) 339 299
|
||||||
|
346: 26(i64vec4) Load 345
|
||||||
|
347: 26(i64vec4) VectorShuffle 346 344 4 5 2 3
|
||||||
|
Store 345 347
|
||||||
|
348: 6(int) Load 8(invocation)
|
||||||
|
349: 308(ptr) AccessChain 34(data) 59 299
|
||||||
|
350: 26(i64vec4) Load 349
|
||||||
|
351:318(i64vec3) VectorShuffle 350 350 0 1 2
|
||||||
|
352: 6(int) Load 8(invocation)
|
||||||
|
353:318(i64vec3) GroupNonUniformShuffleXor 43 351 352
|
||||||
|
354: 308(ptr) AccessChain 34(data) 348 299
|
||||||
|
355: 26(i64vec4) Load 354
|
||||||
|
356: 26(i64vec4) VectorShuffle 355 353 4 5 6 3
|
||||||
|
Store 354 356
|
||||||
|
357: 6(int) Load 8(invocation)
|
||||||
|
358: 308(ptr) AccessChain 34(data) 70 299
|
||||||
|
359: 26(i64vec4) Load 358
|
||||||
|
360: 6(int) Load 8(invocation)
|
||||||
|
361: 26(i64vec4) GroupNonUniformShuffleXor 43 359 360
|
||||||
|
362: 308(ptr) AccessChain 34(data) 357 299
|
||||||
|
Store 362 361
|
||||||
|
363: 6(int) Load 8(invocation)
|
||||||
|
366: 365(ptr) AccessChain 34(data) 37 364 38
|
||||||
|
367: 27(int64_t) Load 366
|
||||||
|
368: 6(int) Load 8(invocation)
|
||||||
|
369: 27(int64_t) GroupNonUniformShuffle 43 367 368
|
||||||
|
370: 365(ptr) AccessChain 34(data) 363 364 38
|
||||||
|
Store 370 369
|
||||||
|
371: 6(int) Load 8(invocation)
|
||||||
|
374: 373(ptr) AccessChain 34(data) 47 364
|
||||||
|
375: 28(i64vec4) Load 374
|
||||||
|
376:372(i64vec2) VectorShuffle 375 375 0 1
|
||||||
|
377: 6(int) Load 8(invocation)
|
||||||
|
378:372(i64vec2) GroupNonUniformShuffle 43 376 377
|
||||||
|
379: 373(ptr) AccessChain 34(data) 371 364
|
||||||
|
380: 28(i64vec4) Load 379
|
||||||
|
381: 28(i64vec4) VectorShuffle 380 378 4 5 2 3
|
||||||
|
Store 379 381
|
||||||
|
382: 6(int) Load 8(invocation)
|
||||||
|
384: 373(ptr) AccessChain 34(data) 59 364
|
||||||
|
385: 28(i64vec4) Load 384
|
||||||
|
386:383(i64vec3) VectorShuffle 385 385 0 1 2
|
||||||
|
387: 6(int) Load 8(invocation)
|
||||||
|
388:383(i64vec3) GroupNonUniformShuffle 43 386 387
|
||||||
|
389: 373(ptr) AccessChain 34(data) 382 364
|
||||||
|
390: 28(i64vec4) Load 389
|
||||||
|
391: 28(i64vec4) VectorShuffle 390 388 4 5 6 3
|
||||||
|
Store 389 391
|
||||||
|
392: 6(int) Load 8(invocation)
|
||||||
|
393: 373(ptr) AccessChain 34(data) 70 364
|
||||||
|
394: 28(i64vec4) Load 393
|
||||||
|
395: 6(int) Load 8(invocation)
|
||||||
|
396: 28(i64vec4) GroupNonUniformShuffle 43 394 395
|
||||||
|
397: 373(ptr) AccessChain 34(data) 392 364
|
||||||
|
Store 397 396
|
||||||
|
398: 6(int) Load 8(invocation)
|
||||||
|
399: 365(ptr) AccessChain 34(data) 37 364 38
|
||||||
|
400: 27(int64_t) Load 399
|
||||||
|
401: 6(int) Load 8(invocation)
|
||||||
|
402: 27(int64_t) GroupNonUniformShuffleXor 43 400 401
|
||||||
|
403: 365(ptr) AccessChain 34(data) 398 364 38
|
||||||
|
Store 403 402
|
||||||
|
404: 6(int) Load 8(invocation)
|
||||||
|
405: 373(ptr) AccessChain 34(data) 47 364
|
||||||
|
406: 28(i64vec4) Load 405
|
||||||
|
407:372(i64vec2) VectorShuffle 406 406 0 1
|
||||||
|
408: 6(int) Load 8(invocation)
|
||||||
|
409:372(i64vec2) GroupNonUniformShuffleXor 43 407 408
|
||||||
|
410: 373(ptr) AccessChain 34(data) 404 364
|
||||||
|
411: 28(i64vec4) Load 410
|
||||||
|
412: 28(i64vec4) VectorShuffle 411 409 4 5 2 3
|
||||||
|
Store 410 412
|
||||||
|
413: 6(int) Load 8(invocation)
|
||||||
|
414: 373(ptr) AccessChain 34(data) 59 364
|
||||||
|
415: 28(i64vec4) Load 414
|
||||||
|
416:383(i64vec3) VectorShuffle 415 415 0 1 2
|
||||||
|
417: 6(int) Load 8(invocation)
|
||||||
|
418:383(i64vec3) GroupNonUniformShuffleXor 43 416 417
|
||||||
|
419: 373(ptr) AccessChain 34(data) 413 364
|
||||||
|
420: 28(i64vec4) Load 419
|
||||||
|
421: 28(i64vec4) VectorShuffle 420 418 4 5 6 3
|
||||||
|
Store 419 421
|
||||||
|
422: 6(int) Load 8(invocation)
|
||||||
|
423: 373(ptr) AccessChain 34(data) 70 364
|
||||||
|
424: 28(i64vec4) Load 423
|
||||||
|
425: 6(int) Load 8(invocation)
|
||||||
|
426: 28(i64vec4) GroupNonUniformShuffleXor 43 424 425
|
||||||
|
427: 373(ptr) AccessChain 34(data) 422 364
|
||||||
|
Store 427 426
|
||||||
|
428: 6(int) Load 8(invocation)
|
||||||
|
431: 430(ptr) AccessChain 34(data) 37 429 38
|
||||||
|
432:29(float16_t) Load 431
|
||||||
|
433: 6(int) Load 8(invocation)
|
||||||
|
434:29(float16_t) GroupNonUniformShuffle 43 432 433
|
||||||
|
435: 430(ptr) AccessChain 34(data) 428 429 38
|
||||||
|
Store 435 434
|
||||||
|
436: 6(int) Load 8(invocation)
|
||||||
|
439: 438(ptr) AccessChain 34(data) 47 429
|
||||||
|
440: 30(f16vec4) Load 439
|
||||||
|
441:437(f16vec2) VectorShuffle 440 440 0 1
|
||||||
|
442: 6(int) Load 8(invocation)
|
||||||
|
443:437(f16vec2) GroupNonUniformShuffle 43 441 442
|
||||||
|
444: 438(ptr) AccessChain 34(data) 436 429
|
||||||
|
445: 30(f16vec4) Load 444
|
||||||
|
446: 30(f16vec4) VectorShuffle 445 443 4 5 2 3
|
||||||
|
Store 444 446
|
||||||
|
447: 6(int) Load 8(invocation)
|
||||||
|
449: 438(ptr) AccessChain 34(data) 59 429
|
||||||
|
450: 30(f16vec4) Load 449
|
||||||
|
451:448(f16vec3) VectorShuffle 450 450 0 1 2
|
||||||
|
452: 6(int) Load 8(invocation)
|
||||||
|
453:448(f16vec3) GroupNonUniformShuffle 43 451 452
|
||||||
|
454: 438(ptr) AccessChain 34(data) 447 429
|
||||||
|
455: 30(f16vec4) Load 454
|
||||||
|
456: 30(f16vec4) VectorShuffle 455 453 4 5 6 3
|
||||||
|
Store 454 456
|
||||||
|
457: 6(int) Load 8(invocation)
|
||||||
|
458: 438(ptr) AccessChain 34(data) 70 429
|
||||||
|
459: 30(f16vec4) Load 458
|
||||||
|
460: 6(int) Load 8(invocation)
|
||||||
|
461: 30(f16vec4) GroupNonUniformShuffle 43 459 460
|
||||||
|
462: 438(ptr) AccessChain 34(data) 457 429
|
||||||
|
Store 462 461
|
||||||
|
463: 6(int) Load 8(invocation)
|
||||||
|
464: 430(ptr) AccessChain 34(data) 37 429 38
|
||||||
|
465:29(float16_t) Load 464
|
||||||
|
466: 6(int) Load 8(invocation)
|
||||||
|
467:29(float16_t) GroupNonUniformShuffleXor 43 465 466
|
||||||
|
468: 430(ptr) AccessChain 34(data) 463 429 38
|
||||||
|
Store 468 467
|
||||||
|
469: 6(int) Load 8(invocation)
|
||||||
|
470: 438(ptr) AccessChain 34(data) 47 429
|
||||||
|
471: 30(f16vec4) Load 470
|
||||||
|
472:437(f16vec2) VectorShuffle 471 471 0 1
|
||||||
|
473: 6(int) Load 8(invocation)
|
||||||
|
474:437(f16vec2) GroupNonUniformShuffleXor 43 472 473
|
||||||
|
475: 438(ptr) AccessChain 34(data) 469 429
|
||||||
|
476: 30(f16vec4) Load 475
|
||||||
|
477: 30(f16vec4) VectorShuffle 476 474 4 5 2 3
|
||||||
|
Store 475 477
|
||||||
|
478: 6(int) Load 8(invocation)
|
||||||
|
479: 438(ptr) AccessChain 34(data) 59 429
|
||||||
|
480: 30(f16vec4) Load 479
|
||||||
|
481:448(f16vec3) VectorShuffle 480 480 0 1 2
|
||||||
|
482: 6(int) Load 8(invocation)
|
||||||
|
483:448(f16vec3) GroupNonUniformShuffleXor 43 481 482
|
||||||
|
484: 438(ptr) AccessChain 34(data) 478 429
|
||||||
|
485: 30(f16vec4) Load 484
|
||||||
|
486: 30(f16vec4) VectorShuffle 485 483 4 5 6 3
|
||||||
|
Store 484 486
|
||||||
|
487: 6(int) Load 8(invocation)
|
||||||
|
488: 438(ptr) AccessChain 34(data) 70 429
|
||||||
|
489: 30(f16vec4) Load 488
|
||||||
|
490: 6(int) Load 8(invocation)
|
||||||
|
491: 30(f16vec4) GroupNonUniformShuffleXor 43 489 490
|
||||||
|
492: 438(ptr) AccessChain 34(data) 487 429
|
||||||
|
Store 492 491
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
@ -0,0 +1,61 @@
|
|||||||
|
spv.subgroupExtendedTypesShuffleNeg.comp
|
||||||
|
ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:36: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:37: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:38: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:41: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:42: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:43: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:46: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:47: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:48: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:51: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:52: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:53: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:56: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:57: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:58: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:61: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:62: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:63: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:66: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:67: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:68: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:71: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:72: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:73: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:76: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:77: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:78: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:81: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:82: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:83: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:86: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:87: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:88: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:89: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:91: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:92: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:93: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:94: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 56 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
SPIR-V is not generated for failed compile or link
|
@ -0,0 +1,616 @@
|
|||||||
|
spv.subgroupExtendedTypesShuffleRelative.comp
|
||||||
|
// Module Version 10300
|
||||||
|
// Generated by (magic number): 80007
|
||||||
|
// Id's are bound by 497
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability Float16
|
||||||
|
Capability Int64
|
||||||
|
Capability Int16
|
||||||
|
Capability Int8
|
||||||
|
Capability GroupNonUniform
|
||||||
|
Capability GroupNonUniformShuffleRelative
|
||||||
|
Capability StorageUniformBufferBlock16
|
||||||
|
Capability StorageBuffer8BitAccess
|
||||||
|
Extension "SPV_KHR_8bit_storage"
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint GLCompute 4 "main" 10 12
|
||||||
|
ExecutionMode 4 LocalSize 8 1 1
|
||||||
|
Source GLSL 450
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_float16"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_int16"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_int64"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_int8"
|
||||||
|
SourceExtension "GL_KHR_shader_subgroup_basic"
|
||||||
|
SourceExtension "GL_KHR_shader_subgroup_shuffle_relative"
|
||||||
|
Name 4 "main"
|
||||||
|
Name 8 "invocation"
|
||||||
|
Name 10 "gl_SubgroupInvocationID"
|
||||||
|
Name 12 "gl_SubgroupSize"
|
||||||
|
Name 31 "Buffers"
|
||||||
|
MemberName 31(Buffers) 0 "i8"
|
||||||
|
MemberName 31(Buffers) 1 "u8"
|
||||||
|
MemberName 31(Buffers) 2 "i16"
|
||||||
|
MemberName 31(Buffers) 3 "u16"
|
||||||
|
MemberName 31(Buffers) 4 "i64"
|
||||||
|
MemberName 31(Buffers) 5 "u64"
|
||||||
|
MemberName 31(Buffers) 6 "f16"
|
||||||
|
Name 34 "data"
|
||||||
|
Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision
|
||||||
|
Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
|
||||||
|
Decorate 11 RelaxedPrecision
|
||||||
|
Decorate 12(gl_SubgroupSize) RelaxedPrecision
|
||||||
|
Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize
|
||||||
|
Decorate 13 RelaxedPrecision
|
||||||
|
Decorate 14 RelaxedPrecision
|
||||||
|
Decorate 16 RelaxedPrecision
|
||||||
|
MemberDecorate 31(Buffers) 0 Offset 0
|
||||||
|
MemberDecorate 31(Buffers) 1 Offset 4
|
||||||
|
MemberDecorate 31(Buffers) 2 Offset 8
|
||||||
|
MemberDecorate 31(Buffers) 3 Offset 16
|
||||||
|
MemberDecorate 31(Buffers) 4 Offset 32
|
||||||
|
MemberDecorate 31(Buffers) 5 Offset 64
|
||||||
|
MemberDecorate 31(Buffers) 6 Offset 96
|
||||||
|
Decorate 31(Buffers) Block
|
||||||
|
Decorate 34(data) DescriptorSet 0
|
||||||
|
Decorate 34(data) Binding 0
|
||||||
|
Decorate 496 BuiltIn WorkgroupSize
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeInt 32 0
|
||||||
|
7: TypePointer Function 6(int)
|
||||||
|
9: TypePointer Input 6(int)
|
||||||
|
10(gl_SubgroupInvocationID): 9(ptr) Variable Input
|
||||||
|
12(gl_SubgroupSize): 9(ptr) Variable Input
|
||||||
|
15: 6(int) Constant 4
|
||||||
|
17: TypeInt 8 1
|
||||||
|
18: TypeVector 17(int8_t) 4
|
||||||
|
19: TypeInt 8 0
|
||||||
|
20: TypeVector 19(int8_t) 4
|
||||||
|
21: TypeInt 16 1
|
||||||
|
22: TypeVector 21(int16_t) 4
|
||||||
|
23: TypeInt 16 0
|
||||||
|
24: TypeVector 23(int16_t) 4
|
||||||
|
25: TypeInt 64 1
|
||||||
|
26: TypeVector 25(int64_t) 4
|
||||||
|
27: TypeInt 64 0
|
||||||
|
28: TypeVector 27(int64_t) 4
|
||||||
|
29: TypeFloat 16
|
||||||
|
30: TypeVector 29(float16_t) 4
|
||||||
|
31(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4)
|
||||||
|
32: TypeArray 31(Buffers) 15
|
||||||
|
33: TypePointer StorageBuffer 32
|
||||||
|
34(data): 33(ptr) Variable StorageBuffer
|
||||||
|
36: TypeInt 32 1
|
||||||
|
37: 36(int) Constant 0
|
||||||
|
38: 6(int) Constant 0
|
||||||
|
39: TypePointer StorageBuffer 17(int8_t)
|
||||||
|
43: 6(int) Constant 3
|
||||||
|
47: 36(int) Constant 1
|
||||||
|
48: TypeVector 17(int8_t) 2
|
||||||
|
49: TypePointer StorageBuffer 18(i8vec4)
|
||||||
|
59: 36(int) Constant 2
|
||||||
|
60: TypeVector 17(int8_t) 3
|
||||||
|
70: 36(int) Constant 3
|
||||||
|
107: TypePointer StorageBuffer 19(int8_t)
|
||||||
|
114: TypeVector 19(int8_t) 2
|
||||||
|
115: TypePointer StorageBuffer 20(i8vec4)
|
||||||
|
125: TypeVector 19(int8_t) 3
|
||||||
|
171: TypePointer StorageBuffer 21(int16_t)
|
||||||
|
178: TypeVector 21(int16_t) 2
|
||||||
|
179: TypePointer StorageBuffer 22(i16vec4)
|
||||||
|
189: TypeVector 21(int16_t) 3
|
||||||
|
235: TypePointer StorageBuffer 23(int16_t)
|
||||||
|
242: TypeVector 23(int16_t) 2
|
||||||
|
243: TypePointer StorageBuffer 24(i16vec4)
|
||||||
|
253: TypeVector 23(int16_t) 3
|
||||||
|
299: 36(int) Constant 4
|
||||||
|
300: TypePointer StorageBuffer 25(int64_t)
|
||||||
|
307: TypeVector 25(int64_t) 2
|
||||||
|
308: TypePointer StorageBuffer 26(i64vec4)
|
||||||
|
318: TypeVector 25(int64_t) 3
|
||||||
|
364: 36(int) Constant 5
|
||||||
|
365: TypePointer StorageBuffer 27(int64_t)
|
||||||
|
372: TypeVector 27(int64_t) 2
|
||||||
|
373: TypePointer StorageBuffer 28(i64vec4)
|
||||||
|
383: TypeVector 27(int64_t) 3
|
||||||
|
429: 36(int) Constant 6
|
||||||
|
430: TypePointer StorageBuffer 29(float16_t)
|
||||||
|
437: TypeVector 29(float16_t) 2
|
||||||
|
438: TypePointer StorageBuffer 30(f16vec4)
|
||||||
|
448: TypeVector 29(float16_t) 3
|
||||||
|
493: TypeVector 6(int) 3
|
||||||
|
494: 6(int) Constant 8
|
||||||
|
495: 6(int) Constant 1
|
||||||
|
496: 493(ivec3) ConstantComposite 494 495 495
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
8(invocation): 7(ptr) Variable Function
|
||||||
|
11: 6(int) Load 10(gl_SubgroupInvocationID)
|
||||||
|
13: 6(int) Load 12(gl_SubgroupSize)
|
||||||
|
14: 6(int) IAdd 11 13
|
||||||
|
16: 6(int) UMod 14 15
|
||||||
|
Store 8(invocation) 16
|
||||||
|
35: 6(int) Load 8(invocation)
|
||||||
|
40: 39(ptr) AccessChain 34(data) 37 37 38
|
||||||
|
41: 17(int8_t) Load 40
|
||||||
|
42: 6(int) Load 8(invocation)
|
||||||
|
44: 17(int8_t) GroupNonUniformShuffleUp 43 41 42
|
||||||
|
45: 39(ptr) AccessChain 34(data) 35 37 38
|
||||||
|
Store 45 44
|
||||||
|
46: 6(int) Load 8(invocation)
|
||||||
|
50: 49(ptr) AccessChain 34(data) 47 37
|
||||||
|
51: 18(i8vec4) Load 50
|
||||||
|
52: 48(i8vec2) VectorShuffle 51 51 0 1
|
||||||
|
53: 6(int) Load 8(invocation)
|
||||||
|
54: 48(i8vec2) GroupNonUniformShuffleUp 43 52 53
|
||||||
|
55: 49(ptr) AccessChain 34(data) 46 37
|
||||||
|
56: 18(i8vec4) Load 55
|
||||||
|
57: 18(i8vec4) VectorShuffle 56 54 4 5 2 3
|
||||||
|
Store 55 57
|
||||||
|
58: 6(int) Load 8(invocation)
|
||||||
|
61: 49(ptr) AccessChain 34(data) 59 37
|
||||||
|
62: 18(i8vec4) Load 61
|
||||||
|
63: 60(i8vec3) VectorShuffle 62 62 0 1 2
|
||||||
|
64: 6(int) Load 8(invocation)
|
||||||
|
65: 60(i8vec3) GroupNonUniformShuffleUp 43 63 64
|
||||||
|
66: 49(ptr) AccessChain 34(data) 58 37
|
||||||
|
67: 18(i8vec4) Load 66
|
||||||
|
68: 18(i8vec4) VectorShuffle 67 65 4 5 6 3
|
||||||
|
Store 66 68
|
||||||
|
69: 6(int) Load 8(invocation)
|
||||||
|
71: 49(ptr) AccessChain 34(data) 70 37
|
||||||
|
72: 18(i8vec4) Load 71
|
||||||
|
73: 6(int) Load 8(invocation)
|
||||||
|
74: 18(i8vec4) GroupNonUniformShuffleUp 43 72 73
|
||||||
|
75: 49(ptr) AccessChain 34(data) 69 37
|
||||||
|
Store 75 74
|
||||||
|
76: 6(int) Load 8(invocation)
|
||||||
|
77: 39(ptr) AccessChain 34(data) 37 37 38
|
||||||
|
78: 17(int8_t) Load 77
|
||||||
|
79: 6(int) Load 8(invocation)
|
||||||
|
80: 17(int8_t) GroupNonUniformShuffleDown 43 78 79
|
||||||
|
81: 39(ptr) AccessChain 34(data) 76 37 38
|
||||||
|
Store 81 80
|
||||||
|
82: 6(int) Load 8(invocation)
|
||||||
|
83: 49(ptr) AccessChain 34(data) 47 37
|
||||||
|
84: 18(i8vec4) Load 83
|
||||||
|
85: 48(i8vec2) VectorShuffle 84 84 0 1
|
||||||
|
86: 6(int) Load 8(invocation)
|
||||||
|
87: 48(i8vec2) GroupNonUniformShuffleDown 43 85 86
|
||||||
|
88: 49(ptr) AccessChain 34(data) 82 37
|
||||||
|
89: 18(i8vec4) Load 88
|
||||||
|
90: 18(i8vec4) VectorShuffle 89 87 4 5 2 3
|
||||||
|
Store 88 90
|
||||||
|
91: 6(int) Load 8(invocation)
|
||||||
|
92: 49(ptr) AccessChain 34(data) 59 37
|
||||||
|
93: 18(i8vec4) Load 92
|
||||||
|
94: 60(i8vec3) VectorShuffle 93 93 0 1 2
|
||||||
|
95: 6(int) Load 8(invocation)
|
||||||
|
96: 60(i8vec3) GroupNonUniformShuffleDown 43 94 95
|
||||||
|
97: 49(ptr) AccessChain 34(data) 91 37
|
||||||
|
98: 18(i8vec4) Load 97
|
||||||
|
99: 18(i8vec4) VectorShuffle 98 96 4 5 6 3
|
||||||
|
Store 97 99
|
||||||
|
100: 6(int) Load 8(invocation)
|
||||||
|
101: 49(ptr) AccessChain 34(data) 70 37
|
||||||
|
102: 18(i8vec4) Load 101
|
||||||
|
103: 6(int) Load 8(invocation)
|
||||||
|
104: 18(i8vec4) GroupNonUniformShuffleDown 43 102 103
|
||||||
|
105: 49(ptr) AccessChain 34(data) 100 37
|
||||||
|
Store 105 104
|
||||||
|
106: 6(int) Load 8(invocation)
|
||||||
|
108: 107(ptr) AccessChain 34(data) 37 47 38
|
||||||
|
109: 19(int8_t) Load 108
|
||||||
|
110: 6(int) Load 8(invocation)
|
||||||
|
111: 19(int8_t) GroupNonUniformShuffleUp 43 109 110
|
||||||
|
112: 107(ptr) AccessChain 34(data) 106 47 38
|
||||||
|
Store 112 111
|
||||||
|
113: 6(int) Load 8(invocation)
|
||||||
|
116: 115(ptr) AccessChain 34(data) 47 47
|
||||||
|
117: 20(i8vec4) Load 116
|
||||||
|
118: 114(i8vec2) VectorShuffle 117 117 0 1
|
||||||
|
119: 6(int) Load 8(invocation)
|
||||||
|
120: 114(i8vec2) GroupNonUniformShuffleUp 43 118 119
|
||||||
|
121: 115(ptr) AccessChain 34(data) 113 47
|
||||||
|
122: 20(i8vec4) Load 121
|
||||||
|
123: 20(i8vec4) VectorShuffle 122 120 4 5 2 3
|
||||||
|
Store 121 123
|
||||||
|
124: 6(int) Load 8(invocation)
|
||||||
|
126: 115(ptr) AccessChain 34(data) 59 47
|
||||||
|
127: 20(i8vec4) Load 126
|
||||||
|
128: 125(i8vec3) VectorShuffle 127 127 0 1 2
|
||||||
|
129: 6(int) Load 8(invocation)
|
||||||
|
130: 125(i8vec3) GroupNonUniformShuffleUp 43 128 129
|
||||||
|
131: 115(ptr) AccessChain 34(data) 124 47
|
||||||
|
132: 20(i8vec4) Load 131
|
||||||
|
133: 20(i8vec4) VectorShuffle 132 130 4 5 6 3
|
||||||
|
Store 131 133
|
||||||
|
134: 6(int) Load 8(invocation)
|
||||||
|
135: 115(ptr) AccessChain 34(data) 70 47
|
||||||
|
136: 20(i8vec4) Load 135
|
||||||
|
137: 6(int) Load 8(invocation)
|
||||||
|
138: 20(i8vec4) GroupNonUniformShuffleUp 43 136 137
|
||||||
|
139: 115(ptr) AccessChain 34(data) 134 47
|
||||||
|
Store 139 138
|
||||||
|
140: 6(int) Load 8(invocation)
|
||||||
|
141: 107(ptr) AccessChain 34(data) 37 47 38
|
||||||
|
142: 19(int8_t) Load 141
|
||||||
|
143: 6(int) Load 8(invocation)
|
||||||
|
144: 19(int8_t) GroupNonUniformShuffleDown 43 142 143
|
||||||
|
145: 107(ptr) AccessChain 34(data) 140 47 38
|
||||||
|
Store 145 144
|
||||||
|
146: 6(int) Load 8(invocation)
|
||||||
|
147: 115(ptr) AccessChain 34(data) 47 47
|
||||||
|
148: 20(i8vec4) Load 147
|
||||||
|
149: 114(i8vec2) VectorShuffle 148 148 0 1
|
||||||
|
150: 6(int) Load 8(invocation)
|
||||||
|
151: 114(i8vec2) GroupNonUniformShuffleDown 43 149 150
|
||||||
|
152: 115(ptr) AccessChain 34(data) 146 47
|
||||||
|
153: 20(i8vec4) Load 152
|
||||||
|
154: 20(i8vec4) VectorShuffle 153 151 4 5 2 3
|
||||||
|
Store 152 154
|
||||||
|
155: 6(int) Load 8(invocation)
|
||||||
|
156: 115(ptr) AccessChain 34(data) 59 47
|
||||||
|
157: 20(i8vec4) Load 156
|
||||||
|
158: 125(i8vec3) VectorShuffle 157 157 0 1 2
|
||||||
|
159: 6(int) Load 8(invocation)
|
||||||
|
160: 125(i8vec3) GroupNonUniformShuffleDown 43 158 159
|
||||||
|
161: 115(ptr) AccessChain 34(data) 155 47
|
||||||
|
162: 20(i8vec4) Load 161
|
||||||
|
163: 20(i8vec4) VectorShuffle 162 160 4 5 6 3
|
||||||
|
Store 161 163
|
||||||
|
164: 6(int) Load 8(invocation)
|
||||||
|
165: 115(ptr) AccessChain 34(data) 70 47
|
||||||
|
166: 20(i8vec4) Load 165
|
||||||
|
167: 6(int) Load 8(invocation)
|
||||||
|
168: 20(i8vec4) GroupNonUniformShuffleDown 43 166 167
|
||||||
|
169: 115(ptr) AccessChain 34(data) 164 47
|
||||||
|
Store 169 168
|
||||||
|
170: 6(int) Load 8(invocation)
|
||||||
|
172: 171(ptr) AccessChain 34(data) 37 59 38
|
||||||
|
173: 21(int16_t) Load 172
|
||||||
|
174: 6(int) Load 8(invocation)
|
||||||
|
175: 21(int16_t) GroupNonUniformShuffleUp 43 173 174
|
||||||
|
176: 171(ptr) AccessChain 34(data) 170 59 38
|
||||||
|
Store 176 175
|
||||||
|
177: 6(int) Load 8(invocation)
|
||||||
|
180: 179(ptr) AccessChain 34(data) 47 59
|
||||||
|
181: 22(i16vec4) Load 180
|
||||||
|
182:178(i16vec2) VectorShuffle 181 181 0 1
|
||||||
|
183: 6(int) Load 8(invocation)
|
||||||
|
184:178(i16vec2) GroupNonUniformShuffleUp 43 182 183
|
||||||
|
185: 179(ptr) AccessChain 34(data) 177 59
|
||||||
|
186: 22(i16vec4) Load 185
|
||||||
|
187: 22(i16vec4) VectorShuffle 186 184 4 5 2 3
|
||||||
|
Store 185 187
|
||||||
|
188: 6(int) Load 8(invocation)
|
||||||
|
190: 179(ptr) AccessChain 34(data) 59 59
|
||||||
|
191: 22(i16vec4) Load 190
|
||||||
|
192:189(i16vec3) VectorShuffle 191 191 0 1 2
|
||||||
|
193: 6(int) Load 8(invocation)
|
||||||
|
194:189(i16vec3) GroupNonUniformShuffleUp 43 192 193
|
||||||
|
195: 179(ptr) AccessChain 34(data) 188 59
|
||||||
|
196: 22(i16vec4) Load 195
|
||||||
|
197: 22(i16vec4) VectorShuffle 196 194 4 5 6 3
|
||||||
|
Store 195 197
|
||||||
|
198: 6(int) Load 8(invocation)
|
||||||
|
199: 179(ptr) AccessChain 34(data) 70 59
|
||||||
|
200: 22(i16vec4) Load 199
|
||||||
|
201: 6(int) Load 8(invocation)
|
||||||
|
202: 22(i16vec4) GroupNonUniformShuffleUp 43 200 201
|
||||||
|
203: 179(ptr) AccessChain 34(data) 198 59
|
||||||
|
Store 203 202
|
||||||
|
204: 6(int) Load 8(invocation)
|
||||||
|
205: 171(ptr) AccessChain 34(data) 37 59 38
|
||||||
|
206: 21(int16_t) Load 205
|
||||||
|
207: 6(int) Load 8(invocation)
|
||||||
|
208: 21(int16_t) GroupNonUniformShuffleDown 43 206 207
|
||||||
|
209: 171(ptr) AccessChain 34(data) 204 59 38
|
||||||
|
Store 209 208
|
||||||
|
210: 6(int) Load 8(invocation)
|
||||||
|
211: 179(ptr) AccessChain 34(data) 47 59
|
||||||
|
212: 22(i16vec4) Load 211
|
||||||
|
213:178(i16vec2) VectorShuffle 212 212 0 1
|
||||||
|
214: 6(int) Load 8(invocation)
|
||||||
|
215:178(i16vec2) GroupNonUniformShuffleDown 43 213 214
|
||||||
|
216: 179(ptr) AccessChain 34(data) 210 59
|
||||||
|
217: 22(i16vec4) Load 216
|
||||||
|
218: 22(i16vec4) VectorShuffle 217 215 4 5 2 3
|
||||||
|
Store 216 218
|
||||||
|
219: 6(int) Load 8(invocation)
|
||||||
|
220: 179(ptr) AccessChain 34(data) 59 59
|
||||||
|
221: 22(i16vec4) Load 220
|
||||||
|
222:189(i16vec3) VectorShuffle 221 221 0 1 2
|
||||||
|
223: 6(int) Load 8(invocation)
|
||||||
|
224:189(i16vec3) GroupNonUniformShuffleDown 43 222 223
|
||||||
|
225: 179(ptr) AccessChain 34(data) 219 59
|
||||||
|
226: 22(i16vec4) Load 225
|
||||||
|
227: 22(i16vec4) VectorShuffle 226 224 4 5 6 3
|
||||||
|
Store 225 227
|
||||||
|
228: 6(int) Load 8(invocation)
|
||||||
|
229: 179(ptr) AccessChain 34(data) 70 59
|
||||||
|
230: 22(i16vec4) Load 229
|
||||||
|
231: 6(int) Load 8(invocation)
|
||||||
|
232: 22(i16vec4) GroupNonUniformShuffleDown 43 230 231
|
||||||
|
233: 179(ptr) AccessChain 34(data) 228 59
|
||||||
|
Store 233 232
|
||||||
|
234: 6(int) Load 8(invocation)
|
||||||
|
236: 235(ptr) AccessChain 34(data) 37 70 38
|
||||||
|
237: 23(int16_t) Load 236
|
||||||
|
238: 6(int) Load 8(invocation)
|
||||||
|
239: 23(int16_t) GroupNonUniformShuffleUp 43 237 238
|
||||||
|
240: 235(ptr) AccessChain 34(data) 234 70 38
|
||||||
|
Store 240 239
|
||||||
|
241: 6(int) Load 8(invocation)
|
||||||
|
244: 243(ptr) AccessChain 34(data) 47 70
|
||||||
|
245: 24(i16vec4) Load 244
|
||||||
|
246:242(i16vec2) VectorShuffle 245 245 0 1
|
||||||
|
247: 6(int) Load 8(invocation)
|
||||||
|
248:242(i16vec2) GroupNonUniformShuffleUp 43 246 247
|
||||||
|
249: 243(ptr) AccessChain 34(data) 241 70
|
||||||
|
250: 24(i16vec4) Load 249
|
||||||
|
251: 24(i16vec4) VectorShuffle 250 248 4 5 2 3
|
||||||
|
Store 249 251
|
||||||
|
252: 6(int) Load 8(invocation)
|
||||||
|
254: 243(ptr) AccessChain 34(data) 59 70
|
||||||
|
255: 24(i16vec4) Load 254
|
||||||
|
256:253(i16vec3) VectorShuffle 255 255 0 1 2
|
||||||
|
257: 6(int) Load 8(invocation)
|
||||||
|
258:253(i16vec3) GroupNonUniformShuffleUp 43 256 257
|
||||||
|
259: 243(ptr) AccessChain 34(data) 252 70
|
||||||
|
260: 24(i16vec4) Load 259
|
||||||
|
261: 24(i16vec4) VectorShuffle 260 258 4 5 6 3
|
||||||
|
Store 259 261
|
||||||
|
262: 6(int) Load 8(invocation)
|
||||||
|
263: 243(ptr) AccessChain 34(data) 70 70
|
||||||
|
264: 24(i16vec4) Load 263
|
||||||
|
265: 6(int) Load 8(invocation)
|
||||||
|
266: 24(i16vec4) GroupNonUniformShuffleUp 43 264 265
|
||||||
|
267: 243(ptr) AccessChain 34(data) 262 70
|
||||||
|
Store 267 266
|
||||||
|
268: 6(int) Load 8(invocation)
|
||||||
|
269: 235(ptr) AccessChain 34(data) 37 70 38
|
||||||
|
270: 23(int16_t) Load 269
|
||||||
|
271: 6(int) Load 8(invocation)
|
||||||
|
272: 23(int16_t) GroupNonUniformShuffleDown 43 270 271
|
||||||
|
273: 235(ptr) AccessChain 34(data) 268 70 38
|
||||||
|
Store 273 272
|
||||||
|
274: 6(int) Load 8(invocation)
|
||||||
|
275: 243(ptr) AccessChain 34(data) 47 70
|
||||||
|
276: 24(i16vec4) Load 275
|
||||||
|
277:242(i16vec2) VectorShuffle 276 276 0 1
|
||||||
|
278: 6(int) Load 8(invocation)
|
||||||
|
279:242(i16vec2) GroupNonUniformShuffleDown 43 277 278
|
||||||
|
280: 243(ptr) AccessChain 34(data) 274 70
|
||||||
|
281: 24(i16vec4) Load 280
|
||||||
|
282: 24(i16vec4) VectorShuffle 281 279 4 5 2 3
|
||||||
|
Store 280 282
|
||||||
|
283: 6(int) Load 8(invocation)
|
||||||
|
284: 243(ptr) AccessChain 34(data) 59 70
|
||||||
|
285: 24(i16vec4) Load 284
|
||||||
|
286:253(i16vec3) VectorShuffle 285 285 0 1 2
|
||||||
|
287: 6(int) Load 8(invocation)
|
||||||
|
288:253(i16vec3) GroupNonUniformShuffleDown 43 286 287
|
||||||
|
289: 243(ptr) AccessChain 34(data) 283 70
|
||||||
|
290: 24(i16vec4) Load 289
|
||||||
|
291: 24(i16vec4) VectorShuffle 290 288 4 5 6 3
|
||||||
|
Store 289 291
|
||||||
|
292: 6(int) Load 8(invocation)
|
||||||
|
293: 243(ptr) AccessChain 34(data) 70 70
|
||||||
|
294: 24(i16vec4) Load 293
|
||||||
|
295: 6(int) Load 8(invocation)
|
||||||
|
296: 24(i16vec4) GroupNonUniformShuffleDown 43 294 295
|
||||||
|
297: 243(ptr) AccessChain 34(data) 292 70
|
||||||
|
Store 297 296
|
||||||
|
298: 6(int) Load 8(invocation)
|
||||||
|
301: 300(ptr) AccessChain 34(data) 37 299 38
|
||||||
|
302: 25(int64_t) Load 301
|
||||||
|
303: 6(int) Load 8(invocation)
|
||||||
|
304: 25(int64_t) GroupNonUniformShuffleUp 43 302 303
|
||||||
|
305: 300(ptr) AccessChain 34(data) 298 299 38
|
||||||
|
Store 305 304
|
||||||
|
306: 6(int) Load 8(invocation)
|
||||||
|
309: 308(ptr) AccessChain 34(data) 47 299
|
||||||
|
310: 26(i64vec4) Load 309
|
||||||
|
311:307(i64vec2) VectorShuffle 310 310 0 1
|
||||||
|
312: 6(int) Load 8(invocation)
|
||||||
|
313:307(i64vec2) GroupNonUniformShuffleUp 43 311 312
|
||||||
|
314: 308(ptr) AccessChain 34(data) 306 299
|
||||||
|
315: 26(i64vec4) Load 314
|
||||||
|
316: 26(i64vec4) VectorShuffle 315 313 4 5 2 3
|
||||||
|
Store 314 316
|
||||||
|
317: 6(int) Load 8(invocation)
|
||||||
|
319: 308(ptr) AccessChain 34(data) 59 299
|
||||||
|
320: 26(i64vec4) Load 319
|
||||||
|
321:318(i64vec3) VectorShuffle 320 320 0 1 2
|
||||||
|
322: 6(int) Load 8(invocation)
|
||||||
|
323:318(i64vec3) GroupNonUniformShuffleUp 43 321 322
|
||||||
|
324: 308(ptr) AccessChain 34(data) 317 299
|
||||||
|
325: 26(i64vec4) Load 324
|
||||||
|
326: 26(i64vec4) VectorShuffle 325 323 4 5 6 3
|
||||||
|
Store 324 326
|
||||||
|
327: 6(int) Load 8(invocation)
|
||||||
|
328: 308(ptr) AccessChain 34(data) 70 299
|
||||||
|
329: 26(i64vec4) Load 328
|
||||||
|
330: 6(int) Load 8(invocation)
|
||||||
|
331: 26(i64vec4) GroupNonUniformShuffleUp 43 329 330
|
||||||
|
332: 308(ptr) AccessChain 34(data) 327 299
|
||||||
|
Store 332 331
|
||||||
|
333: 6(int) Load 8(invocation)
|
||||||
|
334: 300(ptr) AccessChain 34(data) 37 299 38
|
||||||
|
335: 25(int64_t) Load 334
|
||||||
|
336: 6(int) Load 8(invocation)
|
||||||
|
337: 25(int64_t) GroupNonUniformShuffleDown 43 335 336
|
||||||
|
338: 300(ptr) AccessChain 34(data) 333 299 38
|
||||||
|
Store 338 337
|
||||||
|
339: 6(int) Load 8(invocation)
|
||||||
|
340: 308(ptr) AccessChain 34(data) 47 299
|
||||||
|
341: 26(i64vec4) Load 340
|
||||||
|
342:307(i64vec2) VectorShuffle 341 341 0 1
|
||||||
|
343: 6(int) Load 8(invocation)
|
||||||
|
344:307(i64vec2) GroupNonUniformShuffleDown 43 342 343
|
||||||
|
345: 308(ptr) AccessChain 34(data) 339 299
|
||||||
|
346: 26(i64vec4) Load 345
|
||||||
|
347: 26(i64vec4) VectorShuffle 346 344 4 5 2 3
|
||||||
|
Store 345 347
|
||||||
|
348: 6(int) Load 8(invocation)
|
||||||
|
349: 308(ptr) AccessChain 34(data) 59 299
|
||||||
|
350: 26(i64vec4) Load 349
|
||||||
|
351:318(i64vec3) VectorShuffle 350 350 0 1 2
|
||||||
|
352: 6(int) Load 8(invocation)
|
||||||
|
353:318(i64vec3) GroupNonUniformShuffleDown 43 351 352
|
||||||
|
354: 308(ptr) AccessChain 34(data) 348 299
|
||||||
|
355: 26(i64vec4) Load 354
|
||||||
|
356: 26(i64vec4) VectorShuffle 355 353 4 5 6 3
|
||||||
|
Store 354 356
|
||||||
|
357: 6(int) Load 8(invocation)
|
||||||
|
358: 308(ptr) AccessChain 34(data) 70 299
|
||||||
|
359: 26(i64vec4) Load 358
|
||||||
|
360: 6(int) Load 8(invocation)
|
||||||
|
361: 26(i64vec4) GroupNonUniformShuffleDown 43 359 360
|
||||||
|
362: 308(ptr) AccessChain 34(data) 357 299
|
||||||
|
Store 362 361
|
||||||
|
363: 6(int) Load 8(invocation)
|
||||||
|
366: 365(ptr) AccessChain 34(data) 37 364 38
|
||||||
|
367: 27(int64_t) Load 366
|
||||||
|
368: 6(int) Load 8(invocation)
|
||||||
|
369: 27(int64_t) GroupNonUniformShuffleUp 43 367 368
|
||||||
|
370: 365(ptr) AccessChain 34(data) 363 364 38
|
||||||
|
Store 370 369
|
||||||
|
371: 6(int) Load 8(invocation)
|
||||||
|
374: 373(ptr) AccessChain 34(data) 47 364
|
||||||
|
375: 28(i64vec4) Load 374
|
||||||
|
376:372(i64vec2) VectorShuffle 375 375 0 1
|
||||||
|
377: 6(int) Load 8(invocation)
|
||||||
|
378:372(i64vec2) GroupNonUniformShuffleUp 43 376 377
|
||||||
|
379: 373(ptr) AccessChain 34(data) 371 364
|
||||||
|
380: 28(i64vec4) Load 379
|
||||||
|
381: 28(i64vec4) VectorShuffle 380 378 4 5 2 3
|
||||||
|
Store 379 381
|
||||||
|
382: 6(int) Load 8(invocation)
|
||||||
|
384: 373(ptr) AccessChain 34(data) 59 364
|
||||||
|
385: 28(i64vec4) Load 384
|
||||||
|
386:383(i64vec3) VectorShuffle 385 385 0 1 2
|
||||||
|
387: 6(int) Load 8(invocation)
|
||||||
|
388:383(i64vec3) GroupNonUniformShuffleUp 43 386 387
|
||||||
|
389: 373(ptr) AccessChain 34(data) 382 364
|
||||||
|
390: 28(i64vec4) Load 389
|
||||||
|
391: 28(i64vec4) VectorShuffle 390 388 4 5 6 3
|
||||||
|
Store 389 391
|
||||||
|
392: 6(int) Load 8(invocation)
|
||||||
|
393: 373(ptr) AccessChain 34(data) 70 364
|
||||||
|
394: 28(i64vec4) Load 393
|
||||||
|
395: 6(int) Load 8(invocation)
|
||||||
|
396: 28(i64vec4) GroupNonUniformShuffleUp 43 394 395
|
||||||
|
397: 373(ptr) AccessChain 34(data) 392 364
|
||||||
|
Store 397 396
|
||||||
|
398: 6(int) Load 8(invocation)
|
||||||
|
399: 365(ptr) AccessChain 34(data) 37 364 38
|
||||||
|
400: 27(int64_t) Load 399
|
||||||
|
401: 6(int) Load 8(invocation)
|
||||||
|
402: 27(int64_t) GroupNonUniformShuffleDown 43 400 401
|
||||||
|
403: 365(ptr) AccessChain 34(data) 398 364 38
|
||||||
|
Store 403 402
|
||||||
|
404: 6(int) Load 8(invocation)
|
||||||
|
405: 373(ptr) AccessChain 34(data) 47 364
|
||||||
|
406: 28(i64vec4) Load 405
|
||||||
|
407:372(i64vec2) VectorShuffle 406 406 0 1
|
||||||
|
408: 6(int) Load 8(invocation)
|
||||||
|
409:372(i64vec2) GroupNonUniformShuffleDown 43 407 408
|
||||||
|
410: 373(ptr) AccessChain 34(data) 404 364
|
||||||
|
411: 28(i64vec4) Load 410
|
||||||
|
412: 28(i64vec4) VectorShuffle 411 409 4 5 2 3
|
||||||
|
Store 410 412
|
||||||
|
413: 6(int) Load 8(invocation)
|
||||||
|
414: 373(ptr) AccessChain 34(data) 59 364
|
||||||
|
415: 28(i64vec4) Load 414
|
||||||
|
416:383(i64vec3) VectorShuffle 415 415 0 1 2
|
||||||
|
417: 6(int) Load 8(invocation)
|
||||||
|
418:383(i64vec3) GroupNonUniformShuffleDown 43 416 417
|
||||||
|
419: 373(ptr) AccessChain 34(data) 413 364
|
||||||
|
420: 28(i64vec4) Load 419
|
||||||
|
421: 28(i64vec4) VectorShuffle 420 418 4 5 6 3
|
||||||
|
Store 419 421
|
||||||
|
422: 6(int) Load 8(invocation)
|
||||||
|
423: 373(ptr) AccessChain 34(data) 70 364
|
||||||
|
424: 28(i64vec4) Load 423
|
||||||
|
425: 6(int) Load 8(invocation)
|
||||||
|
426: 28(i64vec4) GroupNonUniformShuffleDown 43 424 425
|
||||||
|
427: 373(ptr) AccessChain 34(data) 422 364
|
||||||
|
Store 427 426
|
||||||
|
428: 6(int) Load 8(invocation)
|
||||||
|
431: 430(ptr) AccessChain 34(data) 37 429 38
|
||||||
|
432:29(float16_t) Load 431
|
||||||
|
433: 6(int) Load 8(invocation)
|
||||||
|
434:29(float16_t) GroupNonUniformShuffleUp 43 432 433
|
||||||
|
435: 430(ptr) AccessChain 34(data) 428 429 38
|
||||||
|
Store 435 434
|
||||||
|
436: 6(int) Load 8(invocation)
|
||||||
|
439: 438(ptr) AccessChain 34(data) 47 429
|
||||||
|
440: 30(f16vec4) Load 439
|
||||||
|
441:437(f16vec2) VectorShuffle 440 440 0 1
|
||||||
|
442: 6(int) Load 8(invocation)
|
||||||
|
443:437(f16vec2) GroupNonUniformShuffleUp 43 441 442
|
||||||
|
444: 438(ptr) AccessChain 34(data) 436 429
|
||||||
|
445: 30(f16vec4) Load 444
|
||||||
|
446: 30(f16vec4) VectorShuffle 445 443 4 5 2 3
|
||||||
|
Store 444 446
|
||||||
|
447: 6(int) Load 8(invocation)
|
||||||
|
449: 438(ptr) AccessChain 34(data) 59 429
|
||||||
|
450: 30(f16vec4) Load 449
|
||||||
|
451:448(f16vec3) VectorShuffle 450 450 0 1 2
|
||||||
|
452: 6(int) Load 8(invocation)
|
||||||
|
453:448(f16vec3) GroupNonUniformShuffleUp 43 451 452
|
||||||
|
454: 438(ptr) AccessChain 34(data) 447 429
|
||||||
|
455: 30(f16vec4) Load 454
|
||||||
|
456: 30(f16vec4) VectorShuffle 455 453 4 5 6 3
|
||||||
|
Store 454 456
|
||||||
|
457: 6(int) Load 8(invocation)
|
||||||
|
458: 438(ptr) AccessChain 34(data) 70 429
|
||||||
|
459: 30(f16vec4) Load 458
|
||||||
|
460: 6(int) Load 8(invocation)
|
||||||
|
461: 30(f16vec4) GroupNonUniformShuffleUp 43 459 460
|
||||||
|
462: 438(ptr) AccessChain 34(data) 457 429
|
||||||
|
Store 462 461
|
||||||
|
463: 6(int) Load 8(invocation)
|
||||||
|
464: 430(ptr) AccessChain 34(data) 37 429 38
|
||||||
|
465:29(float16_t) Load 464
|
||||||
|
466: 6(int) Load 8(invocation)
|
||||||
|
467:29(float16_t) GroupNonUniformShuffleDown 43 465 466
|
||||||
|
468: 430(ptr) AccessChain 34(data) 463 429 38
|
||||||
|
Store 468 467
|
||||||
|
469: 6(int) Load 8(invocation)
|
||||||
|
470: 438(ptr) AccessChain 34(data) 47 429
|
||||||
|
471: 30(f16vec4) Load 470
|
||||||
|
472:437(f16vec2) VectorShuffle 471 471 0 1
|
||||||
|
473: 6(int) Load 8(invocation)
|
||||||
|
474:437(f16vec2) GroupNonUniformShuffleDown 43 472 473
|
||||||
|
475: 438(ptr) AccessChain 34(data) 469 429
|
||||||
|
476: 30(f16vec4) Load 475
|
||||||
|
477: 30(f16vec4) VectorShuffle 476 474 4 5 2 3
|
||||||
|
Store 475 477
|
||||||
|
478: 6(int) Load 8(invocation)
|
||||||
|
479: 438(ptr) AccessChain 34(data) 59 429
|
||||||
|
480: 30(f16vec4) Load 479
|
||||||
|
481:448(f16vec3) VectorShuffle 480 480 0 1 2
|
||||||
|
482: 6(int) Load 8(invocation)
|
||||||
|
483:448(f16vec3) GroupNonUniformShuffleDown 43 481 482
|
||||||
|
484: 438(ptr) AccessChain 34(data) 478 429
|
||||||
|
485: 30(f16vec4) Load 484
|
||||||
|
486: 30(f16vec4) VectorShuffle 485 483 4 5 6 3
|
||||||
|
Store 484 486
|
||||||
|
487: 6(int) Load 8(invocation)
|
||||||
|
488: 438(ptr) AccessChain 34(data) 70 429
|
||||||
|
489: 30(f16vec4) Load 488
|
||||||
|
490: 6(int) Load 8(invocation)
|
||||||
|
491: 30(f16vec4) GroupNonUniformShuffleDown 43 489 490
|
||||||
|
492: 438(ptr) AccessChain 34(data) 487 429
|
||||||
|
Store 492 491
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
@ -0,0 +1,61 @@
|
|||||||
|
spv.subgroupExtendedTypesShuffleRelativeNeg.comp
|
||||||
|
ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:36: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:37: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:38: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:41: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:42: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:43: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:46: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:47: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:48: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:51: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:52: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:53: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:56: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:57: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:58: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:61: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:62: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:63: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:66: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:67: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:68: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:71: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:72: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:73: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:76: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:77: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:78: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:81: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:82: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:83: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:86: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:87: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:88: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:89: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:91: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:92: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:93: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:94: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 56 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
SPIR-V is not generated for failed compile or link
|
377
Test/baseResults/spv.subgroupExtendedTypesVote.comp.out
Normal file
377
Test/baseResults/spv.subgroupExtendedTypesVote.comp.out
Normal file
@ -0,0 +1,377 @@
|
|||||||
|
spv.subgroupExtendedTypesVote.comp
|
||||||
|
// Module Version 10300
|
||||||
|
// Generated by (magic number): 80007
|
||||||
|
// Id's are bound by 277
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability Float16
|
||||||
|
Capability Int64
|
||||||
|
Capability Int16
|
||||||
|
Capability Int8
|
||||||
|
Capability GroupNonUniform
|
||||||
|
Capability GroupNonUniformVote
|
||||||
|
Capability StorageUniformBufferBlock16
|
||||||
|
Capability StorageBuffer8BitAccess
|
||||||
|
Extension "SPV_KHR_8bit_storage"
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint GLCompute 4 "main" 10 12
|
||||||
|
ExecutionMode 4 LocalSize 8 1 1
|
||||||
|
Source GLSL 450
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_float16"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_int16"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_int64"
|
||||||
|
SourceExtension "GL_EXT_shader_subgroup_extended_types_int8"
|
||||||
|
SourceExtension "GL_KHR_shader_subgroup_basic"
|
||||||
|
SourceExtension "GL_KHR_shader_subgroup_vote"
|
||||||
|
Name 4 "main"
|
||||||
|
Name 8 "invocation"
|
||||||
|
Name 10 "gl_SubgroupInvocationID"
|
||||||
|
Name 12 "gl_SubgroupSize"
|
||||||
|
Name 32 "Buffers"
|
||||||
|
MemberName 32(Buffers) 0 "i8"
|
||||||
|
MemberName 32(Buffers) 1 "u8"
|
||||||
|
MemberName 32(Buffers) 2 "i16"
|
||||||
|
MemberName 32(Buffers) 3 "u16"
|
||||||
|
MemberName 32(Buffers) 4 "i64"
|
||||||
|
MemberName 32(Buffers) 5 "u64"
|
||||||
|
MemberName 32(Buffers) 6 "f16"
|
||||||
|
MemberName 32(Buffers) 7 "r"
|
||||||
|
Name 35 "data"
|
||||||
|
Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision
|
||||||
|
Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
|
||||||
|
Decorate 11 RelaxedPrecision
|
||||||
|
Decorate 12(gl_SubgroupSize) RelaxedPrecision
|
||||||
|
Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize
|
||||||
|
Decorate 13 RelaxedPrecision
|
||||||
|
Decorate 14 RelaxedPrecision
|
||||||
|
Decorate 16 RelaxedPrecision
|
||||||
|
MemberDecorate 32(Buffers) 0 Offset 0
|
||||||
|
MemberDecorate 32(Buffers) 1 Offset 4
|
||||||
|
MemberDecorate 32(Buffers) 2 Offset 8
|
||||||
|
MemberDecorate 32(Buffers) 3 Offset 16
|
||||||
|
MemberDecorate 32(Buffers) 4 Offset 32
|
||||||
|
MemberDecorate 32(Buffers) 5 Offset 64
|
||||||
|
MemberDecorate 32(Buffers) 6 Offset 96
|
||||||
|
MemberDecorate 32(Buffers) 7 Offset 104
|
||||||
|
Decorate 32(Buffers) Block
|
||||||
|
Decorate 35(data) DescriptorSet 0
|
||||||
|
Decorate 35(data) Binding 0
|
||||||
|
Decorate 276 BuiltIn WorkgroupSize
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeInt 32 0
|
||||||
|
7: TypePointer Function 6(int)
|
||||||
|
9: TypePointer Input 6(int)
|
||||||
|
10(gl_SubgroupInvocationID): 9(ptr) Variable Input
|
||||||
|
12(gl_SubgroupSize): 9(ptr) Variable Input
|
||||||
|
15: 6(int) Constant 4
|
||||||
|
17: TypeInt 8 1
|
||||||
|
18: TypeVector 17(int8_t) 4
|
||||||
|
19: TypeInt 8 0
|
||||||
|
20: TypeVector 19(int8_t) 4
|
||||||
|
21: TypeInt 16 1
|
||||||
|
22: TypeVector 21(int16_t) 4
|
||||||
|
23: TypeInt 16 0
|
||||||
|
24: TypeVector 23(int16_t) 4
|
||||||
|
25: TypeInt 64 1
|
||||||
|
26: TypeVector 25(int64_t) 4
|
||||||
|
27: TypeInt 64 0
|
||||||
|
28: TypeVector 27(int64_t) 4
|
||||||
|
29: TypeFloat 16
|
||||||
|
30: TypeVector 29(float16_t) 4
|
||||||
|
31: TypeInt 32 1
|
||||||
|
32(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4) 31(int)
|
||||||
|
33: TypeArray 32(Buffers) 15
|
||||||
|
34: TypePointer StorageBuffer 33
|
||||||
|
35(data): 34(ptr) Variable StorageBuffer
|
||||||
|
37: 31(int) Constant 7
|
||||||
|
38: TypePointer StorageBuffer 31(int)
|
||||||
|
41: 31(int) Constant 0
|
||||||
|
42: TypeBool
|
||||||
|
44: 6(int) Constant 3
|
||||||
|
49: 6(int) Constant 0
|
||||||
|
50: TypePointer StorageBuffer 17(int8_t)
|
||||||
|
54: 31(int) Constant 1
|
||||||
|
58: TypeVector 17(int8_t) 2
|
||||||
|
59: TypePointer StorageBuffer 18(i8vec4)
|
||||||
|
67: 31(int) Constant 2
|
||||||
|
68: TypeVector 17(int8_t) 3
|
||||||
|
76: 31(int) Constant 3
|
||||||
|
83: TypePointer StorageBuffer 19(int8_t)
|
||||||
|
90: TypeVector 19(int8_t) 2
|
||||||
|
91: TypePointer StorageBuffer 20(i8vec4)
|
||||||
|
99: TypeVector 19(int8_t) 3
|
||||||
|
113: TypePointer StorageBuffer 21(int16_t)
|
||||||
|
120: TypeVector 21(int16_t) 2
|
||||||
|
121: TypePointer StorageBuffer 22(i16vec4)
|
||||||
|
129: TypeVector 21(int16_t) 3
|
||||||
|
143: TypePointer StorageBuffer 23(int16_t)
|
||||||
|
150: TypeVector 23(int16_t) 2
|
||||||
|
151: TypePointer StorageBuffer 24(i16vec4)
|
||||||
|
159: TypeVector 23(int16_t) 3
|
||||||
|
181: 31(int) Constant 4
|
||||||
|
182: TypePointer StorageBuffer 25(int64_t)
|
||||||
|
189: TypeVector 25(int64_t) 2
|
||||||
|
190: TypePointer StorageBuffer 26(i64vec4)
|
||||||
|
198: TypeVector 25(int64_t) 3
|
||||||
|
212: 31(int) Constant 5
|
||||||
|
213: TypePointer StorageBuffer 27(int64_t)
|
||||||
|
220: TypeVector 27(int64_t) 2
|
||||||
|
221: TypePointer StorageBuffer 28(i64vec4)
|
||||||
|
229: TypeVector 27(int64_t) 3
|
||||||
|
243: 31(int) Constant 6
|
||||||
|
244: TypePointer StorageBuffer 29(float16_t)
|
||||||
|
251: TypeVector 29(float16_t) 2
|
||||||
|
252: TypePointer StorageBuffer 30(f16vec4)
|
||||||
|
260: TypeVector 29(float16_t) 3
|
||||||
|
273: TypeVector 6(int) 3
|
||||||
|
274: 6(int) Constant 8
|
||||||
|
275: 6(int) Constant 1
|
||||||
|
276: 273(ivec3) ConstantComposite 274 275 275
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
8(invocation): 7(ptr) Variable Function
|
||||||
|
11: 6(int) Load 10(gl_SubgroupInvocationID)
|
||||||
|
13: 6(int) Load 12(gl_SubgroupSize)
|
||||||
|
14: 6(int) IAdd 11 13
|
||||||
|
16: 6(int) UMod 14 15
|
||||||
|
Store 8(invocation) 16
|
||||||
|
36: 6(int) Load 8(invocation)
|
||||||
|
39: 38(ptr) AccessChain 35(data) 36 37
|
||||||
|
40: 31(int) Load 39
|
||||||
|
43: 42(bool) SLessThan 40 41
|
||||||
|
45: 42(bool) GroupNonUniformAll 44 43
|
||||||
|
SelectionMerge 47 None
|
||||||
|
BranchConditional 45 46 172
|
||||||
|
46: Label
|
||||||
|
48: 6(int) Load 8(invocation)
|
||||||
|
51: 50(ptr) AccessChain 35(data) 41 41 49
|
||||||
|
52: 17(int8_t) Load 51
|
||||||
|
53: 42(bool) GroupNonUniformAllEqual 44 52
|
||||||
|
55: 31(int) Select 53 54 41
|
||||||
|
56: 38(ptr) AccessChain 35(data) 48 37
|
||||||
|
Store 56 55
|
||||||
|
57: 6(int) Load 8(invocation)
|
||||||
|
60: 59(ptr) AccessChain 35(data) 54 41
|
||||||
|
61: 18(i8vec4) Load 60
|
||||||
|
62: 58(i8vec2) VectorShuffle 61 61 0 1
|
||||||
|
63: 42(bool) GroupNonUniformAllEqual 44 62
|
||||||
|
64: 31(int) Select 63 54 41
|
||||||
|
65: 38(ptr) AccessChain 35(data) 57 37
|
||||||
|
Store 65 64
|
||||||
|
66: 6(int) Load 8(invocation)
|
||||||
|
69: 59(ptr) AccessChain 35(data) 67 41
|
||||||
|
70: 18(i8vec4) Load 69
|
||||||
|
71: 68(i8vec3) VectorShuffle 70 70 0 1 2
|
||||||
|
72: 42(bool) GroupNonUniformAllEqual 44 71
|
||||||
|
73: 31(int) Select 72 54 41
|
||||||
|
74: 38(ptr) AccessChain 35(data) 66 37
|
||||||
|
Store 74 73
|
||||||
|
75: 6(int) Load 8(invocation)
|
||||||
|
77: 59(ptr) AccessChain 35(data) 76 41
|
||||||
|
78: 18(i8vec4) Load 77
|
||||||
|
79: 42(bool) GroupNonUniformAllEqual 44 78
|
||||||
|
80: 31(int) Select 79 54 41
|
||||||
|
81: 38(ptr) AccessChain 35(data) 75 37
|
||||||
|
Store 81 80
|
||||||
|
82: 6(int) Load 8(invocation)
|
||||||
|
84: 83(ptr) AccessChain 35(data) 41 54 49
|
||||||
|
85: 19(int8_t) Load 84
|
||||||
|
86: 42(bool) GroupNonUniformAllEqual 44 85
|
||||||
|
87: 31(int) Select 86 54 41
|
||||||
|
88: 38(ptr) AccessChain 35(data) 82 37
|
||||||
|
Store 88 87
|
||||||
|
89: 6(int) Load 8(invocation)
|
||||||
|
92: 91(ptr) AccessChain 35(data) 54 54
|
||||||
|
93: 20(i8vec4) Load 92
|
||||||
|
94: 90(i8vec2) VectorShuffle 93 93 0 1
|
||||||
|
95: 42(bool) GroupNonUniformAllEqual 44 94
|
||||||
|
96: 31(int) Select 95 54 41
|
||||||
|
97: 38(ptr) AccessChain 35(data) 89 37
|
||||||
|
Store 97 96
|
||||||
|
98: 6(int) Load 8(invocation)
|
||||||
|
100: 91(ptr) AccessChain 35(data) 67 54
|
||||||
|
101: 20(i8vec4) Load 100
|
||||||
|
102: 99(i8vec3) VectorShuffle 101 101 0 1 2
|
||||||
|
103: 42(bool) GroupNonUniformAllEqual 44 102
|
||||||
|
104: 31(int) Select 103 54 41
|
||||||
|
105: 38(ptr) AccessChain 35(data) 98 37
|
||||||
|
Store 105 104
|
||||||
|
106: 6(int) Load 8(invocation)
|
||||||
|
107: 91(ptr) AccessChain 35(data) 76 54
|
||||||
|
108: 20(i8vec4) Load 107
|
||||||
|
109: 42(bool) GroupNonUniformAllEqual 44 108
|
||||||
|
110: 31(int) Select 109 54 41
|
||||||
|
111: 38(ptr) AccessChain 35(data) 106 37
|
||||||
|
Store 111 110
|
||||||
|
112: 6(int) Load 8(invocation)
|
||||||
|
114: 113(ptr) AccessChain 35(data) 41 67 49
|
||||||
|
115: 21(int16_t) Load 114
|
||||||
|
116: 42(bool) GroupNonUniformAllEqual 44 115
|
||||||
|
117: 31(int) Select 116 54 41
|
||||||
|
118: 38(ptr) AccessChain 35(data) 112 37
|
||||||
|
Store 118 117
|
||||||
|
119: 6(int) Load 8(invocation)
|
||||||
|
122: 121(ptr) AccessChain 35(data) 54 67
|
||||||
|
123: 22(i16vec4) Load 122
|
||||||
|
124:120(i16vec2) VectorShuffle 123 123 0 1
|
||||||
|
125: 42(bool) GroupNonUniformAllEqual 44 124
|
||||||
|
126: 31(int) Select 125 54 41
|
||||||
|
127: 38(ptr) AccessChain 35(data) 119 37
|
||||||
|
Store 127 126
|
||||||
|
128: 6(int) Load 8(invocation)
|
||||||
|
130: 121(ptr) AccessChain 35(data) 67 67
|
||||||
|
131: 22(i16vec4) Load 130
|
||||||
|
132:129(i16vec3) VectorShuffle 131 131 0 1 2
|
||||||
|
133: 42(bool) GroupNonUniformAllEqual 44 132
|
||||||
|
134: 31(int) Select 133 54 41
|
||||||
|
135: 38(ptr) AccessChain 35(data) 128 37
|
||||||
|
Store 135 134
|
||||||
|
136: 6(int) Load 8(invocation)
|
||||||
|
137: 121(ptr) AccessChain 35(data) 76 67
|
||||||
|
138: 22(i16vec4) Load 137
|
||||||
|
139: 42(bool) GroupNonUniformAllEqual 44 138
|
||||||
|
140: 31(int) Select 139 54 41
|
||||||
|
141: 38(ptr) AccessChain 35(data) 136 37
|
||||||
|
Store 141 140
|
||||||
|
142: 6(int) Load 8(invocation)
|
||||||
|
144: 143(ptr) AccessChain 35(data) 41 76 49
|
||||||
|
145: 23(int16_t) Load 144
|
||||||
|
146: 42(bool) GroupNonUniformAllEqual 44 145
|
||||||
|
147: 31(int) Select 146 54 41
|
||||||
|
148: 38(ptr) AccessChain 35(data) 142 37
|
||||||
|
Store 148 147
|
||||||
|
149: 6(int) Load 8(invocation)
|
||||||
|
152: 151(ptr) AccessChain 35(data) 54 76
|
||||||
|
153: 24(i16vec4) Load 152
|
||||||
|
154:150(i16vec2) VectorShuffle 153 153 0 1
|
||||||
|
155: 42(bool) GroupNonUniformAllEqual 44 154
|
||||||
|
156: 31(int) Select 155 54 41
|
||||||
|
157: 38(ptr) AccessChain 35(data) 149 37
|
||||||
|
Store 157 156
|
||||||
|
158: 6(int) Load 8(invocation)
|
||||||
|
160: 151(ptr) AccessChain 35(data) 67 76
|
||||||
|
161: 24(i16vec4) Load 160
|
||||||
|
162:159(i16vec3) VectorShuffle 161 161 0 1 2
|
||||||
|
163: 42(bool) GroupNonUniformAllEqual 44 162
|
||||||
|
164: 31(int) Select 163 54 41
|
||||||
|
165: 38(ptr) AccessChain 35(data) 158 37
|
||||||
|
Store 165 164
|
||||||
|
166: 6(int) Load 8(invocation)
|
||||||
|
167: 151(ptr) AccessChain 35(data) 76 76
|
||||||
|
168: 24(i16vec4) Load 167
|
||||||
|
169: 42(bool) GroupNonUniformAllEqual 44 168
|
||||||
|
170: 31(int) Select 169 54 41
|
||||||
|
171: 38(ptr) AccessChain 35(data) 166 37
|
||||||
|
Store 171 170
|
||||||
|
Branch 47
|
||||||
|
172: Label
|
||||||
|
173: 6(int) Load 8(invocation)
|
||||||
|
174: 38(ptr) AccessChain 35(data) 173 37
|
||||||
|
175: 31(int) Load 174
|
||||||
|
176: 42(bool) SLessThan 175 41
|
||||||
|
177: 42(bool) GroupNonUniformAny 44 176
|
||||||
|
SelectionMerge 179 None
|
||||||
|
BranchConditional 177 178 179
|
||||||
|
178: Label
|
||||||
|
180: 6(int) Load 8(invocation)
|
||||||
|
183: 182(ptr) AccessChain 35(data) 41 181 49
|
||||||
|
184: 25(int64_t) Load 183
|
||||||
|
185: 42(bool) GroupNonUniformAllEqual 44 184
|
||||||
|
186: 31(int) Select 185 54 41
|
||||||
|
187: 38(ptr) AccessChain 35(data) 180 37
|
||||||
|
Store 187 186
|
||||||
|
188: 6(int) Load 8(invocation)
|
||||||
|
191: 190(ptr) AccessChain 35(data) 54 181
|
||||||
|
192: 26(i64vec4) Load 191
|
||||||
|
193:189(i64vec2) VectorShuffle 192 192 0 1
|
||||||
|
194: 42(bool) GroupNonUniformAllEqual 44 193
|
||||||
|
195: 31(int) Select 194 54 41
|
||||||
|
196: 38(ptr) AccessChain 35(data) 188 37
|
||||||
|
Store 196 195
|
||||||
|
197: 6(int) Load 8(invocation)
|
||||||
|
199: 190(ptr) AccessChain 35(data) 67 181
|
||||||
|
200: 26(i64vec4) Load 199
|
||||||
|
201:198(i64vec3) VectorShuffle 200 200 0 1 2
|
||||||
|
202: 42(bool) GroupNonUniformAllEqual 44 201
|
||||||
|
203: 31(int) Select 202 54 41
|
||||||
|
204: 38(ptr) AccessChain 35(data) 197 37
|
||||||
|
Store 204 203
|
||||||
|
205: 6(int) Load 8(invocation)
|
||||||
|
206: 190(ptr) AccessChain 35(data) 76 181
|
||||||
|
207: 26(i64vec4) Load 206
|
||||||
|
208: 42(bool) GroupNonUniformAllEqual 44 207
|
||||||
|
209: 31(int) Select 208 54 41
|
||||||
|
210: 38(ptr) AccessChain 35(data) 205 37
|
||||||
|
Store 210 209
|
||||||
|
211: 6(int) Load 8(invocation)
|
||||||
|
214: 213(ptr) AccessChain 35(data) 41 212 49
|
||||||
|
215: 27(int64_t) Load 214
|
||||||
|
216: 42(bool) GroupNonUniformAllEqual 44 215
|
||||||
|
217: 31(int) Select 216 54 41
|
||||||
|
218: 38(ptr) AccessChain 35(data) 211 37
|
||||||
|
Store 218 217
|
||||||
|
219: 6(int) Load 8(invocation)
|
||||||
|
222: 221(ptr) AccessChain 35(data) 54 212
|
||||||
|
223: 28(i64vec4) Load 222
|
||||||
|
224:220(i64vec2) VectorShuffle 223 223 0 1
|
||||||
|
225: 42(bool) GroupNonUniformAllEqual 44 224
|
||||||
|
226: 31(int) Select 225 54 41
|
||||||
|
227: 38(ptr) AccessChain 35(data) 219 37
|
||||||
|
Store 227 226
|
||||||
|
228: 6(int) Load 8(invocation)
|
||||||
|
230: 221(ptr) AccessChain 35(data) 67 212
|
||||||
|
231: 28(i64vec4) Load 230
|
||||||
|
232:229(i64vec3) VectorShuffle 231 231 0 1 2
|
||||||
|
233: 42(bool) GroupNonUniformAllEqual 44 232
|
||||||
|
234: 31(int) Select 233 54 41
|
||||||
|
235: 38(ptr) AccessChain 35(data) 228 37
|
||||||
|
Store 235 234
|
||||||
|
236: 6(int) Load 8(invocation)
|
||||||
|
237: 221(ptr) AccessChain 35(data) 76 212
|
||||||
|
238: 28(i64vec4) Load 237
|
||||||
|
239: 42(bool) GroupNonUniformAllEqual 44 238
|
||||||
|
240: 31(int) Select 239 54 41
|
||||||
|
241: 38(ptr) AccessChain 35(data) 236 37
|
||||||
|
Store 241 240
|
||||||
|
242: 6(int) Load 8(invocation)
|
||||||
|
245: 244(ptr) AccessChain 35(data) 41 243 49
|
||||||
|
246:29(float16_t) Load 245
|
||||||
|
247: 42(bool) GroupNonUniformAllEqual 44 246
|
||||||
|
248: 31(int) Select 247 54 41
|
||||||
|
249: 38(ptr) AccessChain 35(data) 242 37
|
||||||
|
Store 249 248
|
||||||
|
250: 6(int) Load 8(invocation)
|
||||||
|
253: 252(ptr) AccessChain 35(data) 54 243
|
||||||
|
254: 30(f16vec4) Load 253
|
||||||
|
255:251(f16vec2) VectorShuffle 254 254 0 1
|
||||||
|
256: 42(bool) GroupNonUniformAllEqual 44 255
|
||||||
|
257: 31(int) Select 256 54 41
|
||||||
|
258: 38(ptr) AccessChain 35(data) 250 37
|
||||||
|
Store 258 257
|
||||||
|
259: 6(int) Load 8(invocation)
|
||||||
|
261: 252(ptr) AccessChain 35(data) 67 243
|
||||||
|
262: 30(f16vec4) Load 261
|
||||||
|
263:260(f16vec3) VectorShuffle 262 262 0 1 2
|
||||||
|
264: 42(bool) GroupNonUniformAllEqual 44 263
|
||||||
|
265: 31(int) Select 264 54 41
|
||||||
|
266: 38(ptr) AccessChain 35(data) 259 37
|
||||||
|
Store 266 265
|
||||||
|
267: 6(int) Load 8(invocation)
|
||||||
|
268: 252(ptr) AccessChain 35(data) 76 243
|
||||||
|
269: 30(f16vec4) Load 268
|
||||||
|
270: 42(bool) GroupNonUniformAllEqual 44 269
|
||||||
|
271: 31(int) Select 270 54 41
|
||||||
|
272: 38(ptr) AccessChain 35(data) 267 37
|
||||||
|
Store 272 271
|
||||||
|
Branch 179
|
||||||
|
179: Label
|
||||||
|
Branch 47
|
||||||
|
47: Label
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
33
Test/baseResults/spv.subgroupExtendedTypesVoteNeg.comp.out
Normal file
33
Test/baseResults/spv.subgroupExtendedTypesVoteNeg.comp.out
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
spv.subgroupExtendedTypesVoteNeg.comp
|
||||||
|
ERROR: 0:29: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:30: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:31: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:32: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:34: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:35: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:36: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:37: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
|
||||||
|
ERROR: 0:39: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:40: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:41: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:42: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:44: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:45: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:46: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:47: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||||
|
ERROR: 0:51: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:52: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:53: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:56: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:57: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:58: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||||
|
ERROR: 0:61: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:62: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:63: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||||
|
ERROR: 28 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
SPIR-V is not generated for failed compile or link
|
715
Test/spv.subgroupExtendedTypesArithmetic.comp
Normal file
715
Test/spv.subgroupExtendedTypesArithmetic.comp
Normal file
@ -0,0 +1,715 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
#extension GL_KHR_shader_subgroup_arithmetic: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int8: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int16: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int64: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_float16: enable
|
||||||
|
|
||||||
|
layout (local_size_x = 8) in;
|
||||||
|
|
||||||
|
layout(binding = 0) buffer Buffers
|
||||||
|
{
|
||||||
|
i8vec4 i8;
|
||||||
|
u8vec4 u8;
|
||||||
|
i16vec4 i16;
|
||||||
|
u16vec4 u16;
|
||||||
|
i64vec4 i64;
|
||||||
|
u64vec4 u64;
|
||||||
|
f16vec4 f16;
|
||||||
|
} data[4];
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupAdd(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupAdd(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupAdd(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupAdd(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupMul(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupMul(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupMul(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupMul(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupMin(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupMin(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupMin(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupMin(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupMax(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupMax(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupMax(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupMax(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupAnd(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupAnd(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupAnd(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupAnd(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupOr(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupOr(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupOr(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupOr(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupXor(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupXor(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupXor(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupXor(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupInclusiveAdd(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupInclusiveAdd(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupInclusiveAdd(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupInclusiveAdd(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupInclusiveMul(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupInclusiveMul(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupInclusiveMul(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupInclusiveMul(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupInclusiveMin(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupInclusiveMin(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupInclusiveMin(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupInclusiveMin(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupInclusiveMax(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupInclusiveMax(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupInclusiveMax(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupInclusiveMax(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupInclusiveAnd(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupInclusiveAnd(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupInclusiveAnd(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupInclusiveAnd(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupInclusiveOr(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupInclusiveOr(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupInclusiveOr(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupInclusiveOr(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupInclusiveXor(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupInclusiveXor(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupInclusiveXor(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupInclusiveXor(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupExclusiveAdd(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupExclusiveAdd(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupExclusiveAdd(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupExclusiveAdd(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupExclusiveMul(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupExclusiveMul(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupExclusiveMul(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupExclusiveMul(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupExclusiveMin(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupExclusiveMin(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupExclusiveMin(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupExclusiveMin(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupExclusiveMax(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupExclusiveMax(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupExclusiveMax(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupExclusiveMax(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupExclusiveAnd(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupExclusiveAnd(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupExclusiveAnd(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupExclusiveAnd(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupExclusiveOr(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupExclusiveOr(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupExclusiveOr(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupExclusiveOr(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupExclusiveXor(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupExclusiveXor(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupExclusiveXor(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupExclusiveXor(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupAdd(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupAdd(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupAdd(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupAdd(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupMul(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupMul(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupMul(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupMul(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupMin(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupMin(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupMin(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupMin(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupMax(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupMax(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupMax(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupMax(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupAnd(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupAnd(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupAnd(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupAnd(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupOr(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupOr(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupOr(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupOr(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupXor(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupXor(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupXor(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupXor(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupInclusiveAdd(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupInclusiveAdd(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupInclusiveAdd(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupInclusiveAdd(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupInclusiveMul(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupInclusiveMul(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupInclusiveMul(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupInclusiveMul(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupInclusiveMin(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupInclusiveMin(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupInclusiveMin(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupInclusiveMin(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupInclusiveMax(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupInclusiveMax(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupInclusiveMax(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupInclusiveMax(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupInclusiveAnd(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupInclusiveAnd(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupInclusiveAnd(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupInclusiveAnd(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupInclusiveOr(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupInclusiveOr(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupInclusiveOr(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupInclusiveOr(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupInclusiveXor(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupInclusiveXor(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupInclusiveXor(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupInclusiveXor(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupExclusiveAdd(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupExclusiveAdd(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupExclusiveAdd(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupExclusiveAdd(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupExclusiveMul(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupExclusiveMul(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupExclusiveMul(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupExclusiveMul(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupExclusiveMin(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupExclusiveMin(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupExclusiveMin(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupExclusiveMin(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupExclusiveMax(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupExclusiveMax(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupExclusiveMax(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupExclusiveMax(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupExclusiveAnd(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupExclusiveAnd(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupExclusiveAnd(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupExclusiveAnd(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupExclusiveOr(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupExclusiveOr(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupExclusiveOr(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupExclusiveOr(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupExclusiveXor(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupExclusiveXor(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupExclusiveXor(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupExclusiveXor(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupAdd(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupAdd(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupAdd(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupAdd(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupMul(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupMul(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupMul(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupMul(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupMin(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupMin(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupMin(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupMin(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupMax(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupMax(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupMax(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupMax(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupAnd(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupAnd(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupAnd(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupAnd(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupOr(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupOr(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupOr(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupOr(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupXor(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupXor(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupXor(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupXor(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupInclusiveAdd(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupInclusiveAdd(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupInclusiveAdd(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupInclusiveAdd(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupInclusiveMul(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupInclusiveMul(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupInclusiveMul(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupInclusiveMul(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupInclusiveMin(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupInclusiveMin(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupInclusiveMin(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupInclusiveMin(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupInclusiveMax(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupInclusiveMax(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupInclusiveMax(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupInclusiveMax(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupInclusiveAnd(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupInclusiveAnd(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupInclusiveAnd(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupInclusiveAnd(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupInclusiveOr(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupInclusiveOr(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupInclusiveOr(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupInclusiveOr(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupInclusiveXor(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupInclusiveXor(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupInclusiveXor(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupInclusiveXor(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupExclusiveAdd(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupExclusiveAdd(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupExclusiveAdd(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupExclusiveAdd(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupExclusiveMul(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupExclusiveMul(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupExclusiveMul(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupExclusiveMul(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupExclusiveMin(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupExclusiveMin(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupExclusiveMin(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupExclusiveMin(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupExclusiveMax(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupExclusiveMax(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupExclusiveMax(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupExclusiveMax(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupExclusiveAnd(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupExclusiveAnd(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupExclusiveAnd(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupExclusiveAnd(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupExclusiveOr(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupExclusiveOr(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupExclusiveOr(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupExclusiveOr(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupExclusiveXor(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupExclusiveXor(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupExclusiveXor(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupExclusiveXor(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupAdd(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupAdd(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupAdd(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupAdd(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupMul(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupMul(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupMul(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupMul(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupMin(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupMin(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupMin(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupMin(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupMax(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupMax(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupMax(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupMax(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupAnd(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupAnd(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupAnd(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupAnd(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupOr(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupOr(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupOr(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupOr(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupXor(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupXor(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupXor(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupXor(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupInclusiveAdd(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupInclusiveAdd(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupInclusiveAdd(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupInclusiveAdd(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupInclusiveMul(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupInclusiveMul(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupInclusiveMul(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupInclusiveMul(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupInclusiveMin(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupInclusiveMin(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupInclusiveMin(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupInclusiveMin(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupInclusiveMax(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupInclusiveMax(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupInclusiveMax(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupInclusiveMax(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupInclusiveAnd(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupInclusiveAnd(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupInclusiveAnd(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupInclusiveAnd(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupInclusiveOr(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupInclusiveOr(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupInclusiveOr(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupInclusiveOr(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupInclusiveXor(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupInclusiveXor(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupInclusiveXor(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupInclusiveXor(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupExclusiveAdd(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupExclusiveAdd(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupExclusiveAdd(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupExclusiveAdd(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupExclusiveMul(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupExclusiveMul(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupExclusiveMul(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupExclusiveMul(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupExclusiveMin(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupExclusiveMin(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupExclusiveMin(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupExclusiveMin(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupExclusiveMax(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupExclusiveMax(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupExclusiveMax(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupExclusiveMax(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupExclusiveAnd(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupExclusiveAnd(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupExclusiveAnd(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupExclusiveAnd(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupExclusiveOr(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupExclusiveOr(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupExclusiveOr(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupExclusiveOr(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupExclusiveXor(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupExclusiveXor(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupExclusiveXor(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupExclusiveXor(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupAdd(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupAdd(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupAdd(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupAdd(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupMul(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupMul(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupMul(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupMul(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupMin(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupMin(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupMin(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupMin(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupMax(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupMax(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupMax(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupMax(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupAnd(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupAnd(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupAnd(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupAnd(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupOr(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupOr(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupOr(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupOr(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupXor(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupXor(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupXor(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupXor(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupInclusiveAdd(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupInclusiveAdd(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupInclusiveAdd(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupInclusiveAdd(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupInclusiveMul(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupInclusiveMul(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupInclusiveMul(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupInclusiveMul(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupInclusiveMin(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupInclusiveMin(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupInclusiveMin(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupInclusiveMin(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupInclusiveMax(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupInclusiveMax(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupInclusiveMax(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupInclusiveMax(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupInclusiveAnd(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupInclusiveAnd(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupInclusiveAnd(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupInclusiveAnd(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupInclusiveOr(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupInclusiveOr(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupInclusiveOr(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupInclusiveOr(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupInclusiveXor(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupInclusiveXor(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupInclusiveXor(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupInclusiveXor(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupExclusiveAdd(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupExclusiveAdd(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupExclusiveAdd(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupExclusiveAdd(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupExclusiveMul(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupExclusiveMul(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupExclusiveMul(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupExclusiveMul(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupExclusiveMin(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupExclusiveMin(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupExclusiveMin(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupExclusiveMin(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupExclusiveMax(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupExclusiveMax(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupExclusiveMax(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupExclusiveMax(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupExclusiveAnd(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupExclusiveAnd(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupExclusiveAnd(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupExclusiveAnd(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupExclusiveOr(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupExclusiveOr(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupExclusiveOr(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupExclusiveOr(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupExclusiveXor(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupExclusiveXor(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupExclusiveXor(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupExclusiveXor(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupAdd(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupAdd(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupAdd(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupAdd(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupMul(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupMul(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupMul(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupMul(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupMin(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupMin(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupMin(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupMin(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupMax(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupMax(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupMax(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupMax(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupAnd(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupAnd(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupAnd(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupAnd(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupOr(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupOr(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupOr(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupOr(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupXor(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupXor(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupXor(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupXor(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupInclusiveAdd(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupInclusiveAdd(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupInclusiveAdd(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupInclusiveAdd(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupInclusiveMul(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupInclusiveMul(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupInclusiveMul(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupInclusiveMul(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupInclusiveMin(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupInclusiveMin(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupInclusiveMin(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupInclusiveMin(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupInclusiveMax(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupInclusiveMax(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupInclusiveMax(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupInclusiveMax(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupInclusiveAnd(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupInclusiveAnd(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupInclusiveAnd(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupInclusiveAnd(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupInclusiveOr(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupInclusiveOr(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupInclusiveOr(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupInclusiveOr(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupInclusiveXor(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupInclusiveXor(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupInclusiveXor(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupInclusiveXor(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupExclusiveAdd(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupExclusiveAdd(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupExclusiveAdd(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupExclusiveAdd(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupExclusiveMul(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupExclusiveMul(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupExclusiveMul(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupExclusiveMul(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupExclusiveMin(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupExclusiveMin(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupExclusiveMin(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupExclusiveMin(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupExclusiveMax(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupExclusiveMax(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupExclusiveMax(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupExclusiveMax(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupExclusiveAnd(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupExclusiveAnd(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupExclusiveAnd(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupExclusiveAnd(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupExclusiveOr(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupExclusiveOr(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupExclusiveOr(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupExclusiveOr(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupExclusiveXor(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupExclusiveXor(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupExclusiveXor(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupExclusiveXor(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupAdd(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupAdd(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupAdd(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupAdd(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupMul(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupMul(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupMul(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupMul(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupMin(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupMin(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupMin(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupMin(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupMax(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupMax(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupMax(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupMax(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupInclusiveAdd(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupInclusiveAdd(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupInclusiveAdd(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupInclusiveAdd(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupInclusiveMul(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupInclusiveMul(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupInclusiveMul(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupInclusiveMul(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupInclusiveMin(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupInclusiveMin(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupInclusiveMin(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupInclusiveMin(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupInclusiveMax(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupInclusiveMax(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupInclusiveMax(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupInclusiveMax(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupExclusiveAdd(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupExclusiveAdd(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupExclusiveAdd(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupExclusiveAdd(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupExclusiveMul(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupExclusiveMul(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupExclusiveMul(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupExclusiveMul(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupExclusiveMin(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupExclusiveMin(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupExclusiveMin(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupExclusiveMin(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupExclusiveMax(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupExclusiveMax(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupExclusiveMax(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupExclusiveMax(data[3].f16);
|
||||||
|
}
|
715
Test/spv.subgroupExtendedTypesArithmeticNeg.comp
Normal file
715
Test/spv.subgroupExtendedTypesArithmeticNeg.comp
Normal file
@ -0,0 +1,715 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
#extension GL_KHR_shader_subgroup_arithmetic: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable
|
||||||
|
|
||||||
|
layout (local_size_x = 8) in;
|
||||||
|
|
||||||
|
layout(binding = 0) buffer Buffers
|
||||||
|
{
|
||||||
|
i8vec4 i8;
|
||||||
|
u8vec4 u8;
|
||||||
|
i16vec4 i16;
|
||||||
|
u16vec4 u16;
|
||||||
|
i64vec4 i64;
|
||||||
|
u64vec4 u64;
|
||||||
|
f16vec4 f16;
|
||||||
|
} data[4];
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupAdd(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupAdd(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupAdd(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupAdd(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupMul(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupMul(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupMul(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupMul(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupMin(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupMin(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupMin(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupMin(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupMax(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupMax(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupMax(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupMax(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupAnd(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupAnd(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupAnd(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupAnd(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupOr(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupOr(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupOr(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupOr(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupXor(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupXor(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupXor(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupXor(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupInclusiveAdd(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupInclusiveAdd(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupInclusiveAdd(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupInclusiveAdd(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupInclusiveMul(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupInclusiveMul(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupInclusiveMul(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupInclusiveMul(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupInclusiveMin(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupInclusiveMin(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupInclusiveMin(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupInclusiveMin(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupInclusiveMax(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupInclusiveMax(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupInclusiveMax(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupInclusiveMax(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupInclusiveAnd(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupInclusiveAnd(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupInclusiveAnd(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupInclusiveAnd(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupInclusiveOr(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupInclusiveOr(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupInclusiveOr(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupInclusiveOr(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupInclusiveXor(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupInclusiveXor(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupInclusiveXor(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupInclusiveXor(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupExclusiveAdd(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupExclusiveAdd(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupExclusiveAdd(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupExclusiveAdd(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupExclusiveMul(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupExclusiveMul(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupExclusiveMul(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupExclusiveMul(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupExclusiveMin(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupExclusiveMin(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupExclusiveMin(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupExclusiveMin(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupExclusiveMax(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupExclusiveMax(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupExclusiveMax(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupExclusiveMax(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupExclusiveAnd(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupExclusiveAnd(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupExclusiveAnd(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupExclusiveAnd(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupExclusiveOr(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupExclusiveOr(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupExclusiveOr(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupExclusiveOr(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupExclusiveXor(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupExclusiveXor(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupExclusiveXor(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupExclusiveXor(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupAdd(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupAdd(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupAdd(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupAdd(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupMul(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupMul(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupMul(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupMul(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupMin(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupMin(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupMin(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupMin(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupMax(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupMax(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupMax(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupMax(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupAnd(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupAnd(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupAnd(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupAnd(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupOr(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupOr(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupOr(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupOr(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupXor(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupXor(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupXor(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupXor(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupInclusiveAdd(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupInclusiveAdd(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupInclusiveAdd(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupInclusiveAdd(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupInclusiveMul(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupInclusiveMul(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupInclusiveMul(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupInclusiveMul(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupInclusiveMin(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupInclusiveMin(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupInclusiveMin(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupInclusiveMin(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupInclusiveMax(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupInclusiveMax(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupInclusiveMax(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupInclusiveMax(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupInclusiveAnd(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupInclusiveAnd(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupInclusiveAnd(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupInclusiveAnd(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupInclusiveOr(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupInclusiveOr(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupInclusiveOr(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupInclusiveOr(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupInclusiveXor(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupInclusiveXor(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupInclusiveXor(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupInclusiveXor(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupExclusiveAdd(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupExclusiveAdd(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupExclusiveAdd(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupExclusiveAdd(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupExclusiveMul(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupExclusiveMul(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupExclusiveMul(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupExclusiveMul(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupExclusiveMin(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupExclusiveMin(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupExclusiveMin(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupExclusiveMin(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupExclusiveMax(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupExclusiveMax(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupExclusiveMax(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupExclusiveMax(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupExclusiveAnd(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupExclusiveAnd(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupExclusiveAnd(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupExclusiveAnd(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupExclusiveOr(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupExclusiveOr(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupExclusiveOr(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupExclusiveOr(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupExclusiveXor(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupExclusiveXor(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupExclusiveXor(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupExclusiveXor(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupAdd(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupAdd(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupAdd(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupAdd(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupMul(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupMul(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupMul(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupMul(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupMin(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupMin(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupMin(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupMin(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupMax(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupMax(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupMax(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupMax(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupAnd(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupAnd(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupAnd(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupAnd(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupOr(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupOr(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupOr(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupOr(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupXor(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupXor(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupXor(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupXor(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupInclusiveAdd(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupInclusiveAdd(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupInclusiveAdd(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupInclusiveAdd(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupInclusiveMul(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupInclusiveMul(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupInclusiveMul(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupInclusiveMul(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupInclusiveMin(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupInclusiveMin(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupInclusiveMin(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupInclusiveMin(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupInclusiveMax(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupInclusiveMax(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupInclusiveMax(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupInclusiveMax(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupInclusiveAnd(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupInclusiveAnd(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupInclusiveAnd(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupInclusiveAnd(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupInclusiveOr(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupInclusiveOr(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupInclusiveOr(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupInclusiveOr(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupInclusiveXor(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupInclusiveXor(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupInclusiveXor(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupInclusiveXor(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupExclusiveAdd(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupExclusiveAdd(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupExclusiveAdd(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupExclusiveAdd(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupExclusiveMul(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupExclusiveMul(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupExclusiveMul(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupExclusiveMul(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupExclusiveMin(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupExclusiveMin(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupExclusiveMin(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupExclusiveMin(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupExclusiveMax(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupExclusiveMax(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupExclusiveMax(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupExclusiveMax(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupExclusiveAnd(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupExclusiveAnd(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupExclusiveAnd(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupExclusiveAnd(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupExclusiveOr(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupExclusiveOr(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupExclusiveOr(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupExclusiveOr(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupExclusiveXor(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupExclusiveXor(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupExclusiveXor(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupExclusiveXor(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupAdd(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupAdd(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupAdd(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupAdd(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupMul(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupMul(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupMul(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupMul(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupMin(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupMin(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupMin(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupMin(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupMax(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupMax(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupMax(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupMax(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupAnd(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupAnd(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupAnd(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupAnd(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupOr(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupOr(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupOr(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupOr(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupXor(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupXor(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupXor(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupXor(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupInclusiveAdd(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupInclusiveAdd(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupInclusiveAdd(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupInclusiveAdd(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupInclusiveMul(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupInclusiveMul(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupInclusiveMul(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupInclusiveMul(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupInclusiveMin(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupInclusiveMin(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupInclusiveMin(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupInclusiveMin(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupInclusiveMax(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupInclusiveMax(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupInclusiveMax(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupInclusiveMax(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupInclusiveAnd(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupInclusiveAnd(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupInclusiveAnd(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupInclusiveAnd(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupInclusiveOr(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupInclusiveOr(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupInclusiveOr(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupInclusiveOr(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupInclusiveXor(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupInclusiveXor(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupInclusiveXor(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupInclusiveXor(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupExclusiveAdd(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupExclusiveAdd(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupExclusiveAdd(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupExclusiveAdd(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupExclusiveMul(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupExclusiveMul(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupExclusiveMul(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupExclusiveMul(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupExclusiveMin(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupExclusiveMin(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupExclusiveMin(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupExclusiveMin(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupExclusiveMax(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupExclusiveMax(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupExclusiveMax(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupExclusiveMax(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupExclusiveAnd(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupExclusiveAnd(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupExclusiveAnd(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupExclusiveAnd(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupExclusiveOr(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupExclusiveOr(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupExclusiveOr(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupExclusiveOr(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupExclusiveXor(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupExclusiveXor(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupExclusiveXor(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupExclusiveXor(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupAdd(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupAdd(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupAdd(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupAdd(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupMul(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupMul(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupMul(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupMul(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupMin(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupMin(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupMin(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupMin(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupMax(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupMax(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupMax(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupMax(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupAnd(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupAnd(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupAnd(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupAnd(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupOr(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupOr(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupOr(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupOr(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupXor(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupXor(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupXor(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupXor(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupInclusiveAdd(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupInclusiveAdd(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupInclusiveAdd(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupInclusiveAdd(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupInclusiveMul(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupInclusiveMul(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupInclusiveMul(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupInclusiveMul(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupInclusiveMin(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupInclusiveMin(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupInclusiveMin(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupInclusiveMin(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupInclusiveMax(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupInclusiveMax(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupInclusiveMax(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupInclusiveMax(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupInclusiveAnd(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupInclusiveAnd(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupInclusiveAnd(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupInclusiveAnd(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupInclusiveOr(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupInclusiveOr(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupInclusiveOr(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupInclusiveOr(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupInclusiveXor(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupInclusiveXor(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupInclusiveXor(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupInclusiveXor(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupExclusiveAdd(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupExclusiveAdd(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupExclusiveAdd(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupExclusiveAdd(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupExclusiveMul(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupExclusiveMul(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupExclusiveMul(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupExclusiveMul(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupExclusiveMin(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupExclusiveMin(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupExclusiveMin(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupExclusiveMin(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupExclusiveMax(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupExclusiveMax(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupExclusiveMax(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupExclusiveMax(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupExclusiveAnd(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupExclusiveAnd(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupExclusiveAnd(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupExclusiveAnd(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupExclusiveOr(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupExclusiveOr(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupExclusiveOr(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupExclusiveOr(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupExclusiveXor(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupExclusiveXor(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupExclusiveXor(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupExclusiveXor(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupAdd(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupAdd(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupAdd(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupAdd(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupMul(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupMul(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupMul(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupMul(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupMin(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupMin(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupMin(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupMin(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupMax(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupMax(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupMax(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupMax(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupAnd(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupAnd(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupAnd(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupAnd(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupOr(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupOr(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupOr(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupOr(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupXor(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupXor(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupXor(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupXor(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupInclusiveAdd(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupInclusiveAdd(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupInclusiveAdd(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupInclusiveAdd(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupInclusiveMul(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupInclusiveMul(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupInclusiveMul(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupInclusiveMul(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupInclusiveMin(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupInclusiveMin(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupInclusiveMin(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupInclusiveMin(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupInclusiveMax(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupInclusiveMax(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupInclusiveMax(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupInclusiveMax(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupInclusiveAnd(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupInclusiveAnd(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupInclusiveAnd(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupInclusiveAnd(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupInclusiveOr(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupInclusiveOr(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupInclusiveOr(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupInclusiveOr(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupInclusiveXor(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupInclusiveXor(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupInclusiveXor(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupInclusiveXor(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupExclusiveAdd(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupExclusiveAdd(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupExclusiveAdd(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupExclusiveAdd(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupExclusiveMul(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupExclusiveMul(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupExclusiveMul(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupExclusiveMul(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupExclusiveMin(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupExclusiveMin(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupExclusiveMin(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupExclusiveMin(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupExclusiveMax(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupExclusiveMax(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupExclusiveMax(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupExclusiveMax(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupExclusiveAnd(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupExclusiveAnd(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupExclusiveAnd(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupExclusiveAnd(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupExclusiveOr(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupExclusiveOr(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupExclusiveOr(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupExclusiveOr(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupExclusiveXor(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupExclusiveXor(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupExclusiveXor(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupExclusiveXor(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupAdd(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupAdd(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupAdd(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupAdd(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupMul(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupMul(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupMul(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupMul(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupMin(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupMin(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupMin(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupMin(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupMax(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupMax(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupMax(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupMax(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupInclusiveAdd(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupInclusiveAdd(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupInclusiveAdd(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupInclusiveAdd(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupInclusiveMul(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupInclusiveMul(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupInclusiveMul(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupInclusiveMul(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupInclusiveMin(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupInclusiveMin(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupInclusiveMin(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupInclusiveMin(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupInclusiveMax(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupInclusiveMax(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupInclusiveMax(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupInclusiveMax(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupExclusiveAdd(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupExclusiveAdd(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupExclusiveAdd(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupExclusiveAdd(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupExclusiveMul(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupExclusiveMul(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupExclusiveMul(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupExclusiveMul(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupExclusiveMin(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupExclusiveMin(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupExclusiveMin(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupExclusiveMin(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupExclusiveMax(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupExclusiveMax(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupExclusiveMax(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupExclusiveMax(data[3].f16);
|
||||||
|
}
|
88
Test/spv.subgroupExtendedTypesBallot.comp
Normal file
88
Test/spv.subgroupExtendedTypesBallot.comp
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int8: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int16: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int64: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_float16: enable
|
||||||
|
|
||||||
|
layout (local_size_x = 8) in;
|
||||||
|
|
||||||
|
layout(binding = 0) buffer Buffers
|
||||||
|
{
|
||||||
|
i8vec4 i8;
|
||||||
|
u8vec4 u8;
|
||||||
|
i16vec4 i16;
|
||||||
|
u16vec4 u16;
|
||||||
|
i64vec4 i64;
|
||||||
|
u64vec4 u64;
|
||||||
|
f16vec4 f16;
|
||||||
|
} data[4];
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupBroadcast(data[0].i8.x, 3);
|
||||||
|
data[invocation].i8.xy = subgroupBroadcast(data[1].i8.xy, 3);
|
||||||
|
data[invocation].i8.xyz = subgroupBroadcast(data[2].i8.xyz, 3);
|
||||||
|
data[invocation].i8 = subgroupBroadcast(data[3].i8, 3);
|
||||||
|
data[invocation].i8.x = subgroupBroadcastFirst(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupBroadcastFirst(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupBroadcastFirst(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupBroadcastFirst(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupBroadcast(data[0].u8.x, 3);
|
||||||
|
data[invocation].u8.xy = subgroupBroadcast(data[1].u8.xy, 3);
|
||||||
|
data[invocation].u8.xyz = subgroupBroadcast(data[2].u8.xyz, 3);
|
||||||
|
data[invocation].u8 = subgroupBroadcast(data[3].u8, 3);
|
||||||
|
data[invocation].u8.x = subgroupBroadcastFirst(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupBroadcastFirst(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupBroadcastFirst(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupBroadcastFirst(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupBroadcast(data[0].i16.x, 3);
|
||||||
|
data[invocation].i16.xy = subgroupBroadcast(data[1].i16.xy, 3);
|
||||||
|
data[invocation].i16.xyz = subgroupBroadcast(data[2].i16.xyz, 3);
|
||||||
|
data[invocation].i16 = subgroupBroadcast(data[3].i16, 3);
|
||||||
|
data[invocation].i16.x = subgroupBroadcastFirst(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupBroadcastFirst(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupBroadcastFirst(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupBroadcastFirst(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupBroadcast(data[0].u16.x, 3);
|
||||||
|
data[invocation].u16.xy = subgroupBroadcast(data[1].u16.xy, 3);
|
||||||
|
data[invocation].u16.xyz = subgroupBroadcast(data[2].u16.xyz, 3);
|
||||||
|
data[invocation].u16 = subgroupBroadcast(data[3].u16, 3);
|
||||||
|
data[invocation].u16.x = subgroupBroadcastFirst(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupBroadcastFirst(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupBroadcastFirst(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupBroadcastFirst(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupBroadcast(data[0].i64.x, 3);
|
||||||
|
data[invocation].i64.xy = subgroupBroadcast(data[1].i64.xy, 3);
|
||||||
|
data[invocation].i64.xyz = subgroupBroadcast(data[2].i64.xyz, 3);
|
||||||
|
data[invocation].i64 = subgroupBroadcast(data[3].i64, 3);
|
||||||
|
data[invocation].i64.x = subgroupBroadcastFirst(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupBroadcastFirst(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupBroadcastFirst(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupBroadcastFirst(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupBroadcast(data[0].u64.x, 3);
|
||||||
|
data[invocation].u64.xy = subgroupBroadcast(data[1].u64.xy, 3);
|
||||||
|
data[invocation].u64.xyz = subgroupBroadcast(data[2].u64.xyz, 3);
|
||||||
|
data[invocation].u64 = subgroupBroadcast(data[3].u64, 3);
|
||||||
|
data[invocation].u64.x = subgroupBroadcastFirst(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupBroadcastFirst(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupBroadcastFirst(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupBroadcastFirst(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupBroadcast(data[0].f16.x, 3);
|
||||||
|
data[invocation].f16.xy = subgroupBroadcast(data[1].f16.xy, 3);
|
||||||
|
data[invocation].f16.xyz = subgroupBroadcast(data[2].f16.xyz, 3);
|
||||||
|
data[invocation].f16 = subgroupBroadcast(data[3].f16, 3);
|
||||||
|
data[invocation].f16.x = subgroupBroadcastFirst(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupBroadcastFirst(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupBroadcastFirst(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupBroadcastFirst(data[3].f16);
|
||||||
|
}
|
88
Test/spv.subgroupExtendedTypesBallotNeg.comp
Normal file
88
Test/spv.subgroupExtendedTypesBallotNeg.comp
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable
|
||||||
|
|
||||||
|
layout (local_size_x = 8) in;
|
||||||
|
|
||||||
|
layout(binding = 0) buffer Buffers
|
||||||
|
{
|
||||||
|
i8vec4 i8;
|
||||||
|
u8vec4 u8;
|
||||||
|
i16vec4 i16;
|
||||||
|
u16vec4 u16;
|
||||||
|
i64vec4 i64;
|
||||||
|
u64vec4 u64;
|
||||||
|
f16vec4 f16;
|
||||||
|
} data[4];
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupBroadcast(data[0].i8.x, 3);
|
||||||
|
data[invocation].i8.xy = subgroupBroadcast(data[1].i8.xy, 3);
|
||||||
|
data[invocation].i8.xyz = subgroupBroadcast(data[2].i8.xyz, 3);
|
||||||
|
data[invocation].i8 = subgroupBroadcast(data[3].i8, 3);
|
||||||
|
data[invocation].i8.x = subgroupBroadcastFirst(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupBroadcastFirst(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupBroadcastFirst(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupBroadcastFirst(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupBroadcast(data[0].u8.x, 3);
|
||||||
|
data[invocation].u8.xy = subgroupBroadcast(data[1].u8.xy, 3);
|
||||||
|
data[invocation].u8.xyz = subgroupBroadcast(data[2].u8.xyz, 3);
|
||||||
|
data[invocation].u8 = subgroupBroadcast(data[3].u8, 3);
|
||||||
|
data[invocation].u8.x = subgroupBroadcastFirst(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupBroadcastFirst(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupBroadcastFirst(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupBroadcastFirst(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupBroadcast(data[0].i16.x, 3);
|
||||||
|
data[invocation].i16.xy = subgroupBroadcast(data[1].i16.xy, 3);
|
||||||
|
data[invocation].i16.xyz = subgroupBroadcast(data[2].i16.xyz, 3);
|
||||||
|
data[invocation].i16 = subgroupBroadcast(data[3].i16, 3);
|
||||||
|
data[invocation].i16.x = subgroupBroadcastFirst(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupBroadcastFirst(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupBroadcastFirst(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupBroadcastFirst(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupBroadcast(data[0].u16.x, 3);
|
||||||
|
data[invocation].u16.xy = subgroupBroadcast(data[1].u16.xy, 3);
|
||||||
|
data[invocation].u16.xyz = subgroupBroadcast(data[2].u16.xyz, 3);
|
||||||
|
data[invocation].u16 = subgroupBroadcast(data[3].u16, 3);
|
||||||
|
data[invocation].u16.x = subgroupBroadcastFirst(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupBroadcastFirst(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupBroadcastFirst(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupBroadcastFirst(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupBroadcast(data[0].i64.x, 3);
|
||||||
|
data[invocation].i64.xy = subgroupBroadcast(data[1].i64.xy, 3);
|
||||||
|
data[invocation].i64.xyz = subgroupBroadcast(data[2].i64.xyz, 3);
|
||||||
|
data[invocation].i64 = subgroupBroadcast(data[3].i64, 3);
|
||||||
|
data[invocation].i64.x = subgroupBroadcastFirst(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupBroadcastFirst(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupBroadcastFirst(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupBroadcastFirst(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupBroadcast(data[0].u64.x, 3);
|
||||||
|
data[invocation].u64.xy = subgroupBroadcast(data[1].u64.xy, 3);
|
||||||
|
data[invocation].u64.xyz = subgroupBroadcast(data[2].u64.xyz, 3);
|
||||||
|
data[invocation].u64 = subgroupBroadcast(data[3].u64, 3);
|
||||||
|
data[invocation].u64.x = subgroupBroadcastFirst(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupBroadcastFirst(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupBroadcastFirst(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupBroadcastFirst(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupBroadcast(data[0].f16.x, 3);
|
||||||
|
data[invocation].f16.xy = subgroupBroadcast(data[1].f16.xy, 3);
|
||||||
|
data[invocation].f16.xyz = subgroupBroadcast(data[2].f16.xyz, 3);
|
||||||
|
data[invocation].f16 = subgroupBroadcast(data[3].f16, 3);
|
||||||
|
data[invocation].f16.x = subgroupBroadcastFirst(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupBroadcastFirst(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupBroadcastFirst(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupBroadcastFirst(data[3].f16);
|
||||||
|
}
|
255
Test/spv.subgroupExtendedTypesClustered.comp
Normal file
255
Test/spv.subgroupExtendedTypesClustered.comp
Normal file
@ -0,0 +1,255 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int8: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int16: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int64: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_float16: enable
|
||||||
|
|
||||||
|
layout (local_size_x = 8) in;
|
||||||
|
|
||||||
|
layout(binding = 0) buffer Buffers
|
||||||
|
{
|
||||||
|
i8vec4 i8;
|
||||||
|
u8vec4 u8;
|
||||||
|
i16vec4 i16;
|
||||||
|
u16vec4 u16;
|
||||||
|
i64vec4 i64;
|
||||||
|
u64vec4 u64;
|
||||||
|
f16vec4 f16;
|
||||||
|
} data[4];
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupClusteredAdd(data[0].i8.x, 1);
|
||||||
|
data[invocation].i8.xy = subgroupClusteredAdd(data[1].i8.xy, 1);
|
||||||
|
data[invocation].i8.xyz = subgroupClusteredAdd(data[2].i8.xyz, 1);
|
||||||
|
data[invocation].i8 = subgroupClusteredAdd(data[3].i8, 1);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupClusteredMul(data[0].i8.x, 1);
|
||||||
|
data[invocation].i8.xy = subgroupClusteredMul(data[1].i8.xy, 1);
|
||||||
|
data[invocation].i8.xyz = subgroupClusteredMul(data[2].i8.xyz, 1);
|
||||||
|
data[invocation].i8 = subgroupClusteredMul(data[3].i8, 1);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupClusteredMin(data[0].i8.x, 1);
|
||||||
|
data[invocation].i8.xy = subgroupClusteredMin(data[1].i8.xy, 1);
|
||||||
|
data[invocation].i8.xyz = subgroupClusteredMin(data[2].i8.xyz, 1);
|
||||||
|
data[invocation].i8 = subgroupClusteredMin(data[3].i8, 1);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupClusteredMax(data[0].i8.x, 1);
|
||||||
|
data[invocation].i8.xy = subgroupClusteredMax(data[1].i8.xy, 1);
|
||||||
|
data[invocation].i8.xyz = subgroupClusteredMax(data[2].i8.xyz, 1);
|
||||||
|
data[invocation].i8 = subgroupClusteredMax(data[3].i8, 1);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupClusteredAnd(data[0].i8.x, 1);
|
||||||
|
data[invocation].i8.xy = subgroupClusteredAnd(data[1].i8.xy, 1);
|
||||||
|
data[invocation].i8.xyz = subgroupClusteredAnd(data[2].i8.xyz, 1);
|
||||||
|
data[invocation].i8 = subgroupClusteredAnd(data[3].i8, 1);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupClusteredOr(data[0].i8.x, 1);
|
||||||
|
data[invocation].i8.xy = subgroupClusteredOr(data[1].i8.xy, 1);
|
||||||
|
data[invocation].i8.xyz = subgroupClusteredOr(data[2].i8.xyz, 1);
|
||||||
|
data[invocation].i8 = subgroupClusteredOr(data[3].i8, 1);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupClusteredXor(data[0].i8.x, 1);
|
||||||
|
data[invocation].i8.xy = subgroupClusteredXor(data[1].i8.xy, 1);
|
||||||
|
data[invocation].i8.xyz = subgroupClusteredXor(data[2].i8.xyz, 1);
|
||||||
|
data[invocation].i8 = subgroupClusteredXor(data[3].i8, 1);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupClusteredAdd(data[0].u8.x, 1);
|
||||||
|
data[invocation].u8.xy = subgroupClusteredAdd(data[1].u8.xy, 1);
|
||||||
|
data[invocation].u8.xyz = subgroupClusteredAdd(data[2].u8.xyz, 1);
|
||||||
|
data[invocation].u8 = subgroupClusteredAdd(data[3].u8, 1);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupClusteredMul(data[0].u8.x, 1);
|
||||||
|
data[invocation].u8.xy = subgroupClusteredMul(data[1].u8.xy, 1);
|
||||||
|
data[invocation].u8.xyz = subgroupClusteredMul(data[2].u8.xyz, 1);
|
||||||
|
data[invocation].u8 = subgroupClusteredMul(data[3].u8, 1);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupClusteredMin(data[0].u8.x, 1);
|
||||||
|
data[invocation].u8.xy = subgroupClusteredMin(data[1].u8.xy, 1);
|
||||||
|
data[invocation].u8.xyz = subgroupClusteredMin(data[2].u8.xyz, 1);
|
||||||
|
data[invocation].u8 = subgroupClusteredMin(data[3].u8, 1);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupClusteredMax(data[0].u8.x, 1);
|
||||||
|
data[invocation].u8.xy = subgroupClusteredMax(data[1].u8.xy, 1);
|
||||||
|
data[invocation].u8.xyz = subgroupClusteredMax(data[2].u8.xyz, 1);
|
||||||
|
data[invocation].u8 = subgroupClusteredMax(data[3].u8, 1);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupClusteredAnd(data[0].u8.x, 1);
|
||||||
|
data[invocation].u8.xy = subgroupClusteredAnd(data[1].u8.xy, 1);
|
||||||
|
data[invocation].u8.xyz = subgroupClusteredAnd(data[2].u8.xyz, 1);
|
||||||
|
data[invocation].u8 = subgroupClusteredAnd(data[3].u8, 1);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupClusteredOr(data[0].u8.x, 1);
|
||||||
|
data[invocation].u8.xy = subgroupClusteredOr(data[1].u8.xy, 1);
|
||||||
|
data[invocation].u8.xyz = subgroupClusteredOr(data[2].u8.xyz, 1);
|
||||||
|
data[invocation].u8 = subgroupClusteredOr(data[3].u8, 1);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupClusteredXor(data[0].u8.x, 1);
|
||||||
|
data[invocation].u8.xy = subgroupClusteredXor(data[1].u8.xy, 1);
|
||||||
|
data[invocation].u8.xyz = subgroupClusteredXor(data[2].u8.xyz, 1);
|
||||||
|
data[invocation].u8 = subgroupClusteredXor(data[3].u8, 1);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupClusteredAdd(data[0].i16.x, 1);
|
||||||
|
data[invocation].i16.xy = subgroupClusteredAdd(data[1].i16.xy, 1);
|
||||||
|
data[invocation].i16.xyz = subgroupClusteredAdd(data[2].i16.xyz, 1);
|
||||||
|
data[invocation].i16 = subgroupClusteredAdd(data[3].i16, 1);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupClusteredMul(data[0].i16.x, 1);
|
||||||
|
data[invocation].i16.xy = subgroupClusteredMul(data[1].i16.xy, 1);
|
||||||
|
data[invocation].i16.xyz = subgroupClusteredMul(data[2].i16.xyz, 1);
|
||||||
|
data[invocation].i16 = subgroupClusteredMul(data[3].i16, 1);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupClusteredMin(data[0].i16.x, 1);
|
||||||
|
data[invocation].i16.xy = subgroupClusteredMin(data[1].i16.xy, 1);
|
||||||
|
data[invocation].i16.xyz = subgroupClusteredMin(data[2].i16.xyz, 1);
|
||||||
|
data[invocation].i16 = subgroupClusteredMin(data[3].i16, 1);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupClusteredMax(data[0].i16.x, 1);
|
||||||
|
data[invocation].i16.xy = subgroupClusteredMax(data[1].i16.xy, 1);
|
||||||
|
data[invocation].i16.xyz = subgroupClusteredMax(data[2].i16.xyz, 1);
|
||||||
|
data[invocation].i16 = subgroupClusteredMax(data[3].i16, 1);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupClusteredAnd(data[0].i16.x, 1);
|
||||||
|
data[invocation].i16.xy = subgroupClusteredAnd(data[1].i16.xy, 1);
|
||||||
|
data[invocation].i16.xyz = subgroupClusteredAnd(data[2].i16.xyz, 1);
|
||||||
|
data[invocation].i16 = subgroupClusteredAnd(data[3].i16, 1);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupClusteredOr(data[0].i16.x, 1);
|
||||||
|
data[invocation].i16.xy = subgroupClusteredOr(data[1].i16.xy, 1);
|
||||||
|
data[invocation].i16.xyz = subgroupClusteredOr(data[2].i16.xyz, 1);
|
||||||
|
data[invocation].i16 = subgroupClusteredOr(data[3].i16, 1);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupClusteredXor(data[0].i16.x, 1);
|
||||||
|
data[invocation].i16.xy = subgroupClusteredXor(data[1].i16.xy, 1);
|
||||||
|
data[invocation].i16.xyz = subgroupClusteredXor(data[2].i16.xyz, 1);
|
||||||
|
data[invocation].i16 = subgroupClusteredXor(data[3].i16, 1);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupClusteredAdd(data[0].u16.x, 1);
|
||||||
|
data[invocation].u16.xy = subgroupClusteredAdd(data[1].u16.xy, 1);
|
||||||
|
data[invocation].u16.xyz = subgroupClusteredAdd(data[2].u16.xyz, 1);
|
||||||
|
data[invocation].u16 = subgroupClusteredAdd(data[3].u16, 1);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupClusteredMul(data[0].u16.x, 1);
|
||||||
|
data[invocation].u16.xy = subgroupClusteredMul(data[1].u16.xy, 1);
|
||||||
|
data[invocation].u16.xyz = subgroupClusteredMul(data[2].u16.xyz, 1);
|
||||||
|
data[invocation].u16 = subgroupClusteredMul(data[3].u16, 1);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupClusteredMin(data[0].u16.x, 1);
|
||||||
|
data[invocation].u16.xy = subgroupClusteredMin(data[1].u16.xy, 1);
|
||||||
|
data[invocation].u16.xyz = subgroupClusteredMin(data[2].u16.xyz, 1);
|
||||||
|
data[invocation].u16 = subgroupClusteredMin(data[3].u16, 1);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupClusteredMax(data[0].u16.x, 1);
|
||||||
|
data[invocation].u16.xy = subgroupClusteredMax(data[1].u16.xy, 1);
|
||||||
|
data[invocation].u16.xyz = subgroupClusteredMax(data[2].u16.xyz, 1);
|
||||||
|
data[invocation].u16 = subgroupClusteredMax(data[3].u16, 1);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupClusteredAnd(data[0].u16.x, 1);
|
||||||
|
data[invocation].u16.xy = subgroupClusteredAnd(data[1].u16.xy, 1);
|
||||||
|
data[invocation].u16.xyz = subgroupClusteredAnd(data[2].u16.xyz, 1);
|
||||||
|
data[invocation].u16 = subgroupClusteredAnd(data[3].u16, 1);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupClusteredOr(data[0].u16.x, 1);
|
||||||
|
data[invocation].u16.xy = subgroupClusteredOr(data[1].u16.xy, 1);
|
||||||
|
data[invocation].u16.xyz = subgroupClusteredOr(data[2].u16.xyz, 1);
|
||||||
|
data[invocation].u16 = subgroupClusteredOr(data[3].u16, 1);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupClusteredXor(data[0].u16.x, 1);
|
||||||
|
data[invocation].u16.xy = subgroupClusteredXor(data[1].u16.xy, 1);
|
||||||
|
data[invocation].u16.xyz = subgroupClusteredXor(data[2].u16.xyz, 1);
|
||||||
|
data[invocation].u16 = subgroupClusteredXor(data[3].u16, 1);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupClusteredAdd(data[0].i64.x, 1);
|
||||||
|
data[invocation].i64.xy = subgroupClusteredAdd(data[1].i64.xy, 1);
|
||||||
|
data[invocation].i64.xyz = subgroupClusteredAdd(data[2].i64.xyz, 1);
|
||||||
|
data[invocation].i64 = subgroupClusteredAdd(data[3].i64, 1);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupClusteredMul(data[0].i64.x, 1);
|
||||||
|
data[invocation].i64.xy = subgroupClusteredMul(data[1].i64.xy, 1);
|
||||||
|
data[invocation].i64.xyz = subgroupClusteredMul(data[2].i64.xyz, 1);
|
||||||
|
data[invocation].i64 = subgroupClusteredMul(data[3].i64, 1);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupClusteredMin(data[0].i64.x, 1);
|
||||||
|
data[invocation].i64.xy = subgroupClusteredMin(data[1].i64.xy, 1);
|
||||||
|
data[invocation].i64.xyz = subgroupClusteredMin(data[2].i64.xyz, 1);
|
||||||
|
data[invocation].i64 = subgroupClusteredMin(data[3].i64, 1);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupClusteredMax(data[0].i64.x, 1);
|
||||||
|
data[invocation].i64.xy = subgroupClusteredMax(data[1].i64.xy, 1);
|
||||||
|
data[invocation].i64.xyz = subgroupClusteredMax(data[2].i64.xyz, 1);
|
||||||
|
data[invocation].i64 = subgroupClusteredMax(data[3].i64, 1);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupClusteredAnd(data[0].i64.x, 1);
|
||||||
|
data[invocation].i64.xy = subgroupClusteredAnd(data[1].i64.xy, 1);
|
||||||
|
data[invocation].i64.xyz = subgroupClusteredAnd(data[2].i64.xyz, 1);
|
||||||
|
data[invocation].i64 = subgroupClusteredAnd(data[3].i64, 1);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupClusteredOr(data[0].i64.x, 1);
|
||||||
|
data[invocation].i64.xy = subgroupClusteredOr(data[1].i64.xy, 1);
|
||||||
|
data[invocation].i64.xyz = subgroupClusteredOr(data[2].i64.xyz, 1);
|
||||||
|
data[invocation].i64 = subgroupClusteredOr(data[3].i64, 1);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupClusteredXor(data[0].i64.x, 1);
|
||||||
|
data[invocation].i64.xy = subgroupClusteredXor(data[1].i64.xy, 1);
|
||||||
|
data[invocation].i64.xyz = subgroupClusteredXor(data[2].i64.xyz, 1);
|
||||||
|
data[invocation].i64 = subgroupClusteredXor(data[3].i64, 1);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupClusteredAdd(data[0].u64.x, 1);
|
||||||
|
data[invocation].u64.xy = subgroupClusteredAdd(data[1].u64.xy, 1);
|
||||||
|
data[invocation].u64.xyz = subgroupClusteredAdd(data[2].u64.xyz, 1);
|
||||||
|
data[invocation].u64 = subgroupClusteredAdd(data[3].u64, 1);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupClusteredMul(data[0].u64.x, 1);
|
||||||
|
data[invocation].u64.xy = subgroupClusteredMul(data[1].u64.xy, 1);
|
||||||
|
data[invocation].u64.xyz = subgroupClusteredMul(data[2].u64.xyz, 1);
|
||||||
|
data[invocation].u64 = subgroupClusteredMul(data[3].u64, 1);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupClusteredMin(data[0].u64.x, 1);
|
||||||
|
data[invocation].u64.xy = subgroupClusteredMin(data[1].u64.xy, 1);
|
||||||
|
data[invocation].u64.xyz = subgroupClusteredMin(data[2].u64.xyz, 1);
|
||||||
|
data[invocation].u64 = subgroupClusteredMin(data[3].u64, 1);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupClusteredMax(data[0].u64.x, 1);
|
||||||
|
data[invocation].u64.xy = subgroupClusteredMax(data[1].u64.xy, 1);
|
||||||
|
data[invocation].u64.xyz = subgroupClusteredMax(data[2].u64.xyz, 1);
|
||||||
|
data[invocation].u64 = subgroupClusteredMax(data[3].u64, 1);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupClusteredAnd(data[0].u64.x, 1);
|
||||||
|
data[invocation].u64.xy = subgroupClusteredAnd(data[1].u64.xy, 1);
|
||||||
|
data[invocation].u64.xyz = subgroupClusteredAnd(data[2].u64.xyz, 1);
|
||||||
|
data[invocation].u64 = subgroupClusteredAnd(data[3].u64, 1);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupClusteredOr(data[0].u64.x, 1);
|
||||||
|
data[invocation].u64.xy = subgroupClusteredOr(data[1].u64.xy, 1);
|
||||||
|
data[invocation].u64.xyz = subgroupClusteredOr(data[2].u64.xyz, 1);
|
||||||
|
data[invocation].u64 = subgroupClusteredOr(data[3].u64, 1);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupClusteredXor(data[0].u64.x, 1);
|
||||||
|
data[invocation].u64.xy = subgroupClusteredXor(data[1].u64.xy, 1);
|
||||||
|
data[invocation].u64.xyz = subgroupClusteredXor(data[2].u64.xyz, 1);
|
||||||
|
data[invocation].u64 = subgroupClusteredXor(data[3].u64, 1);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupClusteredAdd(data[0].f16.x, 1);
|
||||||
|
data[invocation].f16.xy = subgroupClusteredAdd(data[1].f16.xy, 1);
|
||||||
|
data[invocation].f16.xyz = subgroupClusteredAdd(data[2].f16.xyz, 1);
|
||||||
|
data[invocation].f16 = subgroupClusteredAdd(data[3].f16, 1);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupClusteredMul(data[0].f16.x, 1);
|
||||||
|
data[invocation].f16.xy = subgroupClusteredMul(data[1].f16.xy, 1);
|
||||||
|
data[invocation].f16.xyz = subgroupClusteredMul(data[2].f16.xyz, 1);
|
||||||
|
data[invocation].f16 = subgroupClusteredMul(data[3].f16, 1);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupClusteredMin(data[0].f16.x, 1);
|
||||||
|
data[invocation].f16.xy = subgroupClusteredMin(data[1].f16.xy, 1);
|
||||||
|
data[invocation].f16.xyz = subgroupClusteredMin(data[2].f16.xyz, 1);
|
||||||
|
data[invocation].f16 = subgroupClusteredMin(data[3].f16, 1);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupClusteredMax(data[0].f16.x, 1);
|
||||||
|
data[invocation].f16.xy = subgroupClusteredMax(data[1].f16.xy, 1);
|
||||||
|
data[invocation].f16.xyz = subgroupClusteredMax(data[2].f16.xyz, 1);
|
||||||
|
data[invocation].f16 = subgroupClusteredMax(data[3].f16, 1);
|
||||||
|
}
|
255
Test/spv.subgroupExtendedTypesClusteredNeg.comp
Normal file
255
Test/spv.subgroupExtendedTypesClusteredNeg.comp
Normal file
@ -0,0 +1,255 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable
|
||||||
|
|
||||||
|
layout (local_size_x = 8) in;
|
||||||
|
|
||||||
|
layout(binding = 0) buffer Buffers
|
||||||
|
{
|
||||||
|
i8vec4 i8;
|
||||||
|
u8vec4 u8;
|
||||||
|
i16vec4 i16;
|
||||||
|
u16vec4 u16;
|
||||||
|
i64vec4 i64;
|
||||||
|
u64vec4 u64;
|
||||||
|
f16vec4 f16;
|
||||||
|
} data[4];
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupClusteredAdd(data[0].i8.x, 1);
|
||||||
|
data[invocation].i8.xy = subgroupClusteredAdd(data[1].i8.xy, 1);
|
||||||
|
data[invocation].i8.xyz = subgroupClusteredAdd(data[2].i8.xyz, 1);
|
||||||
|
data[invocation].i8 = subgroupClusteredAdd(data[3].i8, 1);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupClusteredMul(data[0].i8.x, 1);
|
||||||
|
data[invocation].i8.xy = subgroupClusteredMul(data[1].i8.xy, 1);
|
||||||
|
data[invocation].i8.xyz = subgroupClusteredMul(data[2].i8.xyz, 1);
|
||||||
|
data[invocation].i8 = subgroupClusteredMul(data[3].i8, 1);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupClusteredMin(data[0].i8.x, 1);
|
||||||
|
data[invocation].i8.xy = subgroupClusteredMin(data[1].i8.xy, 1);
|
||||||
|
data[invocation].i8.xyz = subgroupClusteredMin(data[2].i8.xyz, 1);
|
||||||
|
data[invocation].i8 = subgroupClusteredMin(data[3].i8, 1);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupClusteredMax(data[0].i8.x, 1);
|
||||||
|
data[invocation].i8.xy = subgroupClusteredMax(data[1].i8.xy, 1);
|
||||||
|
data[invocation].i8.xyz = subgroupClusteredMax(data[2].i8.xyz, 1);
|
||||||
|
data[invocation].i8 = subgroupClusteredMax(data[3].i8, 1);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupClusteredAnd(data[0].i8.x, 1);
|
||||||
|
data[invocation].i8.xy = subgroupClusteredAnd(data[1].i8.xy, 1);
|
||||||
|
data[invocation].i8.xyz = subgroupClusteredAnd(data[2].i8.xyz, 1);
|
||||||
|
data[invocation].i8 = subgroupClusteredAnd(data[3].i8, 1);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupClusteredOr(data[0].i8.x, 1);
|
||||||
|
data[invocation].i8.xy = subgroupClusteredOr(data[1].i8.xy, 1);
|
||||||
|
data[invocation].i8.xyz = subgroupClusteredOr(data[2].i8.xyz, 1);
|
||||||
|
data[invocation].i8 = subgroupClusteredOr(data[3].i8, 1);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupClusteredXor(data[0].i8.x, 1);
|
||||||
|
data[invocation].i8.xy = subgroupClusteredXor(data[1].i8.xy, 1);
|
||||||
|
data[invocation].i8.xyz = subgroupClusteredXor(data[2].i8.xyz, 1);
|
||||||
|
data[invocation].i8 = subgroupClusteredXor(data[3].i8, 1);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupClusteredAdd(data[0].u8.x, 1);
|
||||||
|
data[invocation].u8.xy = subgroupClusteredAdd(data[1].u8.xy, 1);
|
||||||
|
data[invocation].u8.xyz = subgroupClusteredAdd(data[2].u8.xyz, 1);
|
||||||
|
data[invocation].u8 = subgroupClusteredAdd(data[3].u8, 1);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupClusteredMul(data[0].u8.x, 1);
|
||||||
|
data[invocation].u8.xy = subgroupClusteredMul(data[1].u8.xy, 1);
|
||||||
|
data[invocation].u8.xyz = subgroupClusteredMul(data[2].u8.xyz, 1);
|
||||||
|
data[invocation].u8 = subgroupClusteredMul(data[3].u8, 1);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupClusteredMin(data[0].u8.x, 1);
|
||||||
|
data[invocation].u8.xy = subgroupClusteredMin(data[1].u8.xy, 1);
|
||||||
|
data[invocation].u8.xyz = subgroupClusteredMin(data[2].u8.xyz, 1);
|
||||||
|
data[invocation].u8 = subgroupClusteredMin(data[3].u8, 1);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupClusteredMax(data[0].u8.x, 1);
|
||||||
|
data[invocation].u8.xy = subgroupClusteredMax(data[1].u8.xy, 1);
|
||||||
|
data[invocation].u8.xyz = subgroupClusteredMax(data[2].u8.xyz, 1);
|
||||||
|
data[invocation].u8 = subgroupClusteredMax(data[3].u8, 1);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupClusteredAnd(data[0].u8.x, 1);
|
||||||
|
data[invocation].u8.xy = subgroupClusteredAnd(data[1].u8.xy, 1);
|
||||||
|
data[invocation].u8.xyz = subgroupClusteredAnd(data[2].u8.xyz, 1);
|
||||||
|
data[invocation].u8 = subgroupClusteredAnd(data[3].u8, 1);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupClusteredOr(data[0].u8.x, 1);
|
||||||
|
data[invocation].u8.xy = subgroupClusteredOr(data[1].u8.xy, 1);
|
||||||
|
data[invocation].u8.xyz = subgroupClusteredOr(data[2].u8.xyz, 1);
|
||||||
|
data[invocation].u8 = subgroupClusteredOr(data[3].u8, 1);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupClusteredXor(data[0].u8.x, 1);
|
||||||
|
data[invocation].u8.xy = subgroupClusteredXor(data[1].u8.xy, 1);
|
||||||
|
data[invocation].u8.xyz = subgroupClusteredXor(data[2].u8.xyz, 1);
|
||||||
|
data[invocation].u8 = subgroupClusteredXor(data[3].u8, 1);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupClusteredAdd(data[0].i16.x, 1);
|
||||||
|
data[invocation].i16.xy = subgroupClusteredAdd(data[1].i16.xy, 1);
|
||||||
|
data[invocation].i16.xyz = subgroupClusteredAdd(data[2].i16.xyz, 1);
|
||||||
|
data[invocation].i16 = subgroupClusteredAdd(data[3].i16, 1);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupClusteredMul(data[0].i16.x, 1);
|
||||||
|
data[invocation].i16.xy = subgroupClusteredMul(data[1].i16.xy, 1);
|
||||||
|
data[invocation].i16.xyz = subgroupClusteredMul(data[2].i16.xyz, 1);
|
||||||
|
data[invocation].i16 = subgroupClusteredMul(data[3].i16, 1);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupClusteredMin(data[0].i16.x, 1);
|
||||||
|
data[invocation].i16.xy = subgroupClusteredMin(data[1].i16.xy, 1);
|
||||||
|
data[invocation].i16.xyz = subgroupClusteredMin(data[2].i16.xyz, 1);
|
||||||
|
data[invocation].i16 = subgroupClusteredMin(data[3].i16, 1);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupClusteredMax(data[0].i16.x, 1);
|
||||||
|
data[invocation].i16.xy = subgroupClusteredMax(data[1].i16.xy, 1);
|
||||||
|
data[invocation].i16.xyz = subgroupClusteredMax(data[2].i16.xyz, 1);
|
||||||
|
data[invocation].i16 = subgroupClusteredMax(data[3].i16, 1);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupClusteredAnd(data[0].i16.x, 1);
|
||||||
|
data[invocation].i16.xy = subgroupClusteredAnd(data[1].i16.xy, 1);
|
||||||
|
data[invocation].i16.xyz = subgroupClusteredAnd(data[2].i16.xyz, 1);
|
||||||
|
data[invocation].i16 = subgroupClusteredAnd(data[3].i16, 1);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupClusteredOr(data[0].i16.x, 1);
|
||||||
|
data[invocation].i16.xy = subgroupClusteredOr(data[1].i16.xy, 1);
|
||||||
|
data[invocation].i16.xyz = subgroupClusteredOr(data[2].i16.xyz, 1);
|
||||||
|
data[invocation].i16 = subgroupClusteredOr(data[3].i16, 1);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupClusteredXor(data[0].i16.x, 1);
|
||||||
|
data[invocation].i16.xy = subgroupClusteredXor(data[1].i16.xy, 1);
|
||||||
|
data[invocation].i16.xyz = subgroupClusteredXor(data[2].i16.xyz, 1);
|
||||||
|
data[invocation].i16 = subgroupClusteredXor(data[3].i16, 1);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupClusteredAdd(data[0].u16.x, 1);
|
||||||
|
data[invocation].u16.xy = subgroupClusteredAdd(data[1].u16.xy, 1);
|
||||||
|
data[invocation].u16.xyz = subgroupClusteredAdd(data[2].u16.xyz, 1);
|
||||||
|
data[invocation].u16 = subgroupClusteredAdd(data[3].u16, 1);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupClusteredMul(data[0].u16.x, 1);
|
||||||
|
data[invocation].u16.xy = subgroupClusteredMul(data[1].u16.xy, 1);
|
||||||
|
data[invocation].u16.xyz = subgroupClusteredMul(data[2].u16.xyz, 1);
|
||||||
|
data[invocation].u16 = subgroupClusteredMul(data[3].u16, 1);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupClusteredMin(data[0].u16.x, 1);
|
||||||
|
data[invocation].u16.xy = subgroupClusteredMin(data[1].u16.xy, 1);
|
||||||
|
data[invocation].u16.xyz = subgroupClusteredMin(data[2].u16.xyz, 1);
|
||||||
|
data[invocation].u16 = subgroupClusteredMin(data[3].u16, 1);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupClusteredMax(data[0].u16.x, 1);
|
||||||
|
data[invocation].u16.xy = subgroupClusteredMax(data[1].u16.xy, 1);
|
||||||
|
data[invocation].u16.xyz = subgroupClusteredMax(data[2].u16.xyz, 1);
|
||||||
|
data[invocation].u16 = subgroupClusteredMax(data[3].u16, 1);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupClusteredAnd(data[0].u16.x, 1);
|
||||||
|
data[invocation].u16.xy = subgroupClusteredAnd(data[1].u16.xy, 1);
|
||||||
|
data[invocation].u16.xyz = subgroupClusteredAnd(data[2].u16.xyz, 1);
|
||||||
|
data[invocation].u16 = subgroupClusteredAnd(data[3].u16, 1);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupClusteredOr(data[0].u16.x, 1);
|
||||||
|
data[invocation].u16.xy = subgroupClusteredOr(data[1].u16.xy, 1);
|
||||||
|
data[invocation].u16.xyz = subgroupClusteredOr(data[2].u16.xyz, 1);
|
||||||
|
data[invocation].u16 = subgroupClusteredOr(data[3].u16, 1);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupClusteredXor(data[0].u16.x, 1);
|
||||||
|
data[invocation].u16.xy = subgroupClusteredXor(data[1].u16.xy, 1);
|
||||||
|
data[invocation].u16.xyz = subgroupClusteredXor(data[2].u16.xyz, 1);
|
||||||
|
data[invocation].u16 = subgroupClusteredXor(data[3].u16, 1);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupClusteredAdd(data[0].i64.x, 1);
|
||||||
|
data[invocation].i64.xy = subgroupClusteredAdd(data[1].i64.xy, 1);
|
||||||
|
data[invocation].i64.xyz = subgroupClusteredAdd(data[2].i64.xyz, 1);
|
||||||
|
data[invocation].i64 = subgroupClusteredAdd(data[3].i64, 1);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupClusteredMul(data[0].i64.x, 1);
|
||||||
|
data[invocation].i64.xy = subgroupClusteredMul(data[1].i64.xy, 1);
|
||||||
|
data[invocation].i64.xyz = subgroupClusteredMul(data[2].i64.xyz, 1);
|
||||||
|
data[invocation].i64 = subgroupClusteredMul(data[3].i64, 1);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupClusteredMin(data[0].i64.x, 1);
|
||||||
|
data[invocation].i64.xy = subgroupClusteredMin(data[1].i64.xy, 1);
|
||||||
|
data[invocation].i64.xyz = subgroupClusteredMin(data[2].i64.xyz, 1);
|
||||||
|
data[invocation].i64 = subgroupClusteredMin(data[3].i64, 1);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupClusteredMax(data[0].i64.x, 1);
|
||||||
|
data[invocation].i64.xy = subgroupClusteredMax(data[1].i64.xy, 1);
|
||||||
|
data[invocation].i64.xyz = subgroupClusteredMax(data[2].i64.xyz, 1);
|
||||||
|
data[invocation].i64 = subgroupClusteredMax(data[3].i64, 1);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupClusteredAnd(data[0].i64.x, 1);
|
||||||
|
data[invocation].i64.xy = subgroupClusteredAnd(data[1].i64.xy, 1);
|
||||||
|
data[invocation].i64.xyz = subgroupClusteredAnd(data[2].i64.xyz, 1);
|
||||||
|
data[invocation].i64 = subgroupClusteredAnd(data[3].i64, 1);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupClusteredOr(data[0].i64.x, 1);
|
||||||
|
data[invocation].i64.xy = subgroupClusteredOr(data[1].i64.xy, 1);
|
||||||
|
data[invocation].i64.xyz = subgroupClusteredOr(data[2].i64.xyz, 1);
|
||||||
|
data[invocation].i64 = subgroupClusteredOr(data[3].i64, 1);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupClusteredXor(data[0].i64.x, 1);
|
||||||
|
data[invocation].i64.xy = subgroupClusteredXor(data[1].i64.xy, 1);
|
||||||
|
data[invocation].i64.xyz = subgroupClusteredXor(data[2].i64.xyz, 1);
|
||||||
|
data[invocation].i64 = subgroupClusteredXor(data[3].i64, 1);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupClusteredAdd(data[0].u64.x, 1);
|
||||||
|
data[invocation].u64.xy = subgroupClusteredAdd(data[1].u64.xy, 1);
|
||||||
|
data[invocation].u64.xyz = subgroupClusteredAdd(data[2].u64.xyz, 1);
|
||||||
|
data[invocation].u64 = subgroupClusteredAdd(data[3].u64, 1);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupClusteredMul(data[0].u64.x, 1);
|
||||||
|
data[invocation].u64.xy = subgroupClusteredMul(data[1].u64.xy, 1);
|
||||||
|
data[invocation].u64.xyz = subgroupClusteredMul(data[2].u64.xyz, 1);
|
||||||
|
data[invocation].u64 = subgroupClusteredMul(data[3].u64, 1);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupClusteredMin(data[0].u64.x, 1);
|
||||||
|
data[invocation].u64.xy = subgroupClusteredMin(data[1].u64.xy, 1);
|
||||||
|
data[invocation].u64.xyz = subgroupClusteredMin(data[2].u64.xyz, 1);
|
||||||
|
data[invocation].u64 = subgroupClusteredMin(data[3].u64, 1);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupClusteredMax(data[0].u64.x, 1);
|
||||||
|
data[invocation].u64.xy = subgroupClusteredMax(data[1].u64.xy, 1);
|
||||||
|
data[invocation].u64.xyz = subgroupClusteredMax(data[2].u64.xyz, 1);
|
||||||
|
data[invocation].u64 = subgroupClusteredMax(data[3].u64, 1);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupClusteredAnd(data[0].u64.x, 1);
|
||||||
|
data[invocation].u64.xy = subgroupClusteredAnd(data[1].u64.xy, 1);
|
||||||
|
data[invocation].u64.xyz = subgroupClusteredAnd(data[2].u64.xyz, 1);
|
||||||
|
data[invocation].u64 = subgroupClusteredAnd(data[3].u64, 1);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupClusteredOr(data[0].u64.x, 1);
|
||||||
|
data[invocation].u64.xy = subgroupClusteredOr(data[1].u64.xy, 1);
|
||||||
|
data[invocation].u64.xyz = subgroupClusteredOr(data[2].u64.xyz, 1);
|
||||||
|
data[invocation].u64 = subgroupClusteredOr(data[3].u64, 1);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupClusteredXor(data[0].u64.x, 1);
|
||||||
|
data[invocation].u64.xy = subgroupClusteredXor(data[1].u64.xy, 1);
|
||||||
|
data[invocation].u64.xyz = subgroupClusteredXor(data[2].u64.xyz, 1);
|
||||||
|
data[invocation].u64 = subgroupClusteredXor(data[3].u64, 1);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupClusteredAdd(data[0].f16.x, 1);
|
||||||
|
data[invocation].f16.xy = subgroupClusteredAdd(data[1].f16.xy, 1);
|
||||||
|
data[invocation].f16.xyz = subgroupClusteredAdd(data[2].f16.xyz, 1);
|
||||||
|
data[invocation].f16 = subgroupClusteredAdd(data[3].f16, 1);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupClusteredMul(data[0].f16.x, 1);
|
||||||
|
data[invocation].f16.xy = subgroupClusteredMul(data[1].f16.xy, 1);
|
||||||
|
data[invocation].f16.xyz = subgroupClusteredMul(data[2].f16.xyz, 1);
|
||||||
|
data[invocation].f16 = subgroupClusteredMul(data[3].f16, 1);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupClusteredMin(data[0].f16.x, 1);
|
||||||
|
data[invocation].f16.xy = subgroupClusteredMin(data[1].f16.xy, 1);
|
||||||
|
data[invocation].f16.xyz = subgroupClusteredMin(data[2].f16.xyz, 1);
|
||||||
|
data[invocation].f16 = subgroupClusteredMin(data[3].f16, 1);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupClusteredMax(data[0].f16.x, 1);
|
||||||
|
data[invocation].f16.xy = subgroupClusteredMax(data[1].f16.xy, 1);
|
||||||
|
data[invocation].f16.xyz = subgroupClusteredMax(data[2].f16.xyz, 1);
|
||||||
|
data[invocation].f16 = subgroupClusteredMax(data[3].f16, 1);
|
||||||
|
}
|
291
Test/spv.subgroupExtendedTypesPartitioned.comp
Normal file
291
Test/spv.subgroupExtendedTypesPartitioned.comp
Normal file
@ -0,0 +1,291 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
#extension GL_NV_shader_subgroup_partitioned: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int8: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int16: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int64: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_float16: enable
|
||||||
|
|
||||||
|
layout (local_size_x = 8) in;
|
||||||
|
|
||||||
|
layout(binding = 0) buffer Buffers
|
||||||
|
{
|
||||||
|
i8vec4 i8;
|
||||||
|
u8vec4 u8;
|
||||||
|
i16vec4 i16;
|
||||||
|
u16vec4 u16;
|
||||||
|
i64vec4 i64;
|
||||||
|
u64vec4 u64;
|
||||||
|
f16vec4 f16;
|
||||||
|
} data[4];
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||||
|
|
||||||
|
uvec4 ballot;
|
||||||
|
ballot = subgroupPartitionNV(data[0].i8.x);
|
||||||
|
ballot = subgroupPartitionNV(data[1].i8.xy);
|
||||||
|
ballot = subgroupPartitionNV(data[2].i8.xyz);
|
||||||
|
ballot = subgroupPartitionNV(data[3].i8);
|
||||||
|
|
||||||
|
ballot = subgroupPartitionNV(data[0].u8.x);
|
||||||
|
ballot = subgroupPartitionNV(data[1].u8.xy);
|
||||||
|
ballot = subgroupPartitionNV(data[2].u8.xyz);
|
||||||
|
ballot = subgroupPartitionNV(data[3].u8);
|
||||||
|
|
||||||
|
ballot = subgroupPartitionNV(data[0].i16.x);
|
||||||
|
ballot = subgroupPartitionNV(data[1].i16.xy);
|
||||||
|
ballot = subgroupPartitionNV(data[2].i16.xyz);
|
||||||
|
ballot = subgroupPartitionNV(data[3].i16);
|
||||||
|
|
||||||
|
ballot = subgroupPartitionNV(data[0].u16.x);
|
||||||
|
ballot = subgroupPartitionNV(data[1].u16.xy);
|
||||||
|
ballot = subgroupPartitionNV(data[2].u16.xyz);
|
||||||
|
ballot = subgroupPartitionNV(data[3].u16);
|
||||||
|
|
||||||
|
ballot = subgroupPartitionNV(data[0].i64.x);
|
||||||
|
ballot = subgroupPartitionNV(data[1].i64.xy);
|
||||||
|
ballot = subgroupPartitionNV(data[2].i64.xyz);
|
||||||
|
ballot = subgroupPartitionNV(data[3].i64);
|
||||||
|
|
||||||
|
ballot = subgroupPartitionNV(data[0].u64.x);
|
||||||
|
ballot = subgroupPartitionNV(data[1].u64.xy);
|
||||||
|
ballot = subgroupPartitionNV(data[2].u64.xyz);
|
||||||
|
ballot = subgroupPartitionNV(data[3].u64);
|
||||||
|
|
||||||
|
ballot = subgroupPartitionNV(data[0].f16.x);
|
||||||
|
ballot = subgroupPartitionNV(data[1].f16.xy);
|
||||||
|
ballot = subgroupPartitionNV(data[2].f16.xyz);
|
||||||
|
ballot = subgroupPartitionNV(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupPartitionedAddNV(data[0].i8.x, ballot);
|
||||||
|
data[invocation].i8.xy = subgroupPartitionedAddNV(data[1].i8.xy, ballot);
|
||||||
|
data[invocation].i8.xyz = subgroupPartitionedAddNV(data[2].i8.xyz, ballot);
|
||||||
|
data[invocation].i8 = subgroupPartitionedAddNV(data[3].i8, ballot);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupPartitionedMulNV(data[0].i8.x, ballot);
|
||||||
|
data[invocation].i8.xy = subgroupPartitionedMulNV(data[1].i8.xy, ballot);
|
||||||
|
data[invocation].i8.xyz = subgroupPartitionedMulNV(data[2].i8.xyz, ballot);
|
||||||
|
data[invocation].i8 = subgroupPartitionedMulNV(data[3].i8, ballot);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupPartitionedMinNV(data[0].i8.x, ballot);
|
||||||
|
data[invocation].i8.xy = subgroupPartitionedMinNV(data[1].i8.xy, ballot);
|
||||||
|
data[invocation].i8.xyz = subgroupPartitionedMinNV(data[2].i8.xyz, ballot);
|
||||||
|
data[invocation].i8 = subgroupPartitionedMinNV(data[3].i8, ballot);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupPartitionedMaxNV(data[0].i8.x, ballot);
|
||||||
|
data[invocation].i8.xy = subgroupPartitionedMaxNV(data[1].i8.xy, ballot);
|
||||||
|
data[invocation].i8.xyz = subgroupPartitionedMaxNV(data[2].i8.xyz, ballot);
|
||||||
|
data[invocation].i8 = subgroupPartitionedMaxNV(data[3].i8, ballot);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupPartitionedAndNV(data[0].i8.x, ballot);
|
||||||
|
data[invocation].i8.xy = subgroupPartitionedAndNV(data[1].i8.xy, ballot);
|
||||||
|
data[invocation].i8.xyz = subgroupPartitionedAndNV(data[2].i8.xyz, ballot);
|
||||||
|
data[invocation].i8 = subgroupPartitionedAndNV(data[3].i8, ballot);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupPartitionedOrNV(data[0].i8.x, ballot);
|
||||||
|
data[invocation].i8.xy = subgroupPartitionedOrNV(data[1].i8.xy, ballot);
|
||||||
|
data[invocation].i8.xyz = subgroupPartitionedOrNV(data[2].i8.xyz, ballot);
|
||||||
|
data[invocation].i8 = subgroupPartitionedOrNV(data[3].i8, ballot);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupPartitionedXorNV(data[0].i8.x, ballot);
|
||||||
|
data[invocation].i8.xy = subgroupPartitionedXorNV(data[1].i8.xy, ballot);
|
||||||
|
data[invocation].i8.xyz = subgroupPartitionedXorNV(data[2].i8.xyz, ballot);
|
||||||
|
data[invocation].i8 = subgroupPartitionedXorNV(data[3].i8, ballot);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupPartitionedAddNV(data[0].u8.x, ballot);
|
||||||
|
data[invocation].u8.xy = subgroupPartitionedAddNV(data[1].u8.xy, ballot);
|
||||||
|
data[invocation].u8.xyz = subgroupPartitionedAddNV(data[2].u8.xyz, ballot);
|
||||||
|
data[invocation].u8 = subgroupPartitionedAddNV(data[3].u8, ballot);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupPartitionedMulNV(data[0].u8.x, ballot);
|
||||||
|
data[invocation].u8.xy = subgroupPartitionedMulNV(data[1].u8.xy, ballot);
|
||||||
|
data[invocation].u8.xyz = subgroupPartitionedMulNV(data[2].u8.xyz, ballot);
|
||||||
|
data[invocation].u8 = subgroupPartitionedMulNV(data[3].u8, ballot);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupPartitionedMinNV(data[0].u8.x, ballot);
|
||||||
|
data[invocation].u8.xy = subgroupPartitionedMinNV(data[1].u8.xy, ballot);
|
||||||
|
data[invocation].u8.xyz = subgroupPartitionedMinNV(data[2].u8.xyz, ballot);
|
||||||
|
data[invocation].u8 = subgroupPartitionedMinNV(data[3].u8, ballot);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupPartitionedMaxNV(data[0].u8.x, ballot);
|
||||||
|
data[invocation].u8.xy = subgroupPartitionedMaxNV(data[1].u8.xy, ballot);
|
||||||
|
data[invocation].u8.xyz = subgroupPartitionedMaxNV(data[2].u8.xyz, ballot);
|
||||||
|
data[invocation].u8 = subgroupPartitionedMaxNV(data[3].u8, ballot);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupPartitionedAndNV(data[0].u8.x, ballot);
|
||||||
|
data[invocation].u8.xy = subgroupPartitionedAndNV(data[1].u8.xy, ballot);
|
||||||
|
data[invocation].u8.xyz = subgroupPartitionedAndNV(data[2].u8.xyz, ballot);
|
||||||
|
data[invocation].u8 = subgroupPartitionedAndNV(data[3].u8, ballot);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupPartitionedOrNV(data[0].u8.x, ballot);
|
||||||
|
data[invocation].u8.xy = subgroupPartitionedOrNV(data[1].u8.xy, ballot);
|
||||||
|
data[invocation].u8.xyz = subgroupPartitionedOrNV(data[2].u8.xyz, ballot);
|
||||||
|
data[invocation].u8 = subgroupPartitionedOrNV(data[3].u8, ballot);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupPartitionedXorNV(data[0].u8.x, ballot);
|
||||||
|
data[invocation].u8.xy = subgroupPartitionedXorNV(data[1].u8.xy, ballot);
|
||||||
|
data[invocation].u8.xyz = subgroupPartitionedXorNV(data[2].u8.xyz, ballot);
|
||||||
|
data[invocation].u8 = subgroupPartitionedXorNV(data[3].u8, ballot);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupPartitionedAddNV(data[0].i16.x, ballot);
|
||||||
|
data[invocation].i16.xy = subgroupPartitionedAddNV(data[1].i16.xy, ballot);
|
||||||
|
data[invocation].i16.xyz = subgroupPartitionedAddNV(data[2].i16.xyz, ballot);
|
||||||
|
data[invocation].i16 = subgroupPartitionedAddNV(data[3].i16, ballot);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupPartitionedMulNV(data[0].i16.x, ballot);
|
||||||
|
data[invocation].i16.xy = subgroupPartitionedMulNV(data[1].i16.xy, ballot);
|
||||||
|
data[invocation].i16.xyz = subgroupPartitionedMulNV(data[2].i16.xyz, ballot);
|
||||||
|
data[invocation].i16 = subgroupPartitionedMulNV(data[3].i16, ballot);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupPartitionedMinNV(data[0].i16.x, ballot);
|
||||||
|
data[invocation].i16.xy = subgroupPartitionedMinNV(data[1].i16.xy, ballot);
|
||||||
|
data[invocation].i16.xyz = subgroupPartitionedMinNV(data[2].i16.xyz, ballot);
|
||||||
|
data[invocation].i16 = subgroupPartitionedMinNV(data[3].i16, ballot);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupPartitionedMaxNV(data[0].i16.x, ballot);
|
||||||
|
data[invocation].i16.xy = subgroupPartitionedMaxNV(data[1].i16.xy, ballot);
|
||||||
|
data[invocation].i16.xyz = subgroupPartitionedMaxNV(data[2].i16.xyz, ballot);
|
||||||
|
data[invocation].i16 = subgroupPartitionedMaxNV(data[3].i16, ballot);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupPartitionedAndNV(data[0].i16.x, ballot);
|
||||||
|
data[invocation].i16.xy = subgroupPartitionedAndNV(data[1].i16.xy, ballot);
|
||||||
|
data[invocation].i16.xyz = subgroupPartitionedAndNV(data[2].i16.xyz, ballot);
|
||||||
|
data[invocation].i16 = subgroupPartitionedAndNV(data[3].i16, ballot);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupPartitionedOrNV(data[0].i16.x, ballot);
|
||||||
|
data[invocation].i16.xy = subgroupPartitionedOrNV(data[1].i16.xy, ballot);
|
||||||
|
data[invocation].i16.xyz = subgroupPartitionedOrNV(data[2].i16.xyz, ballot);
|
||||||
|
data[invocation].i16 = subgroupPartitionedOrNV(data[3].i16, ballot);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupPartitionedXorNV(data[0].i16.x, ballot);
|
||||||
|
data[invocation].i16.xy = subgroupPartitionedXorNV(data[1].i16.xy, ballot);
|
||||||
|
data[invocation].i16.xyz = subgroupPartitionedXorNV(data[2].i16.xyz, ballot);
|
||||||
|
data[invocation].i16 = subgroupPartitionedXorNV(data[3].i16, ballot);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupPartitionedAddNV(data[0].u16.x, ballot);
|
||||||
|
data[invocation].u16.xy = subgroupPartitionedAddNV(data[1].u16.xy, ballot);
|
||||||
|
data[invocation].u16.xyz = subgroupPartitionedAddNV(data[2].u16.xyz, ballot);
|
||||||
|
data[invocation].u16 = subgroupPartitionedAddNV(data[3].u16, ballot);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupPartitionedMulNV(data[0].u16.x, ballot);
|
||||||
|
data[invocation].u16.xy = subgroupPartitionedMulNV(data[1].u16.xy, ballot);
|
||||||
|
data[invocation].u16.xyz = subgroupPartitionedMulNV(data[2].u16.xyz, ballot);
|
||||||
|
data[invocation].u16 = subgroupPartitionedMulNV(data[3].u16, ballot);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupPartitionedMinNV(data[0].u16.x, ballot);
|
||||||
|
data[invocation].u16.xy = subgroupPartitionedMinNV(data[1].u16.xy, ballot);
|
||||||
|
data[invocation].u16.xyz = subgroupPartitionedMinNV(data[2].u16.xyz, ballot);
|
||||||
|
data[invocation].u16 = subgroupPartitionedMinNV(data[3].u16, ballot);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupPartitionedMaxNV(data[0].u16.x, ballot);
|
||||||
|
data[invocation].u16.xy = subgroupPartitionedMaxNV(data[1].u16.xy, ballot);
|
||||||
|
data[invocation].u16.xyz = subgroupPartitionedMaxNV(data[2].u16.xyz, ballot);
|
||||||
|
data[invocation].u16 = subgroupPartitionedMaxNV(data[3].u16, ballot);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupPartitionedAndNV(data[0].u16.x, ballot);
|
||||||
|
data[invocation].u16.xy = subgroupPartitionedAndNV(data[1].u16.xy, ballot);
|
||||||
|
data[invocation].u16.xyz = subgroupPartitionedAndNV(data[2].u16.xyz, ballot);
|
||||||
|
data[invocation].u16 = subgroupPartitionedAndNV(data[3].u16, ballot);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupPartitionedOrNV(data[0].u16.x, ballot);
|
||||||
|
data[invocation].u16.xy = subgroupPartitionedOrNV(data[1].u16.xy, ballot);
|
||||||
|
data[invocation].u16.xyz = subgroupPartitionedOrNV(data[2].u16.xyz, ballot);
|
||||||
|
data[invocation].u16 = subgroupPartitionedOrNV(data[3].u16, ballot);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupPartitionedXorNV(data[0].u16.x, ballot);
|
||||||
|
data[invocation].u16.xy = subgroupPartitionedXorNV(data[1].u16.xy, ballot);
|
||||||
|
data[invocation].u16.xyz = subgroupPartitionedXorNV(data[2].u16.xyz, ballot);
|
||||||
|
data[invocation].u16 = subgroupPartitionedXorNV(data[3].u16, ballot);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupPartitionedAddNV(data[0].i64.x, ballot);
|
||||||
|
data[invocation].i64.xy = subgroupPartitionedAddNV(data[1].i64.xy, ballot);
|
||||||
|
data[invocation].i64.xyz = subgroupPartitionedAddNV(data[2].i64.xyz, ballot);
|
||||||
|
data[invocation].i64 = subgroupPartitionedAddNV(data[3].i64, ballot);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupPartitionedMulNV(data[0].i64.x, ballot);
|
||||||
|
data[invocation].i64.xy = subgroupPartitionedMulNV(data[1].i64.xy, ballot);
|
||||||
|
data[invocation].i64.xyz = subgroupPartitionedMulNV(data[2].i64.xyz, ballot);
|
||||||
|
data[invocation].i64 = subgroupPartitionedMulNV(data[3].i64, ballot);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupPartitionedMinNV(data[0].i64.x, ballot);
|
||||||
|
data[invocation].i64.xy = subgroupPartitionedMinNV(data[1].i64.xy, ballot);
|
||||||
|
data[invocation].i64.xyz = subgroupPartitionedMinNV(data[2].i64.xyz, ballot);
|
||||||
|
data[invocation].i64 = subgroupPartitionedMinNV(data[3].i64, ballot);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupPartitionedMaxNV(data[0].i64.x, ballot);
|
||||||
|
data[invocation].i64.xy = subgroupPartitionedMaxNV(data[1].i64.xy, ballot);
|
||||||
|
data[invocation].i64.xyz = subgroupPartitionedMaxNV(data[2].i64.xyz, ballot);
|
||||||
|
data[invocation].i64 = subgroupPartitionedMaxNV(data[3].i64, ballot);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupPartitionedAndNV(data[0].i64.x, ballot);
|
||||||
|
data[invocation].i64.xy = subgroupPartitionedAndNV(data[1].i64.xy, ballot);
|
||||||
|
data[invocation].i64.xyz = subgroupPartitionedAndNV(data[2].i64.xyz, ballot);
|
||||||
|
data[invocation].i64 = subgroupPartitionedAndNV(data[3].i64, ballot);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupPartitionedOrNV(data[0].i64.x, ballot);
|
||||||
|
data[invocation].i64.xy = subgroupPartitionedOrNV(data[1].i64.xy, ballot);
|
||||||
|
data[invocation].i64.xyz = subgroupPartitionedOrNV(data[2].i64.xyz, ballot);
|
||||||
|
data[invocation].i64 = subgroupPartitionedOrNV(data[3].i64, ballot);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupPartitionedXorNV(data[0].i64.x, ballot);
|
||||||
|
data[invocation].i64.xy = subgroupPartitionedXorNV(data[1].i64.xy, ballot);
|
||||||
|
data[invocation].i64.xyz = subgroupPartitionedXorNV(data[2].i64.xyz, ballot);
|
||||||
|
data[invocation].i64 = subgroupPartitionedXorNV(data[3].i64, ballot);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupPartitionedAddNV(data[0].u64.x, ballot);
|
||||||
|
data[invocation].u64.xy = subgroupPartitionedAddNV(data[1].u64.xy, ballot);
|
||||||
|
data[invocation].u64.xyz = subgroupPartitionedAddNV(data[2].u64.xyz, ballot);
|
||||||
|
data[invocation].u64 = subgroupPartitionedAddNV(data[3].u64, ballot);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupPartitionedMulNV(data[0].u64.x, ballot);
|
||||||
|
data[invocation].u64.xy = subgroupPartitionedMulNV(data[1].u64.xy, ballot);
|
||||||
|
data[invocation].u64.xyz = subgroupPartitionedMulNV(data[2].u64.xyz, ballot);
|
||||||
|
data[invocation].u64 = subgroupPartitionedMulNV(data[3].u64, ballot);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupPartitionedMinNV(data[0].u64.x, ballot);
|
||||||
|
data[invocation].u64.xy = subgroupPartitionedMinNV(data[1].u64.xy, ballot);
|
||||||
|
data[invocation].u64.xyz = subgroupPartitionedMinNV(data[2].u64.xyz, ballot);
|
||||||
|
data[invocation].u64 = subgroupPartitionedMinNV(data[3].u64, ballot);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupPartitionedMaxNV(data[0].u64.x, ballot);
|
||||||
|
data[invocation].u64.xy = subgroupPartitionedMaxNV(data[1].u64.xy, ballot);
|
||||||
|
data[invocation].u64.xyz = subgroupPartitionedMaxNV(data[2].u64.xyz, ballot);
|
||||||
|
data[invocation].u64 = subgroupPartitionedMaxNV(data[3].u64, ballot);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupPartitionedAndNV(data[0].u64.x, ballot);
|
||||||
|
data[invocation].u64.xy = subgroupPartitionedAndNV(data[1].u64.xy, ballot);
|
||||||
|
data[invocation].u64.xyz = subgroupPartitionedAndNV(data[2].u64.xyz, ballot);
|
||||||
|
data[invocation].u64 = subgroupPartitionedAndNV(data[3].u64, ballot);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupPartitionedOrNV(data[0].u64.x, ballot);
|
||||||
|
data[invocation].u64.xy = subgroupPartitionedOrNV(data[1].u64.xy, ballot);
|
||||||
|
data[invocation].u64.xyz = subgroupPartitionedOrNV(data[2].u64.xyz, ballot);
|
||||||
|
data[invocation].u64 = subgroupPartitionedOrNV(data[3].u64, ballot);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupPartitionedXorNV(data[0].u64.x, ballot);
|
||||||
|
data[invocation].u64.xy = subgroupPartitionedXorNV(data[1].u64.xy, ballot);
|
||||||
|
data[invocation].u64.xyz = subgroupPartitionedXorNV(data[2].u64.xyz, ballot);
|
||||||
|
data[invocation].u64 = subgroupPartitionedXorNV(data[3].u64, ballot);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupPartitionedAddNV(data[0].f16.x, ballot);
|
||||||
|
data[invocation].f16.xy = subgroupPartitionedAddNV(data[1].f16.xy, ballot);
|
||||||
|
data[invocation].f16.xyz = subgroupPartitionedAddNV(data[2].f16.xyz, ballot);
|
||||||
|
data[invocation].f16 = subgroupPartitionedAddNV(data[3].f16, ballot);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupPartitionedMulNV(data[0].f16.x, ballot);
|
||||||
|
data[invocation].f16.xy = subgroupPartitionedMulNV(data[1].f16.xy, ballot);
|
||||||
|
data[invocation].f16.xyz = subgroupPartitionedMulNV(data[2].f16.xyz, ballot);
|
||||||
|
data[invocation].f16 = subgroupPartitionedMulNV(data[3].f16, ballot);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupPartitionedMinNV(data[0].f16.x, ballot);
|
||||||
|
data[invocation].f16.xy = subgroupPartitionedMinNV(data[1].f16.xy, ballot);
|
||||||
|
data[invocation].f16.xyz = subgroupPartitionedMinNV(data[2].f16.xyz, ballot);
|
||||||
|
data[invocation].f16 = subgroupPartitionedMinNV(data[3].f16, ballot);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupPartitionedMaxNV(data[0].f16.x, ballot);
|
||||||
|
data[invocation].f16.xy = subgroupPartitionedMaxNV(data[1].f16.xy, ballot);
|
||||||
|
data[invocation].f16.xyz = subgroupPartitionedMaxNV(data[2].f16.xyz, ballot);
|
||||||
|
data[invocation].f16 = subgroupPartitionedMaxNV(data[3].f16, ballot);
|
||||||
|
}
|
291
Test/spv.subgroupExtendedTypesPartitionedNeg.comp
Normal file
291
Test/spv.subgroupExtendedTypesPartitionedNeg.comp
Normal file
@ -0,0 +1,291 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
#extension GL_NV_shader_subgroup_partitioned: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable
|
||||||
|
|
||||||
|
layout (local_size_x = 8) in;
|
||||||
|
|
||||||
|
layout(binding = 0) buffer Buffers
|
||||||
|
{
|
||||||
|
i8vec4 i8;
|
||||||
|
u8vec4 u8;
|
||||||
|
i16vec4 i16;
|
||||||
|
u16vec4 u16;
|
||||||
|
i64vec4 i64;
|
||||||
|
u64vec4 u64;
|
||||||
|
f16vec4 f16;
|
||||||
|
} data[4];
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||||
|
|
||||||
|
uvec4 ballot;
|
||||||
|
ballot = subgroupPartitionNV(data[0].i8.x);
|
||||||
|
ballot = subgroupPartitionNV(data[1].i8.xy);
|
||||||
|
ballot = subgroupPartitionNV(data[2].i8.xyz);
|
||||||
|
ballot = subgroupPartitionNV(data[3].i8);
|
||||||
|
|
||||||
|
ballot = subgroupPartitionNV(data[0].u8.x);
|
||||||
|
ballot = subgroupPartitionNV(data[1].u8.xy);
|
||||||
|
ballot = subgroupPartitionNV(data[2].u8.xyz);
|
||||||
|
ballot = subgroupPartitionNV(data[3].u8);
|
||||||
|
|
||||||
|
ballot = subgroupPartitionNV(data[0].i16.x);
|
||||||
|
ballot = subgroupPartitionNV(data[1].i16.xy);
|
||||||
|
ballot = subgroupPartitionNV(data[2].i16.xyz);
|
||||||
|
ballot = subgroupPartitionNV(data[3].i16);
|
||||||
|
|
||||||
|
ballot = subgroupPartitionNV(data[0].u16.x);
|
||||||
|
ballot = subgroupPartitionNV(data[1].u16.xy);
|
||||||
|
ballot = subgroupPartitionNV(data[2].u16.xyz);
|
||||||
|
ballot = subgroupPartitionNV(data[3].u16);
|
||||||
|
|
||||||
|
ballot = subgroupPartitionNV(data[0].i64.x);
|
||||||
|
ballot = subgroupPartitionNV(data[1].i64.xy);
|
||||||
|
ballot = subgroupPartitionNV(data[2].i64.xyz);
|
||||||
|
ballot = subgroupPartitionNV(data[3].i64);
|
||||||
|
|
||||||
|
ballot = subgroupPartitionNV(data[0].u64.x);
|
||||||
|
ballot = subgroupPartitionNV(data[1].u64.xy);
|
||||||
|
ballot = subgroupPartitionNV(data[2].u64.xyz);
|
||||||
|
ballot = subgroupPartitionNV(data[3].u64);
|
||||||
|
|
||||||
|
ballot = subgroupPartitionNV(data[0].f16.x);
|
||||||
|
ballot = subgroupPartitionNV(data[1].f16.xy);
|
||||||
|
ballot = subgroupPartitionNV(data[2].f16.xyz);
|
||||||
|
ballot = subgroupPartitionNV(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupPartitionedAddNV(data[0].i8.x, ballot);
|
||||||
|
data[invocation].i8.xy = subgroupPartitionedAddNV(data[1].i8.xy, ballot);
|
||||||
|
data[invocation].i8.xyz = subgroupPartitionedAddNV(data[2].i8.xyz, ballot);
|
||||||
|
data[invocation].i8 = subgroupPartitionedAddNV(data[3].i8, ballot);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupPartitionedMulNV(data[0].i8.x, ballot);
|
||||||
|
data[invocation].i8.xy = subgroupPartitionedMulNV(data[1].i8.xy, ballot);
|
||||||
|
data[invocation].i8.xyz = subgroupPartitionedMulNV(data[2].i8.xyz, ballot);
|
||||||
|
data[invocation].i8 = subgroupPartitionedMulNV(data[3].i8, ballot);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupPartitionedMinNV(data[0].i8.x, ballot);
|
||||||
|
data[invocation].i8.xy = subgroupPartitionedMinNV(data[1].i8.xy, ballot);
|
||||||
|
data[invocation].i8.xyz = subgroupPartitionedMinNV(data[2].i8.xyz, ballot);
|
||||||
|
data[invocation].i8 = subgroupPartitionedMinNV(data[3].i8, ballot);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupPartitionedMaxNV(data[0].i8.x, ballot);
|
||||||
|
data[invocation].i8.xy = subgroupPartitionedMaxNV(data[1].i8.xy, ballot);
|
||||||
|
data[invocation].i8.xyz = subgroupPartitionedMaxNV(data[2].i8.xyz, ballot);
|
||||||
|
data[invocation].i8 = subgroupPartitionedMaxNV(data[3].i8, ballot);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupPartitionedAndNV(data[0].i8.x, ballot);
|
||||||
|
data[invocation].i8.xy = subgroupPartitionedAndNV(data[1].i8.xy, ballot);
|
||||||
|
data[invocation].i8.xyz = subgroupPartitionedAndNV(data[2].i8.xyz, ballot);
|
||||||
|
data[invocation].i8 = subgroupPartitionedAndNV(data[3].i8, ballot);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupPartitionedOrNV(data[0].i8.x, ballot);
|
||||||
|
data[invocation].i8.xy = subgroupPartitionedOrNV(data[1].i8.xy, ballot);
|
||||||
|
data[invocation].i8.xyz = subgroupPartitionedOrNV(data[2].i8.xyz, ballot);
|
||||||
|
data[invocation].i8 = subgroupPartitionedOrNV(data[3].i8, ballot);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupPartitionedXorNV(data[0].i8.x, ballot);
|
||||||
|
data[invocation].i8.xy = subgroupPartitionedXorNV(data[1].i8.xy, ballot);
|
||||||
|
data[invocation].i8.xyz = subgroupPartitionedXorNV(data[2].i8.xyz, ballot);
|
||||||
|
data[invocation].i8 = subgroupPartitionedXorNV(data[3].i8, ballot);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupPartitionedAddNV(data[0].u8.x, ballot);
|
||||||
|
data[invocation].u8.xy = subgroupPartitionedAddNV(data[1].u8.xy, ballot);
|
||||||
|
data[invocation].u8.xyz = subgroupPartitionedAddNV(data[2].u8.xyz, ballot);
|
||||||
|
data[invocation].u8 = subgroupPartitionedAddNV(data[3].u8, ballot);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupPartitionedMulNV(data[0].u8.x, ballot);
|
||||||
|
data[invocation].u8.xy = subgroupPartitionedMulNV(data[1].u8.xy, ballot);
|
||||||
|
data[invocation].u8.xyz = subgroupPartitionedMulNV(data[2].u8.xyz, ballot);
|
||||||
|
data[invocation].u8 = subgroupPartitionedMulNV(data[3].u8, ballot);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupPartitionedMinNV(data[0].u8.x, ballot);
|
||||||
|
data[invocation].u8.xy = subgroupPartitionedMinNV(data[1].u8.xy, ballot);
|
||||||
|
data[invocation].u8.xyz = subgroupPartitionedMinNV(data[2].u8.xyz, ballot);
|
||||||
|
data[invocation].u8 = subgroupPartitionedMinNV(data[3].u8, ballot);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupPartitionedMaxNV(data[0].u8.x, ballot);
|
||||||
|
data[invocation].u8.xy = subgroupPartitionedMaxNV(data[1].u8.xy, ballot);
|
||||||
|
data[invocation].u8.xyz = subgroupPartitionedMaxNV(data[2].u8.xyz, ballot);
|
||||||
|
data[invocation].u8 = subgroupPartitionedMaxNV(data[3].u8, ballot);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupPartitionedAndNV(data[0].u8.x, ballot);
|
||||||
|
data[invocation].u8.xy = subgroupPartitionedAndNV(data[1].u8.xy, ballot);
|
||||||
|
data[invocation].u8.xyz = subgroupPartitionedAndNV(data[2].u8.xyz, ballot);
|
||||||
|
data[invocation].u8 = subgroupPartitionedAndNV(data[3].u8, ballot);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupPartitionedOrNV(data[0].u8.x, ballot);
|
||||||
|
data[invocation].u8.xy = subgroupPartitionedOrNV(data[1].u8.xy, ballot);
|
||||||
|
data[invocation].u8.xyz = subgroupPartitionedOrNV(data[2].u8.xyz, ballot);
|
||||||
|
data[invocation].u8 = subgroupPartitionedOrNV(data[3].u8, ballot);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupPartitionedXorNV(data[0].u8.x, ballot);
|
||||||
|
data[invocation].u8.xy = subgroupPartitionedXorNV(data[1].u8.xy, ballot);
|
||||||
|
data[invocation].u8.xyz = subgroupPartitionedXorNV(data[2].u8.xyz, ballot);
|
||||||
|
data[invocation].u8 = subgroupPartitionedXorNV(data[3].u8, ballot);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupPartitionedAddNV(data[0].i16.x, ballot);
|
||||||
|
data[invocation].i16.xy = subgroupPartitionedAddNV(data[1].i16.xy, ballot);
|
||||||
|
data[invocation].i16.xyz = subgroupPartitionedAddNV(data[2].i16.xyz, ballot);
|
||||||
|
data[invocation].i16 = subgroupPartitionedAddNV(data[3].i16, ballot);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupPartitionedMulNV(data[0].i16.x, ballot);
|
||||||
|
data[invocation].i16.xy = subgroupPartitionedMulNV(data[1].i16.xy, ballot);
|
||||||
|
data[invocation].i16.xyz = subgroupPartitionedMulNV(data[2].i16.xyz, ballot);
|
||||||
|
data[invocation].i16 = subgroupPartitionedMulNV(data[3].i16, ballot);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupPartitionedMinNV(data[0].i16.x, ballot);
|
||||||
|
data[invocation].i16.xy = subgroupPartitionedMinNV(data[1].i16.xy, ballot);
|
||||||
|
data[invocation].i16.xyz = subgroupPartitionedMinNV(data[2].i16.xyz, ballot);
|
||||||
|
data[invocation].i16 = subgroupPartitionedMinNV(data[3].i16, ballot);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupPartitionedMaxNV(data[0].i16.x, ballot);
|
||||||
|
data[invocation].i16.xy = subgroupPartitionedMaxNV(data[1].i16.xy, ballot);
|
||||||
|
data[invocation].i16.xyz = subgroupPartitionedMaxNV(data[2].i16.xyz, ballot);
|
||||||
|
data[invocation].i16 = subgroupPartitionedMaxNV(data[3].i16, ballot);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupPartitionedAndNV(data[0].i16.x, ballot);
|
||||||
|
data[invocation].i16.xy = subgroupPartitionedAndNV(data[1].i16.xy, ballot);
|
||||||
|
data[invocation].i16.xyz = subgroupPartitionedAndNV(data[2].i16.xyz, ballot);
|
||||||
|
data[invocation].i16 = subgroupPartitionedAndNV(data[3].i16, ballot);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupPartitionedOrNV(data[0].i16.x, ballot);
|
||||||
|
data[invocation].i16.xy = subgroupPartitionedOrNV(data[1].i16.xy, ballot);
|
||||||
|
data[invocation].i16.xyz = subgroupPartitionedOrNV(data[2].i16.xyz, ballot);
|
||||||
|
data[invocation].i16 = subgroupPartitionedOrNV(data[3].i16, ballot);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupPartitionedXorNV(data[0].i16.x, ballot);
|
||||||
|
data[invocation].i16.xy = subgroupPartitionedXorNV(data[1].i16.xy, ballot);
|
||||||
|
data[invocation].i16.xyz = subgroupPartitionedXorNV(data[2].i16.xyz, ballot);
|
||||||
|
data[invocation].i16 = subgroupPartitionedXorNV(data[3].i16, ballot);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupPartitionedAddNV(data[0].u16.x, ballot);
|
||||||
|
data[invocation].u16.xy = subgroupPartitionedAddNV(data[1].u16.xy, ballot);
|
||||||
|
data[invocation].u16.xyz = subgroupPartitionedAddNV(data[2].u16.xyz, ballot);
|
||||||
|
data[invocation].u16 = subgroupPartitionedAddNV(data[3].u16, ballot);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupPartitionedMulNV(data[0].u16.x, ballot);
|
||||||
|
data[invocation].u16.xy = subgroupPartitionedMulNV(data[1].u16.xy, ballot);
|
||||||
|
data[invocation].u16.xyz = subgroupPartitionedMulNV(data[2].u16.xyz, ballot);
|
||||||
|
data[invocation].u16 = subgroupPartitionedMulNV(data[3].u16, ballot);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupPartitionedMinNV(data[0].u16.x, ballot);
|
||||||
|
data[invocation].u16.xy = subgroupPartitionedMinNV(data[1].u16.xy, ballot);
|
||||||
|
data[invocation].u16.xyz = subgroupPartitionedMinNV(data[2].u16.xyz, ballot);
|
||||||
|
data[invocation].u16 = subgroupPartitionedMinNV(data[3].u16, ballot);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupPartitionedMaxNV(data[0].u16.x, ballot);
|
||||||
|
data[invocation].u16.xy = subgroupPartitionedMaxNV(data[1].u16.xy, ballot);
|
||||||
|
data[invocation].u16.xyz = subgroupPartitionedMaxNV(data[2].u16.xyz, ballot);
|
||||||
|
data[invocation].u16 = subgroupPartitionedMaxNV(data[3].u16, ballot);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupPartitionedAndNV(data[0].u16.x, ballot);
|
||||||
|
data[invocation].u16.xy = subgroupPartitionedAndNV(data[1].u16.xy, ballot);
|
||||||
|
data[invocation].u16.xyz = subgroupPartitionedAndNV(data[2].u16.xyz, ballot);
|
||||||
|
data[invocation].u16 = subgroupPartitionedAndNV(data[3].u16, ballot);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupPartitionedOrNV(data[0].u16.x, ballot);
|
||||||
|
data[invocation].u16.xy = subgroupPartitionedOrNV(data[1].u16.xy, ballot);
|
||||||
|
data[invocation].u16.xyz = subgroupPartitionedOrNV(data[2].u16.xyz, ballot);
|
||||||
|
data[invocation].u16 = subgroupPartitionedOrNV(data[3].u16, ballot);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupPartitionedXorNV(data[0].u16.x, ballot);
|
||||||
|
data[invocation].u16.xy = subgroupPartitionedXorNV(data[1].u16.xy, ballot);
|
||||||
|
data[invocation].u16.xyz = subgroupPartitionedXorNV(data[2].u16.xyz, ballot);
|
||||||
|
data[invocation].u16 = subgroupPartitionedXorNV(data[3].u16, ballot);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupPartitionedAddNV(data[0].i64.x, ballot);
|
||||||
|
data[invocation].i64.xy = subgroupPartitionedAddNV(data[1].i64.xy, ballot);
|
||||||
|
data[invocation].i64.xyz = subgroupPartitionedAddNV(data[2].i64.xyz, ballot);
|
||||||
|
data[invocation].i64 = subgroupPartitionedAddNV(data[3].i64, ballot);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupPartitionedMulNV(data[0].i64.x, ballot);
|
||||||
|
data[invocation].i64.xy = subgroupPartitionedMulNV(data[1].i64.xy, ballot);
|
||||||
|
data[invocation].i64.xyz = subgroupPartitionedMulNV(data[2].i64.xyz, ballot);
|
||||||
|
data[invocation].i64 = subgroupPartitionedMulNV(data[3].i64, ballot);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupPartitionedMinNV(data[0].i64.x, ballot);
|
||||||
|
data[invocation].i64.xy = subgroupPartitionedMinNV(data[1].i64.xy, ballot);
|
||||||
|
data[invocation].i64.xyz = subgroupPartitionedMinNV(data[2].i64.xyz, ballot);
|
||||||
|
data[invocation].i64 = subgroupPartitionedMinNV(data[3].i64, ballot);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupPartitionedMaxNV(data[0].i64.x, ballot);
|
||||||
|
data[invocation].i64.xy = subgroupPartitionedMaxNV(data[1].i64.xy, ballot);
|
||||||
|
data[invocation].i64.xyz = subgroupPartitionedMaxNV(data[2].i64.xyz, ballot);
|
||||||
|
data[invocation].i64 = subgroupPartitionedMaxNV(data[3].i64, ballot);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupPartitionedAndNV(data[0].i64.x, ballot);
|
||||||
|
data[invocation].i64.xy = subgroupPartitionedAndNV(data[1].i64.xy, ballot);
|
||||||
|
data[invocation].i64.xyz = subgroupPartitionedAndNV(data[2].i64.xyz, ballot);
|
||||||
|
data[invocation].i64 = subgroupPartitionedAndNV(data[3].i64, ballot);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupPartitionedOrNV(data[0].i64.x, ballot);
|
||||||
|
data[invocation].i64.xy = subgroupPartitionedOrNV(data[1].i64.xy, ballot);
|
||||||
|
data[invocation].i64.xyz = subgroupPartitionedOrNV(data[2].i64.xyz, ballot);
|
||||||
|
data[invocation].i64 = subgroupPartitionedOrNV(data[3].i64, ballot);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupPartitionedXorNV(data[0].i64.x, ballot);
|
||||||
|
data[invocation].i64.xy = subgroupPartitionedXorNV(data[1].i64.xy, ballot);
|
||||||
|
data[invocation].i64.xyz = subgroupPartitionedXorNV(data[2].i64.xyz, ballot);
|
||||||
|
data[invocation].i64 = subgroupPartitionedXorNV(data[3].i64, ballot);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupPartitionedAddNV(data[0].u64.x, ballot);
|
||||||
|
data[invocation].u64.xy = subgroupPartitionedAddNV(data[1].u64.xy, ballot);
|
||||||
|
data[invocation].u64.xyz = subgroupPartitionedAddNV(data[2].u64.xyz, ballot);
|
||||||
|
data[invocation].u64 = subgroupPartitionedAddNV(data[3].u64, ballot);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupPartitionedMulNV(data[0].u64.x, ballot);
|
||||||
|
data[invocation].u64.xy = subgroupPartitionedMulNV(data[1].u64.xy, ballot);
|
||||||
|
data[invocation].u64.xyz = subgroupPartitionedMulNV(data[2].u64.xyz, ballot);
|
||||||
|
data[invocation].u64 = subgroupPartitionedMulNV(data[3].u64, ballot);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupPartitionedMinNV(data[0].u64.x, ballot);
|
||||||
|
data[invocation].u64.xy = subgroupPartitionedMinNV(data[1].u64.xy, ballot);
|
||||||
|
data[invocation].u64.xyz = subgroupPartitionedMinNV(data[2].u64.xyz, ballot);
|
||||||
|
data[invocation].u64 = subgroupPartitionedMinNV(data[3].u64, ballot);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupPartitionedMaxNV(data[0].u64.x, ballot);
|
||||||
|
data[invocation].u64.xy = subgroupPartitionedMaxNV(data[1].u64.xy, ballot);
|
||||||
|
data[invocation].u64.xyz = subgroupPartitionedMaxNV(data[2].u64.xyz, ballot);
|
||||||
|
data[invocation].u64 = subgroupPartitionedMaxNV(data[3].u64, ballot);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupPartitionedAndNV(data[0].u64.x, ballot);
|
||||||
|
data[invocation].u64.xy = subgroupPartitionedAndNV(data[1].u64.xy, ballot);
|
||||||
|
data[invocation].u64.xyz = subgroupPartitionedAndNV(data[2].u64.xyz, ballot);
|
||||||
|
data[invocation].u64 = subgroupPartitionedAndNV(data[3].u64, ballot);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupPartitionedOrNV(data[0].u64.x, ballot);
|
||||||
|
data[invocation].u64.xy = subgroupPartitionedOrNV(data[1].u64.xy, ballot);
|
||||||
|
data[invocation].u64.xyz = subgroupPartitionedOrNV(data[2].u64.xyz, ballot);
|
||||||
|
data[invocation].u64 = subgroupPartitionedOrNV(data[3].u64, ballot);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupPartitionedXorNV(data[0].u64.x, ballot);
|
||||||
|
data[invocation].u64.xy = subgroupPartitionedXorNV(data[1].u64.xy, ballot);
|
||||||
|
data[invocation].u64.xyz = subgroupPartitionedXorNV(data[2].u64.xyz, ballot);
|
||||||
|
data[invocation].u64 = subgroupPartitionedXorNV(data[3].u64, ballot);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupPartitionedAddNV(data[0].f16.x, ballot);
|
||||||
|
data[invocation].f16.xy = subgroupPartitionedAddNV(data[1].f16.xy, ballot);
|
||||||
|
data[invocation].f16.xyz = subgroupPartitionedAddNV(data[2].f16.xyz, ballot);
|
||||||
|
data[invocation].f16 = subgroupPartitionedAddNV(data[3].f16, ballot);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupPartitionedMulNV(data[0].f16.x, ballot);
|
||||||
|
data[invocation].f16.xy = subgroupPartitionedMulNV(data[1].f16.xy, ballot);
|
||||||
|
data[invocation].f16.xyz = subgroupPartitionedMulNV(data[2].f16.xyz, ballot);
|
||||||
|
data[invocation].f16 = subgroupPartitionedMulNV(data[3].f16, ballot);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupPartitionedMinNV(data[0].f16.x, ballot);
|
||||||
|
data[invocation].f16.xy = subgroupPartitionedMinNV(data[1].f16.xy, ballot);
|
||||||
|
data[invocation].f16.xyz = subgroupPartitionedMinNV(data[2].f16.xyz, ballot);
|
||||||
|
data[invocation].f16 = subgroupPartitionedMinNV(data[3].f16, ballot);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupPartitionedMaxNV(data[0].f16.x, ballot);
|
||||||
|
data[invocation].f16.xy = subgroupPartitionedMaxNV(data[1].f16.xy, ballot);
|
||||||
|
data[invocation].f16.xyz = subgroupPartitionedMaxNV(data[2].f16.xyz, ballot);
|
||||||
|
data[invocation].f16 = subgroupPartitionedMaxNV(data[3].f16, ballot);
|
||||||
|
}
|
165
Test/spv.subgroupExtendedTypesQuad.comp
Normal file
165
Test/spv.subgroupExtendedTypesQuad.comp
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
#extension GL_KHR_shader_subgroup_quad: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int8: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int16: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int64: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_float16: enable
|
||||||
|
|
||||||
|
layout (local_size_x = 8) in;
|
||||||
|
|
||||||
|
layout(binding = 0) buffer Buffers
|
||||||
|
{
|
||||||
|
i8vec4 i8;
|
||||||
|
u8vec4 u8;
|
||||||
|
i16vec4 i16;
|
||||||
|
u16vec4 u16;
|
||||||
|
i64vec4 i64;
|
||||||
|
u64vec4 u64;
|
||||||
|
f16vec4 f16;
|
||||||
|
} data[4];
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupQuadBroadcast(data[0].i8.x, 1);
|
||||||
|
data[invocation].i8.xy = subgroupQuadBroadcast(data[1].i8.xy, 1);
|
||||||
|
data[invocation].i8.xyz = subgroupQuadBroadcast(data[2].i8.xyz, 1);
|
||||||
|
data[invocation].i8 = subgroupQuadBroadcast(data[3].i8, 1);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupQuadSwapHorizontal(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupQuadSwapHorizontal(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupQuadSwapHorizontal(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupQuadSwapHorizontal(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupQuadSwapVertical(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupQuadSwapVertical(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupQuadSwapVertical(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupQuadSwapVertical(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupQuadSwapDiagonal(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupQuadSwapDiagonal(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupQuadSwapDiagonal(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupQuadSwapDiagonal(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupQuadBroadcast(data[0].u8.x, 1);
|
||||||
|
data[invocation].u8.xy = subgroupQuadBroadcast(data[1].u8.xy, 1);
|
||||||
|
data[invocation].u8.xyz = subgroupQuadBroadcast(data[2].u8.xyz, 1);
|
||||||
|
data[invocation].u8 = subgroupQuadBroadcast(data[3].u8, 1);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupQuadSwapHorizontal(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupQuadSwapHorizontal(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupQuadSwapHorizontal(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupQuadSwapHorizontal(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupQuadSwapVertical(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupQuadSwapVertical(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupQuadSwapVertical(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupQuadSwapVertical(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupQuadSwapDiagonal(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupQuadSwapDiagonal(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupQuadSwapDiagonal(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupQuadSwapDiagonal(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupQuadBroadcast(data[0].i16.x, 1);
|
||||||
|
data[invocation].i16.xy = subgroupQuadBroadcast(data[1].i16.xy, 1);
|
||||||
|
data[invocation].i16.xyz = subgroupQuadBroadcast(data[2].i16.xyz, 1);
|
||||||
|
data[invocation].i16 = subgroupQuadBroadcast(data[3].i16, 1);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupQuadSwapHorizontal(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupQuadSwapHorizontal(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupQuadSwapHorizontal(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupQuadSwapHorizontal(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupQuadSwapVertical(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupQuadSwapVertical(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupQuadSwapVertical(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupQuadSwapVertical(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupQuadSwapDiagonal(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupQuadSwapDiagonal(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupQuadSwapDiagonal(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupQuadSwapDiagonal(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupQuadBroadcast(data[0].u16.x, 1);
|
||||||
|
data[invocation].u16.xy = subgroupQuadBroadcast(data[1].u16.xy, 1);
|
||||||
|
data[invocation].u16.xyz = subgroupQuadBroadcast(data[2].u16.xyz, 1);
|
||||||
|
data[invocation].u16 = subgroupQuadBroadcast(data[3].u16, 1);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupQuadSwapHorizontal(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupQuadSwapHorizontal(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupQuadSwapHorizontal(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupQuadSwapHorizontal(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupQuadSwapVertical(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupQuadSwapVertical(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupQuadSwapVertical(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupQuadSwapVertical(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupQuadSwapDiagonal(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupQuadSwapDiagonal(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupQuadSwapDiagonal(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupQuadSwapDiagonal(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupQuadBroadcast(data[0].i64.x, 1);
|
||||||
|
data[invocation].i64.xy = subgroupQuadBroadcast(data[1].i64.xy, 1);
|
||||||
|
data[invocation].i64.xyz = subgroupQuadBroadcast(data[2].i64.xyz, 1);
|
||||||
|
data[invocation].i64 = subgroupQuadBroadcast(data[3].i64, 1);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupQuadSwapHorizontal(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupQuadSwapHorizontal(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupQuadSwapHorizontal(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupQuadSwapHorizontal(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupQuadSwapVertical(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupQuadSwapVertical(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupQuadSwapVertical(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupQuadSwapVertical(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupQuadSwapDiagonal(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupQuadSwapDiagonal(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupQuadSwapDiagonal(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupQuadSwapDiagonal(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupQuadBroadcast(data[0].u64.x, 1);
|
||||||
|
data[invocation].u64.xy = subgroupQuadBroadcast(data[1].u64.xy, 1);
|
||||||
|
data[invocation].u64.xyz = subgroupQuadBroadcast(data[2].u64.xyz, 1);
|
||||||
|
data[invocation].u64 = subgroupQuadBroadcast(data[3].u64, 1);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupQuadSwapHorizontal(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupQuadSwapHorizontal(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupQuadSwapHorizontal(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupQuadSwapHorizontal(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupQuadSwapVertical(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupQuadSwapVertical(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupQuadSwapVertical(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupQuadSwapVertical(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupQuadSwapDiagonal(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupQuadSwapDiagonal(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupQuadSwapDiagonal(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupQuadSwapDiagonal(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupQuadBroadcast(data[0].f16.x, 1);
|
||||||
|
data[invocation].f16.xy = subgroupQuadBroadcast(data[1].f16.xy, 1);
|
||||||
|
data[invocation].f16.xyz = subgroupQuadBroadcast(data[2].f16.xyz, 1);
|
||||||
|
data[invocation].f16 = subgroupQuadBroadcast(data[3].f16, 1);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupQuadSwapHorizontal(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupQuadSwapHorizontal(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupQuadSwapHorizontal(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupQuadSwapHorizontal(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupQuadSwapVertical(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupQuadSwapVertical(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupQuadSwapVertical(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupQuadSwapVertical(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupQuadSwapDiagonal(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupQuadSwapDiagonal(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupQuadSwapDiagonal(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupQuadSwapDiagonal(data[3].f16);
|
||||||
|
}
|
165
Test/spv.subgroupExtendedTypesQuadNeg.comp
Normal file
165
Test/spv.subgroupExtendedTypesQuadNeg.comp
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
#extension GL_KHR_shader_subgroup_quad: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable
|
||||||
|
|
||||||
|
layout (local_size_x = 8) in;
|
||||||
|
|
||||||
|
layout(binding = 0) buffer Buffers
|
||||||
|
{
|
||||||
|
i8vec4 i8;
|
||||||
|
u8vec4 u8;
|
||||||
|
i16vec4 i16;
|
||||||
|
u16vec4 u16;
|
||||||
|
i64vec4 i64;
|
||||||
|
u64vec4 u64;
|
||||||
|
f16vec4 f16;
|
||||||
|
} data[4];
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupQuadBroadcast(data[0].i8.x, 1);
|
||||||
|
data[invocation].i8.xy = subgroupQuadBroadcast(data[1].i8.xy, 1);
|
||||||
|
data[invocation].i8.xyz = subgroupQuadBroadcast(data[2].i8.xyz, 1);
|
||||||
|
data[invocation].i8 = subgroupQuadBroadcast(data[3].i8, 1);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupQuadSwapHorizontal(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupQuadSwapHorizontal(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupQuadSwapHorizontal(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupQuadSwapHorizontal(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupQuadSwapVertical(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupQuadSwapVertical(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupQuadSwapVertical(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupQuadSwapVertical(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupQuadSwapDiagonal(data[0].i8.x);
|
||||||
|
data[invocation].i8.xy = subgroupQuadSwapDiagonal(data[1].i8.xy);
|
||||||
|
data[invocation].i8.xyz = subgroupQuadSwapDiagonal(data[2].i8.xyz);
|
||||||
|
data[invocation].i8 = subgroupQuadSwapDiagonal(data[3].i8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupQuadBroadcast(data[0].u8.x, 1);
|
||||||
|
data[invocation].u8.xy = subgroupQuadBroadcast(data[1].u8.xy, 1);
|
||||||
|
data[invocation].u8.xyz = subgroupQuadBroadcast(data[2].u8.xyz, 1);
|
||||||
|
data[invocation].u8 = subgroupQuadBroadcast(data[3].u8, 1);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupQuadSwapHorizontal(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupQuadSwapHorizontal(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupQuadSwapHorizontal(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupQuadSwapHorizontal(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupQuadSwapVertical(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupQuadSwapVertical(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupQuadSwapVertical(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupQuadSwapVertical(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupQuadSwapDiagonal(data[0].u8.x);
|
||||||
|
data[invocation].u8.xy = subgroupQuadSwapDiagonal(data[1].u8.xy);
|
||||||
|
data[invocation].u8.xyz = subgroupQuadSwapDiagonal(data[2].u8.xyz);
|
||||||
|
data[invocation].u8 = subgroupQuadSwapDiagonal(data[3].u8);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupQuadBroadcast(data[0].i16.x, 1);
|
||||||
|
data[invocation].i16.xy = subgroupQuadBroadcast(data[1].i16.xy, 1);
|
||||||
|
data[invocation].i16.xyz = subgroupQuadBroadcast(data[2].i16.xyz, 1);
|
||||||
|
data[invocation].i16 = subgroupQuadBroadcast(data[3].i16, 1);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupQuadSwapHorizontal(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupQuadSwapHorizontal(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupQuadSwapHorizontal(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupQuadSwapHorizontal(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupQuadSwapVertical(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupQuadSwapVertical(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupQuadSwapVertical(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupQuadSwapVertical(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupQuadSwapDiagonal(data[0].i16.x);
|
||||||
|
data[invocation].i16.xy = subgroupQuadSwapDiagonal(data[1].i16.xy);
|
||||||
|
data[invocation].i16.xyz = subgroupQuadSwapDiagonal(data[2].i16.xyz);
|
||||||
|
data[invocation].i16 = subgroupQuadSwapDiagonal(data[3].i16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupQuadBroadcast(data[0].u16.x, 1);
|
||||||
|
data[invocation].u16.xy = subgroupQuadBroadcast(data[1].u16.xy, 1);
|
||||||
|
data[invocation].u16.xyz = subgroupQuadBroadcast(data[2].u16.xyz, 1);
|
||||||
|
data[invocation].u16 = subgroupQuadBroadcast(data[3].u16, 1);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupQuadSwapHorizontal(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupQuadSwapHorizontal(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupQuadSwapHorizontal(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupQuadSwapHorizontal(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupQuadSwapVertical(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupQuadSwapVertical(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupQuadSwapVertical(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupQuadSwapVertical(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupQuadSwapDiagonal(data[0].u16.x);
|
||||||
|
data[invocation].u16.xy = subgroupQuadSwapDiagonal(data[1].u16.xy);
|
||||||
|
data[invocation].u16.xyz = subgroupQuadSwapDiagonal(data[2].u16.xyz);
|
||||||
|
data[invocation].u16 = subgroupQuadSwapDiagonal(data[3].u16);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupQuadBroadcast(data[0].i64.x, 1);
|
||||||
|
data[invocation].i64.xy = subgroupQuadBroadcast(data[1].i64.xy, 1);
|
||||||
|
data[invocation].i64.xyz = subgroupQuadBroadcast(data[2].i64.xyz, 1);
|
||||||
|
data[invocation].i64 = subgroupQuadBroadcast(data[3].i64, 1);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupQuadSwapHorizontal(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupQuadSwapHorizontal(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupQuadSwapHorizontal(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupQuadSwapHorizontal(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupQuadSwapVertical(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupQuadSwapVertical(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupQuadSwapVertical(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupQuadSwapVertical(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupQuadSwapDiagonal(data[0].i64.x);
|
||||||
|
data[invocation].i64.xy = subgroupQuadSwapDiagonal(data[1].i64.xy);
|
||||||
|
data[invocation].i64.xyz = subgroupQuadSwapDiagonal(data[2].i64.xyz);
|
||||||
|
data[invocation].i64 = subgroupQuadSwapDiagonal(data[3].i64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupQuadBroadcast(data[0].u64.x, 1);
|
||||||
|
data[invocation].u64.xy = subgroupQuadBroadcast(data[1].u64.xy, 1);
|
||||||
|
data[invocation].u64.xyz = subgroupQuadBroadcast(data[2].u64.xyz, 1);
|
||||||
|
data[invocation].u64 = subgroupQuadBroadcast(data[3].u64, 1);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupQuadSwapHorizontal(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupQuadSwapHorizontal(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupQuadSwapHorizontal(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupQuadSwapHorizontal(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupQuadSwapVertical(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupQuadSwapVertical(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupQuadSwapVertical(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupQuadSwapVertical(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupQuadSwapDiagonal(data[0].u64.x);
|
||||||
|
data[invocation].u64.xy = subgroupQuadSwapDiagonal(data[1].u64.xy);
|
||||||
|
data[invocation].u64.xyz = subgroupQuadSwapDiagonal(data[2].u64.xyz);
|
||||||
|
data[invocation].u64 = subgroupQuadSwapDiagonal(data[3].u64);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupQuadBroadcast(data[0].f16.x, 1);
|
||||||
|
data[invocation].f16.xy = subgroupQuadBroadcast(data[1].f16.xy, 1);
|
||||||
|
data[invocation].f16.xyz = subgroupQuadBroadcast(data[2].f16.xyz, 1);
|
||||||
|
data[invocation].f16 = subgroupQuadBroadcast(data[3].f16, 1);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupQuadSwapHorizontal(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupQuadSwapHorizontal(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupQuadSwapHorizontal(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupQuadSwapHorizontal(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupQuadSwapVertical(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupQuadSwapVertical(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupQuadSwapVertical(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupQuadSwapVertical(data[3].f16);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupQuadSwapDiagonal(data[0].f16.x);
|
||||||
|
data[invocation].f16.xy = subgroupQuadSwapDiagonal(data[1].f16.xy);
|
||||||
|
data[invocation].f16.xyz = subgroupQuadSwapDiagonal(data[2].f16.xyz);
|
||||||
|
data[invocation].f16 = subgroupQuadSwapDiagonal(data[3].f16);
|
||||||
|
}
|
95
Test/spv.subgroupExtendedTypesShuffle.comp
Normal file
95
Test/spv.subgroupExtendedTypesShuffle.comp
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
#extension GL_KHR_shader_subgroup_shuffle: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int8: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int16: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int64: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_float16: enable
|
||||||
|
|
||||||
|
layout (local_size_x = 8) in;
|
||||||
|
|
||||||
|
layout(binding = 0) buffer Buffers
|
||||||
|
{
|
||||||
|
i8vec4 i8;
|
||||||
|
u8vec4 u8;
|
||||||
|
i16vec4 i16;
|
||||||
|
u16vec4 u16;
|
||||||
|
i64vec4 i64;
|
||||||
|
u64vec4 u64;
|
||||||
|
f16vec4 f16;
|
||||||
|
} data[4];
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupShuffle(data[0].i8.x, invocation);
|
||||||
|
data[invocation].i8.xy = subgroupShuffle(data[1].i8.xy, invocation);
|
||||||
|
data[invocation].i8.xyz = subgroupShuffle(data[2].i8.xyz, invocation);
|
||||||
|
data[invocation].i8 = subgroupShuffle(data[3].i8, invocation);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupShuffleXor(data[0].i8.x, invocation);
|
||||||
|
data[invocation].i8.xy = subgroupShuffleXor(data[1].i8.xy, invocation);
|
||||||
|
data[invocation].i8.xyz = subgroupShuffleXor(data[2].i8.xyz, invocation);
|
||||||
|
data[invocation].i8 = subgroupShuffleXor(data[3].i8, invocation);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupShuffle(data[0].u8.x, invocation);
|
||||||
|
data[invocation].u8.xy = subgroupShuffle(data[1].u8.xy, invocation);
|
||||||
|
data[invocation].u8.xyz = subgroupShuffle(data[2].u8.xyz, invocation);
|
||||||
|
data[invocation].u8 = subgroupShuffle(data[3].u8, invocation);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupShuffleXor(data[0].u8.x, invocation);
|
||||||
|
data[invocation].u8.xy = subgroupShuffleXor(data[1].u8.xy, invocation);
|
||||||
|
data[invocation].u8.xyz = subgroupShuffleXor(data[2].u8.xyz, invocation);
|
||||||
|
data[invocation].u8 = subgroupShuffleXor(data[3].u8, invocation);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupShuffle(data[0].i16.x, invocation);
|
||||||
|
data[invocation].i16.xy = subgroupShuffle(data[1].i16.xy, invocation);
|
||||||
|
data[invocation].i16.xyz = subgroupShuffle(data[2].i16.xyz, invocation);
|
||||||
|
data[invocation].i16 = subgroupShuffle(data[3].i16, invocation);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupShuffleXor(data[0].i16.x, invocation);
|
||||||
|
data[invocation].i16.xy = subgroupShuffleXor(data[1].i16.xy, invocation);
|
||||||
|
data[invocation].i16.xyz = subgroupShuffleXor(data[2].i16.xyz, invocation);
|
||||||
|
data[invocation].i16 = subgroupShuffleXor(data[3].i16, invocation);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupShuffle(data[0].u16.x, invocation);
|
||||||
|
data[invocation].u16.xy = subgroupShuffle(data[1].u16.xy, invocation);
|
||||||
|
data[invocation].u16.xyz = subgroupShuffle(data[2].u16.xyz, invocation);
|
||||||
|
data[invocation].u16 = subgroupShuffle(data[3].u16, invocation);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupShuffleXor(data[0].u16.x, invocation);
|
||||||
|
data[invocation].u16.xy = subgroupShuffleXor(data[1].u16.xy, invocation);
|
||||||
|
data[invocation].u16.xyz = subgroupShuffleXor(data[2].u16.xyz, invocation);
|
||||||
|
data[invocation].u16 = subgroupShuffleXor(data[3].u16, invocation);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupShuffle(data[0].i64.x, invocation);
|
||||||
|
data[invocation].i64.xy = subgroupShuffle(data[1].i64.xy, invocation);
|
||||||
|
data[invocation].i64.xyz = subgroupShuffle(data[2].i64.xyz, invocation);
|
||||||
|
data[invocation].i64 = subgroupShuffle(data[3].i64, invocation);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupShuffleXor(data[0].i64.x, invocation);
|
||||||
|
data[invocation].i64.xy = subgroupShuffleXor(data[1].i64.xy, invocation);
|
||||||
|
data[invocation].i64.xyz = subgroupShuffleXor(data[2].i64.xyz, invocation);
|
||||||
|
data[invocation].i64 = subgroupShuffleXor(data[3].i64, invocation);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupShuffle(data[0].u64.x, invocation);
|
||||||
|
data[invocation].u64.xy = subgroupShuffle(data[1].u64.xy, invocation);
|
||||||
|
data[invocation].u64.xyz = subgroupShuffle(data[2].u64.xyz, invocation);
|
||||||
|
data[invocation].u64 = subgroupShuffle(data[3].u64, invocation);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupShuffleXor(data[0].u64.x, invocation);
|
||||||
|
data[invocation].u64.xy = subgroupShuffleXor(data[1].u64.xy, invocation);
|
||||||
|
data[invocation].u64.xyz = subgroupShuffleXor(data[2].u64.xyz, invocation);
|
||||||
|
data[invocation].u64 = subgroupShuffleXor(data[3].u64, invocation);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupShuffle(data[0].f16.x, invocation);
|
||||||
|
data[invocation].f16.xy = subgroupShuffle(data[1].f16.xy, invocation);
|
||||||
|
data[invocation].f16.xyz = subgroupShuffle(data[2].f16.xyz, invocation);
|
||||||
|
data[invocation].f16 = subgroupShuffle(data[3].f16, invocation);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupShuffleXor(data[0].f16.x, invocation);
|
||||||
|
data[invocation].f16.xy = subgroupShuffleXor(data[1].f16.xy, invocation);
|
||||||
|
data[invocation].f16.xyz = subgroupShuffleXor(data[2].f16.xyz, invocation);
|
||||||
|
data[invocation].f16 = subgroupShuffleXor(data[3].f16, invocation);
|
||||||
|
}
|
95
Test/spv.subgroupExtendedTypesShuffleNeg.comp
Normal file
95
Test/spv.subgroupExtendedTypesShuffleNeg.comp
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
#extension GL_KHR_shader_subgroup_shuffle: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable
|
||||||
|
|
||||||
|
layout (local_size_x = 8) in;
|
||||||
|
|
||||||
|
layout(binding = 0) buffer Buffers
|
||||||
|
{
|
||||||
|
i8vec4 i8;
|
||||||
|
u8vec4 u8;
|
||||||
|
i16vec4 i16;
|
||||||
|
u16vec4 u16;
|
||||||
|
i64vec4 i64;
|
||||||
|
u64vec4 u64;
|
||||||
|
f16vec4 f16;
|
||||||
|
} data[4];
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupShuffle(data[0].i8.x, invocation);
|
||||||
|
data[invocation].i8.xy = subgroupShuffle(data[1].i8.xy, invocation);
|
||||||
|
data[invocation].i8.xyz = subgroupShuffle(data[2].i8.xyz, invocation);
|
||||||
|
data[invocation].i8 = subgroupShuffle(data[3].i8, invocation);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupShuffleXor(data[0].i8.x, invocation);
|
||||||
|
data[invocation].i8.xy = subgroupShuffleXor(data[1].i8.xy, invocation);
|
||||||
|
data[invocation].i8.xyz = subgroupShuffleXor(data[2].i8.xyz, invocation);
|
||||||
|
data[invocation].i8 = subgroupShuffleXor(data[3].i8, invocation);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupShuffle(data[0].u8.x, invocation);
|
||||||
|
data[invocation].u8.xy = subgroupShuffle(data[1].u8.xy, invocation);
|
||||||
|
data[invocation].u8.xyz = subgroupShuffle(data[2].u8.xyz, invocation);
|
||||||
|
data[invocation].u8 = subgroupShuffle(data[3].u8, invocation);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupShuffleXor(data[0].u8.x, invocation);
|
||||||
|
data[invocation].u8.xy = subgroupShuffleXor(data[1].u8.xy, invocation);
|
||||||
|
data[invocation].u8.xyz = subgroupShuffleXor(data[2].u8.xyz, invocation);
|
||||||
|
data[invocation].u8 = subgroupShuffleXor(data[3].u8, invocation);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupShuffle(data[0].i16.x, invocation);
|
||||||
|
data[invocation].i16.xy = subgroupShuffle(data[1].i16.xy, invocation);
|
||||||
|
data[invocation].i16.xyz = subgroupShuffle(data[2].i16.xyz, invocation);
|
||||||
|
data[invocation].i16 = subgroupShuffle(data[3].i16, invocation);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupShuffleXor(data[0].i16.x, invocation);
|
||||||
|
data[invocation].i16.xy = subgroupShuffleXor(data[1].i16.xy, invocation);
|
||||||
|
data[invocation].i16.xyz = subgroupShuffleXor(data[2].i16.xyz, invocation);
|
||||||
|
data[invocation].i16 = subgroupShuffleXor(data[3].i16, invocation);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupShuffle(data[0].u16.x, invocation);
|
||||||
|
data[invocation].u16.xy = subgroupShuffle(data[1].u16.xy, invocation);
|
||||||
|
data[invocation].u16.xyz = subgroupShuffle(data[2].u16.xyz, invocation);
|
||||||
|
data[invocation].u16 = subgroupShuffle(data[3].u16, invocation);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupShuffleXor(data[0].u16.x, invocation);
|
||||||
|
data[invocation].u16.xy = subgroupShuffleXor(data[1].u16.xy, invocation);
|
||||||
|
data[invocation].u16.xyz = subgroupShuffleXor(data[2].u16.xyz, invocation);
|
||||||
|
data[invocation].u16 = subgroupShuffleXor(data[3].u16, invocation);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupShuffle(data[0].i64.x, invocation);
|
||||||
|
data[invocation].i64.xy = subgroupShuffle(data[1].i64.xy, invocation);
|
||||||
|
data[invocation].i64.xyz = subgroupShuffle(data[2].i64.xyz, invocation);
|
||||||
|
data[invocation].i64 = subgroupShuffle(data[3].i64, invocation);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupShuffleXor(data[0].i64.x, invocation);
|
||||||
|
data[invocation].i64.xy = subgroupShuffleXor(data[1].i64.xy, invocation);
|
||||||
|
data[invocation].i64.xyz = subgroupShuffleXor(data[2].i64.xyz, invocation);
|
||||||
|
data[invocation].i64 = subgroupShuffleXor(data[3].i64, invocation);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupShuffle(data[0].u64.x, invocation);
|
||||||
|
data[invocation].u64.xy = subgroupShuffle(data[1].u64.xy, invocation);
|
||||||
|
data[invocation].u64.xyz = subgroupShuffle(data[2].u64.xyz, invocation);
|
||||||
|
data[invocation].u64 = subgroupShuffle(data[3].u64, invocation);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupShuffleXor(data[0].u64.x, invocation);
|
||||||
|
data[invocation].u64.xy = subgroupShuffleXor(data[1].u64.xy, invocation);
|
||||||
|
data[invocation].u64.xyz = subgroupShuffleXor(data[2].u64.xyz, invocation);
|
||||||
|
data[invocation].u64 = subgroupShuffleXor(data[3].u64, invocation);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupShuffle(data[0].f16.x, invocation);
|
||||||
|
data[invocation].f16.xy = subgroupShuffle(data[1].f16.xy, invocation);
|
||||||
|
data[invocation].f16.xyz = subgroupShuffle(data[2].f16.xyz, invocation);
|
||||||
|
data[invocation].f16 = subgroupShuffle(data[3].f16, invocation);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupShuffleXor(data[0].f16.x, invocation);
|
||||||
|
data[invocation].f16.xy = subgroupShuffleXor(data[1].f16.xy, invocation);
|
||||||
|
data[invocation].f16.xyz = subgroupShuffleXor(data[2].f16.xyz, invocation);
|
||||||
|
data[invocation].f16 = subgroupShuffleXor(data[3].f16, invocation);
|
||||||
|
}
|
95
Test/spv.subgroupExtendedTypesShuffleRelative.comp
Normal file
95
Test/spv.subgroupExtendedTypesShuffleRelative.comp
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int8: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int16: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int64: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_float16: enable
|
||||||
|
|
||||||
|
layout (local_size_x = 8) in;
|
||||||
|
|
||||||
|
layout(binding = 0) buffer Buffers
|
||||||
|
{
|
||||||
|
i8vec4 i8;
|
||||||
|
u8vec4 u8;
|
||||||
|
i16vec4 i16;
|
||||||
|
u16vec4 u16;
|
||||||
|
i64vec4 i64;
|
||||||
|
u64vec4 u64;
|
||||||
|
f16vec4 f16;
|
||||||
|
} data[4];
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupShuffleUp(data[0].i8.x, invocation);
|
||||||
|
data[invocation].i8.xy = subgroupShuffleUp(data[1].i8.xy, invocation);
|
||||||
|
data[invocation].i8.xyz = subgroupShuffleUp(data[2].i8.xyz, invocation);
|
||||||
|
data[invocation].i8 = subgroupShuffleUp(data[3].i8, invocation);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupShuffleDown(data[0].i8.x, invocation);
|
||||||
|
data[invocation].i8.xy = subgroupShuffleDown(data[1].i8.xy, invocation);
|
||||||
|
data[invocation].i8.xyz = subgroupShuffleDown(data[2].i8.xyz, invocation);
|
||||||
|
data[invocation].i8 = subgroupShuffleDown(data[3].i8, invocation);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupShuffleUp(data[0].u8.x, invocation);
|
||||||
|
data[invocation].u8.xy = subgroupShuffleUp(data[1].u8.xy, invocation);
|
||||||
|
data[invocation].u8.xyz = subgroupShuffleUp(data[2].u8.xyz, invocation);
|
||||||
|
data[invocation].u8 = subgroupShuffleUp(data[3].u8, invocation);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupShuffleDown(data[0].u8.x, invocation);
|
||||||
|
data[invocation].u8.xy = subgroupShuffleDown(data[1].u8.xy, invocation);
|
||||||
|
data[invocation].u8.xyz = subgroupShuffleDown(data[2].u8.xyz, invocation);
|
||||||
|
data[invocation].u8 = subgroupShuffleDown(data[3].u8, invocation);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupShuffleUp(data[0].i16.x, invocation);
|
||||||
|
data[invocation].i16.xy = subgroupShuffleUp(data[1].i16.xy, invocation);
|
||||||
|
data[invocation].i16.xyz = subgroupShuffleUp(data[2].i16.xyz, invocation);
|
||||||
|
data[invocation].i16 = subgroupShuffleUp(data[3].i16, invocation);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupShuffleDown(data[0].i16.x, invocation);
|
||||||
|
data[invocation].i16.xy = subgroupShuffleDown(data[1].i16.xy, invocation);
|
||||||
|
data[invocation].i16.xyz = subgroupShuffleDown(data[2].i16.xyz, invocation);
|
||||||
|
data[invocation].i16 = subgroupShuffleDown(data[3].i16, invocation);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupShuffleUp(data[0].u16.x, invocation);
|
||||||
|
data[invocation].u16.xy = subgroupShuffleUp(data[1].u16.xy, invocation);
|
||||||
|
data[invocation].u16.xyz = subgroupShuffleUp(data[2].u16.xyz, invocation);
|
||||||
|
data[invocation].u16 = subgroupShuffleUp(data[3].u16, invocation);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupShuffleDown(data[0].u16.x, invocation);
|
||||||
|
data[invocation].u16.xy = subgroupShuffleDown(data[1].u16.xy, invocation);
|
||||||
|
data[invocation].u16.xyz = subgroupShuffleDown(data[2].u16.xyz, invocation);
|
||||||
|
data[invocation].u16 = subgroupShuffleDown(data[3].u16, invocation);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupShuffleUp(data[0].i64.x, invocation);
|
||||||
|
data[invocation].i64.xy = subgroupShuffleUp(data[1].i64.xy, invocation);
|
||||||
|
data[invocation].i64.xyz = subgroupShuffleUp(data[2].i64.xyz, invocation);
|
||||||
|
data[invocation].i64 = subgroupShuffleUp(data[3].i64, invocation);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupShuffleDown(data[0].i64.x, invocation);
|
||||||
|
data[invocation].i64.xy = subgroupShuffleDown(data[1].i64.xy, invocation);
|
||||||
|
data[invocation].i64.xyz = subgroupShuffleDown(data[2].i64.xyz, invocation);
|
||||||
|
data[invocation].i64 = subgroupShuffleDown(data[3].i64, invocation);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupShuffleUp(data[0].u64.x, invocation);
|
||||||
|
data[invocation].u64.xy = subgroupShuffleUp(data[1].u64.xy, invocation);
|
||||||
|
data[invocation].u64.xyz = subgroupShuffleUp(data[2].u64.xyz, invocation);
|
||||||
|
data[invocation].u64 = subgroupShuffleUp(data[3].u64, invocation);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupShuffleDown(data[0].u64.x, invocation);
|
||||||
|
data[invocation].u64.xy = subgroupShuffleDown(data[1].u64.xy, invocation);
|
||||||
|
data[invocation].u64.xyz = subgroupShuffleDown(data[2].u64.xyz, invocation);
|
||||||
|
data[invocation].u64 = subgroupShuffleDown(data[3].u64, invocation);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupShuffleUp(data[0].f16.x, invocation);
|
||||||
|
data[invocation].f16.xy = subgroupShuffleUp(data[1].f16.xy, invocation);
|
||||||
|
data[invocation].f16.xyz = subgroupShuffleUp(data[2].f16.xyz, invocation);
|
||||||
|
data[invocation].f16 = subgroupShuffleUp(data[3].f16, invocation);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupShuffleDown(data[0].f16.x, invocation);
|
||||||
|
data[invocation].f16.xy = subgroupShuffleDown(data[1].f16.xy, invocation);
|
||||||
|
data[invocation].f16.xyz = subgroupShuffleDown(data[2].f16.xyz, invocation);
|
||||||
|
data[invocation].f16 = subgroupShuffleDown(data[3].f16, invocation);
|
||||||
|
}
|
95
Test/spv.subgroupExtendedTypesShuffleRelativeNeg.comp
Normal file
95
Test/spv.subgroupExtendedTypesShuffleRelativeNeg.comp
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable
|
||||||
|
|
||||||
|
layout (local_size_x = 8) in;
|
||||||
|
|
||||||
|
layout(binding = 0) buffer Buffers
|
||||||
|
{
|
||||||
|
i8vec4 i8;
|
||||||
|
u8vec4 u8;
|
||||||
|
i16vec4 i16;
|
||||||
|
u16vec4 u16;
|
||||||
|
i64vec4 i64;
|
||||||
|
u64vec4 u64;
|
||||||
|
f16vec4 f16;
|
||||||
|
} data[4];
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupShuffleUp(data[0].i8.x, invocation);
|
||||||
|
data[invocation].i8.xy = subgroupShuffleUp(data[1].i8.xy, invocation);
|
||||||
|
data[invocation].i8.xyz = subgroupShuffleUp(data[2].i8.xyz, invocation);
|
||||||
|
data[invocation].i8 = subgroupShuffleUp(data[3].i8, invocation);
|
||||||
|
|
||||||
|
data[invocation].i8.x = subgroupShuffleDown(data[0].i8.x, invocation);
|
||||||
|
data[invocation].i8.xy = subgroupShuffleDown(data[1].i8.xy, invocation);
|
||||||
|
data[invocation].i8.xyz = subgroupShuffleDown(data[2].i8.xyz, invocation);
|
||||||
|
data[invocation].i8 = subgroupShuffleDown(data[3].i8, invocation);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupShuffleUp(data[0].u8.x, invocation);
|
||||||
|
data[invocation].u8.xy = subgroupShuffleUp(data[1].u8.xy, invocation);
|
||||||
|
data[invocation].u8.xyz = subgroupShuffleUp(data[2].u8.xyz, invocation);
|
||||||
|
data[invocation].u8 = subgroupShuffleUp(data[3].u8, invocation);
|
||||||
|
|
||||||
|
data[invocation].u8.x = subgroupShuffleDown(data[0].u8.x, invocation);
|
||||||
|
data[invocation].u8.xy = subgroupShuffleDown(data[1].u8.xy, invocation);
|
||||||
|
data[invocation].u8.xyz = subgroupShuffleDown(data[2].u8.xyz, invocation);
|
||||||
|
data[invocation].u8 = subgroupShuffleDown(data[3].u8, invocation);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupShuffleUp(data[0].i16.x, invocation);
|
||||||
|
data[invocation].i16.xy = subgroupShuffleUp(data[1].i16.xy, invocation);
|
||||||
|
data[invocation].i16.xyz = subgroupShuffleUp(data[2].i16.xyz, invocation);
|
||||||
|
data[invocation].i16 = subgroupShuffleUp(data[3].i16, invocation);
|
||||||
|
|
||||||
|
data[invocation].i16.x = subgroupShuffleDown(data[0].i16.x, invocation);
|
||||||
|
data[invocation].i16.xy = subgroupShuffleDown(data[1].i16.xy, invocation);
|
||||||
|
data[invocation].i16.xyz = subgroupShuffleDown(data[2].i16.xyz, invocation);
|
||||||
|
data[invocation].i16 = subgroupShuffleDown(data[3].i16, invocation);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupShuffleUp(data[0].u16.x, invocation);
|
||||||
|
data[invocation].u16.xy = subgroupShuffleUp(data[1].u16.xy, invocation);
|
||||||
|
data[invocation].u16.xyz = subgroupShuffleUp(data[2].u16.xyz, invocation);
|
||||||
|
data[invocation].u16 = subgroupShuffleUp(data[3].u16, invocation);
|
||||||
|
|
||||||
|
data[invocation].u16.x = subgroupShuffleDown(data[0].u16.x, invocation);
|
||||||
|
data[invocation].u16.xy = subgroupShuffleDown(data[1].u16.xy, invocation);
|
||||||
|
data[invocation].u16.xyz = subgroupShuffleDown(data[2].u16.xyz, invocation);
|
||||||
|
data[invocation].u16 = subgroupShuffleDown(data[3].u16, invocation);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupShuffleUp(data[0].i64.x, invocation);
|
||||||
|
data[invocation].i64.xy = subgroupShuffleUp(data[1].i64.xy, invocation);
|
||||||
|
data[invocation].i64.xyz = subgroupShuffleUp(data[2].i64.xyz, invocation);
|
||||||
|
data[invocation].i64 = subgroupShuffleUp(data[3].i64, invocation);
|
||||||
|
|
||||||
|
data[invocation].i64.x = subgroupShuffleDown(data[0].i64.x, invocation);
|
||||||
|
data[invocation].i64.xy = subgroupShuffleDown(data[1].i64.xy, invocation);
|
||||||
|
data[invocation].i64.xyz = subgroupShuffleDown(data[2].i64.xyz, invocation);
|
||||||
|
data[invocation].i64 = subgroupShuffleDown(data[3].i64, invocation);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupShuffleUp(data[0].u64.x, invocation);
|
||||||
|
data[invocation].u64.xy = subgroupShuffleUp(data[1].u64.xy, invocation);
|
||||||
|
data[invocation].u64.xyz = subgroupShuffleUp(data[2].u64.xyz, invocation);
|
||||||
|
data[invocation].u64 = subgroupShuffleUp(data[3].u64, invocation);
|
||||||
|
|
||||||
|
data[invocation].u64.x = subgroupShuffleDown(data[0].u64.x, invocation);
|
||||||
|
data[invocation].u64.xy = subgroupShuffleDown(data[1].u64.xy, invocation);
|
||||||
|
data[invocation].u64.xyz = subgroupShuffleDown(data[2].u64.xyz, invocation);
|
||||||
|
data[invocation].u64 = subgroupShuffleDown(data[3].u64, invocation);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupShuffleUp(data[0].f16.x, invocation);
|
||||||
|
data[invocation].f16.xy = subgroupShuffleUp(data[1].f16.xy, invocation);
|
||||||
|
data[invocation].f16.xyz = subgroupShuffleUp(data[2].f16.xyz, invocation);
|
||||||
|
data[invocation].f16 = subgroupShuffleUp(data[3].f16, invocation);
|
||||||
|
|
||||||
|
data[invocation].f16.x = subgroupShuffleDown(data[0].f16.x, invocation);
|
||||||
|
data[invocation].f16.xy = subgroupShuffleDown(data[1].f16.xy, invocation);
|
||||||
|
data[invocation].f16.xyz = subgroupShuffleDown(data[2].f16.xyz, invocation);
|
||||||
|
data[invocation].f16 = subgroupShuffleDown(data[3].f16, invocation);
|
||||||
|
}
|
66
Test/spv.subgroupExtendedTypesVote.comp
Normal file
66
Test/spv.subgroupExtendedTypesVote.comp
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
#extension GL_KHR_shader_subgroup_vote: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int8: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int16: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_int64: enable
|
||||||
|
#extension GL_EXT_shader_subgroup_extended_types_float16: enable
|
||||||
|
|
||||||
|
layout (local_size_x = 8) in;
|
||||||
|
|
||||||
|
layout(binding = 0) buffer Buffers
|
||||||
|
{
|
||||||
|
i8vec4 i8;
|
||||||
|
u8vec4 u8;
|
||||||
|
i16vec4 i16;
|
||||||
|
u16vec4 u16;
|
||||||
|
i64vec4 i64;
|
||||||
|
u64vec4 u64;
|
||||||
|
f16vec4 f16;
|
||||||
|
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].i8.x));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[1].i8.xy));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[2].i8.xyz));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[3].i8));
|
||||||
|
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[0].u8.x));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[1].u8.xy));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[2].u8.xyz));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[3].u8));
|
||||||
|
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[0].i16.x));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[1].i16.xy));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[2].i16.xyz));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[3].i16));
|
||||||
|
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[0].u16.x));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[1].u16.xy));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[2].u16.xyz));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[3].u16));
|
||||||
|
}
|
||||||
|
else if (subgroupAny(data[invocation].r < 0))
|
||||||
|
{
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[0].i64.x));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[1].i64.xy));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[2].i64.xyz));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[3].i64));
|
||||||
|
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[0].u64.x));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[1].u64.xy));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[2].u64.xyz));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[3].u64));
|
||||||
|
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[0].f16.x));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[1].f16.xy));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[2].f16.xyz));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[3].f16));
|
||||||
|
}
|
||||||
|
}
|
66
Test/spv.subgroupExtendedTypesVoteNeg.comp
Normal file
66
Test/spv.subgroupExtendedTypesVoteNeg.comp
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
#extension GL_KHR_shader_subgroup_vote: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable
|
||||||
|
|
||||||
|
layout (local_size_x = 8) in;
|
||||||
|
|
||||||
|
layout(binding = 0) buffer Buffers
|
||||||
|
{
|
||||||
|
i8vec4 i8;
|
||||||
|
u8vec4 u8;
|
||||||
|
i16vec4 i16;
|
||||||
|
u16vec4 u16;
|
||||||
|
i64vec4 i64;
|
||||||
|
u64vec4 u64;
|
||||||
|
f16vec4 f16;
|
||||||
|
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].i8.x));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[1].i8.xy));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[2].i8.xyz));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[3].i8));
|
||||||
|
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[0].u8.x));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[1].u8.xy));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[2].u8.xyz));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[3].u8));
|
||||||
|
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[0].i16.x));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[1].i16.xy));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[2].i16.xyz));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[3].i16));
|
||||||
|
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[0].u16.x));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[1].u16.xy));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[2].u16.xyz));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[3].u16));
|
||||||
|
}
|
||||||
|
else if (subgroupAny(data[invocation].r < 0))
|
||||||
|
{
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[0].i64.x));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[1].i64.xy));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[2].i64.xyz));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[3].i64));
|
||||||
|
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[0].u64.x));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[1].u64.xy));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[2].u64.xyz));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[3].u64));
|
||||||
|
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[0].f16.x));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[1].f16.xy));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[2].f16.xyz));
|
||||||
|
data[invocation].r = int(subgroupAllEqual(data[3].f16));
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
@ -2202,6 +2202,30 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan
|
|||||||
// these require SPIR-V 1.3
|
// these require SPIR-V 1.3
|
||||||
if (spvVersion.spv > 0 && spvVersion.spv < EShTargetSpv_1_3)
|
if (spvVersion.spv > 0 && spvVersion.spv < EShTargetSpv_1_3)
|
||||||
error(loc, "requires SPIR-V 1.3", "subgroup op", "");
|
error(loc, "requires SPIR-V 1.3", "subgroup op", "");
|
||||||
|
|
||||||
|
// Check that if extended types are being used that the correct extensions are enabled.
|
||||||
|
if (arg0 != nullptr) {
|
||||||
|
const TType& type = arg0->getType();
|
||||||
|
switch (type.getBasicType()) {
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
case EbtInt8:
|
||||||
|
case EbtUint8:
|
||||||
|
requireExtensions(loc, 1, &E_GL_EXT_shader_subgroup_extended_types_int8, type.getCompleteString().c_str());
|
||||||
|
break;
|
||||||
|
case EbtInt16:
|
||||||
|
case EbtUint16:
|
||||||
|
requireExtensions(loc, 1, &E_GL_EXT_shader_subgroup_extended_types_int16, type.getCompleteString().c_str());
|
||||||
|
break;
|
||||||
|
case EbtInt64:
|
||||||
|
case EbtUint64:
|
||||||
|
requireExtensions(loc, 1, &E_GL_EXT_shader_subgroup_extended_types_int64, type.getCompleteString().c_str());
|
||||||
|
break;
|
||||||
|
case EbtFloat16:
|
||||||
|
requireExtensions(loc, 1, &E_GL_EXT_shader_subgroup_extended_types_float16, type.getCompleteString().c_str());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -300,6 +300,12 @@ void TParseVersions::initializeExtensionBehavior()
|
|||||||
extensionBehavior[E_GL_EXT_shader_explicit_arithmetic_types_float16] = EBhDisable;
|
extensionBehavior[E_GL_EXT_shader_explicit_arithmetic_types_float16] = EBhDisable;
|
||||||
extensionBehavior[E_GL_EXT_shader_explicit_arithmetic_types_float32] = EBhDisable;
|
extensionBehavior[E_GL_EXT_shader_explicit_arithmetic_types_float32] = EBhDisable;
|
||||||
extensionBehavior[E_GL_EXT_shader_explicit_arithmetic_types_float64] = EBhDisable;
|
extensionBehavior[E_GL_EXT_shader_explicit_arithmetic_types_float64] = EBhDisable;
|
||||||
|
|
||||||
|
// subgroup extended types
|
||||||
|
extensionBehavior[E_GL_EXT_shader_subgroup_extended_types_int8] = EBhDisable;
|
||||||
|
extensionBehavior[E_GL_EXT_shader_subgroup_extended_types_int16] = EBhDisable;
|
||||||
|
extensionBehavior[E_GL_EXT_shader_subgroup_extended_types_int64] = EBhDisable;
|
||||||
|
extensionBehavior[E_GL_EXT_shader_subgroup_extended_types_float16] = EBhDisable;
|
||||||
}
|
}
|
||||||
#endif // GLSLANG_WEB
|
#endif // GLSLANG_WEB
|
||||||
|
|
||||||
@ -447,6 +453,11 @@ void TParseVersions::getPreamble(std::string& preamble)
|
|||||||
"#define GL_EXT_shader_explicit_arithmetic_types_float16 1\n"
|
"#define GL_EXT_shader_explicit_arithmetic_types_float16 1\n"
|
||||||
"#define GL_EXT_shader_explicit_arithmetic_types_float32 1\n"
|
"#define GL_EXT_shader_explicit_arithmetic_types_float32 1\n"
|
||||||
"#define GL_EXT_shader_explicit_arithmetic_types_float64 1\n"
|
"#define GL_EXT_shader_explicit_arithmetic_types_float64 1\n"
|
||||||
|
|
||||||
|
"#define GL_EXT_shader_subgroup_extended_types_int8 1\n"
|
||||||
|
"#define GL_EXT_shader_subgroup_extended_types_int16 1\n"
|
||||||
|
"#define GL_EXT_shader_subgroup_extended_types_int64 1\n"
|
||||||
|
"#define GL_EXT_shader_subgroup_extended_types_float16 1\n"
|
||||||
;
|
;
|
||||||
|
|
||||||
if (version >= 150) {
|
if (version >= 150) {
|
||||||
@ -826,6 +837,15 @@ void TParseVersions::updateExtensionBehavior(int line, const char* extension, co
|
|||||||
updateExtensionBehavior(line, "GL_EXT_buffer_reference", behaviorString);
|
updateExtensionBehavior(line, "GL_EXT_buffer_reference", behaviorString);
|
||||||
else if (strcmp(extension, "GL_NV_integer_cooperative_matrix") == 0)
|
else if (strcmp(extension, "GL_NV_integer_cooperative_matrix") == 0)
|
||||||
updateExtensionBehavior(line, "GL_NV_cooperative_matrix", behaviorString);
|
updateExtensionBehavior(line, "GL_NV_cooperative_matrix", behaviorString);
|
||||||
|
// subgroup extended types to explicit types
|
||||||
|
else if (strcmp(extension, "GL_EXT_shader_subgroup_extended_types_int8") == 0)
|
||||||
|
updateExtensionBehavior(line, "GL_EXT_shader_explicit_arithmetic_types_int8", behaviorString);
|
||||||
|
else if (strcmp(extension, "GL_EXT_shader_subgroup_extended_types_int16") == 0)
|
||||||
|
updateExtensionBehavior(line, "GL_EXT_shader_explicit_arithmetic_types_int16", behaviorString);
|
||||||
|
else if (strcmp(extension, "GL_EXT_shader_subgroup_extended_types_int64") == 0)
|
||||||
|
updateExtensionBehavior(line, "GL_EXT_shader_explicit_arithmetic_types_int64", behaviorString);
|
||||||
|
else if (strcmp(extension, "GL_EXT_shader_subgroup_extended_types_float16") == 0)
|
||||||
|
updateExtensionBehavior(line, "GL_EXT_shader_explicit_arithmetic_types_float16", behaviorString);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TParseVersions::updateExtensionBehavior(const char* extension, TExtensionBehavior behavior)
|
void TParseVersions::updateExtensionBehavior(const char* extension, TExtensionBehavior behavior)
|
||||||
|
@ -257,7 +257,7 @@ const char* const E_GL_OES_tessellation_point_size = "GL_OES_tessel
|
|||||||
const char* const E_GL_OES_texture_buffer = "GL_OES_texture_buffer";
|
const char* const E_GL_OES_texture_buffer = "GL_OES_texture_buffer";
|
||||||
const char* const E_GL_OES_texture_cube_map_array = "GL_OES_texture_cube_map_array";
|
const char* const E_GL_OES_texture_cube_map_array = "GL_OES_texture_cube_map_array";
|
||||||
|
|
||||||
// KHX
|
// EXT
|
||||||
const char* const E_GL_EXT_shader_explicit_arithmetic_types = "GL_EXT_shader_explicit_arithmetic_types";
|
const char* const E_GL_EXT_shader_explicit_arithmetic_types = "GL_EXT_shader_explicit_arithmetic_types";
|
||||||
const char* const E_GL_EXT_shader_explicit_arithmetic_types_int8 = "GL_EXT_shader_explicit_arithmetic_types_int8";
|
const char* const E_GL_EXT_shader_explicit_arithmetic_types_int8 = "GL_EXT_shader_explicit_arithmetic_types_int8";
|
||||||
const char* const E_GL_EXT_shader_explicit_arithmetic_types_int16 = "GL_EXT_shader_explicit_arithmetic_types_int16";
|
const char* const E_GL_EXT_shader_explicit_arithmetic_types_int16 = "GL_EXT_shader_explicit_arithmetic_types_int16";
|
||||||
@ -267,6 +267,11 @@ const char* const E_GL_EXT_shader_explicit_arithmetic_types_float16 = "GL_EXT_s
|
|||||||
const char* const E_GL_EXT_shader_explicit_arithmetic_types_float32 = "GL_EXT_shader_explicit_arithmetic_types_float32";
|
const char* const E_GL_EXT_shader_explicit_arithmetic_types_float32 = "GL_EXT_shader_explicit_arithmetic_types_float32";
|
||||||
const char* const E_GL_EXT_shader_explicit_arithmetic_types_float64 = "GL_EXT_shader_explicit_arithmetic_types_float64";
|
const char* const E_GL_EXT_shader_explicit_arithmetic_types_float64 = "GL_EXT_shader_explicit_arithmetic_types_float64";
|
||||||
|
|
||||||
|
const char* const E_GL_EXT_shader_subgroup_extended_types_int8 = "GL_EXT_shader_subgroup_extended_types_int8";
|
||||||
|
const char* const E_GL_EXT_shader_subgroup_extended_types_int16 = "GL_EXT_shader_subgroup_extended_types_int16";
|
||||||
|
const char* const E_GL_EXT_shader_subgroup_extended_types_int64 = "GL_EXT_shader_subgroup_extended_types_int64";
|
||||||
|
const char* const E_GL_EXT_shader_subgroup_extended_types_float16 = "GL_EXT_shader_subgroup_extended_types_float16";
|
||||||
|
|
||||||
// Arrays of extensions for the above AEP duplications
|
// Arrays of extensions for the above AEP duplications
|
||||||
|
|
||||||
const char* const AEP_geometry_shader[] = { E_GL_EXT_geometry_shader, E_GL_OES_geometry_shader };
|
const char* const AEP_geometry_shader[] = { E_GL_EXT_geometry_shader, E_GL_OES_geometry_shader };
|
||||||
|
@ -459,6 +459,22 @@ INSTANTIATE_TEST_CASE_P(
|
|||||||
"spv.subgroupShuffleRelative.comp",
|
"spv.subgroupShuffleRelative.comp",
|
||||||
"spv.subgroupQuad.comp",
|
"spv.subgroupQuad.comp",
|
||||||
"spv.subgroupVote.comp",
|
"spv.subgroupVote.comp",
|
||||||
|
"spv.subgroupExtendedTypesArithmetic.comp",
|
||||||
|
"spv.subgroupExtendedTypesArithmeticNeg.comp",
|
||||||
|
"spv.subgroupExtendedTypesBallot.comp",
|
||||||
|
"spv.subgroupExtendedTypesBallotNeg.comp",
|
||||||
|
"spv.subgroupExtendedTypesClustered.comp",
|
||||||
|
"spv.subgroupExtendedTypesClusteredNeg.comp",
|
||||||
|
"spv.subgroupExtendedTypesPartitioned.comp",
|
||||||
|
"spv.subgroupExtendedTypesPartitionedNeg.comp",
|
||||||
|
"spv.subgroupExtendedTypesShuffle.comp",
|
||||||
|
"spv.subgroupExtendedTypesShuffleNeg.comp",
|
||||||
|
"spv.subgroupExtendedTypesShuffleRelative.comp",
|
||||||
|
"spv.subgroupExtendedTypesShuffleRelativeNeg.comp",
|
||||||
|
"spv.subgroupExtendedTypesQuad.comp",
|
||||||
|
"spv.subgroupExtendedTypesQuadNeg.comp",
|
||||||
|
"spv.subgroupExtendedTypesVote.comp",
|
||||||
|
"spv.subgroupExtendedTypesVoteNeg.comp",
|
||||||
"spv.vulkan110.storageBuffer.vert",
|
"spv.vulkan110.storageBuffer.vert",
|
||||||
})),
|
})),
|
||||||
FileNameAsCustomTestSuffix
|
FileNameAsCustomTestSuffix
|
||||||
|
Loading…
x
Reference in New Issue
Block a user