Merge branch 'master' into BugPoint

This commit is contained in:
Greg Fischer 2021-07-29 14:48:24 -06:00 committed by GitHub
commit 9ff6cd0bd6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
72 changed files with 34633 additions and 28297 deletions

View File

@ -179,6 +179,7 @@ protected:
spv::Id accessChainLoad(const glslang::TType& type); spv::Id accessChainLoad(const glslang::TType& type);
void accessChainStore(const glslang::TType& type, spv::Id rvalue); void accessChainStore(const glslang::TType& type, spv::Id rvalue);
void multiTypeStore(const glslang::TType&, spv::Id rValue); void multiTypeStore(const glslang::TType&, spv::Id rValue);
spv::Id convertLoadedBoolInUniformToUint(const glslang::TType& type, spv::Id nominalTypeId, spv::Id loadedId);
glslang::TLayoutPacking getExplicitLayout(const glslang::TType& type) const; glslang::TLayoutPacking getExplicitLayout(const glslang::TType& type) const;
int getArrayStride(const glslang::TType& arrayType, glslang::TLayoutPacking, glslang::TLayoutMatrix); int getArrayStride(const glslang::TType& arrayType, glslang::TLayoutPacking, glslang::TLayoutMatrix);
int getMatrixStride(const glslang::TType& matrixType, glslang::TLayoutPacking, glslang::TLayoutMatrix); int getMatrixStride(const glslang::TType& matrixType, glslang::TLayoutPacking, glslang::TLayoutMatrix);
@ -2231,6 +2232,49 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T
} }
} }
spv::Id TGlslangToSpvTraverser::convertLoadedBoolInUniformToUint(const glslang::TType& type,
spv::Id nominalTypeId,
spv::Id loadedId)
{
if (builder.isScalarType(nominalTypeId)) {
// Conversion for bool
spv::Id boolType = builder.makeBoolType();
if (nominalTypeId != boolType)
return builder.createBinOp(spv::OpINotEqual, boolType, loadedId, builder.makeUintConstant(0));
} else if (builder.isVectorType(nominalTypeId)) {
// Conversion for bvec
int vecSize = builder.getNumTypeComponents(nominalTypeId);
spv::Id bvecType = builder.makeVectorType(builder.makeBoolType(), vecSize);
if (nominalTypeId != bvecType)
loadedId = builder.createBinOp(spv::OpINotEqual, bvecType, loadedId,
makeSmearedConstant(builder.makeUintConstant(0), vecSize));
} else if (builder.isArrayType(nominalTypeId)) {
// Conversion for bool array
spv::Id boolArrayTypeId = convertGlslangToSpvType(type);
if (nominalTypeId != boolArrayTypeId)
{
// Use OpCopyLogical from SPIR-V 1.4 if available.
if (glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_4)
return builder.createUnaryOp(spv::OpCopyLogical, boolArrayTypeId, loadedId);
glslang::TType glslangElementType(type, 0);
spv::Id elementNominalTypeId = builder.getContainedTypeId(nominalTypeId);
std::vector<spv::Id> constituents;
for (int index = 0; index < type.getOuterArraySize(); ++index) {
// get the element
spv::Id elementValue = builder.createCompositeExtract(loadedId, elementNominalTypeId, index);
// recursively convert it
spv::Id elementConvertedValue = convertLoadedBoolInUniformToUint(glslangElementType, elementNominalTypeId, elementValue);
constituents.push_back(elementConvertedValue);
}
return builder.createCompositeConstruct(boolArrayTypeId, constituents);
}
}
return loadedId;
}
// Figure out what, if any, type changes are needed when accessing a specific built-in. // Figure out what, if any, type changes are needed when accessing a specific built-in.
// Returns <the type SPIR-V requires for declarion, the type to translate to on use>. // Returns <the type SPIR-V requires for declarion, the type to translate to on use>.
// Also see comment for 'forceType', regarding tracking SPIR-V-required types. // Also see comment for 'forceType', regarding tracking SPIR-V-required types.
@ -4356,7 +4400,6 @@ void TGlslangToSpvTraverser::decorateStructType(const glslang::TType& type,
{ {
// Name and decorate the non-hidden members // Name and decorate the non-hidden members
int offset = -1; int offset = -1;
int locationOffset = 0; // for use within the members of this struct
bool memberLocationInvalid = type.isArrayOfArrays() || bool memberLocationInvalid = type.isArrayOfArrays() ||
(type.isArray() && (type.getQualifier().isArrayedIo(glslangIntermediate->getStage()) == false)); (type.isArray() && (type.getQualifier().isArrayedIo(glslangIntermediate->getStage()) == false));
for (int i = 0; i < (int)glslangMembers->size(); i++) { for (int i = 0; i < (int)glslangMembers->size(); i++) {
@ -4414,10 +4457,6 @@ void TGlslangToSpvTraverser::decorateStructType(const glslang::TType& type,
if (!memberLocationInvalid && memberQualifier.hasLocation()) if (!memberLocationInvalid && memberQualifier.hasLocation())
builder.addMemberDecoration(spvType, member, spv::DecorationLocation, memberQualifier.layoutLocation); builder.addMemberDecoration(spvType, member, spv::DecorationLocation, memberQualifier.layoutLocation);
if (qualifier.hasLocation()) // track for upcoming inheritance
locationOffset += glslangIntermediate->computeTypeLocationSize(
glslangMember, glslangIntermediate->getStage());
// component, XFB, others // component, XFB, others
if (glslangMember.getQualifier().hasComponent()) if (glslangMember.getQualifier().hasComponent())
builder.addMemberDecoration(spvType, member, spv::DecorationComponent, builder.addMemberDecoration(spvType, member, spv::DecorationComponent,
@ -4560,19 +4599,7 @@ spv::Id TGlslangToSpvTraverser::accessChainLoad(const glslang::TType& type)
// Need to convert to abstract types when necessary // Need to convert to abstract types when necessary
if (type.getBasicType() == glslang::EbtBool) { if (type.getBasicType() == glslang::EbtBool) {
if (builder.isScalarType(nominalTypeId)) { loadedId = convertLoadedBoolInUniformToUint(type, nominalTypeId, loadedId);
// Conversion for bool
spv::Id boolType = builder.makeBoolType();
if (nominalTypeId != boolType)
loadedId = builder.createBinOp(spv::OpINotEqual, boolType, loadedId, builder.makeUintConstant(0));
} else if (builder.isVectorType(nominalTypeId)) {
// Conversion for bvec
int vecSize = builder.getNumTypeComponents(nominalTypeId);
spv::Id bvecType = builder.makeVectorType(builder.makeBoolType(), vecSize);
if (nominalTypeId != bvecType)
loadedId = builder.createBinOp(spv::OpINotEqual, bvecType, loadedId,
makeSmearedConstant(builder.makeUintConstant(0), vecSize));
}
} }
return loadedId; return loadedId;
@ -5290,7 +5317,10 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
int components = node->getType().getVectorSize(); int components = node->getType().getVectorSize();
if (node->getOp() == glslang::EOpTextureFetch) { if (node->getOp() == glslang::EOpImageLoad ||
node->getOp() == glslang::EOpImageLoadLod ||
node->getOp() == glslang::EOpTextureFetch ||
node->getOp() == glslang::EOpTextureFetchOffset) {
// These must produce 4 components, per SPIR-V spec. We'll add a conversion constructor if needed. // These must produce 4 components, per SPIR-V spec. We'll add a conversion constructor if needed.
// This will only happen through the HLSL path for operator[], so we do not have to handle e.g. // This will only happen through the HLSL path for operator[], so we do not have to handle e.g.
// the EOpTexture/Proj/Lod/etc family. It would be harmless to do so, but would need more logic // the EOpTexture/Proj/Lod/etc family. It would be harmless to do so, but would need more logic

View File

@ -743,6 +743,26 @@ Id Builder::getContainedTypeId(Id typeId, int member) const
} }
} }
// Figure out the final resulting type of the access chain.
Id Builder::getResultingAccessChainType() const
{
assert(accessChain.base != NoResult);
Id typeId = getTypeId(accessChain.base);
assert(isPointerType(typeId));
typeId = getContainedTypeId(typeId);
for (int i = 0; i < (int)accessChain.indexChain.size(); ++i) {
if (isStructType(typeId)) {
assert(isConstantScalar(accessChain.indexChain[i]));
typeId = getContainedTypeId(typeId, getConstantScalar(accessChain.indexChain[i]));
} else
typeId = getContainedTypeId(typeId, accessChain.indexChain[i]);
}
return typeId;
}
// Return the immediately contained type of a given composite type. // Return the immediately contained type of a given composite type.
Id Builder::getContainedTypeId(Id typeId) const Id Builder::getContainedTypeId(Id typeId) const
{ {
@ -1585,16 +1605,7 @@ Id Builder::createLoad(Id lValue, spv::Decoration precision, spv::MemoryAccessMa
Id Builder::createAccessChain(StorageClass storageClass, Id base, const std::vector<Id>& offsets) Id Builder::createAccessChain(StorageClass storageClass, Id base, const std::vector<Id>& offsets)
{ {
// Figure out the final resulting type. // Figure out the final resulting type.
spv::Id typeId = getTypeId(base); Id typeId = getResultingAccessChainType();
assert(isPointerType(typeId) && offsets.size() > 0);
typeId = getContainedTypeId(typeId);
for (int i = 0; i < (int)offsets.size(); ++i) {
if (isStructType(typeId)) {
assert(isConstantScalar(offsets[i]));
typeId = getContainedTypeId(typeId, getConstantScalar(offsets[i]));
} else
typeId = getContainedTypeId(typeId, offsets[i]);
}
typeId = makePointer(storageClass, typeId); typeId = makePointer(storageClass, typeId);
// Make the instruction // Make the instruction
@ -2794,6 +2805,35 @@ void Builder::accessChainStore(Id rvalue, Decoration nonUniform, spv::MemoryAcce
assert(accessChain.isRValue == false); assert(accessChain.isRValue == false);
transferAccessChainSwizzle(true); transferAccessChainSwizzle(true);
// If a swizzle exists and is not full and is not dynamic, then the swizzle will be broken into individual stores.
if (accessChain.swizzle.size() > 0 &&
getNumTypeComponents(getResultingAccessChainType()) != (int)accessChain.swizzle.size() &&
accessChain.component == NoResult) {
for (unsigned int i = 0; i < accessChain.swizzle.size(); ++i) {
accessChain.indexChain.push_back(makeUintConstant(accessChain.swizzle[i]));
Id base = collapseAccessChain();
addDecoration(base, nonUniform);
accessChain.indexChain.pop_back();
accessChain.instr = NoResult;
// dynamic component should be gone
assert(accessChain.component == NoResult);
Id source = createCompositeExtract(rvalue, getContainedTypeId(getTypeId(rvalue)), i);
// take LSB of alignment
alignment = alignment & ~(alignment & (alignment-1));
if (getStorageClass(base) == StorageClassPhysicalStorageBufferEXT) {
memoryAccess = (spv::MemoryAccessMask)(memoryAccess | spv::MemoryAccessAlignedMask);
}
createStore(source, base, memoryAccess, scope, alignment);
}
}
else {
Id base = collapseAccessChain(); Id base = collapseAccessChain();
addDecoration(base, nonUniform); addDecoration(base, nonUniform);
@ -2802,7 +2842,7 @@ void Builder::accessChainStore(Id rvalue, Decoration nonUniform, spv::MemoryAcce
// dynamic component should be gone // dynamic component should be gone
assert(accessChain.component == NoResult); assert(accessChain.component == NoResult);
// If swizzle still exists, it is out-of-order or not full, we must load the target vector, // If swizzle still exists, it may be out-of-order, we must load the target vector,
// extract and insert elements to perform writeMask and/or swizzle. // extract and insert elements to perform writeMask and/or swizzle.
if (accessChain.swizzle.size() > 0) { if (accessChain.swizzle.size() > 0) {
Id tempBaseId = createLoad(base, spv::NoPrecision); Id tempBaseId = createLoad(base, spv::NoPrecision);
@ -2816,6 +2856,7 @@ void Builder::accessChainStore(Id rvalue, Decoration nonUniform, spv::MemoryAcce
} }
createStore(source, base, memoryAccess, scope, alignment); createStore(source, base, memoryAccess, scope, alignment);
}
} }
// Comments in header // Comments in header

View File

@ -202,6 +202,7 @@ public:
StorageClass getTypeStorageClass(Id typeId) const { return module.getStorageClass(typeId); } StorageClass getTypeStorageClass(Id typeId) const { return module.getStorageClass(typeId); }
ImageFormat getImageTypeFormat(Id typeId) const ImageFormat getImageTypeFormat(Id typeId) const
{ return (ImageFormat)module.getInstruction(typeId)->getImmediateOperand(6); } { return (ImageFormat)module.getInstruction(typeId)->getImmediateOperand(6); }
Id getResultingAccessChainType() const;
bool isPointer(Id resultId) const { return isPointerType(getTypeId(resultId)); } bool isPointer(Id resultId) const { return isPointerType(getTypeId(resultId)); }
bool isScalar(Id resultId) const { return isScalarType(getTypeId(resultId)); } bool isScalar(Id resultId) const { return isScalarType(getTypeId(resultId)); }

View File

@ -347,13 +347,13 @@ void ProcessBindingBase(int& argc, char**& argv, glslang::TResourceType res)
lang = FindLanguage(argv[arg++], false); lang = FindLanguage(argv[arg++], false);
} }
if ((argc - arg) > 2 && isdigit(argv[arg+0][0]) && isdigit(argv[arg+1][0])) { if ((argc - arg) >= 2 && isdigit(argv[arg+0][0]) && isdigit(argv[arg+1][0])) {
// Parse a per-set binding base // Parse a per-set binding base
while ((argc - arg) > 2 && isdigit(argv[arg+0][0]) && isdigit(argv[arg+1][0])) { do {
const int baseNum = atoi(argv[arg++]); const int baseNum = atoi(argv[arg++]);
const int setNum = atoi(argv[arg++]); const int setNum = atoi(argv[arg++]);
perSetBase[setNum] = baseNum; perSetBase[setNum] = baseNum;
} } while ((argc - arg) >= 2 && isdigit(argv[arg + 0][0]) && isdigit(argv[arg + 1][0]));
} else { } else {
// Parse single binding base // Parse single binding base
singleBase = atoi(argv[arg++]); singleBase = atoi(argv[arg++]);

View File

@ -0,0 +1,11 @@
#version 150
#extension GL_ARB_gpu_shader5 : require
uniform int u1;
uniform int u2;
out vec4 result;
void main()
{
uint v = 0;
v = uint(u2) - u1; // implicit conversions
}

View File

@ -1,18 +1,18 @@
hlsl.partialFlattenLocal.vert hlsl.partialFlattenLocal.vert
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 159 // Id's are bound by 164
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 83 86 EntryPoint Vertex 4 "main" 86 89
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 83 "pos" Name 86 "pos"
Name 86 "@entryPointOutput" Name 89 "@entryPointOutput"
Decorate 83(pos) Location 0 Decorate 86(pos) Location 0
Decorate 86(@entryPointOutput) BuiltIn Position Decorate 89(@entryPointOutput) BuiltIn Position
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -33,49 +33,54 @@ hlsl.partialFlattenLocal.vert
37: 6(float) Constant 1065353216 37: 6(float) Constant 1065353216
38: 18(fvec2) ConstantComposite 32 37 38: 18(fvec2) ConstantComposite 32 37
39: TypePointer Function 18(fvec2) 39: TypePointer Function 18(fvec2)
42: TypePointer Function 6(float)
54: TypeBool 54: TypeBool
82: TypePointer Input 7(fvec4) 64: 15(int) Constant 0
83(pos): 82(ptr) Variable Input 67: 15(int) Constant 1
85: TypePointer Output 7(fvec4) 85: TypePointer Input 7(fvec4)
86(@entryPointOutput): 85(ptr) Variable Output 86(pos): 85(ptr) Variable Input
131: TypePointer Function 17 88: TypePointer Output 7(fvec4)
133: TypePointer Function 20 89(@entryPointOutput): 88(ptr) Variable Output
135: TypePointer Function 17
137: TypePointer Function 20
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
134: 133(ptr) Variable Function 138: 137(ptr) Variable Function
132: 131(ptr) Variable Function 136: 135(ptr) Variable Function
84: 7(fvec4) Load 83(pos) 87: 7(fvec4) Load 86(pos)
137: 34(ptr) AccessChain 132 25 141: 34(ptr) AccessChain 136 25
Store 137 33 Store 141 33
138: 39(ptr) AccessChain 134 25 142: 39(ptr) AccessChain 138 25
Store 138 38 Store 142 38
Branch 101 Branch 104
101: Label 104: Label
158: 21(int) Phi 25 5 119 105 163: 21(int) Phi 25 5 123 108
104: 54(bool) SLessThan 158 31 107: 54(bool) SLessThan 163 31
LoopMerge 120 105 None LoopMerge 124 108 None
BranchConditional 104 105 120 BranchConditional 107 108 124
105: Label 108: Label
139: 39(ptr) AccessChain 134 158 143: 39(ptr) AccessChain 138 163
109: 18(fvec2) Load 139 112: 18(fvec2) Load 143
140: 34(ptr) AccessChain 132 158 144: 34(ptr) AccessChain 136 163
111: 14(fvec3) Load 140 114: 14(fvec3) Load 144
112: 18(fvec2) VectorShuffle 111 111 0 1 115: 18(fvec2) VectorShuffle 114 114 0 1
113: 18(fvec2) FAdd 112 109 116: 18(fvec2) FAdd 115 112
141: 34(ptr) AccessChain 132 158 145: 42(ptr) AccessChain 136 163 64
115: 14(fvec3) Load 141 118: 6(float) CompositeExtract 116 0
116: 14(fvec3) VectorShuffle 115 113 3 4 2 Store 145 118
Store 141 116 146: 42(ptr) AccessChain 136 163 67
119: 21(int) IAdd 158 31 120: 6(float) CompositeExtract 116 1
Branch 101 Store 146 120
120: Label 123: 21(int) IAdd 163 31
143: 17 Load 132 Branch 104
157: 14(fvec3) CompositeExtract 143 0 124: Label
125: 6(float) CompositeExtract 157 0 148: 17 Load 136
126: 6(float) CompositeExtract 157 1 162: 14(fvec3) CompositeExtract 148 0
127: 6(float) CompositeExtract 157 2 129: 6(float) CompositeExtract 162 0
128: 7(fvec4) CompositeConstruct 125 126 127 32 130: 6(float) CompositeExtract 162 1
129: 7(fvec4) FAdd 84 128 131: 6(float) CompositeExtract 162 2
Store 86(@entryPointOutput) 129 132: 7(fvec4) CompositeConstruct 129 130 131 32
133: 7(fvec4) FAdd 87 132
Store 89(@entryPointOutput) 133
Return Return
FunctionEnd FunctionEnd

View File

@ -0,0 +1,57 @@
GL_ARB_gpu_shader5.u2i.vert
WARNING: 0:2: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5
Shader version: 150
Requested GL_ARB_gpu_shader5
0:? Sequence
0:7 Function Definition: main( ( global void)
0:7 Function Parameters:
0:9 Sequence
0:9 Sequence
0:9 move second child to first child ( temp uint)
0:9 'v' ( temp uint)
0:9 Constant:
0:9 0 (const uint)
0:10 move second child to first child ( temp uint)
0:10 'v' ( temp uint)
0:10 subtract ( temp uint)
0:10 Convert int to uint ( temp uint)
0:10 'u2' ( uniform int)
0:10 Convert int to uint ( temp uint)
0:10 'u1' ( uniform int)
0:? Linker Objects
0:? 'u1' ( uniform int)
0:? 'u2' ( uniform int)
0:? 'result' ( smooth out 4-component vector of float)
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
Linked vertex stage:
Shader version: 150
Requested GL_ARB_gpu_shader5
0:? Sequence
0:7 Function Definition: main( ( global void)
0:7 Function Parameters:
0:9 Sequence
0:9 Sequence
0:9 move second child to first child ( temp uint)
0:9 'v' ( temp uint)
0:9 Constant:
0:9 0 (const uint)
0:10 move second child to first child ( temp uint)
0:10 'v' ( temp uint)
0:10 subtract ( temp uint)
0:10 Convert int to uint ( temp uint)
0:10 'u2' ( uniform int)
0:10 Convert int to uint ( temp uint)
0:10 'u1' ( uniform int)
0:? Linker Objects
0:? 'u1' ( uniform int)
0:? 'u2' ( uniform int)
0:? 'result' ( smooth out 4-component vector of float)
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)

View File

@ -2,35 +2,204 @@ hlsl.imagefetch-subvec4.comp
Shader version: 500 Shader version: 500
local_size = (8, 8, 8) local_size = (8, 8, 8)
0:? Sequence 0:? Sequence
0:6 Function Definition: @main(vu3; ( temp void) 0:21 Function Definition: @main(vu3; ( temp void)
0:6 Function Parameters: 0:21 Function Parameters:
0:6 'tid' ( in 3-component vector of uint) 0:21 'tid' ( in 3-component vector of uint)
0:? Sequence 0:? Sequence
0:7 Sequence 0:22 Sequence
0:7 move second child to first child ( temp uint) 0:22 move second child to first child ( temp float)
0:7 'storeTemp' ( temp uint) 0:22 'f' ( temp float)
0:7 Convert int to uint ( temp uint) 0:22 Constant:
0:7 textureFetch ( temp int) 0:22 0.000000
0:7 'IN' (layout( binding=0) uniform itexture3D) 0:23 add second child into first child ( temp float)
0:7 'tid' ( in 3-component vector of uint) 0:23 'f' ( temp float)
0:7 Constant: 0:23 textureFetch ( temp float)
0:7 0 (const int) 0:23 'i1D' (layout( binding=0) uniform texture1D)
0:7 imageStore ( temp void) 0:23 direct index ( temp uint)
0:7 'OUT' (layout( binding=1 r32ui) uniform uimage3D) 0:23 'tid' ( in 3-component vector of uint)
0:7 'tid' ( in 3-component vector of uint) 0:23 Constant:
0:7 'storeTemp' ( temp uint) 0:23 0 (const int)
0:7 'storeTemp' ( temp uint) 0:23 Constant:
0:6 Function Definition: main( ( temp void) 0:23 0 (const int)
0:6 Function Parameters: 0:24 add second child into first child ( temp float)
0:24 'f' ( temp float)
0:24 textureFetch ( temp float)
0:24 'i2D' (layout( binding=1) uniform texture2D)
0:24 vector swizzle ( temp 2-component vector of uint)
0:24 'tid' ( in 3-component vector of uint)
0:24 Sequence
0:24 Constant:
0:24 0 (const int)
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
0:24 0 (const int)
0:25 add second child into first child ( temp float)
0:25 'f' ( temp float)
0:25 textureFetch ( temp float)
0:25 'i3D' (layout( binding=2) uniform texture3D)
0:25 'tid' ( in 3-component vector of uint)
0:25 Constant:
0:25 0 (const int)
0:26 add second child into first child ( temp float)
0:26 'f' ( temp float)
0:26 textureFetch ( temp float)
0:26 'i1DArray' (layout( binding=3) uniform texture1DArray)
0:26 vector swizzle ( temp 2-component vector of uint)
0:26 'tid' ( in 3-component vector of uint)
0:26 Sequence
0:26 Constant:
0:26 0 (const int)
0:26 Constant:
0:26 1 (const int)
0:26 Constant:
0:26 0 (const int)
0:27 add second child into first child ( temp float)
0:27 'f' ( temp float)
0:27 textureFetch ( temp float)
0:27 'i2DArray' (layout( binding=4) uniform texture2DArray)
0:27 'tid' ( in 3-component vector of uint)
0:27 Constant:
0:27 0 (const int)
0:28 add second child into first child ( temp float)
0:28 'f' ( temp float)
0:28 Construct float ( temp float)
0:? textureFetch ( temp 4-component vector of float)
0:28 'i2DMS' (layout( binding=5) uniform texture2DMS)
0:28 Convert uint to int ( temp 2-component vector of int)
0:28 vector swizzle ( temp 2-component vector of uint)
0:28 'tid' ( in 3-component vector of uint)
0:28 Sequence
0:28 Constant:
0:28 0 (const int)
0:28 Constant:
0:28 1 (const int)
0:28 Constant:
0:28 1 (const int)
0:29 add second child into first child ( temp float)
0:29 'f' ( temp float)
0:29 Construct float ( temp float)
0:? textureFetch ( temp 4-component vector of float)
0:29 'i2DMSArray' (layout( binding=6) uniform texture2DMSArray)
0:29 Convert uint to int ( temp 3-component vector of int)
0:29 'tid' ( in 3-component vector of uint)
0:29 Constant:
0:29 3 (const int)
0:31 Sequence
0:31 move second child to first child ( temp int)
0:31 'i' ( temp int)
0:31 Constant:
0:31 0 (const int)
0:32 add second child into first child ( temp int)
0:32 'i' ( temp int)
0:32 textureFetch ( temp int)
0:32 'ii1D' (layout( binding=7) uniform itexture1D)
0:32 direct index ( temp uint)
0:32 'tid' ( in 3-component vector of uint)
0:32 Constant:
0:32 0 (const int)
0:32 Constant:
0:32 0 (const int)
0:33 add second child into first child ( temp int)
0:33 'i' ( temp int)
0:33 textureFetch ( temp int)
0:33 'ii2D' (layout( binding=8) uniform itexture2D)
0:33 vector swizzle ( temp 2-component vector of uint)
0:33 'tid' ( in 3-component vector of uint)
0:33 Sequence
0:33 Constant:
0:33 0 (const int)
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
0:33 0 (const int)
0:34 add second child into first child ( temp int)
0:34 'i' ( temp int)
0:34 textureFetch ( temp int)
0:34 'ii3D' (layout( binding=9) uniform itexture3D)
0:34 'tid' ( in 3-component vector of uint)
0:34 Constant:
0:34 0 (const int)
0:35 add second child into first child ( temp int)
0:35 'i' ( temp int)
0:35 textureFetch ( temp int)
0:35 'ii1DArray' (layout( binding=10) uniform itexture1DArray)
0:35 vector swizzle ( temp 2-component vector of uint)
0:35 'tid' ( in 3-component vector of uint)
0:35 Sequence
0:35 Constant:
0:35 0 (const int)
0:35 Constant:
0:35 1 (const int)
0:35 Constant:
0:35 0 (const int)
0:36 add second child into first child ( temp int)
0:36 'i' ( temp int)
0:36 textureFetch ( temp int)
0:36 'ii2DArray' (layout( binding=11) uniform itexture2DArray)
0:36 'tid' ( in 3-component vector of uint)
0:36 Constant:
0:36 0 (const int)
0:37 add second child into first child ( temp int)
0:37 'i' ( temp int)
0:37 Construct int ( temp int)
0:? textureFetch ( temp 4-component vector of int)
0:37 'ii2DMS' (layout( binding=12) uniform itexture2DMS)
0:37 Convert uint to int ( temp 2-component vector of int)
0:37 vector swizzle ( temp 2-component vector of uint)
0:37 'tid' ( in 3-component vector of uint)
0:37 Sequence
0:37 Constant:
0:37 0 (const int)
0:37 Constant:
0:37 1 (const int)
0:37 Constant:
0:37 1 (const int)
0:38 add second child into first child ( temp int)
0:38 'i' ( temp int)
0:38 Construct int ( temp int)
0:? textureFetch ( temp 4-component vector of int)
0:38 'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray)
0:38 Convert uint to int ( temp 3-component vector of int)
0:38 'tid' ( in 3-component vector of uint)
0:38 Constant:
0:38 3 (const int)
0:40 Sequence
0:40 move second child to first child ( temp float)
0:40 'storeTemp' ( temp float)
0:40 add ( temp float)
0:40 'f' ( temp float)
0:40 Convert int to float ( temp float)
0:40 'i' ( temp int)
0:40 imageStore ( temp void)
0:40 'OUT' (layout( binding=0 r32f) uniform image3D)
0:40 'tid' ( in 3-component vector of uint)
0:40 'storeTemp' ( temp float)
0:40 'storeTemp' ( temp float)
0:21 Function Definition: main( ( temp void)
0:21 Function Parameters:
0:? Sequence 0:? Sequence
0:6 move second child to first child ( temp 3-component vector of uint) 0:21 move second child to first child ( temp 3-component vector of uint)
0:? 'tid' ( temp 3-component vector of uint) 0:? 'tid' ( temp 3-component vector of uint)
0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) 0:? 'tid' ( in 3-component vector of uint GlobalInvocationID)
0:6 Function Call: @main(vu3; ( temp void) 0:21 Function Call: @main(vu3; ( temp void)
0:? 'tid' ( temp 3-component vector of uint) 0:? 'tid' ( temp 3-component vector of uint)
0:? Linker Objects 0:? Linker Objects
0:? 'IN' (layout( binding=0) uniform itexture3D) 0:? 'i1D' (layout( binding=0) uniform texture1D)
0:? 'OUT' (layout( binding=1 r32ui) uniform uimage3D) 0:? 'i2D' (layout( binding=1) uniform texture2D)
0:? 'i3D' (layout( binding=2) uniform texture3D)
0:? 'i1DArray' (layout( binding=3) uniform texture1DArray)
0:? 'i2DArray' (layout( binding=4) uniform texture2DArray)
0:? 'i2DMS' (layout( binding=5) uniform texture2DMS)
0:? 'i2DMSArray' (layout( binding=6) uniform texture2DMSArray)
0:? 'ii1D' (layout( binding=7) uniform itexture1D)
0:? 'ii2D' (layout( binding=8) uniform itexture2D)
0:? 'ii3D' (layout( binding=9) uniform itexture3D)
0:? 'ii1DArray' (layout( binding=10) uniform itexture1DArray)
0:? 'ii2DArray' (layout( binding=11) uniform itexture2DArray)
0:? 'ii2DMS' (layout( binding=12) uniform itexture2DMS)
0:? 'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray)
0:? 'OUT' (layout( binding=0 r32f) uniform image3D)
0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) 0:? 'tid' ( in 3-component vector of uint GlobalInvocationID)
@ -40,103 +209,477 @@ Linked compute stage:
Shader version: 500 Shader version: 500
local_size = (8, 8, 8) local_size = (8, 8, 8)
0:? Sequence 0:? Sequence
0:6 Function Definition: @main(vu3; ( temp void) 0:21 Function Definition: @main(vu3; ( temp void)
0:6 Function Parameters: 0:21 Function Parameters:
0:6 'tid' ( in 3-component vector of uint) 0:21 'tid' ( in 3-component vector of uint)
0:? Sequence 0:? Sequence
0:7 Sequence 0:22 Sequence
0:7 move second child to first child ( temp uint) 0:22 move second child to first child ( temp float)
0:7 'storeTemp' ( temp uint) 0:22 'f' ( temp float)
0:7 Convert int to uint ( temp uint) 0:22 Constant:
0:7 textureFetch ( temp int) 0:22 0.000000
0:7 'IN' (layout( binding=0) uniform itexture3D) 0:23 add second child into first child ( temp float)
0:7 'tid' ( in 3-component vector of uint) 0:23 'f' ( temp float)
0:7 Constant: 0:23 textureFetch ( temp float)
0:7 0 (const int) 0:23 'i1D' (layout( binding=0) uniform texture1D)
0:7 imageStore ( temp void) 0:23 direct index ( temp uint)
0:7 'OUT' (layout( binding=1 r32ui) uniform uimage3D) 0:23 'tid' ( in 3-component vector of uint)
0:7 'tid' ( in 3-component vector of uint) 0:23 Constant:
0:7 'storeTemp' ( temp uint) 0:23 0 (const int)
0:7 'storeTemp' ( temp uint) 0:23 Constant:
0:6 Function Definition: main( ( temp void) 0:23 0 (const int)
0:6 Function Parameters: 0:24 add second child into first child ( temp float)
0:24 'f' ( temp float)
0:24 textureFetch ( temp float)
0:24 'i2D' (layout( binding=1) uniform texture2D)
0:24 vector swizzle ( temp 2-component vector of uint)
0:24 'tid' ( in 3-component vector of uint)
0:24 Sequence
0:24 Constant:
0:24 0 (const int)
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
0:24 0 (const int)
0:25 add second child into first child ( temp float)
0:25 'f' ( temp float)
0:25 textureFetch ( temp float)
0:25 'i3D' (layout( binding=2) uniform texture3D)
0:25 'tid' ( in 3-component vector of uint)
0:25 Constant:
0:25 0 (const int)
0:26 add second child into first child ( temp float)
0:26 'f' ( temp float)
0:26 textureFetch ( temp float)
0:26 'i1DArray' (layout( binding=3) uniform texture1DArray)
0:26 vector swizzle ( temp 2-component vector of uint)
0:26 'tid' ( in 3-component vector of uint)
0:26 Sequence
0:26 Constant:
0:26 0 (const int)
0:26 Constant:
0:26 1 (const int)
0:26 Constant:
0:26 0 (const int)
0:27 add second child into first child ( temp float)
0:27 'f' ( temp float)
0:27 textureFetch ( temp float)
0:27 'i2DArray' (layout( binding=4) uniform texture2DArray)
0:27 'tid' ( in 3-component vector of uint)
0:27 Constant:
0:27 0 (const int)
0:28 add second child into first child ( temp float)
0:28 'f' ( temp float)
0:28 Construct float ( temp float)
0:? textureFetch ( temp 4-component vector of float)
0:28 'i2DMS' (layout( binding=5) uniform texture2DMS)
0:28 Convert uint to int ( temp 2-component vector of int)
0:28 vector swizzle ( temp 2-component vector of uint)
0:28 'tid' ( in 3-component vector of uint)
0:28 Sequence
0:28 Constant:
0:28 0 (const int)
0:28 Constant:
0:28 1 (const int)
0:28 Constant:
0:28 1 (const int)
0:29 add second child into first child ( temp float)
0:29 'f' ( temp float)
0:29 Construct float ( temp float)
0:? textureFetch ( temp 4-component vector of float)
0:29 'i2DMSArray' (layout( binding=6) uniform texture2DMSArray)
0:29 Convert uint to int ( temp 3-component vector of int)
0:29 'tid' ( in 3-component vector of uint)
0:29 Constant:
0:29 3 (const int)
0:31 Sequence
0:31 move second child to first child ( temp int)
0:31 'i' ( temp int)
0:31 Constant:
0:31 0 (const int)
0:32 add second child into first child ( temp int)
0:32 'i' ( temp int)
0:32 textureFetch ( temp int)
0:32 'ii1D' (layout( binding=7) uniform itexture1D)
0:32 direct index ( temp uint)
0:32 'tid' ( in 3-component vector of uint)
0:32 Constant:
0:32 0 (const int)
0:32 Constant:
0:32 0 (const int)
0:33 add second child into first child ( temp int)
0:33 'i' ( temp int)
0:33 textureFetch ( temp int)
0:33 'ii2D' (layout( binding=8) uniform itexture2D)
0:33 vector swizzle ( temp 2-component vector of uint)
0:33 'tid' ( in 3-component vector of uint)
0:33 Sequence
0:33 Constant:
0:33 0 (const int)
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
0:33 0 (const int)
0:34 add second child into first child ( temp int)
0:34 'i' ( temp int)
0:34 textureFetch ( temp int)
0:34 'ii3D' (layout( binding=9) uniform itexture3D)
0:34 'tid' ( in 3-component vector of uint)
0:34 Constant:
0:34 0 (const int)
0:35 add second child into first child ( temp int)
0:35 'i' ( temp int)
0:35 textureFetch ( temp int)
0:35 'ii1DArray' (layout( binding=10) uniform itexture1DArray)
0:35 vector swizzle ( temp 2-component vector of uint)
0:35 'tid' ( in 3-component vector of uint)
0:35 Sequence
0:35 Constant:
0:35 0 (const int)
0:35 Constant:
0:35 1 (const int)
0:35 Constant:
0:35 0 (const int)
0:36 add second child into first child ( temp int)
0:36 'i' ( temp int)
0:36 textureFetch ( temp int)
0:36 'ii2DArray' (layout( binding=11) uniform itexture2DArray)
0:36 'tid' ( in 3-component vector of uint)
0:36 Constant:
0:36 0 (const int)
0:37 add second child into first child ( temp int)
0:37 'i' ( temp int)
0:37 Construct int ( temp int)
0:? textureFetch ( temp 4-component vector of int)
0:37 'ii2DMS' (layout( binding=12) uniform itexture2DMS)
0:37 Convert uint to int ( temp 2-component vector of int)
0:37 vector swizzle ( temp 2-component vector of uint)
0:37 'tid' ( in 3-component vector of uint)
0:37 Sequence
0:37 Constant:
0:37 0 (const int)
0:37 Constant:
0:37 1 (const int)
0:37 Constant:
0:37 1 (const int)
0:38 add second child into first child ( temp int)
0:38 'i' ( temp int)
0:38 Construct int ( temp int)
0:? textureFetch ( temp 4-component vector of int)
0:38 'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray)
0:38 Convert uint to int ( temp 3-component vector of int)
0:38 'tid' ( in 3-component vector of uint)
0:38 Constant:
0:38 3 (const int)
0:40 Sequence
0:40 move second child to first child ( temp float)
0:40 'storeTemp' ( temp float)
0:40 add ( temp float)
0:40 'f' ( temp float)
0:40 Convert int to float ( temp float)
0:40 'i' ( temp int)
0:40 imageStore ( temp void)
0:40 'OUT' (layout( binding=0 r32f) uniform image3D)
0:40 'tid' ( in 3-component vector of uint)
0:40 'storeTemp' ( temp float)
0:40 'storeTemp' ( temp float)
0:21 Function Definition: main( ( temp void)
0:21 Function Parameters:
0:? Sequence 0:? Sequence
0:6 move second child to first child ( temp 3-component vector of uint) 0:21 move second child to first child ( temp 3-component vector of uint)
0:? 'tid' ( temp 3-component vector of uint) 0:? 'tid' ( temp 3-component vector of uint)
0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) 0:? 'tid' ( in 3-component vector of uint GlobalInvocationID)
0:6 Function Call: @main(vu3; ( temp void) 0:21 Function Call: @main(vu3; ( temp void)
0:? 'tid' ( temp 3-component vector of uint) 0:? 'tid' ( temp 3-component vector of uint)
0:? Linker Objects 0:? Linker Objects
0:? 'IN' (layout( binding=0) uniform itexture3D) 0:? 'i1D' (layout( binding=0) uniform texture1D)
0:? 'OUT' (layout( binding=1 r32ui) uniform uimage3D) 0:? 'i2D' (layout( binding=1) uniform texture2D)
0:? 'i3D' (layout( binding=2) uniform texture3D)
0:? 'i1DArray' (layout( binding=3) uniform texture1DArray)
0:? 'i2DArray' (layout( binding=4) uniform texture2DArray)
0:? 'i2DMS' (layout( binding=5) uniform texture2DMS)
0:? 'i2DMSArray' (layout( binding=6) uniform texture2DMSArray)
0:? 'ii1D' (layout( binding=7) uniform itexture1D)
0:? 'ii2D' (layout( binding=8) uniform itexture2D)
0:? 'ii3D' (layout( binding=9) uniform itexture3D)
0:? 'ii1DArray' (layout( binding=10) uniform itexture1DArray)
0:? 'ii2DArray' (layout( binding=11) uniform itexture2DArray)
0:? 'ii2DMS' (layout( binding=12) uniform itexture2DMS)
0:? 'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray)
0:? 'OUT' (layout( binding=0 r32f) uniform image3D)
0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) 0:? 'tid' ( in 3-component vector of uint GlobalInvocationID)
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 39 // Id's are bound by 186
Capability Shader Capability Shader
Capability Sampled1D
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 34 EntryPoint GLCompute 4 "main" 181
ExecutionMode 4 LocalSize 8 8 8 ExecutionMode 4 LocalSize 8 8 8
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 11 "@main(vu3;" Name 11 "@main(vu3;"
Name 10 "tid" Name 10 "tid"
Name 14 "storeTemp" Name 15 "f"
Name 18 "IN" Name 19 "i1D"
Name 28 "OUT" Name 34 "i2D"
Name 32 "tid" Name 45 "i3D"
Name 34 "tid" Name 54 "i1DArray"
Name 36 "param" Name 64 "i2DArray"
Decorate 18(IN) DescriptorSet 0 Name 73 "i2DMS"
Decorate 18(IN) Binding 0 Name 86 "i2DMSArray"
Decorate 28(OUT) DescriptorSet 0 Name 97 "i"
Decorate 28(OUT) Binding 1 Name 100 "ii1D"
Decorate 34(tid) BuiltIn GlobalInvocationId Name 111 "ii2D"
Name 121 "ii3D"
Name 130 "ii1DArray"
Name 140 "ii2DArray"
Name 149 "ii2DMS"
Name 160 "ii2DMSArray"
Name 168 "storeTemp"
Name 175 "OUT"
Name 179 "tid"
Name 181 "tid"
Name 183 "param"
Decorate 19(i1D) DescriptorSet 0
Decorate 19(i1D) Binding 0
Decorate 34(i2D) DescriptorSet 0
Decorate 34(i2D) Binding 1
Decorate 45(i3D) DescriptorSet 0
Decorate 45(i3D) Binding 2
Decorate 54(i1DArray) DescriptorSet 0
Decorate 54(i1DArray) Binding 3
Decorate 64(i2DArray) DescriptorSet 0
Decorate 64(i2DArray) Binding 4
Decorate 73(i2DMS) DescriptorSet 0
Decorate 73(i2DMS) Binding 5
Decorate 86(i2DMSArray) DescriptorSet 0
Decorate 86(i2DMSArray) Binding 6
Decorate 100(ii1D) DescriptorSet 0
Decorate 100(ii1D) Binding 7
Decorate 111(ii2D) DescriptorSet 0
Decorate 111(ii2D) Binding 8
Decorate 121(ii3D) DescriptorSet 0
Decorate 121(ii3D) Binding 9
Decorate 130(ii1DArray) DescriptorSet 0
Decorate 130(ii1DArray) Binding 10
Decorate 140(ii2DArray) DescriptorSet 0
Decorate 140(ii2DArray) Binding 11
Decorate 149(ii2DMS) DescriptorSet 0
Decorate 149(ii2DMS) Binding 12
Decorate 160(ii2DMSArray) DescriptorSet 0
Decorate 160(ii2DMSArray) Binding 13
Decorate 175(OUT) DescriptorSet 0
Decorate 175(OUT) Binding 0
Decorate 181(tid) BuiltIn GlobalInvocationId
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0
7: TypeVector 6(int) 3 7: TypeVector 6(int) 3
8: TypePointer Function 7(ivec3) 8: TypePointer Function 7(ivec3)
9: TypeFunction 2 8(ptr) 9: TypeFunction 2 8(ptr)
13: TypePointer Function 6(int) 13: TypeFloat 32
15: TypeInt 32 1 14: TypePointer Function 13(float)
16: TypeImage 15(int) 3D sampled format:Unknown 16: 13(float) Constant 0
17: TypePointer UniformConstant 16 17: TypeImage 13(float) 1D sampled format:Unknown
18(IN): 17(ptr) Variable UniformConstant 18: TypePointer UniformConstant 17
21: 15(int) Constant 0 19(i1D): 18(ptr) Variable UniformConstant
22: TypeVector 15(int) 4 21: 6(int) Constant 0
26: TypeImage 6(int) 3D nonsampled format:R32ui 22: TypePointer Function 6(int)
27: TypePointer UniformConstant 26 25: TypeInt 32 1
28(OUT): 27(ptr) Variable UniformConstant 26: 25(int) Constant 0
33: TypePointer Input 7(ivec3) 27: TypeVector 13(float) 4
34(tid): 33(ptr) Variable Input 32: TypeImage 13(float) 2D sampled format:Unknown
33: TypePointer UniformConstant 32
34(i2D): 33(ptr) Variable UniformConstant
36: TypeVector 6(int) 2
43: TypeImage 13(float) 3D sampled format:Unknown
44: TypePointer UniformConstant 43
45(i3D): 44(ptr) Variable UniformConstant
52: TypeImage 13(float) 1D array sampled format:Unknown
53: TypePointer UniformConstant 52
54(i1DArray): 53(ptr) Variable UniformConstant
62: TypeImage 13(float) 2D array sampled format:Unknown
63: TypePointer UniformConstant 62
64(i2DArray): 63(ptr) Variable UniformConstant
71: TypeImage 13(float) 2D multi-sampled sampled format:Unknown
72: TypePointer UniformConstant 71
73(i2DMS): 72(ptr) Variable UniformConstant
77: TypeVector 25(int) 2
79: 25(int) Constant 1
84: TypeImage 13(float) 2D array multi-sampled sampled format:Unknown
85: TypePointer UniformConstant 84
86(i2DMSArray): 85(ptr) Variable UniformConstant
89: TypeVector 25(int) 3
91: 25(int) Constant 3
96: TypePointer Function 25(int)
98: TypeImage 25(int) 1D sampled format:Unknown
99: TypePointer UniformConstant 98
100(ii1D): 99(ptr) Variable UniformConstant
104: TypeVector 25(int) 4
109: TypeImage 25(int) 2D sampled format:Unknown
110: TypePointer UniformConstant 109
111(ii2D): 110(ptr) Variable UniformConstant
119: TypeImage 25(int) 3D sampled format:Unknown
120: TypePointer UniformConstant 119
121(ii3D): 120(ptr) Variable UniformConstant
128: TypeImage 25(int) 1D array sampled format:Unknown
129: TypePointer UniformConstant 128
130(ii1DArray): 129(ptr) Variable UniformConstant
138: TypeImage 25(int) 2D array sampled format:Unknown
139: TypePointer UniformConstant 138
140(ii2DArray): 139(ptr) Variable UniformConstant
147: TypeImage 25(int) 2D multi-sampled sampled format:Unknown
148: TypePointer UniformConstant 147
149(ii2DMS): 148(ptr) Variable UniformConstant
158: TypeImage 25(int) 2D array multi-sampled sampled format:Unknown
159: TypePointer UniformConstant 158
160(ii2DMSArray): 159(ptr) Variable UniformConstant
173: TypeImage 13(float) 3D nonsampled format:R32f
174: TypePointer UniformConstant 173
175(OUT): 174(ptr) Variable UniformConstant
180: TypePointer Input 7(ivec3)
181(tid): 180(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
32(tid): 8(ptr) Variable Function 179(tid): 8(ptr) Variable Function
36(param): 8(ptr) Variable Function 183(param): 8(ptr) Variable Function
35: 7(ivec3) Load 34(tid) 182: 7(ivec3) Load 181(tid)
Store 32(tid) 35 Store 179(tid) 182
37: 7(ivec3) Load 32(tid) 184: 7(ivec3) Load 179(tid)
Store 36(param) 37 Store 183(param) 184
38: 2 FunctionCall 11(@main(vu3;) 36(param) 185: 2 FunctionCall 11(@main(vu3;) 183(param)
Return Return
FunctionEnd FunctionEnd
11(@main(vu3;): 2 Function None 9 11(@main(vu3;): 2 Function None 9
10(tid): 8(ptr) FunctionParameter 10(tid): 8(ptr) FunctionParameter
12: Label 12: Label
14(storeTemp): 13(ptr) Variable Function 15(f): 14(ptr) Variable Function
19: 16 Load 18(IN) 97(i): 96(ptr) Variable Function
20: 7(ivec3) Load 10(tid) 168(storeTemp): 14(ptr) Variable Function
23: 22(ivec4) ImageFetch 19 20 Lod 21 Store 15(f) 16
24: 15(int) CompositeExtract 23 0 20: 17 Load 19(i1D)
25: 6(int) Bitcast 24 23: 22(ptr) AccessChain 10(tid) 21
Store 14(storeTemp) 25 24: 6(int) Load 23
29: 26 Load 28(OUT) 28: 27(fvec4) ImageFetch 20 24 Lod 26
30: 7(ivec3) Load 10(tid) 29: 13(float) CompositeExtract 28 0
31: 6(int) Load 14(storeTemp) 30: 13(float) Load 15(f)
ImageWrite 29 30 31 31: 13(float) FAdd 30 29
Store 15(f) 31
35: 32 Load 34(i2D)
37: 7(ivec3) Load 10(tid)
38: 36(ivec2) VectorShuffle 37 37 0 1
39: 27(fvec4) ImageFetch 35 38 Lod 26
40: 13(float) CompositeExtract 39 0
41: 13(float) Load 15(f)
42: 13(float) FAdd 41 40
Store 15(f) 42
46: 43 Load 45(i3D)
47: 7(ivec3) Load 10(tid)
48: 27(fvec4) ImageFetch 46 47 Lod 26
49: 13(float) CompositeExtract 48 0
50: 13(float) Load 15(f)
51: 13(float) FAdd 50 49
Store 15(f) 51
55: 52 Load 54(i1DArray)
56: 7(ivec3) Load 10(tid)
57: 36(ivec2) VectorShuffle 56 56 0 1
58: 27(fvec4) ImageFetch 55 57 Lod 26
59: 13(float) CompositeExtract 58 0
60: 13(float) Load 15(f)
61: 13(float) FAdd 60 59
Store 15(f) 61
65: 62 Load 64(i2DArray)
66: 7(ivec3) Load 10(tid)
67: 27(fvec4) ImageFetch 65 66 Lod 26
68: 13(float) CompositeExtract 67 0
69: 13(float) Load 15(f)
70: 13(float) FAdd 69 68
Store 15(f) 70
74: 71 Load 73(i2DMS)
75: 7(ivec3) Load 10(tid)
76: 36(ivec2) VectorShuffle 75 75 0 1
78: 77(ivec2) Bitcast 76
80: 27(fvec4) ImageFetch 74 78 Sample 79
81: 13(float) CompositeExtract 80 0
82: 13(float) Load 15(f)
83: 13(float) FAdd 82 81
Store 15(f) 83
87: 84 Load 86(i2DMSArray)
88: 7(ivec3) Load 10(tid)
90: 89(ivec3) Bitcast 88
92: 27(fvec4) ImageFetch 87 90 Sample 91
93: 13(float) CompositeExtract 92 0
94: 13(float) Load 15(f)
95: 13(float) FAdd 94 93
Store 15(f) 95
Store 97(i) 26
101: 98 Load 100(ii1D)
102: 22(ptr) AccessChain 10(tid) 21
103: 6(int) Load 102
105: 104(ivec4) ImageFetch 101 103 Lod 26
106: 25(int) CompositeExtract 105 0
107: 25(int) Load 97(i)
108: 25(int) IAdd 107 106
Store 97(i) 108
112: 109 Load 111(ii2D)
113: 7(ivec3) Load 10(tid)
114: 36(ivec2) VectorShuffle 113 113 0 1
115: 104(ivec4) ImageFetch 112 114 Lod 26
116: 25(int) CompositeExtract 115 0
117: 25(int) Load 97(i)
118: 25(int) IAdd 117 116
Store 97(i) 118
122: 119 Load 121(ii3D)
123: 7(ivec3) Load 10(tid)
124: 104(ivec4) ImageFetch 122 123 Lod 26
125: 25(int) CompositeExtract 124 0
126: 25(int) Load 97(i)
127: 25(int) IAdd 126 125
Store 97(i) 127
131: 128 Load 130(ii1DArray)
132: 7(ivec3) Load 10(tid)
133: 36(ivec2) VectorShuffle 132 132 0 1
134: 104(ivec4) ImageFetch 131 133 Lod 26
135: 25(int) CompositeExtract 134 0
136: 25(int) Load 97(i)
137: 25(int) IAdd 136 135
Store 97(i) 137
141: 138 Load 140(ii2DArray)
142: 7(ivec3) Load 10(tid)
143: 104(ivec4) ImageFetch 141 142 Lod 26
144: 25(int) CompositeExtract 143 0
145: 25(int) Load 97(i)
146: 25(int) IAdd 145 144
Store 97(i) 146
150: 147 Load 149(ii2DMS)
151: 7(ivec3) Load 10(tid)
152: 36(ivec2) VectorShuffle 151 151 0 1
153: 77(ivec2) Bitcast 152
154: 104(ivec4) ImageFetch 150 153 Sample 79
155: 25(int) CompositeExtract 154 0
156: 25(int) Load 97(i)
157: 25(int) IAdd 156 155
Store 97(i) 157
161: 158 Load 160(ii2DMSArray)
162: 7(ivec3) Load 10(tid)
163: 89(ivec3) Bitcast 162
164: 104(ivec4) ImageFetch 161 163 Sample 91
165: 25(int) CompositeExtract 164 0
166: 25(int) Load 97(i)
167: 25(int) IAdd 166 165
Store 97(i) 167
169: 13(float) Load 15(f)
170: 25(int) Load 97(i)
171: 13(float) ConvertSToF 170
172: 13(float) FAdd 169 171
Store 168(storeTemp) 172
176: 173 Load 175(OUT)
177: 7(ivec3) Load 10(tid)
178: 13(float) Load 168(storeTemp)
ImageWrite 176 177 178
Return Return
FunctionEnd FunctionEnd

View File

@ -0,0 +1,477 @@
hlsl.imageload-subvec4.comp
Shader version: 500
local_size = (8, 8, 8)
0:? Sequence
0:17 Function Definition: @main(vu3; ( temp void)
0:17 Function Parameters:
0:17 'tid' ( in 3-component vector of uint)
0:? Sequence
0:18 Sequence
0:18 move second child to first child ( temp float)
0:18 'f' ( temp float)
0:18 Constant:
0:18 0.000000
0:19 add second child into first child ( temp float)
0:19 'f' ( temp float)
0:19 imageLoad ( temp float)
0:19 'i1D' (layout( binding=0 r32f) uniform image1D)
0:19 direct index ( temp uint)
0:19 'tid' ( in 3-component vector of uint)
0:19 Constant:
0:19 0 (const int)
0:20 add second child into first child ( temp float)
0:20 'f' ( temp float)
0:20 imageLoad ( temp float)
0:20 'i2D' (layout( binding=1 r32f) uniform image2D)
0:20 vector swizzle ( temp 2-component vector of uint)
0:20 'tid' ( in 3-component vector of uint)
0:20 Sequence
0:20 Constant:
0:20 0 (const int)
0:20 Constant:
0:20 1 (const int)
0:21 add second child into first child ( temp float)
0:21 'f' ( temp float)
0:21 imageLoad ( temp float)
0:21 'i3D' (layout( binding=2 r32f) uniform image3D)
0:21 'tid' ( in 3-component vector of uint)
0:22 add second child into first child ( temp float)
0:22 'f' ( temp float)
0:22 imageLoad ( temp float)
0:22 'i1DArray' (layout( binding=3 r32f) uniform image1DArray)
0:22 vector swizzle ( temp 2-component vector of uint)
0:22 'tid' ( in 3-component vector of uint)
0:22 Sequence
0:22 Constant:
0:22 0 (const int)
0:22 Constant:
0:22 1 (const int)
0:23 add second child into first child ( temp float)
0:23 'f' ( temp float)
0:23 imageLoad ( temp float)
0:23 'i2DArray' (layout( binding=4 r32f) uniform image2DArray)
0:23 'tid' ( in 3-component vector of uint)
0:25 Sequence
0:25 move second child to first child ( temp int)
0:25 'i' ( temp int)
0:25 Constant:
0:25 0 (const int)
0:26 add second child into first child ( temp int)
0:26 'i' ( temp int)
0:26 imageLoad ( temp int)
0:26 'ii1D' (layout( binding=5 r32i) uniform iimage1D)
0:26 direct index ( temp uint)
0:26 'tid' ( in 3-component vector of uint)
0:26 Constant:
0:26 0 (const int)
0:27 add second child into first child ( temp int)
0:27 'i' ( temp int)
0:27 imageLoad ( temp int)
0:27 'ii2D' (layout( binding=6 r32i) uniform iimage2D)
0:27 vector swizzle ( temp 2-component vector of uint)
0:27 'tid' ( in 3-component vector of uint)
0:27 Sequence
0:27 Constant:
0:27 0 (const int)
0:27 Constant:
0:27 1 (const int)
0:28 add second child into first child ( temp int)
0:28 'i' ( temp int)
0:28 imageLoad ( temp int)
0:28 'ii3D' (layout( binding=7 r32i) uniform iimage3D)
0:28 'tid' ( in 3-component vector of uint)
0:29 add second child into first child ( temp int)
0:29 'i' ( temp int)
0:29 imageLoad ( temp int)
0:29 'ii1DArray' (layout( binding=8 r32i) uniform iimage1DArray)
0:29 vector swizzle ( temp 2-component vector of uint)
0:29 'tid' ( in 3-component vector of uint)
0:29 Sequence
0:29 Constant:
0:29 0 (const int)
0:29 Constant:
0:29 1 (const int)
0:30 add second child into first child ( temp int)
0:30 'i' ( temp int)
0:30 imageLoad ( temp int)
0:30 'ii2DArray' (layout( binding=9 r32i) uniform iimage2DArray)
0:30 'tid' ( in 3-component vector of uint)
0:32 Sequence
0:32 move second child to first child ( temp float)
0:32 'storeTemp' ( temp float)
0:32 add ( temp float)
0:32 'f' ( temp float)
0:32 Convert int to float ( temp float)
0:32 'i' ( temp int)
0:32 imageStore ( temp void)
0:32 'OUT' (layout( binding=10 r32f) uniform image3D)
0:32 'tid' ( in 3-component vector of uint)
0:32 'storeTemp' ( temp float)
0:32 'storeTemp' ( temp float)
0:17 Function Definition: main( ( temp void)
0:17 Function Parameters:
0:? Sequence
0:17 move second child to first child ( temp 3-component vector of uint)
0:? 'tid' ( temp 3-component vector of uint)
0:? 'tid' ( in 3-component vector of uint GlobalInvocationID)
0:17 Function Call: @main(vu3; ( temp void)
0:? 'tid' ( temp 3-component vector of uint)
0:? Linker Objects
0:? 'i1D' (layout( binding=0 r32f) uniform image1D)
0:? 'i2D' (layout( binding=1 r32f) uniform image2D)
0:? 'i3D' (layout( binding=2 r32f) uniform image3D)
0:? 'i1DArray' (layout( binding=3 r32f) uniform image1DArray)
0:? 'i2DArray' (layout( binding=4 r32f) uniform image2DArray)
0:? 'ii1D' (layout( binding=5 r32i) uniform iimage1D)
0:? 'ii2D' (layout( binding=6 r32i) uniform iimage2D)
0:? 'ii3D' (layout( binding=7 r32i) uniform iimage3D)
0:? 'ii1DArray' (layout( binding=8 r32i) uniform iimage1DArray)
0:? 'ii2DArray' (layout( binding=9 r32i) uniform iimage2DArray)
0:? 'OUT' (layout( binding=10 r32f) uniform image3D)
0:? 'tid' ( in 3-component vector of uint GlobalInvocationID)
Linked compute stage:
Shader version: 500
local_size = (8, 8, 8)
0:? Sequence
0:17 Function Definition: @main(vu3; ( temp void)
0:17 Function Parameters:
0:17 'tid' ( in 3-component vector of uint)
0:? Sequence
0:18 Sequence
0:18 move second child to first child ( temp float)
0:18 'f' ( temp float)
0:18 Constant:
0:18 0.000000
0:19 add second child into first child ( temp float)
0:19 'f' ( temp float)
0:19 imageLoad ( temp float)
0:19 'i1D' (layout( binding=0 r32f) uniform image1D)
0:19 direct index ( temp uint)
0:19 'tid' ( in 3-component vector of uint)
0:19 Constant:
0:19 0 (const int)
0:20 add second child into first child ( temp float)
0:20 'f' ( temp float)
0:20 imageLoad ( temp float)
0:20 'i2D' (layout( binding=1 r32f) uniform image2D)
0:20 vector swizzle ( temp 2-component vector of uint)
0:20 'tid' ( in 3-component vector of uint)
0:20 Sequence
0:20 Constant:
0:20 0 (const int)
0:20 Constant:
0:20 1 (const int)
0:21 add second child into first child ( temp float)
0:21 'f' ( temp float)
0:21 imageLoad ( temp float)
0:21 'i3D' (layout( binding=2 r32f) uniform image3D)
0:21 'tid' ( in 3-component vector of uint)
0:22 add second child into first child ( temp float)
0:22 'f' ( temp float)
0:22 imageLoad ( temp float)
0:22 'i1DArray' (layout( binding=3 r32f) uniform image1DArray)
0:22 vector swizzle ( temp 2-component vector of uint)
0:22 'tid' ( in 3-component vector of uint)
0:22 Sequence
0:22 Constant:
0:22 0 (const int)
0:22 Constant:
0:22 1 (const int)
0:23 add second child into first child ( temp float)
0:23 'f' ( temp float)
0:23 imageLoad ( temp float)
0:23 'i2DArray' (layout( binding=4 r32f) uniform image2DArray)
0:23 'tid' ( in 3-component vector of uint)
0:25 Sequence
0:25 move second child to first child ( temp int)
0:25 'i' ( temp int)
0:25 Constant:
0:25 0 (const int)
0:26 add second child into first child ( temp int)
0:26 'i' ( temp int)
0:26 imageLoad ( temp int)
0:26 'ii1D' (layout( binding=5 r32i) uniform iimage1D)
0:26 direct index ( temp uint)
0:26 'tid' ( in 3-component vector of uint)
0:26 Constant:
0:26 0 (const int)
0:27 add second child into first child ( temp int)
0:27 'i' ( temp int)
0:27 imageLoad ( temp int)
0:27 'ii2D' (layout( binding=6 r32i) uniform iimage2D)
0:27 vector swizzle ( temp 2-component vector of uint)
0:27 'tid' ( in 3-component vector of uint)
0:27 Sequence
0:27 Constant:
0:27 0 (const int)
0:27 Constant:
0:27 1 (const int)
0:28 add second child into first child ( temp int)
0:28 'i' ( temp int)
0:28 imageLoad ( temp int)
0:28 'ii3D' (layout( binding=7 r32i) uniform iimage3D)
0:28 'tid' ( in 3-component vector of uint)
0:29 add second child into first child ( temp int)
0:29 'i' ( temp int)
0:29 imageLoad ( temp int)
0:29 'ii1DArray' (layout( binding=8 r32i) uniform iimage1DArray)
0:29 vector swizzle ( temp 2-component vector of uint)
0:29 'tid' ( in 3-component vector of uint)
0:29 Sequence
0:29 Constant:
0:29 0 (const int)
0:29 Constant:
0:29 1 (const int)
0:30 add second child into first child ( temp int)
0:30 'i' ( temp int)
0:30 imageLoad ( temp int)
0:30 'ii2DArray' (layout( binding=9 r32i) uniform iimage2DArray)
0:30 'tid' ( in 3-component vector of uint)
0:32 Sequence
0:32 move second child to first child ( temp float)
0:32 'storeTemp' ( temp float)
0:32 add ( temp float)
0:32 'f' ( temp float)
0:32 Convert int to float ( temp float)
0:32 'i' ( temp int)
0:32 imageStore ( temp void)
0:32 'OUT' (layout( binding=10 r32f) uniform image3D)
0:32 'tid' ( in 3-component vector of uint)
0:32 'storeTemp' ( temp float)
0:32 'storeTemp' ( temp float)
0:17 Function Definition: main( ( temp void)
0:17 Function Parameters:
0:? Sequence
0:17 move second child to first child ( temp 3-component vector of uint)
0:? 'tid' ( temp 3-component vector of uint)
0:? 'tid' ( in 3-component vector of uint GlobalInvocationID)
0:17 Function Call: @main(vu3; ( temp void)
0:? 'tid' ( temp 3-component vector of uint)
0:? Linker Objects
0:? 'i1D' (layout( binding=0 r32f) uniform image1D)
0:? 'i2D' (layout( binding=1 r32f) uniform image2D)
0:? 'i3D' (layout( binding=2 r32f) uniform image3D)
0:? 'i1DArray' (layout( binding=3 r32f) uniform image1DArray)
0:? 'i2DArray' (layout( binding=4 r32f) uniform image2DArray)
0:? 'ii1D' (layout( binding=5 r32i) uniform iimage1D)
0:? 'ii2D' (layout( binding=6 r32i) uniform iimage2D)
0:? 'ii3D' (layout( binding=7 r32i) uniform iimage3D)
0:? 'ii1DArray' (layout( binding=8 r32i) uniform iimage1DArray)
0:? 'ii2DArray' (layout( binding=9 r32i) uniform iimage2DArray)
0:? 'OUT' (layout( binding=10 r32f) uniform image3D)
0:? 'tid' ( in 3-component vector of uint GlobalInvocationID)
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 138
Capability Shader
Capability Image1D
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 133
ExecutionMode 4 LocalSize 8 8 8
Source HLSL 500
Name 4 "main"
Name 11 "@main(vu3;"
Name 10 "tid"
Name 15 "f"
Name 19 "i1D"
Name 32 "i2D"
Name 43 "i3D"
Name 52 "i1DArray"
Name 62 "i2DArray"
Name 71 "i"
Name 75 "ii1D"
Name 86 "ii2D"
Name 96 "ii3D"
Name 105 "ii1DArray"
Name 115 "ii2DArray"
Name 122 "storeTemp"
Name 127 "OUT"
Name 131 "tid"
Name 133 "tid"
Name 135 "param"
Decorate 19(i1D) DescriptorSet 0
Decorate 19(i1D) Binding 0
Decorate 32(i2D) DescriptorSet 0
Decorate 32(i2D) Binding 1
Decorate 43(i3D) DescriptorSet 0
Decorate 43(i3D) Binding 2
Decorate 52(i1DArray) DescriptorSet 0
Decorate 52(i1DArray) Binding 3
Decorate 62(i2DArray) DescriptorSet 0
Decorate 62(i2DArray) Binding 4
Decorate 75(ii1D) DescriptorSet 0
Decorate 75(ii1D) Binding 5
Decorate 86(ii2D) DescriptorSet 0
Decorate 86(ii2D) Binding 6
Decorate 96(ii3D) DescriptorSet 0
Decorate 96(ii3D) Binding 7
Decorate 105(ii1DArray) DescriptorSet 0
Decorate 105(ii1DArray) Binding 8
Decorate 115(ii2DArray) DescriptorSet 0
Decorate 115(ii2DArray) Binding 9
Decorate 127(OUT) DescriptorSet 0
Decorate 127(OUT) Binding 10
Decorate 133(tid) BuiltIn GlobalInvocationId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypeVector 6(int) 3
8: TypePointer Function 7(ivec3)
9: TypeFunction 2 8(ptr)
13: TypeFloat 32
14: TypePointer Function 13(float)
16: 13(float) Constant 0
17: TypeImage 13(float) 1D nonsampled format:R32f
18: TypePointer UniformConstant 17
19(i1D): 18(ptr) Variable UniformConstant
21: 6(int) Constant 0
22: TypePointer Function 6(int)
25: TypeVector 13(float) 4
30: TypeImage 13(float) 2D nonsampled format:R32f
31: TypePointer UniformConstant 30
32(i2D): 31(ptr) Variable UniformConstant
34: TypeVector 6(int) 2
41: TypeImage 13(float) 3D nonsampled format:R32f
42: TypePointer UniformConstant 41
43(i3D): 42(ptr) Variable UniformConstant
50: TypeImage 13(float) 1D array nonsampled format:R32f
51: TypePointer UniformConstant 50
52(i1DArray): 51(ptr) Variable UniformConstant
60: TypeImage 13(float) 2D array nonsampled format:R32f
61: TypePointer UniformConstant 60
62(i2DArray): 61(ptr) Variable UniformConstant
69: TypeInt 32 1
70: TypePointer Function 69(int)
72: 69(int) Constant 0
73: TypeImage 69(int) 1D nonsampled format:R32i
74: TypePointer UniformConstant 73
75(ii1D): 74(ptr) Variable UniformConstant
79: TypeVector 69(int) 4
84: TypeImage 69(int) 2D nonsampled format:R32i
85: TypePointer UniformConstant 84
86(ii2D): 85(ptr) Variable UniformConstant
94: TypeImage 69(int) 3D nonsampled format:R32i
95: TypePointer UniformConstant 94
96(ii3D): 95(ptr) Variable UniformConstant
103: TypeImage 69(int) 1D array nonsampled format:R32i
104: TypePointer UniformConstant 103
105(ii1DArray): 104(ptr) Variable UniformConstant
113: TypeImage 69(int) 2D array nonsampled format:R32i
114: TypePointer UniformConstant 113
115(ii2DArray): 114(ptr) Variable UniformConstant
127(OUT): 42(ptr) Variable UniformConstant
132: TypePointer Input 7(ivec3)
133(tid): 132(ptr) Variable Input
4(main): 2 Function None 3
5: Label
131(tid): 8(ptr) Variable Function
135(param): 8(ptr) Variable Function
134: 7(ivec3) Load 133(tid)
Store 131(tid) 134
136: 7(ivec3) Load 131(tid)
Store 135(param) 136
137: 2 FunctionCall 11(@main(vu3;) 135(param)
Return
FunctionEnd
11(@main(vu3;): 2 Function None 9
10(tid): 8(ptr) FunctionParameter
12: Label
15(f): 14(ptr) Variable Function
71(i): 70(ptr) Variable Function
122(storeTemp): 14(ptr) Variable Function
Store 15(f) 16
20: 17 Load 19(i1D)
23: 22(ptr) AccessChain 10(tid) 21
24: 6(int) Load 23
26: 25(fvec4) ImageRead 20 24
27: 13(float) CompositeExtract 26 0
28: 13(float) Load 15(f)
29: 13(float) FAdd 28 27
Store 15(f) 29
33: 30 Load 32(i2D)
35: 7(ivec3) Load 10(tid)
36: 34(ivec2) VectorShuffle 35 35 0 1
37: 25(fvec4) ImageRead 33 36
38: 13(float) CompositeExtract 37 0
39: 13(float) Load 15(f)
40: 13(float) FAdd 39 38
Store 15(f) 40
44: 41 Load 43(i3D)
45: 7(ivec3) Load 10(tid)
46: 25(fvec4) ImageRead 44 45
47: 13(float) CompositeExtract 46 0
48: 13(float) Load 15(f)
49: 13(float) FAdd 48 47
Store 15(f) 49
53: 50 Load 52(i1DArray)
54: 7(ivec3) Load 10(tid)
55: 34(ivec2) VectorShuffle 54 54 0 1
56: 25(fvec4) ImageRead 53 55
57: 13(float) CompositeExtract 56 0
58: 13(float) Load 15(f)
59: 13(float) FAdd 58 57
Store 15(f) 59
63: 60 Load 62(i2DArray)
64: 7(ivec3) Load 10(tid)
65: 25(fvec4) ImageRead 63 64
66: 13(float) CompositeExtract 65 0
67: 13(float) Load 15(f)
68: 13(float) FAdd 67 66
Store 15(f) 68
Store 71(i) 72
76: 73 Load 75(ii1D)
77: 22(ptr) AccessChain 10(tid) 21
78: 6(int) Load 77
80: 79(ivec4) ImageRead 76 78
81: 69(int) CompositeExtract 80 0
82: 69(int) Load 71(i)
83: 69(int) IAdd 82 81
Store 71(i) 83
87: 84 Load 86(ii2D)
88: 7(ivec3) Load 10(tid)
89: 34(ivec2) VectorShuffle 88 88 0 1
90: 79(ivec4) ImageRead 87 89
91: 69(int) CompositeExtract 90 0
92: 69(int) Load 71(i)
93: 69(int) IAdd 92 91
Store 71(i) 93
97: 94 Load 96(ii3D)
98: 7(ivec3) Load 10(tid)
99: 79(ivec4) ImageRead 97 98
100: 69(int) CompositeExtract 99 0
101: 69(int) Load 71(i)
102: 69(int) IAdd 101 100
Store 71(i) 102
106: 103 Load 105(ii1DArray)
107: 7(ivec3) Load 10(tid)
108: 34(ivec2) VectorShuffle 107 107 0 1
109: 79(ivec4) ImageRead 106 108
110: 69(int) CompositeExtract 109 0
111: 69(int) Load 71(i)
112: 69(int) IAdd 111 110
Store 71(i) 112
116: 113 Load 115(ii2DArray)
117: 7(ivec3) Load 10(tid)
118: 79(ivec4) ImageRead 116 117
119: 69(int) CompositeExtract 118 0
120: 69(int) Load 71(i)
121: 69(int) IAdd 120 119
Store 71(i) 121
123: 13(float) Load 15(f)
124: 69(int) Load 71(i)
125: 13(float) ConvertSToF 124
126: 13(float) FAdd 123 125
Store 122(storeTemp) 126
128: 41 Load 127(OUT)
129: 7(ivec3) Load 10(tid)
130: 13(float) Load 122(storeTemp)
ImageWrite 128 129 130
Return
FunctionEnd

View File

@ -238,12 +238,12 @@ Shader version: 500
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 90 // Id's are bound by 93
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 83 86 EntryPoint Vertex 4 "main" 86 89
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 11 "@main(vf4;" Name 11 "@main(vf4;"
@ -257,15 +257,15 @@ Shader version: 500
Name 24 "packed" Name 24 "packed"
Name 27 "tex" Name 27 "tex"
Name 47 "i" Name 47 "i"
Name 69 "packed2" Name 72 "packed2"
Name 81 "pos" Name 84 "pos"
Name 83 "pos" Name 86 "pos"
Name 86 "@entryPointOutput" Name 89 "@entryPointOutput"
Name 87 "param" Name 90 "param"
Decorate 27(tex) DescriptorSet 0 Decorate 27(tex) DescriptorSet 0
Decorate 27(tex) Binding 0 Decorate 27(tex) Binding 0
Decorate 83(pos) Location 0 Decorate 86(pos) Location 0
Decorate 86(@entryPointOutput) BuiltIn Position Decorate 89(@entryPointOutput) BuiltIn Position
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -300,20 +300,22 @@ Shader version: 500
44: 21(int) Constant 4 44: 21(int) Constant 4
45: TypePointer Function 21(int) 45: TypePointer Function 21(int)
54: TypeBool 54: TypeBool
82: TypePointer Input 7(fvec4) 64: 15(int) Constant 0
83(pos): 82(ptr) Variable Input 67: 15(int) Constant 1
85: TypePointer Output 7(fvec4) 85: TypePointer Input 7(fvec4)
86(@entryPointOutput): 85(ptr) Variable Output 86(pos): 85(ptr) Variable Input
88: TypePointer Output 7(fvec4)
89(@entryPointOutput): 88(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
81(pos): 8(ptr) Variable Function 84(pos): 8(ptr) Variable Function
87(param): 8(ptr) Variable Function 90(param): 8(ptr) Variable Function
84: 7(fvec4) Load 83(pos) 87: 7(fvec4) Load 86(pos)
Store 81(pos) 84 Store 84(pos) 87
88: 7(fvec4) Load 81(pos) 91: 7(fvec4) Load 84(pos)
Store 87(param) 88 Store 90(param) 91
89: 7(fvec4) FunctionCall 11(@main(vf4;) 87(param) 92: 7(fvec4) FunctionCall 11(@main(vf4;) 90(param)
Store 86(@entryPointOutput) 89 Store 89(@entryPointOutput) 92
Return Return
FunctionEnd FunctionEnd
11(@main(vf4;): 7(fvec4) Function None 9 11(@main(vf4;): 7(fvec4) Function None 9
@ -321,7 +323,7 @@ Shader version: 500
12: Label 12: Label
24(packed): 23(ptr) Variable Function 24(packed): 23(ptr) Variable Function
47(i): 45(ptr) Variable Function 47(i): 45(ptr) Variable Function
69(packed2): 23(ptr) Variable Function 72(packed2): 23(ptr) Variable Function
28: 13 Load 27(tex) 28: 13 Load 27(tex)
30: 29(ptr) AccessChain 24(packed) 25 30: 29(ptr) AccessChain 24(packed) 25
Store 30 28 Store 30 28
@ -351,26 +353,28 @@ Shader version: 500
61: 14(fvec3) Load 60 61: 14(fvec3) Load 60
62: 18(fvec2) VectorShuffle 61 61 0 1 62: 18(fvec2) VectorShuffle 61 61 0 1
63: 18(fvec2) FAdd 62 59 63: 18(fvec2) FAdd 62 59
64: 34(ptr) AccessChain 24(packed) 31 56 65: 42(ptr) AccessChain 24(packed) 31 56 64
65: 14(fvec3) Load 64 66: 6(float) CompositeExtract 63 0
66: 14(fvec3) VectorShuffle 65 63 3 4 2 Store 65 66
Store 64 66 68: 42(ptr) AccessChain 24(packed) 31 56 67
69: 6(float) CompositeExtract 63 1
Store 68 69
Branch 51 Branch 51
51: Label 51: Label
67: 21(int) Load 47(i) 70: 21(int) Load 47(i)
68: 21(int) IAdd 67 31 71: 21(int) IAdd 70 31
Store 47(i) 68 Store 47(i) 71
Branch 48 Branch 48
50: Label 50: Label
70: 22(Packed) Load 24(packed) 73: 22(Packed) Load 24(packed)
Store 69(packed2) 70 Store 72(packed2) 73
71: 7(fvec4) Load 10(pos) 74: 7(fvec4) Load 10(pos)
72: 34(ptr) AccessChain 69(packed2) 31 25 75: 34(ptr) AccessChain 72(packed2) 31 25
73: 14(fvec3) Load 72 76: 14(fvec3) Load 75
74: 6(float) CompositeExtract 73 0 77: 6(float) CompositeExtract 76 0
75: 6(float) CompositeExtract 73 1 78: 6(float) CompositeExtract 76 1
76: 6(float) CompositeExtract 73 2 79: 6(float) CompositeExtract 76 2
77: 7(fvec4) CompositeConstruct 74 75 76 32 80: 7(fvec4) CompositeConstruct 77 78 79 32
78: 7(fvec4) FAdd 71 77 81: 7(fvec4) FAdd 74 80
ReturnValue 78 ReturnValue 81
FunctionEnd FunctionEnd

View File

@ -97,17 +97,16 @@ gl_FragCoord origin is upper left
0:? 'g_tBuf1du1' (layout( binding=3 r32ui) uniform uimageBuffer) 0:? 'g_tBuf1du1' (layout( binding=3 r32ui) uniform uimageBuffer)
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
Validation failed
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 42 // Id's are bound by 45
Capability Shader Capability Shader
Capability Image1D Capability Image1D
Capability ImageBuffer Capability ImageBuffer
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 39 EntryPoint Fragment 4 "main" 42
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
@ -116,15 +115,15 @@ Validation failed
Name 10 "@main(" Name 10 "@main("
Name 13 "r00" Name 13 "r00"
Name 16 "g_tTex1df1" Name 16 "g_tTex1df1"
Name 23 "r01" Name 24 "r01"
Name 26 "g_tBuf1du1" Name 27 "g_tBuf1du1"
Name 30 "psout" Name 33 "psout"
Name 39 "@entryPointOutput.Color" Name 42 "@entryPointOutput.Color"
Decorate 16(g_tTex1df1) DescriptorSet 0 Decorate 16(g_tTex1df1) DescriptorSet 0
Decorate 16(g_tTex1df1) Binding 2 Decorate 16(g_tTex1df1) Binding 2
Decorate 26(g_tBuf1du1) DescriptorSet 0 Decorate 27(g_tBuf1du1) DescriptorSet 0
Decorate 26(g_tBuf1du1) Binding 3 Decorate 27(g_tBuf1du1) Binding 3
Decorate 39(@entryPointOutput.Color) Location 0 Decorate 42(@entryPointOutput.Color) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -137,37 +136,40 @@ Validation failed
16(g_tTex1df1): 15(ptr) Variable UniformConstant 16(g_tTex1df1): 15(ptr) Variable UniformConstant
18: TypeInt 32 1 18: TypeInt 32 1
19: 18(int) Constant 0 19: 18(int) Constant 0
21: TypeInt 32 0 22: TypeInt 32 0
22: TypePointer Function 21(int) 23: TypePointer Function 22(int)
24: TypeImage 21(int) Buffer nonsampled format:R32ui 25: TypeImage 22(int) Buffer nonsampled format:R32ui
25: TypePointer UniformConstant 24 26: TypePointer UniformConstant 25
26(g_tBuf1du1): 25(ptr) Variable UniformConstant 27(g_tBuf1du1): 26(ptr) Variable UniformConstant
29: TypePointer Function 8(PS_OUTPUT) 29: TypeVector 22(int) 4
31: 6(float) Constant 1065353216 32: TypePointer Function 8(PS_OUTPUT)
32: 7(fvec4) ConstantComposite 31 31 31 31 34: 6(float) Constant 1065353216
33: TypePointer Function 7(fvec4) 35: 7(fvec4) ConstantComposite 34 34 34 34
38: TypePointer Output 7(fvec4) 36: TypePointer Function 7(fvec4)
39(@entryPointOutput.Color): 38(ptr) Variable Output 41: TypePointer Output 7(fvec4)
42(@entryPointOutput.Color): 41(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
40:8(PS_OUTPUT) FunctionCall 10(@main() 43:8(PS_OUTPUT) FunctionCall 10(@main()
41: 7(fvec4) CompositeExtract 40 0 44: 7(fvec4) CompositeExtract 43 0
Store 39(@entryPointOutput.Color) 41 Store 42(@entryPointOutput.Color) 44
Return Return
FunctionEnd FunctionEnd
10(@main():8(PS_OUTPUT) Function None 9 10(@main():8(PS_OUTPUT) Function None 9
11: Label 11: Label
13(r00): 12(ptr) Variable Function 13(r00): 12(ptr) Variable Function
23(r01): 22(ptr) Variable Function 24(r01): 23(ptr) Variable Function
30(psout): 29(ptr) Variable Function 33(psout): 32(ptr) Variable Function
17: 14 Load 16(g_tTex1df1) 17: 14 Load 16(g_tTex1df1)
20: 6(float) ImageRead 17 19 20: 7(fvec4) ImageRead 17 19
Store 13(r00) 20 21: 6(float) CompositeExtract 20 0
27: 24 Load 26(g_tBuf1du1) Store 13(r00) 21
28: 21(int) ImageRead 27 19 28: 25 Load 27(g_tBuf1du1)
Store 23(r01) 28 30: 29(ivec4) ImageRead 28 19
34: 33(ptr) AccessChain 30(psout) 19 31: 22(int) CompositeExtract 30 0
Store 34 32 Store 24(r01) 31
35:8(PS_OUTPUT) Load 30(psout) 37: 36(ptr) AccessChain 33(psout) 19
ReturnValue 35 Store 37 35
38:8(PS_OUTPUT) Load 33(psout)
ReturnValue 38
FunctionEnd FunctionEnd

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2299,7 +2299,7 @@ local_size = (32, 16, 1)
// Module Version 10300 // Module Version 10300
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 359 // Id's are bound by 393
Capability Shader Capability Shader
Capability Float64 Capability Float64
@ -2308,7 +2308,7 @@ local_size = (32, 16, 1)
Capability GroupNonUniformShuffle Capability GroupNonUniformShuffle
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "CSMain" 354 EntryPoint GLCompute 4 "CSMain" 388
ExecutionMode 4 LocalSize 32 16 1 ExecutionMode 4 LocalSize 32 16 1
Source HLSL 500 Source HLSL 500
Name 4 "CSMain" Name 4 "CSMain"
@ -2322,9 +2322,9 @@ local_size = (32, 16, 1)
Name 22 "data" Name 22 "data"
MemberName 22(data) 0 "@data" MemberName 22(data) 0 "@data"
Name 24 "data" Name 24 "data"
Name 352 "dti" Name 386 "dti"
Name 354 "dti" Name 388 "dti"
Name 356 "param" Name 390 "param"
MemberDecorate 20(Types) 0 Offset 0 MemberDecorate 20(Types) 0 Offset 0
MemberDecorate 20(Types) 1 Offset 16 MemberDecorate 20(Types) 1 Offset 16
MemberDecorate 20(Types) 2 Offset 32 MemberDecorate 20(Types) 2 Offset 32
@ -2334,7 +2334,7 @@ local_size = (32, 16, 1)
Decorate 22(data) BufferBlock Decorate 22(data) BufferBlock
Decorate 24(data) DescriptorSet 0 Decorate 24(data) DescriptorSet 0
Decorate 24(data) Binding 0 Decorate 24(data) Binding 0
Decorate 354(dti) BuiltIn GlobalInvocationId Decorate 388(dti) BuiltIn GlobalInvocationId
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0
@ -2361,32 +2361,34 @@ local_size = (32, 16, 1)
36: 6(int) Constant 3 36: 6(int) Constant 3
43: TypePointer Uniform 6(int) 43: TypePointer Uniform 6(int)
52: TypeVector 6(int) 2 52: TypeVector 6(int) 2
73: 14(int) Constant 1 59: 6(int) Constant 1
76: TypePointer Uniform 15(ivec4) 74: 6(int) Constant 2
85: TypePointer Uniform 14(int) 79: 14(int) Constant 1
94: TypeVector 14(int) 2 82: TypePointer Uniform 15(ivec4)
106: TypeVector 14(int) 3 91: TypePointer Uniform 14(int)
116: 14(int) Constant 2 100: TypeVector 14(int) 2
119: TypePointer Uniform 17(fvec4) 113: TypeVector 14(int) 3
128: TypePointer Uniform 16(float) 126: 14(int) Constant 2
137: TypeVector 16(float) 2 129: TypePointer Uniform 17(fvec4)
149: TypeVector 16(float) 3 138: TypePointer Uniform 16(float)
159: 14(int) Constant 3 147: TypeVector 16(float) 2
162: TypePointer Uniform 19(f64vec4) 160: TypeVector 16(float) 3
171: TypePointer Uniform 18(float64_t) 173: 14(int) Constant 3
180: TypeVector 18(float64_t) 2 176: TypePointer Uniform 19(f64vec4)
192: TypeVector 18(float64_t) 3 185: TypePointer Uniform 18(float64_t)
353: TypePointer Input 7(ivec3) 194: TypeVector 18(float64_t) 2
354(dti): 353(ptr) Variable Input 207: TypeVector 18(float64_t) 3
387: TypePointer Input 7(ivec3)
388(dti): 387(ptr) Variable Input
4(CSMain): 2 Function None 3 4(CSMain): 2 Function None 3
5: Label 5: Label
352(dti): 8(ptr) Variable Function 386(dti): 8(ptr) Variable Function
356(param): 8(ptr) Variable Function 390(param): 8(ptr) Variable Function
355: 7(ivec3) Load 354(dti) 389: 7(ivec3) Load 388(dti)
Store 352(dti) 355 Store 386(dti) 389
357: 7(ivec3) Load 352(dti) 391: 7(ivec3) Load 386(dti)
Store 356(param) 357 Store 390(param) 391
358: 2 FunctionCall 11(@CSMain(vu3;) 356(param) 392: 2 FunctionCall 11(@CSMain(vu3;) 390(param)
Return Return
FunctionEnd FunctionEnd
11(@CSMain(vu3;): 2 Function None 9 11(@CSMain(vu3;): 2 Function None 9
@ -2418,315 +2420,371 @@ local_size = (32, 16, 1)
54: 13(ivec4) Load 53 54: 13(ivec4) Load 53
55: 52(ivec2) VectorShuffle 54 54 0 1 55: 52(ivec2) VectorShuffle 54 54 0 1
56: 52(ivec2) GroupNonUniformShuffle 36 55 35 56: 52(ivec2) GroupNonUniformShuffle 36 55 35
57: 32(ptr) AccessChain 24(data) 25 49 25 57: 43(ptr) AccessChain 24(data) 25 49 25 26
58: 13(ivec4) Load 57 58: 6(int) CompositeExtract 56 0
59: 13(ivec4) VectorShuffle 58 56 4 5 2 3 Store 57 58
Store 57 59 60: 43(ptr) AccessChain 24(data) 25 49 25 59
60: 27(ptr) AccessChain 10(dti) 26 61: 6(int) CompositeExtract 56 1
61: 6(int) Load 60 Store 60 61
62: 27(ptr) AccessChain 10(dti) 26 62: 27(ptr) AccessChain 10(dti) 26
63: 6(int) Load 62 63: 6(int) Load 62
64: 32(ptr) AccessChain 24(data) 25 63 25 64: 27(ptr) AccessChain 10(dti) 26
65: 13(ivec4) Load 64 65: 6(int) Load 64
66: 7(ivec3) VectorShuffle 65 65 0 1 2 66: 32(ptr) AccessChain 24(data) 25 65 25
67: 7(ivec3) GroupNonUniformShuffle 36 66 35 67: 13(ivec4) Load 66
68: 32(ptr) AccessChain 24(data) 25 61 25 68: 7(ivec3) VectorShuffle 67 67 0 1 2
69: 13(ivec4) Load 68 69: 7(ivec3) GroupNonUniformShuffle 36 68 35
70: 13(ivec4) VectorShuffle 69 67 4 5 6 3 70: 43(ptr) AccessChain 24(data) 25 63 25 26
Store 68 70 71: 6(int) CompositeExtract 69 0
71: 27(ptr) AccessChain 10(dti) 26 Store 70 71
72: 6(int) Load 71 72: 43(ptr) AccessChain 24(data) 25 63 25 59
74: 27(ptr) AccessChain 10(dti) 26 73: 6(int) CompositeExtract 69 1
75: 6(int) Load 74 Store 72 73
77: 76(ptr) AccessChain 24(data) 25 75 73 75: 43(ptr) AccessChain 24(data) 25 63 25 74
78: 15(ivec4) Load 77 76: 6(int) CompositeExtract 69 2
79: 15(ivec4) GroupNonUniformShuffle 36 78 35 Store 75 76
80: 76(ptr) AccessChain 24(data) 25 72 73 77: 27(ptr) AccessChain 10(dti) 26
Store 80 79 78: 6(int) Load 77
81: 27(ptr) AccessChain 10(dti) 26 80: 27(ptr) AccessChain 10(dti) 26
82: 6(int) Load 81 81: 6(int) Load 80
83: 27(ptr) AccessChain 10(dti) 26 83: 82(ptr) AccessChain 24(data) 25 81 79
84: 6(int) Load 83 84: 15(ivec4) Load 83
86: 85(ptr) AccessChain 24(data) 25 84 73 26 85: 15(ivec4) GroupNonUniformShuffle 36 84 35
87: 14(int) Load 86 86: 82(ptr) AccessChain 24(data) 25 78 79
88: 14(int) GroupNonUniformShuffle 36 87 35 Store 86 85
89: 85(ptr) AccessChain 24(data) 25 82 73 26 87: 27(ptr) AccessChain 10(dti) 26
Store 89 88 88: 6(int) Load 87
90: 27(ptr) AccessChain 10(dti) 26 89: 27(ptr) AccessChain 10(dti) 26
91: 6(int) Load 90 90: 6(int) Load 89
92: 27(ptr) AccessChain 10(dti) 26 92: 91(ptr) AccessChain 24(data) 25 90 79 26
93: 6(int) Load 92 93: 14(int) Load 92
95: 76(ptr) AccessChain 24(data) 25 93 73 94: 14(int) GroupNonUniformShuffle 36 93 35
96: 15(ivec4) Load 95 95: 91(ptr) AccessChain 24(data) 25 88 79 26
97: 94(ivec2) VectorShuffle 96 96 0 1 Store 95 94
98: 94(ivec2) GroupNonUniformShuffle 36 97 35 96: 27(ptr) AccessChain 10(dti) 26
99: 76(ptr) AccessChain 24(data) 25 91 73 97: 6(int) Load 96
100: 15(ivec4) Load 99 98: 27(ptr) AccessChain 10(dti) 26
101: 15(ivec4) VectorShuffle 100 98 4 5 2 3 99: 6(int) Load 98
Store 99 101 101: 82(ptr) AccessChain 24(data) 25 99 79
102: 27(ptr) AccessChain 10(dti) 26 102: 15(ivec4) Load 101
103: 6(int) Load 102 103: 100(ivec2) VectorShuffle 102 102 0 1
104: 27(ptr) AccessChain 10(dti) 26 104: 100(ivec2) GroupNonUniformShuffle 36 103 35
105: 6(int) Load 104 105: 91(ptr) AccessChain 24(data) 25 97 79 26
107: 76(ptr) AccessChain 24(data) 25 105 73 106: 14(int) CompositeExtract 104 0
108: 15(ivec4) Load 107 Store 105 106
109: 106(ivec3) VectorShuffle 108 108 0 1 2 107: 91(ptr) AccessChain 24(data) 25 97 79 59
110: 106(ivec3) GroupNonUniformShuffle 36 109 35 108: 14(int) CompositeExtract 104 1
111: 76(ptr) AccessChain 24(data) 25 103 73 Store 107 108
112: 15(ivec4) Load 111 109: 27(ptr) AccessChain 10(dti) 26
113: 15(ivec4) VectorShuffle 112 110 4 5 6 3 110: 6(int) Load 109
Store 111 113 111: 27(ptr) AccessChain 10(dti) 26
114: 27(ptr) AccessChain 10(dti) 26 112: 6(int) Load 111
115: 6(int) Load 114 114: 82(ptr) AccessChain 24(data) 25 112 79
117: 27(ptr) AccessChain 10(dti) 26 115: 15(ivec4) Load 114
118: 6(int) Load 117 116: 113(ivec3) VectorShuffle 115 115 0 1 2
120: 119(ptr) AccessChain 24(data) 25 118 116 117: 113(ivec3) GroupNonUniformShuffle 36 116 35
121: 17(fvec4) Load 120 118: 91(ptr) AccessChain 24(data) 25 110 79 26
122: 17(fvec4) GroupNonUniformShuffle 36 121 35 119: 14(int) CompositeExtract 117 0
123: 119(ptr) AccessChain 24(data) 25 115 116 Store 118 119
Store 123 122 120: 91(ptr) AccessChain 24(data) 25 110 79 59
121: 14(int) CompositeExtract 117 1
Store 120 121
122: 91(ptr) AccessChain 24(data) 25 110 79 74
123: 14(int) CompositeExtract 117 2
Store 122 123
124: 27(ptr) AccessChain 10(dti) 26 124: 27(ptr) AccessChain 10(dti) 26
125: 6(int) Load 124 125: 6(int) Load 124
126: 27(ptr) AccessChain 10(dti) 26 127: 27(ptr) AccessChain 10(dti) 26
127: 6(int) Load 126 128: 6(int) Load 127
129: 128(ptr) AccessChain 24(data) 25 127 116 26 130: 129(ptr) AccessChain 24(data) 25 128 126
130: 16(float) Load 129 131: 17(fvec4) Load 130
131: 16(float) GroupNonUniformShuffle 36 130 35 132: 17(fvec4) GroupNonUniformShuffle 36 131 35
132: 128(ptr) AccessChain 24(data) 25 125 116 26 133: 129(ptr) AccessChain 24(data) 25 125 126
Store 132 131 Store 133 132
133: 27(ptr) AccessChain 10(dti) 26 134: 27(ptr) AccessChain 10(dti) 26
134: 6(int) Load 133 135: 6(int) Load 134
135: 27(ptr) AccessChain 10(dti) 26 136: 27(ptr) AccessChain 10(dti) 26
136: 6(int) Load 135 137: 6(int) Load 136
138: 119(ptr) AccessChain 24(data) 25 136 116 139: 138(ptr) AccessChain 24(data) 25 137 126 26
139: 17(fvec4) Load 138 140: 16(float) Load 139
140: 137(fvec2) VectorShuffle 139 139 0 1 141: 16(float) GroupNonUniformShuffle 36 140 35
141: 137(fvec2) GroupNonUniformShuffle 36 140 35 142: 138(ptr) AccessChain 24(data) 25 135 126 26
142: 119(ptr) AccessChain 24(data) 25 134 116 Store 142 141
143: 17(fvec4) Load 142 143: 27(ptr) AccessChain 10(dti) 26
144: 17(fvec4) VectorShuffle 143 141 4 5 2 3 144: 6(int) Load 143
Store 142 144
145: 27(ptr) AccessChain 10(dti) 26 145: 27(ptr) AccessChain 10(dti) 26
146: 6(int) Load 145 146: 6(int) Load 145
147: 27(ptr) AccessChain 10(dti) 26 148: 129(ptr) AccessChain 24(data) 25 146 126
148: 6(int) Load 147 149: 17(fvec4) Load 148
150: 119(ptr) AccessChain 24(data) 25 148 116 150: 147(fvec2) VectorShuffle 149 149 0 1
151: 17(fvec4) Load 150 151: 147(fvec2) GroupNonUniformShuffle 36 150 35
152: 149(fvec3) VectorShuffle 151 151 0 1 2 152: 138(ptr) AccessChain 24(data) 25 144 126 26
153: 149(fvec3) GroupNonUniformShuffle 36 152 35 153: 16(float) CompositeExtract 151 0
154: 119(ptr) AccessChain 24(data) 25 146 116 Store 152 153
155: 17(fvec4) Load 154 154: 138(ptr) AccessChain 24(data) 25 144 126 59
156: 17(fvec4) VectorShuffle 155 153 4 5 6 3 155: 16(float) CompositeExtract 151 1
Store 154 156 Store 154 155
157: 27(ptr) AccessChain 10(dti) 26 156: 27(ptr) AccessChain 10(dti) 26
158: 6(int) Load 157 157: 6(int) Load 156
160: 27(ptr) AccessChain 10(dti) 26 158: 27(ptr) AccessChain 10(dti) 26
161: 6(int) Load 160 159: 6(int) Load 158
163: 162(ptr) AccessChain 24(data) 25 161 159 161: 129(ptr) AccessChain 24(data) 25 159 126
164: 19(f64vec4) Load 163 162: 17(fvec4) Load 161
165: 19(f64vec4) GroupNonUniformBroadcastFirst 36 164 163: 160(fvec3) VectorShuffle 162 162 0 1 2
166: 162(ptr) AccessChain 24(data) 25 158 159 164: 160(fvec3) GroupNonUniformShuffle 36 163 35
Store 166 165 165: 138(ptr) AccessChain 24(data) 25 157 126 26
167: 27(ptr) AccessChain 10(dti) 26 166: 16(float) CompositeExtract 164 0
168: 6(int) Load 167 Store 165 166
169: 27(ptr) AccessChain 10(dti) 26 167: 138(ptr) AccessChain 24(data) 25 157 126 59
170: 6(int) Load 169 168: 16(float) CompositeExtract 164 1
172: 171(ptr) AccessChain 24(data) 25 170 159 26 Store 167 168
173:18(float64_t) Load 172 169: 138(ptr) AccessChain 24(data) 25 157 126 74
174:18(float64_t) GroupNonUniformBroadcastFirst 36 173 170: 16(float) CompositeExtract 164 2
175: 171(ptr) AccessChain 24(data) 25 168 159 26 Store 169 170
Store 175 174 171: 27(ptr) AccessChain 10(dti) 26
176: 27(ptr) AccessChain 10(dti) 26 172: 6(int) Load 171
177: 6(int) Load 176 174: 27(ptr) AccessChain 10(dti) 26
178: 27(ptr) AccessChain 10(dti) 26 175: 6(int) Load 174
179: 6(int) Load 178 177: 176(ptr) AccessChain 24(data) 25 175 173
181: 162(ptr) AccessChain 24(data) 25 179 159 178: 19(f64vec4) Load 177
182: 19(f64vec4) Load 181 179: 19(f64vec4) GroupNonUniformBroadcastFirst 36 178
183:180(f64vec2) VectorShuffle 182 182 0 1 180: 176(ptr) AccessChain 24(data) 25 172 173
184:180(f64vec2) GroupNonUniformBroadcastFirst 36 183 Store 180 179
185: 162(ptr) AccessChain 24(data) 25 177 159 181: 27(ptr) AccessChain 10(dti) 26
186: 19(f64vec4) Load 185 182: 6(int) Load 181
187: 19(f64vec4) VectorShuffle 186 184 4 5 2 3 183: 27(ptr) AccessChain 10(dti) 26
Store 185 187 184: 6(int) Load 183
188: 27(ptr) AccessChain 10(dti) 26 186: 185(ptr) AccessChain 24(data) 25 184 173 26
189: 6(int) Load 188 187:18(float64_t) Load 186
188:18(float64_t) GroupNonUniformBroadcastFirst 36 187
189: 185(ptr) AccessChain 24(data) 25 182 173 26
Store 189 188
190: 27(ptr) AccessChain 10(dti) 26 190: 27(ptr) AccessChain 10(dti) 26
191: 6(int) Load 190 191: 6(int) Load 190
193: 162(ptr) AccessChain 24(data) 25 191 159 192: 27(ptr) AccessChain 10(dti) 26
194: 19(f64vec4) Load 193 193: 6(int) Load 192
195:192(f64vec3) VectorShuffle 194 194 0 1 2 195: 176(ptr) AccessChain 24(data) 25 193 173
196:192(f64vec3) GroupNonUniformBroadcastFirst 36 195 196: 19(f64vec4) Load 195
197: 162(ptr) AccessChain 24(data) 25 189 159 197:194(f64vec2) VectorShuffle 196 196 0 1
198: 19(f64vec4) Load 197 198:194(f64vec2) GroupNonUniformBroadcastFirst 36 197
199: 19(f64vec4) VectorShuffle 198 196 4 5 6 3 199: 185(ptr) AccessChain 24(data) 25 191 173 26
Store 197 199 200:18(float64_t) CompositeExtract 198 0
200: 27(ptr) AccessChain 10(dti) 26 Store 199 200
201: 6(int) Load 200 201: 185(ptr) AccessChain 24(data) 25 191 173 59
202: 27(ptr) AccessChain 10(dti) 26 202:18(float64_t) CompositeExtract 198 1
203: 6(int) Load 202 Store 201 202
204: 32(ptr) AccessChain 24(data) 25 203 25 203: 27(ptr) AccessChain 10(dti) 26
205: 13(ivec4) Load 204 204: 6(int) Load 203
206: 13(ivec4) GroupNonUniformBroadcastFirst 36 205 205: 27(ptr) AccessChain 10(dti) 26
207: 32(ptr) AccessChain 24(data) 25 201 25 206: 6(int) Load 205
Store 207 206 208: 176(ptr) AccessChain 24(data) 25 206 173
208: 27(ptr) AccessChain 10(dti) 26 209: 19(f64vec4) Load 208
209: 6(int) Load 208 210:207(f64vec3) VectorShuffle 209 209 0 1 2
210: 27(ptr) AccessChain 10(dti) 26 211:207(f64vec3) GroupNonUniformBroadcastFirst 36 210
211: 6(int) Load 210 212: 185(ptr) AccessChain 24(data) 25 204 173 26
212: 43(ptr) AccessChain 24(data) 25 211 25 26 213:18(float64_t) CompositeExtract 211 0
213: 6(int) Load 212 Store 212 213
214: 6(int) GroupNonUniformBroadcastFirst 36 213 214: 185(ptr) AccessChain 24(data) 25 204 173 59
215: 43(ptr) AccessChain 24(data) 25 209 25 26 215:18(float64_t) CompositeExtract 211 1
Store 215 214 Store 214 215
216: 27(ptr) AccessChain 10(dti) 26 216: 185(ptr) AccessChain 24(data) 25 204 173 74
217: 6(int) Load 216 217:18(float64_t) CompositeExtract 211 2
Store 216 217
218: 27(ptr) AccessChain 10(dti) 26 218: 27(ptr) AccessChain 10(dti) 26
219: 6(int) Load 218 219: 6(int) Load 218
220: 32(ptr) AccessChain 24(data) 25 219 25 220: 27(ptr) AccessChain 10(dti) 26
221: 13(ivec4) Load 220 221: 6(int) Load 220
222: 52(ivec2) VectorShuffle 221 221 0 1 222: 32(ptr) AccessChain 24(data) 25 221 25
223: 52(ivec2) GroupNonUniformBroadcastFirst 36 222 223: 13(ivec4) Load 222
224: 32(ptr) AccessChain 24(data) 25 217 25 224: 13(ivec4) GroupNonUniformBroadcastFirst 36 223
225: 13(ivec4) Load 224 225: 32(ptr) AccessChain 24(data) 25 219 25
226: 13(ivec4) VectorShuffle 225 223 4 5 2 3 Store 225 224
Store 224 226 226: 27(ptr) AccessChain 10(dti) 26
227: 27(ptr) AccessChain 10(dti) 26 227: 6(int) Load 226
228: 6(int) Load 227 228: 27(ptr) AccessChain 10(dti) 26
229: 27(ptr) AccessChain 10(dti) 26 229: 6(int) Load 228
230: 6(int) Load 229 230: 43(ptr) AccessChain 24(data) 25 229 25 26
231: 32(ptr) AccessChain 24(data) 25 230 25 231: 6(int) Load 230
232: 13(ivec4) Load 231 232: 6(int) GroupNonUniformBroadcastFirst 36 231
233: 7(ivec3) VectorShuffle 232 232 0 1 2 233: 43(ptr) AccessChain 24(data) 25 227 25 26
234: 7(ivec3) GroupNonUniformBroadcastFirst 36 233 Store 233 232
235: 32(ptr) AccessChain 24(data) 25 228 25 234: 27(ptr) AccessChain 10(dti) 26
236: 13(ivec4) Load 235 235: 6(int) Load 234
237: 13(ivec4) VectorShuffle 236 234 4 5 6 3 236: 27(ptr) AccessChain 10(dti) 26
Store 235 237 237: 6(int) Load 236
238: 27(ptr) AccessChain 10(dti) 26 238: 32(ptr) AccessChain 24(data) 25 237 25
239: 6(int) Load 238 239: 13(ivec4) Load 238
240: 27(ptr) AccessChain 10(dti) 26 240: 52(ivec2) VectorShuffle 239 239 0 1
241: 6(int) Load 240 241: 52(ivec2) GroupNonUniformBroadcastFirst 36 240
242: 76(ptr) AccessChain 24(data) 25 241 73 242: 43(ptr) AccessChain 24(data) 25 235 25 26
243: 15(ivec4) Load 242 243: 6(int) CompositeExtract 241 0
244: 15(ivec4) GroupNonUniformBroadcastFirst 36 243 Store 242 243
245: 76(ptr) AccessChain 24(data) 25 239 73 244: 43(ptr) AccessChain 24(data) 25 235 25 59
Store 245 244 245: 6(int) CompositeExtract 241 1
Store 244 245
246: 27(ptr) AccessChain 10(dti) 26 246: 27(ptr) AccessChain 10(dti) 26
247: 6(int) Load 246 247: 6(int) Load 246
248: 27(ptr) AccessChain 10(dti) 26 248: 27(ptr) AccessChain 10(dti) 26
249: 6(int) Load 248 249: 6(int) Load 248
250: 85(ptr) AccessChain 24(data) 25 249 73 26 250: 32(ptr) AccessChain 24(data) 25 249 25
251: 14(int) Load 250 251: 13(ivec4) Load 250
252: 14(int) GroupNonUniformBroadcastFirst 36 251 252: 7(ivec3) VectorShuffle 251 251 0 1 2
253: 85(ptr) AccessChain 24(data) 25 247 73 26 253: 7(ivec3) GroupNonUniformBroadcastFirst 36 252
Store 253 252 254: 43(ptr) AccessChain 24(data) 25 247 25 26
254: 27(ptr) AccessChain 10(dti) 26 255: 6(int) CompositeExtract 253 0
255: 6(int) Load 254 Store 254 255
256: 27(ptr) AccessChain 10(dti) 26 256: 43(ptr) AccessChain 24(data) 25 247 25 59
257: 6(int) Load 256 257: 6(int) CompositeExtract 253 1
258: 76(ptr) AccessChain 24(data) 25 257 73 Store 256 257
259: 15(ivec4) Load 258 258: 43(ptr) AccessChain 24(data) 25 247 25 74
260: 94(ivec2) VectorShuffle 259 259 0 1 259: 6(int) CompositeExtract 253 2
261: 94(ivec2) GroupNonUniformBroadcastFirst 36 260 Store 258 259
262: 76(ptr) AccessChain 24(data) 25 255 73 260: 27(ptr) AccessChain 10(dti) 26
263: 15(ivec4) Load 262 261: 6(int) Load 260
264: 15(ivec4) VectorShuffle 263 261 4 5 2 3 262: 27(ptr) AccessChain 10(dti) 26
Store 262 264 263: 6(int) Load 262
265: 27(ptr) AccessChain 10(dti) 26 264: 82(ptr) AccessChain 24(data) 25 263 79
266: 6(int) Load 265 265: 15(ivec4) Load 264
267: 27(ptr) AccessChain 10(dti) 26 266: 15(ivec4) GroupNonUniformBroadcastFirst 36 265
268: 6(int) Load 267 267: 82(ptr) AccessChain 24(data) 25 261 79
269: 76(ptr) AccessChain 24(data) 25 268 73 Store 267 266
270: 15(ivec4) Load 269 268: 27(ptr) AccessChain 10(dti) 26
271: 106(ivec3) VectorShuffle 270 270 0 1 2 269: 6(int) Load 268
272: 106(ivec3) GroupNonUniformBroadcastFirst 36 271 270: 27(ptr) AccessChain 10(dti) 26
273: 76(ptr) AccessChain 24(data) 25 266 73 271: 6(int) Load 270
274: 15(ivec4) Load 273 272: 91(ptr) AccessChain 24(data) 25 271 79 26
275: 15(ivec4) VectorShuffle 274 272 4 5 6 3 273: 14(int) Load 272
Store 273 275 274: 14(int) GroupNonUniformBroadcastFirst 36 273
275: 91(ptr) AccessChain 24(data) 25 269 79 26
Store 275 274
276: 27(ptr) AccessChain 10(dti) 26 276: 27(ptr) AccessChain 10(dti) 26
277: 6(int) Load 276 277: 6(int) Load 276
278: 27(ptr) AccessChain 10(dti) 26 278: 27(ptr) AccessChain 10(dti) 26
279: 6(int) Load 278 279: 6(int) Load 278
280: 119(ptr) AccessChain 24(data) 25 279 116 280: 82(ptr) AccessChain 24(data) 25 279 79
281: 17(fvec4) Load 280 281: 15(ivec4) Load 280
282: 17(fvec4) GroupNonUniformBroadcastFirst 36 281 282: 100(ivec2) VectorShuffle 281 281 0 1
283: 119(ptr) AccessChain 24(data) 25 277 116 283: 100(ivec2) GroupNonUniformBroadcastFirst 36 282
Store 283 282 284: 91(ptr) AccessChain 24(data) 25 277 79 26
284: 27(ptr) AccessChain 10(dti) 26 285: 14(int) CompositeExtract 283 0
285: 6(int) Load 284 Store 284 285
286: 27(ptr) AccessChain 10(dti) 26 286: 91(ptr) AccessChain 24(data) 25 277 79 59
287: 6(int) Load 286 287: 14(int) CompositeExtract 283 1
288: 128(ptr) AccessChain 24(data) 25 287 116 26 Store 286 287
289: 16(float) Load 288 288: 27(ptr) AccessChain 10(dti) 26
290: 16(float) GroupNonUniformBroadcastFirst 36 289 289: 6(int) Load 288
291: 128(ptr) AccessChain 24(data) 25 285 116 26 290: 27(ptr) AccessChain 10(dti) 26
Store 291 290 291: 6(int) Load 290
292: 27(ptr) AccessChain 10(dti) 26 292: 82(ptr) AccessChain 24(data) 25 291 79
293: 6(int) Load 292 293: 15(ivec4) Load 292
294: 27(ptr) AccessChain 10(dti) 26 294: 113(ivec3) VectorShuffle 293 293 0 1 2
295: 6(int) Load 294 295: 113(ivec3) GroupNonUniformBroadcastFirst 36 294
296: 119(ptr) AccessChain 24(data) 25 295 116 296: 91(ptr) AccessChain 24(data) 25 289 79 26
297: 17(fvec4) Load 296 297: 14(int) CompositeExtract 295 0
298: 137(fvec2) VectorShuffle 297 297 0 1 Store 296 297
299: 137(fvec2) GroupNonUniformBroadcastFirst 36 298 298: 91(ptr) AccessChain 24(data) 25 289 79 59
300: 119(ptr) AccessChain 24(data) 25 293 116 299: 14(int) CompositeExtract 295 1
301: 17(fvec4) Load 300 Store 298 299
302: 17(fvec4) VectorShuffle 301 299 4 5 2 3 300: 91(ptr) AccessChain 24(data) 25 289 79 74
Store 300 302 301: 14(int) CompositeExtract 295 2
303: 27(ptr) AccessChain 10(dti) 26 Store 300 301
304: 6(int) Load 303 302: 27(ptr) AccessChain 10(dti) 26
305: 27(ptr) AccessChain 10(dti) 26 303: 6(int) Load 302
306: 6(int) Load 305 304: 27(ptr) AccessChain 10(dti) 26
307: 119(ptr) AccessChain 24(data) 25 306 116 305: 6(int) Load 304
308: 17(fvec4) Load 307 306: 129(ptr) AccessChain 24(data) 25 305 126
309: 149(fvec3) VectorShuffle 308 308 0 1 2 307: 17(fvec4) Load 306
310: 149(fvec3) GroupNonUniformBroadcastFirst 36 309 308: 17(fvec4) GroupNonUniformBroadcastFirst 36 307
311: 119(ptr) AccessChain 24(data) 25 304 116 309: 129(ptr) AccessChain 24(data) 25 303 126
312: 17(fvec4) Load 311 Store 309 308
313: 17(fvec4) VectorShuffle 312 310 4 5 6 3 310: 27(ptr) AccessChain 10(dti) 26
Store 311 313 311: 6(int) Load 310
314: 27(ptr) AccessChain 10(dti) 26 312: 27(ptr) AccessChain 10(dti) 26
315: 6(int) Load 314 313: 6(int) Load 312
316: 27(ptr) AccessChain 10(dti) 26 314: 138(ptr) AccessChain 24(data) 25 313 126 26
317: 6(int) Load 316 315: 16(float) Load 314
318: 162(ptr) AccessChain 24(data) 25 317 159 316: 16(float) GroupNonUniformBroadcastFirst 36 315
319: 19(f64vec4) Load 318 317: 138(ptr) AccessChain 24(data) 25 311 126 26
320: 19(f64vec4) GroupNonUniformBroadcastFirst 36 319 Store 317 316
321: 162(ptr) AccessChain 24(data) 25 315 159 318: 27(ptr) AccessChain 10(dti) 26
Store 321 320 319: 6(int) Load 318
322: 27(ptr) AccessChain 10(dti) 26 320: 27(ptr) AccessChain 10(dti) 26
323: 6(int) Load 322 321: 6(int) Load 320
324: 27(ptr) AccessChain 10(dti) 26 322: 129(ptr) AccessChain 24(data) 25 321 126
325: 6(int) Load 324 323: 17(fvec4) Load 322
326: 171(ptr) AccessChain 24(data) 25 325 159 26 324: 147(fvec2) VectorShuffle 323 323 0 1
327:18(float64_t) Load 326 325: 147(fvec2) GroupNonUniformBroadcastFirst 36 324
328:18(float64_t) GroupNonUniformBroadcastFirst 36 327 326: 138(ptr) AccessChain 24(data) 25 319 126 26
329: 171(ptr) AccessChain 24(data) 25 323 159 26 327: 16(float) CompositeExtract 325 0
Store 329 328 Store 326 327
328: 138(ptr) AccessChain 24(data) 25 319 126 59
329: 16(float) CompositeExtract 325 1
Store 328 329
330: 27(ptr) AccessChain 10(dti) 26 330: 27(ptr) AccessChain 10(dti) 26
331: 6(int) Load 330 331: 6(int) Load 330
332: 27(ptr) AccessChain 10(dti) 26 332: 27(ptr) AccessChain 10(dti) 26
333: 6(int) Load 332 333: 6(int) Load 332
334: 162(ptr) AccessChain 24(data) 25 333 159 334: 129(ptr) AccessChain 24(data) 25 333 126
335: 19(f64vec4) Load 334 335: 17(fvec4) Load 334
336:180(f64vec2) VectorShuffle 335 335 0 1 336: 160(fvec3) VectorShuffle 335 335 0 1 2
337:180(f64vec2) GroupNonUniformBroadcastFirst 36 336 337: 160(fvec3) GroupNonUniformBroadcastFirst 36 336
338: 162(ptr) AccessChain 24(data) 25 331 159 338: 138(ptr) AccessChain 24(data) 25 331 126 26
339: 19(f64vec4) Load 338 339: 16(float) CompositeExtract 337 0
340: 19(f64vec4) VectorShuffle 339 337 4 5 2 3 Store 338 339
Store 338 340 340: 138(ptr) AccessChain 24(data) 25 331 126 59
341: 27(ptr) AccessChain 10(dti) 26 341: 16(float) CompositeExtract 337 1
342: 6(int) Load 341 Store 340 341
343: 27(ptr) AccessChain 10(dti) 26 342: 138(ptr) AccessChain 24(data) 25 331 126 74
344: 6(int) Load 343 343: 16(float) CompositeExtract 337 2
345: 162(ptr) AccessChain 24(data) 25 344 159 Store 342 343
346: 19(f64vec4) Load 345 344: 27(ptr) AccessChain 10(dti) 26
347:192(f64vec3) VectorShuffle 346 346 0 1 2 345: 6(int) Load 344
348:192(f64vec3) GroupNonUniformBroadcastFirst 36 347 346: 27(ptr) AccessChain 10(dti) 26
349: 162(ptr) AccessChain 24(data) 25 342 159 347: 6(int) Load 346
350: 19(f64vec4) Load 349 348: 176(ptr) AccessChain 24(data) 25 347 173
351: 19(f64vec4) VectorShuffle 350 348 4 5 6 3 349: 19(f64vec4) Load 348
Store 349 351 350: 19(f64vec4) GroupNonUniformBroadcastFirst 36 349
351: 176(ptr) AccessChain 24(data) 25 345 173
Store 351 350
352: 27(ptr) AccessChain 10(dti) 26
353: 6(int) Load 352
354: 27(ptr) AccessChain 10(dti) 26
355: 6(int) Load 354
356: 185(ptr) AccessChain 24(data) 25 355 173 26
357:18(float64_t) Load 356
358:18(float64_t) GroupNonUniformBroadcastFirst 36 357
359: 185(ptr) AccessChain 24(data) 25 353 173 26
Store 359 358
360: 27(ptr) AccessChain 10(dti) 26
361: 6(int) Load 360
362: 27(ptr) AccessChain 10(dti) 26
363: 6(int) Load 362
364: 176(ptr) AccessChain 24(data) 25 363 173
365: 19(f64vec4) Load 364
366:194(f64vec2) VectorShuffle 365 365 0 1
367:194(f64vec2) GroupNonUniformBroadcastFirst 36 366
368: 185(ptr) AccessChain 24(data) 25 361 173 26
369:18(float64_t) CompositeExtract 367 0
Store 368 369
370: 185(ptr) AccessChain 24(data) 25 361 173 59
371:18(float64_t) CompositeExtract 367 1
Store 370 371
372: 27(ptr) AccessChain 10(dti) 26
373: 6(int) Load 372
374: 27(ptr) AccessChain 10(dti) 26
375: 6(int) Load 374
376: 176(ptr) AccessChain 24(data) 25 375 173
377: 19(f64vec4) Load 376
378:207(f64vec3) VectorShuffle 377 377 0 1 2
379:207(f64vec3) GroupNonUniformBroadcastFirst 36 378
380: 185(ptr) AccessChain 24(data) 25 373 173 26
381:18(float64_t) CompositeExtract 379 0
Store 380 381
382: 185(ptr) AccessChain 24(data) 25 373 173 59
383:18(float64_t) CompositeExtract 379 1
Store 382 383
384: 185(ptr) AccessChain 24(data) 25 373 173 74
385:18(float64_t) CompositeExtract 379 2
Store 384 385
Return Return
FunctionEnd FunctionEnd

View File

@ -2323,7 +2323,7 @@ local_size = (32, 16, 1)
// Module Version 10300 // Module Version 10300
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 369 // Id's are bound by 403
Capability Shader Capability Shader
Capability Float64 Capability Float64
@ -2332,7 +2332,7 @@ local_size = (32, 16, 1)
Capability GroupNonUniformBallot Capability GroupNonUniformBallot
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "CSMain" 364 EntryPoint GLCompute 4 "CSMain" 398
ExecutionMode 4 LocalSize 32 16 1 ExecutionMode 4 LocalSize 32 16 1
Source HLSL 500 Source HLSL 500
Name 4 "CSMain" Name 4 "CSMain"
@ -2346,9 +2346,9 @@ local_size = (32, 16, 1)
Name 22 "data" Name 22 "data"
MemberName 22(data) 0 "@data" MemberName 22(data) 0 "@data"
Name 24 "data" Name 24 "data"
Name 362 "dti" Name 396 "dti"
Name 364 "dti" Name 398 "dti"
Name 366 "param" Name 400 "param"
MemberDecorate 20(Types) 0 Offset 0 MemberDecorate 20(Types) 0 Offset 0
MemberDecorate 20(Types) 1 Offset 16 MemberDecorate 20(Types) 1 Offset 16
MemberDecorate 20(Types) 2 Offset 32 MemberDecorate 20(Types) 2 Offset 32
@ -2358,7 +2358,7 @@ local_size = (32, 16, 1)
Decorate 22(data) BufferBlock Decorate 22(data) BufferBlock
Decorate 24(data) DescriptorSet 0 Decorate 24(data) DescriptorSet 0
Decorate 24(data) Binding 0 Decorate 24(data) Binding 0
Decorate 364(dti) BuiltIn GlobalInvocationId Decorate 398(dti) BuiltIn GlobalInvocationId
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0
@ -2384,33 +2384,35 @@ local_size = (32, 16, 1)
35: 6(int) Constant 3 35: 6(int) Constant 3
42: TypePointer Uniform 6(int) 42: TypePointer Uniform 6(int)
51: TypeVector 6(int) 2 51: TypeVector 6(int) 2
72: 14(int) Constant 1 58: 6(int) Constant 1
75: TypePointer Uniform 15(ivec4) 73: 6(int) Constant 2
84: TypePointer Uniform 14(int) 78: 14(int) Constant 1
93: TypeVector 14(int) 2 81: TypePointer Uniform 15(ivec4)
105: TypeVector 14(int) 3 90: TypePointer Uniform 14(int)
115: 14(int) Constant 2 99: TypeVector 14(int) 2
118: TypePointer Uniform 17(fvec4) 112: TypeVector 14(int) 3
127: TypePointer Uniform 16(float) 125: 14(int) Constant 2
136: TypeVector 16(float) 2 128: TypePointer Uniform 17(fvec4)
148: TypeVector 16(float) 3 137: TypePointer Uniform 16(float)
158: 14(int) Constant 3 146: TypeVector 16(float) 2
161: TypePointer Uniform 19(f64vec4) 159: TypeVector 16(float) 3
170: TypePointer Uniform 18(float64_t) 172: 14(int) Constant 3
179: TypeVector 18(float64_t) 2 175: TypePointer Uniform 19(f64vec4)
191: TypeVector 18(float64_t) 3 184: TypePointer Uniform 18(float64_t)
357: TypeBool 193: TypeVector 18(float64_t) 2
363: TypePointer Input 7(ivec3) 206: TypeVector 18(float64_t) 3
364(dti): 363(ptr) Variable Input 391: TypeBool
397: TypePointer Input 7(ivec3)
398(dti): 397(ptr) Variable Input
4(CSMain): 2 Function None 3 4(CSMain): 2 Function None 3
5: Label 5: Label
362(dti): 8(ptr) Variable Function 396(dti): 8(ptr) Variable Function
366(param): 8(ptr) Variable Function 400(param): 8(ptr) Variable Function
365: 7(ivec3) Load 364(dti) 399: 7(ivec3) Load 398(dti)
Store 362(dti) 365 Store 396(dti) 399
367: 7(ivec3) Load 362(dti) 401: 7(ivec3) Load 396(dti)
Store 366(param) 367 Store 400(param) 401
368: 2 FunctionCall 11(@CSMain(vu3;) 366(param) 402: 2 FunctionCall 11(@CSMain(vu3;) 400(param)
Return Return
FunctionEnd FunctionEnd
11(@CSMain(vu3;): 2 Function None 9 11(@CSMain(vu3;): 2 Function None 9
@ -2442,326 +2444,382 @@ local_size = (32, 16, 1)
53: 13(ivec4) Load 52 53: 13(ivec4) Load 52
54: 51(ivec2) VectorShuffle 53 53 0 1 54: 51(ivec2) VectorShuffle 53 53 0 1
55: 51(ivec2) GroupNonUniformIAdd 35 InclusiveScan 54 55: 51(ivec2) GroupNonUniformIAdd 35 InclusiveScan 54
56: 32(ptr) AccessChain 24(data) 25 48 25 56: 42(ptr) AccessChain 24(data) 25 48 25 26
57: 13(ivec4) Load 56 57: 6(int) CompositeExtract 55 0
58: 13(ivec4) VectorShuffle 57 55 4 5 2 3 Store 56 57
Store 56 58 59: 42(ptr) AccessChain 24(data) 25 48 25 58
59: 27(ptr) AccessChain 10(dti) 26 60: 6(int) CompositeExtract 55 1
60: 6(int) Load 59 Store 59 60
61: 27(ptr) AccessChain 10(dti) 26 61: 27(ptr) AccessChain 10(dti) 26
62: 6(int) Load 61 62: 6(int) Load 61
63: 32(ptr) AccessChain 24(data) 25 62 25 63: 27(ptr) AccessChain 10(dti) 26
64: 13(ivec4) Load 63 64: 6(int) Load 63
65: 7(ivec3) VectorShuffle 64 64 0 1 2 65: 32(ptr) AccessChain 24(data) 25 64 25
66: 7(ivec3) GroupNonUniformIAdd 35 InclusiveScan 65 66: 13(ivec4) Load 65
67: 32(ptr) AccessChain 24(data) 25 60 25 67: 7(ivec3) VectorShuffle 66 66 0 1 2
68: 13(ivec4) Load 67 68: 7(ivec3) GroupNonUniformIAdd 35 InclusiveScan 67
69: 13(ivec4) VectorShuffle 68 66 4 5 6 3 69: 42(ptr) AccessChain 24(data) 25 62 25 26
Store 67 69 70: 6(int) CompositeExtract 68 0
70: 27(ptr) AccessChain 10(dti) 26 Store 69 70
71: 6(int) Load 70 71: 42(ptr) AccessChain 24(data) 25 62 25 58
73: 27(ptr) AccessChain 10(dti) 26 72: 6(int) CompositeExtract 68 1
74: 6(int) Load 73 Store 71 72
76: 75(ptr) AccessChain 24(data) 25 74 72 74: 42(ptr) AccessChain 24(data) 25 62 25 73
77: 15(ivec4) Load 76 75: 6(int) CompositeExtract 68 2
78: 15(ivec4) GroupNonUniformIAdd 35 InclusiveScan 77 Store 74 75
79: 75(ptr) AccessChain 24(data) 25 71 72 76: 27(ptr) AccessChain 10(dti) 26
Store 79 78 77: 6(int) Load 76
80: 27(ptr) AccessChain 10(dti) 26 79: 27(ptr) AccessChain 10(dti) 26
81: 6(int) Load 80 80: 6(int) Load 79
82: 27(ptr) AccessChain 10(dti) 26 82: 81(ptr) AccessChain 24(data) 25 80 78
83: 6(int) Load 82 83: 15(ivec4) Load 82
85: 84(ptr) AccessChain 24(data) 25 83 72 26 84: 15(ivec4) GroupNonUniformIAdd 35 InclusiveScan 83
86: 14(int) Load 85 85: 81(ptr) AccessChain 24(data) 25 77 78
87: 14(int) GroupNonUniformIAdd 35 InclusiveScan 86 Store 85 84
88: 84(ptr) AccessChain 24(data) 25 81 72 26 86: 27(ptr) AccessChain 10(dti) 26
Store 88 87 87: 6(int) Load 86
89: 27(ptr) AccessChain 10(dti) 26 88: 27(ptr) AccessChain 10(dti) 26
90: 6(int) Load 89 89: 6(int) Load 88
91: 27(ptr) AccessChain 10(dti) 26 91: 90(ptr) AccessChain 24(data) 25 89 78 26
92: 6(int) Load 91 92: 14(int) Load 91
94: 75(ptr) AccessChain 24(data) 25 92 72 93: 14(int) GroupNonUniformIAdd 35 InclusiveScan 92
95: 15(ivec4) Load 94 94: 90(ptr) AccessChain 24(data) 25 87 78 26
96: 93(ivec2) VectorShuffle 95 95 0 1 Store 94 93
97: 93(ivec2) GroupNonUniformIAdd 35 InclusiveScan 96 95: 27(ptr) AccessChain 10(dti) 26
98: 75(ptr) AccessChain 24(data) 25 90 72 96: 6(int) Load 95
99: 15(ivec4) Load 98 97: 27(ptr) AccessChain 10(dti) 26
100: 15(ivec4) VectorShuffle 99 97 4 5 2 3 98: 6(int) Load 97
Store 98 100 100: 81(ptr) AccessChain 24(data) 25 98 78
101: 27(ptr) AccessChain 10(dti) 26 101: 15(ivec4) Load 100
102: 6(int) Load 101 102: 99(ivec2) VectorShuffle 101 101 0 1
103: 27(ptr) AccessChain 10(dti) 26 103: 99(ivec2) GroupNonUniformIAdd 35 InclusiveScan 102
104: 6(int) Load 103 104: 90(ptr) AccessChain 24(data) 25 96 78 26
106: 75(ptr) AccessChain 24(data) 25 104 72 105: 14(int) CompositeExtract 103 0
107: 15(ivec4) Load 106 Store 104 105
108: 105(ivec3) VectorShuffle 107 107 0 1 2 106: 90(ptr) AccessChain 24(data) 25 96 78 58
109: 105(ivec3) GroupNonUniformIAdd 35 InclusiveScan 108 107: 14(int) CompositeExtract 103 1
110: 75(ptr) AccessChain 24(data) 25 102 72 Store 106 107
111: 15(ivec4) Load 110 108: 27(ptr) AccessChain 10(dti) 26
112: 15(ivec4) VectorShuffle 111 109 4 5 6 3 109: 6(int) Load 108
Store 110 112 110: 27(ptr) AccessChain 10(dti) 26
113: 27(ptr) AccessChain 10(dti) 26 111: 6(int) Load 110
114: 6(int) Load 113 113: 81(ptr) AccessChain 24(data) 25 111 78
116: 27(ptr) AccessChain 10(dti) 26 114: 15(ivec4) Load 113
117: 6(int) Load 116 115: 112(ivec3) VectorShuffle 114 114 0 1 2
119: 118(ptr) AccessChain 24(data) 25 117 115 116: 112(ivec3) GroupNonUniformIAdd 35 InclusiveScan 115
120: 17(fvec4) Load 119 117: 90(ptr) AccessChain 24(data) 25 109 78 26
121: 17(fvec4) GroupNonUniformFAdd 35 InclusiveScan 120 118: 14(int) CompositeExtract 116 0
122: 118(ptr) AccessChain 24(data) 25 114 115 Store 117 118
Store 122 121 119: 90(ptr) AccessChain 24(data) 25 109 78 58
120: 14(int) CompositeExtract 116 1
Store 119 120
121: 90(ptr) AccessChain 24(data) 25 109 78 73
122: 14(int) CompositeExtract 116 2
Store 121 122
123: 27(ptr) AccessChain 10(dti) 26 123: 27(ptr) AccessChain 10(dti) 26
124: 6(int) Load 123 124: 6(int) Load 123
125: 27(ptr) AccessChain 10(dti) 26 126: 27(ptr) AccessChain 10(dti) 26
126: 6(int) Load 125 127: 6(int) Load 126
128: 127(ptr) AccessChain 24(data) 25 126 115 26 129: 128(ptr) AccessChain 24(data) 25 127 125
129: 16(float) Load 128 130: 17(fvec4) Load 129
130: 16(float) GroupNonUniformFAdd 35 InclusiveScan 129 131: 17(fvec4) GroupNonUniformFAdd 35 InclusiveScan 130
131: 127(ptr) AccessChain 24(data) 25 124 115 26 132: 128(ptr) AccessChain 24(data) 25 124 125
Store 131 130 Store 132 131
132: 27(ptr) AccessChain 10(dti) 26 133: 27(ptr) AccessChain 10(dti) 26
133: 6(int) Load 132 134: 6(int) Load 133
134: 27(ptr) AccessChain 10(dti) 26 135: 27(ptr) AccessChain 10(dti) 26
135: 6(int) Load 134 136: 6(int) Load 135
137: 118(ptr) AccessChain 24(data) 25 135 115 138: 137(ptr) AccessChain 24(data) 25 136 125 26
138: 17(fvec4) Load 137 139: 16(float) Load 138
139: 136(fvec2) VectorShuffle 138 138 0 1 140: 16(float) GroupNonUniformFAdd 35 InclusiveScan 139
140: 136(fvec2) GroupNonUniformFAdd 35 InclusiveScan 139 141: 137(ptr) AccessChain 24(data) 25 134 125 26
141: 118(ptr) AccessChain 24(data) 25 133 115 Store 141 140
142: 17(fvec4) Load 141 142: 27(ptr) AccessChain 10(dti) 26
143: 17(fvec4) VectorShuffle 142 140 4 5 2 3 143: 6(int) Load 142
Store 141 143
144: 27(ptr) AccessChain 10(dti) 26 144: 27(ptr) AccessChain 10(dti) 26
145: 6(int) Load 144 145: 6(int) Load 144
146: 27(ptr) AccessChain 10(dti) 26 147: 128(ptr) AccessChain 24(data) 25 145 125
147: 6(int) Load 146 148: 17(fvec4) Load 147
149: 118(ptr) AccessChain 24(data) 25 147 115 149: 146(fvec2) VectorShuffle 148 148 0 1
150: 17(fvec4) Load 149 150: 146(fvec2) GroupNonUniformFAdd 35 InclusiveScan 149
151: 148(fvec3) VectorShuffle 150 150 0 1 2 151: 137(ptr) AccessChain 24(data) 25 143 125 26
152: 148(fvec3) GroupNonUniformFAdd 35 InclusiveScan 151 152: 16(float) CompositeExtract 150 0
153: 118(ptr) AccessChain 24(data) 25 145 115 Store 151 152
154: 17(fvec4) Load 153 153: 137(ptr) AccessChain 24(data) 25 143 125 58
155: 17(fvec4) VectorShuffle 154 152 4 5 6 3 154: 16(float) CompositeExtract 150 1
Store 153 155 Store 153 154
156: 27(ptr) AccessChain 10(dti) 26 155: 27(ptr) AccessChain 10(dti) 26
157: 6(int) Load 156 156: 6(int) Load 155
159: 27(ptr) AccessChain 10(dti) 26 157: 27(ptr) AccessChain 10(dti) 26
160: 6(int) Load 159 158: 6(int) Load 157
162: 161(ptr) AccessChain 24(data) 25 160 158 160: 128(ptr) AccessChain 24(data) 25 158 125
163: 19(f64vec4) Load 162 161: 17(fvec4) Load 160
164: 19(f64vec4) GroupNonUniformFAdd 35 InclusiveScan 163 162: 159(fvec3) VectorShuffle 161 161 0 1 2
165: 161(ptr) AccessChain 24(data) 25 157 158 163: 159(fvec3) GroupNonUniformFAdd 35 InclusiveScan 162
Store 165 164 164: 137(ptr) AccessChain 24(data) 25 156 125 26
166: 27(ptr) AccessChain 10(dti) 26 165: 16(float) CompositeExtract 163 0
167: 6(int) Load 166 Store 164 165
168: 27(ptr) AccessChain 10(dti) 26 166: 137(ptr) AccessChain 24(data) 25 156 125 58
169: 6(int) Load 168 167: 16(float) CompositeExtract 163 1
171: 170(ptr) AccessChain 24(data) 25 169 158 26 Store 166 167
172:18(float64_t) Load 171 168: 137(ptr) AccessChain 24(data) 25 156 125 73
173:18(float64_t) GroupNonUniformFAdd 35 InclusiveScan 172 169: 16(float) CompositeExtract 163 2
174: 170(ptr) AccessChain 24(data) 25 167 158 26 Store 168 169
Store 174 173 170: 27(ptr) AccessChain 10(dti) 26
175: 27(ptr) AccessChain 10(dti) 26 171: 6(int) Load 170
176: 6(int) Load 175 173: 27(ptr) AccessChain 10(dti) 26
177: 27(ptr) AccessChain 10(dti) 26 174: 6(int) Load 173
178: 6(int) Load 177 176: 175(ptr) AccessChain 24(data) 25 174 172
180: 161(ptr) AccessChain 24(data) 25 178 158 177: 19(f64vec4) Load 176
181: 19(f64vec4) Load 180 178: 19(f64vec4) GroupNonUniformFAdd 35 InclusiveScan 177
182:179(f64vec2) VectorShuffle 181 181 0 1 179: 175(ptr) AccessChain 24(data) 25 171 172
183:179(f64vec2) GroupNonUniformFAdd 35 InclusiveScan 182 Store 179 178
184: 161(ptr) AccessChain 24(data) 25 176 158 180: 27(ptr) AccessChain 10(dti) 26
185: 19(f64vec4) Load 184 181: 6(int) Load 180
186: 19(f64vec4) VectorShuffle 185 183 4 5 2 3 182: 27(ptr) AccessChain 10(dti) 26
Store 184 186 183: 6(int) Load 182
187: 27(ptr) AccessChain 10(dti) 26 185: 184(ptr) AccessChain 24(data) 25 183 172 26
188: 6(int) Load 187 186:18(float64_t) Load 185
187:18(float64_t) GroupNonUniformFAdd 35 InclusiveScan 186
188: 184(ptr) AccessChain 24(data) 25 181 172 26
Store 188 187
189: 27(ptr) AccessChain 10(dti) 26 189: 27(ptr) AccessChain 10(dti) 26
190: 6(int) Load 189 190: 6(int) Load 189
192: 161(ptr) AccessChain 24(data) 25 190 158 191: 27(ptr) AccessChain 10(dti) 26
193: 19(f64vec4) Load 192 192: 6(int) Load 191
194:191(f64vec3) VectorShuffle 193 193 0 1 2 194: 175(ptr) AccessChain 24(data) 25 192 172
195:191(f64vec3) GroupNonUniformFAdd 35 InclusiveScan 194 195: 19(f64vec4) Load 194
196: 161(ptr) AccessChain 24(data) 25 188 158 196:193(f64vec2) VectorShuffle 195 195 0 1
197: 19(f64vec4) Load 196 197:193(f64vec2) GroupNonUniformFAdd 35 InclusiveScan 196
198: 19(f64vec4) VectorShuffle 197 195 4 5 6 3 198: 184(ptr) AccessChain 24(data) 25 190 172 26
Store 196 198 199:18(float64_t) CompositeExtract 197 0
199: 27(ptr) AccessChain 10(dti) 26 Store 198 199
200: 6(int) Load 199 200: 184(ptr) AccessChain 24(data) 25 190 172 58
201: 27(ptr) AccessChain 10(dti) 26 201:18(float64_t) CompositeExtract 197 1
202: 6(int) Load 201 Store 200 201
203: 32(ptr) AccessChain 24(data) 25 202 25 202: 27(ptr) AccessChain 10(dti) 26
204: 13(ivec4) Load 203 203: 6(int) Load 202
205: 13(ivec4) GroupNonUniformIMul 35 InclusiveScan 204 204: 27(ptr) AccessChain 10(dti) 26
206: 32(ptr) AccessChain 24(data) 25 200 25 205: 6(int) Load 204
Store 206 205 207: 175(ptr) AccessChain 24(data) 25 205 172
207: 27(ptr) AccessChain 10(dti) 26 208: 19(f64vec4) Load 207
208: 6(int) Load 207 209:206(f64vec3) VectorShuffle 208 208 0 1 2
209: 27(ptr) AccessChain 10(dti) 26 210:206(f64vec3) GroupNonUniformFAdd 35 InclusiveScan 209
210: 6(int) Load 209 211: 184(ptr) AccessChain 24(data) 25 203 172 26
211: 42(ptr) AccessChain 24(data) 25 210 25 26 212:18(float64_t) CompositeExtract 210 0
212: 6(int) Load 211 Store 211 212
213: 6(int) GroupNonUniformIMul 35 InclusiveScan 212 213: 184(ptr) AccessChain 24(data) 25 203 172 58
214: 42(ptr) AccessChain 24(data) 25 208 25 26 214:18(float64_t) CompositeExtract 210 1
Store 214 213 Store 213 214
215: 27(ptr) AccessChain 10(dti) 26 215: 184(ptr) AccessChain 24(data) 25 203 172 73
216: 6(int) Load 215 216:18(float64_t) CompositeExtract 210 2
Store 215 216
217: 27(ptr) AccessChain 10(dti) 26 217: 27(ptr) AccessChain 10(dti) 26
218: 6(int) Load 217 218: 6(int) Load 217
219: 32(ptr) AccessChain 24(data) 25 218 25 219: 27(ptr) AccessChain 10(dti) 26
220: 13(ivec4) Load 219 220: 6(int) Load 219
221: 51(ivec2) VectorShuffle 220 220 0 1 221: 32(ptr) AccessChain 24(data) 25 220 25
222: 51(ivec2) GroupNonUniformIMul 35 InclusiveScan 221 222: 13(ivec4) Load 221
223: 32(ptr) AccessChain 24(data) 25 216 25 223: 13(ivec4) GroupNonUniformIMul 35 InclusiveScan 222
224: 13(ivec4) Load 223 224: 32(ptr) AccessChain 24(data) 25 218 25
225: 13(ivec4) VectorShuffle 224 222 4 5 2 3 Store 224 223
Store 223 225 225: 27(ptr) AccessChain 10(dti) 26
226: 27(ptr) AccessChain 10(dti) 26 226: 6(int) Load 225
227: 6(int) Load 226 227: 27(ptr) AccessChain 10(dti) 26
228: 27(ptr) AccessChain 10(dti) 26 228: 6(int) Load 227
229: 6(int) Load 228 229: 42(ptr) AccessChain 24(data) 25 228 25 26
230: 32(ptr) AccessChain 24(data) 25 229 25 230: 6(int) Load 229
231: 13(ivec4) Load 230 231: 6(int) GroupNonUniformIMul 35 InclusiveScan 230
232: 7(ivec3) VectorShuffle 231 231 0 1 2 232: 42(ptr) AccessChain 24(data) 25 226 25 26
233: 7(ivec3) GroupNonUniformIMul 35 InclusiveScan 232 Store 232 231
234: 32(ptr) AccessChain 24(data) 25 227 25 233: 27(ptr) AccessChain 10(dti) 26
235: 13(ivec4) Load 234 234: 6(int) Load 233
236: 13(ivec4) VectorShuffle 235 233 4 5 6 3 235: 27(ptr) AccessChain 10(dti) 26
Store 234 236 236: 6(int) Load 235
237: 27(ptr) AccessChain 10(dti) 26 237: 32(ptr) AccessChain 24(data) 25 236 25
238: 6(int) Load 237 238: 13(ivec4) Load 237
239: 27(ptr) AccessChain 10(dti) 26 239: 51(ivec2) VectorShuffle 238 238 0 1
240: 6(int) Load 239 240: 51(ivec2) GroupNonUniformIMul 35 InclusiveScan 239
241: 75(ptr) AccessChain 24(data) 25 240 72 241: 42(ptr) AccessChain 24(data) 25 234 25 26
242: 15(ivec4) Load 241 242: 6(int) CompositeExtract 240 0
243: 15(ivec4) GroupNonUniformIMul 35 InclusiveScan 242 Store 241 242
244: 75(ptr) AccessChain 24(data) 25 238 72 243: 42(ptr) AccessChain 24(data) 25 234 25 58
Store 244 243 244: 6(int) CompositeExtract 240 1
Store 243 244
245: 27(ptr) AccessChain 10(dti) 26 245: 27(ptr) AccessChain 10(dti) 26
246: 6(int) Load 245 246: 6(int) Load 245
247: 27(ptr) AccessChain 10(dti) 26 247: 27(ptr) AccessChain 10(dti) 26
248: 6(int) Load 247 248: 6(int) Load 247
249: 84(ptr) AccessChain 24(data) 25 248 72 26 249: 32(ptr) AccessChain 24(data) 25 248 25
250: 14(int) Load 249 250: 13(ivec4) Load 249
251: 14(int) GroupNonUniformIMul 35 InclusiveScan 250 251: 7(ivec3) VectorShuffle 250 250 0 1 2
252: 84(ptr) AccessChain 24(data) 25 246 72 26 252: 7(ivec3) GroupNonUniformIMul 35 InclusiveScan 251
Store 252 251 253: 42(ptr) AccessChain 24(data) 25 246 25 26
253: 27(ptr) AccessChain 10(dti) 26 254: 6(int) CompositeExtract 252 0
254: 6(int) Load 253 Store 253 254
255: 27(ptr) AccessChain 10(dti) 26 255: 42(ptr) AccessChain 24(data) 25 246 25 58
256: 6(int) Load 255 256: 6(int) CompositeExtract 252 1
257: 75(ptr) AccessChain 24(data) 25 256 72 Store 255 256
258: 15(ivec4) Load 257 257: 42(ptr) AccessChain 24(data) 25 246 25 73
259: 93(ivec2) VectorShuffle 258 258 0 1 258: 6(int) CompositeExtract 252 2
260: 93(ivec2) GroupNonUniformIMul 35 InclusiveScan 259 Store 257 258
261: 75(ptr) AccessChain 24(data) 25 254 72 259: 27(ptr) AccessChain 10(dti) 26
262: 15(ivec4) Load 261 260: 6(int) Load 259
263: 15(ivec4) VectorShuffle 262 260 4 5 2 3 261: 27(ptr) AccessChain 10(dti) 26
Store 261 263 262: 6(int) Load 261
264: 27(ptr) AccessChain 10(dti) 26 263: 81(ptr) AccessChain 24(data) 25 262 78
265: 6(int) Load 264 264: 15(ivec4) Load 263
266: 27(ptr) AccessChain 10(dti) 26 265: 15(ivec4) GroupNonUniformIMul 35 InclusiveScan 264
267: 6(int) Load 266 266: 81(ptr) AccessChain 24(data) 25 260 78
268: 75(ptr) AccessChain 24(data) 25 267 72 Store 266 265
269: 15(ivec4) Load 268 267: 27(ptr) AccessChain 10(dti) 26
270: 105(ivec3) VectorShuffle 269 269 0 1 2 268: 6(int) Load 267
271: 105(ivec3) GroupNonUniformIMul 35 InclusiveScan 270 269: 27(ptr) AccessChain 10(dti) 26
272: 75(ptr) AccessChain 24(data) 25 265 72 270: 6(int) Load 269
273: 15(ivec4) Load 272 271: 90(ptr) AccessChain 24(data) 25 270 78 26
274: 15(ivec4) VectorShuffle 273 271 4 5 6 3 272: 14(int) Load 271
Store 272 274 273: 14(int) GroupNonUniformIMul 35 InclusiveScan 272
274: 90(ptr) AccessChain 24(data) 25 268 78 26
Store 274 273
275: 27(ptr) AccessChain 10(dti) 26 275: 27(ptr) AccessChain 10(dti) 26
276: 6(int) Load 275 276: 6(int) Load 275
277: 27(ptr) AccessChain 10(dti) 26 277: 27(ptr) AccessChain 10(dti) 26
278: 6(int) Load 277 278: 6(int) Load 277
279: 118(ptr) AccessChain 24(data) 25 278 115 279: 81(ptr) AccessChain 24(data) 25 278 78
280: 17(fvec4) Load 279 280: 15(ivec4) Load 279
281: 17(fvec4) GroupNonUniformFMul 35 InclusiveScan 280 281: 99(ivec2) VectorShuffle 280 280 0 1
282: 118(ptr) AccessChain 24(data) 25 276 115 282: 99(ivec2) GroupNonUniformIMul 35 InclusiveScan 281
Store 282 281 283: 90(ptr) AccessChain 24(data) 25 276 78 26
283: 27(ptr) AccessChain 10(dti) 26 284: 14(int) CompositeExtract 282 0
284: 6(int) Load 283 Store 283 284
285: 27(ptr) AccessChain 10(dti) 26 285: 90(ptr) AccessChain 24(data) 25 276 78 58
286: 6(int) Load 285 286: 14(int) CompositeExtract 282 1
287: 127(ptr) AccessChain 24(data) 25 286 115 26 Store 285 286
288: 16(float) Load 287 287: 27(ptr) AccessChain 10(dti) 26
289: 16(float) GroupNonUniformFMul 35 InclusiveScan 288 288: 6(int) Load 287
290: 127(ptr) AccessChain 24(data) 25 284 115 26 289: 27(ptr) AccessChain 10(dti) 26
Store 290 289 290: 6(int) Load 289
291: 27(ptr) AccessChain 10(dti) 26 291: 81(ptr) AccessChain 24(data) 25 290 78
292: 6(int) Load 291 292: 15(ivec4) Load 291
293: 27(ptr) AccessChain 10(dti) 26 293: 112(ivec3) VectorShuffle 292 292 0 1 2
294: 6(int) Load 293 294: 112(ivec3) GroupNonUniformIMul 35 InclusiveScan 293
295: 118(ptr) AccessChain 24(data) 25 294 115 295: 90(ptr) AccessChain 24(data) 25 288 78 26
296: 17(fvec4) Load 295 296: 14(int) CompositeExtract 294 0
297: 136(fvec2) VectorShuffle 296 296 0 1 Store 295 296
298: 136(fvec2) GroupNonUniformFMul 35 InclusiveScan 297 297: 90(ptr) AccessChain 24(data) 25 288 78 58
299: 118(ptr) AccessChain 24(data) 25 292 115 298: 14(int) CompositeExtract 294 1
300: 17(fvec4) Load 299 Store 297 298
301: 17(fvec4) VectorShuffle 300 298 4 5 2 3 299: 90(ptr) AccessChain 24(data) 25 288 78 73
Store 299 301 300: 14(int) CompositeExtract 294 2
302: 27(ptr) AccessChain 10(dti) 26 Store 299 300
303: 6(int) Load 302 301: 27(ptr) AccessChain 10(dti) 26
304: 27(ptr) AccessChain 10(dti) 26 302: 6(int) Load 301
305: 6(int) Load 304 303: 27(ptr) AccessChain 10(dti) 26
306: 118(ptr) AccessChain 24(data) 25 305 115 304: 6(int) Load 303
307: 17(fvec4) Load 306 305: 128(ptr) AccessChain 24(data) 25 304 125
308: 148(fvec3) VectorShuffle 307 307 0 1 2 306: 17(fvec4) Load 305
309: 148(fvec3) GroupNonUniformFMul 35 InclusiveScan 308 307: 17(fvec4) GroupNonUniformFMul 35 InclusiveScan 306
310: 118(ptr) AccessChain 24(data) 25 303 115 308: 128(ptr) AccessChain 24(data) 25 302 125
311: 17(fvec4) Load 310 Store 308 307
312: 17(fvec4) VectorShuffle 311 309 4 5 6 3 309: 27(ptr) AccessChain 10(dti) 26
Store 310 312 310: 6(int) Load 309
313: 27(ptr) AccessChain 10(dti) 26 311: 27(ptr) AccessChain 10(dti) 26
314: 6(int) Load 313 312: 6(int) Load 311
315: 27(ptr) AccessChain 10(dti) 26 313: 137(ptr) AccessChain 24(data) 25 312 125 26
316: 6(int) Load 315 314: 16(float) Load 313
317: 161(ptr) AccessChain 24(data) 25 316 158 315: 16(float) GroupNonUniformFMul 35 InclusiveScan 314
318: 19(f64vec4) Load 317 316: 137(ptr) AccessChain 24(data) 25 310 125 26
319: 19(f64vec4) GroupNonUniformFMul 35 InclusiveScan 318 Store 316 315
320: 161(ptr) AccessChain 24(data) 25 314 158 317: 27(ptr) AccessChain 10(dti) 26
Store 320 319 318: 6(int) Load 317
321: 27(ptr) AccessChain 10(dti) 26 319: 27(ptr) AccessChain 10(dti) 26
322: 6(int) Load 321 320: 6(int) Load 319
323: 27(ptr) AccessChain 10(dti) 26 321: 128(ptr) AccessChain 24(data) 25 320 125
324: 6(int) Load 323 322: 17(fvec4) Load 321
325: 170(ptr) AccessChain 24(data) 25 324 158 26 323: 146(fvec2) VectorShuffle 322 322 0 1
326:18(float64_t) Load 325 324: 146(fvec2) GroupNonUniformFMul 35 InclusiveScan 323
327:18(float64_t) GroupNonUniformFMul 35 InclusiveScan 326 325: 137(ptr) AccessChain 24(data) 25 318 125 26
328: 170(ptr) AccessChain 24(data) 25 322 158 26 326: 16(float) CompositeExtract 324 0
Store 328 327 Store 325 326
327: 137(ptr) AccessChain 24(data) 25 318 125 58
328: 16(float) CompositeExtract 324 1
Store 327 328
329: 27(ptr) AccessChain 10(dti) 26 329: 27(ptr) AccessChain 10(dti) 26
330: 6(int) Load 329 330: 6(int) Load 329
331: 27(ptr) AccessChain 10(dti) 26 331: 27(ptr) AccessChain 10(dti) 26
332: 6(int) Load 331 332: 6(int) Load 331
333: 161(ptr) AccessChain 24(data) 25 332 158 333: 128(ptr) AccessChain 24(data) 25 332 125
334: 19(f64vec4) Load 333 334: 17(fvec4) Load 333
335:179(f64vec2) VectorShuffle 334 334 0 1 335: 159(fvec3) VectorShuffle 334 334 0 1 2
336:179(f64vec2) GroupNonUniformFMul 35 InclusiveScan 335 336: 159(fvec3) GroupNonUniformFMul 35 InclusiveScan 335
337: 161(ptr) AccessChain 24(data) 25 330 158 337: 137(ptr) AccessChain 24(data) 25 330 125 26
338: 19(f64vec4) Load 337 338: 16(float) CompositeExtract 336 0
339: 19(f64vec4) VectorShuffle 338 336 4 5 2 3 Store 337 338
Store 337 339 339: 137(ptr) AccessChain 24(data) 25 330 125 58
340: 27(ptr) AccessChain 10(dti) 26 340: 16(float) CompositeExtract 336 1
341: 6(int) Load 340 Store 339 340
342: 27(ptr) AccessChain 10(dti) 26 341: 137(ptr) AccessChain 24(data) 25 330 125 73
343: 6(int) Load 342 342: 16(float) CompositeExtract 336 2
344: 161(ptr) AccessChain 24(data) 25 343 158 Store 341 342
345: 19(f64vec4) Load 344 343: 27(ptr) AccessChain 10(dti) 26
346:191(f64vec3) VectorShuffle 345 345 0 1 2 344: 6(int) Load 343
347:191(f64vec3) GroupNonUniformFMul 35 InclusiveScan 346 345: 27(ptr) AccessChain 10(dti) 26
348: 161(ptr) AccessChain 24(data) 25 341 158 346: 6(int) Load 345
349: 19(f64vec4) Load 348 347: 175(ptr) AccessChain 24(data) 25 346 172
350: 19(f64vec4) VectorShuffle 349 347 4 5 6 3 348: 19(f64vec4) Load 347
Store 348 350 349: 19(f64vec4) GroupNonUniformFMul 35 InclusiveScan 348
350: 175(ptr) AccessChain 24(data) 25 344 172
Store 350 349
351: 27(ptr) AccessChain 10(dti) 26 351: 27(ptr) AccessChain 10(dti) 26
352: 6(int) Load 351 352: 6(int) Load 351
353: 27(ptr) AccessChain 10(dti) 26 353: 27(ptr) AccessChain 10(dti) 26
354: 6(int) Load 353 354: 6(int) Load 353
355: 42(ptr) AccessChain 24(data) 25 354 25 26 355: 184(ptr) AccessChain 24(data) 25 354 172 26
356: 6(int) Load 355 356:18(float64_t) Load 355
358: 357(bool) IEqual 356 26 357:18(float64_t) GroupNonUniformFMul 35 InclusiveScan 356
359: 13(ivec4) GroupNonUniformBallot 35 358 358: 184(ptr) AccessChain 24(data) 25 352 172 26
360: 6(int) GroupNonUniformBallotBitCount 35 InclusiveScan 359 Store 358 357
361: 42(ptr) AccessChain 24(data) 25 352 25 26 359: 27(ptr) AccessChain 10(dti) 26
Store 361 360 360: 6(int) Load 359
361: 27(ptr) AccessChain 10(dti) 26
362: 6(int) Load 361
363: 175(ptr) AccessChain 24(data) 25 362 172
364: 19(f64vec4) Load 363
365:193(f64vec2) VectorShuffle 364 364 0 1
366:193(f64vec2) GroupNonUniformFMul 35 InclusiveScan 365
367: 184(ptr) AccessChain 24(data) 25 360 172 26
368:18(float64_t) CompositeExtract 366 0
Store 367 368
369: 184(ptr) AccessChain 24(data) 25 360 172 58
370:18(float64_t) CompositeExtract 366 1
Store 369 370
371: 27(ptr) AccessChain 10(dti) 26
372: 6(int) Load 371
373: 27(ptr) AccessChain 10(dti) 26
374: 6(int) Load 373
375: 175(ptr) AccessChain 24(data) 25 374 172
376: 19(f64vec4) Load 375
377:206(f64vec3) VectorShuffle 376 376 0 1 2
378:206(f64vec3) GroupNonUniformFMul 35 InclusiveScan 377
379: 184(ptr) AccessChain 24(data) 25 372 172 26
380:18(float64_t) CompositeExtract 378 0
Store 379 380
381: 184(ptr) AccessChain 24(data) 25 372 172 58
382:18(float64_t) CompositeExtract 378 1
Store 381 382
383: 184(ptr) AccessChain 24(data) 25 372 172 73
384:18(float64_t) CompositeExtract 378 2
Store 383 384
385: 27(ptr) AccessChain 10(dti) 26
386: 6(int) Load 385
387: 27(ptr) AccessChain 10(dti) 26
388: 6(int) Load 387
389: 42(ptr) AccessChain 24(data) 25 388 25 26
390: 6(int) Load 389
392: 391(bool) IEqual 390 26
393: 13(ivec4) GroupNonUniformBallot 35 392
394: 6(int) GroupNonUniformBallotBitCount 35 InclusiveScan 393
395: 42(ptr) AccessChain 24(data) 25 386 25 26
Store 395 394
Return Return
FunctionEnd FunctionEnd

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -28,14 +28,17 @@ remap.uniformarray.everything.frag
24: TypeVector 13(float) 3 24: TypeVector 13(float) 3
661: TypePointer Input 24(fvec3) 661: TypePointer Input 24(fvec3)
4957: 661(ptr) Variable Input 4957: 661(ptr) Variable Input
2570: 11(int) Constant 0
650: TypePointer Function 13(float)
2573: 11(int) Constant 1
2576: 11(int) Constant 2
2618: 11(int) Constant 16 2618: 11(int) Constant 16
669: TypeArray 13(float) 2618 709: TypeArray 13(float) 2618
1306: TypePointer Input 669 1346: TypePointer Input 709
4339: 1306(ptr) Variable Input 4339: 1346(ptr) Variable Input
2607: 12(int) Constant 12 2607: 12(int) Constant 12
650: TypePointer Input 13(float) 651: TypePointer Input 13(float)
2579: 11(int) Constant 3 2579: 11(int) Constant 3
651: TypePointer Function 13(float)
668: TypePointer Output 29(fvec4) 668: TypePointer Output 29(fvec4)
5139: 668(ptr) Variable Output 5139: 668(ptr) Variable Output
5663: 8 Function None 1282 5663: 8 Function None 1282
@ -49,17 +52,23 @@ remap.uniformarray.everything.frag
Store 4902 23084 Store 4902 23084
21218: 24(fvec3) Load 4957 21218: 24(fvec3) Load 4957
13695: 29(fvec4) Load 4902 13695: 29(fvec4) Load 4902
23883: 24(fvec3) VectorShuffle 13695 13695 0 1 2 23959: 24(fvec3) VectorShuffle 13695 13695 0 1 2
15591: 24(fvec3) FAdd 23883 21218 14937: 24(fvec3) FAdd 23959 21218
17086: 29(fvec4) Load 4902 15653: 650(ptr) AccessChain 4902 2570
7051: 29(fvec4) VectorShuffle 17086 15591 4 5 6 3 21354: 13(float) CompositeExtract 14937 0
Store 4902 7051 Store 15653 21354
18282: 650(ptr) AccessChain 4339 2607 16378: 650(ptr) AccessChain 4902 2573
7372: 13(float) Load 18282 15746: 13(float) CompositeExtract 14937 1
21371: 651(ptr) AccessChain 4902 2579 Store 16378 15746
16379: 650(ptr) AccessChain 4902 2576
15747: 13(float) CompositeExtract 14937 2
Store 16379 15747
19895: 651(ptr) AccessChain 4339 2607
7372: 13(float) Load 19895
21371: 650(ptr) AccessChain 4902 2579
11412: 13(float) Load 21371 11412: 13(float) Load 21371
22584: 13(float) FAdd 11412 7372 22584: 13(float) FAdd 11412 7372
17318: 651(ptr) AccessChain 4902 2579 17318: 650(ptr) AccessChain 4902 2579
Store 17318 22584 Store 17318 22584
17934: 29(fvec4) Load 4902 17934: 29(fvec4) Load 4902
Store 5139 17934 Store 5139 17934

View File

@ -1,27 +1,27 @@
remap.uniformarray.none.frag remap.uniformarray.none.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 53 // Id's are bound by 60
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 14 25 35 47 EntryPoint Fragment 4 "main" 14 25 43 54
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 140 Source GLSL 140
Name 4 "main" Name 4 "main"
Name 9 "texColor" Name 9 "texColor"
Name 14 "color" Name 14 "color"
Name 25 "inColor" Name 25 "inColor"
Name 35 "alpha" Name 43 "alpha"
Name 47 "gl_FragColor" Name 54 "gl_FragColor"
Name 52 "texSampler2D" Name 59 "texSampler2D"
Decorate 14(color) Location 1 Decorate 14(color) Location 1
Decorate 25(inColor) Location 0 Decorate 25(inColor) Location 0
Decorate 35(alpha) Location 7 Decorate 43(alpha) Location 7
Decorate 47(gl_FragColor) Location 0 Decorate 54(gl_FragColor) Location 0
Decorate 52(texSampler2D) DescriptorSet 0 Decorate 59(texSampler2D) DescriptorSet 0
Decorate 52(texSampler2D) Binding 0 Decorate 59(texSampler2D) Binding 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -38,20 +38,23 @@ remap.uniformarray.none.frag
23: TypeVector 6(float) 3 23: TypeVector 6(float) 3
24: TypePointer Input 23(fvec3) 24: TypePointer Input 23(fvec3)
25(inColor): 24(ptr) Variable Input 25(inColor): 24(ptr) Variable Input
32: 10(int) Constant 16 30: 10(int) Constant 0
33: TypeArray 6(float) 32 31: TypePointer Function 6(float)
34: TypePointer Input 33 34: 10(int) Constant 1
35(alpha): 34(ptr) Variable Input 37: 10(int) Constant 2
36: 15(int) Constant 12 40: 10(int) Constant 16
37: TypePointer Input 6(float) 41: TypeArray 6(float) 40
40: 10(int) Constant 3 42: TypePointer Input 41
41: TypePointer Function 6(float) 43(alpha): 42(ptr) Variable Input
46: TypePointer Output 7(fvec4) 44: 15(int) Constant 12
47(gl_FragColor): 46(ptr) Variable Output 45: TypePointer Input 6(float)
49: TypeImage 6(float) 2D sampled format:Unknown 48: 10(int) Constant 3
50: TypeSampledImage 49 53: TypePointer Output 7(fvec4)
51: TypePointer UniformConstant 50 54(gl_FragColor): 53(ptr) Variable Output
52(texSampler2D): 51(ptr) Variable UniformConstant 56: TypeImage 6(float) 2D sampled format:Unknown
57: TypeSampledImage 56
58: TypePointer UniformConstant 57
59(texSampler2D): 58(ptr) Variable UniformConstant
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(texColor): 8(ptr) Variable Function 9(texColor): 8(ptr) Variable Function
@ -65,17 +68,23 @@ remap.uniformarray.none.frag
27: 7(fvec4) Load 9(texColor) 27: 7(fvec4) Load 9(texColor)
28: 23(fvec3) VectorShuffle 27 27 0 1 2 28: 23(fvec3) VectorShuffle 27 27 0 1 2
29: 23(fvec3) FAdd 28 26 29: 23(fvec3) FAdd 28 26
30: 7(fvec4) Load 9(texColor) 32: 31(ptr) AccessChain 9(texColor) 30
31: 7(fvec4) VectorShuffle 30 29 4 5 6 3 33: 6(float) CompositeExtract 29 0
Store 9(texColor) 31 Store 32 33
38: 37(ptr) AccessChain 35(alpha) 36 35: 31(ptr) AccessChain 9(texColor) 34
39: 6(float) Load 38 36: 6(float) CompositeExtract 29 1
42: 41(ptr) AccessChain 9(texColor) 40 Store 35 36
43: 6(float) Load 42 38: 31(ptr) AccessChain 9(texColor) 37
44: 6(float) FAdd 43 39 39: 6(float) CompositeExtract 29 2
45: 41(ptr) AccessChain 9(texColor) 40 Store 38 39
Store 45 44 46: 45(ptr) AccessChain 43(alpha) 44
48: 7(fvec4) Load 9(texColor) 47: 6(float) Load 46
Store 47(gl_FragColor) 48 49: 31(ptr) AccessChain 9(texColor) 48
50: 6(float) Load 49
51: 6(float) FAdd 50 47
52: 31(ptr) AccessChain 9(texColor) 48
Store 52 51
55: 7(fvec4) Load 9(texColor)
Store 54(gl_FragColor) 55
Return Return
FunctionEnd FunctionEnd

View File

@ -0,0 +1,104 @@
spv.1.4.load.bool.array.interface.block.frag
Validation failed
// Module Version 10400
// Generated by (magic number): 8000a
// Id's are bound by 64
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 13 20 61
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
Name 4 "main"
Name 11 "ssbo"
MemberName 11(ssbo) 0 "bo"
Name 13 ""
Name 18 "ub"
MemberName 18(ub) 0 "bi"
Name 20 ""
Name 61 "color"
Decorate 8 ArrayStride 4
Decorate 10 ArrayStride 12
MemberDecorate 11(ssbo) 0 Offset 0
Decorate 11(ssbo) Block
Decorate 13 DescriptorSet 0
Decorate 13 Binding 1
Decorate 16 ArrayStride 16
Decorate 17 ArrayStride 48
MemberDecorate 18(ub) 0 Offset 0
Decorate 18(ub) Block
Decorate 20 DescriptorSet 0
Decorate 20 Binding 0
Decorate 61(color) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: 6(int) Constant 3
8: TypeArray 6(int) 7
9: 6(int) Constant 2
10: TypeArray 8 9
11(ssbo): TypeStruct 10
12: TypePointer StorageBuffer 11(ssbo)
13: 12(ptr) Variable StorageBuffer
14: TypeInt 32 1
15: 14(int) Constant 0
16: TypeArray 6(int) 7
17: TypeArray 16 9
18(ub): TypeStruct 17
19: TypePointer Uniform 18(ub)
20: 19(ptr) Variable Uniform
21: TypePointer Uniform 17
24: TypeBool
25: TypeArray 24(bool) 7
26: TypeArray 25 9
28: TypePointer StorageBuffer 10
31: TypePointer StorageBuffer 8
34: 6(int) Constant 1
35: 6(int) Constant 0
37: TypePointer StorageBuffer 6(int)
40: 14(int) Constant 1
44: 14(int) Constant 2
58: TypeFloat 32
59: TypeVector 58(float) 4
60: TypePointer Output 59(fvec4)
61(color): 60(ptr) Variable Output
62: 58(float) Constant 0
63: 59(fvec4) ConstantComposite 62 62 62 62
4(main): 2 Function None 3
5: Label
22: 21(ptr) AccessChain 20 15
23: 17 Load 22
27: 26 CopyLogical 23
29: 28(ptr) AccessChain 13 15
30: 25 CompositeExtract 27 0
32: 31(ptr) AccessChain 29 15
33: 24(bool) CompositeExtract 30 0
36: 6(int) Select 33 34 35
38: 37(ptr) AccessChain 32 15
Store 38 36
39: 24(bool) CompositeExtract 30 1
41: 6(int) Select 39 34 35
42: 37(ptr) AccessChain 32 40
Store 42 41
43: 24(bool) CompositeExtract 30 2
45: 6(int) Select 43 34 35
46: 37(ptr) AccessChain 32 44
Store 46 45
47: 25 CompositeExtract 27 1
48: 31(ptr) AccessChain 29 40
49: 24(bool) CompositeExtract 47 0
50: 6(int) Select 49 34 35
51: 37(ptr) AccessChain 48 15
Store 51 50
52: 24(bool) CompositeExtract 47 1
53: 6(int) Select 52 34 35
54: 37(ptr) AccessChain 48 40
Store 54 53
55: 24(bool) CompositeExtract 47 2
56: 6(int) Select 55 34 35
57: 37(ptr) AccessChain 48 44
Store 57 56
Store 61(color) 63
Return
FunctionEnd

View File

@ -1,71 +1,71 @@
spv.310.bitcast.frag spv.310.bitcast.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 153 // Id's are bound by 179
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 14 26 37 48 89 98 107 116 122 130 139 148 EntryPoint Fragment 4 "main" 14 26 40 56 103 112 123 136 142 150 161 174
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source ESSL 310 Source ESSL 310
Name 4 "main" Name 4 "main"
Name 9 "idata" Name 9 "idata"
Name 14 "f1" Name 14 "f1"
Name 26 "f2" Name 26 "f2"
Name 37 "f3" Name 40 "f3"
Name 48 "f4" Name 56 "f4"
Name 55 "udata" Name 63 "udata"
Name 85 "fdata" Name 99 "fdata"
Name 89 "i1" Name 103 "i1"
Name 98 "i2" Name 112 "i2"
Name 107 "i3" Name 123 "i3"
Name 116 "i4" Name 136 "i4"
Name 122 "u1" Name 142 "u1"
Name 130 "u2" Name 150 "u2"
Name 139 "u3" Name 161 "u3"
Name 148 "u4" Name 174 "u4"
Decorate 14(f1) RelaxedPrecision Decorate 14(f1) RelaxedPrecision
Decorate 14(f1) Location 8 Decorate 14(f1) Location 8
Decorate 15 RelaxedPrecision Decorate 15 RelaxedPrecision
Decorate 26(f2) RelaxedPrecision Decorate 26(f2) RelaxedPrecision
Decorate 26(f2) Location 9 Decorate 26(f2) Location 9
Decorate 27 RelaxedPrecision Decorate 27 RelaxedPrecision
Decorate 37(f3) RelaxedPrecision Decorate 40(f3) RelaxedPrecision
Decorate 37(f3) Location 10 Decorate 40(f3) Location 10
Decorate 38 RelaxedPrecision Decorate 41 RelaxedPrecision
Decorate 48(f4) Location 11 Decorate 56(f4) Location 11
Decorate 57 RelaxedPrecision Decorate 65 RelaxedPrecision
Decorate 64 RelaxedPrecision
Decorate 72 RelaxedPrecision Decorate 72 RelaxedPrecision
Decorate 89(i1) RelaxedPrecision Decorate 82 RelaxedPrecision
Decorate 89(i1) Flat Decorate 103(i1) RelaxedPrecision
Decorate 89(i1) Location 0 Decorate 103(i1) Flat
Decorate 90 RelaxedPrecision Decorate 103(i1) Location 0
Decorate 98(i2) RelaxedPrecision Decorate 104 RelaxedPrecision
Decorate 98(i2) Flat Decorate 112(i2) RelaxedPrecision
Decorate 98(i2) Location 1 Decorate 112(i2) Flat
Decorate 99 RelaxedPrecision Decorate 112(i2) Location 1
Decorate 107(i3) RelaxedPrecision Decorate 113 RelaxedPrecision
Decorate 107(i3) Flat Decorate 123(i3) RelaxedPrecision
Decorate 107(i3) Location 2 Decorate 123(i3) Flat
Decorate 108 RelaxedPrecision Decorate 123(i3) Location 2
Decorate 116(i4) Flat Decorate 124 RelaxedPrecision
Decorate 116(i4) Location 3 Decorate 136(i4) Flat
Decorate 122(u1) RelaxedPrecision Decorate 136(i4) Location 3
Decorate 122(u1) Flat Decorate 142(u1) RelaxedPrecision
Decorate 122(u1) Location 4 Decorate 142(u1) Flat
Decorate 123 RelaxedPrecision Decorate 142(u1) Location 4
Decorate 130(u2) RelaxedPrecision Decorate 143 RelaxedPrecision
Decorate 130(u2) Flat Decorate 150(u2) RelaxedPrecision
Decorate 130(u2) Location 5 Decorate 150(u2) Flat
Decorate 131 RelaxedPrecision Decorate 150(u2) Location 5
Decorate 139(u3) RelaxedPrecision Decorate 151 RelaxedPrecision
Decorate 139(u3) Flat Decorate 161(u3) RelaxedPrecision
Decorate 139(u3) Location 6 Decorate 161(u3) Flat
Decorate 140 RelaxedPrecision Decorate 161(u3) Location 6
Decorate 148(u4) Flat Decorate 162 RelaxedPrecision
Decorate 148(u4) Location 7 Decorate 174(u4) Flat
Decorate 174(u4) Location 7
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 1 6: TypeInt 32 1
@ -83,44 +83,46 @@ spv.310.bitcast.frag
25: TypePointer Input 24(fvec2) 25: TypePointer Input 24(fvec2)
26(f2): 25(ptr) Variable Input 26(f2): 25(ptr) Variable Input
28: TypeVector 6(int) 2 28: TypeVector 6(int) 2
35: TypeVector 12(float) 3 35: 17(int) Constant 1
36: TypePointer Input 35(fvec3) 38: TypeVector 12(float) 3
37(f3): 36(ptr) Variable Input 39: TypePointer Input 38(fvec3)
39: TypeVector 6(int) 3 40(f3): 39(ptr) Variable Input
46: TypeVector 12(float) 4 42: TypeVector 6(int) 3
47: TypePointer Input 46(fvec4) 51: 17(int) Constant 2
48(f4): 47(ptr) Variable Input 54: TypeVector 12(float) 4
53: TypeVector 17(int) 4 55: TypePointer Input 54(fvec4)
54: TypePointer Function 53(ivec4) 56(f4): 55(ptr) Variable Input
56: 53(ivec4) ConstantComposite 18 18 18 18 61: TypeVector 17(int) 4
59: TypePointer Function 17(int) 62: TypePointer Function 61(ivec4)
65: TypeVector 17(int) 2 64: 61(ivec4) ConstantComposite 18 18 18 18
73: TypeVector 17(int) 3 67: TypePointer Function 17(int)
84: TypePointer Function 46(fvec4) 73: TypeVector 17(int) 2
86: 12(float) Constant 0 83: TypeVector 17(int) 3
87: 46(fvec4) ConstantComposite 86 86 86 86 98: TypePointer Function 54(fvec4)
88: TypePointer Input 6(int) 100: 12(float) Constant 0
89(i1): 88(ptr) Variable Input 101: 54(fvec4) ConstantComposite 100 100 100 100
92: TypePointer Function 12(float) 102: TypePointer Input 6(int)
97: TypePointer Input 28(ivec2) 103(i1): 102(ptr) Variable Input
98(i2): 97(ptr) Variable Input 106: TypePointer Function 12(float)
106: TypePointer Input 39(ivec3) 111: TypePointer Input 28(ivec2)
107(i3): 106(ptr) Variable Input 112(i2): 111(ptr) Variable Input
115: TypePointer Input 7(ivec4) 122: TypePointer Input 42(ivec3)
116(i4): 115(ptr) Variable Input 123(i3): 122(ptr) Variable Input
121: TypePointer Input 17(int) 135: TypePointer Input 7(ivec4)
122(u1): 121(ptr) Variable Input 136(i4): 135(ptr) Variable Input
129: TypePointer Input 65(ivec2) 141: TypePointer Input 17(int)
130(u2): 129(ptr) Variable Input 142(u1): 141(ptr) Variable Input
138: TypePointer Input 73(ivec3) 149: TypePointer Input 73(ivec2)
139(u3): 138(ptr) Variable Input 150(u2): 149(ptr) Variable Input
147: TypePointer Input 53(ivec4) 160: TypePointer Input 83(ivec3)
148(u4): 147(ptr) Variable Input 161(u3): 160(ptr) Variable Input
173: TypePointer Input 61(ivec4)
174(u4): 173(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(idata): 8(ptr) Variable Function 9(idata): 8(ptr) Variable Function
55(udata): 54(ptr) Variable Function 63(udata): 62(ptr) Variable Function
85(fdata): 84(ptr) Variable Function 99(fdata): 98(ptr) Variable Function
Store 9(idata) 11 Store 9(idata) 11
15: 12(float) Load 14(f1) 15: 12(float) Load 14(f1)
16: 6(int) Bitcast 15 16: 6(int) Bitcast 15
@ -134,107 +136,143 @@ spv.310.bitcast.frag
30: 7(ivec4) Load 9(idata) 30: 7(ivec4) Load 9(idata)
31: 28(ivec2) VectorShuffle 30 30 0 1 31: 28(ivec2) VectorShuffle 30 30 0 1
32: 28(ivec2) IAdd 31 29 32: 28(ivec2) IAdd 31 29
33: 7(ivec4) Load 9(idata) 33: 19(ptr) AccessChain 9(idata) 18
34: 7(ivec4) VectorShuffle 33 32 4 5 2 3 34: 6(int) CompositeExtract 32 0
Store 9(idata) 34 Store 33 34
38: 35(fvec3) Load 37(f3) 36: 19(ptr) AccessChain 9(idata) 35
40: 39(ivec3) Bitcast 38 37: 6(int) CompositeExtract 32 1
41: 7(ivec4) Load 9(idata) Store 36 37
42: 39(ivec3) VectorShuffle 41 41 0 1 2 41: 38(fvec3) Load 40(f3)
43: 39(ivec3) IAdd 42 40 43: 42(ivec3) Bitcast 41
44: 7(ivec4) Load 9(idata) 44: 7(ivec4) Load 9(idata)
45: 7(ivec4) VectorShuffle 44 43 4 5 6 3 45: 42(ivec3) VectorShuffle 44 44 0 1 2
Store 9(idata) 45 46: 42(ivec3) IAdd 45 43
49: 46(fvec4) Load 48(f4) 47: 19(ptr) AccessChain 9(idata) 18
50: 7(ivec4) Bitcast 49 48: 6(int) CompositeExtract 46 0
51: 7(ivec4) Load 9(idata) Store 47 48
52: 7(ivec4) IAdd 51 50 49: 19(ptr) AccessChain 9(idata) 35
Store 9(idata) 52 50: 6(int) CompositeExtract 46 1
Store 55(udata) 56 Store 49 50
57: 12(float) Load 14(f1) 52: 19(ptr) AccessChain 9(idata) 51
58: 17(int) Bitcast 57 53: 6(int) CompositeExtract 46 2
60: 59(ptr) AccessChain 55(udata) 18 Store 52 53
61: 17(int) Load 60 57: 54(fvec4) Load 56(f4)
62: 17(int) IAdd 61 58 58: 7(ivec4) Bitcast 57
63: 59(ptr) AccessChain 55(udata) 18 59: 7(ivec4) Load 9(idata)
Store 63 62 60: 7(ivec4) IAdd 59 58
64: 24(fvec2) Load 26(f2) Store 9(idata) 60
66: 65(ivec2) Bitcast 64 Store 63(udata) 64
67: 53(ivec4) Load 55(udata) 65: 12(float) Load 14(f1)
68: 65(ivec2) VectorShuffle 67 67 0 1 66: 17(int) Bitcast 65
69: 65(ivec2) IAdd 68 66 68: 67(ptr) AccessChain 63(udata) 18
70: 53(ivec4) Load 55(udata) 69: 17(int) Load 68
71: 53(ivec4) VectorShuffle 70 69 4 5 2 3 70: 17(int) IAdd 69 66
Store 55(udata) 71 71: 67(ptr) AccessChain 63(udata) 18
72: 35(fvec3) Load 37(f3) Store 71 70
74: 73(ivec3) Bitcast 72 72: 24(fvec2) Load 26(f2)
75: 53(ivec4) Load 55(udata) 74: 73(ivec2) Bitcast 72
76: 73(ivec3) VectorShuffle 75 75 0 1 2 75: 61(ivec4) Load 63(udata)
77: 73(ivec3) IAdd 76 74 76: 73(ivec2) VectorShuffle 75 75 0 1
78: 53(ivec4) Load 55(udata) 77: 73(ivec2) IAdd 76 74
79: 53(ivec4) VectorShuffle 78 77 4 5 6 3 78: 67(ptr) AccessChain 63(udata) 18
Store 55(udata) 79 79: 17(int) CompositeExtract 77 0
80: 46(fvec4) Load 48(f4) Store 78 79
81: 53(ivec4) Bitcast 80 80: 67(ptr) AccessChain 63(udata) 35
82: 53(ivec4) Load 55(udata) 81: 17(int) CompositeExtract 77 1
83: 53(ivec4) IAdd 82 81 Store 80 81
Store 55(udata) 83 82: 38(fvec3) Load 40(f3)
Store 85(fdata) 87 84: 83(ivec3) Bitcast 82
90: 6(int) Load 89(i1) 85: 61(ivec4) Load 63(udata)
91: 12(float) Bitcast 90 86: 83(ivec3) VectorShuffle 85 85 0 1 2
93: 92(ptr) AccessChain 85(fdata) 18 87: 83(ivec3) IAdd 86 84
94: 12(float) Load 93 88: 67(ptr) AccessChain 63(udata) 18
95: 12(float) FAdd 94 91 89: 17(int) CompositeExtract 87 0
96: 92(ptr) AccessChain 85(fdata) 18 Store 88 89
Store 96 95 90: 67(ptr) AccessChain 63(udata) 35
99: 28(ivec2) Load 98(i2) 91: 17(int) CompositeExtract 87 1
100: 24(fvec2) Bitcast 99 Store 90 91
101: 46(fvec4) Load 85(fdata) 92: 67(ptr) AccessChain 63(udata) 51
102: 24(fvec2) VectorShuffle 101 101 0 1 93: 17(int) CompositeExtract 87 2
103: 24(fvec2) FAdd 102 100 Store 92 93
104: 46(fvec4) Load 85(fdata) 94: 54(fvec4) Load 56(f4)
105: 46(fvec4) VectorShuffle 104 103 4 5 2 3 95: 61(ivec4) Bitcast 94
Store 85(fdata) 105 96: 61(ivec4) Load 63(udata)
108: 39(ivec3) Load 107(i3) 97: 61(ivec4) IAdd 96 95
109: 35(fvec3) Bitcast 108 Store 63(udata) 97
110: 46(fvec4) Load 85(fdata) Store 99(fdata) 101
111: 35(fvec3) VectorShuffle 110 110 0 1 2 104: 6(int) Load 103(i1)
112: 35(fvec3) FAdd 111 109 105: 12(float) Bitcast 104
113: 46(fvec4) Load 85(fdata) 107: 106(ptr) AccessChain 99(fdata) 18
114: 46(fvec4) VectorShuffle 113 112 4 5 6 3 108: 12(float) Load 107
Store 85(fdata) 114 109: 12(float) FAdd 108 105
117: 7(ivec4) Load 116(i4) 110: 106(ptr) AccessChain 99(fdata) 18
118: 46(fvec4) Bitcast 117 Store 110 109
119: 46(fvec4) Load 85(fdata) 113: 28(ivec2) Load 112(i2)
120: 46(fvec4) FAdd 119 118 114: 24(fvec2) Bitcast 113
Store 85(fdata) 120 115: 54(fvec4) Load 99(fdata)
123: 17(int) Load 122(u1) 116: 24(fvec2) VectorShuffle 115 115 0 1
124: 12(float) Bitcast 123 117: 24(fvec2) FAdd 116 114
125: 92(ptr) AccessChain 85(fdata) 18 118: 106(ptr) AccessChain 99(fdata) 18
126: 12(float) Load 125 119: 12(float) CompositeExtract 117 0
127: 12(float) FAdd 126 124 Store 118 119
128: 92(ptr) AccessChain 85(fdata) 18 120: 106(ptr) AccessChain 99(fdata) 35
Store 128 127 121: 12(float) CompositeExtract 117 1
131: 65(ivec2) Load 130(u2) Store 120 121
132: 24(fvec2) Bitcast 131 124: 42(ivec3) Load 123(i3)
133: 46(fvec4) Load 85(fdata) 125: 38(fvec3) Bitcast 124
134: 24(fvec2) VectorShuffle 133 133 0 1 126: 54(fvec4) Load 99(fdata)
135: 24(fvec2) FAdd 134 132 127: 38(fvec3) VectorShuffle 126 126 0 1 2
136: 46(fvec4) Load 85(fdata) 128: 38(fvec3) FAdd 127 125
137: 46(fvec4) VectorShuffle 136 135 4 5 2 3 129: 106(ptr) AccessChain 99(fdata) 18
Store 85(fdata) 137 130: 12(float) CompositeExtract 128 0
140: 73(ivec3) Load 139(u3) Store 129 130
141: 35(fvec3) Bitcast 140 131: 106(ptr) AccessChain 99(fdata) 35
142: 46(fvec4) Load 85(fdata) 132: 12(float) CompositeExtract 128 1
143: 35(fvec3) VectorShuffle 142 142 0 1 2 Store 131 132
144: 35(fvec3) FAdd 143 141 133: 106(ptr) AccessChain 99(fdata) 51
145: 46(fvec4) Load 85(fdata) 134: 12(float) CompositeExtract 128 2
146: 46(fvec4) VectorShuffle 145 144 4 5 6 3 Store 133 134
Store 85(fdata) 146 137: 7(ivec4) Load 136(i4)
149: 53(ivec4) Load 148(u4) 138: 54(fvec4) Bitcast 137
150: 46(fvec4) Bitcast 149 139: 54(fvec4) Load 99(fdata)
151: 46(fvec4) Load 85(fdata) 140: 54(fvec4) FAdd 139 138
152: 46(fvec4) FAdd 151 150 Store 99(fdata) 140
Store 85(fdata) 152 143: 17(int) Load 142(u1)
144: 12(float) Bitcast 143
145: 106(ptr) AccessChain 99(fdata) 18
146: 12(float) Load 145
147: 12(float) FAdd 146 144
148: 106(ptr) AccessChain 99(fdata) 18
Store 148 147
151: 73(ivec2) Load 150(u2)
152: 24(fvec2) Bitcast 151
153: 54(fvec4) Load 99(fdata)
154: 24(fvec2) VectorShuffle 153 153 0 1
155: 24(fvec2) FAdd 154 152
156: 106(ptr) AccessChain 99(fdata) 18
157: 12(float) CompositeExtract 155 0
Store 156 157
158: 106(ptr) AccessChain 99(fdata) 35
159: 12(float) CompositeExtract 155 1
Store 158 159
162: 83(ivec3) Load 161(u3)
163: 38(fvec3) Bitcast 162
164: 54(fvec4) Load 99(fdata)
165: 38(fvec3) VectorShuffle 164 164 0 1 2
166: 38(fvec3) FAdd 165 163
167: 106(ptr) AccessChain 99(fdata) 18
168: 12(float) CompositeExtract 166 0
Store 167 168
169: 106(ptr) AccessChain 99(fdata) 35
170: 12(float) CompositeExtract 166 1
Store 169 170
171: 106(ptr) AccessChain 99(fdata) 51
172: 12(float) CompositeExtract 166 2
Store 171 172
175: 61(ivec4) Load 174(u4)
176: 54(fvec4) Bitcast 175
177: 54(fvec4) Load 99(fdata)
178: 54(fvec4) FAdd 177 176
Store 99(fdata) 178
Return Return
FunctionEnd FunctionEnd

View File

@ -1,13 +1,13 @@
spv.320.meshShaderUserDefined.mesh spv.320.meshShaderUserDefined.mesh
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 140 // Id's are bound by 143
Capability MeshShadingNV Capability MeshShadingNV
Extension "SPV_NV_mesh_shader" Extension "SPV_NV_mesh_shader"
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint MeshNV 4 "main" 12 19 37 103 EntryPoint MeshNV 4 "main" 12 19 37 106
ExecutionMode 4 LocalSize 32 1 1 ExecutionMode 4 LocalSize 32 1 1
ExecutionMode 4 OutputVertices 81 ExecutionMode 4 OutputVertices 81
ExecutionMode 4 OutputPrimitivesNV 32 ExecutionMode 4 OutputPrimitivesNV 32
@ -27,11 +27,11 @@ spv.320.meshShaderUserDefined.mesh
MemberName 33(myblock) 4 "m" MemberName 33(myblock) 4 "m"
MemberName 33(myblock) 5 "mArr" MemberName 33(myblock) 5 "mArr"
Name 37 "blk" Name 37 "blk"
Name 99 "myblock2" Name 102 "myblock2"
MemberName 99(myblock2) 0 "f" MemberName 102(myblock2) 0 "f"
MemberName 99(myblock2) 1 "pos" MemberName 102(myblock2) 1 "pos"
MemberName 99(myblock2) 2 "m" MemberName 102(myblock2) 2 "m"
Name 103 "blk2" Name 106 "blk2"
Decorate 12(gl_LocalInvocationID) BuiltIn LocalInvocationId Decorate 12(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 19(gl_WorkGroupID) BuiltIn WorkgroupId Decorate 19(gl_WorkGroupID) BuiltIn WorkgroupId
MemberDecorate 33(myblock) 0 PerPrimitiveNV MemberDecorate 33(myblock) 0 PerPrimitiveNV
@ -42,9 +42,9 @@ spv.320.meshShaderUserDefined.mesh
MemberDecorate 33(myblock) 5 PerPrimitiveNV MemberDecorate 33(myblock) 5 PerPrimitiveNV
Decorate 33(myblock) Block Decorate 33(myblock) Block
Decorate 37(blk) Location 0 Decorate 37(blk) Location 0
Decorate 99(myblock2) Block Decorate 102(myblock2) Block
Decorate 103(blk2) Location 20 Decorate 106(blk2) Location 20
Decorate 139 BuiltIn WorkgroupSize Decorate 142 BuiltIn WorkgroupSize
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 1 6: TypeInt 32 1
@ -82,31 +82,31 @@ spv.320.meshShaderUserDefined.mesh
57: 26(fvec3) ConstantComposite 54 55 56 57: 26(fvec3) ConstantComposite 54 55 56
58: TypePointer Output 26(fvec3) 58: TypePointer Output 26(fvec3)
64: 6(int) Constant 3 64: 6(int) Constant 3
69: TypePointer Output 27(fvec4) 69: 9(int) Constant 1
74: 6(int) Constant 4 74: 9(int) Constant 3
76: 23(float) Constant 1098907648 78: 6(int) Constant 4
77: 27(fvec4) ConstantComposite 56 54 55 76 80: 23(float) Constant 1098907648
82: 6(int) Constant 5 81: 27(fvec4) ConstantComposite 56 54 55 80
85: 9(int) Constant 3 82: TypePointer Output 27(fvec4)
88: 9(int) Constant 1 87: 6(int) Constant 5
93: 23(float) Constant 1099431936 96: 23(float) Constant 1099431936
94: 23(float) Constant 1099956224 97: 23(float) Constant 1099956224
95: 23(float) Constant 1100480512 98: 23(float) Constant 1100480512
96: 26(fvec3) ConstantComposite 93 94 95 99: 26(fvec3) ConstantComposite 96 97 98
98: 9(int) Constant 264 101: 9(int) Constant 264
99(myblock2): TypeStruct 23(float) 27(fvec4) 29 102(myblock2): TypeStruct 23(float) 27(fvec4) 29
100: 9(int) Constant 81 103: 9(int) Constant 81
101: TypeArray 99(myblock2) 100 104: TypeArray 102(myblock2) 103
102: TypePointer Output 101 105: TypePointer Output 104
103(blk2): 102(ptr) Variable Output 106(blk2): 105(ptr) Variable Output
109: 23(float) Constant 1101004800 112: 23(float) Constant 1101004800
113: 23(float) Constant 1101529088 116: 23(float) Constant 1101529088
114: 23(float) Constant 1102053376 117: 23(float) Constant 1102053376
115: 23(float) Constant 1102577664 118: 23(float) Constant 1102577664
116: 23(float) Constant 1103101952 119: 23(float) Constant 1103101952
117: 27(fvec4) ConstantComposite 113 114 115 116 120: 27(fvec4) ConstantComposite 116 117 118 119
129: 23(float) Constant 1105723392 132: 23(float) Constant 1105723392
139: 10(ivec3) ConstantComposite 34 88 88 142: 10(ivec3) ConstantComposite 34 69 69
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
8(iid): 7(ptr) Variable Function 8(iid): 7(ptr) Variable Function
@ -142,64 +142,69 @@ spv.320.meshShaderUserDefined.mesh
66: 6(int) SDiv 65 52 66: 6(int) SDiv 65 52
67: 58(ptr) AccessChain 37(blk) 66 52 67: 58(ptr) AccessChain 37(blk) 66 52
68: 26(fvec3) Load 67 68: 26(fvec3) Load 67
70: 69(ptr) AccessChain 37(blk) 63 64 44 70: 41(ptr) AccessChain 37(blk) 63 64 44 69
71: 27(fvec4) Load 70 71: 23(float) CompositeExtract 68 0
72: 27(fvec4) VectorShuffle 71 68 0 4 5 6 Store 70 71
Store 70 72 72: 41(ptr) AccessChain 37(blk) 63 64 44 31
73: 6(int) Load 8(iid) 73: 23(float) CompositeExtract 68 1
75: 6(int) SDiv 73 74 Store 72 73
78: 69(ptr) AccessChain 37(blk) 75 74 52 75: 41(ptr) AccessChain 37(blk) 63 64 44 74
79: 27(fvec4) Load 78 76: 23(float) CompositeExtract 68 2
80: 27(fvec4) VectorShuffle 79 77 7 6 5 4 Store 75 76
Store 78 80 77: 6(int) Load 8(iid)
81: 6(int) Load 8(iid) 79: 6(int) SDiv 77 78
83: 6(int) Load 8(iid) 83: 82(ptr) AccessChain 37(blk) 79 78 52
84: 6(int) SDiv 83 74 84: 27(fvec4) Load 83
86: 41(ptr) AccessChain 37(blk) 84 74 52 85 85: 27(fvec4) VectorShuffle 84 81 7 6 5 4
87: 23(float) Load 86 Store 83 85
89: 41(ptr) AccessChain 37(blk) 81 82 39 44 88 86: 6(int) Load 8(iid)
Store 89 87 88: 6(int) Load 8(iid)
90: 6(int) Load 8(iid) 89: 6(int) SDiv 88 78
91: 6(int) IMul 90 74 90: 41(ptr) AccessChain 37(blk) 89 78 52 74
92: 6(int) Load 18(gid) 91: 23(float) Load 90
97: 58(ptr) AccessChain 37(blk) 91 82 44 92 92: 41(ptr) AccessChain 37(blk) 86 87 39 44 69
Store 97 96 Store 92 91
MemoryBarrier 88 98 93: 6(int) Load 8(iid)
ControlBarrier 31 31 98 94: 6(int) IMul 93 78
104: 6(int) Load 8(iid) 95: 6(int) Load 18(gid)
105: 6(int) Load 8(iid) 100: 58(ptr) AccessChain 37(blk) 94 87 44 95
106: 6(int) ISub 105 44 Store 100 99
107: 41(ptr) AccessChain 103(blk2) 106 39 MemoryBarrier 69 101
108: 23(float) Load 107 ControlBarrier 31 31 101
110: 23(float) FAdd 108 109 107: 6(int) Load 8(iid)
111: 41(ptr) AccessChain 103(blk2) 104 39 108: 6(int) Load 8(iid)
Store 111 110 109: 6(int) ISub 108 44
112: 6(int) Load 8(iid) 110: 41(ptr) AccessChain 106(blk2) 109 39
118: 69(ptr) AccessChain 103(blk2) 112 44 111: 23(float) Load 110
Store 118 117 113: 23(float) FAdd 111 112
119: 6(int) Load 8(iid) 114: 41(ptr) AccessChain 106(blk2) 107 39
120: 6(int) IAdd 119 44 Store 114 113
121: 6(int) Load 18(gid) 115: 6(int) Load 8(iid)
121: 82(ptr) AccessChain 106(blk2) 115 44
Store 121 120
122: 6(int) Load 8(iid) 122: 6(int) Load 8(iid)
123: 69(ptr) AccessChain 103(blk2) 122 44 123: 6(int) IAdd 122 44
124: 27(fvec4) Load 123 124: 6(int) Load 18(gid)
125: 69(ptr) AccessChain 103(blk2) 120 52 121 125: 6(int) Load 8(iid)
Store 125 124 126: 82(ptr) AccessChain 106(blk2) 125 44
126: 6(int) Load 8(iid) 127: 27(fvec4) Load 126
127: 6(int) IAdd 126 44 128: 82(ptr) AccessChain 106(blk2) 123 52 124
128: 6(int) Load 18(gid) Store 128 127
130: 41(ptr) AccessChain 103(blk2) 127 52 128 31 129: 6(int) Load 8(iid)
Store 130 129 130: 6(int) IAdd 129 44
131: 6(int) Load 8(iid) 131: 6(int) Load 18(gid)
132: 6(int) IAdd 131 52 133: 41(ptr) AccessChain 106(blk2) 130 52 131 31
133: 6(int) Load 8(iid) Store 133 132
134: 6(int) IAdd 133 44 134: 6(int) Load 8(iid)
135: 6(int) Load 18(gid) 135: 6(int) IAdd 134 52
136: 69(ptr) AccessChain 103(blk2) 134 52 135 136: 6(int) Load 8(iid)
137: 27(fvec4) Load 136 137: 6(int) IAdd 136 44
138: 69(ptr) AccessChain 103(blk2) 132 52 64 138: 6(int) Load 18(gid)
Store 138 137 139: 82(ptr) AccessChain 106(blk2) 137 52 138
MemoryBarrier 88 98 140: 27(fvec4) Load 139
ControlBarrier 31 31 98 141: 82(ptr) AccessChain 106(blk2) 135 52 64
Store 141 140
MemoryBarrier 69 101
ControlBarrier 31 31 101
Return Return
FunctionEnd FunctionEnd

View File

@ -1,7 +1,7 @@
spv.400.frag spv.400.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 1118 // Id's are bound by 1122
Capability Shader Capability Shader
Capability Geometry Capability Geometry
@ -11,7 +11,7 @@ spv.400.frag
Capability SampledRect Capability SampledRect
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 13 1027 1033 1038 1050 1076 1097 1099 1105 1107 1116 EntryPoint Fragment 4 "main" 13 1027 1033 1038 1054 1080 1101 1103 1109 1111 1120
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 400 Source GLSL 400
SourceExtension "GL_ARB_separate_shader_objects" SourceExtension "GL_ARB_separate_shader_objects"
@ -42,16 +42,16 @@ spv.400.frag
Name 1027 "i" Name 1027 "i"
Name 1033 "c2D" Name 1033 "c2D"
Name 1038 "gl_ClipDistance" Name 1038 "gl_ClipDistance"
Name 1050 "uoutp" Name 1054 "uoutp"
Name 1054 "samp2dr" Name 1058 "samp2dr"
Name 1076 "ioutp" Name 1080 "ioutp"
Name 1080 "isamp2DA" Name 1084 "isamp2DA"
Name 1097 "gl_FragCoord" Name 1101 "gl_FragCoord"
Name 1099 "vl2" Name 1103 "vl2"
Name 1105 "uo" Name 1109 "uo"
Name 1107 "u" Name 1111 "u"
Name 1115 "id" Name 1119 "id"
Name 1116 "gl_PrimitiveID" Name 1120 "gl_PrimitiveID"
Decorate 13(outp) Location 1 Decorate 13(outp) Location 1
Decorate 17(u2drs) DescriptorSet 0 Decorate 17(u2drs) DescriptorSet 0
Decorate 17(u2drs) Binding 3 Decorate 17(u2drs) Binding 3
@ -61,19 +61,19 @@ spv.400.frag
Decorate 1027(i) Location 1 Decorate 1027(i) Location 1
Decorate 1033(c2D) Location 0 Decorate 1033(c2D) Location 0
Decorate 1038(gl_ClipDistance) BuiltIn ClipDistance Decorate 1038(gl_ClipDistance) BuiltIn ClipDistance
Decorate 1050(uoutp) Location 3 Decorate 1054(uoutp) Location 3
Decorate 1054(samp2dr) DescriptorSet 0 Decorate 1058(samp2dr) DescriptorSet 0
Decorate 1054(samp2dr) Binding 1 Decorate 1058(samp2dr) Binding 1
Decorate 1076(ioutp) Location 2 Decorate 1080(ioutp) Location 2
Decorate 1080(isamp2DA) DescriptorSet 0 Decorate 1084(isamp2DA) DescriptorSet 0
Decorate 1080(isamp2DA) Binding 2 Decorate 1084(isamp2DA) Binding 2
Decorate 1097(gl_FragCoord) BuiltIn FragCoord Decorate 1101(gl_FragCoord) BuiltIn FragCoord
Decorate 1099(vl2) Location 6 Decorate 1103(vl2) Location 6
Decorate 1105(uo) Location 0 Decorate 1109(uo) Location 0
Decorate 1107(u) Flat Decorate 1111(u) Flat
Decorate 1107(u) Location 2 Decorate 1111(u) Location 2
Decorate 1116(gl_PrimitiveID) Flat Decorate 1120(gl_PrimitiveID) Flat
Decorate 1116(gl_PrimitiveID) BuiltIn PrimitiveId Decorate 1120(gl_PrimitiveID) BuiltIn PrimitiveId
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
10: TypeFloat 32 10: TypeFloat 32
@ -161,46 +161,46 @@ spv.400.frag
1038(gl_ClipDistance): 1037(ptr) Variable Input 1038(gl_ClipDistance): 1037(ptr) Variable Input
1039: TypePointer Input 10(float) 1039: TypePointer Input 10(float)
1043: TypeVector 10(float) 3 1043: TypeVector 10(float) 3
1048: TypeVector 32(int) 4 1052: TypeVector 32(int) 4
1049: TypePointer Output 1048(ivec4) 1053: TypePointer Output 1052(ivec4)
1050(uoutp): 1049(ptr) Variable Output 1054(uoutp): 1053(ptr) Variable Output
1051: TypeImage 32(int) Rect sampled format:Unknown 1055: TypeImage 32(int) Rect sampled format:Unknown
1052: TypeSampledImage 1051 1056: TypeSampledImage 1055
1053: TypePointer UniformConstant 1052 1057: TypePointer UniformConstant 1056
1054(samp2dr): 1053(ptr) Variable UniformConstant 1058(samp2dr): 1057(ptr) Variable UniformConstant
1057: 32(int) Constant 4 1061: 32(int) Constant 4
1058: TypeArray 24(ivec2) 1057 1062: TypeArray 24(ivec2) 1061
1059: 24(ivec2) ConstantComposite 966 970 1063: 24(ivec2) ConstantComposite 966 970
1060: 23(int) Constant 15 1064: 23(int) Constant 15
1061: 23(int) Constant 16 1065: 23(int) Constant 16
1062: 24(ivec2) ConstantComposite 1060 1061 1066: 24(ivec2) ConstantComposite 1064 1065
1063: 23(int) Constant 4294967294 1067: 23(int) Constant 4294967294
1064: 23(int) Constant 0 1068: 23(int) Constant 0
1065: 24(ivec2) ConstantComposite 1063 1064 1069: 24(ivec2) ConstantComposite 1067 1068
1066: 1058 ConstantComposite 1059 27 1062 1065 1070: 1062 ConstantComposite 1063 27 1066 1069
1074: TypeVector 23(int) 4 1078: TypeVector 23(int) 4
1075: TypePointer Output 1074(ivec4) 1079: TypePointer Output 1078(ivec4)
1076(ioutp): 1075(ptr) Variable Output 1080(ioutp): 1079(ptr) Variable Output
1077: TypeImage 23(int) 2D array sampled format:Unknown 1081: TypeImage 23(int) 2D array sampled format:Unknown
1078: TypeSampledImage 1077 1082: TypeSampledImage 1081
1079: TypePointer UniformConstant 1078 1083: TypePointer UniformConstant 1082
1080(isamp2DA): 1079(ptr) Variable UniformConstant 1084(isamp2DA): 1083(ptr) Variable UniformConstant
1082: 10(float) Constant 1036831949 1086: 10(float) Constant 1036831949
1083: 1043(fvec3) ConstantComposite 1082 1082 1082 1087: 1043(fvec3) ConstantComposite 1086 1086 1086
1084: 24(ivec2) ConstantComposite 966 966 1088: 24(ivec2) ConstantComposite 966 966
1096: TypePointer Input 11(fvec4) 1100: TypePointer Input 11(fvec4)
1097(gl_FragCoord): 1096(ptr) Variable Input 1101(gl_FragCoord): 1100(ptr) Variable Input
1099(vl2): 1096(ptr) Variable Input 1103(vl2): 1100(ptr) Variable Input
1104: TypePointer Output 32(int) 1108: TypePointer Output 32(int)
1105(uo): 1104(ptr) Variable Output 1109(uo): 1108(ptr) Variable Output
1106: TypePointer Input 32(int) 1110: TypePointer Input 32(int)
1107(u): 1106(ptr) Variable Input 1111(u): 1110(ptr) Variable Input
1114: TypePointer Function 23(int) 1118: TypePointer Function 23(int)
1116(gl_PrimitiveID): 1026(ptr) Variable Input 1120(gl_PrimitiveID): 1026(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
1019(v): 1018(ptr) Variable Function 1019(v): 1018(ptr) Variable Function
1115(id): 1114(ptr) Variable Function 1119(id): 1118(ptr) Variable Function
1028: 23(int) Load 1027(i) 1028: 23(int) Load 1027(i)
1030: 1029(ptr) AccessChain 1025(arrayedSampler) 1028 1030: 1029(ptr) AccessChain 1025(arrayedSampler) 1028
1031: 1021 Load 1030 1031: 1021 Load 1030
@ -213,50 +213,56 @@ spv.400.frag
Store 1042 1041 Store 1042 1041
1044: 11(fvec4) Load 1019(v) 1044: 11(fvec4) Load 1019(v)
1045: 1043(fvec3) VectorShuffle 1044 1044 1 2 3 1045: 1043(fvec3) VectorShuffle 1044 1044 1 2 3
1046: 11(fvec4) Load 13(outp) 1046: 34(ptr) AccessChain 13(outp) 954
1047: 11(fvec4) VectorShuffle 1046 1045 0 4 5 6 1047: 10(float) CompositeExtract 1045 0
Store 13(outp) 1047 Store 1046 1047
1055: 1052 Load 1054(samp2dr) 1048: 34(ptr) AccessChain 13(outp) 958
1056: 20(fvec2) Load 1033(c2D) 1049: 10(float) CompositeExtract 1045 1
1067: 1048(ivec4) ImageGather 1055 1056 970 ConstOffsets 1066 Store 1048 1049
Store 1050(uoutp) 1067 1050: 34(ptr) AccessChain 13(outp) 962
1068: 1029(ptr) AccessChain 1025(arrayedSampler) 1064 1051: 10(float) CompositeExtract 1045 2
1069: 1021 Load 1068 Store 1050 1051
1070: 20(fvec2) Load 1033(c2D) 1059: 1056 Load 1058(samp2dr)
1071: 11(fvec4) ImageGather 1069 1070 1064 1060: 20(fvec2) Load 1033(c2D)
1072: 11(fvec4) Load 13(outp) 1071: 1052(ivec4) ImageGather 1059 1060 970 ConstOffsets 1070
1073: 11(fvec4) FAdd 1072 1071 Store 1054(uoutp) 1071
Store 13(outp) 1073 1072: 1029(ptr) AccessChain 1025(arrayedSampler) 1068
1081: 1078 Load 1080(isamp2DA) 1073: 1021 Load 1072
1085: 1074(ivec4) ImageGather 1081 1083 25 ConstOffset 1084 1074: 20(fvec2) Load 1033(c2D)
Store 1076(ioutp) 1085 1075: 11(fvec4) ImageGather 1073 1074 1068
1086: 1078 Load 1080(isamp2DA) 1076: 11(fvec4) Load 13(outp)
1087: 1074(ivec4) ImageGather 1086 1083 25 ConstOffset 1084 1077: 11(fvec4) FAdd 1076 1075
1088: 1074(ivec4) Load 1076(ioutp) Store 13(outp) 1077
1089: 1074(ivec4) IAdd 1088 1087 1085: 1082 Load 1084(isamp2DA)
Store 1076(ioutp) 1089 1089: 1078(ivec4) ImageGather 1085 1087 25 ConstOffset 1088
1090: 1078 Load 1080(isamp2DA) Store 1080(ioutp) 1089
1091: 23(int) Load 1027(i) 1090: 1082 Load 1084(isamp2DA)
1092: 24(ivec2) CompositeConstruct 1091 1091 1091: 1078(ivec4) ImageGather 1090 1087 25 ConstOffset 1088
1093: 1074(ivec4) ImageGather 1090 1083 1064 Offset 1092 1092: 1078(ivec4) Load 1080(ioutp)
1094: 1074(ivec4) Load 1076(ioutp) 1093: 1078(ivec4) IAdd 1092 1091
1095: 1074(ivec4) IAdd 1094 1093 Store 1080(ioutp) 1093
Store 1076(ioutp) 1095 1094: 1082 Load 1084(isamp2DA)
1098: 11(fvec4) Load 1097(gl_FragCoord) 1095: 23(int) Load 1027(i)
1100: 11(fvec4) Load 1099(vl2) 1096: 24(ivec2) CompositeConstruct 1095 1095
1101: 11(fvec4) FAdd 1098 1100 1097: 1078(ivec4) ImageGather 1094 1087 1068 Offset 1096
1102: 11(fvec4) Load 13(outp) 1098: 1078(ivec4) Load 1080(ioutp)
1103: 11(fvec4) FAdd 1102 1101 1099: 1078(ivec4) IAdd 1098 1097
Store 13(outp) 1103 Store 1080(ioutp) 1099
1108: 32(int) Load 1107(u) 1102: 11(fvec4) Load 1101(gl_FragCoord)
1109: 23(int) Load 1027(i) 1104: 11(fvec4) Load 1103(vl2)
1110: 32(int) Bitcast 1109 1105: 11(fvec4) FAdd 1102 1104
1111: 32(int) UMod 1108 1110 1106: 11(fvec4) Load 13(outp)
Store 1105(uo) 1111 1107: 11(fvec4) FAdd 1106 1105
1112: 2 FunctionCall 6(foo23() Store 13(outp) 1107
1113: 2 FunctionCall 8(doubles() 1112: 32(int) Load 1111(u)
1117: 23(int) Load 1116(gl_PrimitiveID) 1113: 23(int) Load 1027(i)
Store 1115(id) 1117 1114: 32(int) Bitcast 1113
1115: 32(int) UMod 1112 1114
Store 1109(uo) 1115
1116: 2 FunctionCall 6(foo23()
1117: 2 FunctionCall 8(doubles()
1121: 23(int) Load 1120(gl_PrimitiveID)
Store 1119(id) 1121
Return Return
FunctionEnd FunctionEnd
6(foo23(): 2 Function None 3 6(foo23(): 2 Function None 3

View File

@ -2,7 +2,7 @@ spv.400.frag
Validation failed Validation failed
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 1118 // Id's are bound by 1122
Capability Shader Capability Shader
Capability Geometry Capability Geometry
@ -12,7 +12,7 @@ Validation failed
Capability SampledRect Capability SampledRect
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 13 1027 1033 1038 1050 1076 1097 1099 1105 1107 1116 EntryPoint Fragment 4 "main" 13 1027 1033 1038 1054 1080 1101 1103 1109 1111 1120
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 400 Source GLSL 400
SourceExtension "GL_ARB_separate_shader_objects" SourceExtension "GL_ARB_separate_shader_objects"
@ -43,16 +43,16 @@ Validation failed
Name 1027 "i" Name 1027 "i"
Name 1033 "c2D" Name 1033 "c2D"
Name 1038 "gl_ClipDistance" Name 1038 "gl_ClipDistance"
Name 1050 "uoutp" Name 1054 "uoutp"
Name 1054 "samp2dr" Name 1058 "samp2dr"
Name 1076 "ioutp" Name 1080 "ioutp"
Name 1080 "isamp2DA" Name 1084 "isamp2DA"
Name 1097 "gl_FragCoord" Name 1101 "gl_FragCoord"
Name 1099 "vl2" Name 1103 "vl2"
Name 1105 "uo" Name 1109 "uo"
Name 1107 "u" Name 1111 "u"
Name 1115 "id" Name 1119 "id"
Name 1116 "gl_PrimitiveID" Name 1120 "gl_PrimitiveID"
Decorate 13(outp) Location 1 Decorate 13(outp) Location 1
Decorate 17(u2drs) DescriptorSet 0 Decorate 17(u2drs) DescriptorSet 0
Decorate 17(u2drs) Binding 3 Decorate 17(u2drs) Binding 3
@ -62,19 +62,19 @@ Validation failed
Decorate 1027(i) Location 1 Decorate 1027(i) Location 1
Decorate 1033(c2D) Location 0 Decorate 1033(c2D) Location 0
Decorate 1038(gl_ClipDistance) BuiltIn ClipDistance Decorate 1038(gl_ClipDistance) BuiltIn ClipDistance
Decorate 1050(uoutp) Location 3 Decorate 1054(uoutp) Location 3
Decorate 1054(samp2dr) DescriptorSet 0 Decorate 1058(samp2dr) DescriptorSet 0
Decorate 1054(samp2dr) Binding 1 Decorate 1058(samp2dr) Binding 1
Decorate 1076(ioutp) Location 2 Decorate 1080(ioutp) Location 2
Decorate 1080(isamp2DA) DescriptorSet 0 Decorate 1084(isamp2DA) DescriptorSet 0
Decorate 1080(isamp2DA) Binding 2 Decorate 1084(isamp2DA) Binding 2
Decorate 1097(gl_FragCoord) BuiltIn FragCoord Decorate 1101(gl_FragCoord) BuiltIn FragCoord
Decorate 1099(vl2) Location 6 Decorate 1103(vl2) Location 6
Decorate 1105(uo) Location 0 Decorate 1109(uo) Location 0
Decorate 1107(u) Flat Decorate 1111(u) Flat
Decorate 1107(u) Location 2 Decorate 1111(u) Location 2
Decorate 1116(gl_PrimitiveID) Flat Decorate 1120(gl_PrimitiveID) Flat
Decorate 1116(gl_PrimitiveID) BuiltIn PrimitiveId Decorate 1120(gl_PrimitiveID) BuiltIn PrimitiveId
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
10: TypeFloat 32 10: TypeFloat 32
@ -162,46 +162,46 @@ Validation failed
1038(gl_ClipDistance): 1037(ptr) Variable Input 1038(gl_ClipDistance): 1037(ptr) Variable Input
1039: TypePointer Input 10(float) 1039: TypePointer Input 10(float)
1043: TypeVector 10(float) 3 1043: TypeVector 10(float) 3
1048: TypeVector 32(int) 4 1052: TypeVector 32(int) 4
1049: TypePointer Output 1048(ivec4) 1053: TypePointer Output 1052(ivec4)
1050(uoutp): 1049(ptr) Variable Output 1054(uoutp): 1053(ptr) Variable Output
1051: TypeImage 32(int) Rect sampled format:Unknown 1055: TypeImage 32(int) Rect sampled format:Unknown
1052: TypeSampledImage 1051 1056: TypeSampledImage 1055
1053: TypePointer UniformConstant 1052 1057: TypePointer UniformConstant 1056
1054(samp2dr): 1053(ptr) Variable UniformConstant 1058(samp2dr): 1057(ptr) Variable UniformConstant
1057: 32(int) Constant 4 1061: 32(int) Constant 4
1058: TypeArray 24(ivec2) 1057 1062: TypeArray 24(ivec2) 1061
1059: 24(ivec2) ConstantComposite 966 970 1063: 24(ivec2) ConstantComposite 966 970
1060: 23(int) Constant 15 1064: 23(int) Constant 15
1061: 23(int) Constant 16 1065: 23(int) Constant 16
1062: 24(ivec2) ConstantComposite 1060 1061 1066: 24(ivec2) ConstantComposite 1064 1065
1063: 23(int) Constant 4294967294 1067: 23(int) Constant 4294967294
1064: 23(int) Constant 0 1068: 23(int) Constant 0
1065: 24(ivec2) ConstantComposite 1063 1064 1069: 24(ivec2) ConstantComposite 1067 1068
1066: 1058 ConstantComposite 1059 27 1062 1065 1070: 1062 ConstantComposite 1063 27 1066 1069
1074: TypeVector 23(int) 4 1078: TypeVector 23(int) 4
1075: TypePointer Output 1074(ivec4) 1079: TypePointer Output 1078(ivec4)
1076(ioutp): 1075(ptr) Variable Output 1080(ioutp): 1079(ptr) Variable Output
1077: TypeImage 23(int) 2D array sampled format:Unknown 1081: TypeImage 23(int) 2D array sampled format:Unknown
1078: TypeSampledImage 1077 1082: TypeSampledImage 1081
1079: TypePointer UniformConstant 1078 1083: TypePointer UniformConstant 1082
1080(isamp2DA): 1079(ptr) Variable UniformConstant 1084(isamp2DA): 1083(ptr) Variable UniformConstant
1082: 10(float) Constant 1036831949 1086: 10(float) Constant 1036831949
1083: 1043(fvec3) ConstantComposite 1082 1082 1082 1087: 1043(fvec3) ConstantComposite 1086 1086 1086
1084: 24(ivec2) ConstantComposite 966 966 1088: 24(ivec2) ConstantComposite 966 966
1096: TypePointer Input 11(fvec4) 1100: TypePointer Input 11(fvec4)
1097(gl_FragCoord): 1096(ptr) Variable Input 1101(gl_FragCoord): 1100(ptr) Variable Input
1099(vl2): 1096(ptr) Variable Input 1103(vl2): 1100(ptr) Variable Input
1104: TypePointer Output 32(int) 1108: TypePointer Output 32(int)
1105(uo): 1104(ptr) Variable Output 1109(uo): 1108(ptr) Variable Output
1106: TypePointer Input 32(int) 1110: TypePointer Input 32(int)
1107(u): 1106(ptr) Variable Input 1111(u): 1110(ptr) Variable Input
1114: TypePointer Function 23(int) 1118: TypePointer Function 23(int)
1116(gl_PrimitiveID): 1026(ptr) Variable Input 1120(gl_PrimitiveID): 1026(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
1019(v): 1018(ptr) Variable Function 1019(v): 1018(ptr) Variable Function
1115(id): 1114(ptr) Variable Function 1119(id): 1118(ptr) Variable Function
1028: 23(int) Load 1027(i) 1028: 23(int) Load 1027(i)
1030: 1029(ptr) AccessChain 1025(arrayedSampler) 1028 1030: 1029(ptr) AccessChain 1025(arrayedSampler) 1028
1031: 1021 Load 1030 1031: 1021 Load 1030
@ -214,50 +214,56 @@ Validation failed
Store 1042 1041 Store 1042 1041
1044: 11(fvec4) Load 1019(v) 1044: 11(fvec4) Load 1019(v)
1045: 1043(fvec3) VectorShuffle 1044 1044 1 2 3 1045: 1043(fvec3) VectorShuffle 1044 1044 1 2 3
1046: 11(fvec4) Load 13(outp) 1046: 34(ptr) AccessChain 13(outp) 954
1047: 11(fvec4) VectorShuffle 1046 1045 0 4 5 6 1047: 10(float) CompositeExtract 1045 0
Store 13(outp) 1047 Store 1046 1047
1055: 1052 Load 1054(samp2dr) 1048: 34(ptr) AccessChain 13(outp) 958
1056: 20(fvec2) Load 1033(c2D) 1049: 10(float) CompositeExtract 1045 1
1067: 1048(ivec4) ImageGather 1055 1056 970 ConstOffsets 1066 Store 1048 1049
Store 1050(uoutp) 1067 1050: 34(ptr) AccessChain 13(outp) 962
1068: 1029(ptr) AccessChain 1025(arrayedSampler) 1064 1051: 10(float) CompositeExtract 1045 2
1069: 1021 Load 1068 Store 1050 1051
1070: 20(fvec2) Load 1033(c2D) 1059: 1056 Load 1058(samp2dr)
1071: 11(fvec4) ImageGather 1069 1070 1064 1060: 20(fvec2) Load 1033(c2D)
1072: 11(fvec4) Load 13(outp) 1071: 1052(ivec4) ImageGather 1059 1060 970 ConstOffsets 1070
1073: 11(fvec4) FAdd 1072 1071 Store 1054(uoutp) 1071
Store 13(outp) 1073 1072: 1029(ptr) AccessChain 1025(arrayedSampler) 1068
1081: 1078 Load 1080(isamp2DA) 1073: 1021 Load 1072
1085: 1074(ivec4) ImageGather 1081 1083 25 ConstOffset 1084 1074: 20(fvec2) Load 1033(c2D)
Store 1076(ioutp) 1085 1075: 11(fvec4) ImageGather 1073 1074 1068
1086: 1078 Load 1080(isamp2DA) 1076: 11(fvec4) Load 13(outp)
1087: 1074(ivec4) ImageGather 1086 1083 25 ConstOffset 1084 1077: 11(fvec4) FAdd 1076 1075
1088: 1074(ivec4) Load 1076(ioutp) Store 13(outp) 1077
1089: 1074(ivec4) IAdd 1088 1087 1085: 1082 Load 1084(isamp2DA)
Store 1076(ioutp) 1089 1089: 1078(ivec4) ImageGather 1085 1087 25 ConstOffset 1088
1090: 1078 Load 1080(isamp2DA) Store 1080(ioutp) 1089
1091: 23(int) Load 1027(i) 1090: 1082 Load 1084(isamp2DA)
1092: 24(ivec2) CompositeConstruct 1091 1091 1091: 1078(ivec4) ImageGather 1090 1087 25 ConstOffset 1088
1093: 1074(ivec4) ImageGather 1090 1083 1064 Offset 1092 1092: 1078(ivec4) Load 1080(ioutp)
1094: 1074(ivec4) Load 1076(ioutp) 1093: 1078(ivec4) IAdd 1092 1091
1095: 1074(ivec4) IAdd 1094 1093 Store 1080(ioutp) 1093
Store 1076(ioutp) 1095 1094: 1082 Load 1084(isamp2DA)
1098: 11(fvec4) Load 1097(gl_FragCoord) 1095: 23(int) Load 1027(i)
1100: 11(fvec4) Load 1099(vl2) 1096: 24(ivec2) CompositeConstruct 1095 1095
1101: 11(fvec4) FAdd 1098 1100 1097: 1078(ivec4) ImageGather 1094 1087 1068 Offset 1096
1102: 11(fvec4) Load 13(outp) 1098: 1078(ivec4) Load 1080(ioutp)
1103: 11(fvec4) FAdd 1102 1101 1099: 1078(ivec4) IAdd 1098 1097
Store 13(outp) 1103 Store 1080(ioutp) 1099
1108: 32(int) Load 1107(u) 1102: 11(fvec4) Load 1101(gl_FragCoord)
1109: 23(int) Load 1027(i) 1104: 11(fvec4) Load 1103(vl2)
1110: 32(int) Bitcast 1109 1105: 11(fvec4) FAdd 1102 1104
1111: 32(int) UMod 1108 1110 1106: 11(fvec4) Load 13(outp)
Store 1105(uo) 1111 1107: 11(fvec4) FAdd 1106 1105
1112: 2 FunctionCall 6(foo23() Store 13(outp) 1107
1113: 2 FunctionCall 8(doubles() 1112: 32(int) Load 1111(u)
1117: 23(int) Load 1116(gl_PrimitiveID) 1113: 23(int) Load 1027(i)
Store 1115(id) 1117 1114: 32(int) Bitcast 1113
1115: 32(int) UMod 1112 1114
Store 1109(uo) 1115
1116: 2 FunctionCall 6(foo23()
1117: 2 FunctionCall 8(doubles()
1121: 23(int) Load 1120(gl_PrimitiveID)
Store 1119(id) 1121
Return Return
FunctionEnd FunctionEnd
6(foo23(): 2 Function None 3 6(foo23(): 2 Function None 3

View File

@ -1,12 +1,12 @@
spv.Operations.frag spv.Operations.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 583 // Id's are bound by 591
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11 22 220 296 314 539 580 EntryPoint Fragment 4 "main" 11 22 220 296 314 547 588
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 450 Source GLSL 450
Name 4 "main" Name 4 "main"
@ -26,13 +26,13 @@ spv.Operations.frag
Name 324 "lsb" Name 324 "lsb"
Name 325 "swizzleTemp" Name 325 "swizzleTemp"
Name 326 "ResType" Name 326 "ResType"
Name 359 "b" Name 367 "b"
Name 396 "ub42" Name 404 "ub42"
Name 539 "FragColor" Name 547 "FragColor"
Name 557 "m1" Name 565 "m1"
Name 564 "m2" Name 572 "m2"
Name 580 "uiv4" Name 588 "uiv4"
Name 582 "ub" Name 590 "ub"
Decorate 11(uv4) Location 1 Decorate 11(uv4) Location 1
Decorate 22(ui) Flat Decorate 22(ui) Flat
Decorate 22(ui) Location 3 Decorate 22(ui) Location 3
@ -41,9 +41,9 @@ spv.Operations.frag
Decorate 296(uui) Location 5 Decorate 296(uui) Location 5
Decorate 314(uuv4) Flat Decorate 314(uuv4) Flat
Decorate 314(uuv4) Location 4 Decorate 314(uuv4) Location 4
Decorate 539(FragColor) Location 0 Decorate 547(FragColor) Location 0
Decorate 580(uiv4) Flat Decorate 588(uiv4) Flat
Decorate 580(uiv4) Location 0 Decorate 588(uiv4) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -74,34 +74,34 @@ spv.Operations.frag
320: TypePointer Function 312(ivec4) 320: TypePointer Function 312(ivec4)
322: TypePointer Function 315(ivec3) 322: TypePointer Function 315(ivec3)
326(ResType): TypeStruct 315(ivec3) 315(ivec3) 326(ResType): TypeStruct 315(ivec3) 315(ivec3)
338: 141(int) Constant 1 333: 141(int) Constant 1
342: 141(int) Constant 2 336: 141(int) Constant 2
358: TypePointer Function 186(bool) 366: TypePointer Function 186(bool)
396(ub42): 188(ptr) Variable Private 404(ub42): 188(ptr) Variable Private
452: 18(int) Constant 2 460: 18(int) Constant 2
459: 18(int) Constant 1 467: 18(int) Constant 1
489: TypeVector 6(float) 3 497: TypeVector 6(float) 3
508: 6(float) Constant 1073741824 516: 6(float) Constant 1073741824
515: 6(float) Constant 1065353216 523: 6(float) Constant 1065353216
520: 18(int) Constant 66 528: 18(int) Constant 66
526: 18(int) Constant 17 534: 18(int) Constant 17
538: TypePointer Output 7(fvec4) 546: TypePointer Output 7(fvec4)
539(FragColor): 538(ptr) Variable Output 547(FragColor): 546(ptr) Variable Output
555: TypeMatrix 7(fvec4) 4 563: TypeMatrix 7(fvec4) 4
556: TypePointer Function 555 564: TypePointer Function 563
558: 6(float) Constant 0 566: 6(float) Constant 0
559: 7(fvec4) ConstantComposite 515 558 558 558 567: 7(fvec4) ConstantComposite 523 566 566 566
560: 7(fvec4) ConstantComposite 558 515 558 558 568: 7(fvec4) ConstantComposite 566 523 566 566
561: 7(fvec4) ConstantComposite 558 558 515 558 569: 7(fvec4) ConstantComposite 566 566 523 566
562: 7(fvec4) ConstantComposite 558 558 558 515 570: 7(fvec4) ConstantComposite 566 566 566 523
563: 555 ConstantComposite 559 560 561 562 571: 563 ConstantComposite 567 568 569 570
565: 7(fvec4) ConstantComposite 558 558 558 558 573: 7(fvec4) ConstantComposite 566 566 566 566
566: 555 ConstantComposite 565 565 565 565 574: 563 ConstantComposite 573 573 573 573
578: TypeVector 18(int) 4 586: TypeVector 18(int) 4
579: TypePointer Input 578(ivec4) 587: TypePointer Input 586(ivec4)
580(uiv4): 579(ptr) Variable Input 588(uiv4): 587(ptr) Variable Input
581: TypePointer Private 186(bool) 589: TypePointer Private 186(bool)
582(ub): 581(ptr) Variable Private 590(ub): 589(ptr) Variable Private
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(v): 8(ptr) Variable Function 9(v): 8(ptr) Variable Function
@ -113,11 +113,11 @@ spv.Operations.frag
323(swizzleTemp): 322(ptr) Variable Function 323(swizzleTemp): 322(ptr) Variable Function
324(lsb): 320(ptr) Variable Function 324(lsb): 320(ptr) Variable Function
325(swizzleTemp): 322(ptr) Variable Function 325(swizzleTemp): 322(ptr) Variable Function
359(b): 358(ptr) Variable Function 367(b): 366(ptr) Variable Function
541: 8(ptr) Variable Function 549: 8(ptr) Variable Function
557(m1): 556(ptr) Variable Function 565(m1): 564(ptr) Variable Function
564(m2): 556(ptr) Variable Function 572(m2): 564(ptr) Variable Function
568: 556(ptr) Variable Function 576: 564(ptr) Variable Function
12: 7(fvec4) Load 11(uv4) 12: 7(fvec4) Load 11(uv4)
13: 7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12 13: 7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12
Store 9(v) 13 Store 9(v) 13
@ -469,306 +469,318 @@ spv.Operations.frag
329: 315(ivec3) CompositeExtract 327 1 329: 315(ivec3) CompositeExtract 327 1
Store 323(swizzleTemp) 329 Store 323(swizzleTemp) 329
330: 315(ivec3) Load 323(swizzleTemp) 330: 315(ivec3) Load 323(swizzleTemp)
331: 312(ivec4) Load 321(msb) 331: 292(ptr) AccessChain 321(msb) 142
332: 312(ivec4) VectorShuffle 331 330 4 5 6 3 332: 141(int) CompositeExtract 330 0
Store 321(msb) 332 Store 331 332
333: 315(ivec3) Load 325(swizzleTemp) 334: 292(ptr) AccessChain 321(msb) 333
334: 312(ivec4) Load 324(lsb) 335: 141(int) CompositeExtract 330 1
335: 312(ivec4) VectorShuffle 334 333 4 5 6 3 Store 334 335
Store 324(lsb) 335 337: 292(ptr) AccessChain 321(msb) 336
336: 292(ptr) AccessChain 321(msb) 142 338: 141(int) CompositeExtract 330 2
337: 141(int) Load 336 Store 337 338
339: 292(ptr) AccessChain 321(msb) 338 339: 315(ivec3) Load 325(swizzleTemp)
340: 141(int) Load 339 340: 292(ptr) AccessChain 324(lsb) 142
341: 141(int) IAdd 337 340 341: 141(int) CompositeExtract 339 0
343: 292(ptr) AccessChain 321(msb) 342 Store 340 341
344: 141(int) Load 343 342: 292(ptr) AccessChain 324(lsb) 333
345: 141(int) IAdd 341 344 343: 141(int) CompositeExtract 339 1
346: 141(int) Load 293(u) Store 342 343
347: 141(int) IAdd 346 345 344: 292(ptr) AccessChain 324(lsb) 336
Store 293(u) 347 345: 141(int) CompositeExtract 339 2
348: 292(ptr) AccessChain 324(lsb) 142 Store 344 345
346: 292(ptr) AccessChain 321(msb) 142
347: 141(int) Load 346
348: 292(ptr) AccessChain 321(msb) 333
349: 141(int) Load 348 349: 141(int) Load 348
350: 292(ptr) AccessChain 324(lsb) 338 350: 141(int) IAdd 347 349
351: 141(int) Load 350 351: 292(ptr) AccessChain 321(msb) 336
352: 141(int) IAdd 349 351 352: 141(int) Load 351
353: 292(ptr) AccessChain 324(lsb) 342 353: 141(int) IAdd 350 352
354: 141(int) Load 353 354: 141(int) Load 293(u)
355: 141(int) IAdd 352 354 355: 141(int) IAdd 354 353
356: 141(int) Load 293(u) Store 293(u) 355
357: 141(int) IAdd 356 355 356: 292(ptr) AccessChain 324(lsb) 142
Store 293(u) 357 357: 141(int) Load 356
360: 6(float) Load 220(uf) 358: 292(ptr) AccessChain 324(lsb) 333
361: 186(bool) IsNan 360 359: 141(int) Load 358
Store 359(b) 361 360: 141(int) IAdd 357 359
362: 6(float) Load 196(f) 361: 292(ptr) AccessChain 324(lsb) 336
363: 186(bool) IsInf 362 362: 141(int) Load 361
Store 359(b) 363 363: 141(int) IAdd 360 362
364: 7(fvec4) Load 9(v) 364: 141(int) Load 293(u)
365: 7(fvec4) Load 11(uv4) 365: 141(int) IAdd 364 363
366: 187(bvec4) FOrdLessThan 364 365 Store 293(u) 365
367: 186(bool) Any 366 368: 6(float) Load 220(uf)
Store 359(b) 367 369: 186(bool) IsNan 368
368: 186(bool) Load 359(b) Store 367(b) 369
SelectionMerge 370 None 370: 6(float) Load 196(f)
BranchConditional 368 369 370 371: 186(bool) IsInf 370
369: Label Store 367(b) 371
371: 7(fvec4) Load 9(v) 372: 7(fvec4) Load 9(v)
372: 7(fvec4) Load 11(uv4) 373: 7(fvec4) Load 11(uv4)
373: 187(bvec4) FOrdLessThanEqual 371 372 374: 187(bvec4) FOrdLessThan 372 373
374: 186(bool) Any 373 375: 186(bool) Any 374
Branch 370 Store 367(b) 375
370: Label 376: 186(bool) Load 367(b)
375: 186(bool) Phi 368 5 374 369
Store 359(b) 375
376: 186(bool) Load 359(b)
SelectionMerge 378 None SelectionMerge 378 None
BranchConditional 376 377 378 BranchConditional 376 377 378
377: Label 377: Label
379: 7(fvec4) Load 9(v) 379: 7(fvec4) Load 9(v)
380: 7(fvec4) Load 11(uv4) 380: 7(fvec4) Load 11(uv4)
381: 187(bvec4) FOrdGreaterThan 379 380 381: 187(bvec4) FOrdLessThanEqual 379 380
382: 186(bool) Any 381 382: 186(bool) Any 381
Branch 378 Branch 378
378: Label 378: Label
383: 186(bool) Phi 376 370 382 377 383: 186(bool) Phi 376 5 382 377
Store 359(b) 383 Store 367(b) 383
384: 186(bool) Load 359(b) 384: 186(bool) Load 367(b)
SelectionMerge 386 None SelectionMerge 386 None
BranchConditional 384 385 386 BranchConditional 384 385 386
385: Label 385: Label
387: 7(fvec4) Load 9(v) 387: 7(fvec4) Load 9(v)
388: 7(fvec4) Load 11(uv4) 388: 7(fvec4) Load 11(uv4)
389: 187(bvec4) FOrdGreaterThanEqual 387 388 389: 187(bvec4) FOrdGreaterThan 387 388
390: 186(bool) Any 389 390: 186(bool) Any 389
Branch 386 Branch 386
386: Label 386: Label
391: 186(bool) Phi 384 378 390 385 391: 186(bool) Phi 384 378 390 385
Store 359(b) 391 Store 367(b) 391
392: 186(bool) Load 359(b) 392: 186(bool) Load 367(b)
SelectionMerge 394 None SelectionMerge 394 None
BranchConditional 392 393 394 BranchConditional 392 393 394
393: Label 393: Label
395: 187(bvec4) Load 189(ub41) 395: 7(fvec4) Load 9(v)
397: 187(bvec4) Load 396(ub42) 396: 7(fvec4) Load 11(uv4)
398: 187(bvec4) LogicalEqual 395 397 397: 187(bvec4) FOrdGreaterThanEqual 395 396
399: 186(bool) Any 398 398: 186(bool) Any 397
Branch 394 Branch 394
394: Label 394: Label
400: 186(bool) Phi 392 386 399 393 399: 186(bool) Phi 392 386 398 393
Store 359(b) 400 Store 367(b) 399
401: 186(bool) Load 359(b) 400: 186(bool) Load 367(b)
SelectionMerge 403 None SelectionMerge 402 None
BranchConditional 401 402 403 BranchConditional 400 401 402
402: Label 401: Label
404: 187(bvec4) Load 189(ub41) 403: 187(bvec4) Load 189(ub41)
405: 187(bvec4) Load 396(ub42) 405: 187(bvec4) Load 404(ub42)
406: 187(bvec4) LogicalNotEqual 404 405 406: 187(bvec4) LogicalEqual 403 405
407: 186(bool) Any 406 407: 186(bool) Any 406
Branch 403 Branch 402
403: Label 402: Label
408: 186(bool) Phi 401 394 407 402 408: 186(bool) Phi 400 394 407 401
Store 359(b) 408 Store 367(b) 408
409: 186(bool) Load 359(b) 409: 186(bool) Load 367(b)
410: 187(bvec4) Load 189(ub41) SelectionMerge 411 None
411: 186(bool) Any 410 BranchConditional 409 410 411
412: 186(bool) LogicalAnd 409 411 410: Label
Store 359(b) 412 412: 187(bvec4) Load 189(ub41)
413: 186(bool) Load 359(b) 413: 187(bvec4) Load 404(ub42)
414: 187(bvec4) Load 189(ub41) 414: 187(bvec4) LogicalNotEqual 412 413
415: 186(bool) All 414 415: 186(bool) Any 414
416: 186(bool) LogicalAnd 413 415 Branch 411
Store 359(b) 416 411: Label
417: 186(bool) Load 359(b) 416: 186(bool) Phi 409 402 415 410
SelectionMerge 419 None Store 367(b) 416
BranchConditional 417 418 419 417: 186(bool) Load 367(b)
418: Label 418: 187(bvec4) Load 189(ub41)
420: 187(bvec4) Load 189(ub41) 419: 186(bool) Any 418
421: 187(bvec4) LogicalNot 420 420: 186(bool) LogicalAnd 417 419
422: 186(bool) Any 421 Store 367(b) 420
Branch 419 421: 186(bool) Load 367(b)
419: Label 422: 187(bvec4) Load 189(ub41)
423: 186(bool) Phi 417 403 422 418 423: 186(bool) All 422
Store 359(b) 423 424: 186(bool) LogicalAnd 421 423
424: 18(int) Load 20(i) Store 367(b) 424
425: 18(int) Load 22(ui) 425: 186(bool) Load 367(b)
426: 18(int) IAdd 424 425 SelectionMerge 427 None
427: 18(int) Load 20(i) BranchConditional 425 426 427
428: 18(int) IMul 426 427 426: Label
429: 18(int) Load 22(ui) 428: 187(bvec4) Load 189(ub41)
430: 18(int) ISub 428 429 429: 187(bvec4) LogicalNot 428
431: 18(int) Load 20(i) 430: 186(bool) Any 429
432: 18(int) SDiv 430 431 Branch 427
Store 20(i) 432 427: Label
433: 18(int) Load 20(i) 431: 186(bool) Phi 425 411 430 426
434: 18(int) Load 22(ui) Store 367(b) 431
435: 18(int) SMod 433 434 432: 18(int) Load 20(i)
Store 20(i) 435 433: 18(int) Load 22(ui)
436: 18(int) Load 20(i) 434: 18(int) IAdd 432 433
435: 18(int) Load 20(i)
436: 18(int) IMul 434 435
437: 18(int) Load 22(ui) 437: 18(int) Load 22(ui)
438: 186(bool) IEqual 436 437 438: 18(int) ISub 436 437
439: 186(bool) LogicalNot 438 439: 18(int) Load 20(i)
SelectionMerge 441 None 440: 18(int) SDiv 438 439
BranchConditional 439 440 441 Store 20(i) 440
440: Label 441: 18(int) Load 20(i)
442: 18(int) Load 20(i) 442: 18(int) Load 22(ui)
443: 18(int) Load 22(ui) 443: 18(int) SMod 441 442
444: 186(bool) INotEqual 442 443 Store 20(i) 443
SelectionMerge 446 None 444: 18(int) Load 20(i)
BranchConditional 444 445 446 445: 18(int) Load 22(ui)
445: Label 446: 186(bool) IEqual 444 445
447: 18(int) Load 20(i) 447: 186(bool) LogicalNot 446
448: 18(int) Load 22(ui) SelectionMerge 449 None
449: 186(bool) IEqual 447 448 BranchConditional 447 448 449
Branch 446 448: Label
446: Label 450: 18(int) Load 20(i)
450: 186(bool) Phi 444 440 449 445 451: 18(int) Load 22(ui)
451: 18(int) Load 20(i) 452: 186(bool) INotEqual 450 451
453: 186(bool) INotEqual 451 452 SelectionMerge 454 None
454: 186(bool) LogicalNotEqual 450 453 BranchConditional 452 453 454
Branch 441 453: Label
441: Label 455: 18(int) Load 20(i)
455: 186(bool) Phi 438 419 454 446 456: 18(int) Load 22(ui)
SelectionMerge 457 None 457: 186(bool) IEqual 455 456
BranchConditional 455 456 457 Branch 454
456: Label 454: Label
458: 18(int) Load 20(i) 458: 186(bool) Phi 452 448 457 453
460: 18(int) IAdd 458 459 459: 18(int) Load 20(i)
Store 20(i) 460 461: 186(bool) INotEqual 459 460
Branch 457 462: 186(bool) LogicalNotEqual 458 461
457: Label Branch 449
461: 6(float) Load 220(uf) 449: Label
462: 6(float) Load 220(uf) 463: 186(bool) Phi 446 427 462 454
463: 6(float) FAdd 461 462 SelectionMerge 465 None
464: 6(float) Load 220(uf) BranchConditional 463 464 465
465: 6(float) FMul 463 464 464: Label
466: 6(float) Load 220(uf) 466: 18(int) Load 20(i)
467: 6(float) FSub 465 466 468: 18(int) IAdd 466 467
468: 6(float) Load 220(uf) Store 20(i) 468
469: 6(float) FDiv 467 468 Branch 465
Store 196(f) 469 465: Label
470: 7(fvec4) Load 9(v) 469: 6(float) Load 220(uf)
471: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 470 470: 6(float) Load 220(uf)
472: 6(float) Load 196(f) 471: 6(float) FAdd 469 470
473: 6(float) FAdd 472 471 472: 6(float) Load 220(uf)
Store 196(f) 473 473: 6(float) FMul 471 472
474: 7(fvec4) Load 9(v) 474: 6(float) Load 220(uf)
475: 7(fvec4) Load 9(v) 475: 6(float) FSub 473 474
476: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 474 475 476: 6(float) Load 220(uf)
477: 6(float) Load 196(f) 477: 6(float) FDiv 475 476
478: 6(float) FAdd 477 476 Store 196(f) 477
Store 196(f) 478 478: 7(fvec4) Load 9(v)
479: 7(fvec4) Load 9(v) 479: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 478
480: 7(fvec4) Load 9(v) 480: 6(float) Load 196(f)
481: 6(float) Dot 479 480 481: 6(float) FAdd 480 479
482: 6(float) Load 196(f) Store 196(f) 481
483: 6(float) FAdd 482 481 482: 7(fvec4) Load 9(v)
Store 196(f) 483 483: 7(fvec4) Load 9(v)
484: 6(float) Load 196(f) 484: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 482 483
485: 6(float) Load 220(uf) 485: 6(float) Load 196(f)
486: 6(float) FMul 484 485 486: 6(float) FAdd 485 484
487: 6(float) Load 196(f) Store 196(f) 486
488: 6(float) FAdd 487 486 487: 7(fvec4) Load 9(v)
Store 196(f) 488 488: 7(fvec4) Load 9(v)
490: 7(fvec4) Load 9(v) 489: 6(float) Dot 487 488
491: 489(fvec3) VectorShuffle 490 490 0 1 2 490: 6(float) Load 196(f)
492: 7(fvec4) Load 9(v) 491: 6(float) FAdd 490 489
493: 489(fvec3) VectorShuffle 492 492 0 1 2 Store 196(f) 491
494: 489(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 491 493 492: 6(float) Load 196(f)
495: 6(float) CompositeExtract 494 0 493: 6(float) Load 220(uf)
496: 6(float) Load 196(f) 494: 6(float) FMul 492 493
497: 6(float) FAdd 496 495 495: 6(float) Load 196(f)
Store 196(f) 497 496: 6(float) FAdd 495 494
498: 6(float) Load 196(f) Store 196(f) 496
499: 6(float) Load 220(uf) 498: 7(fvec4) Load 9(v)
500: 186(bool) FOrdEqual 498 499 499: 497(fvec3) VectorShuffle 498 498 0 1 2
501: 186(bool) LogicalNot 500 500: 7(fvec4) Load 9(v)
SelectionMerge 503 None 501: 497(fvec3) VectorShuffle 500 500 0 1 2
BranchConditional 501 502 503 502: 497(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 499 501
502: Label 503: 6(float) CompositeExtract 502 0
504: 6(float) Load 196(f) 504: 6(float) Load 196(f)
505: 6(float) Load 220(uf) 505: 6(float) FAdd 504 503
506: 186(bool) FUnordNotEqual 504 505 Store 196(f) 505
507: 6(float) Load 196(f) 506: 6(float) Load 196(f)
509: 186(bool) FUnordNotEqual 507 508 507: 6(float) Load 220(uf)
510: 186(bool) LogicalAnd 506 509 508: 186(bool) FOrdEqual 506 507
Branch 503 509: 186(bool) LogicalNot 508
503: Label SelectionMerge 511 None
511: 186(bool) Phi 500 457 510 502 BranchConditional 509 510 511
SelectionMerge 513 None 510: Label
BranchConditional 511 512 513 512: 6(float) Load 196(f)
512: Label 513: 6(float) Load 220(uf)
514: 6(float) Load 196(f) 514: 186(bool) FUnordNotEqual 512 513
516: 6(float) FAdd 514 515 515: 6(float) Load 196(f)
Store 196(f) 516 517: 186(bool) FUnordNotEqual 515 516
Branch 513 518: 186(bool) LogicalAnd 514 517
513: Label Branch 511
517: 18(int) Load 22(ui) 511: Label
518: 18(int) Load 20(i) 519: 186(bool) Phi 508 465 518 510
519: 18(int) BitwiseAnd 518 517 SelectionMerge 521 None
Store 20(i) 519 BranchConditional 519 520 521
521: 18(int) Load 20(i) 520: Label
522: 18(int) BitwiseOr 521 520 522: 6(float) Load 196(f)
Store 20(i) 522 524: 6(float) FAdd 522 523
523: 18(int) Load 22(ui) Store 196(f) 524
524: 18(int) Load 20(i) Branch 521
525: 18(int) BitwiseXor 524 523 521: Label
Store 20(i) 525 525: 18(int) Load 22(ui)
527: 18(int) Load 20(i) 526: 18(int) Load 20(i)
528: 18(int) SMod 527 526 527: 18(int) BitwiseAnd 526 525
Store 20(i) 528 Store 20(i) 527
529: 18(int) Load 20(i) 529: 18(int) Load 20(i)
530: 18(int) ShiftRightArithmetic 529 452 530: 18(int) BitwiseOr 529 528
Store 20(i) 530 Store 20(i) 530
531: 18(int) Load 22(ui) 531: 18(int) Load 22(ui)
532: 18(int) Load 20(i) 532: 18(int) Load 20(i)
533: 18(int) ShiftLeftLogical 532 531 533: 18(int) BitwiseXor 532 531
Store 20(i) 533 Store 20(i) 533
534: 18(int) Load 20(i) 535: 18(int) Load 20(i)
535: 18(int) Not 534 536: 18(int) SMod 535 534
Store 20(i) 535 Store 20(i) 536
536: 186(bool) Load 359(b) 537: 18(int) Load 20(i)
537: 186(bool) LogicalNot 536 538: 18(int) ShiftRightArithmetic 537 460
Store 359(b) 537 Store 20(i) 538
540: 186(bool) Load 359(b) 539: 18(int) Load 22(ui)
SelectionMerge 543 None 540: 18(int) Load 20(i)
BranchConditional 540 542 552 541: 18(int) ShiftLeftLogical 540 539
542: Label Store 20(i) 541
544: 18(int) Load 20(i) 542: 18(int) Load 20(i)
545: 6(float) ConvertSToF 544 543: 18(int) Not 542
546: 7(fvec4) CompositeConstruct 545 545 545 545 Store 20(i) 543
547: 6(float) Load 196(f) 544: 186(bool) Load 367(b)
548: 7(fvec4) CompositeConstruct 547 547 547 547 545: 186(bool) LogicalNot 544
549: 7(fvec4) FAdd 546 548 Store 367(b) 545
550: 7(fvec4) Load 9(v) 548: 186(bool) Load 367(b)
551: 7(fvec4) FAdd 549 550 SelectionMerge 551 None
Store 541 551 BranchConditional 548 550 560
Branch 543 550: Label
552: Label 552: 18(int) Load 20(i)
553: 7(fvec4) Load 9(v) 553: 6(float) ConvertSToF 552
Store 541 553 554: 7(fvec4) CompositeConstruct 553 553 553 553
Branch 543 555: 6(float) Load 196(f)
543: Label 556: 7(fvec4) CompositeConstruct 555 555 555 555
554: 7(fvec4) Load 541 557: 7(fvec4) FAdd 554 556
Store 539(FragColor) 554 558: 7(fvec4) Load 9(v)
Store 557(m1) 563 559: 7(fvec4) FAdd 557 558
Store 564(m2) 566 Store 549 559
567: 186(bool) Load 359(b) Branch 551
SelectionMerge 570 None 560: Label
BranchConditional 567 569 572 561: 7(fvec4) Load 9(v)
569: Label Store 549 561
571: 555 Load 557(m1) Branch 551
Store 568 571 551: Label
Branch 570 562: 7(fvec4) Load 549
572: Label Store 547(FragColor) 562
573: 555 Load 564(m2) Store 565(m1) 571
Store 568 573 Store 572(m2) 574
Branch 570 575: 186(bool) Load 367(b)
570: Label SelectionMerge 578 None
574: 8(ptr) AccessChain 568 459 BranchConditional 575 577 580
575: 7(fvec4) Load 574 577: Label
576: 7(fvec4) Load 539(FragColor) 579: 563 Load 565(m1)
577: 7(fvec4) FAdd 576 575 Store 576 579
Store 539(FragColor) 577 Branch 578
580: Label
581: 563 Load 572(m2)
Store 576 581
Branch 578
578: Label
582: 8(ptr) AccessChain 576 467
583: 7(fvec4) Load 582
584: 7(fvec4) Load 547(FragColor)
585: 7(fvec4) FAdd 584 583
Store 547(FragColor) 585
Return Return
FunctionEnd FunctionEnd

View File

@ -1,12 +1,12 @@
spv.accessChain.frag spv.accessChain.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 222 // Id's are bound by 228
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 69 170 EntryPoint Fragment 4 "main" 69 176
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 420 Source GLSL 420
Name 4 "main" Name 4 "main"
@ -54,24 +54,24 @@ spv.accessChain.frag
Name 64 "i" Name 64 "i"
Name 65 "comp" Name 65 "comp"
Name 69 "OutColor" Name 69 "OutColor"
Name 165 "s" Name 171 "s"
Name 170 "u" Name 176 "u"
Name 171 "param" Name 177 "param"
Name 175 "param" Name 181 "param"
Name 179 "param" Name 185 "param"
Name 183 "param" Name 189 "param"
Name 187 "param" Name 193 "param"
Name 191 "param" Name 197 "param"
Name 195 "param" Name 201 "param"
Name 199 "param" Name 205 "param"
Name 203 "param" Name 209 "param"
Name 207 "param" Name 213 "param"
Name 211 "param" Name 217 "param"
Name 215 "param" Name 221 "param"
Name 219 "param" Name 225 "param"
Decorate 69(OutColor) Location 0 Decorate 69(OutColor) Location 0
Decorate 170(u) Flat Decorate 176(u) Flat
Decorate 170(u) Location 0 Decorate 176(u) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -87,89 +87,89 @@ spv.accessChain.frag
71: TypeInt 32 0 71: TypeInt 32 0
72: 71(int) Constant 0 72: 71(int) Constant 0
99: TypeVector 6(float) 2 99: TypeVector 6(float) 2
113: 71(int) Constant 2 111: TypePointer Output 6(float)
140: TypePointer Output 6(float) 114: 71(int) Constant 1
147: 71(int) Constant 1 117: 71(int) Constant 2
148: TypeVector 71(int) 2 154: TypeVector 71(int) 2
149: 148(ivec2) ConstantComposite 113 147 155: 154(ivec2) ConstantComposite 117 114
158: TypeVector 71(int) 3 164: TypeVector 71(int) 3
159: 158(ivec3) ConstantComposite 113 147 72 165: 164(ivec3) ConstantComposite 117 114 72
162: 6(float) Constant 0 168: 6(float) Constant 0
163: 7(fvec3) ConstantComposite 162 162 162 169: 7(fvec3) ConstantComposite 168 168 168
164: TypePointer Function 8(S) 170: TypePointer Function 8(S)
169: TypePointer Input 13(int) 175: TypePointer Input 13(int)
170(u): 169(ptr) Variable Input 176(u): 175(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
165(s): 164(ptr) Variable Function 171(s): 170(ptr) Variable Function
171(param): 14(ptr) Variable Function 177(param): 14(ptr) Variable Function
175(param): 14(ptr) Variable Function 181(param): 14(ptr) Variable Function
179(param): 14(ptr) Variable Function 185(param): 14(ptr) Variable Function
183(param): 14(ptr) Variable Function 189(param): 14(ptr) Variable Function
187(param): 14(ptr) Variable Function 193(param): 14(ptr) Variable Function
191(param): 14(ptr) Variable Function 197(param): 14(ptr) Variable Function
195(param): 14(ptr) Variable Function 201(param): 14(ptr) Variable Function
199(param): 14(ptr) Variable Function 205(param): 14(ptr) Variable Function
203(param): 14(ptr) Variable Function 209(param): 14(ptr) Variable Function
207(param): 14(ptr) Variable Function 213(param): 14(ptr) Variable Function
211(param): 14(ptr) Variable Function 217(param): 14(ptr) Variable Function
215(param): 14(ptr) Variable Function 221(param): 14(ptr) Variable Function
219(param): 14(ptr) Variable Function 225(param): 14(ptr) Variable Function
Store 69(OutColor) 163 Store 69(OutColor) 169
166: 8(S) Load 165(s) 172: 8(S) Load 171(s)
167: 2 FunctionCall 11(GetColor1(struct-S-vf31;) 166 173: 2 FunctionCall 11(GetColor1(struct-S-vf31;) 172
168: 8(S) Load 165(s) 174: 8(S) Load 171(s)
172: 13(int) Load 170(u) 178: 13(int) Load 176(u)
Store 171(param) 172 Store 177(param) 178
173: 2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 168 171(param) 179: 2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 174 177(param)
174: 8(S) Load 165(s) 180: 8(S) Load 171(s)
176: 13(int) Load 170(u) 182: 13(int) Load 176(u)
Store 175(param) 176 Store 181(param) 182
177: 2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 174 175(param) 183: 2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 180 181(param)
178: 8(S) Load 165(s) 184: 8(S) Load 171(s)
180: 13(int) Load 170(u) 186: 13(int) Load 176(u)
Store 179(param) 180 Store 185(param) 186
181: 2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 178 179(param) 187: 2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 184 185(param)
182: 8(S) Load 165(s) 188: 8(S) Load 171(s)
184: 13(int) Load 170(u) 190: 13(int) Load 176(u)
Store 183(param) 184 Store 189(param) 190
185: 2 FunctionCall 30(GetColor5(struct-S-vf31;i1;) 182 183(param) 191: 2 FunctionCall 30(GetColor5(struct-S-vf31;i1;) 188 189(param)
186: 8(S) Load 165(s) 192: 8(S) Load 171(s)
188: 13(int) Load 170(u) 194: 13(int) Load 176(u)
Store 187(param) 188 Store 193(param) 194
189: 2 FunctionCall 34(GetColor6(struct-S-vf31;i1;) 186 187(param) 195: 2 FunctionCall 34(GetColor6(struct-S-vf31;i1;) 192 193(param)
190: 8(S) Load 165(s) 196: 8(S) Load 171(s)
192: 13(int) Load 170(u) 198: 13(int) Load 176(u)
Store 191(param) 192 Store 197(param) 198
193: 2 FunctionCall 38(GetColor7(struct-S-vf31;i1;) 190 191(param) 199: 2 FunctionCall 38(GetColor7(struct-S-vf31;i1;) 196 197(param)
194: 8(S) Load 165(s) 200: 8(S) Load 171(s)
196: 13(int) Load 170(u) 202: 13(int) Load 176(u)
Store 195(param) 196 Store 201(param) 202
197: 2 FunctionCall 42(GetColor8(struct-S-vf31;i1;) 194 195(param) 203: 2 FunctionCall 42(GetColor8(struct-S-vf31;i1;) 200 201(param)
198: 8(S) Load 165(s) 204: 8(S) Load 171(s)
200: 13(int) Load 170(u) 206: 13(int) Load 176(u)
Store 199(param) 200 Store 205(param) 206
201: 2 FunctionCall 46(GetColor9(struct-S-vf31;i1;) 198 199(param) 207: 2 FunctionCall 46(GetColor9(struct-S-vf31;i1;) 204 205(param)
202: 8(S) Load 165(s) 208: 8(S) Load 171(s)
204: 13(int) Load 170(u) 210: 13(int) Load 176(u)
Store 203(param) 204 Store 209(param) 210
205: 2 FunctionCall 50(GetColor10(struct-S-vf31;i1;) 202 203(param) 211: 2 FunctionCall 50(GetColor10(struct-S-vf31;i1;) 208 209(param)
206: 8(S) Load 165(s) 212: 8(S) Load 171(s)
208: 13(int) Load 170(u) 214: 13(int) Load 176(u)
Store 207(param) 208 Store 213(param) 214
209: 2 FunctionCall 54(GetColor11(struct-S-vf31;i1;) 206 207(param) 215: 2 FunctionCall 54(GetColor11(struct-S-vf31;i1;) 212 213(param)
210: 8(S) Load 165(s) 216: 8(S) Load 171(s)
212: 13(int) Load 170(u) 218: 13(int) Load 176(u)
Store 211(param) 212 Store 217(param) 218
213: 2 FunctionCall 58(GetColor12(struct-S-vf31;i1;) 210 211(param) 219: 2 FunctionCall 58(GetColor12(struct-S-vf31;i1;) 216 217(param)
214: 8(S) Load 165(s) 220: 8(S) Load 171(s)
216: 13(int) Load 170(u) 222: 13(int) Load 176(u)
Store 215(param) 216 Store 221(param) 222
217: 2 FunctionCall 62(GetColor13(struct-S-vf31;i1;) 214 215(param) 223: 2 FunctionCall 62(GetColor13(struct-S-vf31;i1;) 220 221(param)
218: 8(S) Load 165(s) 224: 8(S) Load 171(s)
220: 13(int) Load 170(u) 226: 13(int) Load 176(u)
Store 219(param) 220 Store 225(param) 226
221: 2 FunctionCall 66(GetColor14(struct-S-vf31;i1;) 218 219(param) 227: 2 FunctionCall 66(GetColor14(struct-S-vf31;i1;) 224 225(param)
Return Return
FunctionEnd FunctionEnd
11(GetColor1(struct-S-vf31;): 2 Function None 9 11(GetColor1(struct-S-vf31;): 2 Function None 9
@ -254,99 +254,108 @@ spv.accessChain.frag
108: 7(fvec3) Load 69(OutColor) 108: 7(fvec3) Load 69(OutColor)
109: 99(fvec2) VectorShuffle 108 108 0 1 109: 99(fvec2) VectorShuffle 108 108 0 1
110: 99(fvec2) FAdd 109 107 110: 99(fvec2) FAdd 109 107
111: 7(fvec3) Load 69(OutColor) 112: 111(ptr) AccessChain 69(OutColor) 72
112: 7(fvec3) VectorShuffle 111 110 3 4 2 113: 6(float) CompositeExtract 110 0
Store 69(OutColor) 112 Store 112 113
115: 111(ptr) AccessChain 69(OutColor) 114
116: 6(float) CompositeExtract 110 1
Store 115 116
Return Return
FunctionEnd FunctionEnd
42(GetColor8(struct-S-vf31;i1;): 2 Function None 15 42(GetColor8(struct-S-vf31;i1;): 2 Function None 15
40(i): 8(S) FunctionParameter 40(i): 8(S) FunctionParameter
41(comp): 14(ptr) FunctionParameter 41(comp): 14(ptr) FunctionParameter
43: Label 43: Label
114: 6(float) CompositeExtract 40(i) 0 2 118: 6(float) CompositeExtract 40(i) 0 2
115: 7(fvec3) Load 69(OutColor) 119: 7(fvec3) Load 69(OutColor)
116: 7(fvec3) CompositeConstruct 114 114 114 120: 7(fvec3) CompositeConstruct 118 118 118
117: 7(fvec3) FAdd 115 116 121: 7(fvec3) FAdd 119 120
Store 69(OutColor) 117 Store 69(OutColor) 121
Return Return
FunctionEnd FunctionEnd
46(GetColor9(struct-S-vf31;i1;): 2 Function None 15 46(GetColor9(struct-S-vf31;i1;): 2 Function None 15
44(i): 8(S) FunctionParameter 44(i): 8(S) FunctionParameter
45(comp): 14(ptr) FunctionParameter 45(comp): 14(ptr) FunctionParameter
47: Label 47: Label
118: 7(fvec3) CompositeExtract 44(i) 0 122: 7(fvec3) CompositeExtract 44(i) 0
119: 7(fvec3) Load 69(OutColor) 123: 7(fvec3) Load 69(OutColor)
120: 7(fvec3) VectorShuffle 119 119 2 0 1 124: 7(fvec3) VectorShuffle 123 123 2 0 1
121: 7(fvec3) FAdd 120 118 125: 7(fvec3) FAdd 124 122
122: 7(fvec3) Load 69(OutColor) 126: 7(fvec3) Load 69(OutColor)
123: 7(fvec3) VectorShuffle 122 121 4 5 3 127: 7(fvec3) VectorShuffle 126 125 4 5 3
Store 69(OutColor) 123 Store 69(OutColor) 127
Return Return
FunctionEnd FunctionEnd
50(GetColor10(struct-S-vf31;i1;): 2 Function None 15 50(GetColor10(struct-S-vf31;i1;): 2 Function None 15
48(i): 8(S) FunctionParameter 48(i): 8(S) FunctionParameter
49(comp): 14(ptr) FunctionParameter 49(comp): 14(ptr) FunctionParameter
51: Label 51: Label
124: 7(fvec3) CompositeExtract 48(i) 0 128: 7(fvec3) CompositeExtract 48(i) 0
125: 99(fvec2) VectorShuffle 124 124 0 1 129: 99(fvec2) VectorShuffle 128 128 0 1
126: 7(fvec3) Load 69(OutColor) 130: 7(fvec3) Load 69(OutColor)
127: 99(fvec2) VectorShuffle 126 126 2 1 131: 99(fvec2) VectorShuffle 130 130 2 1
128: 99(fvec2) FAdd 127 125 132: 99(fvec2) FAdd 131 129
129: 7(fvec3) Load 69(OutColor) 133: 111(ptr) AccessChain 69(OutColor) 117
130: 7(fvec3) VectorShuffle 129 128 0 4 3 134: 6(float) CompositeExtract 132 0
Store 69(OutColor) 130 Store 133 134
135: 111(ptr) AccessChain 69(OutColor) 114
136: 6(float) CompositeExtract 132 1
Store 135 136
Return Return
FunctionEnd FunctionEnd
54(GetColor11(struct-S-vf31;i1;): 2 Function None 15 54(GetColor11(struct-S-vf31;i1;): 2 Function None 15
52(i): 8(S) FunctionParameter 52(i): 8(S) FunctionParameter
53(comp): 14(ptr) FunctionParameter 53(comp): 14(ptr) FunctionParameter
55: Label 55: Label
131: 7(fvec3) CompositeExtract 52(i) 0 137: 7(fvec3) CompositeExtract 52(i) 0
132: 99(fvec2) VectorShuffle 131 131 0 1 138: 99(fvec2) VectorShuffle 137 137 0 1
133: 7(fvec3) Load 69(OutColor) 139: 7(fvec3) Load 69(OutColor)
134: 99(fvec2) VectorShuffle 133 133 0 2 140: 99(fvec2) VectorShuffle 139 139 0 2
135: 99(fvec2) FAdd 134 132 141: 99(fvec2) FAdd 140 138
136: 7(fvec3) Load 69(OutColor) 142: 111(ptr) AccessChain 69(OutColor) 72
137: 7(fvec3) VectorShuffle 136 135 3 1 4 143: 6(float) CompositeExtract 141 0
Store 69(OutColor) 137 Store 142 143
144: 111(ptr) AccessChain 69(OutColor) 117
145: 6(float) CompositeExtract 141 1
Store 144 145
Return Return
FunctionEnd FunctionEnd
58(GetColor12(struct-S-vf31;i1;): 2 Function None 15 58(GetColor12(struct-S-vf31;i1;): 2 Function None 15
56(i): 8(S) FunctionParameter 56(i): 8(S) FunctionParameter
57(comp): 14(ptr) FunctionParameter 57(comp): 14(ptr) FunctionParameter
59: Label 59: Label
138: 13(int) Load 57(comp) 146: 13(int) Load 57(comp)
139: 6(float) CompositeExtract 56(i) 0 0 147: 6(float) CompositeExtract 56(i) 0 0
141: 140(ptr) AccessChain 69(OutColor) 138 148: 111(ptr) AccessChain 69(OutColor) 146
142: 6(float) Load 141 149: 6(float) Load 148
143: 6(float) FAdd 142 139 150: 6(float) FAdd 149 147
144: 140(ptr) AccessChain 69(OutColor) 138 151: 111(ptr) AccessChain 69(OutColor) 146
Store 144 143 Store 151 150
Return Return
FunctionEnd FunctionEnd
62(GetColor13(struct-S-vf31;i1;): 2 Function None 15 62(GetColor13(struct-S-vf31;i1;): 2 Function None 15
60(i): 8(S) FunctionParameter 60(i): 8(S) FunctionParameter
61(comp): 14(ptr) FunctionParameter 61(comp): 14(ptr) FunctionParameter
63: Label 63: Label
145: 13(int) Load 61(comp) 152: 13(int) Load 61(comp)
146: 6(float) CompositeExtract 60(i) 0 0 153: 6(float) CompositeExtract 60(i) 0 0
150: 71(int) VectorExtractDynamic 149 145 156: 71(int) VectorExtractDynamic 155 152
151: 140(ptr) AccessChain 69(OutColor) 150 157: 111(ptr) AccessChain 69(OutColor) 156
152: 6(float) Load 151 158: 6(float) Load 157
153: 6(float) FAdd 152 146 159: 6(float) FAdd 158 153
154: 71(int) VectorExtractDynamic 149 145 160: 71(int) VectorExtractDynamic 155 152
155: 140(ptr) AccessChain 69(OutColor) 154 161: 111(ptr) AccessChain 69(OutColor) 160
Store 155 153 Store 161 159
Return Return
FunctionEnd FunctionEnd
66(GetColor14(struct-S-vf31;i1;): 2 Function None 15 66(GetColor14(struct-S-vf31;i1;): 2 Function None 15
64(i): 8(S) FunctionParameter 64(i): 8(S) FunctionParameter
65(comp): 14(ptr) FunctionParameter 65(comp): 14(ptr) FunctionParameter
67: Label 67: Label
156: 13(int) Load 65(comp) 162: 13(int) Load 65(comp)
157: 6(float) CompositeExtract 64(i) 0 0 163: 6(float) CompositeExtract 64(i) 0 0
160: 71(int) VectorExtractDynamic 159 156 166: 71(int) VectorExtractDynamic 165 162
161: 140(ptr) AccessChain 69(OutColor) 160 167: 111(ptr) AccessChain 69(OutColor) 166
Store 161 157 Store 167 163
Return Return
FunctionEnd FunctionEnd

View File

@ -1,52 +1,52 @@
spv.bitCast.frag spv.bitCast.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 172 // Id's are bound by 198
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 14 26 37 48 89 98 107 116 122 130 139 148 154 EntryPoint Fragment 4 "main" 14 26 40 56 103 112 123 136 142 150 161 174 180
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 450 Source GLSL 450
Name 4 "main" Name 4 "main"
Name 9 "idata" Name 9 "idata"
Name 14 "f1" Name 14 "f1"
Name 26 "f2" Name 26 "f2"
Name 37 "f3" Name 40 "f3"
Name 48 "f4" Name 56 "f4"
Name 55 "udata" Name 63 "udata"
Name 85 "fdata" Name 99 "fdata"
Name 89 "i1" Name 103 "i1"
Name 98 "i2" Name 112 "i2"
Name 107 "i3" Name 123 "i3"
Name 116 "i4" Name 136 "i4"
Name 122 "u1" Name 142 "u1"
Name 130 "u2" Name 150 "u2"
Name 139 "u3" Name 161 "u3"
Name 148 "u4" Name 174 "u4"
Name 154 "fragColor" Name 180 "fragColor"
Decorate 14(f1) Location 8 Decorate 14(f1) Location 8
Decorate 26(f2) Location 9 Decorate 26(f2) Location 9
Decorate 37(f3) Location 10 Decorate 40(f3) Location 10
Decorate 48(f4) Location 11 Decorate 56(f4) Location 11
Decorate 89(i1) Flat Decorate 103(i1) Flat
Decorate 89(i1) Location 0 Decorate 103(i1) Location 0
Decorate 98(i2) Flat Decorate 112(i2) Flat
Decorate 98(i2) Location 1 Decorate 112(i2) Location 1
Decorate 107(i3) Flat Decorate 123(i3) Flat
Decorate 107(i3) Location 2 Decorate 123(i3) Location 2
Decorate 116(i4) Flat Decorate 136(i4) Flat
Decorate 116(i4) Location 3 Decorate 136(i4) Location 3
Decorate 122(u1) Flat Decorate 142(u1) Flat
Decorate 122(u1) Location 4 Decorate 142(u1) Location 4
Decorate 130(u2) Flat Decorate 150(u2) Flat
Decorate 130(u2) Location 5 Decorate 150(u2) Location 5
Decorate 139(u3) Flat Decorate 161(u3) Flat
Decorate 139(u3) Location 6 Decorate 161(u3) Location 6
Decorate 148(u4) Flat Decorate 174(u4) Flat
Decorate 148(u4) Location 7 Decorate 174(u4) Location 7
Decorate 154(fragColor) Location 0 Decorate 180(fragColor) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 1 6: TypeInt 32 1
@ -64,51 +64,53 @@ spv.bitCast.frag
25: TypePointer Input 24(fvec2) 25: TypePointer Input 24(fvec2)
26(f2): 25(ptr) Variable Input 26(f2): 25(ptr) Variable Input
28: TypeVector 6(int) 2 28: TypeVector 6(int) 2
35: TypeVector 12(float) 3 35: 17(int) Constant 1
36: TypePointer Input 35(fvec3) 38: TypeVector 12(float) 3
37(f3): 36(ptr) Variable Input 39: TypePointer Input 38(fvec3)
39: TypeVector 6(int) 3 40(f3): 39(ptr) Variable Input
46: TypeVector 12(float) 4 42: TypeVector 6(int) 3
47: TypePointer Input 46(fvec4) 51: 17(int) Constant 2
48(f4): 47(ptr) Variable Input 54: TypeVector 12(float) 4
53: TypeVector 17(int) 4 55: TypePointer Input 54(fvec4)
54: TypePointer Function 53(ivec4) 56(f4): 55(ptr) Variable Input
56: 53(ivec4) ConstantComposite 18 18 18 18 61: TypeVector 17(int) 4
59: TypePointer Function 17(int) 62: TypePointer Function 61(ivec4)
65: TypeVector 17(int) 2 64: 61(ivec4) ConstantComposite 18 18 18 18
73: TypeVector 17(int) 3 67: TypePointer Function 17(int)
84: TypePointer Function 46(fvec4) 73: TypeVector 17(int) 2
86: 12(float) Constant 0 83: TypeVector 17(int) 3
87: 46(fvec4) ConstantComposite 86 86 86 86 98: TypePointer Function 54(fvec4)
88: TypePointer Input 6(int) 100: 12(float) Constant 0
89(i1): 88(ptr) Variable Input 101: 54(fvec4) ConstantComposite 100 100 100 100
92: TypePointer Function 12(float) 102: TypePointer Input 6(int)
97: TypePointer Input 28(ivec2) 103(i1): 102(ptr) Variable Input
98(i2): 97(ptr) Variable Input 106: TypePointer Function 12(float)
106: TypePointer Input 39(ivec3) 111: TypePointer Input 28(ivec2)
107(i3): 106(ptr) Variable Input 112(i2): 111(ptr) Variable Input
115: TypePointer Input 7(ivec4) 122: TypePointer Input 42(ivec3)
116(i4): 115(ptr) Variable Input 123(i3): 122(ptr) Variable Input
121: TypePointer Input 17(int) 135: TypePointer Input 7(ivec4)
122(u1): 121(ptr) Variable Input 136(i4): 135(ptr) Variable Input
129: TypePointer Input 65(ivec2) 141: TypePointer Input 17(int)
130(u2): 129(ptr) Variable Input 142(u1): 141(ptr) Variable Input
138: TypePointer Input 73(ivec3) 149: TypePointer Input 73(ivec2)
139(u3): 138(ptr) Variable Input 150(u2): 149(ptr) Variable Input
147: TypePointer Input 53(ivec4) 160: TypePointer Input 83(ivec3)
148(u4): 147(ptr) Variable Input 161(u3): 160(ptr) Variable Input
153: TypePointer Output 46(fvec4) 173: TypePointer Input 61(ivec4)
154(fragColor): 153(ptr) Variable Output 174(u4): 173(ptr) Variable Input
158: TypeBool 179: TypePointer Output 54(fvec4)
159: TypeVector 158(bool) 4 180(fragColor): 179(ptr) Variable Output
168: 12(float) Constant 1045220557 184: TypeBool
169: 46(fvec4) ConstantComposite 168 168 168 168 185: TypeVector 184(bool) 4
194: 12(float) Constant 1045220557
195: 54(fvec4) ConstantComposite 194 194 194 194
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(idata): 8(ptr) Variable Function 9(idata): 8(ptr) Variable Function
55(udata): 54(ptr) Variable Function 63(udata): 62(ptr) Variable Function
85(fdata): 84(ptr) Variable Function 99(fdata): 98(ptr) Variable Function
162: 84(ptr) Variable Function 188: 98(ptr) Variable Function
Store 9(idata) 11 Store 9(idata) 11
15: 12(float) Load 14(f1) 15: 12(float) Load 14(f1)
16: 6(int) Bitcast 15 16: 6(int) Bitcast 15
@ -122,126 +124,162 @@ spv.bitCast.frag
30: 7(ivec4) Load 9(idata) 30: 7(ivec4) Load 9(idata)
31: 28(ivec2) VectorShuffle 30 30 0 1 31: 28(ivec2) VectorShuffle 30 30 0 1
32: 28(ivec2) IAdd 31 29 32: 28(ivec2) IAdd 31 29
33: 7(ivec4) Load 9(idata) 33: 19(ptr) AccessChain 9(idata) 18
34: 7(ivec4) VectorShuffle 33 32 4 5 2 3 34: 6(int) CompositeExtract 32 0
Store 9(idata) 34 Store 33 34
38: 35(fvec3) Load 37(f3) 36: 19(ptr) AccessChain 9(idata) 35
40: 39(ivec3) Bitcast 38 37: 6(int) CompositeExtract 32 1
41: 7(ivec4) Load 9(idata) Store 36 37
42: 39(ivec3) VectorShuffle 41 41 0 1 2 41: 38(fvec3) Load 40(f3)
43: 39(ivec3) IAdd 42 40 43: 42(ivec3) Bitcast 41
44: 7(ivec4) Load 9(idata) 44: 7(ivec4) Load 9(idata)
45: 7(ivec4) VectorShuffle 44 43 4 5 6 3 45: 42(ivec3) VectorShuffle 44 44 0 1 2
Store 9(idata) 45 46: 42(ivec3) IAdd 45 43
49: 46(fvec4) Load 48(f4) 47: 19(ptr) AccessChain 9(idata) 18
50: 7(ivec4) Bitcast 49 48: 6(int) CompositeExtract 46 0
51: 7(ivec4) Load 9(idata) Store 47 48
52: 7(ivec4) IAdd 51 50 49: 19(ptr) AccessChain 9(idata) 35
Store 9(idata) 52 50: 6(int) CompositeExtract 46 1
Store 55(udata) 56 Store 49 50
57: 12(float) Load 14(f1) 52: 19(ptr) AccessChain 9(idata) 51
58: 17(int) Bitcast 57 53: 6(int) CompositeExtract 46 2
60: 59(ptr) AccessChain 55(udata) 18 Store 52 53
61: 17(int) Load 60 57: 54(fvec4) Load 56(f4)
62: 17(int) IAdd 61 58 58: 7(ivec4) Bitcast 57
63: 59(ptr) AccessChain 55(udata) 18 59: 7(ivec4) Load 9(idata)
Store 63 62 60: 7(ivec4) IAdd 59 58
64: 24(fvec2) Load 26(f2) Store 9(idata) 60
66: 65(ivec2) Bitcast 64 Store 63(udata) 64
67: 53(ivec4) Load 55(udata) 65: 12(float) Load 14(f1)
68: 65(ivec2) VectorShuffle 67 67 0 1 66: 17(int) Bitcast 65
69: 65(ivec2) IAdd 68 66 68: 67(ptr) AccessChain 63(udata) 18
70: 53(ivec4) Load 55(udata) 69: 17(int) Load 68
71: 53(ivec4) VectorShuffle 70 69 4 5 2 3 70: 17(int) IAdd 69 66
Store 55(udata) 71 71: 67(ptr) AccessChain 63(udata) 18
72: 35(fvec3) Load 37(f3) Store 71 70
74: 73(ivec3) Bitcast 72 72: 24(fvec2) Load 26(f2)
75: 53(ivec4) Load 55(udata) 74: 73(ivec2) Bitcast 72
76: 73(ivec3) VectorShuffle 75 75 0 1 2 75: 61(ivec4) Load 63(udata)
77: 73(ivec3) IAdd 76 74 76: 73(ivec2) VectorShuffle 75 75 0 1
78: 53(ivec4) Load 55(udata) 77: 73(ivec2) IAdd 76 74
79: 53(ivec4) VectorShuffle 78 77 4 5 6 3 78: 67(ptr) AccessChain 63(udata) 18
Store 55(udata) 79 79: 17(int) CompositeExtract 77 0
80: 46(fvec4) Load 48(f4) Store 78 79
81: 53(ivec4) Bitcast 80 80: 67(ptr) AccessChain 63(udata) 35
82: 53(ivec4) Load 55(udata) 81: 17(int) CompositeExtract 77 1
83: 53(ivec4) IAdd 82 81 Store 80 81
Store 55(udata) 83 82: 38(fvec3) Load 40(f3)
Store 85(fdata) 87 84: 83(ivec3) Bitcast 82
90: 6(int) Load 89(i1) 85: 61(ivec4) Load 63(udata)
91: 12(float) Bitcast 90 86: 83(ivec3) VectorShuffle 85 85 0 1 2
93: 92(ptr) AccessChain 85(fdata) 18 87: 83(ivec3) IAdd 86 84
94: 12(float) Load 93 88: 67(ptr) AccessChain 63(udata) 18
95: 12(float) FAdd 94 91 89: 17(int) CompositeExtract 87 0
96: 92(ptr) AccessChain 85(fdata) 18 Store 88 89
Store 96 95 90: 67(ptr) AccessChain 63(udata) 35
99: 28(ivec2) Load 98(i2) 91: 17(int) CompositeExtract 87 1
100: 24(fvec2) Bitcast 99 Store 90 91
101: 46(fvec4) Load 85(fdata) 92: 67(ptr) AccessChain 63(udata) 51
102: 24(fvec2) VectorShuffle 101 101 0 1 93: 17(int) CompositeExtract 87 2
103: 24(fvec2) FAdd 102 100 Store 92 93
104: 46(fvec4) Load 85(fdata) 94: 54(fvec4) Load 56(f4)
105: 46(fvec4) VectorShuffle 104 103 4 5 2 3 95: 61(ivec4) Bitcast 94
Store 85(fdata) 105 96: 61(ivec4) Load 63(udata)
108: 39(ivec3) Load 107(i3) 97: 61(ivec4) IAdd 96 95
109: 35(fvec3) Bitcast 108 Store 63(udata) 97
110: 46(fvec4) Load 85(fdata) Store 99(fdata) 101
111: 35(fvec3) VectorShuffle 110 110 0 1 2 104: 6(int) Load 103(i1)
112: 35(fvec3) FAdd 111 109 105: 12(float) Bitcast 104
113: 46(fvec4) Load 85(fdata) 107: 106(ptr) AccessChain 99(fdata) 18
114: 46(fvec4) VectorShuffle 113 112 4 5 6 3 108: 12(float) Load 107
Store 85(fdata) 114 109: 12(float) FAdd 108 105
117: 7(ivec4) Load 116(i4) 110: 106(ptr) AccessChain 99(fdata) 18
118: 46(fvec4) Bitcast 117 Store 110 109
119: 46(fvec4) Load 85(fdata) 113: 28(ivec2) Load 112(i2)
120: 46(fvec4) FAdd 119 118 114: 24(fvec2) Bitcast 113
Store 85(fdata) 120 115: 54(fvec4) Load 99(fdata)
123: 17(int) Load 122(u1) 116: 24(fvec2) VectorShuffle 115 115 0 1
124: 12(float) Bitcast 123 117: 24(fvec2) FAdd 116 114
125: 92(ptr) AccessChain 85(fdata) 18 118: 106(ptr) AccessChain 99(fdata) 18
126: 12(float) Load 125 119: 12(float) CompositeExtract 117 0
127: 12(float) FAdd 126 124 Store 118 119
128: 92(ptr) AccessChain 85(fdata) 18 120: 106(ptr) AccessChain 99(fdata) 35
Store 128 127 121: 12(float) CompositeExtract 117 1
131: 65(ivec2) Load 130(u2) Store 120 121
132: 24(fvec2) Bitcast 131 124: 42(ivec3) Load 123(i3)
133: 46(fvec4) Load 85(fdata) 125: 38(fvec3) Bitcast 124
134: 24(fvec2) VectorShuffle 133 133 0 1 126: 54(fvec4) Load 99(fdata)
135: 24(fvec2) FAdd 134 132 127: 38(fvec3) VectorShuffle 126 126 0 1 2
136: 46(fvec4) Load 85(fdata) 128: 38(fvec3) FAdd 127 125
137: 46(fvec4) VectorShuffle 136 135 4 5 2 3 129: 106(ptr) AccessChain 99(fdata) 18
Store 85(fdata) 137 130: 12(float) CompositeExtract 128 0
140: 73(ivec3) Load 139(u3) Store 129 130
141: 35(fvec3) Bitcast 140 131: 106(ptr) AccessChain 99(fdata) 35
142: 46(fvec4) Load 85(fdata) 132: 12(float) CompositeExtract 128 1
143: 35(fvec3) VectorShuffle 142 142 0 1 2 Store 131 132
144: 35(fvec3) FAdd 143 141 133: 106(ptr) AccessChain 99(fdata) 51
145: 46(fvec4) Load 85(fdata) 134: 12(float) CompositeExtract 128 2
146: 46(fvec4) VectorShuffle 145 144 4 5 6 3 Store 133 134
Store 85(fdata) 146 137: 7(ivec4) Load 136(i4)
149: 53(ivec4) Load 148(u4) 138: 54(fvec4) Bitcast 137
150: 46(fvec4) Bitcast 149 139: 54(fvec4) Load 99(fdata)
151: 46(fvec4) Load 85(fdata) 140: 54(fvec4) FAdd 139 138
152: 46(fvec4) FAdd 151 150 Store 99(fdata) 140
Store 85(fdata) 152 143: 17(int) Load 142(u1)
155: 7(ivec4) Load 9(idata) 144: 12(float) Bitcast 143
156: 53(ivec4) Bitcast 155 145: 106(ptr) AccessChain 99(fdata) 18
157: 53(ivec4) Load 55(udata) 146: 12(float) Load 145
160: 159(bvec4) IEqual 156 157 147: 12(float) FAdd 146 144
161: 158(bool) All 160 148: 106(ptr) AccessChain 99(fdata) 18
SelectionMerge 164 None Store 148 147
BranchConditional 161 163 166 151: 73(ivec2) Load 150(u2)
163: Label 152: 24(fvec2) Bitcast 151
165: 46(fvec4) Load 85(fdata) 153: 54(fvec4) Load 99(fdata)
Store 162 165 154: 24(fvec2) VectorShuffle 153 153 0 1
Branch 164 155: 24(fvec2) FAdd 154 152
166: Label 156: 106(ptr) AccessChain 99(fdata) 18
167: 46(fvec4) Load 85(fdata) 157: 12(float) CompositeExtract 155 0
170: 46(fvec4) FAdd 167 169 Store 156 157
Store 162 170 158: 106(ptr) AccessChain 99(fdata) 35
Branch 164 159: 12(float) CompositeExtract 155 1
164: Label Store 158 159
171: 46(fvec4) Load 162 162: 83(ivec3) Load 161(u3)
Store 154(fragColor) 171 163: 38(fvec3) Bitcast 162
164: 54(fvec4) Load 99(fdata)
165: 38(fvec3) VectorShuffle 164 164 0 1 2
166: 38(fvec3) FAdd 165 163
167: 106(ptr) AccessChain 99(fdata) 18
168: 12(float) CompositeExtract 166 0
Store 167 168
169: 106(ptr) AccessChain 99(fdata) 35
170: 12(float) CompositeExtract 166 1
Store 169 170
171: 106(ptr) AccessChain 99(fdata) 51
172: 12(float) CompositeExtract 166 2
Store 171 172
175: 61(ivec4) Load 174(u4)
176: 54(fvec4) Bitcast 175
177: 54(fvec4) Load 99(fdata)
178: 54(fvec4) FAdd 177 176
Store 99(fdata) 178
181: 7(ivec4) Load 9(idata)
182: 61(ivec4) Bitcast 181
183: 61(ivec4) Load 63(udata)
186: 185(bvec4) IEqual 182 183
187: 184(bool) All 186
SelectionMerge 190 None
BranchConditional 187 189 192
189: Label
191: 54(fvec4) Load 99(fdata)
Store 188 191
Branch 190
192: Label
193: 54(fvec4) Load 99(fdata)
196: 54(fvec4) FAdd 193 195
Store 188 196
Branch 190
190: Label
197: 54(fvec4) Load 188
Store 180(fragColor) 197
Return Return
FunctionEnd FunctionEnd

View File

@ -2,7 +2,7 @@ spv.float16.frag
Validation failed Validation failed
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 534 // Id's are bound by 542
Capability Shader Capability Shader
Capability Float16 Capability Float16
@ -80,87 +80,87 @@ Validation failed
Name 445 "f16v2" Name 445 "f16v2"
Name 463 "f16v" Name 463 "f16v"
Name 465 "if16v" Name 465 "if16v"
Name 514 "S" Name 522 "S"
MemberName 514(S) 0 "x" MemberName 522(S) 0 "x"
MemberName 514(S) 1 "y" MemberName 522(S) 1 "y"
MemberName 514(S) 2 "z" MemberName 522(S) 2 "z"
Name 516 "B1" Name 524 "B1"
MemberName 516(B1) 0 "a" MemberName 524(B1) 0 "a"
MemberName 516(B1) 1 "b" MemberName 524(B1) 1 "b"
MemberName 516(B1) 2 "c" MemberName 524(B1) 2 "c"
MemberName 516(B1) 3 "d" MemberName 524(B1) 3 "d"
MemberName 516(B1) 4 "e" MemberName 524(B1) 4 "e"
MemberName 516(B1) 5 "f" MemberName 524(B1) 5 "f"
MemberName 516(B1) 6 "g" MemberName 524(B1) 6 "g"
MemberName 516(B1) 7 "h" MemberName 524(B1) 7 "h"
Name 518 "" Name 526 ""
Name 521 "S" Name 529 "S"
MemberName 521(S) 0 "x" MemberName 529(S) 0 "x"
MemberName 521(S) 1 "y" MemberName 529(S) 1 "y"
MemberName 521(S) 2 "z" MemberName 529(S) 2 "z"
Name 523 "B2" Name 531 "B2"
MemberName 523(B2) 0 "o" MemberName 531(B2) 0 "o"
MemberName 523(B2) 1 "p" MemberName 531(B2) 1 "p"
MemberName 523(B2) 2 "q" MemberName 531(B2) 2 "q"
MemberName 523(B2) 3 "r" MemberName 531(B2) 3 "r"
MemberName 523(B2) 4 "s" MemberName 531(B2) 4 "s"
MemberName 523(B2) 5 "t" MemberName 531(B2) 5 "t"
MemberName 523(B2) 6 "u" MemberName 531(B2) 6 "u"
MemberName 523(B2) 7 "v" MemberName 531(B2) 7 "v"
Name 525 "" Name 533 ""
Name 526 "sf16" Name 534 "sf16"
Name 527 "sf" Name 535 "sf"
Name 528 "sd" Name 536 "sd"
Name 529 "f16_to_f" Name 537 "f16_to_f"
Name 531 "f16_to_d" Name 539 "f16_to_d"
Name 532 "f_to_f16" Name 540 "f_to_f16"
Name 533 "d_to_f16" Name 541 "d_to_f16"
Decorate 465(if16v) Location 0 Decorate 465(if16v) Location 0
Decorate 512 ArrayStride 16 Decorate 520 ArrayStride 16
Decorate 513 ArrayStride 32 Decorate 521 ArrayStride 32
MemberDecorate 514(S) 0 Offset 0 MemberDecorate 522(S) 0 Offset 0
MemberDecorate 514(S) 1 Offset 4 MemberDecorate 522(S) 1 Offset 4
MemberDecorate 514(S) 2 Offset 8 MemberDecorate 522(S) 2 Offset 8
Decorate 515 ArrayStride 16 Decorate 523 ArrayStride 16
MemberDecorate 516(B1) 0 Offset 0 MemberDecorate 524(B1) 0 Offset 0
MemberDecorate 516(B1) 1 Offset 4 MemberDecorate 524(B1) 1 Offset 4
MemberDecorate 516(B1) 2 Offset 8 MemberDecorate 524(B1) 2 Offset 8
MemberDecorate 516(B1) 3 Offset 16 MemberDecorate 524(B1) 3 Offset 16
MemberDecorate 516(B1) 4 ColMajor MemberDecorate 524(B1) 4 ColMajor
MemberDecorate 516(B1) 4 Offset 48 MemberDecorate 524(B1) 4 Offset 48
MemberDecorate 516(B1) 4 MatrixStride 16 MemberDecorate 524(B1) 4 MatrixStride 16
MemberDecorate 516(B1) 5 ColMajor MemberDecorate 524(B1) 5 ColMajor
MemberDecorate 516(B1) 5 Offset 80 MemberDecorate 524(B1) 5 Offset 80
MemberDecorate 516(B1) 5 MatrixStride 16 MemberDecorate 524(B1) 5 MatrixStride 16
MemberDecorate 516(B1) 6 Offset 144 MemberDecorate 524(B1) 6 Offset 144
MemberDecorate 516(B1) 7 Offset 160 MemberDecorate 524(B1) 7 Offset 160
Decorate 516(B1) Block Decorate 524(B1) Block
Decorate 518 DescriptorSet 0 Decorate 526 DescriptorSet 0
Decorate 518 Binding 0 Decorate 526 Binding 0
Decorate 519 ArrayStride 2 Decorate 527 ArrayStride 2
Decorate 520 ArrayStride 12 Decorate 528 ArrayStride 12
MemberDecorate 521(S) 0 Offset 0 MemberDecorate 529(S) 0 Offset 0
MemberDecorate 521(S) 1 Offset 4 MemberDecorate 529(S) 1 Offset 4
MemberDecorate 521(S) 2 Offset 8 MemberDecorate 529(S) 2 Offset 8
Decorate 522 ArrayStride 16 Decorate 530 ArrayStride 16
MemberDecorate 523(B2) 0 Offset 0 MemberDecorate 531(B2) 0 Offset 0
MemberDecorate 523(B2) 1 Offset 4 MemberDecorate 531(B2) 1 Offset 4
MemberDecorate 523(B2) 2 Offset 8 MemberDecorate 531(B2) 2 Offset 8
MemberDecorate 523(B2) 3 Offset 14 MemberDecorate 531(B2) 3 Offset 14
MemberDecorate 523(B2) 4 RowMajor MemberDecorate 531(B2) 4 RowMajor
MemberDecorate 523(B2) 4 Offset 20 MemberDecorate 531(B2) 4 Offset 20
MemberDecorate 523(B2) 4 MatrixStride 4 MemberDecorate 531(B2) 4 MatrixStride 4
MemberDecorate 523(B2) 5 RowMajor MemberDecorate 531(B2) 5 RowMajor
MemberDecorate 523(B2) 5 Offset 32 MemberDecorate 531(B2) 5 Offset 32
MemberDecorate 523(B2) 5 MatrixStride 4 MemberDecorate 531(B2) 5 MatrixStride 4
MemberDecorate 523(B2) 6 Offset 56 MemberDecorate 531(B2) 6 Offset 56
MemberDecorate 523(B2) 7 Offset 72 MemberDecorate 531(B2) 7 Offset 72
Decorate 523(B2) BufferBlock Decorate 531(B2) BufferBlock
Decorate 525 DescriptorSet 0 Decorate 533 DescriptorSet 0
Decorate 525 Binding 0 Decorate 533 Binding 0
Decorate 526(sf16) SpecId 100 Decorate 534(sf16) SpecId 100
Decorate 527(sf) SpecId 101 Decorate 535(sf) SpecId 101
Decorate 528(sd) SpecId 102 Decorate 536(sd) SpecId 102
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
28: TypeFloat 16 28: TypeFloat 16
@ -218,32 +218,32 @@ Validation failed
464: TypePointer Input 151(f16vec3) 464: TypePointer Input 151(f16vec3)
465(if16v): 464(ptr) Variable Input 465(if16v): 464(ptr) Variable Input
466: TypePointer Input 28(float16_t) 466: TypePointer Input 28(float16_t)
503: 183(int) Constant 1 509: 183(int) Constant 1
508:28(float16_t) Constant 14336 516:28(float16_t) Constant 14336
509: 29(f16vec2) ConstantComposite 508 508 517: 29(f16vec2) ConstantComposite 516 516
511: 33(int) Constant 2 519: 33(int) Constant 2
512: TypeArray 28(float16_t) 511 520: TypeArray 28(float16_t) 519
513: TypeArray 406 511 521: TypeArray 406 519
514(S): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 522(S): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3)
515: TypeArray 514(S) 511 523: TypeArray 522(S) 519
516(B1): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 512 406 513 514(S) 515 524(B1): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 520 406 521 522(S) 523
517: TypePointer Uniform 516(B1) 525: TypePointer Uniform 524(B1)
518: 517(ptr) Variable Uniform 526: 525(ptr) Variable Uniform
519: TypeArray 28(float16_t) 511 527: TypeArray 28(float16_t) 519
520: TypeArray 406 511 528: TypeArray 406 519
521(S): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 529(S): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3)
522: TypeArray 521(S) 511 530: TypeArray 529(S) 519
523(B2): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 519 406 520 521(S) 522 531(B2): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 527 406 528 529(S) 530
524: TypePointer Uniform 523(B2) 532: TypePointer Uniform 531(B2)
525: 524(ptr) Variable Uniform 533: 532(ptr) Variable Uniform
526(sf16):28(float16_t) SpecConstant 12288 534(sf16):28(float16_t) SpecConstant 12288
527(sf): 164(float) SpecConstant 1048576000 535(sf): 164(float) SpecConstant 1048576000
528(sd):172(float64_t) SpecConstant 0 1071644672 536(sd):172(float64_t) SpecConstant 0 1071644672
529(f16_to_f): 164(float) SpecConstantOp 115 526(sf16) 537(f16_to_f): 164(float) SpecConstantOp 115 534(sf16)
530: 164(float) SpecConstantOp 115 526(sf16) 538: 164(float) SpecConstantOp 115 534(sf16)
531(f16_to_d):172(float64_t) SpecConstantOp 115 530 539(f16_to_d):172(float64_t) SpecConstantOp 115 538
532(f_to_f16):28(float16_t) SpecConstantOp 115 527(sf) 540(f_to_f16):28(float16_t) SpecConstantOp 115 535(sf)
533(d_to_f16):28(float16_t) SpecConstantOp 115 528(sd) 541(d_to_f16):28(float16_t) SpecConstantOp 115 536(sd)
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
Return Return
@ -801,45 +801,57 @@ Validation failed
475:151(f16vec3) Load 465(if16v) 475:151(f16vec3) Load 465(if16v)
476: 29(f16vec2) VectorShuffle 475 475 0 1 476: 29(f16vec2) VectorShuffle 475 475 0 1
477: 29(f16vec2) DPdxFine 476 477: 29(f16vec2) DPdxFine 476
478:151(f16vec3) Load 463(f16v) 478: 35(ptr) AccessChain 463(f16v) 34
479:151(f16vec3) VectorShuffle 478 477 3 4 2 479:28(float16_t) CompositeExtract 477 0
Store 463(f16v) 479 Store 478 479
480:151(f16vec3) Load 465(if16v) 480: 35(ptr) AccessChain 463(f16v) 90
481: 29(f16vec2) VectorShuffle 480 480 0 1 481:28(float16_t) CompositeExtract 477 1
482: 29(f16vec2) DPdyFine 481 Store 480 481
483:151(f16vec3) Load 463(f16v) 482:151(f16vec3) Load 465(if16v)
484:151(f16vec3) VectorShuffle 483 482 3 4 2 483: 29(f16vec2) VectorShuffle 482 482 0 1
Store 463(f16v) 484 484: 29(f16vec2) DPdyFine 483
485:151(f16vec3) Load 465(if16v) 485: 35(ptr) AccessChain 463(f16v) 34
486:151(f16vec3) DPdxCoarse 485 486:28(float16_t) CompositeExtract 484 0
Store 463(f16v) 486 Store 485 486
487:151(f16vec3) Load 465(if16v) 487: 35(ptr) AccessChain 463(f16v) 90
488:151(f16vec3) DPdxCoarse 487 488:28(float16_t) CompositeExtract 484 1
Store 463(f16v) 488 Store 487 488
489: 466(ptr) AccessChain 465(if16v) 34 489:151(f16vec3) Load 465(if16v)
490:28(float16_t) Load 489 490:151(f16vec3) DPdxCoarse 489
491:28(float16_t) Fwidth 490 Store 463(f16v) 490
492: 35(ptr) AccessChain 463(f16v) 34 491:151(f16vec3) Load 465(if16v)
Store 492 491 492:151(f16vec3) DPdxCoarse 491
493:151(f16vec3) Load 465(if16v) Store 463(f16v) 492
494: 29(f16vec2) VectorShuffle 493 493 0 1 493: 466(ptr) AccessChain 465(if16v) 34
495: 29(f16vec2) FwidthFine 494 494:28(float16_t) Load 493
496:151(f16vec3) Load 463(f16v) 495:28(float16_t) Fwidth 494
497:151(f16vec3) VectorShuffle 496 495 3 4 2 496: 35(ptr) AccessChain 463(f16v) 34
Store 463(f16v) 497 Store 496 495
498:151(f16vec3) Load 465(if16v) 497:151(f16vec3) Load 465(if16v)
499:151(f16vec3) FwidthCoarse 498 498: 29(f16vec2) VectorShuffle 497 497 0 1
Store 463(f16v) 499 499: 29(f16vec2) FwidthFine 498
500: 466(ptr) AccessChain 465(if16v) 34 500: 35(ptr) AccessChain 463(f16v) 34
501:28(float16_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 500 501:28(float16_t) CompositeExtract 499 0
502: 35(ptr) AccessChain 463(f16v) 34 Store 500 501
Store 502 501 502: 35(ptr) AccessChain 463(f16v) 90
504:151(f16vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 465(if16v) 503 503:28(float16_t) CompositeExtract 499 1
505: 29(f16vec2) VectorShuffle 504 504 0 1 Store 502 503
506:151(f16vec3) Load 463(f16v) 504:151(f16vec3) Load 465(if16v)
507:151(f16vec3) VectorShuffle 506 505 3 4 2 505:151(f16vec3) FwidthCoarse 504
Store 463(f16v) 507 Store 463(f16v) 505
510:151(f16vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 465(if16v) 509 506: 466(ptr) AccessChain 465(if16v) 34
Store 463(f16v) 510 507:28(float16_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 506
508: 35(ptr) AccessChain 463(f16v) 34
Store 508 507
510:151(f16vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 465(if16v) 509
511: 29(f16vec2) VectorShuffle 510 510 0 1
512: 35(ptr) AccessChain 463(f16v) 34
513:28(float16_t) CompositeExtract 511 0
Store 512 513
514: 35(ptr) AccessChain 463(f16v) 90
515:28(float16_t) CompositeExtract 511 1
Store 514 515
518:151(f16vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 465(if16v) 517
Store 463(f16v) 518
Return Return
FunctionEnd FunctionEnd

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
spv.float32.frag spv.float32.frag
// Module Version 10300 // Module Version 10300
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 533 // Id's are bound by 541
Capability Shader Capability Shader
Capability Float16 Capability Float16
@ -83,52 +83,52 @@ spv.float32.frag
Name 451 "f32v2" Name 451 "f32v2"
Name 469 "f32v" Name 469 "f32v"
Name 471 "if32v" Name 471 "if32v"
Name 520 "S" Name 528 "S"
MemberName 520(S) 0 "x" MemberName 528(S) 0 "x"
MemberName 520(S) 1 "y" MemberName 528(S) 1 "y"
MemberName 520(S) 2 "z" MemberName 528(S) 2 "z"
Name 522 "B1" Name 530 "B1"
MemberName 522(B1) 0 "a" MemberName 530(B1) 0 "a"
MemberName 522(B1) 1 "b" MemberName 530(B1) 1 "b"
MemberName 522(B1) 2 "c" MemberName 530(B1) 2 "c"
MemberName 522(B1) 3 "d" MemberName 530(B1) 3 "d"
MemberName 522(B1) 4 "e" MemberName 530(B1) 4 "e"
MemberName 522(B1) 5 "f" MemberName 530(B1) 5 "f"
MemberName 522(B1) 6 "g" MemberName 530(B1) 6 "g"
MemberName 522(B1) 7 "h" MemberName 530(B1) 7 "h"
Name 524 "" Name 532 ""
Name 525 "sf16" Name 533 "sf16"
Name 526 "sf" Name 534 "sf"
Name 527 "sd" Name 535 "sd"
Name 528 "f16_to_f" Name 536 "f16_to_f"
Name 530 "f16_to_d" Name 538 "f16_to_d"
Name 531 "f_to_f16" Name 539 "f_to_f16"
Name 532 "d_to_f16" Name 540 "d_to_f16"
Decorate 471(if32v) Location 0 Decorate 471(if32v) Location 0
Decorate 518 ArrayStride 16 Decorate 526 ArrayStride 16
Decorate 519 ArrayStride 32 Decorate 527 ArrayStride 32
MemberDecorate 520(S) 0 Offset 0 MemberDecorate 528(S) 0 Offset 0
MemberDecorate 520(S) 1 Offset 8 MemberDecorate 528(S) 1 Offset 8
MemberDecorate 520(S) 2 Offset 16 MemberDecorate 528(S) 2 Offset 16
Decorate 521 ArrayStride 32 Decorate 529 ArrayStride 32
MemberDecorate 522(B1) 0 Offset 0 MemberDecorate 530(B1) 0 Offset 0
MemberDecorate 522(B1) 1 Offset 8 MemberDecorate 530(B1) 1 Offset 8
MemberDecorate 522(B1) 2 Offset 16 MemberDecorate 530(B1) 2 Offset 16
MemberDecorate 522(B1) 3 Offset 32 MemberDecorate 530(B1) 3 Offset 32
MemberDecorate 522(B1) 4 ColMajor MemberDecorate 530(B1) 4 ColMajor
MemberDecorate 522(B1) 4 Offset 64 MemberDecorate 530(B1) 4 Offset 64
MemberDecorate 522(B1) 4 MatrixStride 16 MemberDecorate 530(B1) 4 MatrixStride 16
MemberDecorate 522(B1) 5 ColMajor MemberDecorate 530(B1) 5 ColMajor
MemberDecorate 522(B1) 5 Offset 96 MemberDecorate 530(B1) 5 Offset 96
MemberDecorate 522(B1) 5 MatrixStride 16 MemberDecorate 530(B1) 5 MatrixStride 16
MemberDecorate 522(B1) 6 Offset 160 MemberDecorate 530(B1) 6 Offset 160
MemberDecorate 522(B1) 7 Offset 192 MemberDecorate 530(B1) 7 Offset 192
Decorate 522(B1) Block Decorate 530(B1) Block
Decorate 524 DescriptorSet 0 Decorate 532 DescriptorSet 0
Decorate 524 Binding 0 Decorate 532 Binding 0
Decorate 525(sf16) SpecId 100 Decorate 533(sf16) SpecId 100
Decorate 526(sf) SpecId 101 Decorate 534(sf) SpecId 101
Decorate 527(sd) SpecId 102 Decorate 535(sd) SpecId 102
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
26: TypeFloat 32 26: TypeFloat 32
@ -197,25 +197,25 @@ spv.float32.frag
470: TypePointer Input 153(fvec3) 470: TypePointer Input 153(fvec3)
471(if32v): 470(ptr) Variable Input 471(if32v): 470(ptr) Variable Input
472: TypePointer Input 26(float) 472: TypePointer Input 26(float)
509: 192(int) Constant 1 515: 192(int) Constant 1
514: 26(float) Constant 1056964608 522: 26(float) Constant 1056964608
515: 27(fvec2) ConstantComposite 514 514 523: 27(fvec2) ConstantComposite 522 522
517: 31(int) Constant 2 525: 31(int) Constant 2
518: TypeArray 26(float) 517 526: TypeArray 26(float) 525
519: TypeArray 412 517 527: TypeArray 412 525
520(S): TypeStruct 26(float) 27(fvec2) 153(fvec3) 528(S): TypeStruct 26(float) 27(fvec2) 153(fvec3)
521: TypeArray 520(S) 517 529: TypeArray 528(S) 525
522(B1): TypeStruct 26(float) 27(fvec2) 153(fvec3) 518 412 519 520(S) 521 530(B1): TypeStruct 26(float) 27(fvec2) 153(fvec3) 526 412 527 528(S) 529
523: TypePointer Uniform 522(B1) 531: TypePointer Uniform 530(B1)
524: 523(ptr) Variable Uniform 532: 531(ptr) Variable Uniform
525(sf16):172(float16_t) SpecConstant 12288 533(sf16):172(float16_t) SpecConstant 12288
526(sf): 26(float) SpecConstant 1048576000 534(sf): 26(float) SpecConstant 1048576000
527(sd):149(float64_t) SpecConstant 0 1071644672 535(sd):149(float64_t) SpecConstant 0 1071644672
528(f16_to_f): 26(float) SpecConstantOp 115 525(sf16) 536(f16_to_f): 26(float) SpecConstantOp 115 533(sf16)
529: 26(float) SpecConstantOp 115 525(sf16) 537: 26(float) SpecConstantOp 115 533(sf16)
530(f16_to_d):149(float64_t) SpecConstantOp 115 529 538(f16_to_d):149(float64_t) SpecConstantOp 115 537
531(f_to_f16):172(float16_t) SpecConstantOp 115 526(sf) 539(f_to_f16):172(float16_t) SpecConstantOp 115 534(sf)
532(d_to_f16):172(float16_t) SpecConstantOp 115 527(sd) 540(d_to_f16):172(float16_t) SpecConstantOp 115 535(sd)
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
Return Return
@ -765,45 +765,57 @@ spv.float32.frag
481: 153(fvec3) Load 471(if32v) 481: 153(fvec3) Load 471(if32v)
482: 27(fvec2) VectorShuffle 481 481 0 1 482: 27(fvec2) VectorShuffle 481 481 0 1
483: 27(fvec2) DPdxFine 482 483: 27(fvec2) DPdxFine 482
484: 153(fvec3) Load 469(f32v) 484: 33(ptr) AccessChain 469(f32v) 32
485: 153(fvec3) VectorShuffle 484 483 3 4 2 485: 26(float) CompositeExtract 483 0
Store 469(f32v) 485 Store 484 485
486: 153(fvec3) Load 471(if32v) 486: 33(ptr) AccessChain 469(f32v) 88
487: 27(fvec2) VectorShuffle 486 486 0 1 487: 26(float) CompositeExtract 483 1
488: 27(fvec2) DPdyFine 487 Store 486 487
489: 153(fvec3) Load 469(f32v) 488: 153(fvec3) Load 471(if32v)
490: 153(fvec3) VectorShuffle 489 488 3 4 2 489: 27(fvec2) VectorShuffle 488 488 0 1
Store 469(f32v) 490 490: 27(fvec2) DPdyFine 489
491: 153(fvec3) Load 471(if32v) 491: 33(ptr) AccessChain 469(f32v) 32
492: 153(fvec3) DPdxCoarse 491 492: 26(float) CompositeExtract 490 0
Store 469(f32v) 492 Store 491 492
493: 153(fvec3) Load 471(if32v) 493: 33(ptr) AccessChain 469(f32v) 88
494: 153(fvec3) DPdxCoarse 493 494: 26(float) CompositeExtract 490 1
Store 469(f32v) 494 Store 493 494
495: 472(ptr) AccessChain 471(if32v) 32 495: 153(fvec3) Load 471(if32v)
496: 26(float) Load 495 496: 153(fvec3) DPdxCoarse 495
497: 26(float) Fwidth 496 Store 469(f32v) 496
498: 33(ptr) AccessChain 469(f32v) 32 497: 153(fvec3) Load 471(if32v)
Store 498 497 498: 153(fvec3) DPdxCoarse 497
499: 153(fvec3) Load 471(if32v) Store 469(f32v) 498
500: 27(fvec2) VectorShuffle 499 499 0 1 499: 472(ptr) AccessChain 471(if32v) 32
501: 27(fvec2) FwidthFine 500 500: 26(float) Load 499
502: 153(fvec3) Load 469(f32v) 501: 26(float) Fwidth 500
503: 153(fvec3) VectorShuffle 502 501 3 4 2 502: 33(ptr) AccessChain 469(f32v) 32
Store 469(f32v) 503 Store 502 501
504: 153(fvec3) Load 471(if32v) 503: 153(fvec3) Load 471(if32v)
505: 153(fvec3) FwidthCoarse 504 504: 27(fvec2) VectorShuffle 503 503 0 1
Store 469(f32v) 505 505: 27(fvec2) FwidthFine 504
506: 472(ptr) AccessChain 471(if32v) 32 506: 33(ptr) AccessChain 469(f32v) 32
507: 26(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 506 507: 26(float) CompositeExtract 505 0
508: 33(ptr) AccessChain 469(f32v) 32 Store 506 507
Store 508 507 508: 33(ptr) AccessChain 469(f32v) 88
510: 153(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 471(if32v) 509 509: 26(float) CompositeExtract 505 1
511: 27(fvec2) VectorShuffle 510 510 0 1 Store 508 509
512: 153(fvec3) Load 469(f32v) 510: 153(fvec3) Load 471(if32v)
513: 153(fvec3) VectorShuffle 512 511 3 4 2 511: 153(fvec3) FwidthCoarse 510
Store 469(f32v) 513 Store 469(f32v) 511
516: 153(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 471(if32v) 515 512: 472(ptr) AccessChain 471(if32v) 32
Store 469(f32v) 516 513: 26(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 512
514: 33(ptr) AccessChain 469(f32v) 32
Store 514 513
516: 153(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 471(if32v) 515
517: 27(fvec2) VectorShuffle 516 516 0 1
518: 33(ptr) AccessChain 469(f32v) 32
519: 26(float) CompositeExtract 517 0
Store 518 519
520: 33(ptr) AccessChain 469(f32v) 88
521: 26(float) CompositeExtract 517 1
Store 520 521
524: 153(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 471(if32v) 523
Store 469(f32v) 524
Return Return
FunctionEnd FunctionEnd

View File

@ -2,7 +2,7 @@ spv.float64.frag
Validation failed Validation failed
// Module Version 10300 // Module Version 10300
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 524 // Id's are bound by 532
Capability Shader Capability Shader
Capability Float16 Capability Float16
@ -83,53 +83,53 @@ Validation failed
Name 441 "f64v2" Name 441 "f64v2"
Name 459 "f64v" Name 459 "f64v"
Name 461 "if64v" Name 461 "if64v"
Name 510 "S" Name 518 "S"
MemberName 510(S) 0 "x" MemberName 518(S) 0 "x"
MemberName 510(S) 1 "y" MemberName 518(S) 1 "y"
MemberName 510(S) 2 "z" MemberName 518(S) 2 "z"
Name 512 "B1" Name 520 "B1"
MemberName 512(B1) 0 "a" MemberName 520(B1) 0 "a"
MemberName 512(B1) 1 "b" MemberName 520(B1) 1 "b"
MemberName 512(B1) 2 "c" MemberName 520(B1) 2 "c"
MemberName 512(B1) 3 "d" MemberName 520(B1) 3 "d"
MemberName 512(B1) 4 "e" MemberName 520(B1) 4 "e"
MemberName 512(B1) 5 "f" MemberName 520(B1) 5 "f"
MemberName 512(B1) 6 "g" MemberName 520(B1) 6 "g"
MemberName 512(B1) 7 "h" MemberName 520(B1) 7 "h"
Name 514 "" Name 522 ""
Name 515 "sf16" Name 523 "sf16"
Name 517 "sf" Name 525 "sf"
Name 518 "sd" Name 526 "sd"
Name 519 "f16_to_f" Name 527 "f16_to_f"
Name 521 "f16_to_d" Name 529 "f16_to_d"
Name 522 "f_to_f16" Name 530 "f_to_f16"
Name 523 "d_to_f16" Name 531 "d_to_f16"
Decorate 461(if64v) Flat Decorate 461(if64v) Flat
Decorate 461(if64v) Location 0 Decorate 461(if64v) Location 0
Decorate 508 ArrayStride 16 Decorate 516 ArrayStride 16
Decorate 509 ArrayStride 64 Decorate 517 ArrayStride 64
MemberDecorate 510(S) 0 Offset 0 MemberDecorate 518(S) 0 Offset 0
MemberDecorate 510(S) 1 Offset 16 MemberDecorate 518(S) 1 Offset 16
MemberDecorate 510(S) 2 Offset 32 MemberDecorate 518(S) 2 Offset 32
Decorate 511 ArrayStride 64 Decorate 519 ArrayStride 64
MemberDecorate 512(B1) 0 Offset 0 MemberDecorate 520(B1) 0 Offset 0
MemberDecorate 512(B1) 1 Offset 16 MemberDecorate 520(B1) 1 Offset 16
MemberDecorate 512(B1) 2 Offset 32 MemberDecorate 520(B1) 2 Offset 32
MemberDecorate 512(B1) 3 Offset 64 MemberDecorate 520(B1) 3 Offset 64
MemberDecorate 512(B1) 4 ColMajor MemberDecorate 520(B1) 4 ColMajor
MemberDecorate 512(B1) 4 Offset 96 MemberDecorate 520(B1) 4 Offset 96
MemberDecorate 512(B1) 4 MatrixStride 32 MemberDecorate 520(B1) 4 MatrixStride 32
MemberDecorate 512(B1) 5 ColMajor MemberDecorate 520(B1) 5 ColMajor
MemberDecorate 512(B1) 5 Offset 160 MemberDecorate 520(B1) 5 Offset 160
MemberDecorate 512(B1) 5 MatrixStride 32 MemberDecorate 520(B1) 5 MatrixStride 32
MemberDecorate 512(B1) 6 Offset 288 MemberDecorate 520(B1) 6 Offset 288
MemberDecorate 512(B1) 7 Offset 352 MemberDecorate 520(B1) 7 Offset 352
Decorate 512(B1) Block Decorate 520(B1) Block
Decorate 514 DescriptorSet 0 Decorate 522 DescriptorSet 0
Decorate 514 Binding 0 Decorate 522 Binding 0
Decorate 515(sf16) SpecId 100 Decorate 523(sf16) SpecId 100
Decorate 517(sf) SpecId 101 Decorate 525(sf) SpecId 101
Decorate 518(sd) SpecId 102 Decorate 526(sd) SpecId 102
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
26: TypeFloat 64 26: TypeFloat 64
@ -195,26 +195,26 @@ Validation failed
460: TypePointer Input 149(f64vec3) 460: TypePointer Input 149(f64vec3)
461(if64v): 460(ptr) Variable Input 461(if64v): 460(ptr) Variable Input
462: TypePointer Input 26(float64_t) 462: TypePointer Input 26(float64_t)
499: 182(int) Constant 1 505: 182(int) Constant 1
504:26(float64_t) Constant 0 1071644672 512:26(float64_t) Constant 0 1071644672
505: 27(f64vec2) ConstantComposite 504 504 513: 27(f64vec2) ConstantComposite 512 512
507: 31(int) Constant 2 515: 31(int) Constant 2
508: TypeArray 26(float64_t) 507 516: TypeArray 26(float64_t) 515
509: TypeArray 402 507 517: TypeArray 402 515
510(S): TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3) 518(S): TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3)
511: TypeArray 510(S) 507 519: TypeArray 518(S) 515
512(B1): TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3) 508 402 509 510(S) 511 520(B1): TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3) 516 402 517 518(S) 519
513: TypePointer Uniform 512(B1) 521: TypePointer Uniform 520(B1)
514: 513(ptr) Variable Uniform 522: 521(ptr) Variable Uniform
515(sf16):162(float16_t) SpecConstant 12288 523(sf16):162(float16_t) SpecConstant 12288
516: TypeFloat 32 524: TypeFloat 32
517(sf): 516(float) SpecConstant 1048576000 525(sf): 524(float) SpecConstant 1048576000
518(sd):26(float64_t) SpecConstant 0 1071644672 526(sd):26(float64_t) SpecConstant 0 1071644672
519(f16_to_f): 516(float) SpecConstantOp 115 515(sf16) 527(f16_to_f): 524(float) SpecConstantOp 115 523(sf16)
520: 516(float) SpecConstantOp 115 515(sf16) 528: 524(float) SpecConstantOp 115 523(sf16)
521(f16_to_d):26(float64_t) SpecConstantOp 115 520 529(f16_to_d):26(float64_t) SpecConstantOp 115 528
522(f_to_f16):162(float16_t) SpecConstantOp 115 517(sf) 530(f_to_f16):162(float16_t) SpecConstantOp 115 525(sf)
523(d_to_f16):162(float16_t) SpecConstantOp 115 518(sd) 531(d_to_f16):162(float16_t) SpecConstantOp 115 526(sd)
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
Return Return
@ -754,45 +754,57 @@ Validation failed
471:149(f64vec3) Load 461(if64v) 471:149(f64vec3) Load 461(if64v)
472: 27(f64vec2) VectorShuffle 471 471 0 1 472: 27(f64vec2) VectorShuffle 471 471 0 1
473: 27(f64vec2) DPdxFine 472 473: 27(f64vec2) DPdxFine 472
474:149(f64vec3) Load 459(f64v) 474: 33(ptr) AccessChain 459(f64v) 32
475:149(f64vec3) VectorShuffle 474 473 3 4 2 475:26(float64_t) CompositeExtract 473 0
Store 459(f64v) 475 Store 474 475
476:149(f64vec3) Load 461(if64v) 476: 33(ptr) AccessChain 459(f64v) 88
477: 27(f64vec2) VectorShuffle 476 476 0 1 477:26(float64_t) CompositeExtract 473 1
478: 27(f64vec2) DPdyFine 477 Store 476 477
479:149(f64vec3) Load 459(f64v) 478:149(f64vec3) Load 461(if64v)
480:149(f64vec3) VectorShuffle 479 478 3 4 2 479: 27(f64vec2) VectorShuffle 478 478 0 1
Store 459(f64v) 480 480: 27(f64vec2) DPdyFine 479
481:149(f64vec3) Load 461(if64v) 481: 33(ptr) AccessChain 459(f64v) 32
482:149(f64vec3) DPdxCoarse 481 482:26(float64_t) CompositeExtract 480 0
Store 459(f64v) 482 Store 481 482
483:149(f64vec3) Load 461(if64v) 483: 33(ptr) AccessChain 459(f64v) 88
484:149(f64vec3) DPdxCoarse 483 484:26(float64_t) CompositeExtract 480 1
Store 459(f64v) 484 Store 483 484
485: 462(ptr) AccessChain 461(if64v) 32 485:149(f64vec3) Load 461(if64v)
486:26(float64_t) Load 485 486:149(f64vec3) DPdxCoarse 485
487:26(float64_t) Fwidth 486 Store 459(f64v) 486
488: 33(ptr) AccessChain 459(f64v) 32 487:149(f64vec3) Load 461(if64v)
Store 488 487 488:149(f64vec3) DPdxCoarse 487
489:149(f64vec3) Load 461(if64v) Store 459(f64v) 488
490: 27(f64vec2) VectorShuffle 489 489 0 1 489: 462(ptr) AccessChain 461(if64v) 32
491: 27(f64vec2) FwidthFine 490 490:26(float64_t) Load 489
492:149(f64vec3) Load 459(f64v) 491:26(float64_t) Fwidth 490
493:149(f64vec3) VectorShuffle 492 491 3 4 2 492: 33(ptr) AccessChain 459(f64v) 32
Store 459(f64v) 493 Store 492 491
494:149(f64vec3) Load 461(if64v) 493:149(f64vec3) Load 461(if64v)
495:149(f64vec3) FwidthCoarse 494 494: 27(f64vec2) VectorShuffle 493 493 0 1
Store 459(f64v) 495 495: 27(f64vec2) FwidthFine 494
496: 462(ptr) AccessChain 461(if64v) 32 496: 33(ptr) AccessChain 459(f64v) 32
497:26(float64_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 496 497:26(float64_t) CompositeExtract 495 0
498: 33(ptr) AccessChain 459(f64v) 32 Store 496 497
Store 498 497 498: 33(ptr) AccessChain 459(f64v) 88
500:149(f64vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 461(if64v) 499 499:26(float64_t) CompositeExtract 495 1
501: 27(f64vec2) VectorShuffle 500 500 0 1 Store 498 499
502:149(f64vec3) Load 459(f64v) 500:149(f64vec3) Load 461(if64v)
503:149(f64vec3) VectorShuffle 502 501 3 4 2 501:149(f64vec3) FwidthCoarse 500
Store 459(f64v) 503 Store 459(f64v) 501
506:149(f64vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 461(if64v) 505 502: 462(ptr) AccessChain 461(if64v) 32
Store 459(f64v) 506 503:26(float64_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 502
504: 33(ptr) AccessChain 459(f64v) 32
Store 504 503
506:149(f64vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 461(if64v) 505
507: 27(f64vec2) VectorShuffle 506 506 0 1
508: 33(ptr) AccessChain 459(f64v) 32
509:26(float64_t) CompositeExtract 507 0
Store 508 509
510: 33(ptr) AccessChain 459(f64v) 88
511:26(float64_t) CompositeExtract 507 1
Store 510 511
514:149(f64vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 461(if64v) 513
Store 459(f64v) 514
Return Return
FunctionEnd FunctionEnd

View File

@ -1,12 +1,12 @@
spv.forLoop.frag spv.forLoop.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 131 // Id's are bound by 143
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11 24 28 36 53 104 EntryPoint Fragment 4 "main" 11 24 28 36 53 111
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 140 Source GLSL 140
Name 4 "main" Name 4 "main"
@ -22,9 +22,9 @@ spv.forLoop.frag
Name 63 "i" Name 63 "i"
Name 71 "tv4" Name 71 "tv4"
Name 88 "r" Name 88 "r"
Name 94 "i" Name 101 "i"
Name 104 "f" Name 111 "f"
Name 117 "i" Name 129 "i"
Decorate 11(BaseColor) Location 1 Decorate 11(BaseColor) Location 1
Decorate 24(Count) Flat Decorate 24(Count) Flat
Decorate 24(Count) Location 3 Decorate 24(Count) Location 3
@ -32,7 +32,7 @@ spv.forLoop.frag
Decorate 36(gl_FragColor) Location 0 Decorate 36(gl_FragColor) Location 0
Decorate 53(v4) Flat Decorate 53(v4) Flat
Decorate 53(v4) Location 4 Decorate 53(v4) Location 4
Decorate 104(f) Location 2 Decorate 111(f) Location 2
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -60,10 +60,14 @@ spv.forLoop.frag
55: TypePointer Input 50(int) 55: TypePointer Input 50(int)
76: 50(int) Constant 4 76: 50(int) Constant 4
89: TypeVector 6(float) 3 89: TypeVector 6(float) 3
103: TypePointer Input 6(float) 92: 50(int) Constant 0
104(f): 103(ptr) Variable Input 95: 50(int) Constant 1
106: 50(int) Constant 3 98: 50(int) Constant 2
124: 13(int) Constant 16 110: TypePointer Input 6(float)
111(f): 110(ptr) Variable Input
113: 50(int) Constant 3
122: TypePointer Output 6(float)
136: 13(int) Constant 16
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(color): 8(ptr) Variable Function 9(color): 8(ptr) Variable Function
@ -73,8 +77,8 @@ spv.forLoop.frag
63(i): 14(ptr) Variable Function 63(i): 14(ptr) Variable Function
71(tv4): 8(ptr) Variable Function 71(tv4): 8(ptr) Variable Function
88(r): 8(ptr) Variable Function 88(r): 8(ptr) Variable Function
94(i): 14(ptr) Variable Function 101(i): 14(ptr) Variable Function
117(i): 14(ptr) Variable Function 129(i): 14(ptr) Variable Function
12: 7(fvec4) Load 11(BaseColor) 12: 7(fvec4) Load 11(BaseColor)
Store 9(color) 12 Store 9(color) 12
Store 15(i) 16 Store 15(i) 16
@ -160,58 +164,70 @@ spv.forLoop.frag
Store 36(gl_FragColor) 87 Store 36(gl_FragColor) 87
90: 7(fvec4) Load 11(BaseColor) 90: 7(fvec4) Load 11(BaseColor)
91: 89(fvec3) VectorShuffle 90 90 0 1 2 91: 89(fvec3) VectorShuffle 90 90 0 1 2
92: 7(fvec4) Load 88(r) 93: 38(ptr) AccessChain 88(r) 92
93: 7(fvec4) VectorShuffle 92 91 4 5 6 3 94: 6(float) CompositeExtract 91 0
Store 88(r) 93 Store 93 94
Store 94(i) 16 96: 38(ptr) AccessChain 88(r) 95
Branch 95 97: 6(float) CompositeExtract 91 1
95: Label Store 96 97
LoopMerge 97 98 None 99: 38(ptr) AccessChain 88(r) 98
Branch 99 100: 6(float) CompositeExtract 91 2
99: Label Store 99 100
100: 13(int) Load 94(i) Store 101(i) 16
101: 13(int) Load 24(Count) Branch 102
102: 26(bool) SLessThan 100 101 102: Label
BranchConditional 102 96 97 LoopMerge 104 105 None
96: Label Branch 106
105: 6(float) Load 104(f) 106: Label
107: 38(ptr) AccessChain 88(r) 106 107: 13(int) Load 101(i)
Store 107 105 108: 13(int) Load 24(Count)
Branch 98 109: 26(bool) SLessThan 107 108
98: Label BranchConditional 109 103 104
108: 13(int) Load 94(i) 103: Label
109: 13(int) IAdd 108 33 112: 6(float) Load 111(f)
Store 94(i) 109 114: 38(ptr) AccessChain 88(r) 113
Branch 95 Store 114 112
97: Label Branch 105
110: 7(fvec4) Load 88(r) 105: Label
111: 89(fvec3) VectorShuffle 110 110 0 1 2 115: 13(int) Load 101(i)
112: 7(fvec4) Load 36(gl_FragColor) 116: 13(int) IAdd 115 33
113: 89(fvec3) VectorShuffle 112 112 0 1 2 Store 101(i) 116
114: 89(fvec3) FAdd 113 111 Branch 102
115: 7(fvec4) Load 36(gl_FragColor) 104: Label
116: 7(fvec4) VectorShuffle 115 114 4 5 6 3 117: 7(fvec4) Load 88(r)
Store 36(gl_FragColor) 116 118: 89(fvec3) VectorShuffle 117 117 0 1 2
Store 117(i) 16 119: 7(fvec4) Load 36(gl_FragColor)
Branch 118 120: 89(fvec3) VectorShuffle 119 119 0 1 2
118: Label 121: 89(fvec3) FAdd 120 118
LoopMerge 120 121 None 123: 122(ptr) AccessChain 36(gl_FragColor) 92
Branch 122 124: 6(float) CompositeExtract 121 0
122: Label Store 123 124
123: 13(int) Load 117(i) 125: 122(ptr) AccessChain 36(gl_FragColor) 95
125: 26(bool) SLessThan 123 124 126: 6(float) CompositeExtract 121 1
BranchConditional 125 119 120 Store 125 126
119: Label 127: 122(ptr) AccessChain 36(gl_FragColor) 98
126: 6(float) Load 104(f) 128: 6(float) CompositeExtract 121 2
127: 7(fvec4) Load 36(gl_FragColor) Store 127 128
128: 7(fvec4) VectorTimesScalar 127 126 Store 129(i) 16
Store 36(gl_FragColor) 128 Branch 130
Branch 121 130: Label
121: Label LoopMerge 132 133 None
129: 13(int) Load 117(i) Branch 134
130: 13(int) IAdd 129 48 134: Label
Store 117(i) 130 135: 13(int) Load 129(i)
Branch 118 137: 26(bool) SLessThan 135 136
120: Label BranchConditional 137 131 132
131: Label
138: 6(float) Load 111(f)
139: 7(fvec4) Load 36(gl_FragColor)
140: 7(fvec4) VectorTimesScalar 139 138
Store 36(gl_FragColor) 140
Branch 133
133: Label
141: 13(int) Load 129(i)
142: 13(int) IAdd 141 48
Store 129(i) 142
Branch 130
132: Label
Return Return
FunctionEnd FunctionEnd

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
spv.int16.amd.frag spv.int16.amd.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 560 // Id's are bound by 576
Capability Shader Capability Shader
Capability Float16 Capability Float16
@ -14,7 +14,7 @@ spv.int16.amd.frag
Extension "SPV_KHR_16bit_storage" Extension "SPV_KHR_16bit_storage"
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 519 521 EntryPoint Fragment 4 "main" 535 537
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 450 Source GLSL 450
SourceExtension "GL_AMD_gpu_shader_half_float" SourceExtension "GL_AMD_gpu_shader_half_float"
@ -54,66 +54,66 @@ spv.int16.amd.frag
Name 393 "f16v" Name 393 "f16v"
Name 396 "exp" Name 396 "exp"
Name 397 "ResType" Name 397 "ResType"
Name 418 "packi" Name 420 "packi"
Name 423 "packu" Name 425 "packu"
Name 432 "packi64" Name 436 "packi64"
Name 441 "packu64" Name 445 "packu64"
Name 450 "bv" Name 454 "bv"
Name 515 "Block" Name 531 "Block"
MemberName 515(Block) 0 "i16v" MemberName 531(Block) 0 "i16v"
MemberName 515(Block) 1 "u16" MemberName 531(Block) 1 "u16"
Name 517 "block" Name 533 "block"
Name 519 "iu16v" Name 535 "iu16v"
Name 521 "ii16" Name 537 "ii16"
Name 522 "si64" Name 538 "si64"
Name 523 "su64" Name 539 "su64"
Name 524 "si" Name 540 "si"
Name 525 "su" Name 541 "su"
Name 526 "sb" Name 542 "sb"
Name 527 "si16" Name 543 "si16"
Name 528 "su16" Name 544 "su16"
Name 529 "i16_to_b" Name 545 "i16_to_b"
Name 530 "u16_to_b" Name 546 "u16_to_b"
Name 531 "b_to_i16" Name 547 "b_to_i16"
Name 532 "b_to_u16" Name 548 "b_to_u16"
Name 533 "i16_to_i" Name 549 "i16_to_i"
Name 535 "u16_to_i" Name 551 "u16_to_i"
Name 536 "i_to_i16" Name 552 "i_to_i16"
Name 538 "i_to_u16" Name 554 "i_to_u16"
Name 540 "i16_to_u" Name 556 "i16_to_u"
Name 541 "u16_to_u" Name 557 "u16_to_u"
Name 543 "u_to_i16" Name 559 "u_to_i16"
Name 544 "u_to_u16" Name 560 "u_to_u16"
Name 545 "i16_to_i64" Name 561 "i16_to_i64"
Name 548 "u16_to_i64" Name 564 "u16_to_i64"
Name 549 "i64_to_i16" Name 565 "i64_to_i16"
Name 551 "i64_to_u16" Name 567 "i64_to_u16"
Name 553 "i16_to_u64" Name 569 "i16_to_u64"
Name 554 "u16_to_u64" Name 570 "u16_to_u64"
Name 556 "u64_to_i16" Name 572 "u64_to_i16"
Name 557 "u64_to_u16" Name 573 "u64_to_u16"
Name 558 "i16_to_u16" Name 574 "i16_to_u16"
Name 559 "u16_to_i16" Name 575 "u16_to_i16"
MemberDecorate 25(Uniforms) 0 Offset 0 MemberDecorate 25(Uniforms) 0 Offset 0
Decorate 25(Uniforms) Block Decorate 25(Uniforms) Block
Decorate 27 DescriptorSet 0 Decorate 27 DescriptorSet 0
Decorate 27 Binding 0 Decorate 27 Binding 0
MemberDecorate 515(Block) 0 Offset 0 MemberDecorate 531(Block) 0 Offset 0
MemberDecorate 515(Block) 1 Offset 6 MemberDecorate 531(Block) 1 Offset 6
Decorate 515(Block) Block Decorate 531(Block) Block
Decorate 517(block) DescriptorSet 0 Decorate 533(block) DescriptorSet 0
Decorate 517(block) Binding 1 Decorate 533(block) Binding 1
Decorate 519(iu16v) Flat Decorate 535(iu16v) Flat
Decorate 519(iu16v) Location 0 Decorate 535(iu16v) Location 0
Decorate 521(ii16) Flat Decorate 537(ii16) Flat
Decorate 521(ii16) Location 1 Decorate 537(ii16) Location 1
Decorate 522(si64) SpecId 100 Decorate 538(si64) SpecId 100
Decorate 523(su64) SpecId 101 Decorate 539(su64) SpecId 101
Decorate 524(si) SpecId 102 Decorate 540(si) SpecId 102
Decorate 525(su) SpecId 103 Decorate 541(su) SpecId 103
Decorate 526(sb) SpecId 104 Decorate 542(sb) SpecId 104
Decorate 527(si16) SpecId 105 Decorate 543(si16) SpecId 105
Decorate 528(su16) SpecId 106 Decorate 544(su16) SpecId 106
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
14: TypeInt 16 0 14: TypeInt 16 0
@ -194,62 +194,62 @@ spv.int16.amd.frag
395: TypePointer Function 54(i16vec3) 395: TypePointer Function 54(i16vec3)
397(ResType): TypeStruct 391(f16vec3) 54(i16vec3) 397(ResType): TypeStruct 391(f16vec3) 54(i16vec3)
407: TypePointer Function 261(float16_t) 407: TypePointer Function 261(float16_t)
431: TypePointer Function 273(int64_t) 435: TypePointer Function 273(int64_t)
434: TypeVector 17(int16_t) 4 438: TypeVector 17(int16_t) 4
440: TypePointer Function 285(int64_t) 444: TypePointer Function 285(int64_t)
443: TypeVector 14(int16_t) 4 447: TypeVector 14(int16_t) 4
449: TypePointer Function 388(bvec3) 453: TypePointer Function 388(bvec3)
515(Block): TypeStruct 54(i16vec3) 14(int16_t) 531(Block): TypeStruct 54(i16vec3) 14(int16_t)
516: TypePointer Uniform 515(Block) 532: TypePointer Uniform 531(Block)
517(block): 516(ptr) Variable Uniform 533(block): 532(ptr) Variable Uniform
518: TypePointer Input 49(i16vec3) 534: TypePointer Input 49(i16vec3)
519(iu16v): 518(ptr) Variable Input 535(iu16v): 534(ptr) Variable Input
520: TypePointer Input 17(int16_t) 536: TypePointer Input 17(int16_t)
521(ii16): 520(ptr) Variable Input 537(ii16): 536(ptr) Variable Input
522(si64):273(int64_t) SpecConstant 4294967286 4294967295 538(si64):273(int64_t) SpecConstant 4294967286 4294967295
523(su64):285(int64_t) SpecConstant 20 0 539(su64):285(int64_t) SpecConstant 20 0
524(si): 28(int) SpecConstant 4294967291 540(si): 28(int) SpecConstant 4294967291
525(su): 18(int) SpecConstant 4 541(su): 18(int) SpecConstant 4
526(sb): 125(bool) SpecConstantTrue 542(sb): 125(bool) SpecConstantTrue
527(si16): 17(int16_t) SpecConstant 4294967291 543(si16): 17(int16_t) SpecConstant 4294967291
528(su16): 14(int16_t) SpecConstant 4 544(su16): 14(int16_t) SpecConstant 4
529(i16_to_b): 125(bool) SpecConstantOp 171 527(si16) 202 545(i16_to_b): 125(bool) SpecConstantOp 171 543(si16) 202
530(u16_to_b): 125(bool) SpecConstantOp 171 528(su16) 202 546(u16_to_b): 125(bool) SpecConstantOp 171 544(su16) 202
531(b_to_i16): 17(int16_t) SpecConstantOp 169 526(sb) 53 194 547(b_to_i16): 17(int16_t) SpecConstantOp 169 542(sb) 53 194
532(b_to_u16): 14(int16_t) SpecConstantOp 169 526(sb) 203 202 548(b_to_u16): 14(int16_t) SpecConstantOp 169 542(sb) 203 202
533(i16_to_i): 28(int) SpecConstantOp 114 527(si16) 549(i16_to_i): 28(int) SpecConstantOp 114 543(si16)
534: 18(int) SpecConstantOp 113 528(su16) 550: 18(int) SpecConstantOp 113 544(su16)
535(u16_to_i): 28(int) SpecConstantOp 128 534 128 551(u16_to_i): 28(int) SpecConstantOp 128 550 128
536(i_to_i16): 17(int16_t) SpecConstantOp 114 524(si) 552(i_to_i16): 17(int16_t) SpecConstantOp 114 540(si)
537: 17(int16_t) SpecConstantOp 114 524(si) 553: 17(int16_t) SpecConstantOp 114 540(si)
538(i_to_u16): 14(int16_t) SpecConstantOp 128 537 202 554(i_to_u16): 14(int16_t) SpecConstantOp 128 553 202
539: 28(int) SpecConstantOp 114 527(si16) 555: 28(int) SpecConstantOp 114 543(si16)
540(i16_to_u): 18(int) SpecConstantOp 128 539 128 556(i16_to_u): 18(int) SpecConstantOp 128 555 128
541(u16_to_u): 18(int) SpecConstantOp 113 528(su16) 557(u16_to_u): 18(int) SpecConstantOp 113 544(su16)
542: 14(int16_t) SpecConstantOp 113 525(su) 558: 14(int16_t) SpecConstantOp 113 541(su)
543(u_to_i16): 17(int16_t) SpecConstantOp 128 542 202 559(u_to_i16): 17(int16_t) SpecConstantOp 128 558 202
544(u_to_u16): 14(int16_t) SpecConstantOp 113 525(su) 560(u_to_u16): 14(int16_t) SpecConstantOp 113 541(su)
545(i16_to_i64):273(int64_t) SpecConstantOp 114 527(si16) 561(i16_to_i64):273(int64_t) SpecConstantOp 114 543(si16)
546:285(int64_t) SpecConstantOp 113 528(su16) 562:285(int64_t) SpecConstantOp 113 544(su16)
547:285(int64_t) Constant 0 0 563:285(int64_t) Constant 0 0
548(u16_to_i64):273(int64_t) SpecConstantOp 128 546 547 564(u16_to_i64):273(int64_t) SpecConstantOp 128 562 563
549(i64_to_i16): 17(int16_t) SpecConstantOp 114 522(si64) 565(i64_to_i16): 17(int16_t) SpecConstantOp 114 538(si64)
550: 17(int16_t) SpecConstantOp 114 522(si64) 566: 17(int16_t) SpecConstantOp 114 538(si64)
551(i64_to_u16): 14(int16_t) SpecConstantOp 128 550 202 567(i64_to_u16): 14(int16_t) SpecConstantOp 128 566 202
552:273(int64_t) SpecConstantOp 114 527(si16) 568:273(int64_t) SpecConstantOp 114 543(si16)
553(i16_to_u64):285(int64_t) SpecConstantOp 128 552 547 569(i16_to_u64):285(int64_t) SpecConstantOp 128 568 563
554(u16_to_u64):285(int64_t) SpecConstantOp 113 528(su16) 570(u16_to_u64):285(int64_t) SpecConstantOp 113 544(su16)
555: 14(int16_t) SpecConstantOp 113 523(su64) 571: 14(int16_t) SpecConstantOp 113 539(su64)
556(u64_to_i16): 17(int16_t) SpecConstantOp 128 555 202 572(u64_to_i16): 17(int16_t) SpecConstantOp 128 571 202
557(u64_to_u16): 14(int16_t) SpecConstantOp 113 523(su64) 573(u64_to_u16): 14(int16_t) SpecConstantOp 113 539(su64)
558(i16_to_u16): 14(int16_t) SpecConstantOp 128 527(si16) 202 574(i16_to_u16): 14(int16_t) SpecConstantOp 128 543(si16) 202
559(u16_to_i16): 17(int16_t) SpecConstantOp 128 528(su16) 202 575(u16_to_i16): 17(int16_t) SpecConstantOp 128 544(su16) 202
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
511: 2 FunctionCall 6(literal() 527: 2 FunctionCall 6(literal()
512: 2 FunctionCall 8(operators() 528: 2 FunctionCall 8(operators()
513: 2 FunctionCall 10(typeCast() 529: 2 FunctionCall 10(typeCast()
514: 2 FunctionCall 12(builtinFuncs() 530: 2 FunctionCall 12(builtinFuncs()
Return Return
FunctionEnd FunctionEnd
6(literal(): 2 Function None 3 6(literal(): 2 Function None 3
@ -568,11 +568,11 @@ spv.int16.amd.frag
321(u16): 15(ptr) Variable Function 321(u16): 15(ptr) Variable Function
393(f16v): 392(ptr) Variable Function 393(f16v): 392(ptr) Variable Function
396(exp): 395(ptr) Variable Function 396(exp): 395(ptr) Variable Function
418(packi): 158(ptr) Variable Function 420(packi): 158(ptr) Variable Function
423(packu): 147(ptr) Variable Function 425(packu): 147(ptr) Variable Function
432(packi64): 431(ptr) Variable Function 436(packi64): 435(ptr) Variable Function
441(packu64): 440(ptr) Variable Function 445(packu64): 444(ptr) Variable Function
450(bv): 449(ptr) Variable Function 454(bv): 453(ptr) Variable Function
306:187(i16vec2) Load 305(i16v) 306:187(i16vec2) Load 305(i16v)
307:187(i16vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 306 307:187(i16vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 306
Store 305(i16v) 307 Store 305(i16v) 307
@ -686,114 +686,138 @@ spv.int16.amd.frag
Store 411 410 Store 411 410
412:187(i16vec2) Load 305(i16v) 412:187(i16vec2) Load 305(i16v)
413:262(f16vec2) Bitcast 412 413:262(f16vec2) Bitcast 412
414:391(f16vec3) Load 393(f16v) 414: 407(ptr) AccessChain 393(f16v) 128
415:391(f16vec3) VectorShuffle 414 413 3 4 2 415:261(float16_t) CompositeExtract 413 0
Store 393(f16v) 415 Store 414 415
416: 49(i16vec3) Load 319(u16v) 416: 407(ptr) AccessChain 393(f16v) 111
417:391(f16vec3) Bitcast 416 417:261(float16_t) CompositeExtract 413 1
Store 393(f16v) 417 Store 416 417
419:187(i16vec2) Load 305(i16v) 418: 49(i16vec3) Load 319(u16v)
420: 28(int) Bitcast 419 419:391(f16vec3) Bitcast 418
Store 418(packi) 420 Store 393(f16v) 419
421: 28(int) Load 418(packi) 421:187(i16vec2) Load 305(i16v)
422:187(i16vec2) Bitcast 421 422: 28(int) Bitcast 421
Store 305(i16v) 422 Store 420(packi) 422
424: 49(i16vec3) Load 319(u16v) 423: 28(int) Load 420(packi)
425:198(i16vec2) VectorShuffle 424 424 0 1 424:187(i16vec2) Bitcast 423
426: 18(int) Bitcast 425 Store 305(i16v) 424
Store 423(packu) 426 426: 49(i16vec3) Load 319(u16v)
427: 18(int) Load 423(packu) 427:198(i16vec2) VectorShuffle 426 426 0 1
428:198(i16vec2) Bitcast 427 428: 18(int) Bitcast 427
429: 49(i16vec3) Load 319(u16v) Store 425(packu) 428
430: 49(i16vec3) VectorShuffle 429 428 3 4 2 429: 18(int) Load 425(packu)
Store 319(u16v) 430 430:198(i16vec2) Bitcast 429
433: 17(int16_t) Load 311(i16) 431: 15(ptr) AccessChain 319(u16v) 128
435:434(i16vec4) CompositeConstruct 433 433 433 433 432: 14(int16_t) CompositeExtract 430 0
436:273(int64_t) Bitcast 435 Store 431 432
Store 432(packi64) 436 433: 15(ptr) AccessChain 319(u16v) 111
437:273(int64_t) Load 432(packi64) 434: 14(int16_t) CompositeExtract 430 1
438:434(i16vec4) Bitcast 437 Store 433 434
439:187(i16vec2) VectorShuffle 438 438 0 1 437: 17(int16_t) Load 311(i16)
Store 305(i16v) 439 439:438(i16vec4) CompositeConstruct 437 437 437 437
442: 14(int16_t) Load 321(u16) 440:273(int64_t) Bitcast 439
444:443(i16vec4) CompositeConstruct 442 442 442 442 Store 436(packi64) 440
445:285(int64_t) Bitcast 444 441:273(int64_t) Load 436(packi64)
Store 441(packu64) 445 442:438(i16vec4) Bitcast 441
446:285(int64_t) Load 441(packu64) 443:187(i16vec2) VectorShuffle 442 442 0 1
447:443(i16vec4) Bitcast 446 Store 305(i16v) 443
448: 49(i16vec3) VectorShuffle 447 447 0 1 2 446: 14(int16_t) Load 321(u16)
Store 319(u16v) 448 448:447(i16vec4) CompositeConstruct 446 446 446 446
451: 49(i16vec3) Load 319(u16v) 449:285(int64_t) Bitcast 448
452: 14(int16_t) Load 321(u16) Store 445(packu64) 449
453: 49(i16vec3) CompositeConstruct 452 452 452 450:285(int64_t) Load 445(packu64)
454: 388(bvec3) ULessThan 451 453 451:447(i16vec4) Bitcast 450
Store 450(bv) 454 452: 49(i16vec3) VectorShuffle 451 451 0 1 2
455:187(i16vec2) Load 305(i16v) Store 319(u16v) 452
456: 17(int16_t) Load 311(i16) 455: 49(i16vec3) Load 319(u16v)
457:187(i16vec2) CompositeConstruct 456 456 456: 14(int16_t) Load 321(u16)
458: 190(bvec2) SLessThan 455 457 457: 49(i16vec3) CompositeConstruct 456 456 456
459: 388(bvec3) Load 450(bv) 458: 388(bvec3) ULessThan 455 457
460: 388(bvec3) VectorShuffle 459 458 3 4 2 Store 454(bv) 458
Store 450(bv) 460 459:187(i16vec2) Load 305(i16v)
461: 49(i16vec3) Load 319(u16v) 460: 17(int16_t) Load 311(i16)
462: 14(int16_t) Load 321(u16) 461:187(i16vec2) CompositeConstruct 460 460
463: 49(i16vec3) CompositeConstruct 462 462 462 462: 190(bvec2) SLessThan 459 461
464: 388(bvec3) ULessThanEqual 461 463 463: 126(ptr) AccessChain 454(bv) 128
Store 450(bv) 464 464: 125(bool) CompositeExtract 462 0
465:187(i16vec2) Load 305(i16v) Store 463 464
466: 17(int16_t) Load 311(i16) 465: 126(ptr) AccessChain 454(bv) 111
467:187(i16vec2) CompositeConstruct 466 466 466: 125(bool) CompositeExtract 462 1
468: 190(bvec2) SLessThanEqual 465 467 Store 465 466
469: 388(bvec3) Load 450(bv) 467: 49(i16vec3) Load 319(u16v)
470: 388(bvec3) VectorShuffle 469 468 3 4 2 468: 14(int16_t) Load 321(u16)
Store 450(bv) 470 469: 49(i16vec3) CompositeConstruct 468 468 468
471: 49(i16vec3) Load 319(u16v) 470: 388(bvec3) ULessThanEqual 467 469
472: 14(int16_t) Load 321(u16) Store 454(bv) 470
473: 49(i16vec3) CompositeConstruct 472 472 472 471:187(i16vec2) Load 305(i16v)
474: 388(bvec3) UGreaterThan 471 473 472: 17(int16_t) Load 311(i16)
Store 450(bv) 474 473:187(i16vec2) CompositeConstruct 472 472
475:187(i16vec2) Load 305(i16v) 474: 190(bvec2) SLessThanEqual 471 473
476: 17(int16_t) Load 311(i16) 475: 126(ptr) AccessChain 454(bv) 128
477:187(i16vec2) CompositeConstruct 476 476 476: 125(bool) CompositeExtract 474 0
478: 190(bvec2) SGreaterThan 475 477 Store 475 476
479: 388(bvec3) Load 450(bv) 477: 126(ptr) AccessChain 454(bv) 111
480: 388(bvec3) VectorShuffle 479 478 3 4 2 478: 125(bool) CompositeExtract 474 1
Store 450(bv) 480 Store 477 478
481: 49(i16vec3) Load 319(u16v) 479: 49(i16vec3) Load 319(u16v)
482: 14(int16_t) Load 321(u16) 480: 14(int16_t) Load 321(u16)
483: 49(i16vec3) CompositeConstruct 482 482 482 481: 49(i16vec3) CompositeConstruct 480 480 480
484: 388(bvec3) UGreaterThanEqual 481 483 482: 388(bvec3) UGreaterThan 479 481
Store 450(bv) 484 Store 454(bv) 482
485:187(i16vec2) Load 305(i16v) 483:187(i16vec2) Load 305(i16v)
486: 17(int16_t) Load 311(i16) 484: 17(int16_t) Load 311(i16)
487:187(i16vec2) CompositeConstruct 486 486 485:187(i16vec2) CompositeConstruct 484 484
488: 190(bvec2) SGreaterThanEqual 485 487 486: 190(bvec2) SGreaterThan 483 485
489: 388(bvec3) Load 450(bv) 487: 126(ptr) AccessChain 454(bv) 128
490: 388(bvec3) VectorShuffle 489 488 3 4 2 488: 125(bool) CompositeExtract 486 0
Store 450(bv) 490 Store 487 488
489: 126(ptr) AccessChain 454(bv) 111
490: 125(bool) CompositeExtract 486 1
Store 489 490
491: 49(i16vec3) Load 319(u16v) 491: 49(i16vec3) Load 319(u16v)
492: 14(int16_t) Load 321(u16) 492: 14(int16_t) Load 321(u16)
493: 49(i16vec3) CompositeConstruct 492 492 492 493: 49(i16vec3) CompositeConstruct 492 492 492
494: 388(bvec3) IEqual 491 493 494: 388(bvec3) UGreaterThanEqual 491 493
Store 450(bv) 494 Store 454(bv) 494
495:187(i16vec2) Load 305(i16v) 495:187(i16vec2) Load 305(i16v)
496: 17(int16_t) Load 311(i16) 496: 17(int16_t) Load 311(i16)
497:187(i16vec2) CompositeConstruct 496 496 497:187(i16vec2) CompositeConstruct 496 496
498: 190(bvec2) IEqual 495 497 498: 190(bvec2) SGreaterThanEqual 495 497
499: 388(bvec3) Load 450(bv) 499: 126(ptr) AccessChain 454(bv) 128
500: 388(bvec3) VectorShuffle 499 498 3 4 2 500: 125(bool) CompositeExtract 498 0
Store 450(bv) 500 Store 499 500
501: 49(i16vec3) Load 319(u16v) 501: 126(ptr) AccessChain 454(bv) 111
502: 14(int16_t) Load 321(u16) 502: 125(bool) CompositeExtract 498 1
503: 49(i16vec3) CompositeConstruct 502 502 502 Store 501 502
504: 388(bvec3) INotEqual 501 503 503: 49(i16vec3) Load 319(u16v)
Store 450(bv) 504 504: 14(int16_t) Load 321(u16)
505:187(i16vec2) Load 305(i16v) 505: 49(i16vec3) CompositeConstruct 504 504 504
506: 17(int16_t) Load 311(i16) 506: 388(bvec3) IEqual 503 505
507:187(i16vec2) CompositeConstruct 506 506 Store 454(bv) 506
508: 190(bvec2) INotEqual 505 507 507:187(i16vec2) Load 305(i16v)
509: 388(bvec3) Load 450(bv) 508: 17(int16_t) Load 311(i16)
510: 388(bvec3) VectorShuffle 509 508 3 4 2 509:187(i16vec2) CompositeConstruct 508 508
Store 450(bv) 510 510: 190(bvec2) IEqual 507 509
511: 126(ptr) AccessChain 454(bv) 128
512: 125(bool) CompositeExtract 510 0
Store 511 512
513: 126(ptr) AccessChain 454(bv) 111
514: 125(bool) CompositeExtract 510 1
Store 513 514
515: 49(i16vec3) Load 319(u16v)
516: 14(int16_t) Load 321(u16)
517: 49(i16vec3) CompositeConstruct 516 516 516
518: 388(bvec3) INotEqual 515 517
Store 454(bv) 518
519:187(i16vec2) Load 305(i16v)
520: 17(int16_t) Load 311(i16)
521:187(i16vec2) CompositeConstruct 520 520
522: 190(bvec2) INotEqual 519 521
523: 126(ptr) AccessChain 454(bv) 128
524: 125(bool) CompositeExtract 522 0
Store 523 524
525: 126(ptr) AccessChain 454(bv) 111
526: 125(bool) CompositeExtract 522 1
Store 525 526
Return Return
FunctionEnd FunctionEnd

View File

@ -1,7 +1,7 @@
spv.int16.frag spv.int16.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 523 // Id's are bound by 535
Capability Shader Capability Shader
Capability Float16 Capability Float16
@ -66,35 +66,35 @@ spv.int16.frag
Name 442 "u64" Name 442 "u64"
Name 445 "u16v4" Name 445 "u16v4"
Name 457 "bv" Name 457 "bv"
Name 518 "Block" Name 530 "Block"
MemberName 518(Block) 0 "i16" MemberName 530(Block) 0 "i16"
MemberName 518(Block) 1 "i16v2" MemberName 530(Block) 1 "i16v2"
MemberName 518(Block) 2 "i16v3" MemberName 530(Block) 2 "i16v3"
MemberName 518(Block) 3 "i16v4" MemberName 530(Block) 3 "i16v4"
MemberName 518(Block) 4 "u16" MemberName 530(Block) 4 "u16"
MemberName 518(Block) 5 "u16v2" MemberName 530(Block) 5 "u16v2"
MemberName 518(Block) 6 "u16v3" MemberName 530(Block) 6 "u16v3"
MemberName 518(Block) 7 "u16v4" MemberName 530(Block) 7 "u16v4"
Name 520 "block" Name 532 "block"
Name 521 "si16" Name 533 "si16"
Name 522 "su16" Name 534 "su16"
MemberDecorate 24(Uniforms) 0 Offset 0 MemberDecorate 24(Uniforms) 0 Offset 0
Decorate 24(Uniforms) Block Decorate 24(Uniforms) Block
Decorate 26 DescriptorSet 0 Decorate 26 DescriptorSet 0
Decorate 26 Binding 0 Decorate 26 Binding 0
MemberDecorate 518(Block) 0 Offset 0 MemberDecorate 530(Block) 0 Offset 0
MemberDecorate 518(Block) 1 Offset 4 MemberDecorate 530(Block) 1 Offset 4
MemberDecorate 518(Block) 2 Offset 8 MemberDecorate 530(Block) 2 Offset 8
MemberDecorate 518(Block) 3 Offset 16 MemberDecorate 530(Block) 3 Offset 16
MemberDecorate 518(Block) 4 Offset 24 MemberDecorate 530(Block) 4 Offset 24
MemberDecorate 518(Block) 5 Offset 28 MemberDecorate 530(Block) 5 Offset 28
MemberDecorate 518(Block) 6 Offset 32 MemberDecorate 530(Block) 6 Offset 32
MemberDecorate 518(Block) 7 Offset 40 MemberDecorate 530(Block) 7 Offset 40
Decorate 518(Block) Block Decorate 530(Block) Block
Decorate 520(block) DescriptorSet 0 Decorate 532(block) DescriptorSet 0
Decorate 520(block) Binding 1 Decorate 532(block) Binding 1
Decorate 521(si16) SpecId 100 Decorate 533(si16) SpecId 100
Decorate 522(su16) SpecId 101 Decorate 534(su16) SpecId 101
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
14: TypeInt 16 1 14: TypeInt 16 1
@ -186,11 +186,11 @@ spv.int16.frag
443: TypeVector 36(int16_t) 4 443: TypeVector 36(int16_t) 4
444: TypePointer Function 443(i16vec4) 444: TypePointer Function 443(i16vec4)
456: TypePointer Function 425(bvec3) 456: TypePointer Function 425(bvec3)
518(Block): TypeStruct 14(int16_t) 52(i16vec2) 197(i16vec3) 432(i16vec4) 36(int16_t) 57(i16vec2) 193(i16vec3) 443(i16vec4) 530(Block): TypeStruct 14(int16_t) 52(i16vec2) 197(i16vec3) 432(i16vec4) 36(int16_t) 57(i16vec2) 193(i16vec3) 443(i16vec4)
519: TypePointer Uniform 518(Block) 531: TypePointer Uniform 530(Block)
520(block): 519(ptr) Variable Uniform 532(block): 531(ptr) Variable Uniform
521(si16): 14(int16_t) SpecConstant 4294967286 533(si16): 14(int16_t) SpecConstant 4294967286
522(su16): 36(int16_t) SpecConstant 20 534(su16): 36(int16_t) SpecConstant 20
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
Return Return
@ -675,68 +675,86 @@ spv.int16.frag
463: 14(int16_t) Load 346(i16) 463: 14(int16_t) Load 346(i16)
464: 52(i16vec2) CompositeConstruct 463 463 464: 52(i16vec2) CompositeConstruct 463 463
465: 174(bvec2) SLessThan 462 464 465: 174(bvec2) SLessThan 462 464
466: 425(bvec3) Load 457(bv) 466: 280(ptr) AccessChain 457(bv) 282
467: 425(bvec3) VectorShuffle 466 465 3 4 2 467: 173(bool) CompositeExtract 465 0
Store 457(bv) 467 Store 466 467
468:193(i16vec3) Load 356(u16v) 468: 280(ptr) AccessChain 457(bv) 264
469: 36(int16_t) Load 358(u16) 469: 173(bool) CompositeExtract 465 1
470:193(i16vec3) CompositeConstruct 469 469 469 Store 468 469
471: 425(bvec3) ULessThanEqual 468 470 470:193(i16vec3) Load 356(u16v)
Store 457(bv) 471 471: 36(int16_t) Load 358(u16)
472: 52(i16vec2) Load 343(i16v) 472:193(i16vec3) CompositeConstruct 471 471 471
473: 14(int16_t) Load 346(i16) 473: 425(bvec3) ULessThanEqual 470 472
474: 52(i16vec2) CompositeConstruct 473 473 Store 457(bv) 473
475: 174(bvec2) SLessThanEqual 472 474 474: 52(i16vec2) Load 343(i16v)
476: 425(bvec3) Load 457(bv) 475: 14(int16_t) Load 346(i16)
477: 425(bvec3) VectorShuffle 476 475 3 4 2 476: 52(i16vec2) CompositeConstruct 475 475
Store 457(bv) 477 477: 174(bvec2) SLessThanEqual 474 476
478:193(i16vec3) Load 356(u16v) 478: 280(ptr) AccessChain 457(bv) 282
479: 36(int16_t) Load 358(u16) 479: 173(bool) CompositeExtract 477 0
480:193(i16vec3) CompositeConstruct 479 479 479 Store 478 479
481: 425(bvec3) UGreaterThan 478 480 480: 280(ptr) AccessChain 457(bv) 264
Store 457(bv) 481 481: 173(bool) CompositeExtract 477 1
482: 52(i16vec2) Load 343(i16v) Store 480 481
483: 14(int16_t) Load 346(i16) 482:193(i16vec3) Load 356(u16v)
484: 52(i16vec2) CompositeConstruct 483 483 483: 36(int16_t) Load 358(u16)
485: 174(bvec2) SGreaterThan 482 484 484:193(i16vec3) CompositeConstruct 483 483 483
486: 425(bvec3) Load 457(bv) 485: 425(bvec3) UGreaterThan 482 484
487: 425(bvec3) VectorShuffle 486 485 3 4 2 Store 457(bv) 485
Store 457(bv) 487 486: 52(i16vec2) Load 343(i16v)
488:193(i16vec3) Load 356(u16v) 487: 14(int16_t) Load 346(i16)
489: 36(int16_t) Load 358(u16) 488: 52(i16vec2) CompositeConstruct 487 487
490:193(i16vec3) CompositeConstruct 489 489 489 489: 174(bvec2) SGreaterThan 486 488
491: 425(bvec3) UGreaterThanEqual 488 490 490: 280(ptr) AccessChain 457(bv) 282
Store 457(bv) 491 491: 173(bool) CompositeExtract 489 0
492: 52(i16vec2) Load 343(i16v) Store 490 491
493: 14(int16_t) Load 346(i16) 492: 280(ptr) AccessChain 457(bv) 264
494: 52(i16vec2) CompositeConstruct 493 493 493: 173(bool) CompositeExtract 489 1
495: 174(bvec2) SGreaterThanEqual 492 494 Store 492 493
496: 425(bvec3) Load 457(bv) 494:193(i16vec3) Load 356(u16v)
497: 425(bvec3) VectorShuffle 496 495 3 4 2 495: 36(int16_t) Load 358(u16)
496:193(i16vec3) CompositeConstruct 495 495 495
497: 425(bvec3) UGreaterThanEqual 494 496
Store 457(bv) 497 Store 457(bv) 497
498:193(i16vec3) Load 356(u16v) 498: 52(i16vec2) Load 343(i16v)
499: 36(int16_t) Load 358(u16) 499: 14(int16_t) Load 346(i16)
500:193(i16vec3) CompositeConstruct 499 499 499 500: 52(i16vec2) CompositeConstruct 499 499
501: 425(bvec3) IEqual 498 500 501: 174(bvec2) SGreaterThanEqual 498 500
Store 457(bv) 501 502: 280(ptr) AccessChain 457(bv) 282
502: 52(i16vec2) Load 343(i16v) 503: 173(bool) CompositeExtract 501 0
503: 14(int16_t) Load 346(i16) Store 502 503
504: 52(i16vec2) CompositeConstruct 503 503 504: 280(ptr) AccessChain 457(bv) 264
505: 174(bvec2) IEqual 502 504 505: 173(bool) CompositeExtract 501 1
506: 425(bvec3) Load 457(bv) Store 504 505
507: 425(bvec3) VectorShuffle 506 505 3 4 2 506:193(i16vec3) Load 356(u16v)
Store 457(bv) 507 507: 36(int16_t) Load 358(u16)
508:193(i16vec3) Load 356(u16v) 508:193(i16vec3) CompositeConstruct 507 507 507
509: 36(int16_t) Load 358(u16) 509: 425(bvec3) IEqual 506 508
510:193(i16vec3) CompositeConstruct 509 509 509 Store 457(bv) 509
511: 425(bvec3) INotEqual 508 510 510: 52(i16vec2) Load 343(i16v)
Store 457(bv) 511 511: 14(int16_t) Load 346(i16)
512: 52(i16vec2) Load 343(i16v) 512: 52(i16vec2) CompositeConstruct 511 511
513: 14(int16_t) Load 346(i16) 513: 174(bvec2) IEqual 510 512
514: 52(i16vec2) CompositeConstruct 513 513 514: 280(ptr) AccessChain 457(bv) 282
515: 174(bvec2) INotEqual 512 514 515: 173(bool) CompositeExtract 513 0
516: 425(bvec3) Load 457(bv) Store 514 515
517: 425(bvec3) VectorShuffle 516 515 3 4 2 516: 280(ptr) AccessChain 457(bv) 264
Store 457(bv) 517 517: 173(bool) CompositeExtract 513 1
Store 516 517
518:193(i16vec3) Load 356(u16v)
519: 36(int16_t) Load 358(u16)
520:193(i16vec3) CompositeConstruct 519 519 519
521: 425(bvec3) INotEqual 518 520
Store 457(bv) 521
522: 52(i16vec2) Load 343(i16v)
523: 14(int16_t) Load 346(i16)
524: 52(i16vec2) CompositeConstruct 523 523
525: 174(bvec2) INotEqual 522 524
526: 280(ptr) AccessChain 457(bv) 282
527: 173(bool) CompositeExtract 525 0
Store 526 527
528: 280(ptr) AccessChain 457(bv) 264
529: 173(bool) CompositeExtract 525 1
Store 528 529
Return Return
FunctionEnd FunctionEnd

View File

@ -1,7 +1,7 @@
spv.int32.frag spv.int32.frag
// Module Version 10300 // Module Version 10300
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 493 // Id's are bound by 505
Capability Shader Capability Shader
Capability Float16 Capability Float16
@ -65,41 +65,41 @@ spv.int32.frag
Name 416 "u32v2" Name 416 "u32v2"
Name 418 "u64" Name 418 "u64"
Name 422 "bv" Name 422 "bv"
Name 485 "Block" Name 497 "Block"
MemberName 485(Block) 0 "i32" MemberName 497(Block) 0 "i32"
MemberName 485(Block) 1 "i32v2" MemberName 497(Block) 1 "i32v2"
MemberName 485(Block) 2 "i32v3" MemberName 497(Block) 2 "i32v3"
MemberName 485(Block) 3 "i32v4" MemberName 497(Block) 3 "i32v4"
MemberName 485(Block) 4 "u32" MemberName 497(Block) 4 "u32"
MemberName 485(Block) 5 "u32v2" MemberName 497(Block) 5 "u32v2"
MemberName 485(Block) 6 "u32v3" MemberName 497(Block) 6 "u32v3"
MemberName 485(Block) 7 "u32v4" MemberName 497(Block) 7 "u32v4"
Name 487 "block" Name 499 "block"
Name 488 "si32" Name 500 "si32"
Name 489 "su32" Name 501 "su32"
Name 490 "si" Name 502 "si"
Name 491 "su" Name 503 "su"
Name 492 "sb" Name 504 "sb"
MemberDecorate 27(Uniforms) 0 Offset 0 MemberDecorate 27(Uniforms) 0 Offset 0
Decorate 27(Uniforms) Block Decorate 27(Uniforms) Block
Decorate 29 DescriptorSet 0 Decorate 29 DescriptorSet 0
Decorate 29 Binding 0 Decorate 29 Binding 0
MemberDecorate 485(Block) 0 Offset 0 MemberDecorate 497(Block) 0 Offset 0
MemberDecorate 485(Block) 1 Offset 8 MemberDecorate 497(Block) 1 Offset 8
MemberDecorate 485(Block) 2 Offset 16 MemberDecorate 497(Block) 2 Offset 16
MemberDecorate 485(Block) 3 Offset 32 MemberDecorate 497(Block) 3 Offset 32
MemberDecorate 485(Block) 4 Offset 48 MemberDecorate 497(Block) 4 Offset 48
MemberDecorate 485(Block) 5 Offset 56 MemberDecorate 497(Block) 5 Offset 56
MemberDecorate 485(Block) 6 Offset 64 MemberDecorate 497(Block) 6 Offset 64
MemberDecorate 485(Block) 7 Offset 80 MemberDecorate 497(Block) 7 Offset 80
Decorate 485(Block) Block Decorate 497(Block) Block
Decorate 487(block) DescriptorSet 0 Decorate 499(block) DescriptorSet 0
Decorate 487(block) Binding 1 Decorate 499(block) Binding 1
Decorate 488(si32) SpecId 100 Decorate 500(si32) SpecId 100
Decorate 489(su32) SpecId 101 Decorate 501(su32) SpecId 101
Decorate 490(si) SpecId 102 Decorate 502(si) SpecId 102
Decorate 491(su) SpecId 103 Decorate 503(su) SpecId 103
Decorate 492(sb) SpecId 104 Decorate 504(sb) SpecId 104
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
14: TypeInt 32 0 14: TypeInt 32 0
@ -185,16 +185,16 @@ spv.int32.frag
406: TypePointer Function 405(i8vec4) 406: TypePointer Function 405(i8vec4)
417: TypePointer Function 63(int64_t) 417: TypePointer Function 63(int64_t)
421: TypePointer Function 394(bvec3) 421: TypePointer Function 394(bvec3)
483: TypeVector 18(int) 4 495: TypeVector 18(int) 4
484: TypeVector 14(int) 4 496: TypeVector 14(int) 4
485(Block): TypeStruct 18(int) 52(ivec2) 188(ivec3) 483(ivec4) 14(int) 49(ivec2) 184(ivec3) 484(ivec4) 497(Block): TypeStruct 18(int) 52(ivec2) 188(ivec3) 495(ivec4) 14(int) 49(ivec2) 184(ivec3) 496(ivec4)
486: TypePointer Uniform 485(Block) 498: TypePointer Uniform 497(Block)
487(block): 486(ptr) Variable Uniform 499(block): 498(ptr) Variable Uniform
488(si32): 18(int) SpecConstant 4294967286 500(si32): 18(int) SpecConstant 4294967286
489(su32): 14(int) SpecConstant 20 501(su32): 14(int) SpecConstant 20
490(si): 18(int) SpecConstant 4294967291 502(si): 18(int) SpecConstant 4294967291
491(su): 14(int) SpecConstant 4 503(su): 14(int) SpecConstant 4
492(sb): 165(bool) SpecConstantTrue 504(sb): 165(bool) SpecConstantTrue
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
Store 16(u32Max) 17 Store 16(u32Max) 17
@ -645,68 +645,86 @@ spv.int32.frag
428: 18(int) Load 315(i32) 428: 18(int) Load 315(i32)
429: 52(ivec2) CompositeConstruct 428 428 429: 52(ivec2) CompositeConstruct 428 428
430: 166(bvec2) SLessThan 427 429 430: 166(bvec2) SLessThan 427 429
431: 394(bvec3) Load 422(bv) 431: 259(ptr) AccessChain 422(bv) 175
432: 394(bvec3) VectorShuffle 431 430 3 4 2 432: 165(bool) CompositeExtract 430 0
Store 422(bv) 432 Store 431 432
433: 184(ivec3) Load 325(u32v) 433: 259(ptr) AccessChain 422(bv) 176
434: 14(int) Load 327(u32) 434: 165(bool) CompositeExtract 430 1
435: 184(ivec3) CompositeConstruct 434 434 434 Store 433 434
436: 394(bvec3) ULessThanEqual 433 435 435: 184(ivec3) Load 325(u32v)
Store 422(bv) 436 436: 14(int) Load 327(u32)
437: 52(ivec2) Load 312(i32v) 437: 184(ivec3) CompositeConstruct 436 436 436
438: 18(int) Load 315(i32) 438: 394(bvec3) ULessThanEqual 435 437
439: 52(ivec2) CompositeConstruct 438 438 Store 422(bv) 438
440: 166(bvec2) SLessThanEqual 437 439 439: 52(ivec2) Load 312(i32v)
441: 394(bvec3) Load 422(bv) 440: 18(int) Load 315(i32)
442: 394(bvec3) VectorShuffle 441 440 3 4 2 441: 52(ivec2) CompositeConstruct 440 440
Store 422(bv) 442 442: 166(bvec2) SLessThanEqual 439 441
443: 184(ivec3) Load 325(u32v) 443: 259(ptr) AccessChain 422(bv) 175
444: 14(int) Load 327(u32) 444: 165(bool) CompositeExtract 442 0
445: 184(ivec3) CompositeConstruct 444 444 444 Store 443 444
446: 394(bvec3) UGreaterThan 443 445 445: 259(ptr) AccessChain 422(bv) 176
Store 422(bv) 446 446: 165(bool) CompositeExtract 442 1
447: 52(ivec2) Load 312(i32v) Store 445 446
448: 18(int) Load 315(i32) 447: 184(ivec3) Load 325(u32v)
449: 52(ivec2) CompositeConstruct 448 448 448: 14(int) Load 327(u32)
450: 166(bvec2) SGreaterThan 447 449 449: 184(ivec3) CompositeConstruct 448 448 448
451: 394(bvec3) Load 422(bv) 450: 394(bvec3) UGreaterThan 447 449
452: 394(bvec3) VectorShuffle 451 450 3 4 2 Store 422(bv) 450
Store 422(bv) 452 451: 52(ivec2) Load 312(i32v)
453: 184(ivec3) Load 325(u32v) 452: 18(int) Load 315(i32)
454: 14(int) Load 327(u32) 453: 52(ivec2) CompositeConstruct 452 452
455: 184(ivec3) CompositeConstruct 454 454 454 454: 166(bvec2) SGreaterThan 451 453
456: 394(bvec3) UGreaterThanEqual 453 455 455: 259(ptr) AccessChain 422(bv) 175
Store 422(bv) 456 456: 165(bool) CompositeExtract 454 0
457: 52(ivec2) Load 312(i32v) Store 455 456
458: 18(int) Load 315(i32) 457: 259(ptr) AccessChain 422(bv) 176
459: 52(ivec2) CompositeConstruct 458 458 458: 165(bool) CompositeExtract 454 1
460: 166(bvec2) SGreaterThanEqual 457 459 Store 457 458
461: 394(bvec3) Load 422(bv) 459: 184(ivec3) Load 325(u32v)
462: 394(bvec3) VectorShuffle 461 460 3 4 2 460: 14(int) Load 327(u32)
461: 184(ivec3) CompositeConstruct 460 460 460
462: 394(bvec3) UGreaterThanEqual 459 461
Store 422(bv) 462 Store 422(bv) 462
463: 184(ivec3) Load 325(u32v) 463: 52(ivec2) Load 312(i32v)
464: 14(int) Load 327(u32) 464: 18(int) Load 315(i32)
465: 184(ivec3) CompositeConstruct 464 464 464 465: 52(ivec2) CompositeConstruct 464 464
466: 394(bvec3) IEqual 463 465 466: 166(bvec2) SGreaterThanEqual 463 465
Store 422(bv) 466 467: 259(ptr) AccessChain 422(bv) 175
467: 52(ivec2) Load 312(i32v) 468: 165(bool) CompositeExtract 466 0
468: 18(int) Load 315(i32) Store 467 468
469: 52(ivec2) CompositeConstruct 468 468 469: 259(ptr) AccessChain 422(bv) 176
470: 166(bvec2) IEqual 467 469 470: 165(bool) CompositeExtract 466 1
471: 394(bvec3) Load 422(bv) Store 469 470
472: 394(bvec3) VectorShuffle 471 470 3 4 2 471: 184(ivec3) Load 325(u32v)
Store 422(bv) 472 472: 14(int) Load 327(u32)
473: 184(ivec3) Load 325(u32v) 473: 184(ivec3) CompositeConstruct 472 472 472
474: 14(int) Load 327(u32) 474: 394(bvec3) IEqual 471 473
475: 184(ivec3) CompositeConstruct 474 474 474 Store 422(bv) 474
476: 394(bvec3) INotEqual 473 475 475: 52(ivec2) Load 312(i32v)
Store 422(bv) 476 476: 18(int) Load 315(i32)
477: 52(ivec2) Load 312(i32v) 477: 52(ivec2) CompositeConstruct 476 476
478: 18(int) Load 315(i32) 478: 166(bvec2) IEqual 475 477
479: 52(ivec2) CompositeConstruct 478 478 479: 259(ptr) AccessChain 422(bv) 175
480: 166(bvec2) INotEqual 477 479 480: 165(bool) CompositeExtract 478 0
481: 394(bvec3) Load 422(bv) Store 479 480
482: 394(bvec3) VectorShuffle 481 480 3 4 2 481: 259(ptr) AccessChain 422(bv) 176
Store 422(bv) 482 482: 165(bool) CompositeExtract 478 1
Store 481 482
483: 184(ivec3) Load 325(u32v)
484: 14(int) Load 327(u32)
485: 184(ivec3) CompositeConstruct 484 484 484
486: 394(bvec3) INotEqual 483 485
Store 422(bv) 486
487: 52(ivec2) Load 312(i32v)
488: 18(int) Load 315(i32)
489: 52(ivec2) CompositeConstruct 488 488
490: 166(bvec2) INotEqual 487 489
491: 259(ptr) AccessChain 422(bv) 175
492: 165(bool) CompositeExtract 490 0
Store 491 492
493: 259(ptr) AccessChain 422(bv) 176
494: 165(bool) CompositeExtract 490 1
Store 493 494
Return Return
FunctionEnd FunctionEnd

View File

@ -2,7 +2,7 @@ spv.int64.frag
Validation failed Validation failed
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 499 // Id's are bound by 513
Capability Shader Capability Shader
Capability Float64 Capability Float64
@ -44,48 +44,48 @@ Validation failed
Name 299 "u64v" Name 299 "u64v"
Name 301 "u64" Name 301 "u64"
Name 373 "dv" Name 373 "dv"
Name 392 "iv" Name 394 "iv"
Name 397 "uv" Name 399 "uv"
Name 401 "bv" Name 403 "bv"
Name 472 "Block" Name 486 "Block"
MemberName 472(Block) 0 "i64v" MemberName 486(Block) 0 "i64v"
MemberName 472(Block) 1 "u64" MemberName 486(Block) 1 "u64"
Name 474 "block" Name 488 "block"
Name 475 "si64" Name 489 "si64"
Name 476 "su64" Name 490 "su64"
Name 477 "si" Name 491 "si"
Name 478 "su" Name 492 "su"
Name 479 "sb" Name 493 "sb"
Name 480 "su64inc" Name 494 "su64inc"
Name 481 "i64_to_b" Name 495 "i64_to_b"
Name 482 "u64_to_b" Name 496 "u64_to_b"
Name 483 "b_to_i64" Name 497 "b_to_i64"
Name 484 "b_to_u64" Name 498 "b_to_u64"
Name 485 "i64_to_i" Name 499 "i64_to_i"
Name 486 "i_to_i64" Name 500 "i_to_i64"
Name 487 "u64_to_u" Name 501 "u64_to_u"
Name 488 "u_to_u64" Name 502 "u_to_u64"
Name 489 "u64_to_i64" Name 503 "u64_to_i64"
Name 490 "i64_to_u64" Name 504 "i64_to_u64"
Name 492 "u64_to_i" Name 506 "u64_to_i"
Name 494 "i_to_u64" Name 508 "i_to_u64"
Name 496 "i64_to_u" Name 510 "i64_to_u"
Name 498 "u_to_i64" Name 512 "u_to_i64"
MemberDecorate 28(Uniforms) 0 Offset 0 MemberDecorate 28(Uniforms) 0 Offset 0
Decorate 28(Uniforms) Block Decorate 28(Uniforms) Block
Decorate 30 DescriptorSet 0 Decorate 30 DescriptorSet 0
Decorate 30 Binding 0 Decorate 30 Binding 0
MemberDecorate 472(Block) 0 Offset 0 MemberDecorate 486(Block) 0 Offset 0
MemberDecorate 472(Block) 1 Offset 24 MemberDecorate 486(Block) 1 Offset 24
Decorate 472(Block) Block Decorate 486(Block) Block
Decorate 474(block) DescriptorSet 0 Decorate 488(block) DescriptorSet 0
Decorate 474(block) Binding 1 Decorate 488(block) Binding 1
Decorate 475(si64) SpecId 100 Decorate 489(si64) SpecId 100
Decorate 476(su64) SpecId 101 Decorate 490(su64) SpecId 101
Decorate 477(si) SpecId 102 Decorate 491(si) SpecId 102
Decorate 478(su) SpecId 103 Decorate 492(su) SpecId 103
Decorate 479(sb) SpecId 104 Decorate 493(sb) SpecId 104
Decorate 480(su64inc) SpecId 105 Decorate 494(su64inc) SpecId 105
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
14: TypeInt 64 0 14: TypeInt 64 0
@ -161,38 +161,38 @@ Validation failed
371: TypeVector 94(float64_t) 3 371: TypeVector 94(float64_t) 3
372: TypePointer Function 371(f64vec3) 372: TypePointer Function 371(f64vec3)
377: TypePointer Function 94(float64_t) 377: TypePointer Function 94(float64_t)
388: 31(int) Constant 1 390: 31(int) Constant 1
389: 31(int) Constant 2 391: 31(int) Constant 2
390: 74(ivec2) ConstantComposite 388 389 392: 74(ivec2) ConstantComposite 390 391
395: 81(ivec2) ConstantComposite 217 22 397: 81(ivec2) ConstantComposite 217 22
400: TypePointer Function 368(bvec3) 402: TypePointer Function 368(bvec3)
472(Block): TypeStruct 136(i64vec3) 14(int64_t) 486(Block): TypeStruct 136(i64vec3) 14(int64_t)
473: TypePointer Uniform 472(Block) 487: TypePointer Uniform 486(Block)
474(block): 473(ptr) Variable Uniform 488(block): 487(ptr) Variable Uniform
475(si64): 18(int64_t) SpecConstant 4294967286 4294967295 489(si64): 18(int64_t) SpecConstant 4294967286 4294967295
476(su64): 14(int64_t) SpecConstant 20 0 490(su64): 14(int64_t) SpecConstant 20 0
477(si): 31(int) SpecConstant 4294967291 491(si): 31(int) SpecConstant 4294967291
478(su): 21(int) SpecConstant 4 492(su): 21(int) SpecConstant 4
479(sb): 55(bool) SpecConstantTrue 493(sb): 55(bool) SpecConstantTrue
480(su64inc): 14(int64_t) SpecConstantOp 128 476(su64) 70 494(su64inc): 14(int64_t) SpecConstantOp 128 490(su64) 70
481(i64_to_b): 55(bool) SpecConstantOp 171 475(si64) 69 495(i64_to_b): 55(bool) SpecConstantOp 171 489(si64) 69
482(u64_to_b): 55(bool) SpecConstantOp 171 476(su64) 69 496(u64_to_b): 55(bool) SpecConstantOp 171 490(su64) 69
483(b_to_i64): 18(int64_t) SpecConstantOp 169 479(sb) 61 60 497(b_to_i64): 18(int64_t) SpecConstantOp 169 493(sb) 61 60
484(b_to_u64): 14(int64_t) SpecConstantOp 169 479(sb) 70 69 498(b_to_u64): 14(int64_t) SpecConstantOp 169 493(sb) 70 69
485(i64_to_i): 31(int) SpecConstantOp 114 475(si64) 499(i64_to_i): 31(int) SpecConstantOp 114 489(si64)
486(i_to_i64): 18(int64_t) SpecConstantOp 114 477(si) 500(i_to_i64): 18(int64_t) SpecConstantOp 114 491(si)
487(u64_to_u): 21(int) SpecConstantOp 113 476(su64) 501(u64_to_u): 21(int) SpecConstantOp 113 490(su64)
488(u_to_u64): 14(int64_t) SpecConstantOp 113 478(su) 502(u_to_u64): 14(int64_t) SpecConstantOp 113 492(su)
489(u64_to_i64): 18(int64_t) SpecConstantOp 128 476(su64) 69 503(u64_to_i64): 18(int64_t) SpecConstantOp 128 490(su64) 69
490(i64_to_u64): 14(int64_t) SpecConstantOp 128 475(si64) 69 504(i64_to_u64): 14(int64_t) SpecConstantOp 128 489(si64) 69
491: 21(int) SpecConstantOp 113 476(su64) 505: 21(int) SpecConstantOp 113 490(su64)
492(u64_to_i): 31(int) SpecConstantOp 128 491 227 506(u64_to_i): 31(int) SpecConstantOp 128 505 227
493: 18(int64_t) SpecConstantOp 114 477(si) 507: 18(int64_t) SpecConstantOp 114 491(si)
494(i_to_u64): 14(int64_t) SpecConstantOp 128 493 69 508(i_to_u64): 14(int64_t) SpecConstantOp 128 507 69
495: 31(int) SpecConstantOp 114 475(si64) 509: 31(int) SpecConstantOp 114 489(si64)
496(i64_to_u): 21(int) SpecConstantOp 128 495 227 510(i64_to_u): 21(int) SpecConstantOp 128 509 227
497: 14(int64_t) SpecConstantOp 113 478(su) 511: 14(int64_t) SpecConstantOp 113 492(su)
498(u_to_i64): 18(int64_t) SpecConstantOp 128 497 69 512(u_to_i64): 18(int64_t) SpecConstantOp 128 511 69
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
Store 16(u64Max) 17 Store 16(u64Max) 17
@ -487,9 +487,9 @@ Validation failed
299(u64v): 133(ptr) Variable Function 299(u64v): 133(ptr) Variable Function
301(u64): 40(ptr) Variable Function 301(u64): 40(ptr) Variable Function
373(dv): 372(ptr) Variable Function 373(dv): 372(ptr) Variable Function
392(iv): 75(ptr) Variable Function 394(iv): 75(ptr) Variable Function
397(uv): 82(ptr) Variable Function 399(uv): 82(ptr) Variable Function
401(bv): 400(ptr) Variable Function 403(bv): 402(ptr) Variable Function
287: 52(i64vec2) Load 286(i64v) 287: 52(i64vec2) Load 286(i64v)
288: 52(i64vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 287 288: 52(i64vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 287
Store 286(i64v) 288 Store 286(i64v) 288
@ -593,107 +593,128 @@ Validation failed
Store 381 380 Store 381 380
382: 52(i64vec2) Load 286(i64v) 382: 52(i64vec2) Load 286(i64v)
383: 95(f64vec2) Bitcast 382 383: 95(f64vec2) Bitcast 382
384:371(f64vec3) Load 373(dv) 384: 377(ptr) AccessChain 373(dv) 227
385:371(f64vec3) VectorShuffle 384 383 3 4 2 385:94(float64_t) CompositeExtract 383 0
Store 373(dv) 385 Store 384 385
386:132(i64vec3) Load 299(u64v) 386: 377(ptr) AccessChain 373(dv) 203
387:371(f64vec3) Bitcast 386 387:94(float64_t) CompositeExtract 383 1
Store 373(dv) 387 Store 386 387
391: 18(int64_t) Bitcast 390 388:132(i64vec3) Load 299(u64v)
Store 289(i64) 391 389:371(f64vec3) Bitcast 388
393: 18(int64_t) Load 289(i64) Store 373(dv) 389
394: 74(ivec2) Bitcast 393 393: 18(int64_t) Bitcast 392
Store 392(iv) 394 Store 289(i64) 393
396: 14(int64_t) Bitcast 395 395: 18(int64_t) Load 289(i64)
Store 301(u64) 396 396: 74(ivec2) Bitcast 395
398: 14(int64_t) Load 301(u64) Store 394(iv) 396
399: 81(ivec2) Bitcast 398 398: 14(int64_t) Bitcast 397
Store 397(uv) 399 Store 301(u64) 398
402:132(i64vec3) Load 299(u64v) 400: 14(int64_t) Load 301(u64)
403: 14(int64_t) Load 301(u64) 401: 81(ivec2) Bitcast 400
404:132(i64vec3) CompositeConstruct 403 403 403 Store 399(uv) 401
405: 368(bvec3) ULessThan 402 404 404:132(i64vec3) Load 299(u64v)
Store 401(bv) 405 405: 14(int64_t) Load 301(u64)
406: 52(i64vec2) Load 286(i64v) 406:132(i64vec3) CompositeConstruct 405 405 405
407: 18(int64_t) Load 289(i64) 407: 368(bvec3) ULessThan 404 406
408: 52(i64vec2) CompositeConstruct 407 407 Store 403(bv) 407
409: 56(bvec2) SLessThan 406 408 408: 52(i64vec2) Load 286(i64v)
410: 368(bvec3) Load 401(bv) 409: 18(int64_t) Load 289(i64)
411: 368(bvec3) VectorShuffle 410 409 3 4 2 410: 52(i64vec2) CompositeConstruct 409 409
Store 401(bv) 411 411: 56(bvec2) SLessThan 408 410
412:132(i64vec3) Load 299(u64v) 412: 225(ptr) AccessChain 403(bv) 227
413: 14(int64_t) Load 301(u64) 413: 55(bool) CompositeExtract 411 0
414:132(i64vec3) CompositeConstruct 413 413 413 Store 412 413
415: 368(bvec3) ULessThanEqual 412 414 414: 225(ptr) AccessChain 403(bv) 203
Store 401(bv) 415 415: 55(bool) CompositeExtract 411 1
416: 52(i64vec2) Load 286(i64v) Store 414 415
417: 18(int64_t) Load 289(i64) 416:132(i64vec3) Load 299(u64v)
418: 52(i64vec2) CompositeConstruct 417 417 417: 14(int64_t) Load 301(u64)
419: 56(bvec2) SLessThanEqual 416 418 418:132(i64vec3) CompositeConstruct 417 417 417
420: 368(bvec3) Load 401(bv) 419: 368(bvec3) ULessThanEqual 416 418
421: 368(bvec3) VectorShuffle 420 419 3 4 2 Store 403(bv) 419
Store 401(bv) 421 420: 52(i64vec2) Load 286(i64v)
422:132(i64vec3) Load 299(u64v) 421: 18(int64_t) Load 289(i64)
423: 14(int64_t) Load 301(u64) 422: 52(i64vec2) CompositeConstruct 421 421
424:132(i64vec3) CompositeConstruct 423 423 423 423: 56(bvec2) SLessThanEqual 420 422
425: 368(bvec3) UGreaterThan 422 424 424: 225(ptr) AccessChain 403(bv) 227
Store 401(bv) 425 425: 55(bool) CompositeExtract 423 0
426: 52(i64vec2) Load 286(i64v) Store 424 425
427: 18(int64_t) Load 289(i64) 426: 225(ptr) AccessChain 403(bv) 203
428: 52(i64vec2) CompositeConstruct 427 427 427: 55(bool) CompositeExtract 423 1
429: 56(bvec2) SGreaterThan 426 428 Store 426 427
430: 368(bvec3) Load 401(bv) 428:132(i64vec3) Load 299(u64v)
431: 368(bvec3) VectorShuffle 430 429 3 4 2 429: 14(int64_t) Load 301(u64)
Store 401(bv) 431 430:132(i64vec3) CompositeConstruct 429 429 429
432:132(i64vec3) Load 299(u64v) 431: 368(bvec3) UGreaterThan 428 430
433: 14(int64_t) Load 301(u64) Store 403(bv) 431
434:132(i64vec3) CompositeConstruct 433 433 433 432: 52(i64vec2) Load 286(i64v)
435: 368(bvec3) UGreaterThanEqual 432 434 433: 18(int64_t) Load 289(i64)
Store 401(bv) 435 434: 52(i64vec2) CompositeConstruct 433 433
436: 52(i64vec2) Load 286(i64v) 435: 56(bvec2) SGreaterThan 432 434
437: 18(int64_t) Load 289(i64) 436: 225(ptr) AccessChain 403(bv) 227
438: 52(i64vec2) CompositeConstruct 437 437 437: 55(bool) CompositeExtract 435 0
439: 56(bvec2) SGreaterThanEqual 436 438 Store 436 437
440: 368(bvec3) Load 401(bv) 438: 225(ptr) AccessChain 403(bv) 203
441: 368(bvec3) VectorShuffle 440 439 3 4 2 439: 55(bool) CompositeExtract 435 1
Store 401(bv) 441 Store 438 439
442:132(i64vec3) Load 299(u64v) 440:132(i64vec3) Load 299(u64v)
443: 14(int64_t) Load 301(u64) 441: 14(int64_t) Load 301(u64)
444:132(i64vec3) CompositeConstruct 443 443 443 442:132(i64vec3) CompositeConstruct 441 441 441
445: 368(bvec3) IEqual 442 444 443: 368(bvec3) UGreaterThanEqual 440 442
Store 401(bv) 445 Store 403(bv) 443
446: 52(i64vec2) Load 286(i64v) 444: 52(i64vec2) Load 286(i64v)
447: 18(int64_t) Load 289(i64) 445: 18(int64_t) Load 289(i64)
448: 52(i64vec2) CompositeConstruct 447 447 446: 52(i64vec2) CompositeConstruct 445 445
449: 56(bvec2) IEqual 446 448 447: 56(bvec2) SGreaterThanEqual 444 446
450: 368(bvec3) Load 401(bv) 448: 225(ptr) AccessChain 403(bv) 227
451: 368(bvec3) VectorShuffle 450 449 3 4 2 449: 55(bool) CompositeExtract 447 0
Store 401(bv) 451 Store 448 449
450: 225(ptr) AccessChain 403(bv) 203
451: 55(bool) CompositeExtract 447 1
Store 450 451
452:132(i64vec3) Load 299(u64v) 452:132(i64vec3) Load 299(u64v)
453: 14(int64_t) Load 301(u64) 453: 14(int64_t) Load 301(u64)
454:132(i64vec3) CompositeConstruct 453 453 453 454:132(i64vec3) CompositeConstruct 453 453 453
455: 368(bvec3) INotEqual 452 454 455: 368(bvec3) IEqual 452 454
Store 401(bv) 455 Store 403(bv) 455
456: 52(i64vec2) Load 286(i64v) 456: 52(i64vec2) Load 286(i64v)
457: 18(int64_t) Load 289(i64) 457: 18(int64_t) Load 289(i64)
458: 52(i64vec2) CompositeConstruct 457 457 458: 52(i64vec2) CompositeConstruct 457 457
459: 56(bvec2) INotEqual 456 458 459: 56(bvec2) IEqual 456 458
460: 368(bvec3) Load 401(bv) 460: 225(ptr) AccessChain 403(bv) 227
461: 368(bvec3) VectorShuffle 460 459 3 4 2 461: 55(bool) CompositeExtract 459 0
Store 401(bv) 461 Store 460 461
462: 14(int64_t) Load 301(u64) 462: 225(ptr) AccessChain 403(bv) 203
463: 18(int64_t) ExtInst 1(GLSL.std.450) 73(FindILsb) 462 463: 55(bool) CompositeExtract 459 1
Store 289(i64) 463 Store 462 463
464: 14(int64_t) Load 301(u64) 464:132(i64vec3) Load 299(u64v)
465: 65(i64vec2) CompositeConstruct 464 464 465: 14(int64_t) Load 301(u64)
466: 52(i64vec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 465 466:132(i64vec3) CompositeConstruct 465 465 465
Store 286(i64v) 466 467: 368(bvec3) INotEqual 464 466
467: 14(int64_t) Load 301(u64) Store 403(bv) 467
468: 18(int64_t) BitCount 467 468: 52(i64vec2) Load 286(i64v)
Store 289(i64) 468 469: 18(int64_t) Load 289(i64)
469: 14(int64_t) Load 301(u64) 470: 52(i64vec2) CompositeConstruct 469 469
470: 65(i64vec2) CompositeConstruct 469 469 471: 56(bvec2) INotEqual 468 470
471: 52(i64vec2) BitCount 470 472: 225(ptr) AccessChain 403(bv) 227
Store 286(i64v) 471 473: 55(bool) CompositeExtract 471 0
Store 472 473
474: 225(ptr) AccessChain 403(bv) 203
475: 55(bool) CompositeExtract 471 1
Store 474 475
476: 14(int64_t) Load 301(u64)
477: 18(int64_t) ExtInst 1(GLSL.std.450) 73(FindILsb) 476
Store 289(i64) 477
478: 14(int64_t) Load 301(u64)
479: 65(i64vec2) CompositeConstruct 478 478
480: 52(i64vec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 479
Store 286(i64v) 480
481: 14(int64_t) Load 301(u64)
482: 18(int64_t) BitCount 481
Store 289(i64) 482
483: 14(int64_t) Load 301(u64)
484: 65(i64vec2) CompositeConstruct 483 483
485: 52(i64vec2) BitCount 484
Store 286(i64v) 485
Return Return
FunctionEnd FunctionEnd

View File

@ -1,7 +1,7 @@
spv.int8.frag spv.int8.frag
// Module Version 10300 // Module Version 10300
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 518 // Id's are bound by 530
Capability Shader Capability Shader
Capability Float16 Capability Float16
@ -66,35 +66,35 @@ spv.int8.frag
Name 437 "u32" Name 437 "u32"
Name 440 "u8v4" Name 440 "u8v4"
Name 452 "bv" Name 452 "bv"
Name 513 "Block" Name 525 "Block"
MemberName 513(Block) 0 "i8" MemberName 525(Block) 0 "i8"
MemberName 513(Block) 1 "i8v2" MemberName 525(Block) 1 "i8v2"
MemberName 513(Block) 2 "i8v3" MemberName 525(Block) 2 "i8v3"
MemberName 513(Block) 3 "i8v4" MemberName 525(Block) 3 "i8v4"
MemberName 513(Block) 4 "u8" MemberName 525(Block) 4 "u8"
MemberName 513(Block) 5 "u8v2" MemberName 525(Block) 5 "u8v2"
MemberName 513(Block) 6 "u8v3" MemberName 525(Block) 6 "u8v3"
MemberName 513(Block) 7 "u8v4" MemberName 525(Block) 7 "u8v4"
Name 515 "block" Name 527 "block"
Name 516 "si8" Name 528 "si8"
Name 517 "su8" Name 529 "su8"
MemberDecorate 24(Uniforms) 0 Offset 0 MemberDecorate 24(Uniforms) 0 Offset 0
Decorate 24(Uniforms) Block Decorate 24(Uniforms) Block
Decorate 26 DescriptorSet 0 Decorate 26 DescriptorSet 0
Decorate 26 Binding 0 Decorate 26 Binding 0
MemberDecorate 513(Block) 0 Offset 0 MemberDecorate 525(Block) 0 Offset 0
MemberDecorate 513(Block) 1 Offset 2 MemberDecorate 525(Block) 1 Offset 2
MemberDecorate 513(Block) 2 Offset 4 MemberDecorate 525(Block) 2 Offset 4
MemberDecorate 513(Block) 3 Offset 8 MemberDecorate 525(Block) 3 Offset 8
MemberDecorate 513(Block) 4 Offset 12 MemberDecorate 525(Block) 4 Offset 12
MemberDecorate 513(Block) 5 Offset 14 MemberDecorate 525(Block) 5 Offset 14
MemberDecorate 513(Block) 6 Offset 16 MemberDecorate 525(Block) 6 Offset 16
MemberDecorate 513(Block) 7 Offset 20 MemberDecorate 525(Block) 7 Offset 20
Decorate 513(Block) Block Decorate 525(Block) Block
Decorate 515(block) DescriptorSet 0 Decorate 527(block) DescriptorSet 0
Decorate 515(block) Binding 1 Decorate 527(block) Binding 1
Decorate 516(si8) SpecId 100 Decorate 528(si8) SpecId 100
Decorate 517(su8) SpecId 101 Decorate 529(su8) SpecId 101
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
14: TypeInt 8 1 14: TypeInt 8 1
@ -184,11 +184,11 @@ spv.int8.frag
438: TypeVector 36(int8_t) 4 438: TypeVector 36(int8_t) 4
439: TypePointer Function 438(i8vec4) 439: TypePointer Function 438(i8vec4)
451: TypePointer Function 420(bvec3) 451: TypePointer Function 420(bvec3)
513(Block): TypeStruct 14(int8_t) 52(i8vec2) 194(i8vec3) 427(i8vec4) 36(int8_t) 49(i8vec2) 190(i8vec3) 438(i8vec4) 525(Block): TypeStruct 14(int8_t) 52(i8vec2) 194(i8vec3) 427(i8vec4) 36(int8_t) 49(i8vec2) 190(i8vec3) 438(i8vec4)
514: TypePointer Uniform 513(Block) 526: TypePointer Uniform 525(Block)
515(block): 514(ptr) Variable Uniform 527(block): 526(ptr) Variable Uniform
516(si8): 14(int8_t) SpecConstant 4294967286 528(si8): 14(int8_t) SpecConstant 4294967286
517(su8): 36(int8_t) SpecConstant 20 529(su8): 36(int8_t) SpecConstant 20
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
Return Return
@ -670,68 +670,86 @@ spv.int8.frag
458: 14(int8_t) Load 341(i8) 458: 14(int8_t) Load 341(i8)
459: 52(i8vec2) CompositeConstruct 458 458 459: 52(i8vec2) CompositeConstruct 458 458
460: 172(bvec2) SLessThan 457 459 460: 172(bvec2) SLessThan 457 459
461: 420(bvec3) Load 452(bv) 461: 275(ptr) AccessChain 452(bv) 277
462: 420(bvec3) VectorShuffle 461 460 3 4 2 462: 171(bool) CompositeExtract 460 0
Store 452(bv) 462 Store 461 462
463: 190(i8vec3) Load 351(u8v) 463: 275(ptr) AccessChain 452(bv) 261
464: 36(int8_t) Load 353(u8) 464: 171(bool) CompositeExtract 460 1
465: 190(i8vec3) CompositeConstruct 464 464 464 Store 463 464
466: 420(bvec3) ULessThanEqual 463 465 465: 190(i8vec3) Load 351(u8v)
Store 452(bv) 466 466: 36(int8_t) Load 353(u8)
467: 52(i8vec2) Load 338(i8v) 467: 190(i8vec3) CompositeConstruct 466 466 466
468: 14(int8_t) Load 341(i8) 468: 420(bvec3) ULessThanEqual 465 467
469: 52(i8vec2) CompositeConstruct 468 468 Store 452(bv) 468
470: 172(bvec2) SLessThanEqual 467 469 469: 52(i8vec2) Load 338(i8v)
471: 420(bvec3) Load 452(bv) 470: 14(int8_t) Load 341(i8)
472: 420(bvec3) VectorShuffle 471 470 3 4 2 471: 52(i8vec2) CompositeConstruct 470 470
Store 452(bv) 472 472: 172(bvec2) SLessThanEqual 469 471
473: 190(i8vec3) Load 351(u8v) 473: 275(ptr) AccessChain 452(bv) 277
474: 36(int8_t) Load 353(u8) 474: 171(bool) CompositeExtract 472 0
475: 190(i8vec3) CompositeConstruct 474 474 474 Store 473 474
476: 420(bvec3) UGreaterThan 473 475 475: 275(ptr) AccessChain 452(bv) 261
Store 452(bv) 476 476: 171(bool) CompositeExtract 472 1
477: 52(i8vec2) Load 338(i8v) Store 475 476
478: 14(int8_t) Load 341(i8) 477: 190(i8vec3) Load 351(u8v)
479: 52(i8vec2) CompositeConstruct 478 478 478: 36(int8_t) Load 353(u8)
480: 172(bvec2) SGreaterThan 477 479 479: 190(i8vec3) CompositeConstruct 478 478 478
481: 420(bvec3) Load 452(bv) 480: 420(bvec3) UGreaterThan 477 479
482: 420(bvec3) VectorShuffle 481 480 3 4 2 Store 452(bv) 480
Store 452(bv) 482 481: 52(i8vec2) Load 338(i8v)
483: 190(i8vec3) Load 351(u8v) 482: 14(int8_t) Load 341(i8)
484: 36(int8_t) Load 353(u8) 483: 52(i8vec2) CompositeConstruct 482 482
485: 190(i8vec3) CompositeConstruct 484 484 484 484: 172(bvec2) SGreaterThan 481 483
486: 420(bvec3) UGreaterThanEqual 483 485 485: 275(ptr) AccessChain 452(bv) 277
Store 452(bv) 486 486: 171(bool) CompositeExtract 484 0
487: 52(i8vec2) Load 338(i8v) Store 485 486
488: 14(int8_t) Load 341(i8) 487: 275(ptr) AccessChain 452(bv) 261
489: 52(i8vec2) CompositeConstruct 488 488 488: 171(bool) CompositeExtract 484 1
490: 172(bvec2) SGreaterThanEqual 487 489 Store 487 488
491: 420(bvec3) Load 452(bv) 489: 190(i8vec3) Load 351(u8v)
492: 420(bvec3) VectorShuffle 491 490 3 4 2 490: 36(int8_t) Load 353(u8)
491: 190(i8vec3) CompositeConstruct 490 490 490
492: 420(bvec3) UGreaterThanEqual 489 491
Store 452(bv) 492 Store 452(bv) 492
493: 190(i8vec3) Load 351(u8v) 493: 52(i8vec2) Load 338(i8v)
494: 36(int8_t) Load 353(u8) 494: 14(int8_t) Load 341(i8)
495: 190(i8vec3) CompositeConstruct 494 494 494 495: 52(i8vec2) CompositeConstruct 494 494
496: 420(bvec3) IEqual 493 495 496: 172(bvec2) SGreaterThanEqual 493 495
Store 452(bv) 496 497: 275(ptr) AccessChain 452(bv) 277
497: 52(i8vec2) Load 338(i8v) 498: 171(bool) CompositeExtract 496 0
498: 14(int8_t) Load 341(i8) Store 497 498
499: 52(i8vec2) CompositeConstruct 498 498 499: 275(ptr) AccessChain 452(bv) 261
500: 172(bvec2) IEqual 497 499 500: 171(bool) CompositeExtract 496 1
501: 420(bvec3) Load 452(bv) Store 499 500
502: 420(bvec3) VectorShuffle 501 500 3 4 2 501: 190(i8vec3) Load 351(u8v)
Store 452(bv) 502 502: 36(int8_t) Load 353(u8)
503: 190(i8vec3) Load 351(u8v) 503: 190(i8vec3) CompositeConstruct 502 502 502
504: 36(int8_t) Load 353(u8) 504: 420(bvec3) IEqual 501 503
505: 190(i8vec3) CompositeConstruct 504 504 504 Store 452(bv) 504
506: 420(bvec3) INotEqual 503 505 505: 52(i8vec2) Load 338(i8v)
Store 452(bv) 506 506: 14(int8_t) Load 341(i8)
507: 52(i8vec2) Load 338(i8v) 507: 52(i8vec2) CompositeConstruct 506 506
508: 14(int8_t) Load 341(i8) 508: 172(bvec2) IEqual 505 507
509: 52(i8vec2) CompositeConstruct 508 508 509: 275(ptr) AccessChain 452(bv) 277
510: 172(bvec2) INotEqual 507 509 510: 171(bool) CompositeExtract 508 0
511: 420(bvec3) Load 452(bv) Store 509 510
512: 420(bvec3) VectorShuffle 511 510 3 4 2 511: 275(ptr) AccessChain 452(bv) 261
Store 452(bv) 512 512: 171(bool) CompositeExtract 508 1
Store 511 512
513: 190(i8vec3) Load 351(u8v)
514: 36(int8_t) Load 353(u8)
515: 190(i8vec3) CompositeConstruct 514 514 514
516: 420(bvec3) INotEqual 513 515
Store 452(bv) 516
517: 52(i8vec2) Load 338(i8v)
518: 14(int8_t) Load 341(i8)
519: 52(i8vec2) CompositeConstruct 518 518
520: 172(bvec2) INotEqual 517 519
521: 275(ptr) AccessChain 452(bv) 277
522: 171(bool) CompositeExtract 520 0
Store 521 522
523: 275(ptr) AccessChain 452(bv) 261
524: 171(bool) CompositeExtract 520 1
Store 523 524
Return Return
FunctionEnd FunctionEnd

View File

@ -1,12 +1,12 @@
spv.intOps.vert spv.intOps.vert
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 268 // Id's are bound by 302
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 9 15 21 26 47 67 83 100 121 142 146 156 173 182 247 EntryPoint Vertex 4 "main" 9 15 21 26 53 72 88 105 137 156 160 172 189 202 281
Source ESSL 310 Source ESSL 310
Name 4 "main" Name 4 "main"
Name 9 "iout" Name 9 "iout"
@ -15,44 +15,44 @@ spv.intOps.vert
Name 26 "u2" Name 26 "u2"
Name 30 "u2out" Name 30 "u2out"
Name 31 "ResType" Name 31 "ResType"
Name 47 "u1" Name 53 "u1"
Name 51 "u1out" Name 57 "u1out"
Name 52 "ResType" Name 58 "ResType"
Name 67 "u4" Name 72 "u4"
Name 71 "u4outHi" Name 76 "u4outHi"
Name 72 "u4outLow" Name 77 "u4outLow"
Name 73 "ResType" Name 78 "ResType"
Name 83 "i4" Name 88 "i4"
Name 87 "i4outHi" Name 92 "i4outHi"
Name 88 "i4outLow" Name 93 "i4outLow"
Name 89 "ResType" Name 94 "ResType"
Name 100 "v3" Name 105 "v3"
Name 104 "i3out" Name 109 "i3out"
Name 105 "ResType" Name 110 "ResType"
Name 121 "v1" Name 137 "v1"
Name 124 "i1out" Name 140 "i1out"
Name 125 "ResType" Name 141 "ResType"
Name 142 "v2" Name 156 "v2"
Name 146 "i2" Name 160 "i2"
Name 156 "i1" Name 172 "i1"
Name 173 "u3" Name 189 "u3"
Name 182 "i3" Name 202 "i3"
Name 247 "v4" Name 281 "v4"
Decorate 9(iout) Location 1 Decorate 9(iout) Location 1
Decorate 15(uout) Location 0 Decorate 15(uout) Location 0
Decorate 21(fout) Location 2 Decorate 21(fout) Location 2
Decorate 26(u2) Location 1 Decorate 26(u2) Location 1
Decorate 47(u1) Location 0 Decorate 53(u1) Location 0
Decorate 67(u4) Location 3 Decorate 72(u4) Location 3
Decorate 83(i4) Location 11 Decorate 88(i4) Location 11
Decorate 100(v3) Location 6 Decorate 105(v3) Location 6
Decorate 121(v1) Location 4 Decorate 137(v1) Location 4
Decorate 142(v2) Location 5 Decorate 156(v2) Location 5
Decorate 146(i2) Location 9 Decorate 160(i2) Location 9
Decorate 156(i1) Location 8 Decorate 172(i1) Location 8
Decorate 173(u3) Location 2 Decorate 189(u3) Location 2
Decorate 182(i3) Location 10 Decorate 202(i3) Location 10
Decorate 247(v4) Location 7 Decorate 281(v4) Location 7
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 1 6: TypeInt 32 1
@ -78,58 +78,60 @@ spv.intOps.vert
26(u2): 25(ptr) Variable Input 26(u2): 25(ptr) Variable Input
29: TypePointer Function 24(ivec2) 29: TypePointer Function 24(ivec2)
31(ResType): TypeStruct 24(ivec2) 24(ivec2) 31(ResType): TypeStruct 24(ivec2) 24(ivec2)
46: TypePointer Input 12(int) 38: TypePointer Output 12(int)
47(u1): 46(ptr) Variable Input 41: 12(int) Constant 1
50: TypePointer Function 12(int) 52: TypePointer Input 12(int)
52(ResType): TypeStruct 12(int) 12(int) 53(u1): 52(ptr) Variable Input
56: TypePointer Output 12(int) 56: TypePointer Function 12(int)
66: TypePointer Input 13(ivec4) 58(ResType): TypeStruct 12(int) 12(int)
67(u4): 66(ptr) Variable Input 71: TypePointer Input 13(ivec4)
70: TypePointer Function 13(ivec4) 72(u4): 71(ptr) Variable Input
73(ResType): TypeStruct 13(ivec4) 13(ivec4) 75: TypePointer Function 13(ivec4)
82: TypePointer Input 7(ivec4) 78(ResType): TypeStruct 13(ivec4) 13(ivec4)
83(i4): 82(ptr) Variable Input 87: TypePointer Input 7(ivec4)
86: TypePointer Function 7(ivec4) 88(i4): 87(ptr) Variable Input
89(ResType): TypeStruct 7(ivec4) 7(ivec4) 91: TypePointer Function 7(ivec4)
98: TypeVector 18(float) 3 94(ResType): TypeStruct 7(ivec4) 7(ivec4)
99: TypePointer Input 98(fvec3) 103: TypeVector 18(float) 3
100(v3): 99(ptr) Variable Input 104: TypePointer Input 103(fvec3)
102: TypeVector 6(int) 3 105(v3): 104(ptr) Variable Input
103: TypePointer Function 102(ivec3) 107: TypeVector 6(int) 3
105(ResType): TypeStruct 98(fvec3) 102(ivec3) 108: TypePointer Function 107(ivec3)
120: TypePointer Input 18(float) 110(ResType): TypeStruct 103(fvec3) 107(ivec3)
121(v1): 120(ptr) Variable Input 117: TypePointer Output 18(float)
123: TypePointer Function 6(int) 122: 12(int) Constant 2
125(ResType): TypeStruct 18(float) 6(int) 129: TypePointer Output 6(int)
129: TypePointer Output 18(float) 136: TypePointer Input 18(float)
135: TypePointer Output 6(int) 137(v1): 136(ptr) Variable Input
140: TypeVector 18(float) 2 139: TypePointer Function 6(int)
141: TypePointer Input 140(fvec2) 141(ResType): TypeStruct 18(float) 6(int)
142(v2): 141(ptr) Variable Input 154: TypeVector 18(float) 2
144: TypeVector 6(int) 2 155: TypePointer Input 154(fvec2)
145: TypePointer Input 144(ivec2) 156(v2): 155(ptr) Variable Input
146(i2): 145(ptr) Variable Input 158: TypeVector 6(int) 2
155: TypePointer Input 6(int) 159: TypePointer Input 158(ivec2)
156(i1): 155(ptr) Variable Input 160(i2): 159(ptr) Variable Input
164: 6(int) Constant 4 171: TypePointer Input 6(int)
165: 6(int) Constant 5 172(i1): 171(ptr) Variable Input
171: TypeVector 12(int) 3 180: 6(int) Constant 4
172: TypePointer Input 171(ivec3) 181: 6(int) Constant 5
173(u3): 172(ptr) Variable Input 187: TypeVector 12(int) 3
181: TypePointer Input 102(ivec3) 188: TypePointer Input 187(ivec3)
182(i3): 181(ptr) Variable Input 189(u3): 188(ptr) Variable Input
246: TypePointer Input 19(fvec4) 201: TypePointer Input 107(ivec3)
247(v4): 246(ptr) Variable Input 202(i3): 201(ptr) Variable Input
280: TypePointer Input 19(fvec4)
281(v4): 280(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
30(u2out): 29(ptr) Variable Function 30(u2out): 29(ptr) Variable Function
51(u1out): 50(ptr) Variable Function 57(u1out): 56(ptr) Variable Function
71(u4outHi): 70(ptr) Variable Function 76(u4outHi): 75(ptr) Variable Function
72(u4outLow): 70(ptr) Variable Function 77(u4outLow): 75(ptr) Variable Function
87(i4outHi): 86(ptr) Variable Function 92(i4outHi): 91(ptr) Variable Function
88(i4outLow): 86(ptr) Variable Function 93(i4outLow): 91(ptr) Variable Function
104(i3out): 103(ptr) Variable Function 109(i3out): 108(ptr) Variable Function
124(i1out): 123(ptr) Variable Function 140(i1out): 139(ptr) Variable Function
Store 9(iout) 11 Store 9(iout) 11
Store 15(uout) 17 Store 15(uout) 17
Store 21(fout) 23 Store 21(fout) 23
@ -142,221 +144,269 @@ spv.intOps.vert
35: 13(ivec4) Load 15(uout) 35: 13(ivec4) Load 15(uout)
36: 24(ivec2) VectorShuffle 35 35 0 1 36: 24(ivec2) VectorShuffle 35 35 0 1
37: 24(ivec2) IAdd 36 34 37: 24(ivec2) IAdd 36 34
38: 13(ivec4) Load 15(uout) 39: 38(ptr) AccessChain 15(uout) 16
39: 13(ivec4) VectorShuffle 38 37 4 5 2 3 40: 12(int) CompositeExtract 37 0
Store 15(uout) 39 Store 39 40
40: 24(ivec2) Load 30(u2out) 42: 38(ptr) AccessChain 15(uout) 41
41: 13(ivec4) Load 15(uout) 43: 12(int) CompositeExtract 37 1
42: 24(ivec2) VectorShuffle 41 41 0 1 Store 42 43
43: 24(ivec2) IAdd 42 40 44: 24(ivec2) Load 30(u2out)
44: 13(ivec4) Load 15(uout) 45: 13(ivec4) Load 15(uout)
45: 13(ivec4) VectorShuffle 44 43 4 5 2 3 46: 24(ivec2) VectorShuffle 45 45 0 1
Store 15(uout) 45 47: 24(ivec2) IAdd 46 44
48: 12(int) Load 47(u1) 48: 38(ptr) AccessChain 15(uout) 16
49: 12(int) Load 47(u1) 49: 12(int) CompositeExtract 47 0
53: 52(ResType) ISubBorrow 48 49 Store 48 49
54: 12(int) CompositeExtract 53 1 50: 38(ptr) AccessChain 15(uout) 41
Store 51(u1out) 54 51: 12(int) CompositeExtract 47 1
55: 12(int) CompositeExtract 53 0 Store 50 51
57: 56(ptr) AccessChain 15(uout) 16 54: 12(int) Load 53(u1)
58: 12(int) Load 57 55: 12(int) Load 53(u1)
59: 12(int) IAdd 58 55 59: 58(ResType) ISubBorrow 54 55
60: 56(ptr) AccessChain 15(uout) 16 60: 12(int) CompositeExtract 59 1
Store 60 59 Store 57(u1out) 60
61: 12(int) Load 51(u1out) 61: 12(int) CompositeExtract 59 0
62: 56(ptr) AccessChain 15(uout) 16 62: 38(ptr) AccessChain 15(uout) 16
63: 12(int) Load 62 63: 12(int) Load 62
64: 12(int) IAdd 63 61 64: 12(int) IAdd 63 61
65: 56(ptr) AccessChain 15(uout) 16 65: 38(ptr) AccessChain 15(uout) 16
Store 65 64 Store 65 64
68: 13(ivec4) Load 67(u4) 66: 12(int) Load 57(u1out)
69: 13(ivec4) Load 67(u4) 67: 38(ptr) AccessChain 15(uout) 16
74: 73(ResType) UMulExtended 68 69 68: 12(int) Load 67
75: 13(ivec4) CompositeExtract 74 0 69: 12(int) IAdd 68 66
Store 72(u4outLow) 75 70: 38(ptr) AccessChain 15(uout) 16
76: 13(ivec4) CompositeExtract 74 1 Store 70 69
Store 71(u4outHi) 76 73: 13(ivec4) Load 72(u4)
77: 13(ivec4) Load 71(u4outHi) 74: 13(ivec4) Load 72(u4)
78: 13(ivec4) Load 72(u4outLow) 79: 78(ResType) UMulExtended 73 74
79: 13(ivec4) IAdd 77 78 80: 13(ivec4) CompositeExtract 79 0
80: 13(ivec4) Load 15(uout) Store 77(u4outLow) 80
81: 13(ivec4) IAdd 80 79 81: 13(ivec4) CompositeExtract 79 1
Store 15(uout) 81 Store 76(u4outHi) 81
84: 7(ivec4) Load 83(i4) 82: 13(ivec4) Load 76(u4outHi)
85: 7(ivec4) Load 83(i4) 83: 13(ivec4) Load 77(u4outLow)
90: 89(ResType) SMulExtended 84 85 84: 13(ivec4) IAdd 82 83
91: 7(ivec4) CompositeExtract 90 0 85: 13(ivec4) Load 15(uout)
Store 88(i4outLow) 91 86: 13(ivec4) IAdd 85 84
92: 7(ivec4) CompositeExtract 90 1 Store 15(uout) 86
Store 87(i4outHi) 92 89: 7(ivec4) Load 88(i4)
93: 7(ivec4) Load 88(i4outLow) 90: 7(ivec4) Load 88(i4)
94: 7(ivec4) Load 87(i4outHi) 95: 94(ResType) SMulExtended 89 90
95: 7(ivec4) IAdd 93 94 96: 7(ivec4) CompositeExtract 95 0
96: 7(ivec4) Load 9(iout) Store 93(i4outLow) 96
97: 7(ivec4) IAdd 96 95 97: 7(ivec4) CompositeExtract 95 1
Store 9(iout) 97 Store 92(i4outHi) 97
101: 98(fvec3) Load 100(v3) 98: 7(ivec4) Load 93(i4outLow)
106:105(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 101 99: 7(ivec4) Load 92(i4outHi)
107: 102(ivec3) CompositeExtract 106 1 100: 7(ivec4) IAdd 98 99
Store 104(i3out) 107 101: 7(ivec4) Load 9(iout)
108: 98(fvec3) CompositeExtract 106 0 102: 7(ivec4) IAdd 101 100
109: 19(fvec4) Load 21(fout) Store 9(iout) 102
110: 98(fvec3) VectorShuffle 109 109 0 1 2 106: 103(fvec3) Load 105(v3)
111: 98(fvec3) FAdd 110 108 111:110(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 106
112: 19(fvec4) Load 21(fout) 112: 107(ivec3) CompositeExtract 111 1
113: 19(fvec4) VectorShuffle 112 111 4 5 6 3 Store 109(i3out) 112
Store 21(fout) 113 113: 103(fvec3) CompositeExtract 111 0
114: 102(ivec3) Load 104(i3out) 114: 19(fvec4) Load 21(fout)
115: 7(ivec4) Load 9(iout) 115: 103(fvec3) VectorShuffle 114 114 0 1 2
116: 102(ivec3) VectorShuffle 115 115 0 1 2 116: 103(fvec3) FAdd 115 113
117: 102(ivec3) IAdd 116 114 118: 117(ptr) AccessChain 21(fout) 16
118: 7(ivec4) Load 9(iout) 119: 18(float) CompositeExtract 116 0
119: 7(ivec4) VectorShuffle 118 117 4 5 6 3 Store 118 119
Store 9(iout) 119 120: 117(ptr) AccessChain 21(fout) 41
122: 18(float) Load 121(v1) 121: 18(float) CompositeExtract 116 1
126:125(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 122 Store 120 121
127: 6(int) CompositeExtract 126 1 123: 117(ptr) AccessChain 21(fout) 122
Store 124(i1out) 127 124: 18(float) CompositeExtract 116 2
128: 18(float) CompositeExtract 126 0 Store 123 124
130: 129(ptr) AccessChain 21(fout) 16 125: 107(ivec3) Load 109(i3out)
131: 18(float) Load 130 126: 7(ivec4) Load 9(iout)
132: 18(float) FAdd 131 128 127: 107(ivec3) VectorShuffle 126 126 0 1 2
133: 129(ptr) AccessChain 21(fout) 16 128: 107(ivec3) IAdd 127 125
Store 133 132 130: 129(ptr) AccessChain 9(iout) 16
134: 6(int) Load 124(i1out) 131: 6(int) CompositeExtract 128 0
136: 135(ptr) AccessChain 9(iout) 16 Store 130 131
137: 6(int) Load 136 132: 129(ptr) AccessChain 9(iout) 41
138: 6(int) IAdd 137 134 133: 6(int) CompositeExtract 128 1
139: 135(ptr) AccessChain 9(iout) 16 Store 132 133
Store 139 138 134: 129(ptr) AccessChain 9(iout) 122
143: 140(fvec2) Load 142(v2) 135: 6(int) CompositeExtract 128 2
147: 144(ivec2) Load 146(i2) Store 134 135
148: 140(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 143 147 138: 18(float) Load 137(v1)
149: 19(fvec4) Load 21(fout) 142:141(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 138
150: 140(fvec2) VectorShuffle 149 149 0 1 143: 6(int) CompositeExtract 142 1
151: 140(fvec2) FAdd 150 148 Store 140(i1out) 143
152: 19(fvec4) Load 21(fout) 144: 18(float) CompositeExtract 142 0
153: 19(fvec4) VectorShuffle 152 151 4 5 2 3 145: 117(ptr) AccessChain 21(fout) 16
Store 21(fout) 153 146: 18(float) Load 145
154: 18(float) Load 121(v1) 147: 18(float) FAdd 146 144
157: 6(int) Load 156(i1) 148: 117(ptr) AccessChain 21(fout) 16
158: 18(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 154 157 Store 148 147
159: 129(ptr) AccessChain 21(fout) 16 149: 6(int) Load 140(i1out)
160: 18(float) Load 159 150: 129(ptr) AccessChain 9(iout) 16
161: 18(float) FAdd 160 158 151: 6(int) Load 150
162: 129(ptr) AccessChain 21(fout) 16 152: 6(int) IAdd 151 149
Store 162 161 153: 129(ptr) AccessChain 9(iout) 16
163: 6(int) Load 156(i1) Store 153 152
166: 6(int) BitFieldSExtract 163 164 165 157: 154(fvec2) Load 156(v2)
167: 135(ptr) AccessChain 9(iout) 16 161: 158(ivec2) Load 160(i2)
168: 6(int) Load 167 162: 154(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 157 161
169: 6(int) IAdd 168 166 163: 19(fvec4) Load 21(fout)
170: 135(ptr) AccessChain 9(iout) 16 164: 154(fvec2) VectorShuffle 163 163 0 1
Store 170 169 165: 154(fvec2) FAdd 164 162
174: 171(ivec3) Load 173(u3) 166: 117(ptr) AccessChain 21(fout) 16
175: 171(ivec3) BitFieldUExtract 174 164 165 167: 18(float) CompositeExtract 165 0
176: 13(ivec4) Load 15(uout) Store 166 167
177: 171(ivec3) VectorShuffle 176 176 0 1 2 168: 117(ptr) AccessChain 21(fout) 41
178: 171(ivec3) IAdd 177 175 169: 18(float) CompositeExtract 165 1
179: 13(ivec4) Load 15(uout) Store 168 169
180: 13(ivec4) VectorShuffle 179 178 4 5 6 3 170: 18(float) Load 137(v1)
Store 15(uout) 180 173: 6(int) Load 172(i1)
183: 102(ivec3) Load 182(i3) 174: 18(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 170 173
184: 102(ivec3) Load 182(i3) 175: 117(ptr) AccessChain 21(fout) 16
185: 102(ivec3) BitFieldInsert 183 184 164 165 176: 18(float) Load 175
186: 7(ivec4) Load 9(iout) 177: 18(float) FAdd 176 174
187: 102(ivec3) VectorShuffle 186 186 0 1 2 178: 117(ptr) AccessChain 21(fout) 16
188: 102(ivec3) IAdd 187 185 Store 178 177
189: 7(ivec4) Load 9(iout) 179: 6(int) Load 172(i1)
190: 7(ivec4) VectorShuffle 189 188 4 5 6 3 182: 6(int) BitFieldSExtract 179 180 181
Store 9(iout) 190 183: 129(ptr) AccessChain 9(iout) 16
191: 12(int) Load 47(u1) 184: 6(int) Load 183
192: 12(int) Load 47(u1) 185: 6(int) IAdd 184 182
193: 12(int) BitFieldInsert 191 192 164 165 186: 129(ptr) AccessChain 9(iout) 16
194: 56(ptr) AccessChain 15(uout) 16 Store 186 185
195: 12(int) Load 194 190: 187(ivec3) Load 189(u3)
196: 12(int) IAdd 195 193 191: 187(ivec3) BitFieldUExtract 190 180 181
197: 56(ptr) AccessChain 15(uout) 16 192: 13(ivec4) Load 15(uout)
Store 197 196 193: 187(ivec3) VectorShuffle 192 192 0 1 2
198: 144(ivec2) Load 146(i2) 194: 187(ivec3) IAdd 193 191
199: 144(ivec2) BitReverse 198 195: 38(ptr) AccessChain 15(uout) 16
200: 7(ivec4) Load 9(iout) 196: 12(int) CompositeExtract 194 0
201: 144(ivec2) VectorShuffle 200 200 0 1 Store 195 196
202: 144(ivec2) IAdd 201 199 197: 38(ptr) AccessChain 15(uout) 41
203: 7(ivec4) Load 9(iout) 198: 12(int) CompositeExtract 194 1
204: 7(ivec4) VectorShuffle 203 202 4 5 2 3 Store 197 198
Store 9(iout) 204 199: 38(ptr) AccessChain 15(uout) 122
205: 13(ivec4) Load 67(u4) 200: 12(int) CompositeExtract 194 2
206: 13(ivec4) BitReverse 205 Store 199 200
207: 13(ivec4) Load 15(uout) 203: 107(ivec3) Load 202(i3)
208: 13(ivec4) IAdd 207 206 204: 107(ivec3) Load 202(i3)
Store 15(uout) 208 205: 107(ivec3) BitFieldInsert 203 204 180 181
209: 6(int) Load 156(i1) 206: 7(ivec4) Load 9(iout)
210: 6(int) BitCount 209 207: 107(ivec3) VectorShuffle 206 206 0 1 2
211: 135(ptr) AccessChain 9(iout) 16 208: 107(ivec3) IAdd 207 205
212: 6(int) Load 211 209: 129(ptr) AccessChain 9(iout) 16
213: 6(int) IAdd 212 210 210: 6(int) CompositeExtract 208 0
214: 135(ptr) AccessChain 9(iout) 16 Store 209 210
Store 214 213 211: 129(ptr) AccessChain 9(iout) 41
215: 171(ivec3) Load 173(u3) 212: 6(int) CompositeExtract 208 1
216: 102(ivec3) BitCount 215 Store 211 212
217: 7(ivec4) Load 9(iout) 213: 129(ptr) AccessChain 9(iout) 122
218: 102(ivec3) VectorShuffle 217 217 0 1 2 214: 6(int) CompositeExtract 208 2
219: 102(ivec3) IAdd 218 216 Store 213 214
220: 7(ivec4) Load 9(iout) 215: 12(int) Load 53(u1)
221: 7(ivec4) VectorShuffle 220 219 4 5 6 3 216: 12(int) Load 53(u1)
Store 9(iout) 221 217: 12(int) BitFieldInsert 215 216 180 181
222: 144(ivec2) Load 146(i2) 218: 38(ptr) AccessChain 15(uout) 16
223: 144(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 222 219: 12(int) Load 218
220: 12(int) IAdd 219 217
221: 38(ptr) AccessChain 15(uout) 16
Store 221 220
222: 158(ivec2) Load 160(i2)
223: 158(ivec2) BitReverse 222
224: 7(ivec4) Load 9(iout) 224: 7(ivec4) Load 9(iout)
225: 144(ivec2) VectorShuffle 224 224 0 1 225: 158(ivec2) VectorShuffle 224 224 0 1
226: 144(ivec2) IAdd 225 223 226: 158(ivec2) IAdd 225 223
227: 7(ivec4) Load 9(iout) 227: 129(ptr) AccessChain 9(iout) 16
228: 7(ivec4) VectorShuffle 227 226 4 5 2 3 228: 6(int) CompositeExtract 226 0
Store 9(iout) 228 Store 227 228
229: 13(ivec4) Load 67(u4) 229: 129(ptr) AccessChain 9(iout) 41
230: 7(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 229 230: 6(int) CompositeExtract 226 1
231: 7(ivec4) Load 9(iout) Store 229 230
232: 7(ivec4) IAdd 231 230 231: 13(ivec4) Load 72(u4)
Store 9(iout) 232 232: 13(ivec4) BitReverse 231
233: 6(int) Load 156(i1) 233: 13(ivec4) Load 15(uout)
234: 6(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 233 234: 13(ivec4) IAdd 233 232
235: 135(ptr) AccessChain 9(iout) 16 Store 15(uout) 234
236: 6(int) Load 235 235: 6(int) Load 172(i1)
237: 6(int) IAdd 236 234 236: 6(int) BitCount 235
238: 135(ptr) AccessChain 9(iout) 16 237: 129(ptr) AccessChain 9(iout) 16
Store 238 237 238: 6(int) Load 237
239: 24(ivec2) Load 26(u2) 239: 6(int) IAdd 238 236
240: 144(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 239 240: 129(ptr) AccessChain 9(iout) 16
241: 7(ivec4) Load 9(iout) Store 240 239
242: 144(ivec2) VectorShuffle 241 241 0 1 241: 187(ivec3) Load 189(u3)
243: 144(ivec2) IAdd 242 240 242: 107(ivec3) BitCount 241
244: 7(ivec4) Load 9(iout) 243: 7(ivec4) Load 9(iout)
245: 7(ivec4) VectorShuffle 244 243 4 5 2 3 244: 107(ivec3) VectorShuffle 243 243 0 1 2
Store 9(iout) 245 245: 107(ivec3) IAdd 244 242
248: 19(fvec4) Load 247(v4) 246: 129(ptr) AccessChain 9(iout) 16
249: 12(int) ExtInst 1(GLSL.std.450) 55(PackUnorm4x8) 248 247: 6(int) CompositeExtract 245 0
250: 56(ptr) AccessChain 15(uout) 16 Store 246 247
251: 12(int) Load 250 248: 129(ptr) AccessChain 9(iout) 41
252: 12(int) IAdd 251 249 249: 6(int) CompositeExtract 245 1
253: 56(ptr) AccessChain 15(uout) 16 Store 248 249
Store 253 252 250: 129(ptr) AccessChain 9(iout) 122
254: 19(fvec4) Load 247(v4) 251: 6(int) CompositeExtract 245 2
255: 12(int) ExtInst 1(GLSL.std.450) 54(PackSnorm4x8) 254 Store 250 251
256: 56(ptr) AccessChain 15(uout) 16 252: 158(ivec2) Load 160(i2)
257: 12(int) Load 256 253: 158(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 252
258: 12(int) IAdd 257 255 254: 7(ivec4) Load 9(iout)
259: 56(ptr) AccessChain 15(uout) 16 255: 158(ivec2) VectorShuffle 254 254 0 1
Store 259 258 256: 158(ivec2) IAdd 255 253
260: 12(int) Load 47(u1) 257: 129(ptr) AccessChain 9(iout) 16
261: 19(fvec4) ExtInst 1(GLSL.std.450) 64(UnpackUnorm4x8) 260 258: 6(int) CompositeExtract 256 0
262: 19(fvec4) Load 21(fout) Store 257 258
263: 19(fvec4) FAdd 262 261 259: 129(ptr) AccessChain 9(iout) 41
Store 21(fout) 263 260: 6(int) CompositeExtract 256 1
264: 12(int) Load 47(u1) Store 259 260
265: 19(fvec4) ExtInst 1(GLSL.std.450) 63(UnpackSnorm4x8) 264 261: 13(ivec4) Load 72(u4)
266: 19(fvec4) Load 21(fout) 262: 7(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 261
267: 19(fvec4) FAdd 266 265 263: 7(ivec4) Load 9(iout)
Store 21(fout) 267 264: 7(ivec4) IAdd 263 262
Store 9(iout) 264
265: 6(int) Load 172(i1)
266: 6(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 265
267: 129(ptr) AccessChain 9(iout) 16
268: 6(int) Load 267
269: 6(int) IAdd 268 266
270: 129(ptr) AccessChain 9(iout) 16
Store 270 269
271: 24(ivec2) Load 26(u2)
272: 158(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 271
273: 7(ivec4) Load 9(iout)
274: 158(ivec2) VectorShuffle 273 273 0 1
275: 158(ivec2) IAdd 274 272
276: 129(ptr) AccessChain 9(iout) 16
277: 6(int) CompositeExtract 275 0
Store 276 277
278: 129(ptr) AccessChain 9(iout) 41
279: 6(int) CompositeExtract 275 1
Store 278 279
282: 19(fvec4) Load 281(v4)
283: 12(int) ExtInst 1(GLSL.std.450) 55(PackUnorm4x8) 282
284: 38(ptr) AccessChain 15(uout) 16
285: 12(int) Load 284
286: 12(int) IAdd 285 283
287: 38(ptr) AccessChain 15(uout) 16
Store 287 286
288: 19(fvec4) Load 281(v4)
289: 12(int) ExtInst 1(GLSL.std.450) 54(PackSnorm4x8) 288
290: 38(ptr) AccessChain 15(uout) 16
291: 12(int) Load 290
292: 12(int) IAdd 291 289
293: 38(ptr) AccessChain 15(uout) 16
Store 293 292
294: 12(int) Load 53(u1)
295: 19(fvec4) ExtInst 1(GLSL.std.450) 64(UnpackUnorm4x8) 294
296: 19(fvec4) Load 21(fout)
297: 19(fvec4) FAdd 296 295
Store 21(fout) 297
298: 12(int) Load 53(u1)
299: 19(fvec4) ExtInst 1(GLSL.std.450) 63(UnpackSnorm4x8) 298
300: 19(fvec4) Load 21(fout)
301: 19(fvec4) FAdd 300 299
Store 21(fout) 301
Return Return
FunctionEnd FunctionEnd

View File

@ -1,33 +1,33 @@
spv.interpOps.frag spv.interpOps.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 100 // Id's are bound by 120
Capability Shader Capability Shader
Capability InterpolationFunction Capability InterpolationFunction
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 13 24 33 41 47 72 98 EntryPoint Fragment 4 "main" 13 24 36 49 55 86 118
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 450 Source GLSL 450
Name 4 "main" Name 4 "main"
Name 9 "f4" Name 9 "f4"
Name 13 "if1" Name 13 "if1"
Name 24 "if2" Name 24 "if2"
Name 33 "if3" Name 36 "if3"
Name 41 "if4" Name 49 "if4"
Name 47 "samp" Name 55 "samp"
Name 72 "offset" Name 86 "offset"
Name 98 "fragColor" Name 118 "fragColor"
Decorate 13(if1) Location 0 Decorate 13(if1) Location 0
Decorate 24(if2) Location 1 Decorate 24(if2) Location 1
Decorate 33(if3) Location 2 Decorate 36(if3) Location 2
Decorate 41(if4) Location 3 Decorate 49(if4) Location 3
Decorate 47(samp) Flat Decorate 55(samp) Flat
Decorate 47(samp) Location 4 Decorate 55(samp) Location 4
Decorate 72(offset) Flat Decorate 86(offset) Flat
Decorate 72(offset) Location 5 Decorate 86(offset) Location 5
Decorate 98(fragColor) Location 0 Decorate 118(fragColor) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -43,17 +43,19 @@ spv.interpOps.frag
22: TypeVector 6(float) 2 22: TypeVector 6(float) 2
23: TypePointer Input 22(fvec2) 23: TypePointer Input 22(fvec2)
24(if2): 23(ptr) Variable Input 24(if2): 23(ptr) Variable Input
31: TypeVector 6(float) 3 31: 15(int) Constant 1
32: TypePointer Input 31(fvec3) 34: TypeVector 6(float) 3
33(if3): 32(ptr) Variable Input 35: TypePointer Input 34(fvec3)
40: TypePointer Input 7(fvec4) 36(if3): 35(ptr) Variable Input
41(if4): 40(ptr) Variable Input 45: 15(int) Constant 2
45: TypeInt 32 1 48: TypePointer Input 7(fvec4)
46: TypePointer Input 45(int) 49(if4): 48(ptr) Variable Input
47(samp): 46(ptr) Variable Input 53: TypeInt 32 1
72(offset): 23(ptr) Variable Input 54: TypePointer Input 53(int)
97: TypePointer Output 7(fvec4) 55(samp): 54(ptr) Variable Input
98(fragColor): 97(ptr) Variable Output 86(offset): 23(ptr) Variable Input
117: TypePointer Output 7(fvec4)
118(fragColor): 117(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(f4): 8(ptr) Variable Function 9(f4): 8(ptr) Variable Function
@ -68,77 +70,104 @@ spv.interpOps.frag
26: 7(fvec4) Load 9(f4) 26: 7(fvec4) Load 9(f4)
27: 22(fvec2) VectorShuffle 26 26 0 1 27: 22(fvec2) VectorShuffle 26 26 0 1
28: 22(fvec2) FAdd 27 25 28: 22(fvec2) FAdd 27 25
29: 7(fvec4) Load 9(f4) 29: 17(ptr) AccessChain 9(f4) 16
30: 7(fvec4) VectorShuffle 29 28 4 5 2 3 30: 6(float) CompositeExtract 28 0
Store 9(f4) 30 Store 29 30
34: 31(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 33(if3) 32: 17(ptr) AccessChain 9(f4) 31
35: 7(fvec4) Load 9(f4) 33: 6(float) CompositeExtract 28 1
36: 31(fvec3) VectorShuffle 35 35 0 1 2 Store 32 33
37: 31(fvec3) FAdd 36 34 37: 34(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 36(if3)
38: 7(fvec4) Load 9(f4) 38: 7(fvec4) Load 9(f4)
39: 7(fvec4) VectorShuffle 38 37 4 5 6 3 39: 34(fvec3) VectorShuffle 38 38 0 1 2
Store 9(f4) 39 40: 34(fvec3) FAdd 39 37
42: 7(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 41(if4) 41: 17(ptr) AccessChain 9(f4) 16
43: 7(fvec4) Load 9(f4) 42: 6(float) CompositeExtract 40 0
44: 7(fvec4) FAdd 43 42 Store 41 42
Store 9(f4) 44 43: 17(ptr) AccessChain 9(f4) 31
48: 45(int) Load 47(samp) 44: 6(float) CompositeExtract 40 1
49: 6(float) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 13(if1) 48 Store 43 44
50: 17(ptr) AccessChain 9(f4) 16 46: 17(ptr) AccessChain 9(f4) 45
51: 6(float) Load 50 47: 6(float) CompositeExtract 40 2
52: 6(float) FAdd 51 49 Store 46 47
53: 17(ptr) AccessChain 9(f4) 16 50: 7(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 49(if4)
Store 53 52 51: 7(fvec4) Load 9(f4)
54: 45(int) Load 47(samp) 52: 7(fvec4) FAdd 51 50
55: 22(fvec2) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 24(if2) 54 Store 9(f4) 52
56: 7(fvec4) Load 9(f4) 56: 53(int) Load 55(samp)
57: 22(fvec2) VectorShuffle 56 56 0 1 57: 6(float) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 13(if1) 56
58: 22(fvec2) FAdd 57 55 58: 17(ptr) AccessChain 9(f4) 16
59: 7(fvec4) Load 9(f4) 59: 6(float) Load 58
60: 7(fvec4) VectorShuffle 59 58 4 5 2 3 60: 6(float) FAdd 59 57
Store 9(f4) 60 61: 17(ptr) AccessChain 9(f4) 16
61: 45(int) Load 47(samp) Store 61 60
62: 31(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 33(if3) 61 62: 53(int) Load 55(samp)
63: 7(fvec4) Load 9(f4) 63: 22(fvec2) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 24(if2) 62
64: 31(fvec3) VectorShuffle 63 63 0 1 2 64: 7(fvec4) Load 9(f4)
65: 31(fvec3) FAdd 64 62 65: 22(fvec2) VectorShuffle 64 64 0 1
66: 7(fvec4) Load 9(f4) 66: 22(fvec2) FAdd 65 63
67: 7(fvec4) VectorShuffle 66 65 4 5 6 3 67: 17(ptr) AccessChain 9(f4) 16
Store 9(f4) 67 68: 6(float) CompositeExtract 66 0
68: 45(int) Load 47(samp) Store 67 68
69: 7(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 41(if4) 68 69: 17(ptr) AccessChain 9(f4) 31
70: 7(fvec4) Load 9(f4) 70: 6(float) CompositeExtract 66 1
71: 7(fvec4) FAdd 70 69 Store 69 70
Store 9(f4) 71 71: 53(int) Load 55(samp)
73: 22(fvec2) Load 72(offset) 72: 34(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 36(if3) 71
74: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 13(if1) 73 73: 7(fvec4) Load 9(f4)
75: 17(ptr) AccessChain 9(f4) 16 74: 34(fvec3) VectorShuffle 73 73 0 1 2
76: 6(float) Load 75 75: 34(fvec3) FAdd 74 72
77: 6(float) FAdd 76 74 76: 17(ptr) AccessChain 9(f4) 16
78: 17(ptr) AccessChain 9(f4) 16 77: 6(float) CompositeExtract 75 0
Store 78 77 Store 76 77
79: 22(fvec2) Load 72(offset) 78: 17(ptr) AccessChain 9(f4) 31
80: 22(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 24(if2) 79 79: 6(float) CompositeExtract 75 1
81: 7(fvec4) Load 9(f4) Store 78 79
82: 22(fvec2) VectorShuffle 81 81 0 1 80: 17(ptr) AccessChain 9(f4) 45
83: 22(fvec2) FAdd 82 80 81: 6(float) CompositeExtract 75 2
Store 80 81
82: 53(int) Load 55(samp)
83: 7(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 49(if4) 82
84: 7(fvec4) Load 9(f4) 84: 7(fvec4) Load 9(f4)
85: 7(fvec4) VectorShuffle 84 83 4 5 2 3 85: 7(fvec4) FAdd 84 83
Store 9(f4) 85 Store 9(f4) 85
86: 22(fvec2) Load 72(offset) 87: 22(fvec2) Load 86(offset)
87: 31(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33(if3) 86 88: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 13(if1) 87
88: 7(fvec4) Load 9(f4) 89: 17(ptr) AccessChain 9(f4) 16
89: 31(fvec3) VectorShuffle 88 88 0 1 2 90: 6(float) Load 89
90: 31(fvec3) FAdd 89 87 91: 6(float) FAdd 90 88
91: 7(fvec4) Load 9(f4) 92: 17(ptr) AccessChain 9(f4) 16
92: 7(fvec4) VectorShuffle 91 90 4 5 6 3 Store 92 91
Store 9(f4) 92 93: 22(fvec2) Load 86(offset)
93: 22(fvec2) Load 72(offset) 94: 22(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 24(if2) 93
94: 7(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 41(if4) 93
95: 7(fvec4) Load 9(f4) 95: 7(fvec4) Load 9(f4)
96: 7(fvec4) FAdd 95 94 96: 22(fvec2) VectorShuffle 95 95 0 1
Store 9(f4) 96 97: 22(fvec2) FAdd 96 94
99: 7(fvec4) Load 9(f4) 98: 17(ptr) AccessChain 9(f4) 16
Store 98(fragColor) 99 99: 6(float) CompositeExtract 97 0
Store 98 99
100: 17(ptr) AccessChain 9(f4) 31
101: 6(float) CompositeExtract 97 1
Store 100 101
102: 22(fvec2) Load 86(offset)
103: 34(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 36(if3) 102
104: 7(fvec4) Load 9(f4)
105: 34(fvec3) VectorShuffle 104 104 0 1 2
106: 34(fvec3) FAdd 105 103
107: 17(ptr) AccessChain 9(f4) 16
108: 6(float) CompositeExtract 106 0
Store 107 108
109: 17(ptr) AccessChain 9(f4) 31
110: 6(float) CompositeExtract 106 1
Store 109 110
111: 17(ptr) AccessChain 9(f4) 45
112: 6(float) CompositeExtract 106 2
Store 111 112
113: 22(fvec2) Load 86(offset)
114: 7(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 49(if4) 113
115: 7(fvec4) Load 9(f4)
116: 7(fvec4) FAdd 115 114
Store 9(f4) 116
119: 7(fvec4) Load 9(f4)
Store 118(fragColor) 119
Return Return
FunctionEnd FunctionEnd

View File

@ -0,0 +1,119 @@
spv.load.bool.array.interface.block.frag
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 80
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 77
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
Name 4 "main"
Name 11 "ssbo"
MemberName 11(ssbo) 0 "bo"
Name 13 ""
Name 18 "ub"
MemberName 18(ub) 0 "bi"
Name 20 ""
Name 77 "color"
Decorate 8 ArrayStride 4
Decorate 10 ArrayStride 12
MemberDecorate 11(ssbo) 0 Offset 0
Decorate 11(ssbo) BufferBlock
Decorate 13 DescriptorSet 0
Decorate 13 Binding 1
Decorate 16 ArrayStride 16
Decorate 17 ArrayStride 48
MemberDecorate 18(ub) 0 Offset 0
Decorate 18(ub) Block
Decorate 20 DescriptorSet 0
Decorate 20 Binding 0
Decorate 77(color) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: 6(int) Constant 3
8: TypeArray 6(int) 7
9: 6(int) Constant 2
10: TypeArray 8 9
11(ssbo): TypeStruct 10
12: TypePointer Uniform 11(ssbo)
13: 12(ptr) Variable Uniform
14: TypeInt 32 1
15: 14(int) Constant 0
16: TypeArray 6(int) 7
17: TypeArray 16 9
18(ub): TypeStruct 17
19: TypePointer Uniform 18(ub)
20: 19(ptr) Variable Uniform
21: TypePointer Uniform 17
24: TypeBool
25: TypeArray 24(bool) 7
26: TypeArray 25 9
29: 6(int) Constant 0
45: TypePointer Uniform 10
48: TypePointer Uniform 8
51: 6(int) Constant 1
53: TypePointer Uniform 6(int)
56: 14(int) Constant 1
60: 14(int) Constant 2
74: TypeFloat 32
75: TypeVector 74(float) 4
76: TypePointer Output 75(fvec4)
77(color): 76(ptr) Variable Output
78: 74(float) Constant 0
79: 75(fvec4) ConstantComposite 78 78 78 78
4(main): 2 Function None 3
5: Label
22: 21(ptr) AccessChain 20 15
23: 17 Load 22
27: 16 CompositeExtract 23 0
28: 6(int) CompositeExtract 27 0
30: 24(bool) INotEqual 28 29
31: 6(int) CompositeExtract 27 1
32: 24(bool) INotEqual 31 29
33: 6(int) CompositeExtract 27 2
34: 24(bool) INotEqual 33 29
35: 25 CompositeConstruct 30 32 34
36: 16 CompositeExtract 23 1
37: 6(int) CompositeExtract 36 0
38: 24(bool) INotEqual 37 29
39: 6(int) CompositeExtract 36 1
40: 24(bool) INotEqual 39 29
41: 6(int) CompositeExtract 36 2
42: 24(bool) INotEqual 41 29
43: 25 CompositeConstruct 38 40 42
44: 26 CompositeConstruct 35 43
46: 45(ptr) AccessChain 13 15
47: 25 CompositeExtract 44 0
49: 48(ptr) AccessChain 46 15
50: 24(bool) CompositeExtract 47 0
52: 6(int) Select 50 51 29
54: 53(ptr) AccessChain 49 15
Store 54 52
55: 24(bool) CompositeExtract 47 1
57: 6(int) Select 55 51 29
58: 53(ptr) AccessChain 49 56
Store 58 57
59: 24(bool) CompositeExtract 47 2
61: 6(int) Select 59 51 29
62: 53(ptr) AccessChain 49 60
Store 62 61
63: 25 CompositeExtract 44 1
64: 48(ptr) AccessChain 46 56
65: 24(bool) CompositeExtract 63 0
66: 6(int) Select 65 51 29
67: 53(ptr) AccessChain 64 15
Store 67 66
68: 24(bool) CompositeExtract 63 1
69: 6(int) Select 68 51 29
70: 53(ptr) AccessChain 64 56
Store 70 69
71: 24(bool) CompositeExtract 63 2
72: 6(int) Select 71 51 29
73: 53(ptr) AccessChain 64 60
Store 73 72
Store 77(color) 79
Return
FunctionEnd

View File

@ -2,7 +2,7 @@ spv.memoryQualifier.frag
Validation failed Validation failed
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 97 // Id's are bound by 105
Capability Shader Capability Shader
Capability ImageRect Capability ImageRect
@ -106,14 +106,16 @@ Validation failed
58: TypePointer Uniform 6(float) 58: TypePointer Uniform 6(float)
61: TypePointer Function 6(float) 61: TypePointer Function 6(float)
63: TypePointer Uniform 47(fvec2) 63: TypePointer Uniform 47(fvec2)
71: 14(int) Constant 2 69: TypeInt 32 0
72: TypePointer Uniform 48(fvec3) 70: 69(int) Constant 0
80: 14(int) Constant 5 73: 69(int) Constant 1
83: TypeInt 32 0 76: 14(int) Constant 2
84: 83(int) Constant 1 77: TypePointer Uniform 48(fvec3)
88: 83(int) Constant 3 87: 69(int) Constant 2
93: 14(int) Constant 3 90: 14(int) Constant 5
95: TypePointer Uniform 7(fvec4) 96: 69(int) Constant 3
101: 14(int) Constant 3
103: TypePointer Uniform 7(fvec4)
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(texel): 8(ptr) Variable Function 9(texel): 8(ptr) Variable Function
@ -149,29 +151,38 @@ Validation failed
66: 7(fvec4) Load 9(texel) 66: 7(fvec4) Load 9(texel)
67: 47(fvec2) VectorShuffle 66 66 0 1 67: 47(fvec2) VectorShuffle 66 66 0 1
68: 47(fvec2) FAdd 67 65 68: 47(fvec2) FAdd 67 65
69: 7(fvec4) Load 9(texel) 71: 61(ptr) AccessChain 9(texel) 70
70: 7(fvec4) VectorShuffle 69 68 4 5 2 3 72: 6(float) CompositeExtract 68 0
Store 9(texel) 70 Store 71 72
73: 72(ptr) AccessChain 52 71 74: 61(ptr) AccessChain 9(texel) 73
74: 48(fvec3) Load 73 75: 6(float) CompositeExtract 68 1
75: 7(fvec4) Load 9(texel) Store 74 75
76: 48(fvec3) VectorShuffle 75 75 0 1 2 78: 77(ptr) AccessChain 52 76
77: 48(fvec3) FSub 76 74 79: 48(fvec3) Load 78
78: 7(fvec4) Load 9(texel) 80: 7(fvec4) Load 9(texel)
79: 7(fvec4) VectorShuffle 78 77 4 5 6 3 81: 48(fvec3) VectorShuffle 80 80 0 1 2
Store 9(texel) 79 82: 48(fvec3) FSub 81 79
81: 58(ptr) AccessChain 52 80 57 83: 61(ptr) AccessChain 9(texel) 70
82: 6(float) Load 81 84: 6(float) CompositeExtract 82 0
85: 58(ptr) AccessChain 52 80 15 84 Store 83 84
86: 6(float) Load 85 85: 61(ptr) AccessChain 9(texel) 73
87: 6(float) FAdd 82 86 86: 6(float) CompositeExtract 82 1
89: 61(ptr) AccessChain 9(texel) 88 Store 85 86
90: 6(float) Load 89 88: 61(ptr) AccessChain 9(texel) 87
91: 6(float) FAdd 90 87 89: 6(float) CompositeExtract 82 2
92: 61(ptr) AccessChain 9(texel) 88 Store 88 89
Store 92 91 91: 58(ptr) AccessChain 52 90 57
94: 7(fvec4) Load 9(texel) 92: 6(float) Load 91
96: 95(ptr) AccessChain 52 93 93: 58(ptr) AccessChain 52 90 15 73
Store 96 94 94: 6(float) Load 93
95: 6(float) FAdd 92 94
97: 61(ptr) AccessChain 9(texel) 96
98: 6(float) Load 97
99: 6(float) FAdd 98 95
100: 61(ptr) AccessChain 9(texel) 96
Store 100 99
102: 7(fvec4) Load 9(texel)
104: 103(ptr) AccessChain 52 101
Store 104 102
Return Return
FunctionEnd FunctionEnd

View File

@ -1,13 +1,13 @@
spv.meshShaderUserDefined.mesh spv.meshShaderUserDefined.mesh
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 138 // Id's are bound by 141
Capability MeshShadingNV Capability MeshShadingNV
Extension "SPV_NV_mesh_shader" Extension "SPV_NV_mesh_shader"
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint MeshNV 4 "main" 11 17 34 101 EntryPoint MeshNV 4 "main" 11 17 34 104
ExecutionMode 4 LocalSize 32 1 1 ExecutionMode 4 LocalSize 32 1 1
ExecutionMode 4 OutputVertices 81 ExecutionMode 4 OutputVertices 81
ExecutionMode 4 OutputPrimitivesNV 32 ExecutionMode 4 OutputPrimitivesNV 32
@ -27,11 +27,11 @@ spv.meshShaderUserDefined.mesh
MemberName 30(myblock) 4 "m" MemberName 30(myblock) 4 "m"
MemberName 30(myblock) 5 "mArr" MemberName 30(myblock) 5 "mArr"
Name 34 "blk" Name 34 "blk"
Name 97 "myblock2" Name 100 "myblock2"
MemberName 97(myblock2) 0 "f" MemberName 100(myblock2) 0 "f"
MemberName 97(myblock2) 1 "pos" MemberName 100(myblock2) 1 "pos"
MemberName 97(myblock2) 2 "m" MemberName 100(myblock2) 2 "m"
Name 101 "blk2" Name 104 "blk2"
Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 17(gl_WorkGroupID) BuiltIn WorkgroupId Decorate 17(gl_WorkGroupID) BuiltIn WorkgroupId
MemberDecorate 30(myblock) 0 PerPrimitiveNV MemberDecorate 30(myblock) 0 PerPrimitiveNV
@ -42,9 +42,9 @@ spv.meshShaderUserDefined.mesh
MemberDecorate 30(myblock) 5 PerPrimitiveNV MemberDecorate 30(myblock) 5 PerPrimitiveNV
Decorate 30(myblock) Block Decorate 30(myblock) Block
Decorate 34(blk) Location 0 Decorate 34(blk) Location 0
Decorate 97(myblock2) Block Decorate 100(myblock2) Block
Decorate 101(blk2) Location 20 Decorate 104(blk2) Location 20
Decorate 137 BuiltIn WorkgroupSize Decorate 140 BuiltIn WorkgroupSize
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0
@ -83,30 +83,30 @@ spv.meshShaderUserDefined.mesh
56: 23(fvec3) ConstantComposite 53 54 55 56: 23(fvec3) ConstantComposite 53 54 55
57: TypePointer Output 23(fvec3) 57: TypePointer Output 23(fvec3)
63: 36(int) Constant 3 63: 36(int) Constant 3
68: TypePointer Output 24(fvec4) 72: 6(int) Constant 3
74: 36(int) Constant 4 77: 36(int) Constant 4
75: 20(float) Constant 1098907648 78: 20(float) Constant 1098907648
76: 24(fvec4) ConstantComposite 55 53 54 75 79: 24(fvec4) ConstantComposite 55 53 54 78
81: 36(int) Constant 5 80: TypePointer Output 24(fvec4)
84: 6(int) Constant 3 85: 36(int) Constant 5
91: 20(float) Constant 1099431936 94: 20(float) Constant 1099431936
92: 20(float) Constant 1099956224 95: 20(float) Constant 1099956224
93: 20(float) Constant 1100480512 96: 20(float) Constant 1100480512
94: 23(fvec3) ConstantComposite 91 92 93 97: 23(fvec3) ConstantComposite 94 95 96
96: 6(int) Constant 264 99: 6(int) Constant 264
97(myblock2): TypeStruct 20(float) 24(fvec4) 26 100(myblock2): TypeStruct 20(float) 24(fvec4) 26
98: 6(int) Constant 81 101: 6(int) Constant 81
99: TypeArray 97(myblock2) 98 102: TypeArray 100(myblock2) 101
100: TypePointer Output 99 103: TypePointer Output 102
101(blk2): 100(ptr) Variable Output 104(blk2): 103(ptr) Variable Output
107: 20(float) Constant 1101004800 110: 20(float) Constant 1101004800
111: 20(float) Constant 1101529088 114: 20(float) Constant 1101529088
112: 20(float) Constant 1102053376 115: 20(float) Constant 1102053376
113: 20(float) Constant 1102577664 116: 20(float) Constant 1102577664
114: 20(float) Constant 1103101952 117: 20(float) Constant 1103101952
115: 24(fvec4) ConstantComposite 111 112 113 114 118: 24(fvec4) ConstantComposite 114 115 116 117
127: 20(float) Constant 1105723392 130: 20(float) Constant 1105723392
137: 9(ivec3) ConstantComposite 31 42 42 140: 9(ivec3) ConstantComposite 31 42 42
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
8(iid): 7(ptr) Variable Function 8(iid): 7(ptr) Variable Function
@ -140,64 +140,69 @@ spv.meshShaderUserDefined.mesh
65: 6(int) UDiv 64 28 65: 6(int) UDiv 64 28
66: 57(ptr) AccessChain 34(blk) 65 52 66: 57(ptr) AccessChain 34(blk) 65 52
67: 23(fvec3) Load 66 67: 23(fvec3) Load 66
69: 68(ptr) AccessChain 34(blk) 62 63 44 68: 39(ptr) AccessChain 34(blk) 62 63 44 42
70: 24(fvec4) Load 69 69: 20(float) CompositeExtract 67 0
71: 24(fvec4) VectorShuffle 70 67 0 4 5 6 Store 68 69
Store 69 71 70: 39(ptr) AccessChain 34(blk) 62 63 44 28
72: 6(int) Load 8(iid) 71: 20(float) CompositeExtract 67 1
73: 6(int) UDiv 72 21 Store 70 71
77: 68(ptr) AccessChain 34(blk) 73 74 52 73: 39(ptr) AccessChain 34(blk) 62 63 44 72
78: 24(fvec4) Load 77 74: 20(float) CompositeExtract 67 2
79: 24(fvec4) VectorShuffle 78 76 7 6 5 4 Store 73 74
Store 77 79 75: 6(int) Load 8(iid)
80: 6(int) Load 8(iid) 76: 6(int) UDiv 75 21
82: 6(int) Load 8(iid) 81: 80(ptr) AccessChain 34(blk) 76 77 52
83: 6(int) UDiv 82 21 82: 24(fvec4) Load 81
85: 39(ptr) AccessChain 34(blk) 83 74 52 84 83: 24(fvec4) VectorShuffle 82 79 7 6 5 4
86: 20(float) Load 85 Store 81 83
87: 39(ptr) AccessChain 34(blk) 80 81 37 44 42 84: 6(int) Load 8(iid)
Store 87 86 86: 6(int) Load 8(iid)
88: 6(int) Load 8(iid) 87: 6(int) UDiv 86 21
89: 6(int) IMul 88 21 88: 39(ptr) AccessChain 34(blk) 87 77 52 72
90: 6(int) Load 16(gid) 89: 20(float) Load 88
95: 57(ptr) AccessChain 34(blk) 89 81 44 90 90: 39(ptr) AccessChain 34(blk) 84 85 37 44 42
Store 95 94 Store 90 89
MemoryBarrier 42 96 91: 6(int) Load 8(iid)
ControlBarrier 28 28 96 92: 6(int) IMul 91 21
102: 6(int) Load 8(iid) 93: 6(int) Load 16(gid)
103: 6(int) Load 8(iid) 98: 57(ptr) AccessChain 34(blk) 92 85 44 93
104: 6(int) ISub 103 42 Store 98 97
105: 39(ptr) AccessChain 101(blk2) 104 37 MemoryBarrier 42 99
106: 20(float) Load 105 ControlBarrier 28 28 99
108: 20(float) FAdd 106 107 105: 6(int) Load 8(iid)
109: 39(ptr) AccessChain 101(blk2) 102 37 106: 6(int) Load 8(iid)
Store 109 108 107: 6(int) ISub 106 42
110: 6(int) Load 8(iid) 108: 39(ptr) AccessChain 104(blk2) 107 37
116: 68(ptr) AccessChain 101(blk2) 110 44 109: 20(float) Load 108
Store 116 115 111: 20(float) FAdd 109 110
117: 6(int) Load 8(iid) 112: 39(ptr) AccessChain 104(blk2) 105 37
118: 6(int) IAdd 117 42 Store 112 111
119: 6(int) Load 16(gid) 113: 6(int) Load 8(iid)
119: 80(ptr) AccessChain 104(blk2) 113 44
Store 119 118
120: 6(int) Load 8(iid) 120: 6(int) Load 8(iid)
121: 68(ptr) AccessChain 101(blk2) 120 44 121: 6(int) IAdd 120 42
122: 24(fvec4) Load 121 122: 6(int) Load 16(gid)
123: 68(ptr) AccessChain 101(blk2) 118 52 119 123: 6(int) Load 8(iid)
Store 123 122 124: 80(ptr) AccessChain 104(blk2) 123 44
124: 6(int) Load 8(iid) 125: 24(fvec4) Load 124
125: 6(int) IAdd 124 42 126: 80(ptr) AccessChain 104(blk2) 121 52 122
126: 6(int) Load 16(gid) Store 126 125
128: 39(ptr) AccessChain 101(blk2) 125 52 126 28 127: 6(int) Load 8(iid)
Store 128 127 128: 6(int) IAdd 127 42
129: 6(int) Load 8(iid) 129: 6(int) Load 16(gid)
130: 6(int) IAdd 129 28 131: 39(ptr) AccessChain 104(blk2) 128 52 129 28
131: 6(int) Load 8(iid) Store 131 130
132: 6(int) IAdd 131 42 132: 6(int) Load 8(iid)
133: 6(int) Load 16(gid) 133: 6(int) IAdd 132 28
134: 68(ptr) AccessChain 101(blk2) 132 52 133 134: 6(int) Load 8(iid)
135: 24(fvec4) Load 134 135: 6(int) IAdd 134 42
136: 68(ptr) AccessChain 101(blk2) 130 52 63 136: 6(int) Load 16(gid)
Store 136 135 137: 80(ptr) AccessChain 104(blk2) 135 52 136
MemoryBarrier 42 96 138: 24(fvec4) Load 137
ControlBarrier 28 28 96 139: 80(ptr) AccessChain 104(blk2) 133 52 63
Store 139 138
MemoryBarrier 42 99
ControlBarrier 28 28 99
Return Return
FunctionEnd FunctionEnd

View File

@ -1,15 +1,14 @@
spv.rw.autoassign.frag spv.rw.autoassign.frag
Validation failed
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 42 // Id's are bound by 45
Capability Shader Capability Shader
Capability Image1D Capability Image1D
Capability ImageBuffer Capability ImageBuffer
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 39 EntryPoint Fragment 4 "main" 42
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
@ -18,15 +17,15 @@ Validation failed
Name 10 "@main(" Name 10 "@main("
Name 13 "r00" Name 13 "r00"
Name 16 "g_tTex1df1" Name 16 "g_tTex1df1"
Name 23 "r01" Name 24 "r01"
Name 26 "g_tBuf1du1" Name 27 "g_tBuf1du1"
Name 30 "psout" Name 33 "psout"
Name 39 "@entryPointOutput.Color" Name 42 "@entryPointOutput.Color"
Decorate 16(g_tTex1df1) DescriptorSet 0 Decorate 16(g_tTex1df1) DescriptorSet 0
Decorate 16(g_tTex1df1) Binding 20 Decorate 16(g_tTex1df1) Binding 20
Decorate 26(g_tBuf1du1) DescriptorSet 0 Decorate 27(g_tBuf1du1) DescriptorSet 0
Decorate 26(g_tBuf1du1) Binding 21 Decorate 27(g_tBuf1du1) Binding 21
Decorate 39(@entryPointOutput.Color) Location 0 Decorate 42(@entryPointOutput.Color) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -39,37 +38,40 @@ Validation failed
16(g_tTex1df1): 15(ptr) Variable UniformConstant 16(g_tTex1df1): 15(ptr) Variable UniformConstant
18: TypeInt 32 1 18: TypeInt 32 1
19: 18(int) Constant 0 19: 18(int) Constant 0
21: TypeInt 32 0 22: TypeInt 32 0
22: TypePointer Function 21(int) 23: TypePointer Function 22(int)
24: TypeImage 21(int) Buffer nonsampled format:R32ui 25: TypeImage 22(int) Buffer nonsampled format:R32ui
25: TypePointer UniformConstant 24 26: TypePointer UniformConstant 25
26(g_tBuf1du1): 25(ptr) Variable UniformConstant 27(g_tBuf1du1): 26(ptr) Variable UniformConstant
29: TypePointer Function 8(PS_OUTPUT) 29: TypeVector 22(int) 4
31: 6(float) Constant 0 32: TypePointer Function 8(PS_OUTPUT)
32: 7(fvec4) ConstantComposite 31 31 31 31 34: 6(float) Constant 0
33: TypePointer Function 7(fvec4) 35: 7(fvec4) ConstantComposite 34 34 34 34
38: TypePointer Output 7(fvec4) 36: TypePointer Function 7(fvec4)
39(@entryPointOutput.Color): 38(ptr) Variable Output 41: TypePointer Output 7(fvec4)
42(@entryPointOutput.Color): 41(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
40:8(PS_OUTPUT) FunctionCall 10(@main() 43:8(PS_OUTPUT) FunctionCall 10(@main()
41: 7(fvec4) CompositeExtract 40 0 44: 7(fvec4) CompositeExtract 43 0
Store 39(@entryPointOutput.Color) 41 Store 42(@entryPointOutput.Color) 44
Return Return
FunctionEnd FunctionEnd
10(@main():8(PS_OUTPUT) Function None 9 10(@main():8(PS_OUTPUT) Function None 9
11: Label 11: Label
13(r00): 12(ptr) Variable Function 13(r00): 12(ptr) Variable Function
23(r01): 22(ptr) Variable Function 24(r01): 23(ptr) Variable Function
30(psout): 29(ptr) Variable Function 33(psout): 32(ptr) Variable Function
17: 14 Load 16(g_tTex1df1) 17: 14 Load 16(g_tTex1df1)
20: 6(float) ImageRead 17 19 20: 7(fvec4) ImageRead 17 19
Store 13(r00) 20 21: 6(float) CompositeExtract 20 0
27: 24 Load 26(g_tBuf1du1) Store 13(r00) 21
28: 21(int) ImageRead 27 19 28: 25 Load 27(g_tBuf1du1)
Store 23(r01) 28 30: 29(ivec4) ImageRead 28 19
34: 33(ptr) AccessChain 30(psout) 19 31: 22(int) CompositeExtract 30 0
Store 34 32 Store 24(r01) 31
35:8(PS_OUTPUT) Load 30(psout) 37: 36(ptr) AccessChain 33(psout) 19
ReturnValue 35 Store 37 35
38:8(PS_OUTPUT) Load 33(psout)
ReturnValue 38
FunctionEnd FunctionEnd

View File

@ -1,7 +1,7 @@
spv.shaderBallot.comp spv.shaderBallot.comp
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 318 // Id's are bound by 343
Capability Shader Capability Shader
Capability Int64 Capability Int64
@ -42,7 +42,7 @@ spv.shaderBallot.comp
Decorate 72(Buffers) BufferBlock Decorate 72(Buffers) BufferBlock
Decorate 75(data) DescriptorSet 0 Decorate 75(data) DescriptorSet 0
Decorate 75(data) Binding 0 Decorate 75(data) Binding 0
Decorate 317 BuiltIn WorkgroupSize Decorate 342 BuiltIn WorkgroupSize
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0
@ -77,19 +77,20 @@ spv.shaderBallot.comp
86: 70(int) Constant 1 86: 70(int) Constant 1
87: TypeVector 68(float) 2 87: TypeVector 68(float) 2
88: TypePointer Uniform 69(fvec4) 88: TypePointer Uniform 69(fvec4)
102: 70(int) Constant 2 100: 6(int) Constant 1
103: TypeVector 68(float) 3 104: 70(int) Constant 2
119: 70(int) Constant 3 105: TypeVector 68(float) 3
134: TypePointer Uniform 70(int) 121: 6(int) Constant 2
141: TypeVector 70(int) 2 125: 70(int) Constant 3
142: TypePointer Uniform 71(ivec4) 140: TypePointer Uniform 70(int)
156: TypeVector 70(int) 3 147: TypeVector 70(int) 2
186: TypePointer Uniform 6(int) 148: TypePointer Uniform 71(ivec4)
193: TypePointer Uniform 20(ivec4) 163: TypeVector 70(int) 3
207: TypeVector 6(int) 3 196: TypePointer Uniform 6(int)
315: 6(int) Constant 8 203: TypePointer Uniform 20(ivec4)
316: 6(int) Constant 1 218: TypeVector 6(int) 3
317: 207(ivec3) ConstantComposite 315 315 316 341: 6(int) Constant 8
342: 218(ivec3) ConstantComposite 341 341 100
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
8(invocation): 7(ptr) Variable Function 8(invocation): 7(ptr) Variable Function
@ -137,7 +138,7 @@ spv.shaderBallot.comp
64: 17(int64_t) Bitcast 63 64: 17(int64_t) Bitcast 63
65: 58(bool) IEqual 57 64 65: 58(bool) IEqual 57 64
SelectionMerge 67 None SelectionMerge 67 None
BranchConditional 65 66 236 BranchConditional 65 66 250
66: Label 66: Label
76: 6(int) Load 8(invocation) 76: 6(int) Load 8(invocation)
80: 79(ptr) AccessChain 75(data) 77 77 78 80: 79(ptr) AccessChain 75(data) 77 77 78
@ -156,237 +157,279 @@ spv.shaderBallot.comp
95: 68(float) CompositeExtract 91 1 95: 68(float) CompositeExtract 91 1
96: 68(float) SubgroupReadInvocationKHR 95 92 96: 68(float) SubgroupReadInvocationKHR 95 92
97: 87(fvec2) CompositeConstruct 94 96 97: 87(fvec2) CompositeConstruct 94 96
98: 88(ptr) AccessChain 75(data) 85 77 98: 79(ptr) AccessChain 75(data) 85 77 78
99: 69(fvec4) Load 98 99: 68(float) CompositeExtract 97 0
100: 69(fvec4) VectorShuffle 99 97 4 5 2 3 Store 98 99
Store 98 100 101: 79(ptr) AccessChain 75(data) 85 77 100
101: 6(int) Load 8(invocation) 102: 68(float) CompositeExtract 97 1
104: 88(ptr) AccessChain 75(data) 102 77 Store 101 102
105: 69(fvec4) Load 104 103: 6(int) Load 8(invocation)
106: 103(fvec3) VectorShuffle 105 105 0 1 2 106: 88(ptr) AccessChain 75(data) 104 77
107: 6(int) Load 8(invocation) 107: 69(fvec4) Load 106
108: 68(float) CompositeExtract 106 0 108: 105(fvec3) VectorShuffle 107 107 0 1 2
109: 68(float) SubgroupReadInvocationKHR 108 107 109: 6(int) Load 8(invocation)
110: 68(float) CompositeExtract 106 1 110: 68(float) CompositeExtract 108 0
111: 68(float) SubgroupReadInvocationKHR 110 107 111: 68(float) SubgroupReadInvocationKHR 110 109
112: 68(float) CompositeExtract 106 2 112: 68(float) CompositeExtract 108 1
113: 68(float) SubgroupReadInvocationKHR 112 107 113: 68(float) SubgroupReadInvocationKHR 112 109
114: 103(fvec3) CompositeConstruct 109 111 113 114: 68(float) CompositeExtract 108 2
115: 88(ptr) AccessChain 75(data) 101 77 115: 68(float) SubgroupReadInvocationKHR 114 109
116: 69(fvec4) Load 115 116: 105(fvec3) CompositeConstruct 111 113 115
117: 69(fvec4) VectorShuffle 116 114 4 5 6 3 117: 79(ptr) AccessChain 75(data) 103 77 78
Store 115 117 118: 68(float) CompositeExtract 116 0
118: 6(int) Load 8(invocation) Store 117 118
120: 88(ptr) AccessChain 75(data) 119 77 119: 79(ptr) AccessChain 75(data) 103 77 100
121: 69(fvec4) Load 120 120: 68(float) CompositeExtract 116 1
122: 6(int) Load 8(invocation) Store 119 120
123: 68(float) CompositeExtract 121 0 122: 79(ptr) AccessChain 75(data) 103 77 121
124: 68(float) SubgroupReadInvocationKHR 123 122 123: 68(float) CompositeExtract 116 2
125: 68(float) CompositeExtract 121 1 Store 122 123
126: 68(float) SubgroupReadInvocationKHR 125 122 124: 6(int) Load 8(invocation)
127: 68(float) CompositeExtract 121 2 126: 88(ptr) AccessChain 75(data) 125 77
128: 68(float) SubgroupReadInvocationKHR 127 122 127: 69(fvec4) Load 126
129: 68(float) CompositeExtract 121 3 128: 6(int) Load 8(invocation)
130: 68(float) SubgroupReadInvocationKHR 129 122 129: 68(float) CompositeExtract 127 0
131: 69(fvec4) CompositeConstruct 124 126 128 130 130: 68(float) SubgroupReadInvocationKHR 129 128
132: 88(ptr) AccessChain 75(data) 118 77 131: 68(float) CompositeExtract 127 1
Store 132 131 132: 68(float) SubgroupReadInvocationKHR 131 128
133: 6(int) Load 8(invocation) 133: 68(float) CompositeExtract 127 2
135: 134(ptr) AccessChain 75(data) 77 86 78 134: 68(float) SubgroupReadInvocationKHR 133 128
136: 70(int) Load 135 135: 68(float) CompositeExtract 127 3
137: 6(int) Load 8(invocation) 136: 68(float) SubgroupReadInvocationKHR 135 128
138: 70(int) SubgroupReadInvocationKHR 136 137 137: 69(fvec4) CompositeConstruct 130 132 134 136
139: 134(ptr) AccessChain 75(data) 133 86 78 138: 88(ptr) AccessChain 75(data) 124 77
Store 139 138 Store 138 137
140: 6(int) Load 8(invocation) 139: 6(int) Load 8(invocation)
143: 142(ptr) AccessChain 75(data) 86 86 141: 140(ptr) AccessChain 75(data) 77 86 78
144: 71(ivec4) Load 143 142: 70(int) Load 141
145: 141(ivec2) VectorShuffle 144 144 0 1 143: 6(int) Load 8(invocation)
144: 70(int) SubgroupReadInvocationKHR 142 143
145: 140(ptr) AccessChain 75(data) 139 86 78
Store 145 144
146: 6(int) Load 8(invocation) 146: 6(int) Load 8(invocation)
147: 70(int) CompositeExtract 145 0 149: 148(ptr) AccessChain 75(data) 86 86
148: 70(int) SubgroupReadInvocationKHR 147 146 150: 71(ivec4) Load 149
149: 70(int) CompositeExtract 145 1 151: 147(ivec2) VectorShuffle 150 150 0 1
150: 70(int) SubgroupReadInvocationKHR 149 146 152: 6(int) Load 8(invocation)
151: 141(ivec2) CompositeConstruct 148 150 153: 70(int) CompositeExtract 151 0
152: 142(ptr) AccessChain 75(data) 140 86 154: 70(int) SubgroupReadInvocationKHR 153 152
153: 71(ivec4) Load 152 155: 70(int) CompositeExtract 151 1
154: 71(ivec4) VectorShuffle 153 151 4 5 2 3 156: 70(int) SubgroupReadInvocationKHR 155 152
Store 152 154 157: 147(ivec2) CompositeConstruct 154 156
155: 6(int) Load 8(invocation) 158: 140(ptr) AccessChain 75(data) 146 86 78
157: 142(ptr) AccessChain 75(data) 102 86 159: 70(int) CompositeExtract 157 0
158: 71(ivec4) Load 157 Store 158 159
159: 156(ivec3) VectorShuffle 158 158 0 1 2 160: 140(ptr) AccessChain 75(data) 146 86 100
160: 6(int) Load 8(invocation) 161: 70(int) CompositeExtract 157 1
161: 70(int) CompositeExtract 159 0 Store 160 161
162: 70(int) SubgroupReadInvocationKHR 161 160 162: 6(int) Load 8(invocation)
163: 70(int) CompositeExtract 159 1 164: 148(ptr) AccessChain 75(data) 104 86
164: 70(int) SubgroupReadInvocationKHR 163 160 165: 71(ivec4) Load 164
165: 70(int) CompositeExtract 159 2 166: 163(ivec3) VectorShuffle 165 165 0 1 2
166: 70(int) SubgroupReadInvocationKHR 165 160 167: 6(int) Load 8(invocation)
167: 156(ivec3) CompositeConstruct 162 164 166 168: 70(int) CompositeExtract 166 0
168: 142(ptr) AccessChain 75(data) 155 86 169: 70(int) SubgroupReadInvocationKHR 168 167
169: 71(ivec4) Load 168 170: 70(int) CompositeExtract 166 1
170: 71(ivec4) VectorShuffle 169 167 4 5 6 3 171: 70(int) SubgroupReadInvocationKHR 170 167
Store 168 170 172: 70(int) CompositeExtract 166 2
171: 6(int) Load 8(invocation) 173: 70(int) SubgroupReadInvocationKHR 172 167
172: 142(ptr) AccessChain 75(data) 119 86 174: 163(ivec3) CompositeConstruct 169 171 173
173: 71(ivec4) Load 172 175: 140(ptr) AccessChain 75(data) 162 86 78
174: 6(int) Load 8(invocation) 176: 70(int) CompositeExtract 174 0
175: 70(int) CompositeExtract 173 0 Store 175 176
176: 70(int) SubgroupReadInvocationKHR 175 174 177: 140(ptr) AccessChain 75(data) 162 86 100
177: 70(int) CompositeExtract 173 1 178: 70(int) CompositeExtract 174 1
178: 70(int) SubgroupReadInvocationKHR 177 174 Store 177 178
179: 70(int) CompositeExtract 173 2 179: 140(ptr) AccessChain 75(data) 162 86 121
180: 70(int) SubgroupReadInvocationKHR 179 174 180: 70(int) CompositeExtract 174 2
181: 70(int) CompositeExtract 173 3 Store 179 180
182: 70(int) SubgroupReadInvocationKHR 181 174 181: 6(int) Load 8(invocation)
183: 71(ivec4) CompositeConstruct 176 178 180 182 182: 148(ptr) AccessChain 75(data) 125 86
184: 142(ptr) AccessChain 75(data) 171 86 183: 71(ivec4) Load 182
Store 184 183 184: 6(int) Load 8(invocation)
185: 6(int) Load 8(invocation) 185: 70(int) CompositeExtract 183 0
187: 186(ptr) AccessChain 75(data) 77 102 78 186: 70(int) SubgroupReadInvocationKHR 185 184
188: 6(int) Load 187 187: 70(int) CompositeExtract 183 1
189: 6(int) Load 8(invocation) 188: 70(int) SubgroupReadInvocationKHR 187 184
190: 6(int) SubgroupReadInvocationKHR 188 189 189: 70(int) CompositeExtract 183 2
191: 186(ptr) AccessChain 75(data) 185 102 78 190: 70(int) SubgroupReadInvocationKHR 189 184
Store 191 190 191: 70(int) CompositeExtract 183 3
192: 6(int) Load 8(invocation) 192: 70(int) SubgroupReadInvocationKHR 191 184
194: 193(ptr) AccessChain 75(data) 86 102 193: 71(ivec4) CompositeConstruct 186 188 190 192
195: 20(ivec4) Load 194 194: 148(ptr) AccessChain 75(data) 181 86
196: 26(ivec2) VectorShuffle 195 195 0 1 Store 194 193
197: 6(int) Load 8(invocation) 195: 6(int) Load 8(invocation)
198: 6(int) CompositeExtract 196 0 197: 196(ptr) AccessChain 75(data) 77 104 78
199: 6(int) SubgroupReadInvocationKHR 198 197 198: 6(int) Load 197
200: 6(int) CompositeExtract 196 1 199: 6(int) Load 8(invocation)
201: 6(int) SubgroupReadInvocationKHR 200 197 200: 6(int) SubgroupReadInvocationKHR 198 199
202: 26(ivec2) CompositeConstruct 199 201 201: 196(ptr) AccessChain 75(data) 195 104 78
203: 193(ptr) AccessChain 75(data) 192 102 Store 201 200
204: 20(ivec4) Load 203 202: 6(int) Load 8(invocation)
205: 20(ivec4) VectorShuffle 204 202 4 5 2 3 204: 203(ptr) AccessChain 75(data) 86 104
Store 203 205 205: 20(ivec4) Load 204
206: 6(int) Load 8(invocation) 206: 26(ivec2) VectorShuffle 205 205 0 1
208: 193(ptr) AccessChain 75(data) 102 102 207: 6(int) Load 8(invocation)
209: 20(ivec4) Load 208 208: 6(int) CompositeExtract 206 0
210: 207(ivec3) VectorShuffle 209 209 0 1 2 209: 6(int) SubgroupReadInvocationKHR 208 207
211: 6(int) Load 8(invocation) 210: 6(int) CompositeExtract 206 1
212: 6(int) CompositeExtract 210 0 211: 6(int) SubgroupReadInvocationKHR 210 207
213: 6(int) SubgroupReadInvocationKHR 212 211 212: 26(ivec2) CompositeConstruct 209 211
214: 6(int) CompositeExtract 210 1 213: 196(ptr) AccessChain 75(data) 202 104 78
215: 6(int) SubgroupReadInvocationKHR 214 211 214: 6(int) CompositeExtract 212 0
216: 6(int) CompositeExtract 210 2 Store 213 214
217: 6(int) SubgroupReadInvocationKHR 216 211 215: 196(ptr) AccessChain 75(data) 202 104 100
218: 207(ivec3) CompositeConstruct 213 215 217 216: 6(int) CompositeExtract 212 1
219: 193(ptr) AccessChain 75(data) 206 102 Store 215 216
217: 6(int) Load 8(invocation)
219: 203(ptr) AccessChain 75(data) 104 104
220: 20(ivec4) Load 219 220: 20(ivec4) Load 219
221: 20(ivec4) VectorShuffle 220 218 4 5 6 3 221: 218(ivec3) VectorShuffle 220 220 0 1 2
Store 219 221
222: 6(int) Load 8(invocation) 222: 6(int) Load 8(invocation)
223: 193(ptr) AccessChain 75(data) 119 102 223: 6(int) CompositeExtract 221 0
224: 20(ivec4) Load 223 224: 6(int) SubgroupReadInvocationKHR 223 222
225: 6(int) Load 8(invocation) 225: 6(int) CompositeExtract 221 1
226: 6(int) CompositeExtract 224 0 226: 6(int) SubgroupReadInvocationKHR 225 222
227: 6(int) SubgroupReadInvocationKHR 226 225 227: 6(int) CompositeExtract 221 2
228: 6(int) CompositeExtract 224 1 228: 6(int) SubgroupReadInvocationKHR 227 222
229: 6(int) SubgroupReadInvocationKHR 228 225 229: 218(ivec3) CompositeConstruct 224 226 228
230: 6(int) CompositeExtract 224 2 230: 196(ptr) AccessChain 75(data) 217 104 78
231: 6(int) SubgroupReadInvocationKHR 230 225 231: 6(int) CompositeExtract 229 0
232: 6(int) CompositeExtract 224 3 Store 230 231
233: 6(int) SubgroupReadInvocationKHR 232 225 232: 196(ptr) AccessChain 75(data) 217 104 100
234: 20(ivec4) CompositeConstruct 227 229 231 233 233: 6(int) CompositeExtract 229 1
235: 193(ptr) AccessChain 75(data) 222 102 Store 232 233
Store 235 234 234: 196(ptr) AccessChain 75(data) 217 104 121
235: 6(int) CompositeExtract 229 2
Store 234 235
236: 6(int) Load 8(invocation)
237: 203(ptr) AccessChain 75(data) 125 104
238: 20(ivec4) Load 237
239: 6(int) Load 8(invocation)
240: 6(int) CompositeExtract 238 0
241: 6(int) SubgroupReadInvocationKHR 240 239
242: 6(int) CompositeExtract 238 1
243: 6(int) SubgroupReadInvocationKHR 242 239
244: 6(int) CompositeExtract 238 2
245: 6(int) SubgroupReadInvocationKHR 244 239
246: 6(int) CompositeExtract 238 3
247: 6(int) SubgroupReadInvocationKHR 246 239
248: 20(ivec4) CompositeConstruct 241 243 245 247
249: 203(ptr) AccessChain 75(data) 236 104
Store 249 248
Branch 67 Branch 67
236: Label 250: Label
237: 6(int) Load 8(invocation) 251: 6(int) Load 8(invocation)
238: 79(ptr) AccessChain 75(data) 77 77 78 252: 79(ptr) AccessChain 75(data) 77 77 78
239: 68(float) Load 238 253: 68(float) Load 252
240: 68(float) SubgroupFirstInvocationKHR 239 254: 68(float) SubgroupFirstInvocationKHR 253
241: 79(ptr) AccessChain 75(data) 237 77 78 255: 79(ptr) AccessChain 75(data) 251 77 78
Store 241 240 Store 255 254
242: 6(int) Load 8(invocation) 256: 6(int) Load 8(invocation)
243: 88(ptr) AccessChain 75(data) 86 77 257: 88(ptr) AccessChain 75(data) 86 77
244: 69(fvec4) Load 243 258: 69(fvec4) Load 257
245: 87(fvec2) VectorShuffle 244 244 0 1 259: 87(fvec2) VectorShuffle 258 258 0 1
246: 87(fvec2) SubgroupFirstInvocationKHR 245 260: 87(fvec2) SubgroupFirstInvocationKHR 259
247: 88(ptr) AccessChain 75(data) 242 77 261: 79(ptr) AccessChain 75(data) 256 77 78
248: 69(fvec4) Load 247 262: 68(float) CompositeExtract 260 0
249: 69(fvec4) VectorShuffle 248 246 4 5 2 3 Store 261 262
Store 247 249 263: 79(ptr) AccessChain 75(data) 256 77 100
250: 6(int) Load 8(invocation) 264: 68(float) CompositeExtract 260 1
251: 88(ptr) AccessChain 75(data) 102 77 Store 263 264
252: 69(fvec4) Load 251 265: 6(int) Load 8(invocation)
253: 103(fvec3) VectorShuffle 252 252 0 1 2 266: 88(ptr) AccessChain 75(data) 104 77
254: 103(fvec3) SubgroupFirstInvocationKHR 253 267: 69(fvec4) Load 266
255: 88(ptr) AccessChain 75(data) 250 77 268: 105(fvec3) VectorShuffle 267 267 0 1 2
256: 69(fvec4) Load 255 269: 105(fvec3) SubgroupFirstInvocationKHR 268
257: 69(fvec4) VectorShuffle 256 254 4 5 6 3 270: 79(ptr) AccessChain 75(data) 265 77 78
Store 255 257 271: 68(float) CompositeExtract 269 0
258: 6(int) Load 8(invocation) Store 270 271
259: 88(ptr) AccessChain 75(data) 119 77 272: 79(ptr) AccessChain 75(data) 265 77 100
260: 69(fvec4) Load 259 273: 68(float) CompositeExtract 269 1
261: 69(fvec4) SubgroupFirstInvocationKHR 260 Store 272 273
262: 88(ptr) AccessChain 75(data) 258 77 274: 79(ptr) AccessChain 75(data) 265 77 121
Store 262 261 275: 68(float) CompositeExtract 269 2
263: 6(int) Load 8(invocation) Store 274 275
264: 134(ptr) AccessChain 75(data) 77 86 78
265: 70(int) Load 264
266: 70(int) SubgroupFirstInvocationKHR 265
267: 134(ptr) AccessChain 75(data) 263 86 78
Store 267 266
268: 6(int) Load 8(invocation)
269: 142(ptr) AccessChain 75(data) 86 86
270: 71(ivec4) Load 269
271: 141(ivec2) VectorShuffle 270 270 0 1
272: 141(ivec2) SubgroupFirstInvocationKHR 271
273: 142(ptr) AccessChain 75(data) 268 86
274: 71(ivec4) Load 273
275: 71(ivec4) VectorShuffle 274 272 4 5 2 3
Store 273 275
276: 6(int) Load 8(invocation) 276: 6(int) Load 8(invocation)
277: 142(ptr) AccessChain 75(data) 102 86 277: 88(ptr) AccessChain 75(data) 125 77
278: 71(ivec4) Load 277 278: 69(fvec4) Load 277
279: 156(ivec3) VectorShuffle 278 278 0 1 2 279: 69(fvec4) SubgroupFirstInvocationKHR 278
280: 156(ivec3) SubgroupFirstInvocationKHR 279 280: 88(ptr) AccessChain 75(data) 276 77
281: 142(ptr) AccessChain 75(data) 276 86 Store 280 279
282: 71(ivec4) Load 281 281: 6(int) Load 8(invocation)
283: 71(ivec4) VectorShuffle 282 280 4 5 6 3 282: 140(ptr) AccessChain 75(data) 77 86 78
Store 281 283 283: 70(int) Load 282
284: 6(int) Load 8(invocation) 284: 70(int) SubgroupFirstInvocationKHR 283
285: 142(ptr) AccessChain 75(data) 119 86 285: 140(ptr) AccessChain 75(data) 281 86 78
286: 71(ivec4) Load 285 Store 285 284
287: 71(ivec4) SubgroupFirstInvocationKHR 286 286: 6(int) Load 8(invocation)
288: 142(ptr) AccessChain 75(data) 284 86 287: 148(ptr) AccessChain 75(data) 86 86
Store 288 287 288: 71(ivec4) Load 287
289: 6(int) Load 8(invocation) 289: 147(ivec2) VectorShuffle 288 288 0 1
290: 186(ptr) AccessChain 75(data) 77 102 78 290: 147(ivec2) SubgroupFirstInvocationKHR 289
291: 6(int) Load 290 291: 140(ptr) AccessChain 75(data) 286 86 78
292: 6(int) SubgroupFirstInvocationKHR 291 292: 70(int) CompositeExtract 290 0
293: 186(ptr) AccessChain 75(data) 289 102 78 Store 291 292
Store 293 292 293: 140(ptr) AccessChain 75(data) 286 86 100
294: 6(int) Load 8(invocation) 294: 70(int) CompositeExtract 290 1
295: 193(ptr) AccessChain 75(data) 86 102 Store 293 294
296: 20(ivec4) Load 295 295: 6(int) Load 8(invocation)
297: 26(ivec2) VectorShuffle 296 296 0 1 296: 148(ptr) AccessChain 75(data) 104 86
298: 26(ivec2) SubgroupFirstInvocationKHR 297 297: 71(ivec4) Load 296
299: 193(ptr) AccessChain 75(data) 294 102 298: 163(ivec3) VectorShuffle 297 297 0 1 2
300: 20(ivec4) Load 299 299: 163(ivec3) SubgroupFirstInvocationKHR 298
301: 20(ivec4) VectorShuffle 300 298 4 5 2 3 300: 140(ptr) AccessChain 75(data) 295 86 78
Store 299 301 301: 70(int) CompositeExtract 299 0
302: 6(int) Load 8(invocation) Store 300 301
303: 193(ptr) AccessChain 75(data) 102 102 302: 140(ptr) AccessChain 75(data) 295 86 100
304: 20(ivec4) Load 303 303: 70(int) CompositeExtract 299 1
305: 207(ivec3) VectorShuffle 304 304 0 1 2 Store 302 303
306: 207(ivec3) SubgroupFirstInvocationKHR 305 304: 140(ptr) AccessChain 75(data) 295 86 121
307: 193(ptr) AccessChain 75(data) 302 102 305: 70(int) CompositeExtract 299 2
308: 20(ivec4) Load 307 Store 304 305
309: 20(ivec4) VectorShuffle 308 306 4 5 6 3 306: 6(int) Load 8(invocation)
Store 307 309 307: 148(ptr) AccessChain 75(data) 125 86
310: 6(int) Load 8(invocation) 308: 71(ivec4) Load 307
311: 193(ptr) AccessChain 75(data) 119 102 309: 71(ivec4) SubgroupFirstInvocationKHR 308
312: 20(ivec4) Load 311 310: 148(ptr) AccessChain 75(data) 306 86
313: 20(ivec4) SubgroupFirstInvocationKHR 312 Store 310 309
314: 193(ptr) AccessChain 75(data) 310 102 311: 6(int) Load 8(invocation)
Store 314 313 312: 196(ptr) AccessChain 75(data) 77 104 78
313: 6(int) Load 312
314: 6(int) SubgroupFirstInvocationKHR 313
315: 196(ptr) AccessChain 75(data) 311 104 78
Store 315 314
316: 6(int) Load 8(invocation)
317: 203(ptr) AccessChain 75(data) 86 104
318: 20(ivec4) Load 317
319: 26(ivec2) VectorShuffle 318 318 0 1
320: 26(ivec2) SubgroupFirstInvocationKHR 319
321: 196(ptr) AccessChain 75(data) 316 104 78
322: 6(int) CompositeExtract 320 0
Store 321 322
323: 196(ptr) AccessChain 75(data) 316 104 100
324: 6(int) CompositeExtract 320 1
Store 323 324
325: 6(int) Load 8(invocation)
326: 203(ptr) AccessChain 75(data) 104 104
327: 20(ivec4) Load 326
328: 218(ivec3) VectorShuffle 327 327 0 1 2
329: 218(ivec3) SubgroupFirstInvocationKHR 328
330: 196(ptr) AccessChain 75(data) 325 104 78
331: 6(int) CompositeExtract 329 0
Store 330 331
332: 196(ptr) AccessChain 75(data) 325 104 100
333: 6(int) CompositeExtract 329 1
Store 332 333
334: 196(ptr) AccessChain 75(data) 325 104 121
335: 6(int) CompositeExtract 329 2
Store 334 335
336: 6(int) Load 8(invocation)
337: 203(ptr) AccessChain 75(data) 125 104
338: 20(ivec4) Load 337
339: 20(ivec4) SubgroupFirstInvocationKHR 338
340: 203(ptr) AccessChain 75(data) 336 104
Store 340 339
Branch 67 Branch 67
67: Label 67: Label
Return Return

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
spv.subgroupBallot.comp spv.subgroupBallot.comp
// Module Version 10300 // Module Version 10300
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 397 // Id's are bound by 437
Capability Shader Capability Shader
Capability Float64 Capability Float64
@ -51,7 +51,7 @@ spv.subgroupBallot.comp
Decorate 46(Buffers) Block Decorate 46(Buffers) Block
Decorate 49(data) DescriptorSet 0 Decorate 49(data) DescriptorSet 0
Decorate 49(data) Binding 0 Decorate 49(data) Binding 0
Decorate 396 BuiltIn WorkgroupSize Decorate 436 BuiltIn WorkgroupSize
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0
@ -93,28 +93,28 @@ spv.subgroupBallot.comp
96: TypePointer StorageBuffer 40(float) 96: TypePointer StorageBuffer 40(float)
102: TypeVector 40(float) 2 102: TypeVector 40(float) 2
103: TypePointer StorageBuffer 41(fvec4) 103: TypePointer StorageBuffer 41(fvec4)
112: TypeVector 40(float) 3 113: TypeVector 40(float) 3
121: 42(int) Constant 3 125: 42(int) Constant 3
127: TypePointer StorageBuffer 42(int) 131: TypePointer StorageBuffer 42(int)
133: TypeVector 42(int) 2 137: TypeVector 42(int) 2
134: TypePointer StorageBuffer 43(ivec4) 138: TypePointer StorageBuffer 43(ivec4)
143: TypeVector 42(int) 3 148: TypeVector 42(int) 3
162: TypeVector 6(int) 2 170: TypeVector 6(int) 2
171: TypeVector 6(int) 3 180: TypeVector 6(int) 3
185: TypePointer StorageBuffer 44(float64_t) 197: TypePointer StorageBuffer 44(float64_t)
191: TypeVector 44(float64_t) 2 203: TypeVector 44(float64_t) 2
192: TypePointer StorageBuffer 45(f64vec4) 204: TypePointer StorageBuffer 45(f64vec4)
201: TypeVector 44(float64_t) 3 214: TypeVector 44(float64_t) 3
225: 133(ivec2) ConstantComposite 61 61 241: 137(ivec2) ConstantComposite 61 61
226: TypeVector 36(bool) 2 242: TypeVector 36(bool) 2
229: 133(ivec2) ConstantComposite 60 60 245: 137(ivec2) ConstantComposite 60 60
238: 143(ivec3) ConstantComposite 61 61 61 255: 148(ivec3) ConstantComposite 61 61 61
239: TypeVector 36(bool) 3 256: TypeVector 36(bool) 3
242: 143(ivec3) ConstantComposite 60 60 60 259: 148(ivec3) ConstantComposite 60 60 60
250: 43(ivec4) ConstantComposite 61 61 61 61 270: 43(ivec4) ConstantComposite 61 61 61 61
253: 43(ivec4) ConstantComposite 60 60 60 60 273: 43(ivec4) ConstantComposite 60 60 60 60
395: 6(int) Constant 8 435: 6(int) Constant 8
396: 171(ivec3) ConstantComposite 395 395 64 436: 180(ivec3) ConstantComposite 435 435 64
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
8(invocation): 7(ptr) Variable Function 8(invocation): 7(ptr) Variable Function
@ -179,7 +179,7 @@ spv.subgroupBallot.comp
87: Label 87: Label
92: 36(bool) Phi 85 5 91 86 92: 36(bool) Phi 85 5 91 86
SelectionMerge 94 None SelectionMerge 94 None
BranchConditional 92 93 256 BranchConditional 92 93 276
93: Label 93: Label
95: 6(int) Load 8(invocation) 95: 6(int) Load 8(invocation)
97: 96(ptr) AccessChain 49(data) 61 61 54 97: 96(ptr) AccessChain 49(data) 61 61 54
@ -192,313 +192,383 @@ spv.subgroupBallot.comp
105: 41(fvec4) Load 104 105: 41(fvec4) Load 104
106: 102(fvec2) VectorShuffle 105 105 0 1 106: 102(fvec2) VectorShuffle 105 105 0 1
107: 102(fvec2) GroupNonUniformBroadcast 38 106 38 107: 102(fvec2) GroupNonUniformBroadcast 38 106 38
108: 103(ptr) AccessChain 49(data) 101 61 108: 96(ptr) AccessChain 49(data) 101 61 54
109: 41(fvec4) Load 108 109: 40(float) CompositeExtract 107 0
110: 41(fvec4) VectorShuffle 109 107 4 5 2 3 Store 108 109
Store 108 110 110: 96(ptr) AccessChain 49(data) 101 61 64
111: 6(int) Load 8(invocation) 111: 40(float) CompositeExtract 107 1
113: 103(ptr) AccessChain 49(data) 51 61 Store 110 111
114: 41(fvec4) Load 113 112: 6(int) Load 8(invocation)
115: 112(fvec3) VectorShuffle 114 114 0 1 2 114: 103(ptr) AccessChain 49(data) 51 61
116: 112(fvec3) GroupNonUniformBroadcast 38 115 38 115: 41(fvec4) Load 114
117: 103(ptr) AccessChain 49(data) 111 61 116: 113(fvec3) VectorShuffle 115 115 0 1 2
118: 41(fvec4) Load 117 117: 113(fvec3) GroupNonUniformBroadcast 38 116 38
119: 41(fvec4) VectorShuffle 118 116 4 5 6 3 118: 96(ptr) AccessChain 49(data) 112 61 54
Store 117 119 119: 40(float) CompositeExtract 117 0
120: 6(int) Load 8(invocation) Store 118 119
122: 103(ptr) AccessChain 49(data) 121 61 120: 96(ptr) AccessChain 49(data) 112 61 64
123: 41(fvec4) Load 122 121: 40(float) CompositeExtract 117 1
124: 41(fvec4) GroupNonUniformBroadcast 38 123 38 Store 120 121
125: 103(ptr) AccessChain 49(data) 120 61 122: 96(ptr) AccessChain 49(data) 112 61 72
Store 125 124 123: 40(float) CompositeExtract 117 2
126: 6(int) Load 8(invocation) Store 122 123
128: 127(ptr) AccessChain 49(data) 61 60 54 124: 6(int) Load 8(invocation)
129: 42(int) Load 128 126: 103(ptr) AccessChain 49(data) 125 61
130: 42(int) GroupNonUniformBroadcast 38 129 72 127: 41(fvec4) Load 126
131: 127(ptr) AccessChain 49(data) 126 60 54 128: 41(fvec4) GroupNonUniformBroadcast 38 127 38
Store 131 130 129: 103(ptr) AccessChain 49(data) 124 61
132: 6(int) Load 8(invocation) Store 129 128
135: 134(ptr) AccessChain 49(data) 60 60 130: 6(int) Load 8(invocation)
136: 43(ivec4) Load 135 132: 131(ptr) AccessChain 49(data) 61 60 54
137: 133(ivec2) VectorShuffle 136 136 0 1 133: 42(int) Load 132
138: 133(ivec2) GroupNonUniformBroadcast 38 137 72 134: 42(int) GroupNonUniformBroadcast 38 133 72
139: 134(ptr) AccessChain 49(data) 132 60 135: 131(ptr) AccessChain 49(data) 130 60 54
Store 135 134
136: 6(int) Load 8(invocation)
139: 138(ptr) AccessChain 49(data) 60 60
140: 43(ivec4) Load 139 140: 43(ivec4) Load 139
141: 43(ivec4) VectorShuffle 140 138 4 5 2 3 141: 137(ivec2) VectorShuffle 140 140 0 1
Store 139 141 142: 137(ivec2) GroupNonUniformBroadcast 38 141 72
142: 6(int) Load 8(invocation) 143: 131(ptr) AccessChain 49(data) 136 60 54
144: 134(ptr) AccessChain 49(data) 51 60 144: 42(int) CompositeExtract 142 0
145: 43(ivec4) Load 144 Store 143 144
146: 143(ivec3) VectorShuffle 145 145 0 1 2 145: 131(ptr) AccessChain 49(data) 136 60 64
147: 143(ivec3) GroupNonUniformBroadcast 38 146 72 146: 42(int) CompositeExtract 142 1
148: 134(ptr) AccessChain 49(data) 142 60 Store 145 146
149: 43(ivec4) Load 148 147: 6(int) Load 8(invocation)
150: 43(ivec4) VectorShuffle 149 147 4 5 6 3 149: 138(ptr) AccessChain 49(data) 51 60
Store 148 150 150: 43(ivec4) Load 149
151: 6(int) Load 8(invocation) 151: 148(ivec3) VectorShuffle 150 150 0 1 2
152: 134(ptr) AccessChain 49(data) 121 60 152: 148(ivec3) GroupNonUniformBroadcast 38 151 72
153: 43(ivec4) Load 152 153: 131(ptr) AccessChain 49(data) 147 60 54
154: 43(ivec4) GroupNonUniformBroadcast 38 153 72 154: 42(int) CompositeExtract 152 0
155: 134(ptr) AccessChain 49(data) 151 60 Store 153 154
Store 155 154 155: 131(ptr) AccessChain 49(data) 147 60 64
156: 6(int) Load 8(invocation) 156: 42(int) CompositeExtract 152 1
157: 55(ptr) AccessChain 49(data) 61 51 54 Store 155 156
158: 6(int) Load 157 157: 131(ptr) AccessChain 49(data) 147 60 72
159: 6(int) GroupNonUniformBroadcast 38 158 64 158: 42(int) CompositeExtract 152 2
160: 55(ptr) AccessChain 49(data) 156 51 54 Store 157 158
Store 160 159 159: 6(int) Load 8(invocation)
161: 6(int) Load 8(invocation) 160: 138(ptr) AccessChain 49(data) 125 60
163: 88(ptr) AccessChain 49(data) 60 51 161: 43(ivec4) Load 160
164: 17(ivec4) Load 163 162: 43(ivec4) GroupNonUniformBroadcast 38 161 72
165: 162(ivec2) VectorShuffle 164 164 0 1 163: 138(ptr) AccessChain 49(data) 159 60
166: 162(ivec2) GroupNonUniformBroadcast 38 165 64 Store 163 162
167: 88(ptr) AccessChain 49(data) 161 51 164: 6(int) Load 8(invocation)
168: 17(ivec4) Load 167 165: 55(ptr) AccessChain 49(data) 61 51 54
169: 17(ivec4) VectorShuffle 168 166 4 5 2 3 166: 6(int) Load 165
Store 167 169 167: 6(int) GroupNonUniformBroadcast 38 166 64
170: 6(int) Load 8(invocation) 168: 55(ptr) AccessChain 49(data) 164 51 54
172: 88(ptr) AccessChain 49(data) 51 51 Store 168 167
173: 17(ivec4) Load 172 169: 6(int) Load 8(invocation)
174: 171(ivec3) VectorShuffle 173 173 0 1 2 171: 88(ptr) AccessChain 49(data) 60 51
175: 171(ivec3) GroupNonUniformBroadcast 38 174 64 172: 17(ivec4) Load 171
176: 88(ptr) AccessChain 49(data) 170 51 173: 170(ivec2) VectorShuffle 172 172 0 1
177: 17(ivec4) Load 176 174: 170(ivec2) GroupNonUniformBroadcast 38 173 64
178: 17(ivec4) VectorShuffle 177 175 4 5 6 3 175: 55(ptr) AccessChain 49(data) 169 51 54
Store 176 178 176: 6(int) CompositeExtract 174 0
Store 175 176
177: 55(ptr) AccessChain 49(data) 169 51 64
178: 6(int) CompositeExtract 174 1
Store 177 178
179: 6(int) Load 8(invocation) 179: 6(int) Load 8(invocation)
180: 88(ptr) AccessChain 49(data) 121 51 181: 88(ptr) AccessChain 49(data) 51 51
181: 17(ivec4) Load 180 182: 17(ivec4) Load 181
182: 17(ivec4) GroupNonUniformBroadcast 38 181 64 183: 180(ivec3) VectorShuffle 182 182 0 1 2
183: 88(ptr) AccessChain 49(data) 179 51 184: 180(ivec3) GroupNonUniformBroadcast 38 183 64
Store 183 182 185: 55(ptr) AccessChain 49(data) 179 51 54
184: 6(int) Load 8(invocation) 186: 6(int) CompositeExtract 184 0
186: 185(ptr) AccessChain 49(data) 61 121 54 Store 185 186
187:44(float64_t) Load 186 187: 55(ptr) AccessChain 49(data) 179 51 64
188:44(float64_t) GroupNonUniformBroadcast 38 187 54 188: 6(int) CompositeExtract 184 1
189: 185(ptr) AccessChain 49(data) 184 121 54 Store 187 188
Store 189 188 189: 55(ptr) AccessChain 49(data) 179 51 72
190: 6(int) Load 8(invocation) 190: 6(int) CompositeExtract 184 2
193: 192(ptr) AccessChain 49(data) 60 121 Store 189 190
194: 45(f64vec4) Load 193 191: 6(int) Load 8(invocation)
195:191(f64vec2) VectorShuffle 194 194 0 1 192: 88(ptr) AccessChain 49(data) 125 51
196:191(f64vec2) GroupNonUniformBroadcast 38 195 54 193: 17(ivec4) Load 192
197: 192(ptr) AccessChain 49(data) 190 121 194: 17(ivec4) GroupNonUniformBroadcast 38 193 64
198: 45(f64vec4) Load 197 195: 88(ptr) AccessChain 49(data) 191 51
199: 45(f64vec4) VectorShuffle 198 196 4 5 2 3 Store 195 194
Store 197 199 196: 6(int) Load 8(invocation)
200: 6(int) Load 8(invocation) 198: 197(ptr) AccessChain 49(data) 61 125 54
202: 192(ptr) AccessChain 49(data) 51 121 199:44(float64_t) Load 198
203: 45(f64vec4) Load 202 200:44(float64_t) GroupNonUniformBroadcast 38 199 54
204:201(f64vec3) VectorShuffle 203 203 0 1 2 201: 197(ptr) AccessChain 49(data) 196 125 54
205:201(f64vec3) GroupNonUniformBroadcast 38 204 54 Store 201 200
206: 192(ptr) AccessChain 49(data) 200 121 202: 6(int) Load 8(invocation)
207: 45(f64vec4) Load 206 205: 204(ptr) AccessChain 49(data) 60 125
208: 45(f64vec4) VectorShuffle 207 205 4 5 6 3 206: 45(f64vec4) Load 205
Store 206 208 207:203(f64vec2) VectorShuffle 206 206 0 1
209: 6(int) Load 8(invocation) 208:203(f64vec2) GroupNonUniformBroadcast 38 207 54
210: 192(ptr) AccessChain 49(data) 121 121 209: 197(ptr) AccessChain 49(data) 202 125 54
211: 45(f64vec4) Load 210 210:44(float64_t) CompositeExtract 208 0
212: 45(f64vec4) GroupNonUniformBroadcast 38 211 54 Store 209 210
213: 192(ptr) AccessChain 49(data) 209 121 211: 197(ptr) AccessChain 49(data) 202 125 64
Store 213 212 212:44(float64_t) CompositeExtract 208 1
214: 6(int) Load 8(invocation) Store 211 212
215: 127(ptr) AccessChain 49(data) 61 60 54 213: 6(int) Load 8(invocation)
216: 42(int) Load 215 215: 204(ptr) AccessChain 49(data) 51 125
217: 36(bool) SLessThan 216 61 216: 45(f64vec4) Load 215
218: 36(bool) GroupNonUniformBroadcast 38 217 64 217:214(f64vec3) VectorShuffle 216 216 0 1 2
219: 42(int) Select 218 60 61 218:214(f64vec3) GroupNonUniformBroadcast 38 217 54
220: 127(ptr) AccessChain 49(data) 214 60 54 219: 197(ptr) AccessChain 49(data) 213 125 54
Store 220 219 220:44(float64_t) CompositeExtract 218 0
221: 6(int) Load 8(invocation) Store 219 220
222: 134(ptr) AccessChain 49(data) 60 60 221: 197(ptr) AccessChain 49(data) 213 125 64
223: 43(ivec4) Load 222 222:44(float64_t) CompositeExtract 218 1
224: 133(ivec2) VectorShuffle 223 223 0 1 Store 221 222
227: 226(bvec2) SLessThan 224 225 223: 197(ptr) AccessChain 49(data) 213 125 72
228: 226(bvec2) GroupNonUniformBroadcast 38 227 64 224:44(float64_t) CompositeExtract 218 2
230: 133(ivec2) Select 228 229 225 Store 223 224
231: 134(ptr) AccessChain 49(data) 221 60 225: 6(int) Load 8(invocation)
232: 43(ivec4) Load 231 226: 204(ptr) AccessChain 49(data) 125 125
233: 43(ivec4) VectorShuffle 232 230 4 5 2 3 227: 45(f64vec4) Load 226
Store 231 233 228: 45(f64vec4) GroupNonUniformBroadcast 38 227 54
234: 6(int) Load 8(invocation) 229: 204(ptr) AccessChain 49(data) 225 125
235: 134(ptr) AccessChain 49(data) 60 60 Store 229 228
236: 43(ivec4) Load 235 230: 6(int) Load 8(invocation)
237: 143(ivec3) VectorShuffle 236 236 0 1 2 231: 131(ptr) AccessChain 49(data) 61 60 54
240: 239(bvec3) SLessThan 237 238 232: 42(int) Load 231
241: 239(bvec3) GroupNonUniformBroadcast 38 240 64 233: 36(bool) SLessThan 232 61
243: 143(ivec3) Select 241 242 238 234: 36(bool) GroupNonUniformBroadcast 38 233 64
244: 134(ptr) AccessChain 49(data) 234 60 235: 42(int) Select 234 60 61
245: 43(ivec4) Load 244 236: 131(ptr) AccessChain 49(data) 230 60 54
246: 43(ivec4) VectorShuffle 245 243 4 5 6 3 Store 236 235
Store 244 246 237: 6(int) Load 8(invocation)
247: 6(int) Load 8(invocation) 238: 138(ptr) AccessChain 49(data) 60 60
248: 134(ptr) AccessChain 49(data) 60 60 239: 43(ivec4) Load 238
249: 43(ivec4) Load 248 240: 137(ivec2) VectorShuffle 239 239 0 1
251: 83(bvec4) SLessThan 249 250 243: 242(bvec2) SLessThan 240 241
252: 83(bvec4) GroupNonUniformBroadcast 38 251 64 244: 242(bvec2) GroupNonUniformBroadcast 38 243 64
254: 43(ivec4) Select 252 253 250 246: 137(ivec2) Select 244 245 241
255: 134(ptr) AccessChain 49(data) 247 60 247: 131(ptr) AccessChain 49(data) 237 60 54
Store 255 254 248: 42(int) CompositeExtract 246 0
Store 247 248
249: 131(ptr) AccessChain 49(data) 237 60 64
250: 42(int) CompositeExtract 246 1
Store 249 250
251: 6(int) Load 8(invocation)
252: 138(ptr) AccessChain 49(data) 60 60
253: 43(ivec4) Load 252
254: 148(ivec3) VectorShuffle 253 253 0 1 2
257: 256(bvec3) SLessThan 254 255
258: 256(bvec3) GroupNonUniformBroadcast 38 257 64
260: 148(ivec3) Select 258 259 255
261: 131(ptr) AccessChain 49(data) 251 60 54
262: 42(int) CompositeExtract 260 0
Store 261 262
263: 131(ptr) AccessChain 49(data) 251 60 64
264: 42(int) CompositeExtract 260 1
Store 263 264
265: 131(ptr) AccessChain 49(data) 251 60 72
266: 42(int) CompositeExtract 260 2
Store 265 266
267: 6(int) Load 8(invocation)
268: 138(ptr) AccessChain 49(data) 60 60
269: 43(ivec4) Load 268
271: 83(bvec4) SLessThan 269 270
272: 83(bvec4) GroupNonUniformBroadcast 38 271 64
274: 43(ivec4) Select 272 273 270
275: 138(ptr) AccessChain 49(data) 267 60
Store 275 274
Branch 94 Branch 94
256: Label 276: Label
257: 6(int) Load 8(invocation) 277: 6(int) Load 8(invocation)
258: 96(ptr) AccessChain 49(data) 61 61 54 278: 96(ptr) AccessChain 49(data) 61 61 54
259: 40(float) Load 258 279: 40(float) Load 278
260: 40(float) GroupNonUniformBroadcastFirst 38 259 280: 40(float) GroupNonUniformBroadcastFirst 38 279
261: 96(ptr) AccessChain 49(data) 257 61 54 281: 96(ptr) AccessChain 49(data) 277 61 54
Store 261 260 Store 281 280
262: 6(int) Load 8(invocation) 282: 6(int) Load 8(invocation)
263: 103(ptr) AccessChain 49(data) 60 61 283: 103(ptr) AccessChain 49(data) 60 61
264: 41(fvec4) Load 263 284: 41(fvec4) Load 283
265: 102(fvec2) VectorShuffle 264 264 0 1 285: 102(fvec2) VectorShuffle 284 284 0 1
266: 102(fvec2) GroupNonUniformBroadcastFirst 38 265 286: 102(fvec2) GroupNonUniformBroadcastFirst 38 285
267: 103(ptr) AccessChain 49(data) 262 61 287: 96(ptr) AccessChain 49(data) 282 61 54
268: 41(fvec4) Load 267 288: 40(float) CompositeExtract 286 0
269: 41(fvec4) VectorShuffle 268 266 4 5 2 3 Store 287 288
Store 267 269 289: 96(ptr) AccessChain 49(data) 282 61 64
270: 6(int) Load 8(invocation) 290: 40(float) CompositeExtract 286 1
271: 103(ptr) AccessChain 49(data) 51 61 Store 289 290
272: 41(fvec4) Load 271 291: 6(int) Load 8(invocation)
273: 112(fvec3) VectorShuffle 272 272 0 1 2 292: 103(ptr) AccessChain 49(data) 51 61
274: 112(fvec3) GroupNonUniformBroadcastFirst 38 273 293: 41(fvec4) Load 292
275: 103(ptr) AccessChain 49(data) 270 61 294: 113(fvec3) VectorShuffle 293 293 0 1 2
276: 41(fvec4) Load 275 295: 113(fvec3) GroupNonUniformBroadcastFirst 38 294
277: 41(fvec4) VectorShuffle 276 274 4 5 6 3 296: 96(ptr) AccessChain 49(data) 291 61 54
Store 275 277 297: 40(float) CompositeExtract 295 0
278: 6(int) Load 8(invocation) Store 296 297
279: 103(ptr) AccessChain 49(data) 121 61 298: 96(ptr) AccessChain 49(data) 291 61 64
280: 41(fvec4) Load 279 299: 40(float) CompositeExtract 295 1
281: 41(fvec4) GroupNonUniformBroadcastFirst 38 280 Store 298 299
282: 103(ptr) AccessChain 49(data) 278 61 300: 96(ptr) AccessChain 49(data) 291 61 72
Store 282 281 301: 40(float) CompositeExtract 295 2
283: 6(int) Load 8(invocation) Store 300 301
284: 127(ptr) AccessChain 49(data) 61 60 54 302: 6(int) Load 8(invocation)
285: 42(int) Load 284 303: 103(ptr) AccessChain 49(data) 125 61
286: 42(int) GroupNonUniformBroadcastFirst 38 285 304: 41(fvec4) Load 303
287: 127(ptr) AccessChain 49(data) 283 60 54 305: 41(fvec4) GroupNonUniformBroadcastFirst 38 304
Store 287 286 306: 103(ptr) AccessChain 49(data) 302 61
288: 6(int) Load 8(invocation) Store 306 305
289: 134(ptr) AccessChain 49(data) 60 60 307: 6(int) Load 8(invocation)
290: 43(ivec4) Load 289 308: 131(ptr) AccessChain 49(data) 61 60 54
291: 133(ivec2) VectorShuffle 290 290 0 1 309: 42(int) Load 308
292: 133(ivec2) GroupNonUniformBroadcastFirst 38 291 310: 42(int) GroupNonUniformBroadcastFirst 38 309
293: 134(ptr) AccessChain 49(data) 288 60 311: 131(ptr) AccessChain 49(data) 307 60 54
294: 43(ivec4) Load 293 Store 311 310
295: 43(ivec4) VectorShuffle 294 292 4 5 2 3 312: 6(int) Load 8(invocation)
Store 293 295 313: 138(ptr) AccessChain 49(data) 60 60
296: 6(int) Load 8(invocation) 314: 43(ivec4) Load 313
297: 134(ptr) AccessChain 49(data) 51 60 315: 137(ivec2) VectorShuffle 314 314 0 1
298: 43(ivec4) Load 297 316: 137(ivec2) GroupNonUniformBroadcastFirst 38 315
299: 143(ivec3) VectorShuffle 298 298 0 1 2 317: 131(ptr) AccessChain 49(data) 312 60 54
300: 143(ivec3) GroupNonUniformBroadcastFirst 38 299 318: 42(int) CompositeExtract 316 0
301: 134(ptr) AccessChain 49(data) 296 60 Store 317 318
302: 43(ivec4) Load 301 319: 131(ptr) AccessChain 49(data) 312 60 64
303: 43(ivec4) VectorShuffle 302 300 4 5 6 3 320: 42(int) CompositeExtract 316 1
Store 301 303 Store 319 320
304: 6(int) Load 8(invocation) 321: 6(int) Load 8(invocation)
305: 134(ptr) AccessChain 49(data) 121 60 322: 138(ptr) AccessChain 49(data) 51 60
306: 43(ivec4) Load 305 323: 43(ivec4) Load 322
307: 43(ivec4) GroupNonUniformBroadcastFirst 38 306 324: 148(ivec3) VectorShuffle 323 323 0 1 2
308: 134(ptr) AccessChain 49(data) 304 60 325: 148(ivec3) GroupNonUniformBroadcastFirst 38 324
Store 308 307 326: 131(ptr) AccessChain 49(data) 321 60 54
309: 6(int) Load 8(invocation) 327: 42(int) CompositeExtract 325 0
310: 55(ptr) AccessChain 49(data) 61 51 54 Store 326 327
311: 6(int) Load 310 328: 131(ptr) AccessChain 49(data) 321 60 64
312: 6(int) GroupNonUniformBroadcastFirst 38 311 329: 42(int) CompositeExtract 325 1
313: 55(ptr) AccessChain 49(data) 309 51 54 Store 328 329
Store 313 312 330: 131(ptr) AccessChain 49(data) 321 60 72
314: 6(int) Load 8(invocation) 331: 42(int) CompositeExtract 325 2
315: 88(ptr) AccessChain 49(data) 60 51 Store 330 331
316: 17(ivec4) Load 315 332: 6(int) Load 8(invocation)
317: 162(ivec2) VectorShuffle 316 316 0 1 333: 138(ptr) AccessChain 49(data) 125 60
318: 162(ivec2) GroupNonUniformBroadcastFirst 38 317 334: 43(ivec4) Load 333
319: 88(ptr) AccessChain 49(data) 314 51 335: 43(ivec4) GroupNonUniformBroadcastFirst 38 334
320: 17(ivec4) Load 319 336: 138(ptr) AccessChain 49(data) 332 60
321: 17(ivec4) VectorShuffle 320 318 4 5 2 3 Store 336 335
Store 319 321 337: 6(int) Load 8(invocation)
322: 6(int) Load 8(invocation) 338: 55(ptr) AccessChain 49(data) 61 51 54
323: 88(ptr) AccessChain 49(data) 51 51 339: 6(int) Load 338
324: 17(ivec4) Load 323 340: 6(int) GroupNonUniformBroadcastFirst 38 339
325: 171(ivec3) VectorShuffle 324 324 0 1 2 341: 55(ptr) AccessChain 49(data) 337 51 54
326: 171(ivec3) GroupNonUniformBroadcastFirst 38 325 Store 341 340
327: 88(ptr) AccessChain 49(data) 322 51 342: 6(int) Load 8(invocation)
328: 17(ivec4) Load 327 343: 88(ptr) AccessChain 49(data) 60 51
329: 17(ivec4) VectorShuffle 328 326 4 5 6 3 344: 17(ivec4) Load 343
Store 327 329 345: 170(ivec2) VectorShuffle 344 344 0 1
330: 6(int) Load 8(invocation) 346: 170(ivec2) GroupNonUniformBroadcastFirst 38 345
331: 88(ptr) AccessChain 49(data) 121 51 347: 55(ptr) AccessChain 49(data) 342 51 54
332: 17(ivec4) Load 331 348: 6(int) CompositeExtract 346 0
333: 17(ivec4) GroupNonUniformBroadcastFirst 38 332 Store 347 348
334: 88(ptr) AccessChain 49(data) 330 51 349: 55(ptr) AccessChain 49(data) 342 51 64
Store 334 333 350: 6(int) CompositeExtract 346 1
335: 6(int) Load 8(invocation) Store 349 350
336: 185(ptr) AccessChain 49(data) 61 121 54 351: 6(int) Load 8(invocation)
337:44(float64_t) Load 336 352: 88(ptr) AccessChain 49(data) 51 51
338:44(float64_t) GroupNonUniformBroadcastFirst 38 337 353: 17(ivec4) Load 352
339: 185(ptr) AccessChain 49(data) 335 121 54 354: 180(ivec3) VectorShuffle 353 353 0 1 2
Store 339 338 355: 180(ivec3) GroupNonUniformBroadcastFirst 38 354
340: 6(int) Load 8(invocation) 356: 55(ptr) AccessChain 49(data) 351 51 54
341: 192(ptr) AccessChain 49(data) 60 121 357: 6(int) CompositeExtract 355 0
342: 45(f64vec4) Load 341 Store 356 357
343:191(f64vec2) VectorShuffle 342 342 0 1 358: 55(ptr) AccessChain 49(data) 351 51 64
344:191(f64vec2) GroupNonUniformBroadcastFirst 38 343 359: 6(int) CompositeExtract 355 1
345: 192(ptr) AccessChain 49(data) 340 121 Store 358 359
346: 45(f64vec4) Load 345 360: 55(ptr) AccessChain 49(data) 351 51 72
347: 45(f64vec4) VectorShuffle 346 344 4 5 2 3 361: 6(int) CompositeExtract 355 2
Store 345 347 Store 360 361
348: 6(int) Load 8(invocation) 362: 6(int) Load 8(invocation)
349: 192(ptr) AccessChain 49(data) 51 121 363: 88(ptr) AccessChain 49(data) 125 51
350: 45(f64vec4) Load 349 364: 17(ivec4) Load 363
351:201(f64vec3) VectorShuffle 350 350 0 1 2 365: 17(ivec4) GroupNonUniformBroadcastFirst 38 364
352:201(f64vec3) GroupNonUniformBroadcastFirst 38 351 366: 88(ptr) AccessChain 49(data) 362 51
353: 192(ptr) AccessChain 49(data) 348 121 Store 366 365
354: 45(f64vec4) Load 353 367: 6(int) Load 8(invocation)
355: 45(f64vec4) VectorShuffle 354 352 4 5 6 3 368: 197(ptr) AccessChain 49(data) 61 125 54
Store 353 355 369:44(float64_t) Load 368
356: 6(int) Load 8(invocation) 370:44(float64_t) GroupNonUniformBroadcastFirst 38 369
357: 192(ptr) AccessChain 49(data) 121 121 371: 197(ptr) AccessChain 49(data) 367 125 54
358: 45(f64vec4) Load 357 Store 371 370
359: 45(f64vec4) GroupNonUniformBroadcastFirst 38 358 372: 6(int) Load 8(invocation)
360: 192(ptr) AccessChain 49(data) 356 121 373: 204(ptr) AccessChain 49(data) 60 125
Store 360 359 374: 45(f64vec4) Load 373
361: 6(int) Load 8(invocation) 375:203(f64vec2) VectorShuffle 374 374 0 1
362: 127(ptr) AccessChain 49(data) 61 60 54 376:203(f64vec2) GroupNonUniformBroadcastFirst 38 375
363: 42(int) Load 362 377: 197(ptr) AccessChain 49(data) 372 125 54
364: 36(bool) SLessThan 363 61 378:44(float64_t) CompositeExtract 376 0
365: 36(bool) GroupNonUniformBroadcastFirst 38 364 Store 377 378
366: 42(int) Select 365 60 61 379: 197(ptr) AccessChain 49(data) 372 125 64
367: 127(ptr) AccessChain 49(data) 361 60 54 380:44(float64_t) CompositeExtract 376 1
Store 367 366 Store 379 380
368: 6(int) Load 8(invocation) 381: 6(int) Load 8(invocation)
369: 134(ptr) AccessChain 49(data) 60 60 382: 204(ptr) AccessChain 49(data) 51 125
370: 43(ivec4) Load 369 383: 45(f64vec4) Load 382
371: 133(ivec2) VectorShuffle 370 370 0 1 384:214(f64vec3) VectorShuffle 383 383 0 1 2
372: 226(bvec2) SLessThan 371 225 385:214(f64vec3) GroupNonUniformBroadcastFirst 38 384
373: 226(bvec2) GroupNonUniformBroadcastFirst 38 372 386: 197(ptr) AccessChain 49(data) 381 125 54
374: 133(ivec2) Select 373 229 225 387:44(float64_t) CompositeExtract 385 0
375: 134(ptr) AccessChain 49(data) 368 60 Store 386 387
376: 43(ivec4) Load 375 388: 197(ptr) AccessChain 49(data) 381 125 64
377: 43(ivec4) VectorShuffle 376 374 4 5 2 3 389:44(float64_t) CompositeExtract 385 1
Store 375 377 Store 388 389
378: 6(int) Load 8(invocation) 390: 197(ptr) AccessChain 49(data) 381 125 72
379: 134(ptr) AccessChain 49(data) 60 60 391:44(float64_t) CompositeExtract 385 2
380: 43(ivec4) Load 379 Store 390 391
381: 143(ivec3) VectorShuffle 380 380 0 1 2 392: 6(int) Load 8(invocation)
382: 239(bvec3) SLessThan 381 238 393: 204(ptr) AccessChain 49(data) 125 125
383: 239(bvec3) GroupNonUniformBroadcastFirst 38 382 394: 45(f64vec4) Load 393
384: 143(ivec3) Select 383 242 238 395: 45(f64vec4) GroupNonUniformBroadcastFirst 38 394
385: 134(ptr) AccessChain 49(data) 378 60 396: 204(ptr) AccessChain 49(data) 392 125
386: 43(ivec4) Load 385 Store 396 395
387: 43(ivec4) VectorShuffle 386 384 4 5 6 3 397: 6(int) Load 8(invocation)
Store 385 387 398: 131(ptr) AccessChain 49(data) 61 60 54
388: 6(int) Load 8(invocation) 399: 42(int) Load 398
389: 134(ptr) AccessChain 49(data) 60 60 400: 36(bool) SLessThan 399 61
390: 43(ivec4) Load 389 401: 36(bool) GroupNonUniformBroadcastFirst 38 400
391: 83(bvec4) SLessThan 390 250 402: 42(int) Select 401 60 61
392: 83(bvec4) GroupNonUniformBroadcastFirst 38 391 403: 131(ptr) AccessChain 49(data) 397 60 54
393: 43(ivec4) Select 392 253 250 Store 403 402
394: 134(ptr) AccessChain 49(data) 388 60 404: 6(int) Load 8(invocation)
Store 394 393 405: 138(ptr) AccessChain 49(data) 60 60
406: 43(ivec4) Load 405
407: 137(ivec2) VectorShuffle 406 406 0 1
408: 242(bvec2) SLessThan 407 241
409: 242(bvec2) GroupNonUniformBroadcastFirst 38 408
410: 137(ivec2) Select 409 245 241
411: 131(ptr) AccessChain 49(data) 404 60 54
412: 42(int) CompositeExtract 410 0
Store 411 412
413: 131(ptr) AccessChain 49(data) 404 60 64
414: 42(int) CompositeExtract 410 1
Store 413 414
415: 6(int) Load 8(invocation)
416: 138(ptr) AccessChain 49(data) 60 60
417: 43(ivec4) Load 416
418: 148(ivec3) VectorShuffle 417 417 0 1 2
419: 256(bvec3) SLessThan 418 255
420: 256(bvec3) GroupNonUniformBroadcastFirst 38 419
421: 148(ivec3) Select 420 259 255
422: 131(ptr) AccessChain 49(data) 415 60 54
423: 42(int) CompositeExtract 421 0
Store 422 423
424: 131(ptr) AccessChain 49(data) 415 60 64
425: 42(int) CompositeExtract 421 1
Store 424 425
426: 131(ptr) AccessChain 49(data) 415 60 72
427: 42(int) CompositeExtract 421 2
Store 426 427
428: 6(int) Load 8(invocation)
429: 138(ptr) AccessChain 49(data) 60 60
430: 43(ivec4) Load 429
431: 83(bvec4) SLessThan 430 270
432: 83(bvec4) GroupNonUniformBroadcastFirst 38 431
433: 43(ivec4) Select 432 273 270
434: 138(ptr) AccessChain 49(data) 428 60
Store 434 433
Branch 94 Branch 94
94: Label 94: Label
Return Return

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
spv.subgroupShuffle.comp spv.subgroupShuffle.comp
// Module Version 10300 // Module Version 10300
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 379 // Id's are bound by 420
Capability Shader Capability Shader
Capability Float64 Capability Float64
@ -39,7 +39,7 @@ spv.subgroupShuffle.comp
Decorate 24(Buffers) Block Decorate 24(Buffers) Block
Decorate 27(data) DescriptorSet 0 Decorate 27(data) DescriptorSet 0
Decorate 27(data) Binding 0 Decorate 27(data) Binding 0
Decorate 378 BuiltIn WorkgroupSize Decorate 419 BuiltIn WorkgroupSize
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0
@ -66,34 +66,35 @@ spv.subgroupShuffle.comp
39: 19(int) Constant 1 39: 19(int) Constant 1
40: TypeVector 17(float) 2 40: TypeVector 17(float) 2
41: TypePointer StorageBuffer 18(fvec4) 41: TypePointer StorageBuffer 18(fvec4)
51: 19(int) Constant 2 49: 6(int) Constant 1
52: TypeVector 17(float) 3 53: 19(int) Constant 2
62: 19(int) Constant 3 54: TypeVector 17(float) 3
69: TypePointer StorageBuffer 19(int) 64: 6(int) Constant 2
76: TypeVector 19(int) 2 68: 19(int) Constant 3
77: TypePointer StorageBuffer 20(ivec4) 75: TypePointer StorageBuffer 19(int)
87: TypeVector 19(int) 3 82: TypeVector 19(int) 2
103: TypePointer StorageBuffer 6(int) 83: TypePointer StorageBuffer 20(ivec4)
110: TypeVector 6(int) 2 94: TypeVector 19(int) 3
111: TypePointer StorageBuffer 21(ivec4) 113: TypePointer StorageBuffer 6(int)
121: TypeVector 6(int) 3 120: TypeVector 6(int) 2
137: TypePointer StorageBuffer 22(float64_t) 121: TypePointer StorageBuffer 21(ivec4)
144: TypeVector 22(float64_t) 2 132: TypeVector 6(int) 3
145: TypePointer StorageBuffer 23(f64vec4) 151: TypePointer StorageBuffer 22(float64_t)
155: TypeVector 22(float64_t) 3 158: TypeVector 22(float64_t) 2
173: TypeBool 159: TypePointer StorageBuffer 23(f64vec4)
183: 76(ivec2) ConstantComposite 29 29 170: TypeVector 22(float64_t) 3
184: TypeVector 173(bool) 2 191: TypeBool
188: 76(ivec2) ConstantComposite 39 39 201: 82(ivec2) ConstantComposite 29 29
197: 87(ivec3) ConstantComposite 29 29 29 202: TypeVector 191(bool) 2
198: TypeVector 173(bool) 3 206: 82(ivec2) ConstantComposite 39 39
202: 87(ivec3) ConstantComposite 39 39 39 216: 94(ivec3) ConstantComposite 29 29 29
210: 20(ivec4) ConstantComposite 29 29 29 29 217: TypeVector 191(bool) 3
211: TypeVector 173(bool) 4 221: 94(ivec3) ConstantComposite 39 39 39
215: 20(ivec4) ConstantComposite 39 39 39 39 232: 20(ivec4) ConstantComposite 29 29 29 29
376: 6(int) Constant 8 233: TypeVector 191(bool) 4
377: 6(int) Constant 1 237: 20(ivec4) ConstantComposite 39 39 39 39
378: 121(ivec3) ConstantComposite 376 376 377 418: 6(int) Constant 8
419: 132(ivec3) ConstantComposite 418 418 49
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
8(invocation): 7(ptr) Variable Function 8(invocation): 7(ptr) Variable Function
@ -115,348 +116,418 @@ spv.subgroupShuffle.comp
44: 40(fvec2) VectorShuffle 43 43 0 1 44: 40(fvec2) VectorShuffle 43 43 0 1
45: 6(int) Load 8(invocation) 45: 6(int) Load 8(invocation)
46: 40(fvec2) GroupNonUniformShuffle 35 44 45 46: 40(fvec2) GroupNonUniformShuffle 35 44 45
47: 41(ptr) AccessChain 27(data) 38 29 47: 31(ptr) AccessChain 27(data) 38 29 30
48: 18(fvec4) Load 47 48: 17(float) CompositeExtract 46 0
49: 18(fvec4) VectorShuffle 48 46 4 5 2 3 Store 47 48
Store 47 49 50: 31(ptr) AccessChain 27(data) 38 29 49
50: 6(int) Load 8(invocation) 51: 17(float) CompositeExtract 46 1
53: 41(ptr) AccessChain 27(data) 51 29 Store 50 51
54: 18(fvec4) Load 53 52: 6(int) Load 8(invocation)
55: 52(fvec3) VectorShuffle 54 54 0 1 2 55: 41(ptr) AccessChain 27(data) 53 29
56: 6(int) Load 8(invocation) 56: 18(fvec4) Load 55
57: 52(fvec3) GroupNonUniformShuffle 35 55 56 57: 54(fvec3) VectorShuffle 56 56 0 1 2
58: 41(ptr) AccessChain 27(data) 50 29 58: 6(int) Load 8(invocation)
59: 18(fvec4) Load 58 59: 54(fvec3) GroupNonUniformShuffle 35 57 58
60: 18(fvec4) VectorShuffle 59 57 4 5 6 3 60: 31(ptr) AccessChain 27(data) 52 29 30
Store 58 60 61: 17(float) CompositeExtract 59 0
61: 6(int) Load 8(invocation) Store 60 61
63: 41(ptr) AccessChain 27(data) 62 29 62: 31(ptr) AccessChain 27(data) 52 29 49
64: 18(fvec4) Load 63 63: 17(float) CompositeExtract 59 1
65: 6(int) Load 8(invocation) Store 62 63
66: 18(fvec4) GroupNonUniformShuffle 35 64 65 65: 31(ptr) AccessChain 27(data) 52 29 64
67: 41(ptr) AccessChain 27(data) 61 29 66: 17(float) CompositeExtract 59 2
Store 67 66 Store 65 66
68: 6(int) Load 8(invocation) 67: 6(int) Load 8(invocation)
70: 69(ptr) AccessChain 27(data) 29 39 30 69: 41(ptr) AccessChain 27(data) 68 29
71: 19(int) Load 70 70: 18(fvec4) Load 69
72: 6(int) Load 8(invocation) 71: 6(int) Load 8(invocation)
73: 19(int) GroupNonUniformShuffle 35 71 72 72: 18(fvec4) GroupNonUniformShuffle 35 70 71
74: 69(ptr) AccessChain 27(data) 68 39 30 73: 41(ptr) AccessChain 27(data) 67 29
Store 74 73 Store 73 72
75: 6(int) Load 8(invocation) 74: 6(int) Load 8(invocation)
78: 77(ptr) AccessChain 27(data) 39 39 76: 75(ptr) AccessChain 27(data) 29 39 30
79: 20(ivec4) Load 78 77: 19(int) Load 76
80: 76(ivec2) VectorShuffle 79 79 0 1 78: 6(int) Load 8(invocation)
79: 19(int) GroupNonUniformShuffle 35 77 78
80: 75(ptr) AccessChain 27(data) 74 39 30
Store 80 79
81: 6(int) Load 8(invocation) 81: 6(int) Load 8(invocation)
82: 76(ivec2) GroupNonUniformShuffle 35 80 81 84: 83(ptr) AccessChain 27(data) 39 39
83: 77(ptr) AccessChain 27(data) 75 39 85: 20(ivec4) Load 84
84: 20(ivec4) Load 83 86: 82(ivec2) VectorShuffle 85 85 0 1
85: 20(ivec4) VectorShuffle 84 82 4 5 2 3 87: 6(int) Load 8(invocation)
Store 83 85 88: 82(ivec2) GroupNonUniformShuffle 35 86 87
86: 6(int) Load 8(invocation) 89: 75(ptr) AccessChain 27(data) 81 39 30
88: 77(ptr) AccessChain 27(data) 51 39 90: 19(int) CompositeExtract 88 0
89: 20(ivec4) Load 88 Store 89 90
90: 87(ivec3) VectorShuffle 89 89 0 1 2 91: 75(ptr) AccessChain 27(data) 81 39 49
91: 6(int) Load 8(invocation) 92: 19(int) CompositeExtract 88 1
92: 87(ivec3) GroupNonUniformShuffle 35 90 91 Store 91 92
93: 77(ptr) AccessChain 27(data) 86 39 93: 6(int) Load 8(invocation)
94: 20(ivec4) Load 93 95: 83(ptr) AccessChain 27(data) 53 39
95: 20(ivec4) VectorShuffle 94 92 4 5 6 3 96: 20(ivec4) Load 95
Store 93 95 97: 94(ivec3) VectorShuffle 96 96 0 1 2
96: 6(int) Load 8(invocation) 98: 6(int) Load 8(invocation)
97: 77(ptr) AccessChain 27(data) 62 39 99: 94(ivec3) GroupNonUniformShuffle 35 97 98
98: 20(ivec4) Load 97 100: 75(ptr) AccessChain 27(data) 93 39 30
99: 6(int) Load 8(invocation) 101: 19(int) CompositeExtract 99 0
100: 20(ivec4) GroupNonUniformShuffle 35 98 99 Store 100 101
101: 77(ptr) AccessChain 27(data) 96 39 102: 75(ptr) AccessChain 27(data) 93 39 49
Store 101 100 103: 19(int) CompositeExtract 99 1
102: 6(int) Load 8(invocation) Store 102 103
104: 103(ptr) AccessChain 27(data) 29 51 30 104: 75(ptr) AccessChain 27(data) 93 39 64
105: 6(int) Load 104 105: 19(int) CompositeExtract 99 2
Store 104 105
106: 6(int) Load 8(invocation) 106: 6(int) Load 8(invocation)
107: 6(int) GroupNonUniformShuffle 35 105 106 107: 83(ptr) AccessChain 27(data) 68 39
108: 103(ptr) AccessChain 27(data) 102 51 30 108: 20(ivec4) Load 107
Store 108 107
109: 6(int) Load 8(invocation) 109: 6(int) Load 8(invocation)
112: 111(ptr) AccessChain 27(data) 39 51 110: 20(ivec4) GroupNonUniformShuffle 35 108 109
113: 21(ivec4) Load 112 111: 83(ptr) AccessChain 27(data) 106 39
114: 110(ivec2) VectorShuffle 113 113 0 1 Store 111 110
115: 6(int) Load 8(invocation) 112: 6(int) Load 8(invocation)
116: 110(ivec2) GroupNonUniformShuffle 35 114 115 114: 113(ptr) AccessChain 27(data) 29 53 30
117: 111(ptr) AccessChain 27(data) 109 51 115: 6(int) Load 114
118: 21(ivec4) Load 117 116: 6(int) Load 8(invocation)
119: 21(ivec4) VectorShuffle 118 116 4 5 2 3 117: 6(int) GroupNonUniformShuffle 35 115 116
Store 117 119 118: 113(ptr) AccessChain 27(data) 112 53 30
120: 6(int) Load 8(invocation) Store 118 117
122: 111(ptr) AccessChain 27(data) 51 51 119: 6(int) Load 8(invocation)
122: 121(ptr) AccessChain 27(data) 39 53
123: 21(ivec4) Load 122 123: 21(ivec4) Load 122
124: 121(ivec3) VectorShuffle 123 123 0 1 2 124: 120(ivec2) VectorShuffle 123 123 0 1
125: 6(int) Load 8(invocation) 125: 6(int) Load 8(invocation)
126: 121(ivec3) GroupNonUniformShuffle 35 124 125 126: 120(ivec2) GroupNonUniformShuffle 35 124 125
127: 111(ptr) AccessChain 27(data) 120 51 127: 113(ptr) AccessChain 27(data) 119 53 30
128: 21(ivec4) Load 127 128: 6(int) CompositeExtract 126 0
129: 21(ivec4) VectorShuffle 128 126 4 5 6 3 Store 127 128
Store 127 129 129: 113(ptr) AccessChain 27(data) 119 53 49
130: 6(int) Load 8(invocation) 130: 6(int) CompositeExtract 126 1
131: 111(ptr) AccessChain 27(data) 62 51 Store 129 130
132: 21(ivec4) Load 131 131: 6(int) Load 8(invocation)
133: 6(int) Load 8(invocation) 133: 121(ptr) AccessChain 27(data) 53 53
134: 21(ivec4) GroupNonUniformShuffle 35 132 133 134: 21(ivec4) Load 133
135: 111(ptr) AccessChain 27(data) 130 51 135: 132(ivec3) VectorShuffle 134 134 0 1 2
Store 135 134
136: 6(int) Load 8(invocation) 136: 6(int) Load 8(invocation)
138: 137(ptr) AccessChain 27(data) 29 62 30 137: 132(ivec3) GroupNonUniformShuffle 35 135 136
139:22(float64_t) Load 138 138: 113(ptr) AccessChain 27(data) 131 53 30
140: 6(int) Load 8(invocation) 139: 6(int) CompositeExtract 137 0
141:22(float64_t) GroupNonUniformShuffle 35 139 140 Store 138 139
142: 137(ptr) AccessChain 27(data) 136 62 30 140: 113(ptr) AccessChain 27(data) 131 53 49
Store 142 141 141: 6(int) CompositeExtract 137 1
143: 6(int) Load 8(invocation) Store 140 141
146: 145(ptr) AccessChain 27(data) 39 62 142: 113(ptr) AccessChain 27(data) 131 53 64
147: 23(f64vec4) Load 146 143: 6(int) CompositeExtract 137 2
148:144(f64vec2) VectorShuffle 147 147 0 1 Store 142 143
149: 6(int) Load 8(invocation) 144: 6(int) Load 8(invocation)
150:144(f64vec2) GroupNonUniformShuffle 35 148 149 145: 121(ptr) AccessChain 27(data) 68 53
151: 145(ptr) AccessChain 27(data) 143 62 146: 21(ivec4) Load 145
152: 23(f64vec4) Load 151 147: 6(int) Load 8(invocation)
153: 23(f64vec4) VectorShuffle 152 150 4 5 2 3 148: 21(ivec4) GroupNonUniformShuffle 35 146 147
Store 151 153 149: 121(ptr) AccessChain 27(data) 144 53
Store 149 148
150: 6(int) Load 8(invocation)
152: 151(ptr) AccessChain 27(data) 29 68 30
153:22(float64_t) Load 152
154: 6(int) Load 8(invocation) 154: 6(int) Load 8(invocation)
156: 145(ptr) AccessChain 27(data) 51 62 155:22(float64_t) GroupNonUniformShuffle 35 153 154
157: 23(f64vec4) Load 156 156: 151(ptr) AccessChain 27(data) 150 68 30
158:155(f64vec3) VectorShuffle 157 157 0 1 2 Store 156 155
159: 6(int) Load 8(invocation) 157: 6(int) Load 8(invocation)
160:155(f64vec3) GroupNonUniformShuffle 35 158 159 160: 159(ptr) AccessChain 27(data) 39 68
161: 145(ptr) AccessChain 27(data) 154 62 161: 23(f64vec4) Load 160
162: 23(f64vec4) Load 161 162:158(f64vec2) VectorShuffle 161 161 0 1
163: 23(f64vec4) VectorShuffle 162 160 4 5 6 3 163: 6(int) Load 8(invocation)
Store 161 163 164:158(f64vec2) GroupNonUniformShuffle 35 162 163
164: 6(int) Load 8(invocation) 165: 151(ptr) AccessChain 27(data) 157 68 30
165: 145(ptr) AccessChain 27(data) 62 62 166:22(float64_t) CompositeExtract 164 0
166: 23(f64vec4) Load 165 Store 165 166
167: 6(int) Load 8(invocation) 167: 151(ptr) AccessChain 27(data) 157 68 49
168: 23(f64vec4) GroupNonUniformShuffle 35 166 167 168:22(float64_t) CompositeExtract 164 1
169: 145(ptr) AccessChain 27(data) 164 62 Store 167 168
Store 169 168 169: 6(int) Load 8(invocation)
170: 6(int) Load 8(invocation) 171: 159(ptr) AccessChain 27(data) 53 68
171: 69(ptr) AccessChain 27(data) 29 39 30 172: 23(f64vec4) Load 171
172: 19(int) Load 171 173:170(f64vec3) VectorShuffle 172 172 0 1 2
174: 173(bool) SLessThan 172 29 174: 6(int) Load 8(invocation)
175: 6(int) Load 8(invocation) 175:170(f64vec3) GroupNonUniformShuffle 35 173 174
176: 173(bool) GroupNonUniformShuffle 35 174 175 176: 151(ptr) AccessChain 27(data) 169 68 30
177: 19(int) Select 176 39 29 177:22(float64_t) CompositeExtract 175 0
178: 69(ptr) AccessChain 27(data) 170 39 30 Store 176 177
Store 178 177 178: 151(ptr) AccessChain 27(data) 169 68 49
179: 6(int) Load 8(invocation) 179:22(float64_t) CompositeExtract 175 1
180: 77(ptr) AccessChain 27(data) 39 39 Store 178 179
181: 20(ivec4) Load 180 180: 151(ptr) AccessChain 27(data) 169 68 64
182: 76(ivec2) VectorShuffle 181 181 0 1 181:22(float64_t) CompositeExtract 175 2
185: 184(bvec2) SLessThan 182 183 Store 180 181
186: 6(int) Load 8(invocation) 182: 6(int) Load 8(invocation)
187: 184(bvec2) GroupNonUniformShuffle 35 185 186 183: 159(ptr) AccessChain 27(data) 68 68
189: 76(ivec2) Select 187 188 183 184: 23(f64vec4) Load 183
190: 77(ptr) AccessChain 27(data) 179 39 185: 6(int) Load 8(invocation)
191: 20(ivec4) Load 190 186: 23(f64vec4) GroupNonUniformShuffle 35 184 185
192: 20(ivec4) VectorShuffle 191 189 4 5 2 3 187: 159(ptr) AccessChain 27(data) 182 68
Store 190 192 Store 187 186
188: 6(int) Load 8(invocation)
189: 75(ptr) AccessChain 27(data) 29 39 30
190: 19(int) Load 189
192: 191(bool) SLessThan 190 29
193: 6(int) Load 8(invocation) 193: 6(int) Load 8(invocation)
194: 77(ptr) AccessChain 27(data) 39 39 194: 191(bool) GroupNonUniformShuffle 35 192 193
195: 20(ivec4) Load 194 195: 19(int) Select 194 39 29
196: 87(ivec3) VectorShuffle 195 195 0 1 2 196: 75(ptr) AccessChain 27(data) 188 39 30
199: 198(bvec3) SLessThan 196 197 Store 196 195
200: 6(int) Load 8(invocation) 197: 6(int) Load 8(invocation)
201: 198(bvec3) GroupNonUniformShuffle 35 199 200 198: 83(ptr) AccessChain 27(data) 39 39
203: 87(ivec3) Select 201 202 197 199: 20(ivec4) Load 198
204: 77(ptr) AccessChain 27(data) 193 39 200: 82(ivec2) VectorShuffle 199 199 0 1
205: 20(ivec4) Load 204 203: 202(bvec2) SLessThan 200 201
206: 20(ivec4) VectorShuffle 205 203 4 5 6 3 204: 6(int) Load 8(invocation)
Store 204 206 205: 202(bvec2) GroupNonUniformShuffle 35 203 204
207: 6(int) Load 8(invocation) 207: 82(ivec2) Select 205 206 201
208: 77(ptr) AccessChain 27(data) 39 39 208: 75(ptr) AccessChain 27(data) 197 39 30
209: 20(ivec4) Load 208 209: 19(int) CompositeExtract 207 0
212: 211(bvec4) SLessThan 209 210 Store 208 209
213: 6(int) Load 8(invocation) 210: 75(ptr) AccessChain 27(data) 197 39 49
214: 211(bvec4) GroupNonUniformShuffle 35 212 213 211: 19(int) CompositeExtract 207 1
216: 20(ivec4) Select 214 215 210 Store 210 211
217: 77(ptr) AccessChain 27(data) 207 39 212: 6(int) Load 8(invocation)
Store 217 216 213: 83(ptr) AccessChain 27(data) 39 39
218: 6(int) Load 8(invocation) 214: 20(ivec4) Load 213
219: 31(ptr) AccessChain 27(data) 29 29 30 215: 94(ivec3) VectorShuffle 214 214 0 1 2
220: 17(float) Load 219 218: 217(bvec3) SLessThan 215 216
221: 6(int) Load 8(invocation) 219: 6(int) Load 8(invocation)
222: 17(float) GroupNonUniformShuffleXor 35 220 221 220: 217(bvec3) GroupNonUniformShuffle 35 218 219
223: 31(ptr) AccessChain 27(data) 218 29 30 222: 94(ivec3) Select 220 221 216
Store 223 222 223: 75(ptr) AccessChain 27(data) 212 39 30
224: 6(int) Load 8(invocation) 224: 19(int) CompositeExtract 222 0
225: 41(ptr) AccessChain 27(data) 39 29 Store 223 224
226: 18(fvec4) Load 225 225: 75(ptr) AccessChain 27(data) 212 39 49
227: 40(fvec2) VectorShuffle 226 226 0 1 226: 19(int) CompositeExtract 222 1
228: 6(int) Load 8(invocation) Store 225 226
229: 40(fvec2) GroupNonUniformShuffleXor 35 227 228 227: 75(ptr) AccessChain 27(data) 212 39 64
230: 41(ptr) AccessChain 27(data) 224 29 228: 19(int) CompositeExtract 222 2
231: 18(fvec4) Load 230 Store 227 228
232: 18(fvec4) VectorShuffle 231 229 4 5 2 3 229: 6(int) Load 8(invocation)
Store 230 232 230: 83(ptr) AccessChain 27(data) 39 39
233: 6(int) Load 8(invocation) 231: 20(ivec4) Load 230
234: 41(ptr) AccessChain 27(data) 51 29 234: 233(bvec4) SLessThan 231 232
235: 18(fvec4) Load 234 235: 6(int) Load 8(invocation)
236: 52(fvec3) VectorShuffle 235 235 0 1 2 236: 233(bvec4) GroupNonUniformShuffle 35 234 235
237: 6(int) Load 8(invocation) 238: 20(ivec4) Select 236 237 232
238: 52(fvec3) GroupNonUniformShuffleXor 35 236 237 239: 83(ptr) AccessChain 27(data) 229 39
239: 41(ptr) AccessChain 27(data) 233 29 Store 239 238
240: 18(fvec4) Load 239 240: 6(int) Load 8(invocation)
241: 18(fvec4) VectorShuffle 240 238 4 5 6 3 241: 31(ptr) AccessChain 27(data) 29 29 30
Store 239 241 242: 17(float) Load 241
242: 6(int) Load 8(invocation) 243: 6(int) Load 8(invocation)
243: 41(ptr) AccessChain 27(data) 62 29 244: 17(float) GroupNonUniformShuffleXor 35 242 243
244: 18(fvec4) Load 243 245: 31(ptr) AccessChain 27(data) 240 29 30
245: 6(int) Load 8(invocation) Store 245 244
246: 18(fvec4) GroupNonUniformShuffleXor 35 244 245 246: 6(int) Load 8(invocation)
247: 41(ptr) AccessChain 27(data) 242 29 247: 41(ptr) AccessChain 27(data) 39 29
Store 247 246 248: 18(fvec4) Load 247
248: 6(int) Load 8(invocation) 249: 40(fvec2) VectorShuffle 248 248 0 1
249: 69(ptr) AccessChain 27(data) 29 39 30 250: 6(int) Load 8(invocation)
250: 19(int) Load 249 251: 40(fvec2) GroupNonUniformShuffleXor 35 249 250
251: 6(int) Load 8(invocation) 252: 31(ptr) AccessChain 27(data) 246 29 30
252: 19(int) GroupNonUniformShuffleXor 35 250 251 253: 17(float) CompositeExtract 251 0
253: 69(ptr) AccessChain 27(data) 248 39 30 Store 252 253
Store 253 252 254: 31(ptr) AccessChain 27(data) 246 29 49
254: 6(int) Load 8(invocation) 255: 17(float) CompositeExtract 251 1
255: 77(ptr) AccessChain 27(data) 39 39 Store 254 255
256: 20(ivec4) Load 255 256: 6(int) Load 8(invocation)
257: 76(ivec2) VectorShuffle 256 256 0 1 257: 41(ptr) AccessChain 27(data) 53 29
258: 6(int) Load 8(invocation) 258: 18(fvec4) Load 257
259: 76(ivec2) GroupNonUniformShuffleXor 35 257 258 259: 54(fvec3) VectorShuffle 258 258 0 1 2
260: 77(ptr) AccessChain 27(data) 254 39 260: 6(int) Load 8(invocation)
261: 20(ivec4) Load 260 261: 54(fvec3) GroupNonUniformShuffleXor 35 259 260
262: 20(ivec4) VectorShuffle 261 259 4 5 2 3 262: 31(ptr) AccessChain 27(data) 256 29 30
Store 260 262 263: 17(float) CompositeExtract 261 0
263: 6(int) Load 8(invocation) Store 262 263
264: 77(ptr) AccessChain 27(data) 51 39 264: 31(ptr) AccessChain 27(data) 256 29 49
265: 20(ivec4) Load 264 265: 17(float) CompositeExtract 261 1
266: 87(ivec3) VectorShuffle 265 265 0 1 2 Store 264 265
267: 6(int) Load 8(invocation) 266: 31(ptr) AccessChain 27(data) 256 29 64
268: 87(ivec3) GroupNonUniformShuffleXor 35 266 267 267: 17(float) CompositeExtract 261 2
269: 77(ptr) AccessChain 27(data) 263 39 Store 266 267
270: 20(ivec4) Load 269 268: 6(int) Load 8(invocation)
271: 20(ivec4) VectorShuffle 270 268 4 5 6 3 269: 41(ptr) AccessChain 27(data) 68 29
Store 269 271 270: 18(fvec4) Load 269
272: 6(int) Load 8(invocation) 271: 6(int) Load 8(invocation)
273: 77(ptr) AccessChain 27(data) 62 39 272: 18(fvec4) GroupNonUniformShuffleXor 35 270 271
274: 20(ivec4) Load 273 273: 41(ptr) AccessChain 27(data) 268 29
275: 6(int) Load 8(invocation) Store 273 272
276: 20(ivec4) GroupNonUniformShuffleXor 35 274 275 274: 6(int) Load 8(invocation)
277: 77(ptr) AccessChain 27(data) 272 39 275: 75(ptr) AccessChain 27(data) 29 39 30
Store 277 276 276: 19(int) Load 275
278: 6(int) Load 8(invocation) 277: 6(int) Load 8(invocation)
279: 103(ptr) AccessChain 27(data) 29 51 30 278: 19(int) GroupNonUniformShuffleXor 35 276 277
280: 6(int) Load 279 279: 75(ptr) AccessChain 27(data) 274 39 30
281: 6(int) Load 8(invocation) Store 279 278
282: 6(int) GroupNonUniformShuffleXor 35 280 281 280: 6(int) Load 8(invocation)
283: 103(ptr) AccessChain 27(data) 278 51 30 281: 83(ptr) AccessChain 27(data) 39 39
Store 283 282 282: 20(ivec4) Load 281
283: 82(ivec2) VectorShuffle 282 282 0 1
284: 6(int) Load 8(invocation) 284: 6(int) Load 8(invocation)
285: 111(ptr) AccessChain 27(data) 39 51 285: 82(ivec2) GroupNonUniformShuffleXor 35 283 284
286: 21(ivec4) Load 285 286: 75(ptr) AccessChain 27(data) 280 39 30
287: 110(ivec2) VectorShuffle 286 286 0 1 287: 19(int) CompositeExtract 285 0
288: 6(int) Load 8(invocation) Store 286 287
289: 110(ivec2) GroupNonUniformShuffleXor 35 287 288 288: 75(ptr) AccessChain 27(data) 280 39 49
290: 111(ptr) AccessChain 27(data) 284 51 289: 19(int) CompositeExtract 285 1
291: 21(ivec4) Load 290 Store 288 289
292: 21(ivec4) VectorShuffle 291 289 4 5 2 3 290: 6(int) Load 8(invocation)
Store 290 292 291: 83(ptr) AccessChain 27(data) 53 39
293: 6(int) Load 8(invocation) 292: 20(ivec4) Load 291
294: 111(ptr) AccessChain 27(data) 51 51 293: 94(ivec3) VectorShuffle 292 292 0 1 2
295: 21(ivec4) Load 294 294: 6(int) Load 8(invocation)
296: 121(ivec3) VectorShuffle 295 295 0 1 2 295: 94(ivec3) GroupNonUniformShuffleXor 35 293 294
297: 6(int) Load 8(invocation) 296: 75(ptr) AccessChain 27(data) 290 39 30
298: 121(ivec3) GroupNonUniformShuffleXor 35 296 297 297: 19(int) CompositeExtract 295 0
299: 111(ptr) AccessChain 27(data) 293 51 Store 296 297
300: 21(ivec4) Load 299 298: 75(ptr) AccessChain 27(data) 290 39 49
301: 21(ivec4) VectorShuffle 300 298 4 5 6 3 299: 19(int) CompositeExtract 295 1
Store 299 301 Store 298 299
300: 75(ptr) AccessChain 27(data) 290 39 64
301: 19(int) CompositeExtract 295 2
Store 300 301
302: 6(int) Load 8(invocation) 302: 6(int) Load 8(invocation)
303: 111(ptr) AccessChain 27(data) 62 51 303: 83(ptr) AccessChain 27(data) 68 39
304: 21(ivec4) Load 303 304: 20(ivec4) Load 303
305: 6(int) Load 8(invocation) 305: 6(int) Load 8(invocation)
306: 21(ivec4) GroupNonUniformShuffleXor 35 304 305 306: 20(ivec4) GroupNonUniformShuffleXor 35 304 305
307: 111(ptr) AccessChain 27(data) 302 51 307: 83(ptr) AccessChain 27(data) 302 39
Store 307 306 Store 307 306
308: 6(int) Load 8(invocation) 308: 6(int) Load 8(invocation)
309: 137(ptr) AccessChain 27(data) 29 62 30 309: 113(ptr) AccessChain 27(data) 29 53 30
310:22(float64_t) Load 309 310: 6(int) Load 309
311: 6(int) Load 8(invocation) 311: 6(int) Load 8(invocation)
312:22(float64_t) GroupNonUniformShuffleXor 35 310 311 312: 6(int) GroupNonUniformShuffleXor 35 310 311
313: 137(ptr) AccessChain 27(data) 308 62 30 313: 113(ptr) AccessChain 27(data) 308 53 30
Store 313 312 Store 313 312
314: 6(int) Load 8(invocation) 314: 6(int) Load 8(invocation)
315: 145(ptr) AccessChain 27(data) 39 62 315: 121(ptr) AccessChain 27(data) 39 53
316: 23(f64vec4) Load 315 316: 21(ivec4) Load 315
317:144(f64vec2) VectorShuffle 316 316 0 1 317: 120(ivec2) VectorShuffle 316 316 0 1
318: 6(int) Load 8(invocation) 318: 6(int) Load 8(invocation)
319:144(f64vec2) GroupNonUniformShuffleXor 35 317 318 319: 120(ivec2) GroupNonUniformShuffleXor 35 317 318
320: 145(ptr) AccessChain 27(data) 314 62 320: 113(ptr) AccessChain 27(data) 314 53 30
321: 23(f64vec4) Load 320 321: 6(int) CompositeExtract 319 0
322: 23(f64vec4) VectorShuffle 321 319 4 5 2 3 Store 320 321
Store 320 322 322: 113(ptr) AccessChain 27(data) 314 53 49
323: 6(int) Load 8(invocation) 323: 6(int) CompositeExtract 319 1
324: 145(ptr) AccessChain 27(data) 51 62 Store 322 323
325: 23(f64vec4) Load 324 324: 6(int) Load 8(invocation)
326:155(f64vec3) VectorShuffle 325 325 0 1 2 325: 121(ptr) AccessChain 27(data) 53 53
327: 6(int) Load 8(invocation) 326: 21(ivec4) Load 325
328:155(f64vec3) GroupNonUniformShuffleXor 35 326 327 327: 132(ivec3) VectorShuffle 326 326 0 1 2
329: 145(ptr) AccessChain 27(data) 323 62 328: 6(int) Load 8(invocation)
330: 23(f64vec4) Load 329 329: 132(ivec3) GroupNonUniformShuffleXor 35 327 328
331: 23(f64vec4) VectorShuffle 330 328 4 5 6 3 330: 113(ptr) AccessChain 27(data) 324 53 30
Store 329 331 331: 6(int) CompositeExtract 329 0
332: 6(int) Load 8(invocation) Store 330 331
333: 145(ptr) AccessChain 27(data) 62 62 332: 113(ptr) AccessChain 27(data) 324 53 49
334: 23(f64vec4) Load 333 333: 6(int) CompositeExtract 329 1
335: 6(int) Load 8(invocation) Store 332 333
336: 23(f64vec4) GroupNonUniformShuffleXor 35 334 335 334: 113(ptr) AccessChain 27(data) 324 53 64
337: 145(ptr) AccessChain 27(data) 332 62 335: 6(int) CompositeExtract 329 2
Store 337 336 Store 334 335
338: 6(int) Load 8(invocation) 336: 6(int) Load 8(invocation)
339: 69(ptr) AccessChain 27(data) 29 39 30 337: 121(ptr) AccessChain 27(data) 68 53
340: 19(int) Load 339 338: 21(ivec4) Load 337
341: 173(bool) SLessThan 340 29 339: 6(int) Load 8(invocation)
340: 21(ivec4) GroupNonUniformShuffleXor 35 338 339
341: 121(ptr) AccessChain 27(data) 336 53
Store 341 340
342: 6(int) Load 8(invocation) 342: 6(int) Load 8(invocation)
343: 173(bool) GroupNonUniformShuffleXor 35 341 342 343: 151(ptr) AccessChain 27(data) 29 68 30
344: 19(int) Select 343 39 29 344:22(float64_t) Load 343
345: 69(ptr) AccessChain 27(data) 338 39 30 345: 6(int) Load 8(invocation)
Store 345 344 346:22(float64_t) GroupNonUniformShuffleXor 35 344 345
346: 6(int) Load 8(invocation) 347: 151(ptr) AccessChain 27(data) 342 68 30
347: 77(ptr) AccessChain 27(data) 39 39 Store 347 346
348: 20(ivec4) Load 347 348: 6(int) Load 8(invocation)
349: 76(ivec2) VectorShuffle 348 348 0 1 349: 159(ptr) AccessChain 27(data) 39 68
350: 184(bvec2) SLessThan 349 183 350: 23(f64vec4) Load 349
351: 6(int) Load 8(invocation) 351:158(f64vec2) VectorShuffle 350 350 0 1
352: 184(bvec2) GroupNonUniformShuffleXor 35 350 351 352: 6(int) Load 8(invocation)
353: 76(ivec2) Select 352 188 183 353:158(f64vec2) GroupNonUniformShuffleXor 35 351 352
354: 77(ptr) AccessChain 27(data) 346 39 354: 151(ptr) AccessChain 27(data) 348 68 30
355: 20(ivec4) Load 354 355:22(float64_t) CompositeExtract 353 0
356: 20(ivec4) VectorShuffle 355 353 4 5 2 3 Store 354 355
Store 354 356 356: 151(ptr) AccessChain 27(data) 348 68 49
357: 6(int) Load 8(invocation) 357:22(float64_t) CompositeExtract 353 1
358: 77(ptr) AccessChain 27(data) 39 39 Store 356 357
359: 20(ivec4) Load 358 358: 6(int) Load 8(invocation)
360: 87(ivec3) VectorShuffle 359 359 0 1 2 359: 159(ptr) AccessChain 27(data) 53 68
361: 198(bvec3) SLessThan 360 197 360: 23(f64vec4) Load 359
361:170(f64vec3) VectorShuffle 360 360 0 1 2
362: 6(int) Load 8(invocation) 362: 6(int) Load 8(invocation)
363: 198(bvec3) GroupNonUniformShuffleXor 35 361 362 363:170(f64vec3) GroupNonUniformShuffleXor 35 361 362
364: 87(ivec3) Select 363 202 197 364: 151(ptr) AccessChain 27(data) 358 68 30
365: 77(ptr) AccessChain 27(data) 357 39 365:22(float64_t) CompositeExtract 363 0
366: 20(ivec4) Load 365 Store 364 365
367: 20(ivec4) VectorShuffle 366 364 4 5 6 3 366: 151(ptr) AccessChain 27(data) 358 68 49
Store 365 367 367:22(float64_t) CompositeExtract 363 1
368: 6(int) Load 8(invocation) Store 366 367
369: 77(ptr) AccessChain 27(data) 39 39 368: 151(ptr) AccessChain 27(data) 358 68 64
370: 20(ivec4) Load 369 369:22(float64_t) CompositeExtract 363 2
371: 211(bvec4) SLessThan 370 210 Store 368 369
372: 6(int) Load 8(invocation) 370: 6(int) Load 8(invocation)
373: 211(bvec4) GroupNonUniformShuffleXor 35 371 372 371: 159(ptr) AccessChain 27(data) 68 68
374: 20(ivec4) Select 373 215 210 372: 23(f64vec4) Load 371
375: 77(ptr) AccessChain 27(data) 368 39 373: 6(int) Load 8(invocation)
374: 23(f64vec4) GroupNonUniformShuffleXor 35 372 373
375: 159(ptr) AccessChain 27(data) 370 68
Store 375 374 Store 375 374
376: 6(int) Load 8(invocation)
377: 75(ptr) AccessChain 27(data) 29 39 30
378: 19(int) Load 377
379: 191(bool) SLessThan 378 29
380: 6(int) Load 8(invocation)
381: 191(bool) GroupNonUniformShuffleXor 35 379 380
382: 19(int) Select 381 39 29
383: 75(ptr) AccessChain 27(data) 376 39 30
Store 383 382
384: 6(int) Load 8(invocation)
385: 83(ptr) AccessChain 27(data) 39 39
386: 20(ivec4) Load 385
387: 82(ivec2) VectorShuffle 386 386 0 1
388: 202(bvec2) SLessThan 387 201
389: 6(int) Load 8(invocation)
390: 202(bvec2) GroupNonUniformShuffleXor 35 388 389
391: 82(ivec2) Select 390 206 201
392: 75(ptr) AccessChain 27(data) 384 39 30
393: 19(int) CompositeExtract 391 0
Store 392 393
394: 75(ptr) AccessChain 27(data) 384 39 49
395: 19(int) CompositeExtract 391 1
Store 394 395
396: 6(int) Load 8(invocation)
397: 83(ptr) AccessChain 27(data) 39 39
398: 20(ivec4) Load 397
399: 94(ivec3) VectorShuffle 398 398 0 1 2
400: 217(bvec3) SLessThan 399 216
401: 6(int) Load 8(invocation)
402: 217(bvec3) GroupNonUniformShuffleXor 35 400 401
403: 94(ivec3) Select 402 221 216
404: 75(ptr) AccessChain 27(data) 396 39 30
405: 19(int) CompositeExtract 403 0
Store 404 405
406: 75(ptr) AccessChain 27(data) 396 39 49
407: 19(int) CompositeExtract 403 1
Store 406 407
408: 75(ptr) AccessChain 27(data) 396 39 64
409: 19(int) CompositeExtract 403 2
Store 408 409
410: 6(int) Load 8(invocation)
411: 83(ptr) AccessChain 27(data) 39 39
412: 20(ivec4) Load 411
413: 233(bvec4) SLessThan 412 232
414: 6(int) Load 8(invocation)
415: 233(bvec4) GroupNonUniformShuffleXor 35 413 414
416: 20(ivec4) Select 415 237 232
417: 83(ptr) AccessChain 27(data) 410 39
Store 417 416
Return Return
FunctionEnd FunctionEnd

View File

@ -1,7 +1,7 @@
spv.subgroupShuffleRelative.comp spv.subgroupShuffleRelative.comp
// Module Version 10300 // Module Version 10300
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 379 // Id's are bound by 420
Capability Shader Capability Shader
Capability Float64 Capability Float64
@ -39,7 +39,7 @@ spv.subgroupShuffleRelative.comp
Decorate 24(Buffers) Block Decorate 24(Buffers) Block
Decorate 27(data) DescriptorSet 0 Decorate 27(data) DescriptorSet 0
Decorate 27(data) Binding 0 Decorate 27(data) Binding 0
Decorate 378 BuiltIn WorkgroupSize Decorate 419 BuiltIn WorkgroupSize
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0
@ -66,34 +66,35 @@ spv.subgroupShuffleRelative.comp
39: 19(int) Constant 1 39: 19(int) Constant 1
40: TypeVector 17(float) 2 40: TypeVector 17(float) 2
41: TypePointer StorageBuffer 18(fvec4) 41: TypePointer StorageBuffer 18(fvec4)
51: 19(int) Constant 2 49: 6(int) Constant 1
52: TypeVector 17(float) 3 53: 19(int) Constant 2
62: 19(int) Constant 3 54: TypeVector 17(float) 3
69: TypePointer StorageBuffer 19(int) 64: 6(int) Constant 2
76: TypeVector 19(int) 2 68: 19(int) Constant 3
77: TypePointer StorageBuffer 20(ivec4) 75: TypePointer StorageBuffer 19(int)
87: TypeVector 19(int) 3 82: TypeVector 19(int) 2
103: TypePointer StorageBuffer 6(int) 83: TypePointer StorageBuffer 20(ivec4)
110: TypeVector 6(int) 2 94: TypeVector 19(int) 3
111: TypePointer StorageBuffer 21(ivec4) 113: TypePointer StorageBuffer 6(int)
121: TypeVector 6(int) 3 120: TypeVector 6(int) 2
137: TypePointer StorageBuffer 22(float64_t) 121: TypePointer StorageBuffer 21(ivec4)
144: TypeVector 22(float64_t) 2 132: TypeVector 6(int) 3
145: TypePointer StorageBuffer 23(f64vec4) 151: TypePointer StorageBuffer 22(float64_t)
155: TypeVector 22(float64_t) 3 158: TypeVector 22(float64_t) 2
173: TypeBool 159: TypePointer StorageBuffer 23(f64vec4)
183: 76(ivec2) ConstantComposite 29 29 170: TypeVector 22(float64_t) 3
184: TypeVector 173(bool) 2 191: TypeBool
188: 76(ivec2) ConstantComposite 39 39 201: 82(ivec2) ConstantComposite 29 29
197: 87(ivec3) ConstantComposite 29 29 29 202: TypeVector 191(bool) 2
198: TypeVector 173(bool) 3 206: 82(ivec2) ConstantComposite 39 39
202: 87(ivec3) ConstantComposite 39 39 39 216: 94(ivec3) ConstantComposite 29 29 29
210: 20(ivec4) ConstantComposite 29 29 29 29 217: TypeVector 191(bool) 3
211: TypeVector 173(bool) 4 221: 94(ivec3) ConstantComposite 39 39 39
215: 20(ivec4) ConstantComposite 39 39 39 39 232: 20(ivec4) ConstantComposite 29 29 29 29
376: 6(int) Constant 8 233: TypeVector 191(bool) 4
377: 6(int) Constant 1 237: 20(ivec4) ConstantComposite 39 39 39 39
378: 121(ivec3) ConstantComposite 376 376 377 418: 6(int) Constant 8
419: 132(ivec3) ConstantComposite 418 418 49
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
8(invocation): 7(ptr) Variable Function 8(invocation): 7(ptr) Variable Function
@ -115,348 +116,418 @@ spv.subgroupShuffleRelative.comp
44: 40(fvec2) VectorShuffle 43 43 0 1 44: 40(fvec2) VectorShuffle 43 43 0 1
45: 6(int) Load 8(invocation) 45: 6(int) Load 8(invocation)
46: 40(fvec2) GroupNonUniformShuffleUp 35 44 45 46: 40(fvec2) GroupNonUniformShuffleUp 35 44 45
47: 41(ptr) AccessChain 27(data) 38 29 47: 31(ptr) AccessChain 27(data) 38 29 30
48: 18(fvec4) Load 47 48: 17(float) CompositeExtract 46 0
49: 18(fvec4) VectorShuffle 48 46 4 5 2 3 Store 47 48
Store 47 49 50: 31(ptr) AccessChain 27(data) 38 29 49
50: 6(int) Load 8(invocation) 51: 17(float) CompositeExtract 46 1
53: 41(ptr) AccessChain 27(data) 51 29 Store 50 51
54: 18(fvec4) Load 53 52: 6(int) Load 8(invocation)
55: 52(fvec3) VectorShuffle 54 54 0 1 2 55: 41(ptr) AccessChain 27(data) 53 29
56: 6(int) Load 8(invocation) 56: 18(fvec4) Load 55
57: 52(fvec3) GroupNonUniformShuffleUp 35 55 56 57: 54(fvec3) VectorShuffle 56 56 0 1 2
58: 41(ptr) AccessChain 27(data) 50 29 58: 6(int) Load 8(invocation)
59: 18(fvec4) Load 58 59: 54(fvec3) GroupNonUniformShuffleUp 35 57 58
60: 18(fvec4) VectorShuffle 59 57 4 5 6 3 60: 31(ptr) AccessChain 27(data) 52 29 30
Store 58 60 61: 17(float) CompositeExtract 59 0
61: 6(int) Load 8(invocation) Store 60 61
63: 41(ptr) AccessChain 27(data) 62 29 62: 31(ptr) AccessChain 27(data) 52 29 49
64: 18(fvec4) Load 63 63: 17(float) CompositeExtract 59 1
65: 6(int) Load 8(invocation) Store 62 63
66: 18(fvec4) GroupNonUniformShuffleUp 35 64 65 65: 31(ptr) AccessChain 27(data) 52 29 64
67: 41(ptr) AccessChain 27(data) 61 29 66: 17(float) CompositeExtract 59 2
Store 67 66 Store 65 66
68: 6(int) Load 8(invocation) 67: 6(int) Load 8(invocation)
70: 69(ptr) AccessChain 27(data) 29 39 30 69: 41(ptr) AccessChain 27(data) 68 29
71: 19(int) Load 70 70: 18(fvec4) Load 69
72: 6(int) Load 8(invocation) 71: 6(int) Load 8(invocation)
73: 19(int) GroupNonUniformShuffleUp 35 71 72 72: 18(fvec4) GroupNonUniformShuffleUp 35 70 71
74: 69(ptr) AccessChain 27(data) 68 39 30 73: 41(ptr) AccessChain 27(data) 67 29
Store 74 73 Store 73 72
75: 6(int) Load 8(invocation) 74: 6(int) Load 8(invocation)
78: 77(ptr) AccessChain 27(data) 39 39 76: 75(ptr) AccessChain 27(data) 29 39 30
79: 20(ivec4) Load 78 77: 19(int) Load 76
80: 76(ivec2) VectorShuffle 79 79 0 1 78: 6(int) Load 8(invocation)
79: 19(int) GroupNonUniformShuffleUp 35 77 78
80: 75(ptr) AccessChain 27(data) 74 39 30
Store 80 79
81: 6(int) Load 8(invocation) 81: 6(int) Load 8(invocation)
82: 76(ivec2) GroupNonUniformShuffleUp 35 80 81 84: 83(ptr) AccessChain 27(data) 39 39
83: 77(ptr) AccessChain 27(data) 75 39 85: 20(ivec4) Load 84
84: 20(ivec4) Load 83 86: 82(ivec2) VectorShuffle 85 85 0 1
85: 20(ivec4) VectorShuffle 84 82 4 5 2 3 87: 6(int) Load 8(invocation)
Store 83 85 88: 82(ivec2) GroupNonUniformShuffleUp 35 86 87
86: 6(int) Load 8(invocation) 89: 75(ptr) AccessChain 27(data) 81 39 30
88: 77(ptr) AccessChain 27(data) 51 39 90: 19(int) CompositeExtract 88 0
89: 20(ivec4) Load 88 Store 89 90
90: 87(ivec3) VectorShuffle 89 89 0 1 2 91: 75(ptr) AccessChain 27(data) 81 39 49
91: 6(int) Load 8(invocation) 92: 19(int) CompositeExtract 88 1
92: 87(ivec3) GroupNonUniformShuffleUp 35 90 91 Store 91 92
93: 77(ptr) AccessChain 27(data) 86 39 93: 6(int) Load 8(invocation)
94: 20(ivec4) Load 93 95: 83(ptr) AccessChain 27(data) 53 39
95: 20(ivec4) VectorShuffle 94 92 4 5 6 3 96: 20(ivec4) Load 95
Store 93 95 97: 94(ivec3) VectorShuffle 96 96 0 1 2
96: 6(int) Load 8(invocation) 98: 6(int) Load 8(invocation)
97: 77(ptr) AccessChain 27(data) 62 39 99: 94(ivec3) GroupNonUniformShuffleUp 35 97 98
98: 20(ivec4) Load 97 100: 75(ptr) AccessChain 27(data) 93 39 30
99: 6(int) Load 8(invocation) 101: 19(int) CompositeExtract 99 0
100: 20(ivec4) GroupNonUniformShuffleUp 35 98 99 Store 100 101
101: 77(ptr) AccessChain 27(data) 96 39 102: 75(ptr) AccessChain 27(data) 93 39 49
Store 101 100 103: 19(int) CompositeExtract 99 1
102: 6(int) Load 8(invocation) Store 102 103
104: 103(ptr) AccessChain 27(data) 29 51 30 104: 75(ptr) AccessChain 27(data) 93 39 64
105: 6(int) Load 104 105: 19(int) CompositeExtract 99 2
Store 104 105
106: 6(int) Load 8(invocation) 106: 6(int) Load 8(invocation)
107: 6(int) GroupNonUniformShuffleUp 35 105 106 107: 83(ptr) AccessChain 27(data) 68 39
108: 103(ptr) AccessChain 27(data) 102 51 30 108: 20(ivec4) Load 107
Store 108 107
109: 6(int) Load 8(invocation) 109: 6(int) Load 8(invocation)
112: 111(ptr) AccessChain 27(data) 39 51 110: 20(ivec4) GroupNonUniformShuffleUp 35 108 109
113: 21(ivec4) Load 112 111: 83(ptr) AccessChain 27(data) 106 39
114: 110(ivec2) VectorShuffle 113 113 0 1 Store 111 110
115: 6(int) Load 8(invocation) 112: 6(int) Load 8(invocation)
116: 110(ivec2) GroupNonUniformShuffleUp 35 114 115 114: 113(ptr) AccessChain 27(data) 29 53 30
117: 111(ptr) AccessChain 27(data) 109 51 115: 6(int) Load 114
118: 21(ivec4) Load 117 116: 6(int) Load 8(invocation)
119: 21(ivec4) VectorShuffle 118 116 4 5 2 3 117: 6(int) GroupNonUniformShuffleUp 35 115 116
Store 117 119 118: 113(ptr) AccessChain 27(data) 112 53 30
120: 6(int) Load 8(invocation) Store 118 117
122: 111(ptr) AccessChain 27(data) 51 51 119: 6(int) Load 8(invocation)
122: 121(ptr) AccessChain 27(data) 39 53
123: 21(ivec4) Load 122 123: 21(ivec4) Load 122
124: 121(ivec3) VectorShuffle 123 123 0 1 2 124: 120(ivec2) VectorShuffle 123 123 0 1
125: 6(int) Load 8(invocation) 125: 6(int) Load 8(invocation)
126: 121(ivec3) GroupNonUniformShuffleUp 35 124 125 126: 120(ivec2) GroupNonUniformShuffleUp 35 124 125
127: 111(ptr) AccessChain 27(data) 120 51 127: 113(ptr) AccessChain 27(data) 119 53 30
128: 21(ivec4) Load 127 128: 6(int) CompositeExtract 126 0
129: 21(ivec4) VectorShuffle 128 126 4 5 6 3 Store 127 128
Store 127 129 129: 113(ptr) AccessChain 27(data) 119 53 49
130: 6(int) Load 8(invocation) 130: 6(int) CompositeExtract 126 1
131: 111(ptr) AccessChain 27(data) 62 51 Store 129 130
132: 21(ivec4) Load 131 131: 6(int) Load 8(invocation)
133: 6(int) Load 8(invocation) 133: 121(ptr) AccessChain 27(data) 53 53
134: 21(ivec4) GroupNonUniformShuffleUp 35 132 133 134: 21(ivec4) Load 133
135: 111(ptr) AccessChain 27(data) 130 51 135: 132(ivec3) VectorShuffle 134 134 0 1 2
Store 135 134
136: 6(int) Load 8(invocation) 136: 6(int) Load 8(invocation)
138: 137(ptr) AccessChain 27(data) 29 62 30 137: 132(ivec3) GroupNonUniformShuffleUp 35 135 136
139:22(float64_t) Load 138 138: 113(ptr) AccessChain 27(data) 131 53 30
140: 6(int) Load 8(invocation) 139: 6(int) CompositeExtract 137 0
141:22(float64_t) GroupNonUniformShuffleUp 35 139 140 Store 138 139
142: 137(ptr) AccessChain 27(data) 136 62 30 140: 113(ptr) AccessChain 27(data) 131 53 49
Store 142 141 141: 6(int) CompositeExtract 137 1
143: 6(int) Load 8(invocation) Store 140 141
146: 145(ptr) AccessChain 27(data) 39 62 142: 113(ptr) AccessChain 27(data) 131 53 64
147: 23(f64vec4) Load 146 143: 6(int) CompositeExtract 137 2
148:144(f64vec2) VectorShuffle 147 147 0 1 Store 142 143
149: 6(int) Load 8(invocation) 144: 6(int) Load 8(invocation)
150:144(f64vec2) GroupNonUniformShuffleUp 35 148 149 145: 121(ptr) AccessChain 27(data) 68 53
151: 145(ptr) AccessChain 27(data) 143 62 146: 21(ivec4) Load 145
152: 23(f64vec4) Load 151 147: 6(int) Load 8(invocation)
153: 23(f64vec4) VectorShuffle 152 150 4 5 2 3 148: 21(ivec4) GroupNonUniformShuffleUp 35 146 147
Store 151 153 149: 121(ptr) AccessChain 27(data) 144 53
Store 149 148
150: 6(int) Load 8(invocation)
152: 151(ptr) AccessChain 27(data) 29 68 30
153:22(float64_t) Load 152
154: 6(int) Load 8(invocation) 154: 6(int) Load 8(invocation)
156: 145(ptr) AccessChain 27(data) 51 62 155:22(float64_t) GroupNonUniformShuffleUp 35 153 154
157: 23(f64vec4) Load 156 156: 151(ptr) AccessChain 27(data) 150 68 30
158:155(f64vec3) VectorShuffle 157 157 0 1 2 Store 156 155
159: 6(int) Load 8(invocation) 157: 6(int) Load 8(invocation)
160:155(f64vec3) GroupNonUniformShuffleUp 35 158 159 160: 159(ptr) AccessChain 27(data) 39 68
161: 145(ptr) AccessChain 27(data) 154 62 161: 23(f64vec4) Load 160
162: 23(f64vec4) Load 161 162:158(f64vec2) VectorShuffle 161 161 0 1
163: 23(f64vec4) VectorShuffle 162 160 4 5 6 3 163: 6(int) Load 8(invocation)
Store 161 163 164:158(f64vec2) GroupNonUniformShuffleUp 35 162 163
164: 6(int) Load 8(invocation) 165: 151(ptr) AccessChain 27(data) 157 68 30
165: 145(ptr) AccessChain 27(data) 62 62 166:22(float64_t) CompositeExtract 164 0
166: 23(f64vec4) Load 165 Store 165 166
167: 6(int) Load 8(invocation) 167: 151(ptr) AccessChain 27(data) 157 68 49
168: 23(f64vec4) GroupNonUniformShuffleUp 35 166 167 168:22(float64_t) CompositeExtract 164 1
169: 145(ptr) AccessChain 27(data) 164 62 Store 167 168
Store 169 168 169: 6(int) Load 8(invocation)
170: 6(int) Load 8(invocation) 171: 159(ptr) AccessChain 27(data) 53 68
171: 69(ptr) AccessChain 27(data) 29 39 30 172: 23(f64vec4) Load 171
172: 19(int) Load 171 173:170(f64vec3) VectorShuffle 172 172 0 1 2
174: 173(bool) SLessThan 172 29 174: 6(int) Load 8(invocation)
175: 6(int) Load 8(invocation) 175:170(f64vec3) GroupNonUniformShuffleUp 35 173 174
176: 173(bool) GroupNonUniformShuffleUp 35 174 175 176: 151(ptr) AccessChain 27(data) 169 68 30
177: 19(int) Select 176 39 29 177:22(float64_t) CompositeExtract 175 0
178: 69(ptr) AccessChain 27(data) 170 39 30 Store 176 177
Store 178 177 178: 151(ptr) AccessChain 27(data) 169 68 49
179: 6(int) Load 8(invocation) 179:22(float64_t) CompositeExtract 175 1
180: 77(ptr) AccessChain 27(data) 39 39 Store 178 179
181: 20(ivec4) Load 180 180: 151(ptr) AccessChain 27(data) 169 68 64
182: 76(ivec2) VectorShuffle 181 181 0 1 181:22(float64_t) CompositeExtract 175 2
185: 184(bvec2) SLessThan 182 183 Store 180 181
186: 6(int) Load 8(invocation) 182: 6(int) Load 8(invocation)
187: 184(bvec2) GroupNonUniformShuffleUp 35 185 186 183: 159(ptr) AccessChain 27(data) 68 68
189: 76(ivec2) Select 187 188 183 184: 23(f64vec4) Load 183
190: 77(ptr) AccessChain 27(data) 179 39 185: 6(int) Load 8(invocation)
191: 20(ivec4) Load 190 186: 23(f64vec4) GroupNonUniformShuffleUp 35 184 185
192: 20(ivec4) VectorShuffle 191 189 4 5 2 3 187: 159(ptr) AccessChain 27(data) 182 68
Store 190 192 Store 187 186
188: 6(int) Load 8(invocation)
189: 75(ptr) AccessChain 27(data) 29 39 30
190: 19(int) Load 189
192: 191(bool) SLessThan 190 29
193: 6(int) Load 8(invocation) 193: 6(int) Load 8(invocation)
194: 77(ptr) AccessChain 27(data) 39 39 194: 191(bool) GroupNonUniformShuffleUp 35 192 193
195: 20(ivec4) Load 194 195: 19(int) Select 194 39 29
196: 87(ivec3) VectorShuffle 195 195 0 1 2 196: 75(ptr) AccessChain 27(data) 188 39 30
199: 198(bvec3) SLessThan 196 197 Store 196 195
200: 6(int) Load 8(invocation) 197: 6(int) Load 8(invocation)
201: 198(bvec3) GroupNonUniformShuffleUp 35 199 200 198: 83(ptr) AccessChain 27(data) 39 39
203: 87(ivec3) Select 201 202 197 199: 20(ivec4) Load 198
204: 77(ptr) AccessChain 27(data) 193 39 200: 82(ivec2) VectorShuffle 199 199 0 1
205: 20(ivec4) Load 204 203: 202(bvec2) SLessThan 200 201
206: 20(ivec4) VectorShuffle 205 203 4 5 6 3 204: 6(int) Load 8(invocation)
Store 204 206 205: 202(bvec2) GroupNonUniformShuffleUp 35 203 204
207: 6(int) Load 8(invocation) 207: 82(ivec2) Select 205 206 201
208: 77(ptr) AccessChain 27(data) 39 39 208: 75(ptr) AccessChain 27(data) 197 39 30
209: 20(ivec4) Load 208 209: 19(int) CompositeExtract 207 0
212: 211(bvec4) SLessThan 209 210 Store 208 209
213: 6(int) Load 8(invocation) 210: 75(ptr) AccessChain 27(data) 197 39 49
214: 211(bvec4) GroupNonUniformShuffleUp 35 212 213 211: 19(int) CompositeExtract 207 1
216: 20(ivec4) Select 214 215 210 Store 210 211
217: 77(ptr) AccessChain 27(data) 207 39 212: 6(int) Load 8(invocation)
Store 217 216 213: 83(ptr) AccessChain 27(data) 39 39
218: 6(int) Load 8(invocation) 214: 20(ivec4) Load 213
219: 31(ptr) AccessChain 27(data) 29 29 30 215: 94(ivec3) VectorShuffle 214 214 0 1 2
220: 17(float) Load 219 218: 217(bvec3) SLessThan 215 216
221: 6(int) Load 8(invocation) 219: 6(int) Load 8(invocation)
222: 17(float) GroupNonUniformShuffleDown 35 220 221 220: 217(bvec3) GroupNonUniformShuffleUp 35 218 219
223: 31(ptr) AccessChain 27(data) 218 29 30 222: 94(ivec3) Select 220 221 216
Store 223 222 223: 75(ptr) AccessChain 27(data) 212 39 30
224: 6(int) Load 8(invocation) 224: 19(int) CompositeExtract 222 0
225: 41(ptr) AccessChain 27(data) 39 29 Store 223 224
226: 18(fvec4) Load 225 225: 75(ptr) AccessChain 27(data) 212 39 49
227: 40(fvec2) VectorShuffle 226 226 0 1 226: 19(int) CompositeExtract 222 1
228: 6(int) Load 8(invocation) Store 225 226
229: 40(fvec2) GroupNonUniformShuffleDown 35 227 228 227: 75(ptr) AccessChain 27(data) 212 39 64
230: 41(ptr) AccessChain 27(data) 224 29 228: 19(int) CompositeExtract 222 2
231: 18(fvec4) Load 230 Store 227 228
232: 18(fvec4) VectorShuffle 231 229 4 5 2 3 229: 6(int) Load 8(invocation)
Store 230 232 230: 83(ptr) AccessChain 27(data) 39 39
233: 6(int) Load 8(invocation) 231: 20(ivec4) Load 230
234: 41(ptr) AccessChain 27(data) 51 29 234: 233(bvec4) SLessThan 231 232
235: 18(fvec4) Load 234 235: 6(int) Load 8(invocation)
236: 52(fvec3) VectorShuffle 235 235 0 1 2 236: 233(bvec4) GroupNonUniformShuffleUp 35 234 235
237: 6(int) Load 8(invocation) 238: 20(ivec4) Select 236 237 232
238: 52(fvec3) GroupNonUniformShuffleDown 35 236 237 239: 83(ptr) AccessChain 27(data) 229 39
239: 41(ptr) AccessChain 27(data) 233 29 Store 239 238
240: 18(fvec4) Load 239 240: 6(int) Load 8(invocation)
241: 18(fvec4) VectorShuffle 240 238 4 5 6 3 241: 31(ptr) AccessChain 27(data) 29 29 30
Store 239 241 242: 17(float) Load 241
242: 6(int) Load 8(invocation) 243: 6(int) Load 8(invocation)
243: 41(ptr) AccessChain 27(data) 62 29 244: 17(float) GroupNonUniformShuffleDown 35 242 243
244: 18(fvec4) Load 243 245: 31(ptr) AccessChain 27(data) 240 29 30
245: 6(int) Load 8(invocation) Store 245 244
246: 18(fvec4) GroupNonUniformShuffleDown 35 244 245 246: 6(int) Load 8(invocation)
247: 41(ptr) AccessChain 27(data) 242 29 247: 41(ptr) AccessChain 27(data) 39 29
Store 247 246 248: 18(fvec4) Load 247
248: 6(int) Load 8(invocation) 249: 40(fvec2) VectorShuffle 248 248 0 1
249: 69(ptr) AccessChain 27(data) 29 39 30 250: 6(int) Load 8(invocation)
250: 19(int) Load 249 251: 40(fvec2) GroupNonUniformShuffleDown 35 249 250
251: 6(int) Load 8(invocation) 252: 31(ptr) AccessChain 27(data) 246 29 30
252: 19(int) GroupNonUniformShuffleDown 35 250 251 253: 17(float) CompositeExtract 251 0
253: 69(ptr) AccessChain 27(data) 248 39 30 Store 252 253
Store 253 252 254: 31(ptr) AccessChain 27(data) 246 29 49
254: 6(int) Load 8(invocation) 255: 17(float) CompositeExtract 251 1
255: 77(ptr) AccessChain 27(data) 39 39 Store 254 255
256: 20(ivec4) Load 255 256: 6(int) Load 8(invocation)
257: 76(ivec2) VectorShuffle 256 256 0 1 257: 41(ptr) AccessChain 27(data) 53 29
258: 6(int) Load 8(invocation) 258: 18(fvec4) Load 257
259: 76(ivec2) GroupNonUniformShuffleDown 35 257 258 259: 54(fvec3) VectorShuffle 258 258 0 1 2
260: 77(ptr) AccessChain 27(data) 254 39 260: 6(int) Load 8(invocation)
261: 20(ivec4) Load 260 261: 54(fvec3) GroupNonUniformShuffleDown 35 259 260
262: 20(ivec4) VectorShuffle 261 259 4 5 2 3 262: 31(ptr) AccessChain 27(data) 256 29 30
Store 260 262 263: 17(float) CompositeExtract 261 0
263: 6(int) Load 8(invocation) Store 262 263
264: 77(ptr) AccessChain 27(data) 51 39 264: 31(ptr) AccessChain 27(data) 256 29 49
265: 20(ivec4) Load 264 265: 17(float) CompositeExtract 261 1
266: 87(ivec3) VectorShuffle 265 265 0 1 2 Store 264 265
267: 6(int) Load 8(invocation) 266: 31(ptr) AccessChain 27(data) 256 29 64
268: 87(ivec3) GroupNonUniformShuffleDown 35 266 267 267: 17(float) CompositeExtract 261 2
269: 77(ptr) AccessChain 27(data) 263 39 Store 266 267
270: 20(ivec4) Load 269 268: 6(int) Load 8(invocation)
271: 20(ivec4) VectorShuffle 270 268 4 5 6 3 269: 41(ptr) AccessChain 27(data) 68 29
Store 269 271 270: 18(fvec4) Load 269
272: 6(int) Load 8(invocation) 271: 6(int) Load 8(invocation)
273: 77(ptr) AccessChain 27(data) 62 39 272: 18(fvec4) GroupNonUniformShuffleDown 35 270 271
274: 20(ivec4) Load 273 273: 41(ptr) AccessChain 27(data) 268 29
275: 6(int) Load 8(invocation) Store 273 272
276: 20(ivec4) GroupNonUniformShuffleDown 35 274 275 274: 6(int) Load 8(invocation)
277: 77(ptr) AccessChain 27(data) 272 39 275: 75(ptr) AccessChain 27(data) 29 39 30
Store 277 276 276: 19(int) Load 275
278: 6(int) Load 8(invocation) 277: 6(int) Load 8(invocation)
279: 103(ptr) AccessChain 27(data) 29 51 30 278: 19(int) GroupNonUniformShuffleDown 35 276 277
280: 6(int) Load 279 279: 75(ptr) AccessChain 27(data) 274 39 30
281: 6(int) Load 8(invocation) Store 279 278
282: 6(int) GroupNonUniformShuffleDown 35 280 281 280: 6(int) Load 8(invocation)
283: 103(ptr) AccessChain 27(data) 278 51 30 281: 83(ptr) AccessChain 27(data) 39 39
Store 283 282 282: 20(ivec4) Load 281
283: 82(ivec2) VectorShuffle 282 282 0 1
284: 6(int) Load 8(invocation) 284: 6(int) Load 8(invocation)
285: 111(ptr) AccessChain 27(data) 39 51 285: 82(ivec2) GroupNonUniformShuffleDown 35 283 284
286: 21(ivec4) Load 285 286: 75(ptr) AccessChain 27(data) 280 39 30
287: 110(ivec2) VectorShuffle 286 286 0 1 287: 19(int) CompositeExtract 285 0
288: 6(int) Load 8(invocation) Store 286 287
289: 110(ivec2) GroupNonUniformShuffleDown 35 287 288 288: 75(ptr) AccessChain 27(data) 280 39 49
290: 111(ptr) AccessChain 27(data) 284 51 289: 19(int) CompositeExtract 285 1
291: 21(ivec4) Load 290 Store 288 289
292: 21(ivec4) VectorShuffle 291 289 4 5 2 3 290: 6(int) Load 8(invocation)
Store 290 292 291: 83(ptr) AccessChain 27(data) 53 39
293: 6(int) Load 8(invocation) 292: 20(ivec4) Load 291
294: 111(ptr) AccessChain 27(data) 51 51 293: 94(ivec3) VectorShuffle 292 292 0 1 2
295: 21(ivec4) Load 294 294: 6(int) Load 8(invocation)
296: 121(ivec3) VectorShuffle 295 295 0 1 2 295: 94(ivec3) GroupNonUniformShuffleDown 35 293 294
297: 6(int) Load 8(invocation) 296: 75(ptr) AccessChain 27(data) 290 39 30
298: 121(ivec3) GroupNonUniformShuffleDown 35 296 297 297: 19(int) CompositeExtract 295 0
299: 111(ptr) AccessChain 27(data) 293 51 Store 296 297
300: 21(ivec4) Load 299 298: 75(ptr) AccessChain 27(data) 290 39 49
301: 21(ivec4) VectorShuffle 300 298 4 5 6 3 299: 19(int) CompositeExtract 295 1
Store 299 301 Store 298 299
300: 75(ptr) AccessChain 27(data) 290 39 64
301: 19(int) CompositeExtract 295 2
Store 300 301
302: 6(int) Load 8(invocation) 302: 6(int) Load 8(invocation)
303: 111(ptr) AccessChain 27(data) 62 51 303: 83(ptr) AccessChain 27(data) 68 39
304: 21(ivec4) Load 303 304: 20(ivec4) Load 303
305: 6(int) Load 8(invocation) 305: 6(int) Load 8(invocation)
306: 21(ivec4) GroupNonUniformShuffleDown 35 304 305 306: 20(ivec4) GroupNonUniformShuffleDown 35 304 305
307: 111(ptr) AccessChain 27(data) 302 51 307: 83(ptr) AccessChain 27(data) 302 39
Store 307 306 Store 307 306
308: 6(int) Load 8(invocation) 308: 6(int) Load 8(invocation)
309: 137(ptr) AccessChain 27(data) 29 62 30 309: 113(ptr) AccessChain 27(data) 29 53 30
310:22(float64_t) Load 309 310: 6(int) Load 309
311: 6(int) Load 8(invocation) 311: 6(int) Load 8(invocation)
312:22(float64_t) GroupNonUniformShuffleDown 35 310 311 312: 6(int) GroupNonUniformShuffleDown 35 310 311
313: 137(ptr) AccessChain 27(data) 308 62 30 313: 113(ptr) AccessChain 27(data) 308 53 30
Store 313 312 Store 313 312
314: 6(int) Load 8(invocation) 314: 6(int) Load 8(invocation)
315: 145(ptr) AccessChain 27(data) 39 62 315: 121(ptr) AccessChain 27(data) 39 53
316: 23(f64vec4) Load 315 316: 21(ivec4) Load 315
317:144(f64vec2) VectorShuffle 316 316 0 1 317: 120(ivec2) VectorShuffle 316 316 0 1
318: 6(int) Load 8(invocation) 318: 6(int) Load 8(invocation)
319:144(f64vec2) GroupNonUniformShuffleDown 35 317 318 319: 120(ivec2) GroupNonUniformShuffleDown 35 317 318
320: 145(ptr) AccessChain 27(data) 314 62 320: 113(ptr) AccessChain 27(data) 314 53 30
321: 23(f64vec4) Load 320 321: 6(int) CompositeExtract 319 0
322: 23(f64vec4) VectorShuffle 321 319 4 5 2 3 Store 320 321
Store 320 322 322: 113(ptr) AccessChain 27(data) 314 53 49
323: 6(int) Load 8(invocation) 323: 6(int) CompositeExtract 319 1
324: 145(ptr) AccessChain 27(data) 51 62 Store 322 323
325: 23(f64vec4) Load 324 324: 6(int) Load 8(invocation)
326:155(f64vec3) VectorShuffle 325 325 0 1 2 325: 121(ptr) AccessChain 27(data) 53 53
327: 6(int) Load 8(invocation) 326: 21(ivec4) Load 325
328:155(f64vec3) GroupNonUniformShuffleDown 35 326 327 327: 132(ivec3) VectorShuffle 326 326 0 1 2
329: 145(ptr) AccessChain 27(data) 323 62 328: 6(int) Load 8(invocation)
330: 23(f64vec4) Load 329 329: 132(ivec3) GroupNonUniformShuffleDown 35 327 328
331: 23(f64vec4) VectorShuffle 330 328 4 5 6 3 330: 113(ptr) AccessChain 27(data) 324 53 30
Store 329 331 331: 6(int) CompositeExtract 329 0
332: 6(int) Load 8(invocation) Store 330 331
333: 145(ptr) AccessChain 27(data) 62 62 332: 113(ptr) AccessChain 27(data) 324 53 49
334: 23(f64vec4) Load 333 333: 6(int) CompositeExtract 329 1
335: 6(int) Load 8(invocation) Store 332 333
336: 23(f64vec4) GroupNonUniformShuffleDown 35 334 335 334: 113(ptr) AccessChain 27(data) 324 53 64
337: 145(ptr) AccessChain 27(data) 332 62 335: 6(int) CompositeExtract 329 2
Store 337 336 Store 334 335
338: 6(int) Load 8(invocation) 336: 6(int) Load 8(invocation)
339: 69(ptr) AccessChain 27(data) 29 39 30 337: 121(ptr) AccessChain 27(data) 68 53
340: 19(int) Load 339 338: 21(ivec4) Load 337
341: 173(bool) SLessThan 340 29 339: 6(int) Load 8(invocation)
340: 21(ivec4) GroupNonUniformShuffleDown 35 338 339
341: 121(ptr) AccessChain 27(data) 336 53
Store 341 340
342: 6(int) Load 8(invocation) 342: 6(int) Load 8(invocation)
343: 173(bool) GroupNonUniformShuffleDown 35 341 342 343: 151(ptr) AccessChain 27(data) 29 68 30
344: 19(int) Select 343 39 29 344:22(float64_t) Load 343
345: 69(ptr) AccessChain 27(data) 338 39 30 345: 6(int) Load 8(invocation)
Store 345 344 346:22(float64_t) GroupNonUniformShuffleDown 35 344 345
346: 6(int) Load 8(invocation) 347: 151(ptr) AccessChain 27(data) 342 68 30
347: 77(ptr) AccessChain 27(data) 39 39 Store 347 346
348: 20(ivec4) Load 347 348: 6(int) Load 8(invocation)
349: 76(ivec2) VectorShuffle 348 348 0 1 349: 159(ptr) AccessChain 27(data) 39 68
350: 184(bvec2) SLessThan 349 183 350: 23(f64vec4) Load 349
351: 6(int) Load 8(invocation) 351:158(f64vec2) VectorShuffle 350 350 0 1
352: 184(bvec2) GroupNonUniformShuffleDown 35 350 351 352: 6(int) Load 8(invocation)
353: 76(ivec2) Select 352 188 183 353:158(f64vec2) GroupNonUniformShuffleDown 35 351 352
354: 77(ptr) AccessChain 27(data) 346 39 354: 151(ptr) AccessChain 27(data) 348 68 30
355: 20(ivec4) Load 354 355:22(float64_t) CompositeExtract 353 0
356: 20(ivec4) VectorShuffle 355 353 4 5 2 3 Store 354 355
Store 354 356 356: 151(ptr) AccessChain 27(data) 348 68 49
357: 6(int) Load 8(invocation) 357:22(float64_t) CompositeExtract 353 1
358: 77(ptr) AccessChain 27(data) 39 39 Store 356 357
359: 20(ivec4) Load 358 358: 6(int) Load 8(invocation)
360: 87(ivec3) VectorShuffle 359 359 0 1 2 359: 159(ptr) AccessChain 27(data) 53 68
361: 198(bvec3) SLessThan 360 197 360: 23(f64vec4) Load 359
361:170(f64vec3) VectorShuffle 360 360 0 1 2
362: 6(int) Load 8(invocation) 362: 6(int) Load 8(invocation)
363: 198(bvec3) GroupNonUniformShuffleDown 35 361 362 363:170(f64vec3) GroupNonUniformShuffleDown 35 361 362
364: 87(ivec3) Select 363 202 197 364: 151(ptr) AccessChain 27(data) 358 68 30
365: 77(ptr) AccessChain 27(data) 357 39 365:22(float64_t) CompositeExtract 363 0
366: 20(ivec4) Load 365 Store 364 365
367: 20(ivec4) VectorShuffle 366 364 4 5 6 3 366: 151(ptr) AccessChain 27(data) 358 68 49
Store 365 367 367:22(float64_t) CompositeExtract 363 1
368: 6(int) Load 8(invocation) Store 366 367
369: 77(ptr) AccessChain 27(data) 39 39 368: 151(ptr) AccessChain 27(data) 358 68 64
370: 20(ivec4) Load 369 369:22(float64_t) CompositeExtract 363 2
371: 211(bvec4) SLessThan 370 210 Store 368 369
372: 6(int) Load 8(invocation) 370: 6(int) Load 8(invocation)
373: 211(bvec4) GroupNonUniformShuffleDown 35 371 372 371: 159(ptr) AccessChain 27(data) 68 68
374: 20(ivec4) Select 373 215 210 372: 23(f64vec4) Load 371
375: 77(ptr) AccessChain 27(data) 368 39 373: 6(int) Load 8(invocation)
374: 23(f64vec4) GroupNonUniformShuffleDown 35 372 373
375: 159(ptr) AccessChain 27(data) 370 68
Store 375 374 Store 375 374
376: 6(int) Load 8(invocation)
377: 75(ptr) AccessChain 27(data) 29 39 30
378: 19(int) Load 377
379: 191(bool) SLessThan 378 29
380: 6(int) Load 8(invocation)
381: 191(bool) GroupNonUniformShuffleDown 35 379 380
382: 19(int) Select 381 39 29
383: 75(ptr) AccessChain 27(data) 376 39 30
Store 383 382
384: 6(int) Load 8(invocation)
385: 83(ptr) AccessChain 27(data) 39 39
386: 20(ivec4) Load 385
387: 82(ivec2) VectorShuffle 386 386 0 1
388: 202(bvec2) SLessThan 387 201
389: 6(int) Load 8(invocation)
390: 202(bvec2) GroupNonUniformShuffleDown 35 388 389
391: 82(ivec2) Select 390 206 201
392: 75(ptr) AccessChain 27(data) 384 39 30
393: 19(int) CompositeExtract 391 0
Store 392 393
394: 75(ptr) AccessChain 27(data) 384 39 49
395: 19(int) CompositeExtract 391 1
Store 394 395
396: 6(int) Load 8(invocation)
397: 83(ptr) AccessChain 27(data) 39 39
398: 20(ivec4) Load 397
399: 94(ivec3) VectorShuffle 398 398 0 1 2
400: 217(bvec3) SLessThan 399 216
401: 6(int) Load 8(invocation)
402: 217(bvec3) GroupNonUniformShuffleDown 35 400 401
403: 94(ivec3) Select 402 221 216
404: 75(ptr) AccessChain 27(data) 396 39 30
405: 19(int) CompositeExtract 403 0
Store 404 405
406: 75(ptr) AccessChain 27(data) 396 39 49
407: 19(int) CompositeExtract 403 1
Store 406 407
408: 75(ptr) AccessChain 27(data) 396 39 64
409: 19(int) CompositeExtract 403 2
Store 408 409
410: 6(int) Load 8(invocation)
411: 83(ptr) AccessChain 27(data) 39 39
412: 20(ivec4) Load 411
413: 233(bvec4) SLessThan 412 232
414: 6(int) Load 8(invocation)
415: 233(bvec4) GroupNonUniformShuffleDown 35 413 414
416: 20(ivec4) Select 415 237 232
417: 83(ptr) AccessChain 27(data) 410 39
Store 417 416
Return Return
FunctionEnd FunctionEnd

View File

@ -1,12 +1,12 @@
spv.swizzle.frag spv.swizzle.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 108 // Id's are bound by 117
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 14 30 69 107 EntryPoint Fragment 4 "main" 14 30 78 116
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 140 Source GLSL 140
Name 4 "main" Name 4 "main"
@ -18,16 +18,16 @@ spv.swizzle.frag
Name 20 "w2" Name 20 "w2"
Name 22 "w_flow" Name 22 "w_flow"
Name 30 "t" Name 30 "t"
Name 49 "w_undef" Name 56 "w_undef"
Name 56 "p" Name 65 "p"
Name 69 "gl_FragColor" Name 78 "gl_FragColor"
Name 81 "c" Name 90 "c"
Name 83 "rep" Name 92 "rep"
Name 107 "blend" Name 116 "blend"
Decorate 14(u) Location 1 Decorate 14(u) Location 1
Decorate 30(t) Location 2 Decorate 30(t) Location 2
Decorate 69(gl_FragColor) Location 0 Decorate 78(gl_FragColor) Location 0
Decorate 107(blend) Location 0 Decorate 116(blend) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -42,21 +42,22 @@ spv.swizzle.frag
28: TypeVector 6(float) 2 28: TypeVector 6(float) 2
29: TypePointer Input 28(fvec2) 29: TypePointer Input 28(fvec2)
30(t): 29(ptr) Variable Input 30(t): 29(ptr) Variable Input
35: 25(int) Constant 0 32: 25(int) Constant 3
40: 25(int) Constant 1 35: 25(int) Constant 1
54: TypeBool 39: 25(int) Constant 0
55: TypePointer Private 54(bool) 63: TypeBool
56(p): 55(ptr) Variable Private 64: TypePointer Private 63(bool)
60: TypePointer Input 6(float) 65(p): 64(ptr) Variable Private
68: TypePointer Output 10(fvec4) 69: TypePointer Input 6(float)
69(gl_FragColor): 68(ptr) Variable Output 77: TypePointer Output 10(fvec4)
80: TypePointer Function 28(fvec2) 78(gl_FragColor): 77(ptr) Variable Output
84: 6(float) Constant 0 89: TypePointer Function 28(fvec2)
85: 6(float) Constant 1065353216 93: 6(float) Constant 0
86: 10(fvec4) ConstantComposite 84 84 84 85 94: 6(float) Constant 1065353216
92: 6(float) Constant 3212836864 95: 10(fvec4) ConstantComposite 93 93 93 94
102: 6(float) Constant 1079613850 101: 6(float) Constant 3212836864
107(blend): 60(ptr) Variable Input 111: 6(float) Constant 1079613850
116(blend): 69(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
8(blendscale): 7(ptr) Variable Function 8(blendscale): 7(ptr) Variable Function
@ -65,9 +66,9 @@ spv.swizzle.frag
18(w_reorder): 11(ptr) Variable Function 18(w_reorder): 11(ptr) Variable Function
20(w2): 11(ptr) Variable Function 20(w2): 11(ptr) Variable Function
22(w_flow): 11(ptr) Variable Function 22(w_flow): 11(ptr) Variable Function
49(w_undef): 11(ptr) Variable Function 56(w_undef): 11(ptr) Variable Function
81(c): 80(ptr) Variable Function 90(c): 89(ptr) Variable Function
83(rep): 11(ptr) Variable Function 92(rep): 11(ptr) Variable Function
Store 8(blendscale) 9 Store 8(blendscale) 9
15: 10(fvec4) Load 14(u) 15: 10(fvec4) Load 14(u)
Store 12(w) 15 Store 12(w) 15
@ -83,88 +84,100 @@ spv.swizzle.frag
27: 7(ptr) AccessChain 18(w_reorder) 26 27: 7(ptr) AccessChain 18(w_reorder) 26
Store 27 24 Store 27 24
31: 28(fvec2) Load 30(t) 31: 28(fvec2) Load 30(t)
32: 10(fvec4) Load 12(w) 33: 7(ptr) AccessChain 12(w) 32
33: 10(fvec4) VectorShuffle 32 31 0 5 2 4 34: 6(float) CompositeExtract 31 0
Store 12(w) 33 Store 33 34
34: 6(float) Load 8(blendscale) 36: 7(ptr) AccessChain 12(w) 35
36: 7(ptr) AccessChain 18(w_reorder) 35 37: 6(float) CompositeExtract 31 1
Store 36 34 Store 36 37
37: 10(fvec4) Load 14(u) 38: 6(float) Load 8(blendscale)
38: 10(fvec4) VectorShuffle 37 37 2 3 0 1 40: 7(ptr) AccessChain 18(w_reorder) 39
Store 20(w2) 38 Store 40 38
39: 6(float) Load 8(blendscale) 41: 10(fvec4) Load 14(u)
41: 7(ptr) AccessChain 18(w_reorder) 40 42: 10(fvec4) VectorShuffle 41 41 2 3 0 1
Store 41 39 Store 20(w2) 42
42: 10(fvec4) Load 20(w2) 43: 6(float) Load 8(blendscale)
43: 28(fvec2) VectorShuffle 42 42 0 2 44: 7(ptr) AccessChain 18(w_reorder) 35
44: 10(fvec4) Load 16(w_dep) Store 44 43
45: 10(fvec4) VectorShuffle 44 43 4 5 2 3 45: 10(fvec4) Load 20(w2)
Store 16(w_dep) 45 46: 28(fvec2) VectorShuffle 45 45 0 2
46: 28(fvec2) Load 30(t) 47: 7(ptr) AccessChain 16(w_dep) 39
47: 10(fvec4) Load 16(w_dep) 48: 6(float) CompositeExtract 46 0
48: 10(fvec4) VectorShuffle 47 46 0 1 4 5 Store 47 48
Store 16(w_dep) 48 49: 7(ptr) AccessChain 16(w_dep) 35
50: 10(fvec4) Load 14(u) 50: 6(float) CompositeExtract 46 1
51: 28(fvec2) VectorShuffle 50 50 2 3 Store 49 50
52: 10(fvec4) Load 49(w_undef) 51: 28(fvec2) Load 30(t)
53: 10(fvec4) VectorShuffle 52 51 4 5 2 3 52: 7(ptr) AccessChain 16(w_dep) 26
Store 49(w_undef) 53 53: 6(float) CompositeExtract 51 0
57: 54(bool) Load 56(p) Store 52 53
SelectionMerge 59 None 54: 7(ptr) AccessChain 16(w_dep) 32
BranchConditional 57 58 64 55: 6(float) CompositeExtract 51 1
58: Label Store 54 55
61: 60(ptr) AccessChain 30(t) 35 57: 10(fvec4) Load 14(u)
62: 6(float) Load 61 58: 28(fvec2) VectorShuffle 57 57 2 3
63: 7(ptr) AccessChain 22(w_flow) 35 59: 7(ptr) AccessChain 56(w_undef) 39
Store 63 62 60: 6(float) CompositeExtract 58 0
Branch 59 Store 59 60
64: Label 61: 7(ptr) AccessChain 56(w_undef) 35
65: 60(ptr) AccessChain 30(t) 40 62: 6(float) CompositeExtract 58 1
66: 6(float) Load 65 Store 61 62
67: 7(ptr) AccessChain 22(w_flow) 35 66: 63(bool) Load 65(p)
Store 67 66 SelectionMerge 68 None
Branch 59 BranchConditional 66 67 73
59: Label 67: Label
70: 10(fvec4) Load 18(w_reorder) 70: 69(ptr) AccessChain 30(t) 39
71: 10(fvec4) Load 49(w_undef) 71: 6(float) Load 70
72: 10(fvec4) Load 12(w) 72: 7(ptr) AccessChain 22(w_flow) 39
73: 10(fvec4) Load 20(w2) Store 72 71
74: 10(fvec4) FMul 72 73 Branch 68
75: 10(fvec4) Load 16(w_dep) 73: Label
76: 10(fvec4) FMul 74 75 74: 69(ptr) AccessChain 30(t) 35
77: 10(fvec4) Load 22(w_flow) 75: 6(float) Load 74
78: 10(fvec4) FMul 76 77 76: 7(ptr) AccessChain 22(w_flow) 39
79: 10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 70 71 78 Store 76 75
Store 69(gl_FragColor) 79 Branch 68
82: 28(fvec2) Load 30(t) 68: Label
Store 81(c) 82 79: 10(fvec4) Load 18(w_reorder)
Store 83(rep) 86 80: 10(fvec4) Load 56(w_undef)
87: 7(ptr) AccessChain 81(c) 35 81: 10(fvec4) Load 12(w)
88: 6(float) Load 87 82: 10(fvec4) Load 20(w2)
89: 54(bool) FOrdLessThan 88 84 83: 10(fvec4) FMul 81 82
SelectionMerge 91 None 84: 10(fvec4) Load 16(w_dep)
BranchConditional 89 90 91 85: 10(fvec4) FMul 83 84
90: Label 86: 10(fvec4) Load 22(w_flow)
93: 7(ptr) AccessChain 81(c) 35 87: 10(fvec4) FMul 85 86
94: 6(float) Load 93 88: 10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 79 80 87
95: 6(float) FMul 94 92 Store 78(gl_FragColor) 88
96: 7(ptr) AccessChain 81(c) 35 91: 28(fvec2) Load 30(t)
Store 96 95 Store 90(c) 91
Branch 91 Store 92(rep) 95
91: Label 96: 7(ptr) AccessChain 90(c) 39
97: 7(ptr) AccessChain 81(c) 35 97: 6(float) Load 96
98: 6(float) Load 97 98: 63(bool) FOrdLessThan 97 93
99: 54(bool) FOrdLessThanEqual 98 85 SelectionMerge 100 None
SelectionMerge 101 None BranchConditional 98 99 100
BranchConditional 99 100 101 99: Label
102: 7(ptr) AccessChain 90(c) 39
103: 6(float) Load 102
104: 6(float) FMul 103 101
105: 7(ptr) AccessChain 90(c) 39
Store 105 104
Branch 100
100: Label 100: Label
103: 7(ptr) AccessChain 83(rep) 35 106: 7(ptr) AccessChain 90(c) 39
Store 103 102 107: 6(float) Load 106
Branch 101 108: 63(bool) FOrdLessThanEqual 107 94
101: Label SelectionMerge 110 None
104: 10(fvec4) Load 83(rep) BranchConditional 108 109 110
105: 10(fvec4) Load 69(gl_FragColor) 109: Label
106: 10(fvec4) FAdd 105 104 112: 7(ptr) AccessChain 92(rep) 39
Store 69(gl_FragColor) 106 Store 112 111
Branch 110
110: Label
113: 10(fvec4) Load 92(rep)
114: 10(fvec4) Load 78(gl_FragColor)
115: 10(fvec4) FAdd 114 113
Store 78(gl_FragColor) 115
Return Return
FunctionEnd FunctionEnd

View File

@ -1,27 +1,27 @@
spv.uniformArray.frag spv.uniformArray.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 53 // Id's are bound by 60
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 14 25 35 47 EntryPoint Fragment 4 "main" 14 25 43 54
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 140 Source GLSL 140
Name 4 "main" Name 4 "main"
Name 9 "texColor" Name 9 "texColor"
Name 14 "color" Name 14 "color"
Name 25 "inColor" Name 25 "inColor"
Name 35 "alpha" Name 43 "alpha"
Name 47 "gl_FragColor" Name 54 "gl_FragColor"
Name 52 "texSampler2D" Name 59 "texSampler2D"
Decorate 14(color) Location 1 Decorate 14(color) Location 1
Decorate 25(inColor) Location 0 Decorate 25(inColor) Location 0
Decorate 35(alpha) Location 7 Decorate 43(alpha) Location 7
Decorate 47(gl_FragColor) Location 0 Decorate 54(gl_FragColor) Location 0
Decorate 52(texSampler2D) DescriptorSet 0 Decorate 59(texSampler2D) DescriptorSet 0
Decorate 52(texSampler2D) Binding 0 Decorate 59(texSampler2D) Binding 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -38,20 +38,23 @@ spv.uniformArray.frag
23: TypeVector 6(float) 3 23: TypeVector 6(float) 3
24: TypePointer Input 23(fvec3) 24: TypePointer Input 23(fvec3)
25(inColor): 24(ptr) Variable Input 25(inColor): 24(ptr) Variable Input
32: 10(int) Constant 16 30: 10(int) Constant 0
33: TypeArray 6(float) 32 31: TypePointer Function 6(float)
34: TypePointer Input 33 34: 10(int) Constant 1
35(alpha): 34(ptr) Variable Input 37: 10(int) Constant 2
36: 15(int) Constant 12 40: 10(int) Constant 16
37: TypePointer Input 6(float) 41: TypeArray 6(float) 40
40: 10(int) Constant 3 42: TypePointer Input 41
41: TypePointer Function 6(float) 43(alpha): 42(ptr) Variable Input
46: TypePointer Output 7(fvec4) 44: 15(int) Constant 12
47(gl_FragColor): 46(ptr) Variable Output 45: TypePointer Input 6(float)
49: TypeImage 6(float) 2D sampled format:Unknown 48: 10(int) Constant 3
50: TypeSampledImage 49 53: TypePointer Output 7(fvec4)
51: TypePointer UniformConstant 50 54(gl_FragColor): 53(ptr) Variable Output
52(texSampler2D): 51(ptr) Variable UniformConstant 56: TypeImage 6(float) 2D sampled format:Unknown
57: TypeSampledImage 56
58: TypePointer UniformConstant 57
59(texSampler2D): 58(ptr) Variable UniformConstant
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(texColor): 8(ptr) Variable Function 9(texColor): 8(ptr) Variable Function
@ -65,17 +68,23 @@ spv.uniformArray.frag
27: 7(fvec4) Load 9(texColor) 27: 7(fvec4) Load 9(texColor)
28: 23(fvec3) VectorShuffle 27 27 0 1 2 28: 23(fvec3) VectorShuffle 27 27 0 1 2
29: 23(fvec3) FAdd 28 26 29: 23(fvec3) FAdd 28 26
30: 7(fvec4) Load 9(texColor) 32: 31(ptr) AccessChain 9(texColor) 30
31: 7(fvec4) VectorShuffle 30 29 4 5 6 3 33: 6(float) CompositeExtract 29 0
Store 9(texColor) 31 Store 32 33
38: 37(ptr) AccessChain 35(alpha) 36 35: 31(ptr) AccessChain 9(texColor) 34
39: 6(float) Load 38 36: 6(float) CompositeExtract 29 1
42: 41(ptr) AccessChain 9(texColor) 40 Store 35 36
43: 6(float) Load 42 38: 31(ptr) AccessChain 9(texColor) 37
44: 6(float) FAdd 43 39 39: 6(float) CompositeExtract 29 2
45: 41(ptr) AccessChain 9(texColor) 40 Store 38 39
Store 45 44 46: 45(ptr) AccessChain 43(alpha) 44
48: 7(fvec4) Load 9(texColor) 47: 6(float) Load 46
Store 47(gl_FragColor) 48 49: 31(ptr) AccessChain 9(texColor) 48
50: 6(float) Load 49
51: 6(float) FAdd 50 47
52: 31(ptr) AccessChain 9(texColor) 48
Store 52 51
55: 7(fvec4) Load 9(texColor)
Store 54(gl_FragColor) 55
Return Return
FunctionEnd FunctionEnd

View File

@ -1,7 +1,7 @@
spv.vulkan110.int16.frag spv.vulkan110.int16.frag
// Module Version 10300 // Module Version 10300
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 523 // Id's are bound by 535
Capability Shader Capability Shader
Capability Float16 Capability Float16
@ -65,35 +65,35 @@ spv.vulkan110.int16.frag
Name 442 "u64" Name 442 "u64"
Name 445 "u16v4" Name 445 "u16v4"
Name 457 "bv" Name 457 "bv"
Name 518 "Block" Name 530 "Block"
MemberName 518(Block) 0 "i16" MemberName 530(Block) 0 "i16"
MemberName 518(Block) 1 "i16v2" MemberName 530(Block) 1 "i16v2"
MemberName 518(Block) 2 "i16v3" MemberName 530(Block) 2 "i16v3"
MemberName 518(Block) 3 "i16v4" MemberName 530(Block) 3 "i16v4"
MemberName 518(Block) 4 "u16" MemberName 530(Block) 4 "u16"
MemberName 518(Block) 5 "u16v2" MemberName 530(Block) 5 "u16v2"
MemberName 518(Block) 6 "u16v3" MemberName 530(Block) 6 "u16v3"
MemberName 518(Block) 7 "u16v4" MemberName 530(Block) 7 "u16v4"
Name 520 "block" Name 532 "block"
Name 521 "si16" Name 533 "si16"
Name 522 "su16" Name 534 "su16"
MemberDecorate 24(Uniforms) 0 Offset 0 MemberDecorate 24(Uniforms) 0 Offset 0
Decorate 24(Uniforms) Block Decorate 24(Uniforms) Block
Decorate 26 DescriptorSet 0 Decorate 26 DescriptorSet 0
Decorate 26 Binding 0 Decorate 26 Binding 0
MemberDecorate 518(Block) 0 Offset 0 MemberDecorate 530(Block) 0 Offset 0
MemberDecorate 518(Block) 1 Offset 4 MemberDecorate 530(Block) 1 Offset 4
MemberDecorate 518(Block) 2 Offset 8 MemberDecorate 530(Block) 2 Offset 8
MemberDecorate 518(Block) 3 Offset 16 MemberDecorate 530(Block) 3 Offset 16
MemberDecorate 518(Block) 4 Offset 24 MemberDecorate 530(Block) 4 Offset 24
MemberDecorate 518(Block) 5 Offset 28 MemberDecorate 530(Block) 5 Offset 28
MemberDecorate 518(Block) 6 Offset 32 MemberDecorate 530(Block) 6 Offset 32
MemberDecorate 518(Block) 7 Offset 40 MemberDecorate 530(Block) 7 Offset 40
Decorate 518(Block) Block Decorate 530(Block) Block
Decorate 520(block) DescriptorSet 0 Decorate 532(block) DescriptorSet 0
Decorate 520(block) Binding 1 Decorate 532(block) Binding 1
Decorate 521(si16) SpecId 100 Decorate 533(si16) SpecId 100
Decorate 522(su16) SpecId 101 Decorate 534(su16) SpecId 101
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
14: TypeInt 16 1 14: TypeInt 16 1
@ -185,11 +185,11 @@ spv.vulkan110.int16.frag
443: TypeVector 36(int16_t) 4 443: TypeVector 36(int16_t) 4
444: TypePointer Function 443(i16vec4) 444: TypePointer Function 443(i16vec4)
456: TypePointer Function 425(bvec3) 456: TypePointer Function 425(bvec3)
518(Block): TypeStruct 14(int16_t) 52(i16vec2) 197(i16vec3) 432(i16vec4) 36(int16_t) 57(i16vec2) 193(i16vec3) 443(i16vec4) 530(Block): TypeStruct 14(int16_t) 52(i16vec2) 197(i16vec3) 432(i16vec4) 36(int16_t) 57(i16vec2) 193(i16vec3) 443(i16vec4)
519: TypePointer Uniform 518(Block) 531: TypePointer Uniform 530(Block)
520(block): 519(ptr) Variable Uniform 532(block): 531(ptr) Variable Uniform
521(si16): 14(int16_t) SpecConstant 4294967286 533(si16): 14(int16_t) SpecConstant 4294967286
522(su16): 36(int16_t) SpecConstant 20 534(su16): 36(int16_t) SpecConstant 20
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
Return Return
@ -674,68 +674,86 @@ spv.vulkan110.int16.frag
463: 14(int16_t) Load 346(i16) 463: 14(int16_t) Load 346(i16)
464: 52(i16vec2) CompositeConstruct 463 463 464: 52(i16vec2) CompositeConstruct 463 463
465: 174(bvec2) SLessThan 462 464 465: 174(bvec2) SLessThan 462 464
466: 425(bvec3) Load 457(bv) 466: 280(ptr) AccessChain 457(bv) 282
467: 425(bvec3) VectorShuffle 466 465 3 4 2 467: 173(bool) CompositeExtract 465 0
Store 457(bv) 467 Store 466 467
468:193(i16vec3) Load 356(u16v) 468: 280(ptr) AccessChain 457(bv) 264
469: 36(int16_t) Load 358(u16) 469: 173(bool) CompositeExtract 465 1
470:193(i16vec3) CompositeConstruct 469 469 469 Store 468 469
471: 425(bvec3) ULessThanEqual 468 470 470:193(i16vec3) Load 356(u16v)
Store 457(bv) 471 471: 36(int16_t) Load 358(u16)
472: 52(i16vec2) Load 343(i16v) 472:193(i16vec3) CompositeConstruct 471 471 471
473: 14(int16_t) Load 346(i16) 473: 425(bvec3) ULessThanEqual 470 472
474: 52(i16vec2) CompositeConstruct 473 473 Store 457(bv) 473
475: 174(bvec2) SLessThanEqual 472 474 474: 52(i16vec2) Load 343(i16v)
476: 425(bvec3) Load 457(bv) 475: 14(int16_t) Load 346(i16)
477: 425(bvec3) VectorShuffle 476 475 3 4 2 476: 52(i16vec2) CompositeConstruct 475 475
Store 457(bv) 477 477: 174(bvec2) SLessThanEqual 474 476
478:193(i16vec3) Load 356(u16v) 478: 280(ptr) AccessChain 457(bv) 282
479: 36(int16_t) Load 358(u16) 479: 173(bool) CompositeExtract 477 0
480:193(i16vec3) CompositeConstruct 479 479 479 Store 478 479
481: 425(bvec3) UGreaterThan 478 480 480: 280(ptr) AccessChain 457(bv) 264
Store 457(bv) 481 481: 173(bool) CompositeExtract 477 1
482: 52(i16vec2) Load 343(i16v) Store 480 481
483: 14(int16_t) Load 346(i16) 482:193(i16vec3) Load 356(u16v)
484: 52(i16vec2) CompositeConstruct 483 483 483: 36(int16_t) Load 358(u16)
485: 174(bvec2) SGreaterThan 482 484 484:193(i16vec3) CompositeConstruct 483 483 483
486: 425(bvec3) Load 457(bv) 485: 425(bvec3) UGreaterThan 482 484
487: 425(bvec3) VectorShuffle 486 485 3 4 2 Store 457(bv) 485
Store 457(bv) 487 486: 52(i16vec2) Load 343(i16v)
488:193(i16vec3) Load 356(u16v) 487: 14(int16_t) Load 346(i16)
489: 36(int16_t) Load 358(u16) 488: 52(i16vec2) CompositeConstruct 487 487
490:193(i16vec3) CompositeConstruct 489 489 489 489: 174(bvec2) SGreaterThan 486 488
491: 425(bvec3) UGreaterThanEqual 488 490 490: 280(ptr) AccessChain 457(bv) 282
Store 457(bv) 491 491: 173(bool) CompositeExtract 489 0
492: 52(i16vec2) Load 343(i16v) Store 490 491
493: 14(int16_t) Load 346(i16) 492: 280(ptr) AccessChain 457(bv) 264
494: 52(i16vec2) CompositeConstruct 493 493 493: 173(bool) CompositeExtract 489 1
495: 174(bvec2) SGreaterThanEqual 492 494 Store 492 493
496: 425(bvec3) Load 457(bv) 494:193(i16vec3) Load 356(u16v)
497: 425(bvec3) VectorShuffle 496 495 3 4 2 495: 36(int16_t) Load 358(u16)
496:193(i16vec3) CompositeConstruct 495 495 495
497: 425(bvec3) UGreaterThanEqual 494 496
Store 457(bv) 497 Store 457(bv) 497
498:193(i16vec3) Load 356(u16v) 498: 52(i16vec2) Load 343(i16v)
499: 36(int16_t) Load 358(u16) 499: 14(int16_t) Load 346(i16)
500:193(i16vec3) CompositeConstruct 499 499 499 500: 52(i16vec2) CompositeConstruct 499 499
501: 425(bvec3) IEqual 498 500 501: 174(bvec2) SGreaterThanEqual 498 500
Store 457(bv) 501 502: 280(ptr) AccessChain 457(bv) 282
502: 52(i16vec2) Load 343(i16v) 503: 173(bool) CompositeExtract 501 0
503: 14(int16_t) Load 346(i16) Store 502 503
504: 52(i16vec2) CompositeConstruct 503 503 504: 280(ptr) AccessChain 457(bv) 264
505: 174(bvec2) IEqual 502 504 505: 173(bool) CompositeExtract 501 1
506: 425(bvec3) Load 457(bv) Store 504 505
507: 425(bvec3) VectorShuffle 506 505 3 4 2 506:193(i16vec3) Load 356(u16v)
Store 457(bv) 507 507: 36(int16_t) Load 358(u16)
508:193(i16vec3) Load 356(u16v) 508:193(i16vec3) CompositeConstruct 507 507 507
509: 36(int16_t) Load 358(u16) 509: 425(bvec3) IEqual 506 508
510:193(i16vec3) CompositeConstruct 509 509 509 Store 457(bv) 509
511: 425(bvec3) INotEqual 508 510 510: 52(i16vec2) Load 343(i16v)
Store 457(bv) 511 511: 14(int16_t) Load 346(i16)
512: 52(i16vec2) Load 343(i16v) 512: 52(i16vec2) CompositeConstruct 511 511
513: 14(int16_t) Load 346(i16) 513: 174(bvec2) IEqual 510 512
514: 52(i16vec2) CompositeConstruct 513 513 514: 280(ptr) AccessChain 457(bv) 282
515: 174(bvec2) INotEqual 512 514 515: 173(bool) CompositeExtract 513 0
516: 425(bvec3) Load 457(bv) Store 514 515
517: 425(bvec3) VectorShuffle 516 515 3 4 2 516: 280(ptr) AccessChain 457(bv) 264
Store 457(bv) 517 517: 173(bool) CompositeExtract 513 1
Store 516 517
518:193(i16vec3) Load 356(u16v)
519: 36(int16_t) Load 358(u16)
520:193(i16vec3) CompositeConstruct 519 519 519
521: 425(bvec3) INotEqual 518 520
Store 457(bv) 521
522: 52(i16vec2) Load 343(i16v)
523: 14(int16_t) Load 346(i16)
524: 52(i16vec2) CompositeConstruct 523 523
525: 174(bvec2) INotEqual 522 524
526: 280(ptr) AccessChain 457(bv) 282
527: 173(bool) CompositeExtract 525 0
Store 526 527
528: 280(ptr) AccessChain 457(bv) 264
529: 173(bool) CompositeExtract 525 1
Store 528 529
Return Return
FunctionEnd FunctionEnd

View File

@ -1,8 +1,41 @@
Texture3D<int> IN: register(t0); Texture1D<float> i1D: register(t0);
RWTexture3D<uint> OUT: register(u1); Texture2D<float> i2D: register(t1);
Texture3D<float> i3D: register(t2);
Texture1DArray<float> i1DArray: register(t3);
Texture2DArray<float> i2DArray: register(t4);
Texture2DMS<float> i2DMS: register(t5);
Texture2DMSArray<float> i2DMSArray: register(t6);
Texture1D<int> ii1D: register(t7);
Texture2D<int> ii2D: register(t8);
Texture3D<int> ii3D: register(t9);
Texture1DArray<int> ii1DArray: register(t10);
Texture2DArray<int> ii2DArray: register(t11);
Texture2DMS<int> ii2DMS: register(t12);
Texture2DMSArray<int> ii2DMSArray: register(t13);
RWTexture3D<float> OUT: register(u0);
[numthreads(8,8,8)] [numthreads(8,8,8)]
void main(uint3 tid: SV_DispatchThreadID) void main(uint3 tid: SV_DispatchThreadID)
{ {
OUT[tid] = IN[tid]; float f = 0.0;
f += i1D[tid.x];
f += i2D[tid.xy];
f += i3D[tid];
f += i1DArray[tid.xy];
f += i2DArray[tid];
f += i2DMS.Load(tid.xy, 1);
f += i2DMSArray.Load(tid, 3);
int i = 0.0;
i += ii1D[tid.x];
i += ii2D[tid.xy];
i += ii3D[tid];
i += ii1DArray[tid.xy];
i += ii2DArray[tid];
i += ii2DMS.Load(tid.xy, 1);
i += ii2DMSArray.Load(tid, 3);
OUT[tid] = f + float(i);
} }

View File

@ -0,0 +1,33 @@
RWTexture1D<float> i1D: register(u0);
RWTexture2D<float> i2D: register(u1);
RWTexture3D<float> i3D: register(u2);
RWTexture1DArray<float> i1DArray: register(u3);
RWTexture2DArray<float> i2DArray: register(u4);
RWTexture1D<int> ii1D: register(u5);
RWTexture2D<int> ii2D: register(u6);
RWTexture3D<int> ii3D: register(u7);
RWTexture1DArray<int> ii1DArray: register(u8);
RWTexture2DArray<int> ii2DArray: register(u9);
RWTexture3D<float> OUT: register(u10);
[numthreads(8,8,8)]
void main(uint3 tid: SV_DispatchThreadID)
{
float f = 0.0;
f += i1D[tid.x];
f += i2D[tid.xy];
f += i3D[tid];
f += i1DArray[tid.xy];
f += i2DArray[tid];
int i = 0.0;
i += ii1D[tid.x];
i += ii2D[tid.xy];
i += ii3D[tid];
i += ii1DArray[tid.xy];
i += ii2DArray[tid];
OUT[tid] = f + float(i);
}

View File

@ -0,0 +1,17 @@
#version 450 core
layout(std140, set=0, binding=0) uniform ub {
bool bi[2][3];
};
layout(std430, set=0, binding=1) buffer ssbo {
bool bo[2][3];
};
layout(location=0) out vec4 color;
void main()
{
bo = bi;
color = vec4(0);
}

View File

@ -0,0 +1,17 @@
#version 450 core
layout(std140, set=0, binding=0) uniform ub {
bool bi[2][3];
};
layout(std430, set=0, binding=1) buffer ssbo {
bool bo[2][3];
};
layout(location=0) out vec4 color;
void main()
{
bo = bi;
color = vec4(0);
}

View File

@ -6689,12 +6689,6 @@ void HlslParseContext::globalQualifierFix(const TSourceLoc&, TQualifier& qualifi
// //
// Merge characteristics of the 'src' qualifier into the 'dst'. // Merge characteristics of the 'src' qualifier into the 'dst'.
// If there is duplication, issue error messages, unless 'force'
// is specified, which means to just override default settings.
//
// Also, when force is false, it will be assumed that 'src' follows
// 'dst', for the purpose of error checking order for versions
// that require specific orderings of qualifiers.
// //
void HlslParseContext::mergeQualifiers(TQualifier& dst, const TQualifier& src) void HlslParseContext::mergeQualifiers(TQualifier& dst, const TQualifier& src)
{ {
@ -6712,8 +6706,7 @@ void HlslParseContext::mergeQualifiers(TQualifier& dst, const TQualifier& src)
mergeObjectLayoutQualifiers(dst, src, false); mergeObjectLayoutQualifiers(dst, src, false);
// individual qualifiers // individual qualifiers
bool repeated = false; #define MERGE_SINGLETON(field) dst.field |= src.field;
#define MERGE_SINGLETON(field) repeated |= dst.field && src.field; dst.field |= src.field;
MERGE_SINGLETON(invariant); MERGE_SINGLETON(invariant);
MERGE_SINGLETON(noContraction); MERGE_SINGLETON(noContraction);
MERGE_SINGLETON(centroid); MERGE_SINGLETON(centroid);

View File

@ -1739,7 +1739,7 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat
case EbtUint: case EbtUint:
switch (from) { switch (from) {
case EbtInt: case EbtInt:
return version >= 400 || getSource() == EShSourceHlsl; return version >= 400 || getSource() == EShSourceHlsl || IsRequestedExtension(E_GL_ARB_gpu_shader5);
case EbtBool: case EbtBool:
return getSource() == EShSourceHlsl; return getSource() == EShSourceHlsl;
case EbtInt16: case EbtInt16:

View File

@ -926,6 +926,11 @@ public:
return false; return false;
} }
bool IsRequestedExtension(const char* extension) const
{
return (requestedExtensions.find(extension) != requestedExtensions.end());
}
void addToCallGraph(TInfoSink&, const TString& caller, const TString& callee); void addToCallGraph(TInfoSink&, const TString& caller, const TString& callee);
void merge(TInfoSink&, TIntermediate&); void merge(TInfoSink&, TIntermediate&);
void finalCheck(TInfoSink&, bool keepUncalled); void finalCheck(TInfoSink&, bool keepUncalled);

View File

@ -283,6 +283,7 @@ INSTANTIATE_TEST_SUITE_P(
"negativeWorkGroupSize.comp", "negativeWorkGroupSize.comp",
"textureoffset_sampler2darrayshadow.vert", "textureoffset_sampler2darrayshadow.vert",
"atomicAdd.comp", "atomicAdd.comp",
"GL_ARB_gpu_shader5.u2i.vert",
})), })),
FileNameAsCustomTestSuffix FileNameAsCustomTestSuffix
); );

View File

@ -235,6 +235,7 @@ INSTANTIATE_TEST_SUITE_P(
{"hlsl.groupid.comp", "main"}, {"hlsl.groupid.comp", "main"},
{"hlsl.identifier.sample.frag", "main"}, {"hlsl.identifier.sample.frag", "main"},
{"hlsl.if.frag", "PixelShaderFunction"}, {"hlsl.if.frag", "PixelShaderFunction"},
{"hlsl.imageload-subvec4.comp", "main"},
{"hlsl.imagefetch-subvec4.comp", "main"}, {"hlsl.imagefetch-subvec4.comp", "main"},
{"hlsl.implicitBool.frag", "main"}, {"hlsl.implicitBool.frag", "main"},
{"hlsl.inf.vert", "main"}, {"hlsl.inf.vert", "main"},

View File

@ -352,6 +352,7 @@ INSTANTIATE_TEST_SUITE_P(
"spv.functionParameterTypes.frag", "spv.functionParameterTypes.frag",
"spv.GeometryShaderPassthrough.geom", "spv.GeometryShaderPassthrough.geom",
"spv.funcall.array.frag", "spv.funcall.array.frag",
"spv.load.bool.array.interface.block.frag",
"spv.interpOps.frag", "spv.interpOps.frag",
"spv.int64.frag", "spv.int64.frag",
"spv.intcoopmat.comp", "spv.intcoopmat.comp",
@ -566,6 +567,7 @@ INSTANTIATE_TEST_SUITE_P(
"spv.1.4.OpCopyLogicalBool.comp", "spv.1.4.OpCopyLogicalBool.comp",
"spv.1.4.OpCopyLogical.funcall.frag", "spv.1.4.OpCopyLogical.funcall.frag",
"spv.1.4.funcall.array.frag", "spv.1.4.funcall.array.frag",
"spv.1.4.load.bool.array.interface.block.frag",
"spv.1.4.image.frag", "spv.1.4.image.frag",
"spv.1.4.sparseTexture.frag", "spv.1.4.sparseTexture.frag",
"spv.1.4.texture.frag", "spv.1.4.texture.frag",