Updated glslang.

This commit is contained in:
Branimir Karadžić 2018-04-01 08:45:28 -07:00
parent a5d9d33264
commit 6848926552
117 changed files with 11121 additions and 6482 deletions

View File

@ -94,9 +94,10 @@ endif()
if(ENABLE_OPT)
message(STATUS "optimizer enabled")
add_definitions(-DENABLE_OPT)
add_definitions(-DENABLE_OPT=1)
elseif(ENABLE_HLSL)
message(STATUS "spirv-tools not linked - illegal SPIRV may be generated for HLSL")
add_definitions(-DENABLE_OPT=0)
endif()
add_subdirectory(glslang)

View File

@ -240,8 +240,11 @@ bool InitializeProcess();
void FinalizeProcess();
class TShader
setStrings(...);
setEnvInput(EShSourceHlsl or EShSourceGlsl, stage, EShClientVulkan or EShClientOpenGL, 100);
setEnvClient(EShClientVulkan or EShClientOpenGL, EShTargetVulkan_1_0 or EShTargetVulkan_1_1 or EShTargetOpenGL_450);
setEnvTarget(EShTargetSpv, EShTargetSpv_1_0 or EShTargetSpv_1_3);
bool parse(...);
void setStrings(...);
const char* getInfoLog();
class TProgram

View File

@ -53,7 +53,7 @@ if(ENABLE_OPT)
PRIVATE ${spirv-tools_SOURCE_DIR}/include
PRIVATE ${spirv-tools_SOURCE_DIR}/source
)
target_link_libraries(SPIRV glslang SPIRV-Tools-opt SPVRemapper)
target_link_libraries(SPIRV glslang SPIRV-Tools-opt)
else()
target_link_libraries(SPIRV glslang)
endif(ENABLE_OPT)

View File

@ -51,4 +51,7 @@ const char* const E_SPV_NV_stereo_view_rendering = "SPV_NV_stereo_view_rendering
//SPV_NVX_multiview_per_view_attributes
const char* const E_SPV_NVX_multiview_per_view_attributes = "SPV_NVX_multiview_per_view_attributes";
//SPV_NV_shader_subgroup_partitioned
const char* const E_SPV_NV_shader_subgroup_partitioned = "SPV_NV_shader_subgroup_partitioned";
#endif // #ifndef GLSLextNV_H

316
3rdparty/glslang/SPIRV/GlslangToSpv.cpp vendored Normal file → Executable file
View File

@ -54,13 +54,12 @@ namespace spv {
#endif
}
#ifdef ENABLE_OPT
#if ENABLE_OPT
#include "spirv-tools/optimizer.hpp"
#include "message.h"
#include "SPVRemapper.h"
#endif
#ifdef ENABLE_OPT
#if ENABLE_OPT
using namespace spvtools;
#endif
@ -99,7 +98,13 @@ private:
spv::Builder* builder_;
bool previous_flag_;
};
}
struct OpDecorations {
spv::Decoration precision;
spv::Decoration noContraction;
};
} // namespace
//
// The main holder of information for translating glslang to SPIR-V.
@ -143,7 +148,8 @@ protected:
spv::Id createInvertedSwizzle(spv::Decoration precision, const glslang::TIntermTyped&, spv::Id parentResult);
void convertSwizzle(const glslang::TIntermAggregate&, std::vector<unsigned>& swizzle);
spv::Id convertGlslangToSpvType(const glslang::TType& type);
spv::Id convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking, const glslang::TQualifier&);
spv::Id convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking, const glslang::TQualifier&,
bool lastBufferBlockMember);
bool filterMember(const glslang::TType& member);
spv::Id convertGlslangStructToSpvType(const glslang::TType&, const glslang::TTypeList* glslangStruct,
glslang::TLayoutPacking, const glslang::TQualifier&);
@ -172,11 +178,15 @@ protected:
spv::Id createImageTextureFunctionCall(glslang::TIntermOperator* node);
spv::Id handleUserFunctionCall(const glslang::TIntermAggregate*);
spv::Id createBinaryOperation(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id left, spv::Id right, glslang::TBasicType typeProxy, bool reduceComparison = true);
spv::Id createBinaryMatrixOperation(spv::Op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id left, spv::Id right);
spv::Id createUnaryOperation(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand,glslang::TBasicType typeProxy);
spv::Id createUnaryMatrixOperation(spv::Op op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand,glslang::TBasicType typeProxy);
spv::Id createConversion(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id destTypeId, spv::Id operand, glslang::TBasicType typeProxy);
spv::Id createBinaryOperation(glslang::TOperator op, OpDecorations&, spv::Id typeId, spv::Id left, spv::Id right,
glslang::TBasicType typeProxy, bool reduceComparison = true);
spv::Id createBinaryMatrixOperation(spv::Op, OpDecorations&, spv::Id typeId, spv::Id left, spv::Id right);
spv::Id createUnaryOperation(glslang::TOperator op, OpDecorations&, spv::Id typeId, spv::Id operand,
glslang::TBasicType typeProxy);
spv::Id createUnaryMatrixOperation(spv::Op op, OpDecorations&, spv::Id typeId, spv::Id operand,
glslang::TBasicType typeProxy);
spv::Id createConversion(glslang::TOperator op, OpDecorations&, spv::Id destTypeId, spv::Id operand,
glslang::TBasicType typeProxy);
spv::Id createConversionOperation(glslang::TOperator op, spv::Id operand, int vectorSize);
spv::Id makeSmearedConstant(spv::Id constant, int vectorSize);
spv::Id createAtomicOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy);
@ -1275,8 +1285,9 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T
spv::Id leftRValue = accessChainLoad(node->getLeft()->getType());
// do the operation
rValue = createBinaryOperation(node->getOp(), TranslatePrecisionDecoration(node->getOperationPrecision()),
TranslateNoContractionDecoration(node->getType().getQualifier()),
OpDecorations decorations = { TranslatePrecisionDecoration(node->getOperationPrecision()),
TranslateNoContractionDecoration(node->getType().getQualifier()) };
rValue = createBinaryOperation(node->getOp(), decorations,
convertGlslangToSpvType(node->getType()), leftRValue, rValue,
node->getType().getBasicType());
@ -1403,8 +1414,9 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T
spv::Id right = accessChainLoad(node->getRight()->getType());
// get result
spv::Id result = createBinaryOperation(node->getOp(), TranslatePrecisionDecoration(node->getOperationPrecision()),
TranslateNoContractionDecoration(node->getType().getQualifier()),
OpDecorations decorations = { TranslatePrecisionDecoration(node->getOperationPrecision()),
TranslateNoContractionDecoration(node->getType().getQualifier()) };
spv::Id result = createBinaryOperation(node->getOp(), decorations,
convertGlslangToSpvType(node->getType()), left, right,
node->getLeft()->getType().getBasicType());
@ -1445,7 +1457,7 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI
// Normal .length() would have been constant folded by the front-end.
// So, this has to be block.lastMember.length().
// SPV wants "block" and member number as the operands, go get them.
assert(node->getOperand()->getType().isRuntimeSizedArray());
glslang::TIntermTyped* block = node->getOperand()->getAsBinaryNode()->getLeft();
block->traverse(this);
unsigned int member = node->getOperand()->getAsBinaryNode()->getRight()->getAsConstantUnion()->getConstArray()[0].getUConst();
@ -1482,20 +1494,20 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI
else
operand = accessChainLoad(node->getOperand()->getType());
spv::Decoration precision = TranslatePrecisionDecoration(node->getOperationPrecision());
spv::Decoration noContraction = TranslateNoContractionDecoration(node->getType().getQualifier());
OpDecorations decorations = { TranslatePrecisionDecoration(node->getOperationPrecision()),
TranslateNoContractionDecoration(node->getType().getQualifier()) };
// it could be a conversion
if (! result)
result = createConversion(node->getOp(), precision, noContraction, resultType(), operand, node->getOperand()->getBasicType());
result = createConversion(node->getOp(), decorations, resultType(), operand, node->getOperand()->getBasicType());
// if not, then possibly an operation
if (! result)
result = createUnaryOperation(node->getOp(), precision, noContraction, resultType(), operand, node->getOperand()->getBasicType());
result = createUnaryOperation(node->getOp(), decorations, resultType(), operand, node->getOperand()->getBasicType());
if (result) {
if (invertedType)
result = createInvertedSwizzle(precision, *node->getOperand(), result);
result = createInvertedSwizzle(decorations.precision, *node->getOperand(), result);
builder.clearAccessChain();
builder.setAccessChainRValue(result);
@ -1533,8 +1545,7 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI
else
op = glslang::EOpSub;
spv::Id result = createBinaryOperation(op, precision,
TranslateNoContractionDecoration(node->getType().getQualifier()),
spv::Id result = createBinaryOperation(op, decorations,
convertGlslangToSpvType(node->getType()), operand, one,
node->getType().getBasicType());
assert(result != spv::NoResult);
@ -1922,7 +1933,9 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
spv::Id rightId = accessChainLoad(right->getType());
builder.setLine(node->getLoc().line);
result = createBinaryOperation(binOp, precision, TranslateNoContractionDecoration(node->getType().getQualifier()),
OpDecorations decorations = { precision,
TranslateNoContractionDecoration(node->getType().getQualifier()) };
result = createBinaryOperation(binOp, decorations,
resultType(), leftId, rightId,
left->getType().getBasicType(), reduceComparison);
@ -2020,11 +2033,14 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
result = createNoArgOperation(node->getOp(), precision, resultType());
break;
case 1:
result = createUnaryOperation(
node->getOp(), precision,
TranslateNoContractionDecoration(node->getType().getQualifier()),
resultType(), operands.front(),
glslangOperands[0]->getAsTyped()->getBasicType());
{
OpDecorations decorations = { precision,
TranslateNoContractionDecoration(node->getType().getQualifier()) };
result = createUnaryOperation(
node->getOp(), decorations,
resultType(), operands.front(),
glslangOperands[0]->getAsTyped()->getBasicType());
}
break;
default:
result = createMiscOperation(node->getOp(), precision, resultType(), operands, node->getBasicType());
@ -2471,13 +2487,14 @@ void TGlslangToSpvTraverser::convertSwizzle(const glslang::TIntermAggregate& nod
// layout state rooted from the top-level type.
spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type)
{
return convertGlslangToSpvType(type, getExplicitLayout(type), type.getQualifier());
return convertGlslangToSpvType(type, getExplicitLayout(type), type.getQualifier(), false);
}
// Do full recursive conversion of an arbitrary glslang type to a SPIR-V Id.
// explicitLayout can be kept the same throughout the hierarchical recursive walk.
// Mutually recursive with convertGlslangStructToSpvType().
spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking explicitLayout, const glslang::TQualifier& qualifier)
spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type,
glslang::TLayoutPacking explicitLayout, const glslang::TQualifier& qualifier, bool lastBufferBlockMember)
{
spv::Id spvType = spv::NoResult;
@ -2607,8 +2624,8 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
// Use a dummy glslang type for querying internal strides of
// arrays of arrays, but using just a one-dimensional array.
glslang::TType simpleArrayType(type, 0); // deference type of the array
while (simpleArrayType.getArraySizes().getNumDims() > 1)
simpleArrayType.getArraySizes().dereference();
while (simpleArrayType.getArraySizes()->getNumDims() > 1)
simpleArrayType.getArraySizes()->dereference();
// Will compute the higher-order strides here, rather than making a whole
// pile of types and doing repetitive recursion on their contents.
@ -2630,13 +2647,12 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
stride = getArrayStride(type, explicitLayout, qualifier.layoutMatrix);
}
// Do the outer dimension, which might not be known for a runtime-sized array
if (type.isRuntimeSizedArray()) {
spvType = builder.makeRuntimeArray(spvType);
} else {
assert(type.getOuterArraySize() > 0);
// Do the outer dimension, which might not be known for a runtime-sized array.
// (Unsized arrays that survive through linking will be runtime-sized arrays)
if (type.isSizedArray())
spvType = builder.makeArrayType(spvType, makeArraySizeId(*type.getArraySizes(), 0), stride);
}
else
spvType = builder.makeRuntimeArray(spvType);
if (stride > 0)
builder.addDecoration(spvType, spv::DecorationArrayStride, stride);
}
@ -2703,7 +2719,10 @@ spv::Id TGlslangToSpvTraverser::convertGlslangStructToSpvType(const glslang::TTy
memberQualifier.layoutLocation = qualifier.layoutLocation;
// recurse
spvMembers.push_back(convertGlslangToSpvType(glslangMember, explicitLayout, memberQualifier));
bool lastBufferBlockMember = qualifier.storage == glslang::EvqBuffer &&
i == (int)glslangMembers->size() - 1;
spvMembers.push_back(
convertGlslangToSpvType(glslangMember, explicitLayout, memberQualifier, lastBufferBlockMember));
}
}
@ -2805,6 +2824,12 @@ void TGlslangToSpvTraverser::decorateStructType(const glslang::TType& type,
if (builtIn != spv::BuiltInMax)
builder.addMemberDecoration(spvType, member, spv::DecorationBuiltIn, (int)builtIn);
if (glslangIntermediate->getHlslFunctionality1() && memberQualifier.semanticName != nullptr) {
builder.addExtension("SPV_GOOGLE_hlsl_functionality1");
builder.addMemberDecoration(spvType, member, (spv::Decoration)spv::DecorationHlslSemanticGOOGLE,
memberQualifier.semanticName);
}
#ifdef NV_EXTENSIONS
if (builtIn == spv::BuiltInLayer) {
// SPV_NV_viewport_array2 extension
@ -2827,11 +2852,6 @@ void TGlslangToSpvTraverser::decorateStructType(const glslang::TType& type,
builder.addExtension(spv::E_SPV_NV_geometry_shader_passthrough);
}
#endif
if (glslangIntermediate->getHlslFunctionality1() && memberQualifier.semanticName != nullptr) {
builder.addExtension("SPV_GOOGLE_hlsl_functionality1");
builder.addMemberDecoration(spvType, member, (spv::Decoration)spv::DecorationHlslSemanticGOOGLE,
memberQualifier.semanticName);
}
}
// Decorate the structure
@ -3937,8 +3957,7 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg
}
// Translate AST operation to SPV operation, already having SPV-based operands/types.
spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv::Decoration precision,
spv::Decoration noContraction,
spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, OpDecorations& decorations,
spv::Id typeId, spv::Id left, spv::Id right,
glslang::TBasicType typeProxy, bool reduceComparison)
{
@ -4075,15 +4094,15 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv
if (binOp != spv::OpNop) {
assert(comparison == false);
if (builder.isMatrix(left) || builder.isMatrix(right))
return createBinaryMatrixOperation(binOp, precision, noContraction, typeId, left, right);
return createBinaryMatrixOperation(binOp, decorations, typeId, left, right);
// No matrix involved; make both operands be the same number of components, if needed
if (needMatchingVectors)
builder.promoteScalar(precision, left, right);
builder.promoteScalar(decorations.precision, left, right);
spv::Id result = builder.createBinOp(binOp, typeId, left, right);
builder.addDecoration(result, noContraction);
return builder.setPrecision(result, precision);
builder.addDecoration(result, decorations.noContraction);
return builder.setPrecision(result, decorations.precision);
}
if (! comparison)
@ -4092,8 +4111,10 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv
// Handle comparison instructions
if (reduceComparison && (op == glslang::EOpEqual || op == glslang::EOpNotEqual)
&& (builder.isVector(left) || builder.isMatrix(left) || builder.isAggregate(left)))
return builder.createCompositeCompare(precision, left, right, op == glslang::EOpEqual);
&& (builder.isVector(left) || builder.isMatrix(left) || builder.isAggregate(left))) {
spv::Id result = builder.createCompositeCompare(decorations.precision, left, right, op == glslang::EOpEqual);
return result;
}
switch (op) {
case glslang::EOpLessThan:
@ -4152,8 +4173,8 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv
if (binOp != spv::OpNop) {
spv::Id result = builder.createBinOp(binOp, typeId, left, right);
builder.addDecoration(result, noContraction);
return builder.setPrecision(result, precision);
builder.addDecoration(result, decorations.noContraction);
return builder.setPrecision(result, decorations.precision);
}
return 0;
@ -4173,7 +4194,8 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv
// matrix op scalar op in {+, -, /}
// scalar op matrix op in {+, -, /}
//
spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id left, spv::Id right)
spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, OpDecorations& decorations, spv::Id typeId,
spv::Id left, spv::Id right)
{
bool firstClass = true;
@ -4212,8 +4234,8 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, spv::Dec
if (firstClass) {
spv::Id result = builder.createBinOp(op, typeId, left, right);
builder.addDecoration(result, noContraction);
return builder.setPrecision(result, precision);
builder.addDecoration(result, decorations.noContraction);
return builder.setPrecision(result, decorations.precision);
}
// Handle component-wise +, -, *, %, and / for all combinations of type.
@ -4240,9 +4262,9 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, spv::Dec
std::vector<spv::Id> results;
spv::Id smearVec = spv::NoResult;
if (builder.isScalar(left))
smearVec = builder.smearScalar(precision, left, vecType);
smearVec = builder.smearScalar(decorations.precision, left, vecType);
else if (builder.isScalar(right))
smearVec = builder.smearScalar(precision, right, vecType);
smearVec = builder.smearScalar(decorations.precision, right, vecType);
// do each vector op
for (unsigned int c = 0; c < numCols; ++c) {
@ -4251,12 +4273,13 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, spv::Dec
spv::Id leftVec = leftMat ? builder.createCompositeExtract( left, vecType, indexes) : smearVec;
spv::Id rightVec = rightMat ? builder.createCompositeExtract(right, vecType, indexes) : smearVec;
spv::Id result = builder.createBinOp(op, vecType, leftVec, rightVec);
builder.addDecoration(result, noContraction);
results.push_back(builder.setPrecision(result, precision));
builder.addDecoration(result, decorations.noContraction);
results.push_back(builder.setPrecision(result, decorations.precision));
}
// put the pieces together
return builder.setPrecision(builder.createCompositeConstruct(typeId, results), precision);
spv::Id result = builder.setPrecision(builder.createCompositeConstruct(typeId, results), decorations.precision);
return result;
}
default:
assert(0);
@ -4264,7 +4287,8 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, spv::Dec
}
}
spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand, glslang::TBasicType typeProxy)
spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDecorations& decorations, spv::Id typeId,
spv::Id operand, glslang::TBasicType typeProxy)
{
spv::Op unaryOp = spv::OpNop;
int extBuiltins = -1;
@ -4277,7 +4301,7 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv:
if (isFloat) {
unaryOp = spv::OpFNegate;
if (builder.isMatrixType(typeId))
return createUnaryMatrixOperation(unaryOp, precision, noContraction, typeId, operand, typeProxy);
return createUnaryMatrixOperation(unaryOp, decorations, typeId, operand, typeProxy);
} else
unaryOp = spv::OpSNegate;
break;
@ -4538,7 +4562,7 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv:
// Handle all of the atomics in one place, in createAtomicOperation()
std::vector<spv::Id> operands;
operands.push_back(operand);
return createAtomicOperation(op, precision, typeId, operands, typeProxy);
return createAtomicOperation(op, decorations.precision, typeId, operands, typeProxy);
}
case glslang::EOpBitFieldReverse:
@ -4642,7 +4666,13 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv:
libCall = spv::CubeFaceCoordAMD;
break;
#endif
#ifdef NV_EXTENSIONS
case glslang::EOpSubgroupPartition:
builder.addExtension(spv::E_SPV_NV_shader_subgroup_partitioned);
builder.addCapability(spv::CapabilityGroupNonUniformPartitionedNV);
unaryOp = spv::OpGroupNonUniformPartitionNV;
break;
#endif
default:
return 0;
}
@ -4656,12 +4686,13 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv:
id = builder.createUnaryOp(unaryOp, typeId, operand);
}
builder.addDecoration(id, noContraction);
return builder.setPrecision(id, precision);
builder.addDecoration(id, decorations.noContraction);
return builder.setPrecision(id, decorations.precision);
}
// Create a unary operation on a matrix
spv::Id TGlslangToSpvTraverser::createUnaryMatrixOperation(spv::Op op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand, glslang::TBasicType /* typeProxy */)
spv::Id TGlslangToSpvTraverser::createUnaryMatrixOperation(spv::Op op, OpDecorations& decorations, spv::Id typeId,
spv::Id operand, glslang::TBasicType /* typeProxy */)
{
// Handle unary operations vector by vector.
// The result type is the same type as the original type.
@ -4683,12 +4714,13 @@ spv::Id TGlslangToSpvTraverser::createUnaryMatrixOperation(spv::Op op, spv::Deco
indexes.push_back(c);
spv::Id srcVec = builder.createCompositeExtract(operand, srcVecType, indexes);
spv::Id destVec = builder.createUnaryOp(op, destVecType, srcVec);
builder.addDecoration(destVec, noContraction);
results.push_back(builder.setPrecision(destVec, precision));
builder.addDecoration(destVec, decorations.noContraction);
results.push_back(builder.setPrecision(destVec, decorations.precision));
}
// put the pieces together
return builder.setPrecision(builder.createCompositeConstruct(typeId, results), precision);
spv::Id result = builder.setPrecision(builder.createCompositeConstruct(typeId, results), decorations.precision);
return result;
}
spv::Id TGlslangToSpvTraverser::createConversionOperation(glslang::TOperator op, spv::Id operand, int vectorSize)
@ -4808,7 +4840,8 @@ spv::Id TGlslangToSpvTraverser::createConversionOperation(glslang::TOperator op,
return result;
}
spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id destType, spv::Id operand, glslang::TBasicType typeProxy)
spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, OpDecorations& decorations, spv::Id destType,
spv::Id operand, glslang::TBasicType typeProxy)
{
spv::Op convOp = spv::OpNop;
spv::Id zero = 0;
@ -4963,7 +4996,7 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec
case glslang::EOpConvFloat16ToFloat:
convOp = spv::OpFConvert;
if (builder.isMatrixType(destType))
return createUnaryMatrixOperation(convOp, precision, noContraction, destType, operand, typeProxy);
return createUnaryMatrixOperation(convOp, decorations, destType, operand, typeProxy);
break;
case glslang::EOpConvFloat16ToInt8:
@ -5143,7 +5176,8 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec
} else
result = builder.createUnaryOp(convOp, destType, operand);
return builder.setPrecision(result, precision);
result = builder.setPrecision(result, decorations.precision);
return result;
}
spv::Id TGlslangToSpvTraverser::makeSmearedConstant(spv::Id constant, int vectorSize)
@ -5601,6 +5635,32 @@ spv::Id TGlslangToSpvTraverser::createSubgroupOperation(glslang::TOperator op, s
builder.addCapability(spv::CapabilityGroupNonUniform);
builder.addCapability(spv::CapabilityGroupNonUniformQuad);
break;
#ifdef NV_EXTENSIONS
case glslang::EOpSubgroupPartitionedAdd:
case glslang::EOpSubgroupPartitionedMul:
case glslang::EOpSubgroupPartitionedMin:
case glslang::EOpSubgroupPartitionedMax:
case glslang::EOpSubgroupPartitionedAnd:
case glslang::EOpSubgroupPartitionedOr:
case glslang::EOpSubgroupPartitionedXor:
case glslang::EOpSubgroupPartitionedInclusiveAdd:
case glslang::EOpSubgroupPartitionedInclusiveMul:
case glslang::EOpSubgroupPartitionedInclusiveMin:
case glslang::EOpSubgroupPartitionedInclusiveMax:
case glslang::EOpSubgroupPartitionedInclusiveAnd:
case glslang::EOpSubgroupPartitionedInclusiveOr:
case glslang::EOpSubgroupPartitionedInclusiveXor:
case glslang::EOpSubgroupPartitionedExclusiveAdd:
case glslang::EOpSubgroupPartitionedExclusiveMul:
case glslang::EOpSubgroupPartitionedExclusiveMin:
case glslang::EOpSubgroupPartitionedExclusiveMax:
case glslang::EOpSubgroupPartitionedExclusiveAnd:
case glslang::EOpSubgroupPartitionedExclusiveOr:
case glslang::EOpSubgroupPartitionedExclusiveXor:
builder.addExtension(spv::E_SPV_NV_shader_subgroup_partitioned);
builder.addCapability(spv::CapabilityGroupNonUniformPartitionedNV);
break;
#endif
default: assert(0 && "Unhandled subgroup operation!");
}
@ -5634,6 +5694,11 @@ spv::Id TGlslangToSpvTraverser::createSubgroupOperation(glslang::TOperator op, s
case glslang::EOpSubgroupInclusiveAdd:
case glslang::EOpSubgroupExclusiveAdd:
case glslang::EOpSubgroupClusteredAdd:
#ifdef NV_EXTENSIONS
case glslang::EOpSubgroupPartitionedAdd:
case glslang::EOpSubgroupPartitionedInclusiveAdd:
case glslang::EOpSubgroupPartitionedExclusiveAdd:
#endif
if (isFloat) {
opCode = spv::OpGroupNonUniformFAdd;
} else {
@ -5644,6 +5709,11 @@ spv::Id TGlslangToSpvTraverser::createSubgroupOperation(glslang::TOperator op, s
case glslang::EOpSubgroupInclusiveMul:
case glslang::EOpSubgroupExclusiveMul:
case glslang::EOpSubgroupClusteredMul:
#ifdef NV_EXTENSIONS
case glslang::EOpSubgroupPartitionedMul:
case glslang::EOpSubgroupPartitionedInclusiveMul:
case glslang::EOpSubgroupPartitionedExclusiveMul:
#endif
if (isFloat) {
opCode = spv::OpGroupNonUniformFMul;
} else {
@ -5654,6 +5724,11 @@ spv::Id TGlslangToSpvTraverser::createSubgroupOperation(glslang::TOperator op, s
case glslang::EOpSubgroupInclusiveMin:
case glslang::EOpSubgroupExclusiveMin:
case glslang::EOpSubgroupClusteredMin:
#ifdef NV_EXTENSIONS
case glslang::EOpSubgroupPartitionedMin:
case glslang::EOpSubgroupPartitionedInclusiveMin:
case glslang::EOpSubgroupPartitionedExclusiveMin:
#endif
if (isFloat) {
opCode = spv::OpGroupNonUniformFMin;
} else if (isUnsigned) {
@ -5666,6 +5741,11 @@ spv::Id TGlslangToSpvTraverser::createSubgroupOperation(glslang::TOperator op, s
case glslang::EOpSubgroupInclusiveMax:
case glslang::EOpSubgroupExclusiveMax:
case glslang::EOpSubgroupClusteredMax:
#ifdef NV_EXTENSIONS
case glslang::EOpSubgroupPartitionedMax:
case glslang::EOpSubgroupPartitionedInclusiveMax:
case glslang::EOpSubgroupPartitionedExclusiveMax:
#endif
if (isFloat) {
opCode = spv::OpGroupNonUniformFMax;
} else if (isUnsigned) {
@ -5678,6 +5758,11 @@ spv::Id TGlslangToSpvTraverser::createSubgroupOperation(glslang::TOperator op, s
case glslang::EOpSubgroupInclusiveAnd:
case glslang::EOpSubgroupExclusiveAnd:
case glslang::EOpSubgroupClusteredAnd:
#ifdef NV_EXTENSIONS
case glslang::EOpSubgroupPartitionedAnd:
case glslang::EOpSubgroupPartitionedInclusiveAnd:
case glslang::EOpSubgroupPartitionedExclusiveAnd:
#endif
if (isBool) {
opCode = spv::OpGroupNonUniformLogicalAnd;
} else {
@ -5688,6 +5773,11 @@ spv::Id TGlslangToSpvTraverser::createSubgroupOperation(glslang::TOperator op, s
case glslang::EOpSubgroupInclusiveOr:
case glslang::EOpSubgroupExclusiveOr:
case glslang::EOpSubgroupClusteredOr:
#ifdef NV_EXTENSIONS
case glslang::EOpSubgroupPartitionedOr:
case glslang::EOpSubgroupPartitionedInclusiveOr:
case glslang::EOpSubgroupPartitionedExclusiveOr:
#endif
if (isBool) {
opCode = spv::OpGroupNonUniformLogicalOr;
} else {
@ -5698,6 +5788,11 @@ spv::Id TGlslangToSpvTraverser::createSubgroupOperation(glslang::TOperator op, s
case glslang::EOpSubgroupInclusiveXor:
case glslang::EOpSubgroupExclusiveXor:
case glslang::EOpSubgroupClusteredXor:
#ifdef NV_EXTENSIONS
case glslang::EOpSubgroupPartitionedXor:
case glslang::EOpSubgroupPartitionedInclusiveXor:
case glslang::EOpSubgroupPartitionedExclusiveXor:
#endif
if (isBool) {
opCode = spv::OpGroupNonUniformLogicalXor;
} else {
@ -5758,6 +5853,35 @@ spv::Id TGlslangToSpvTraverser::createSubgroupOperation(glslang::TOperator op, s
case glslang::EOpSubgroupClusteredXor:
spvGroupOperands.push_back(spv::GroupOperationClusteredReduce);
break;
#ifdef NV_EXTENSIONS
case glslang::EOpSubgroupPartitionedAdd:
case glslang::EOpSubgroupPartitionedMul:
case glslang::EOpSubgroupPartitionedMin:
case glslang::EOpSubgroupPartitionedMax:
case glslang::EOpSubgroupPartitionedAnd:
case glslang::EOpSubgroupPartitionedOr:
case glslang::EOpSubgroupPartitionedXor:
spvGroupOperands.push_back(spv::GroupOperationPartitionedReduceNV);
break;
case glslang::EOpSubgroupPartitionedInclusiveAdd:
case glslang::EOpSubgroupPartitionedInclusiveMul:
case glslang::EOpSubgroupPartitionedInclusiveMin:
case glslang::EOpSubgroupPartitionedInclusiveMax:
case glslang::EOpSubgroupPartitionedInclusiveAnd:
case glslang::EOpSubgroupPartitionedInclusiveOr:
case glslang::EOpSubgroupPartitionedInclusiveXor:
spvGroupOperands.push_back(spv::GroupOperationPartitionedInclusiveScanNV);
break;
case glslang::EOpSubgroupPartitionedExclusiveAdd:
case glslang::EOpSubgroupPartitionedExclusiveMul:
case glslang::EOpSubgroupPartitionedExclusiveMin:
case glslang::EOpSubgroupPartitionedExclusiveMax:
case glslang::EOpSubgroupPartitionedExclusiveAnd:
case glslang::EOpSubgroupPartitionedExclusiveOr:
case glslang::EOpSubgroupPartitionedExclusiveXor:
spvGroupOperands.push_back(spv::GroupOperationPartitionedExclusiveScanNV);
break;
#endif
}
// Push back the operands next.
@ -5946,6 +6070,29 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
case glslang::EOpSubgroupClusteredOr:
case glslang::EOpSubgroupClusteredXor:
case glslang::EOpSubgroupQuadBroadcast:
#ifdef NV_EXTENSIONS
case glslang::EOpSubgroupPartitionedAdd:
case glslang::EOpSubgroupPartitionedMul:
case glslang::EOpSubgroupPartitionedMin:
case glslang::EOpSubgroupPartitionedMax:
case glslang::EOpSubgroupPartitionedAnd:
case glslang::EOpSubgroupPartitionedOr:
case glslang::EOpSubgroupPartitionedXor:
case glslang::EOpSubgroupPartitionedInclusiveAdd:
case glslang::EOpSubgroupPartitionedInclusiveMul:
case glslang::EOpSubgroupPartitionedInclusiveMin:
case glslang::EOpSubgroupPartitionedInclusiveMax:
case glslang::EOpSubgroupPartitionedInclusiveAnd:
case glslang::EOpSubgroupPartitionedInclusiveOr:
case glslang::EOpSubgroupPartitionedInclusiveXor:
case glslang::EOpSubgroupPartitionedExclusiveAdd:
case glslang::EOpSubgroupPartitionedExclusiveMul:
case glslang::EOpSubgroupPartitionedExclusiveMin:
case glslang::EOpSubgroupPartitionedExclusiveMax:
case glslang::EOpSubgroupPartitionedExclusiveAnd:
case glslang::EOpSubgroupPartitionedExclusiveOr:
case glslang::EOpSubgroupPartitionedExclusiveXor:
#endif
return createSubgroupOperation(op, typeId, operands, typeProxy);
#ifdef AMD_EXTENSIONS
@ -6701,12 +6848,6 @@ void OutputSpvHex(const std::vector<unsigned int>& spirv, const char* baseName,
out.close();
}
#ifdef ENABLE_OPT
void errHandler(const std::string& str) {
std::cerr << str << std::endl;
}
#endif
//
// Set up the glslang traversal
//
@ -6735,7 +6876,7 @@ void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector<unsign
it.finishSpv();
it.dumpSpv(spirv);
#ifdef ENABLE_OPT
#if ENABLE_OPT
// If from HLSL, run spirv-opt to "legalize" the SPIR-V for Vulkan
// eg. forward and remove memory writes of opaque types.
if ((intermediate.getSource() == EShSourceHlsl ||
@ -6752,19 +6893,24 @@ void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector<unsign
<< std::endl;
});
optimizer.RegisterPass(CreateMergeReturnPass());
optimizer.RegisterPass(CreateInlineExhaustivePass());
optimizer.RegisterPass(CreateEliminateDeadFunctionsPass());
optimizer.RegisterPass(CreateScalarReplacementPass());
optimizer.RegisterPass(CreateLocalAccessChainConvertPass());
optimizer.RegisterPass(CreateLocalSingleBlockLoadStoreElimPass());
optimizer.RegisterPass(CreateLocalSingleStoreElimPass());
optimizer.RegisterPass(CreateAggressiveDCEPass());
optimizer.RegisterPass(CreateInsertExtractElimPass());
optimizer.RegisterPass(CreateDeadInsertElimPass());
optimizer.RegisterPass(CreateAggressiveDCEPass());
optimizer.RegisterPass(CreateCCPPass());
optimizer.RegisterPass(CreateSimplificationPass());
optimizer.RegisterPass(CreateDeadBranchElimPass());
optimizer.RegisterPass(CreateCFGCleanupPass());
optimizer.RegisterPass(CreateBlockMergePass());
optimizer.RegisterPass(CreateLocalMultiStoreElimPass());
optimizer.RegisterPass(CreateAggressiveDCEPass());
optimizer.RegisterPass(CreateInsertExtractElimPass());
optimizer.RegisterPass(CreateDeadInsertElimPass());
if (options->optimizeSize) {
@ -6776,12 +6922,6 @@ void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector<unsign
if (!optimizer.Run(spirv.data(), spirv.size(), &spirv))
return;
// Remove dead module-level objects: functions, types, vars
// TODO(greg-lunarg): Switch to spirv-opt versions when available
spv::spirvbin_t Remapper(0);
Remapper.registerErrorHandler(errHandler);
Remapper.remap(spirv, spv::spirvbin_t::DCE_ALL);
}
#endif

View File

@ -854,9 +854,9 @@ Id Builder::makeFpConstant(Id type, double d, bool specConstant)
switch (getScalarTypeWidth(type)) {
case 16:
return makeFloat16Constant(d, specConstant);
return makeFloat16Constant((float)d, specConstant);
case 32:
return makeFloatConstant(d, specConstant);
return makeFloatConstant((float)d, specConstant);
case 64:
return makeDoubleConstant(d, specConstant);
default:

731
3rdparty/glslang/SPIRV/doc.cpp vendored Normal file → Executable file

File diff suppressed because it is too large Load Diff

View File

@ -190,7 +190,6 @@ protected:
class EnumParameters {
public:
EnumParameters() : desc(0) { }
EnumCaps caps;
const char* desc;
};
@ -235,7 +234,6 @@ public:
bool hasType() const { return typePresent != 0; }
const char* opDesc;
EnumCaps capabilities;
OpcodeClass opClass;
OperandParameters operands;
@ -244,8 +242,6 @@ protected:
int resultPresent : 1;
};
const int OpcodeCeiling = 321;
// The set of objects that hold all the instruction/operand
// parameterization information.
extern InstructionParameters InstructionDesc[];

View File

@ -572,6 +572,9 @@ enum GroupOperation {
GroupOperationInclusiveScan = 1,
GroupOperationExclusiveScan = 2,
GroupOperationClusteredReduce = 3,
GroupOperationPartitionedReduceNV = 6,
GroupOperationPartitionedInclusiveScanNV = 7,
GroupOperationPartitionedExclusiveScanNV = 8,
GroupOperationMax = 0x7fffffff,
};
@ -688,6 +691,7 @@ enum Capability {
CapabilityShaderStereoViewNV = 5259,
CapabilityPerViewAttributesNV = 5260,
CapabilityFragmentFullyCoveredEXT = 5265,
CapabilityGroupNonUniformPartitionedNV = 5297,
CapabilitySubgroupShuffleINTEL = 5568,
CapabilitySubgroupBufferBlockIOINTEL = 5569,
CapabilitySubgroupImageBlockIOINTEL = 5570,
@ -1051,6 +1055,7 @@ enum Op {
OpGroupSMaxNonUniformAMD = 5007,
OpFragmentMaskFetchAMD = 5011,
OpFragmentFetchAMD = 5012,
OpGroupNonUniformPartitionNV = 5296,
OpSubgroupShuffleINTEL = 5571,
OpSubgroupShuffleDownINTEL = 5572,
OpSubgroupShuffleUpINTEL = 5573,

View File

@ -574,7 +574,7 @@ void ProcessArguments(std::vector<std::unique_ptr<glslang::TWorkItem>>& workItem
if (argv[0][2] == 'd')
Options |= EOptionOptimizeDisable;
else if (argv[0][2] == 's')
#ifdef ENABLE_OPT
#if ENABLE_OPT
Options |= EOptionOptimizeSize;
#else
Error("-Os not available; optimizer not linked");
@ -720,6 +720,8 @@ void SetMessageOptions(EShMessages& messages)
messages = (EShMessages)(messages | EShMsgDebugInfo);
if (HlslEnable16BitTypes)
messages = (EShMessages)(messages | EShMsgHlslEnable16BitTypes);
if ((Options & EOptionOptimizeDisable) || !ENABLE_OPT)
messages = (EShMessages)(messages | EShMsgHlslLegalization);
}
//

View File

@ -104,3 +104,9 @@ void foo3()
int[] i = int[](); // ERROR, need constructor arguments
float emptyA[];
float b = vec4(emptyA); // ERROR, array can't be a constructor argument
uniform sampler2D s2d[];
void foo4()
{
s2d[a]; // ERROR, can't variably index unsized array
}

View File

@ -1,5 +1,4 @@
hlsl.aliasOpaque.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 87

View File

@ -1,5 +1,4 @@
hlsl.flattenOpaque.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 185

View File

@ -1,5 +1,4 @@
hlsl.flattenOpaqueInit.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 134

View File

@ -1,8 +1,7 @@
hlsl.flattenOpaqueInitMix.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 80
// Id's are bound by 97
Capability Shader
1: ExtInstImport "GLSL.std.450"
@ -32,13 +31,13 @@ WARNING: AST will form illegal SPIR-V; need to transform to legalize
49: 7(float) Constant 1056964608
56: TypePointer Output 11(fvec4)
57(@entryPointOutput): 56(ptr) Variable Output
96: 36(fvec2) ConstantComposite 49 49
4(main): 2 Function None 3
5: Label
63: 6 Load 44(g_tInputTexture_sampler)
64: 8 Load 47(g_tInputTexture)
73: 28 SampledImage 64 63
78: 36(fvec2) CompositeConstruct 49 49
79: 11(fvec4) ImageSampleExplicitLod 73 78 Lod 38
79: 11(fvec4) ImageSampleExplicitLod 73 96 Lod 38
Store 57(@entryPointOutput) 79
Return
FunctionEnd

View File

@ -1,5 +1,4 @@
hlsl.flattenSubset.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 66

View File

@ -1,5 +1,4 @@
hlsl.flattenSubset2.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 53

View File

@ -1,5 +1,4 @@
hlsl.partialFlattenLocal.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 169

View File

@ -1,5 +1,4 @@
hlsl.partialFlattenMixed.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 36

View File

@ -395,7 +395,7 @@ ERROR: node is still EOpNull!
0:? 'v' ( smooth in 3-element array of mediump 4-component vector of float)
0:? 'f' ( invariant global mediump float)
0:? 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump int x})
0:? 'fa' ( global implicitly-sized array of mediump float)
0:? 'fa' ( global unsized 1-element array of mediump float)
0:? 'f13' ( invariant global mediump float)
0:? 'fi' ( invariant temp mediump float)
0:? 'av' ( invariant smooth in mediump 4-component vector of float)

View File

@ -19,6 +19,7 @@ ERROR: 0:34: 'a4' : redefinition
ERROR: 0:35: 'arrays of arrays' : not supported with this profile: none
ERROR: 0:36: 'arrays of arrays' : not supported with this profile: none
ERROR: 0:37: 'arrays of arrays' : not supported with this profile: none
ERROR: 0:37: 'arrays of arrays' : not supported with this profile: none
ERROR: 0:38: 'arrays of arrays' : not supported with this profile: none
ERROR: 0:39: 'arrays of arrays' : not supported with this profile: none
ERROR: 0:40: 'arrays of arrays' : not supported with this profile: none
@ -78,7 +79,7 @@ ERROR: 0:192: 'assign' : l-value required (can't modify a const)
ERROR: 0:195: 'gl_ModelViewMatrix' : identifiers starting with "gl_" are reserved
ERROR: 0:200: 'token pasting (##)' : not supported for this version or the enabled extensions
ERROR: 0:203: 'token pasting (##)' : not supported for this version or the enabled extensions
ERROR: 79 compilation errors. No code generated.
ERROR: 80 compilation errors. No code generated.
Shader version: 120

View File

@ -49,7 +49,7 @@ ERROR: node is still EOpNull!
0:18 move second child to first child ( temp float)
0:18 'clip' ( temp float)
0:18 direct index ( smooth temp float ClipDistance)
0:18 'gl_ClipDistance' ( smooth in implicitly-sized array of float ClipDistance)
0:18 'gl_ClipDistance' ( smooth in unsized 4-element array of float ClipDistance)
0:18 Constant:
0:18 3 (const int)
0:23 Function Definition: foo( ( global void)
@ -381,7 +381,7 @@ ERROR: node is still EOpNull!
0:? 'fflat' ( flat in float)
0:? 'fsmooth' ( smooth in float)
0:? 'fnop' ( noperspective in float)
0:? 'gl_ClipDistance' ( smooth in implicitly-sized array of float ClipDistance)
0:? 'gl_ClipDistance' ( smooth in unsized 4-element array of float ClipDistance)
0:? 'sampC' ( uniform samplerCube)
0:? 'gl_Color' ( in 4-component vector of float Color)
0:? 'samp2D' ( uniform sampler2D)

View File

@ -113,7 +113,7 @@ ERROR: node is still EOpNull!
0:45 'gl_VertexID' ( gl_VertexId int VertexId)
0:46 move second child to first child ( temp float)
0:46 direct index ( smooth temp float ClipDistance)
0:46 'gl_ClipDistance' ( smooth out implicitly-sized array of float ClipDistance)
0:46 'gl_ClipDistance' ( smooth out unsized 2-element array of float ClipDistance)
0:46 Constant:
0:46 1 (const int)
0:46 Constant:
@ -132,7 +132,7 @@ ERROR: node is still EOpNull!
0:66 'gl_DepthRange' ( uniform structure{ global float near, global float far, global float diff})
0:66 Constant:
0:66 1 (const int)
0:67 'gl_TexCoord' ( smooth out implicitly-sized array of 4-component vector of float TexCoord)
0:67 'gl_TexCoord' ( smooth out unsized 1-element array of 4-component vector of float TexCoord)
0:68 'gl_FogFragCoord' ( smooth out float FogFragCoord)
0:69 'gl_FrontColor' ( smooth out 4-component vector of float FrontColor)
0:? Linker Objects
@ -145,8 +145,8 @@ ERROR: node is still EOpNull!
0:? 'c3D' ( in 3-component vector of float)
0:? 'c4D' ( smooth temp 4-component vector of float)
0:? 'v4' ( uniform 4-component vector of float)
0:? 'gl_ClipDistance' ( smooth out implicitly-sized array of float ClipDistance)
0:? 'gl_TexCoord' ( smooth out implicitly-sized array of 4-component vector of float TexCoord)
0:? 'gl_ClipDistance' ( smooth out unsized 2-element array of float ClipDistance)
0:? 'gl_TexCoord' ( smooth out unsized 1-element array of 4-component vector of float TexCoord)
0:? 'abcdef' ( global int)
0:? 'qrstuv' ( global int)
0:? 'gl_VertexID' ( gl_VertexId int VertexId)

View File

@ -52,7 +52,7 @@ ERROR: node is still EOpNull!
0:17 'gl_DepthRange' ( uniform structure{ global float near, global float far, global float diff})
0:17 Constant:
0:17 1 (const int)
0:18 'gl_TexCoord' ( smooth out implicitly-sized array of 4-component vector of float TexCoord)
0:18 'gl_TexCoord' ( smooth out unsized 1-element array of 4-component vector of float TexCoord)
0:19 'gl_FogFragCoord' ( smooth out float FogFragCoord)
0:20 'gl_FrontColor' ( smooth out 4-component vector of float FrontColor)
0:48 Function Definition: foo( ( global void)
@ -133,7 +133,7 @@ ERROR: node is still EOpNull!
0:? Linker Objects
0:? 'sbuf' ( uniform isamplerBuffer)
0:? 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform int anonMem})
0:? 'gl_TexCoord' ( smooth out implicitly-sized array of 4-component vector of float TexCoord)
0:? 'gl_TexCoord' ( smooth out unsized 1-element array of 4-component vector of float TexCoord)
0:? 'gl_Position' ( smooth out 4-component vector of float)
0:? 'locBad' (layout( location=9) in 4-component vector of float)
0:? 'loc' (layout( location=9) in 4-component vector of float)

View File

@ -67,16 +67,16 @@ ERROR: node is still EOpNull!
0:32 0 (const int)
0:33 move second child to first child ( temp float)
0:33 direct index (layout( stream=0) temp float ClipDistance)
0:33 gl_ClipDistance: direct index for structure (layout( stream=0) out implicitly-sized array of float ClipDistance)
0:33 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:33 gl_ClipDistance: direct index for structure (layout( stream=0) out unsized 4-element array of float ClipDistance)
0:33 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 4-element array of float ClipDistance gl_ClipDistance})
0:33 Constant:
0:33 2 (const uint)
0:33 Constant:
0:33 3 (const int)
0:33 direct index ( temp float ClipDistance)
0:33 gl_ClipDistance: direct index for structure ( in implicitly-sized array of float ClipDistance)
0:33 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:33 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:33 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance)
0:33 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
@ -85,24 +85,24 @@ ERROR: node is still EOpNull!
0:33 2 (const int)
0:34 move second child to first child ( temp 4-component vector of float)
0:34 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position)
0:34 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:34 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 4-element array of float ClipDistance gl_ClipDistance})
0:34 Constant:
0:34 0 (const uint)
0:34 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:34 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:34 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:34 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:34 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:34 Constant:
0:34 0 (const int)
0:34 Constant:
0:34 0 (const int)
0:35 move second child to first child ( temp float)
0:35 gl_PointSize: direct index for structure (layout( stream=0) gl_PointSize float PointSize)
0:35 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:35 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 4-element array of float ClipDistance gl_ClipDistance})
0:35 Constant:
0:35 1 (const uint)
0:35 gl_PointSize: direct index for structure ( in float PointSize)
0:35 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:35 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:35 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:35 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:35 Constant:
0:35 3 (const int)
0:35 Constant:
@ -151,8 +151,8 @@ ERROR: node is still EOpNull!
0:? 'fromV' ( in 4-element array of block{ in 3-component vector of float color})
0:? 'toF' (layout( stream=0) out block{layout( stream=0) out 3-component vector of float color})
0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-component vector of float color})
0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:? 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 4-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:? 'ov0' (layout( stream=0) out 4-component vector of float)
0:? 'ov4' (layout( stream=4) out 4-component vector of float)
0:? 'o1v0' (layout( stream=0) out 4-component vector of float)

View File

@ -16,8 +16,8 @@ vertices = 4
0:20 move second child to first child ( temp 4-component vector of float)
0:20 'p' ( temp 4-component vector of float)
0:20 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:20 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:20 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:20 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:20 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:20 Constant:
0:20 1 (const int)
0:20 Constant:
@ -26,8 +26,8 @@ vertices = 4
0:21 move second child to first child ( temp float)
0:21 'ps' ( temp float)
0:21 gl_PointSize: direct index for structure ( in float PointSize)
0:21 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:21 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:21 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:21 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:21 Constant:
0:21 1 (const int)
0:21 Constant:
@ -36,9 +36,9 @@ vertices = 4
0:22 move second child to first child ( temp float)
0:22 'cd' ( temp float)
0:22 direct index ( temp float ClipDistance)
0:22 gl_ClipDistance: direct index for structure ( in implicitly-sized array of float ClipDistance)
0:22 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:22 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:22 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance)
0:22 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:22 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:22 Constant:
0:22 1 (const int)
0:22 Constant:
@ -59,25 +59,25 @@ vertices = 4
0:26 'gl_InvocationID' ( in int InvocationID)
0:28 move second child to first child ( temp 4-component vector of float)
0:28 gl_Position: direct index for structure ( out 4-component vector of float Position)
0:28 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:28 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:28 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:28 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:28 'gl_InvocationID' ( in int InvocationID)
0:28 Constant:
0:28 0 (const int)
0:28 'p' ( temp 4-component vector of float)
0:29 move second child to first child ( temp float)
0:29 gl_PointSize: direct index for structure ( out float PointSize)
0:29 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:29 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:29 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:29 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:29 'gl_InvocationID' ( in int InvocationID)
0:29 Constant:
0:29 1 (const int)
0:29 'ps' ( temp float)
0:30 move second child to first child ( temp float)
0:30 direct index ( temp float ClipDistance)
0:30 gl_ClipDistance: direct index for structure ( out implicitly-sized array of float ClipDistance)
0:30 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:30 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:30 gl_ClipDistance: direct index for structure ( out unsized 2-element array of float ClipDistance)
0:30 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:30 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:30 'gl_InvocationID' ( in int InvocationID)
0:30 Constant:
0:30 2 (const int)
@ -99,7 +99,7 @@ vertices = 4
0:33 Constant:
0:33 1.300000
0:? Linker Objects
0:? 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:? 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:? 'outa' ( global 4-element array of int)
0:? 'patchOut' ( patch out 4-component vector of float)
@ -129,8 +129,8 @@ ERROR: node is still EOpNull!
0:22 move second child to first child ( temp 4-component vector of float)
0:22 'p' ( temp 4-component vector of float)
0:22 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:22 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:22 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:22 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:22 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:22 Constant:
0:22 1 (const int)
0:22 Constant:
@ -139,8 +139,8 @@ ERROR: node is still EOpNull!
0:23 move second child to first child ( temp float)
0:23 'ps' ( temp float)
0:23 gl_PointSize: direct index for structure ( in float PointSize)
0:23 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:23 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:23 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:23 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:23 Constant:
0:23 1 (const int)
0:23 Constant:
@ -149,9 +149,9 @@ ERROR: node is still EOpNull!
0:24 move second child to first child ( temp float)
0:24 'cd' ( temp float)
0:24 direct index ( temp float ClipDistance)
0:24 gl_ClipDistance: direct index for structure ( in implicitly-sized array of float ClipDistance)
0:24 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:24 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:24 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance)
0:24 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:24 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
@ -186,20 +186,20 @@ ERROR: node is still EOpNull!
0:30 1 (const int)
0:32 move second child to first child ( temp 4-component vector of float)
0:32 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:32 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:32 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance})
0:32 Constant:
0:32 0 (const uint)
0:32 'p' ( temp 4-component vector of float)
0:33 move second child to first child ( temp float)
0:33 gl_PointSize: direct index for structure ( gl_PointSize float PointSize)
0:33 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:33 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance})
0:33 Constant:
0:33 1 (const uint)
0:33 'ps' ( temp float)
0:34 move second child to first child ( temp float)
0:34 direct index ( temp float ClipDistance)
0:34 gl_ClipDistance: direct index for structure ( out implicitly-sized array of float ClipDistance)
0:34 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:34 gl_ClipDistance: direct index for structure ( out unsized 3-element array of float ClipDistance)
0:34 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance})
0:34 Constant:
0:34 2 (const uint)
0:34 Constant:
@ -207,7 +207,7 @@ ERROR: node is still EOpNull!
0:34 'cd' ( temp float)
0:? Linker Objects
0:? 'patchIn' ( patch in 4-component vector of float)
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance})
400.tesc
ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
@ -255,8 +255,8 @@ ERROR: node is still EOpNull!
0:23 move second child to first child ( temp 4-component vector of float)
0:23 'p' ( temp 4-component vector of float)
0:23 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:23 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:23 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:23 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:23 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:23 Constant:
0:23 1 (const int)
0:23 Constant:
@ -265,8 +265,8 @@ ERROR: node is still EOpNull!
0:24 move second child to first child ( temp float)
0:24 'ps' ( temp float)
0:24 gl_PointSize: direct index for structure ( in float PointSize)
0:24 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:24 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:24 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:24 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
@ -275,9 +275,9 @@ ERROR: node is still EOpNull!
0:25 move second child to first child ( temp float)
0:25 'cd' ( temp float)
0:25 direct index ( temp float ClipDistance)
0:25 gl_ClipDistance: direct index for structure ( in implicitly-sized array of float ClipDistance)
0:25 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:25 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:25 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance)
0:25 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:25 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:25 Constant:
0:25 1 (const int)
0:25 Constant:
@ -298,25 +298,25 @@ ERROR: node is still EOpNull!
0:29 'gl_InvocationID' ( in int InvocationID)
0:31 move second child to first child ( temp 4-component vector of float)
0:31 gl_Position: direct index for structure ( out 4-component vector of float Position)
0:31 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:31 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:31 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:31 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:31 'gl_InvocationID' ( in int InvocationID)
0:31 Constant:
0:31 0 (const int)
0:31 'p' ( temp 4-component vector of float)
0:32 move second child to first child ( temp float)
0:32 gl_PointSize: direct index for structure ( out float PointSize)
0:32 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:32 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:32 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:32 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:32 'gl_InvocationID' ( in int InvocationID)
0:32 Constant:
0:32 1 (const int)
0:32 'ps' ( temp float)
0:33 move second child to first child ( temp float)
0:33 direct index ( temp float ClipDistance)
0:33 gl_ClipDistance: direct index for structure ( out implicitly-sized array of float ClipDistance)
0:33 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:33 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:33 gl_ClipDistance: direct index for structure ( out unsized 2-element array of float ClipDistance)
0:33 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_InvocationID' ( in int InvocationID)
0:33 Constant:
0:33 2 (const int)
@ -386,8 +386,8 @@ ERROR: node is still EOpNull!
0:67 Function Parameters:
0:69 Sequence
0:69 gl_PointSize: direct index for structure ( out float PointSize)
0:69 direct index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:69 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:69 direct index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:69 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:69 Constant:
0:69 4 (const int)
0:69 Constant:
@ -422,7 +422,7 @@ ERROR: node is still EOpNull!
0:123 'gl_DeviceIndex' ( in int DeviceIndex)
0:124 'gl_ViewIndex' ( in int ViewIndex)
0:? Linker Objects
0:? 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:? 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:? 'outa' ( global 4-element array of int)
0:? 'patchIn' ( patch in 4-component vector of float)
0:? 'patchOut' ( patch out 4-component vector of float)
@ -453,7 +453,7 @@ ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch
ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch
ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch
ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample)
ERROR: 0:54: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized
ERROR: 0:54: 'gl_PerVertex' : block already declared with size, can't redeclare as unsized
ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
ERROR: 0:64: 'quads' : cannot apply to 'out'
ERROR: 0:64: 'cw' : can only apply to 'in'
@ -499,8 +499,8 @@ ERROR: node is still EOpNull!
0:32 move second child to first child ( temp 4-component vector of float)
0:32 'p' ( temp 4-component vector of float)
0:32 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:32 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:32 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:32 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:32 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:32 Constant:
0:32 1 (const int)
0:32 Constant:
@ -509,8 +509,8 @@ ERROR: node is still EOpNull!
0:33 move second child to first child ( temp float)
0:33 'ps' ( temp float)
0:33 gl_PointSize: direct index for structure ( in float PointSize)
0:33 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:33 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:33 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
@ -519,9 +519,9 @@ ERROR: node is still EOpNull!
0:34 move second child to first child ( temp float)
0:34 'cd' ( temp float)
0:34 direct index ( temp float ClipDistance)
0:34 gl_ClipDistance: direct index for structure ( in implicitly-sized array of float ClipDistance)
0:34 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:34 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:34 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance)
0:34 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:34 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:34 Constant:
0:34 1 (const int)
0:34 Constant:
@ -556,20 +556,20 @@ ERROR: node is still EOpNull!
0:40 1 (const int)
0:42 move second child to first child ( temp 4-component vector of float)
0:42 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:42 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:42 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance})
0:42 Constant:
0:42 0 (const uint)
0:42 'p' ( temp 4-component vector of float)
0:43 move second child to first child ( temp float)
0:43 gl_PointSize: direct index for structure ( gl_PointSize float PointSize)
0:43 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:43 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance})
0:43 Constant:
0:43 1 (const uint)
0:43 'ps' ( temp float)
0:44 move second child to first child ( temp float)
0:44 direct index ( temp float ClipDistance)
0:44 gl_ClipDistance: direct index for structure ( out implicitly-sized array of float ClipDistance)
0:44 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:44 gl_ClipDistance: direct index for structure ( out unsized 3-element array of float ClipDistance)
0:44 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance})
0:44 Constant:
0:44 2 (const uint)
0:44 Constant:
@ -588,7 +588,7 @@ ERROR: node is still EOpNull!
0:? Linker Objects
0:? 'patchIn' ( patch in 4-component vector of float)
0:? 'patchOut' ( patch out 4-component vector of float)
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance})
0:? 'badp1' ( smooth patch in 4-component vector of float)
0:? 'badp2' ( flat patch in 4-component vector of float)
0:? 'badp3' ( noperspective patch in 4-component vector of float)
@ -620,7 +620,7 @@ ERROR: node is still EOpNull!
0:8 Function Definition: main( ( global void)
0:8 Function Parameters:
0:? Linker Objects
0:? 'gl_out' ( out implicitly-sized array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:? 'gl_out' ( out unsized 1-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:? 'outa' ( global 1-element array of int)
0:? 'patchOut' ( patch out 4-component vector of float)
@ -646,8 +646,8 @@ ERROR: node is still EOpNull!
0:17 move second child to first child ( temp 4-component vector of float)
0:17 'p' ( temp 4-component vector of float)
0:17 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:17 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:17 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:17 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:17 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:17 Constant:
0:17 1 (const int)
0:17 Constant:
@ -656,8 +656,8 @@ ERROR: node is still EOpNull!
0:18 move second child to first child ( temp float)
0:18 'ps' ( temp float)
0:18 gl_PointSize: direct index for structure ( in float PointSize)
0:18 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:18 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:18 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:18 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:18 Constant:
0:18 1 (const int)
0:18 Constant:
@ -666,9 +666,9 @@ ERROR: node is still EOpNull!
0:19 move second child to first child ( temp float)
0:19 'cd' ( temp float)
0:19 direct index ( temp float ClipDistance)
0:19 gl_ClipDistance: direct index for structure ( in implicitly-sized array of float ClipDistance)
0:19 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:19 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:19 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance)
0:19 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:19 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:19 Constant:
0:19 1 (const int)
0:19 Constant:
@ -883,7 +883,7 @@ ERROR: node is still EOpNull!
0:? 'b3' ( global 2-element array of 4-component vector of float)
0:? 'b4' ( global 2-element array of 4-component vector of float)
0:? 'c3' ( global 4X2 matrix of float)
0:? 'd2' ( global implicitly-sized array of structure{ global float s, global float t})
0:? 'd2' ( global unsized 1-element array of structure{ global float s, global float t})
0:? 'b5' ( global 5-element array of float)
0:? 'single1' ( global structure{ global int f})
0:? 'single2' ( global structure{ global 2-component vector of uint v})
@ -943,7 +943,7 @@ ERROR: Linking tessellation control stage: Multiple function bodies in multiple
ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
main(
ERROR: Linking tessellation control stage: Types must match:
gl_out: " out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}" versus " out implicitly-sized array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}"
gl_out: " out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}" versus " out unsized 1-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance}"
ERROR: Linking tessellation control stage: Types must match:
outa: " global 4-element array of int" versus " global 1-element array of int"
ERROR: Linking tessellation control stage: can't handle multiple entry points per stage
@ -956,7 +956,7 @@ ERROR: Linking tessellation control stage: Multiple function bodies in multiple
ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
main(
ERROR: Linking tessellation control stage: Types must match:
gl_out: " out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}" versus " out 3-element array of block{ out 4-component vector of float Position gl_Position}"
gl_out: " out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}" versus " out 3-element array of block{ out 4-component vector of float Position gl_Position}"
Linked tessellation evaluation stage:

View File

@ -11,20 +11,20 @@ ERROR: node is still EOpNull!
0:15 Sequence
0:15 move second child to first child ( temp 4-component vector of float)
0:15 gl_Position: direct index for structure ( invariant gl_Position 4-component vector of float Position)
0:15 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:15 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:15 Constant:
0:15 0 (const uint)
0:15 'iv4' ( in 4-component vector of float)
0:16 move second child to first child ( temp float)
0:16 gl_PointSize: direct index for structure ( gl_PointSize float PointSize)
0:16 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:16 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:16 Constant:
0:16 1 (const uint)
0:16 'ps' ( uniform float)
0:17 move second child to first child ( temp float)
0:17 direct index ( temp float ClipDistance)
0:17 gl_ClipDistance: direct index for structure ( out 4-element array of float ClipDistance)
0:17 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:17 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:17 Constant:
0:17 2 (const uint)
0:17 Constant:
@ -35,14 +35,14 @@ ERROR: node is still EOpNull!
0:17 0 (const int)
0:18 move second child to first child ( temp 4-component vector of float)
0:18 gl_ClipVertex: direct index for structure ( gl_ClipVertex 4-component vector of float ClipVertex)
0:18 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:18 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:18 Constant:
0:18 3 (const uint)
0:18 'iv4' ( in 4-component vector of float)
0:? Linker Objects
0:? 'iv4' ( in 4-component vector of float)
0:? 'ps' ( uniform float)
0:? 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform implicitly-sized array of int a})
0:? 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform unsized 1-element array of int a})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)

View File

@ -26,6 +26,7 @@ ERROR: 0:101: 'arrays of arrays' : not supported for this version or the enabled
ERROR: 0:102: 'arrays of arrays' : not supported for this version or the enabled extensions
ERROR: 0:102: 'arrays of arrays' : not supported for this version or the enabled extensions
ERROR: 0:103: 'arrays of arrays' : not supported for this version or the enabled extensions
ERROR: 0:103: 'arrays of arrays' : not supported for this version or the enabled extensions
ERROR: 0:100: 'arrays of arrays' : not supported for this version or the enabled extensions
ERROR: 0:100: 'array-of-array of block' : not supported with this profile: es
ERROR: 0:111: 'variable indexing fragment shader output array' : not supported with this profile: es
@ -44,7 +45,7 @@ ERROR: 0:157: 'invariant' : can only apply to an output
ERROR: 0:158: 'invariant' : can only apply to an output
ERROR: 0:160: 'imageBuffer' : Reserved word.
ERROR: 0:160: '' : syntax error, unexpected IMAGEBUFFER, expecting COMMA or SEMICOLON
ERROR: 45 compilation errors. No code generated.
ERROR: 46 compilation errors. No code generated.
Shader version: 300
@ -392,7 +393,7 @@ ERROR: node is still EOpNull!
0:? 'sc' ( out lowp 3-component vector of float)
0:? 'sf' ( out lowp float)
0:? 'arrayedSampler' ( uniform 5-element array of lowp sampler2D)
0:? 'multiInst' (layout( column_major shared) uniform 2-element array of 3-element array of block{layout( column_major shared) uniform 2-element array of mediump int a, layout( column_major shared) uniform 2-element array of 3-element array of mediump int b, layout( column_major shared) uniform 2-element array of 3-element array of mediump int c})
0:? 'multiInst' (layout( column_major shared) uniform 2-element array of 3-element array of block{layout( column_major shared) uniform 3-element array of 2-element array of mediump int a, layout( column_major shared) uniform 2-element array of 3-element array of mediump int b, layout( column_major shared) uniform 2-element array of 3-element array of mediump int c})
0:? 'colors' ( out 4-element array of lowp 4-component vector of float)
0:? 'st1' ( uniform structure{ global mediump int i, global lowp sampler2D s})
0:? 'st2' ( uniform structure{ global mediump int i, global lowp sampler2D s})
@ -623,7 +624,7 @@ ERROR: node is still EOpNull!
0:? 'sc' ( out lowp 3-component vector of float)
0:? 'sf' ( out lowp float)
0:? 'arrayedSampler' ( uniform 5-element array of lowp sampler2D)
0:? 'multiInst' (layout( column_major shared) uniform 2-element array of 3-element array of block{layout( column_major shared) uniform 2-element array of mediump int a, layout( column_major shared) uniform 2-element array of 3-element array of mediump int b, layout( column_major shared) uniform 2-element array of 3-element array of mediump int c})
0:? 'multiInst' (layout( column_major shared) uniform 2-element array of 3-element array of block{layout( column_major shared) uniform 3-element array of 2-element array of mediump int a, layout( column_major shared) uniform 2-element array of 3-element array of mediump int b, layout( column_major shared) uniform 2-element array of 3-element array of mediump int c})
0:? 'colors' ( out 4-element array of lowp 4-component vector of float)
0:? 'st1' ( uniform structure{ global mediump int i, global lowp sampler2D s})
0:? 'st2' ( uniform structure{ global mediump int i, global lowp sampler2D s})

View File

@ -320,9 +320,9 @@ ERROR: node is still EOpNull!
0:? 'rep2' ( centroid smooth sample out highp 4-component vector of float)
0:? 'rep3' ( in highp 4-component vector of float)
0:? 's' ( smooth out structure{ global highp 3-component vector of float c, global highp float f})
0:? 'badsize' ( global implicitly-sized array of highp float)
0:? 'badsize2' ( global implicitly-sized array of highp float)
0:? 'ubInst' (layout( column_major shared) uniform implicitly-sized array of block{layout( column_major shared) uniform implicitly-sized array of highp int a})
0:? 'badsize' ( global unsized 1-element array of highp float)
0:? 'badsize2' ( global unsized 1-element array of highp float)
0:? 'ubInst' (layout( column_major shared) uniform unsized 1-element array of block{layout( column_major shared) uniform unsized 1-element array of highp int a})
0:? 'okayA' ( global 2-element array of highp float)
0:? 'newV' ( invariant smooth out highp 3-component vector of float)
0:? 'invIn' ( invariant in highp 4-component vector of float)

View File

@ -102,13 +102,13 @@ ERROR: node is still EOpNull!
0:35 GroupMemoryBarrier ( global void)
0:36 move second child to first child ( temp highp int)
0:36 value: direct index for structure (layout( column_major shared) buffer highp int)
0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer runtime-sized array of highp float values})
0:36 Constant:
0:36 0 (const uint)
0:36 Convert float to int ( temp highp int)
0:36 indirect index (layout( column_major shared) temp highp float)
0:36 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp float)
0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:36 values: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp float)
0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer runtime-sized array of highp float values})
0:36 Constant:
0:36 1 (const uint)
0:36 'gl_LocalInvocationIndex' ( in highp uint LocalInvocationIndex)
@ -117,8 +117,8 @@ ERROR: node is still EOpNull!
0:61 Sequence
0:61 move second child to first child ( temp highp float)
0:61 direct index (layout( column_major shared) temp highp float)
0:61 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp float)
0:61 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:61 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float)
0:61 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:61 Constant:
0:61 1 (const int)
0:61 Constant:
@ -126,8 +126,8 @@ ERROR: node is still EOpNull!
0:61 Constant:
0:61 4.700000
0:62 array length ( temp int)
0:62 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp float)
0:62 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:62 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float)
0:62 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:62 Constant:
0:62 1 (const int)
0:63 Pre-Increment ( temp highp 4-component vector of float)
@ -280,8 +280,8 @@ ERROR: node is still EOpNull!
0:194 move second child to first child ( temp highp float)
0:194 'g' ( temp highp float)
0:194 direct index (layout( column_major shared) temp highp float)
0:194 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp float)
0:194 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:194 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float)
0:194 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:194 Constant:
0:194 1 (const int)
0:194 Constant:
@ -290,24 +290,24 @@ ERROR: node is still EOpNull!
0:195 move second child to first child ( temp highp float)
0:195 'f' ( temp highp float)
0:195 direct index (layout( column_major shared) temp highp float)
0:195 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp float)
0:195 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:195 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float)
0:195 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:195 Constant:
0:195 1 (const int)
0:195 Constant:
0:195 2 (const int)
0:196 Pre-Increment ( temp highp float)
0:196 direct index (layout( column_major shared) temp highp float)
0:196 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp float)
0:196 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:196 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float)
0:196 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:196 Constant:
0:196 1 (const int)
0:196 Constant:
0:196 2 (const int)
0:197 Post-Decrement ( temp highp float)
0:197 direct index (layout( column_major shared) temp highp float)
0:197 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp float)
0:197 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:197 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float)
0:197 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:197 Constant:
0:197 1 (const int)
0:197 Constant:
@ -315,16 +315,16 @@ ERROR: node is still EOpNull!
0:198 add ( temp highp float)
0:198 'f' ( temp highp float)
0:198 direct index (layout( column_major shared) temp highp float)
0:198 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp float)
0:198 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:198 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float)
0:198 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:198 Constant:
0:198 1 (const int)
0:198 Constant:
0:198 2 (const int)
0:199 subtract ( temp highp float)
0:199 direct index (layout( column_major shared) temp highp float)
0:199 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp float)
0:199 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:199 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float)
0:199 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:199 Constant:
0:199 1 (const int)
0:199 Constant:
@ -337,8 +337,8 @@ ERROR: node is still EOpNull!
0:201 'f' ( temp highp float)
0:201 false case
0:201 direct index (layout( column_major shared) temp highp float)
0:201 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp float)
0:201 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:201 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float)
0:201 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:201 Constant:
0:201 1 (const int)
0:201 Constant:
@ -348,8 +348,8 @@ ERROR: node is still EOpNull!
0:202 'b' ( temp bool)
0:202 true case
0:202 direct index (layout( column_major shared) temp highp float)
0:202 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp float)
0:202 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:202 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float)
0:202 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:202 Constant:
0:202 1 (const int)
0:202 Constant:
@ -361,8 +361,8 @@ ERROR: node is still EOpNull!
0:203 Compare Equal ( temp bool)
0:203 'f' ( temp highp float)
0:203 direct index (layout( column_major shared) temp highp float)
0:203 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp float)
0:203 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:203 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float)
0:203 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:203 Constant:
0:203 1 (const int)
0:203 Constant:
@ -375,8 +375,8 @@ ERROR: node is still EOpNull!
0:205 Compare Greater Than or Equal ( temp bool)
0:205 'f' ( temp highp float)
0:205 direct index (layout( column_major shared) temp highp float)
0:205 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp float)
0:205 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:205 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float)
0:205 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:205 Constant:
0:205 1 (const int)
0:205 Constant:
@ -389,8 +389,8 @@ ERROR: node is still EOpNull!
0:207 direct index ( temp highp float)
0:207 Construct vec3 ( temp highp 3-component vector of float)
0:207 direct index (layout( column_major shared) temp highp float)
0:207 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp float)
0:207 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:207 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float)
0:207 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:207 Constant:
0:207 1 (const int)
0:207 Constant:
@ -399,13 +399,13 @@ ERROR: node is still EOpNull!
0:207 0 (const int)
0:208 Bitwise not ( temp highp int)
0:208 value: direct index for structure (layout( column_major shared) buffer highp int)
0:208 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:208 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:208 Constant:
0:208 0 (const int)
0:209 move second child to first child ( temp highp float)
0:209 direct index (layout( column_major shared) temp highp float)
0:209 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp float)
0:209 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:209 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float)
0:209 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:209 Constant:
0:209 1 (const int)
0:209 Constant:
@ -418,21 +418,21 @@ ERROR: node is still EOpNull!
0:221 move second child to first child ( temp highp float)
0:221 'g' ( temp highp float)
0:221 direct index (layout( column_major shared) temp highp float)
0:221 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp float)
0:221 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:221 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float)
0:221 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:221 Constant:
0:221 1 (const int)
0:221 Constant:
0:221 2 (const int)
0:222 Bitwise not ( temp highp int)
0:222 value: direct index for structure (layout( column_major shared) buffer highp int)
0:222 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:222 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:222 Constant:
0:222 0 (const int)
0:223 move second child to first child ( temp highp float)
0:223 direct index (layout( column_major shared) temp highp float)
0:223 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp float)
0:223 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:223 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float)
0:223 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:223 Constant:
0:223 1 (const int)
0:223 Constant:
@ -441,7 +441,7 @@ ERROR: node is still EOpNull!
0:223 3.400000
0:224 move second child to first child ( temp highp int)
0:224 value: direct index for structure (layout( column_major shared) buffer highp int)
0:224 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:224 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:224 Constant:
0:224 0 (const int)
0:224 Constant:
@ -463,8 +463,8 @@ ERROR: node is still EOpNull!
0:? 4096 (const uint)
0:? 'total' ( const highp int)
0:? 66592 (const int)
0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:? 'invalid' (layout( column_major shared) buffer block{layout( column_major shared) buffer implicitly-sized array of highp float values, layout( column_major shared) buffer highp int value})
0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer runtime-sized array of highp float values})
0:? 'invalid' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 1-element array of highp float values, layout( column_major shared) buffer highp int value})
0:? 'v3' (layout( location=2) in highp 3-component vector of float)
0:? 'f' ( in highp float)
0:? 'fo' ( out highp float)
@ -474,7 +474,7 @@ ERROR: node is still EOpNull!
0:? 'arrX' ( global 2-element array of highp int)
0:? 'arrY' ( global 1-element array of highp int)
0:? 'arrZ' ( global 4096-element array of highp int)
0:? 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:? 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:? 'v' ( buffer highp 4-component vector of float)
0:? 'us2dbad' ( uniform mediump usampler2D)
0:? 'us2d' ( uniform highp usampler2D)
@ -513,8 +513,8 @@ ERROR: node is still EOpNull!
0:? 'badQ1' (layout( rgba32f) coherent volatile restrict uniform highp image2D)
0:? 'badQ2' (layout( rgba8i) coherent volatile restrict uniform highp iimage2D)
0:? 'badQ3' (layout( rgba16ui) coherent volatile restrict uniform highp uimage2D)
0:? 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:? 'multio' (layout( column_major shared) buffer block{layout( column_major shared) readonly buffer highp int value, layout( column_major shared) writeonly buffer implicitly-sized array of highp float values})
0:? 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:? 'multio' (layout( column_major shared) buffer block{layout( column_major shared) readonly buffer highp int value, layout( column_major shared) writeonly buffer unsized 1-element array of highp float values})
0:? 'inbi' ( in block{ in highp int a})
0:? 'outbi' ( out block{ out highp int a})
0:? 't__' ( global highp float)
@ -540,13 +540,13 @@ ERROR: node is still EOpNull!
0:35 GroupMemoryBarrier ( global void)
0:36 move second child to first child ( temp highp int)
0:36 value: direct index for structure (layout( column_major shared) buffer highp int)
0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer runtime-sized array of highp float values})
0:36 Constant:
0:36 0 (const uint)
0:36 Convert float to int ( temp highp int)
0:36 indirect index (layout( column_major shared) temp highp float)
0:36 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp float)
0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:36 values: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp float)
0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer runtime-sized array of highp float values})
0:36 Constant:
0:36 1 (const uint)
0:36 'gl_LocalInvocationIndex' ( in highp uint LocalInvocationIndex)
@ -557,8 +557,8 @@ ERROR: node is still EOpNull!
0:? 4096 (const uint)
0:? 'total' ( const highp int)
0:? 66592 (const int)
0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:? 'invalid' (layout( column_major shared) buffer block{layout( column_major shared) buffer implicitly-sized array of highp float values, layout( column_major shared) buffer highp int value})
0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer runtime-sized array of highp float values})
0:? 'invalid' (layout( column_major shared) buffer block{layout( column_major shared) buffer 1-element array of highp float values, layout( column_major shared) buffer highp int value})
0:? 'v3' (layout( location=2) in highp 3-component vector of float)
0:? 'f' ( in highp float)
0:? 'fo' ( out highp float)
@ -568,7 +568,7 @@ ERROR: node is still EOpNull!
0:? 'arrX' ( global 2-element array of highp int)
0:? 'arrY' ( global 1-element array of highp int)
0:? 'arrZ' ( global 4096-element array of highp int)
0:? 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:? 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:? 'v' ( buffer highp 4-component vector of float)
0:? 'us2dbad' ( uniform mediump usampler2D)
0:? 'us2d' ( uniform highp usampler2D)
@ -607,8 +607,8 @@ ERROR: node is still EOpNull!
0:? 'badQ1' (layout( rgba32f) coherent volatile restrict uniform highp image2D)
0:? 'badQ2' (layout( rgba8i) coherent volatile restrict uniform highp iimage2D)
0:? 'badQ3' (layout( rgba16ui) coherent volatile restrict uniform highp uimage2D)
0:? 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer implicitly-sized array of highp float values})
0:? 'multio' (layout( column_major shared) buffer block{layout( column_major shared) readonly buffer highp int value, layout( column_major shared) writeonly buffer implicitly-sized array of highp float values})
0:? 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values})
0:? 'multio' (layout( column_major shared) buffer block{layout( column_major shared) readonly buffer highp int value, layout( column_major shared) writeonly buffer unsized 1-element array of highp float values})
0:? 'inbi' ( in block{ in highp int a})
0:? 'outbi' ( out block{ out highp int a})
0:? 't__' ( global highp float)

View File

@ -569,12 +569,12 @@ ERROR: node is still EOpNull!
0:259 move second child to first child ( temp highp int)
0:259 'a3' ( temp highp int)
0:259 direct index ( flat temp highp int SampleMaskIn)
0:259 'gl_SampleMaskIn' ( flat in implicitly-sized array of highp int SampleMaskIn)
0:259 'gl_SampleMaskIn' ( flat in unsized 1-element array of highp int SampleMaskIn)
0:259 Constant:
0:259 0 (const int)
0:260 move second child to first child ( temp highp int)
0:260 direct index ( temp highp int SampleMaskIn)
0:260 'gl_SampleMask' ( out implicitly-sized array of highp int SampleMaskIn)
0:260 'gl_SampleMask' ( out unsized 1-element array of highp int SampleMaskIn)
0:260 Constant:
0:260 0 (const int)
0:260 'a3' ( temp highp int)
@ -597,12 +597,12 @@ ERROR: node is still EOpNull!
0:272 move second child to first child ( temp highp int)
0:272 'a3' ( temp highp int)
0:272 direct index ( flat temp highp int SampleMaskIn)
0:272 'gl_SampleMaskIn' ( flat in implicitly-sized array of highp int SampleMaskIn)
0:272 'gl_SampleMaskIn' ( flat in unsized 1-element array of highp int SampleMaskIn)
0:272 Constant:
0:272 0 (const int)
0:273 move second child to first child ( temp highp int)
0:273 direct index ( temp highp int SampleMaskIn)
0:273 'gl_SampleMask' ( out implicitly-sized array of highp int SampleMaskIn)
0:273 'gl_SampleMask' ( out unsized 1-element array of highp int SampleMaskIn)
0:273 Constant:
0:273 0 (const int)
0:273 'a3' ( temp highp int)
@ -1001,8 +1001,8 @@ ERROR: node is still EOpNull!
0:? 'CA5' ( uniform highp samplerCubeArrayShadow)
0:? 'CA6' ( uniform highp isamplerCubeArray)
0:? 'CA7' ( uniform highp usamplerCubeArray)
0:? 'gl_SampleMaskIn' ( flat in implicitly-sized array of highp int SampleMaskIn)
0:? 'gl_SampleMask' ( out implicitly-sized array of highp int SampleMaskIn)
0:? 'gl_SampleMaskIn' ( flat in unsized 1-element array of highp int SampleMaskIn)
0:? 'gl_SampleMask' ( out unsized 1-element array of highp int SampleMaskIn)
0:? 'im2Df' (layout( r32f) uniform highp image2D)
0:? 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:? 'im2Di' (layout( r32i) uniform highp iimage2D)

View File

@ -70,8 +70,8 @@ ERROR: node is still EOpNull!
0:25 move second child to first child ( temp highp 4-component vector of float)
0:25 'p' ( temp highp 4-component vector of float)
0:25 gl_Position: direct index for structure ( in highp 4-component vector of float Position)
0:25 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:25 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:25 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:25 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:25 Constant:
0:25 1 (const int)
0:25 Constant:
@ -80,8 +80,8 @@ ERROR: node is still EOpNull!
0:26 move second child to first child ( temp highp float)
0:26 'ps' ( temp highp float)
0:26 gl_PointSize: direct index for structure ( in highp float PointSize)
0:26 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:26 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:26 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:26 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:26 Constant:
0:26 1 (const int)
0:26 Constant:
@ -209,8 +209,8 @@ ERROR: node is still EOpNull!
0:114 move second child to first child ( temp highp float)
0:114 'ps' ( temp highp float)
0:114 gl_PointSize: direct index for structure ( in highp float PointSize)
0:114 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:114 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:114 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:114 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:114 Constant:
0:114 1 (const int)
0:114 Constant:
@ -357,7 +357,7 @@ ERROR: node is still EOpNull!
0:? 'inb' ( in 32-element array of highp 2-component vector of float)
0:? 'inc' ( in 32-element array of highp 2-component vector of float)
0:? 'ind' ( in 32-element array of highp 2-component vector of float)
0:? 'implA' ( patch out implicitly-sized array of highp float)
0:? 'implA' ( patch out unsized 1-element array of highp float)
0:? 'ivla' (layout( location=3) in 32-element array of highp 4-component vector of float)
0:? 'ivlb' (layout( location=4) in 32-element array of highp 4-component vector of float)
0:? 'ivlc' (layout( location=4) in 32-element array of highp 4-component vector of float)
@ -372,7 +372,7 @@ ERROR: node is still EOpNull!
0:? 'misSized' ( out 5-element array of highp float)
0:? 'okaySize' ( out 4-element array of highp float)
0:? 'pv3' ( noContraction temp highp 3-component vector of float)
0:? 'badpatchIName' ( patch out implicitly-sized array of block{ out highp float f})
0:? 'badpatchIName' ( patch out unsized 1-element array of block{ out highp float f})
0:? 'patchIName' ( patch out 4-element array of block{ out highp float f})

View File

@ -25,7 +25,7 @@ ERROR: 0:53: 'noperspective' : not supported for this version or the enabled ext
ERROR: 0:53: 'patch' : cannot use interpolation qualifiers with patch
ERROR: 0:54: 'sample' : Reserved word.
ERROR: 0:54: '' : can only have one auxiliary qualifier (centroid, patch, and sample)
ERROR: 0:58: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized
ERROR: 0:58: 'gl_PerVertex' : block already declared with size, can't redeclare as unsized
ERROR: 0:63: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
ERROR: 0:68: 'quads' : cannot apply to 'out'
ERROR: 0:68: 'cw' : can only apply to 'in'
@ -77,8 +77,8 @@ ERROR: node is still EOpNull!
0:36 move second child to first child ( temp highp 4-component vector of float)
0:36 'p' ( temp highp 4-component vector of float)
0:36 gl_Position: direct index for structure ( in highp 4-component vector of float Position)
0:36 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:36 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:36 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:36 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:36 Constant:
0:36 1 (const int)
0:36 Constant:
@ -87,8 +87,8 @@ ERROR: node is still EOpNull!
0:37 move second child to first child ( temp highp float)
0:37 'ps' ( temp highp float)
0:37 gl_PointSize: direct index for structure ( in highp float PointSize)
0:37 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:37 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:37 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:37 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:37 Constant:
0:37 1 (const int)
0:37 Constant:

View File

@ -7,12 +7,12 @@ ERROR: 0:48: 'constructor' : constructing non-array constituent from array argum
ERROR: 0:49: 'constructor' : array constructor argument not correct type to construct array element
ERROR: 0:62: '[' : array index out of range '4'
ERROR: 0:78: 'assign' : cannot convert from ' global 4-element array of 7-element array of highp float' to ' global 5-element array of 7-element array of highp float'
ERROR: 0:79: 'assign' : cannot convert from ' global 4-element array of 7-element array of highp float' to ' global implicitly-sized array of 7-element array of highp float'
ERROR: 0:79: 'assign' : cannot convert from ' global 4-element array of 7-element array of highp float' to ' global unsized 1-element array of 7-element array of highp float'
ERROR: 0:81: 'foo' : no matching overloaded function found
ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type ' global 4-element array of 7-element array of highp float' and a right operand of type ' global 5-element array of 7-element array of highp float' (or there is no acceptable conversion)
ERROR: 0:90: '[' : array index out of range '5'
ERROR: 0:94: '[' : index out of range '-1'
ERROR: 0:96: 'assign' : cannot convert from ' temp 3-element array of highp 4-component vector of float' to 'layout( column_major shared) buffer implicitly-sized array of highp 4-component vector of float'
ERROR: 0:96: 'assign' : cannot convert from ' temp 3-element array of highp 4-component vector of float' to 'layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float'
ERROR: 0:103: '' : array size required
ERROR: 0:104: '' : array size required
ERROR: 0:105: '' : array size required
@ -245,7 +245,7 @@ ERROR: node is still EOpNull!
0:77 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of highp float)
0:77 'g5' ( global 5-element array of 7-element array of highp float)
0:78 'g5' ( global 5-element array of 7-element array of highp float)
0:79 'gu' ( global implicitly-sized array of 7-element array of highp float)
0:79 'gu' ( global unsized 1-element array of 7-element array of highp float)
0:81 Constant:
0:81 0.000000
0:82 Function Call: bar(f1[5][7]; ( global void)
@ -275,9 +275,9 @@ ERROR: node is still EOpNull!
0:91 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of highp float)
0:91 'u' ( temp 5-element array of 7-element array of highp float)
0:94 direct index (layout( column_major shared) temp highp 4-component vector of float)
0:94 v: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp 4-component vector of float)
0:94 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer implicitly-sized array of highp float u, layout( column_major shared) buffer implicitly-sized array of highp 4-component vector of float v})
0:94 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer implicitly-sized array of highp float u, layout( column_major shared) buffer implicitly-sized array of highp 4-component vector of float v})
0:94 v: direct index for structure (layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float)
0:94 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v})
0:94 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v})
0:94 Constant:
0:94 1 (const int)
0:94 Constant:
@ -286,9 +286,9 @@ ERROR: node is still EOpNull!
0:94 -1 (const int)
0:95 move second child to first child ( temp highp 4-component vector of float)
0:95 direct index (layout( column_major shared) temp highp 4-component vector of float)
0:95 v: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp 4-component vector of float)
0:95 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer implicitly-sized array of highp float u, layout( column_major shared) buffer implicitly-sized array of highp 4-component vector of float v})
0:95 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer implicitly-sized array of highp float u, layout( column_major shared) buffer implicitly-sized array of highp 4-component vector of float v})
0:95 v: direct index for structure (layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float)
0:95 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v})
0:95 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v})
0:95 Constant:
0:95 1 (const int)
0:95 Constant:
@ -300,9 +300,9 @@ ERROR: node is still EOpNull!
0:95 4.300000
0:95 4.300000
0:95 4.300000
0:96 v: direct index for structure (layout( column_major shared) buffer implicitly-sized array of highp 4-component vector of float)
0:96 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer implicitly-sized array of highp float u, layout( column_major shared) buffer implicitly-sized array of highp 4-component vector of float v})
0:96 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer implicitly-sized array of highp float u, layout( column_major shared) buffer implicitly-sized array of highp 4-component vector of float v})
0:96 v: direct index for structure (layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float)
0:96 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v})
0:96 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v})
0:96 Constant:
0:96 1 (const int)
0:96 Constant:
@ -310,9 +310,9 @@ ERROR: node is still EOpNull!
0:98 Constant:
0:98 7 (const int)
0:99 array length ( temp int)
0:99 v: direct index for structure (layout( column_major shared) buffer implicitly-sized array of 7-element array of highp 4-component vector of float)
0:99 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
0:99 'name3' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
0:99 v: direct index for structure (layout( column_major shared) buffer unsized 2-element array of 7-element array of highp 4-component vector of float)
0:99 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer unsized 2-element array of 7-element array of highp 4-component vector of float v})
0:99 'name3' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer unsized 2-element array of 7-element array of highp 4-component vector of float v})
0:99 Constant:
0:99 0 (const int)
0:99 Constant:
@ -337,12 +337,12 @@ ERROR: node is still EOpNull!
0:120 Constant:
0:120 2 (const int)
0:? Linker Objects
0:? 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer implicitly-sized array of highp float u, layout( column_major shared) buffer implicitly-sized array of highp 4-component vector of float v})
0:? 'uname' (layout( column_major shared) uniform 3-element array of block{layout( column_major shared) uniform highp float u, layout( column_major shared) uniform implicitly-sized array of highp 4-component vector of float v})
0:? 'name2' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of 1-element array of highp 4-component vector of float v})
0:? 'name3' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
0:? 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v})
0:? 'uname' (layout( column_major shared) uniform 3-element array of block{layout( column_major shared) uniform highp float u, layout( column_major shared) uniform unsized 1-element array of highp 4-component vector of float v})
0:? 'name2' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer unsized 1-element array of 1-element array of highp 4-component vector of float v})
0:? 'name3' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer unsized 2-element array of 7-element array of highp 4-component vector of float v})
0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of highp float)
0:? 'gu' ( global implicitly-sized array of 7-element array of highp float)
0:? 'gu' ( global unsized 1-element array of 7-element array of highp float)
0:? 'g4' ( global 4-element array of 7-element array of highp float)
0:? 'g5' ( global 5-element array of 7-element array of highp float)
0:? 'inArray' ( in 2-element array of 3-element array of highp float)
@ -378,10 +378,10 @@ ERROR: node is still EOpNull!
0:13 2 (const uint)
0:13 'd' ( temp 3-element array of 2-element array of highp int)
0:? Linker Objects
0:? 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer implicitly-sized array of highp float u, layout( column_major shared) buffer implicitly-sized array of highp 4-component vector of float v})
0:? 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v})
0:? 'uname' (layout( column_major shared) uniform 3-element array of block{layout( column_major shared) uniform highp float u, layout( column_major shared) uniform 1-element array of highp 4-component vector of float v})
0:? 'name2' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of 1-element array of highp 4-component vector of float v})
0:? 'name3' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
0:? 'name2' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer unsized 1-element array of 1-element array of highp 4-component vector of float v})
0:? 'name3' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer unsized 2-element array of 7-element array of highp 4-component vector of float v})
0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of highp float)
0:? 'gu' ( global 1-element array of 7-element array of highp float)
0:? 'g4' ( global 4-element array of 7-element array of highp float)

View File

@ -11,14 +11,14 @@ ERROR: node is still EOpNull!
0:7 move second child to first child ( temp highp int)
0:7 'o' (layout( location=0) smooth out highp int)
0:7 direct index (layout( column_major shared) temp highp int)
0:7 a: direct index for structure (layout( column_major shared) uniform implicitly-sized array of highp int)
0:7 'uni' (layout( binding=0 column_major shared) uniform block{layout( column_major shared) uniform implicitly-sized array of highp int a})
0:7 a: direct index for structure (layout( column_major shared) uniform unsized 3-element array of highp int)
0:7 'uni' (layout( binding=0 column_major shared) uniform block{layout( column_major shared) uniform unsized 3-element array of highp int a})
0:7 Constant:
0:7 0 (const int)
0:7 Constant:
0:7 2 (const int)
0:? Linker Objects
0:? 'uni' (layout( binding=0 column_major shared) uniform block{layout( column_major shared) uniform implicitly-sized array of highp int a})
0:? 'uni' (layout( binding=0 column_major shared) uniform block{layout( column_major shared) uniform unsized 3-element array of highp int a})
0:? 'o' (layout( location=0) smooth out highp int)
0:? 'gl_VertexID' ( gl_VertexId highp int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId)
@ -35,14 +35,14 @@ ERROR: node is still EOpNull!
0:7 move second child to first child ( temp highp int)
0:7 'o' (layout( location=0) smooth out highp int)
0:7 direct index (layout( column_major shared) temp highp int)
0:7 a: direct index for structure (layout( column_major shared) uniform 1-element array of highp int)
0:7 'uni' (layout( binding=0 column_major shared) uniform block{layout( column_major shared) uniform 1-element array of highp int a})
0:7 a: direct index for structure (layout( column_major shared) uniform 3-element array of highp int)
0:7 'uni' (layout( binding=0 column_major shared) uniform block{layout( column_major shared) uniform 3-element array of highp int a})
0:7 Constant:
0:7 0 (const int)
0:7 Constant:
0:7 2 (const int)
0:? Linker Objects
0:? 'uni' (layout( binding=0 column_major shared) uniform block{layout( column_major shared) uniform 1-element array of highp int a})
0:? 'uni' (layout( binding=0 column_major shared) uniform block{layout( column_major shared) uniform 3-element array of highp int a})
0:? 'o' (layout( location=0) smooth out highp int)
0:? 'gl_VertexID' ( gl_VertexId highp int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId)

View File

@ -211,12 +211,12 @@ ERROR: node is still EOpNull!
0:113 move second child to first child ( temp highp int)
0:113 'a3' ( temp highp int)
0:113 direct index ( flat temp highp int SampleMaskIn)
0:113 'gl_SampleMaskIn' ( flat in implicitly-sized array of highp int SampleMaskIn)
0:113 'gl_SampleMaskIn' ( flat in unsized 1-element array of highp int SampleMaskIn)
0:113 Constant:
0:113 0 (const int)
0:114 move second child to first child ( temp highp int)
0:114 direct index ( temp highp int SampleMaskIn)
0:114 'gl_SampleMask' ( out implicitly-sized array of highp int SampleMaskIn)
0:114 'gl_SampleMask' ( out unsized 1-element array of highp int SampleMaskIn)
0:114 Constant:
0:114 0 (const int)
0:114 'a3' ( temp highp int)
@ -473,8 +473,8 @@ ERROR: node is still EOpNull!
0:? 'CA5' ( uniform highp samplerCubeArrayShadow)
0:? 'CA6' ( uniform highp isamplerCubeArray)
0:? 'CA7' ( uniform highp usamplerCubeArray)
0:? 'gl_SampleMaskIn' ( flat in implicitly-sized array of highp int SampleMaskIn)
0:? 'gl_SampleMask' ( out implicitly-sized array of highp int SampleMaskIn)
0:? 'gl_SampleMaskIn' ( flat in unsized 1-element array of highp int SampleMaskIn)
0:? 'gl_SampleMask' ( out unsized 1-element array of highp int SampleMaskIn)
0:? 'im2Df' (layout( r32f) uniform highp image2D)
0:? 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:? 'im2Di' (layout( r32i) uniform highp iimage2D)

View File

@ -62,8 +62,8 @@ ERROR: node is still EOpNull!
0:23 move second child to first child ( temp highp 4-component vector of float)
0:23 'p' ( temp highp 4-component vector of float)
0:23 gl_Position: direct index for structure ( in highp 4-component vector of float Position)
0:23 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:23 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:23 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:23 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:23 Constant:
0:23 1 (const int)
0:23 Constant:
@ -72,8 +72,8 @@ ERROR: node is still EOpNull!
0:24 move second child to first child ( temp highp float)
0:24 'ps' ( temp highp float)
0:24 gl_PointSize: direct index for structure ( in highp float PointSize)
0:24 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:24 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:24 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:24 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
@ -192,8 +192,8 @@ ERROR: node is still EOpNull!
0:104 move second child to first child ( temp highp float)
0:104 'ps' ( temp highp float)
0:104 gl_PointSize: direct index for structure ( in highp float PointSize)
0:104 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:104 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:104 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:104 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:104 Constant:
0:104 1 (const int)
0:104 Constant:
@ -336,7 +336,7 @@ ERROR: node is still EOpNull!
0:? 'inb' ( in 32-element array of highp 2-component vector of float)
0:? 'inc' ( in 32-element array of highp 2-component vector of float)
0:? 'ind' ( in 32-element array of highp 2-component vector of float)
0:? 'implA' ( patch out implicitly-sized array of highp float)
0:? 'implA' ( patch out unsized 1-element array of highp float)
0:? 'ivla' (layout( location=3) in 32-element array of highp 4-component vector of float)
0:? 'ivlb' (layout( location=4) in 32-element array of highp 4-component vector of float)
0:? 'ivlc' (layout( location=4) in 32-element array of highp 4-component vector of float)
@ -351,7 +351,7 @@ ERROR: node is still EOpNull!
0:? 'misSized' ( out 5-element array of highp float)
0:? 'okaySize' ( out 4-element array of highp float)
0:? 'pv3' ( noContraction temp highp 3-component vector of float)
0:? 'badpatchIName' ( patch out implicitly-sized array of block{ out highp float f})
0:? 'badpatchIName' ( patch out unsized 1-element array of block{ out highp float f})
0:? 'patchIName' ( patch out 4-element array of block{ out highp float f})

View File

@ -24,7 +24,7 @@ ERROR: 0:49: 'noperspective' : Reserved word.
ERROR: 0:49: 'noperspective' : not supported for this version or the enabled extensions
ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch
ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample)
ERROR: 0:54: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized
ERROR: 0:54: 'gl_PerVertex' : block already declared with size, can't redeclare as unsized
ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
ERROR: 0:64: 'quads' : cannot apply to 'out'
ERROR: 0:64: 'cw' : can only apply to 'in'
@ -67,8 +67,8 @@ ERROR: node is still EOpNull!
0:32 move second child to first child ( temp highp 4-component vector of float)
0:32 'p' ( temp highp 4-component vector of float)
0:32 gl_Position: direct index for structure ( in highp 4-component vector of float Position)
0:32 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:32 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:32 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:32 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:32 Constant:
0:32 1 (const int)
0:32 Constant:
@ -77,8 +77,8 @@ ERROR: node is still EOpNull!
0:33 move second child to first child ( temp highp float)
0:33 'ps' ( temp highp float)
0:33 gl_PointSize: direct index for structure ( in highp float PointSize)
0:33 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:33 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:33 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:33 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:33 Constant:
0:33 1 (const int)
0:33 Constant:

View File

@ -516,7 +516,7 @@ ERROR: node is still EOpNull!
0:? 'vl' (layout( location=4) smooth in 4-component vector of float)
0:? 'vl2' (layout( location=6) smooth in 4-component vector of float)
0:? 'uv3' (layout( location=3) uniform 3-component vector of float)
0:? 'anon@0' ( in block{ in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
0:? 'anon@0' ( in block{ in float FogFragCoord gl_FogFragCoord, in unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
0:? 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord)
0:? 'u2drs' ( uniform sampler2DRectShadow)
0:? 'patchIn' ( smooth patch in 4-component vector of float)

View File

@ -44,8 +44,8 @@ ERROR: node is still EOpNull!
0:23 move second child to first child ( temp 4-component vector of float)
0:23 'p' ( temp 4-component vector of float)
0:23 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:23 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:23 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:23 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:23 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:23 Constant:
0:23 1 (const int)
0:23 Constant:
@ -54,8 +54,8 @@ ERROR: node is still EOpNull!
0:24 move second child to first child ( temp float)
0:24 'ps' ( temp float)
0:24 gl_PointSize: direct index for structure ( in float PointSize)
0:24 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:24 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:24 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:24 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
@ -64,9 +64,9 @@ ERROR: node is still EOpNull!
0:25 move second child to first child ( temp float)
0:25 'cd' ( temp float)
0:25 direct index ( temp float ClipDistance)
0:25 gl_ClipDistance: direct index for structure ( in implicitly-sized array of float ClipDistance)
0:25 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:25 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:25 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance)
0:25 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:25 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:25 Constant:
0:25 1 (const int)
0:25 Constant:
@ -87,25 +87,25 @@ ERROR: node is still EOpNull!
0:29 'gl_InvocationID' ( in int InvocationID)
0:31 move second child to first child ( temp 4-component vector of float)
0:31 gl_Position: direct index for structure ( out 4-component vector of float Position)
0:31 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:31 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:31 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:31 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:31 'gl_InvocationID' ( in int InvocationID)
0:31 Constant:
0:31 0 (const int)
0:31 'p' ( temp 4-component vector of float)
0:32 move second child to first child ( temp float)
0:32 gl_PointSize: direct index for structure ( out float PointSize)
0:32 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:32 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:32 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:32 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:32 'gl_InvocationID' ( in int InvocationID)
0:32 Constant:
0:32 1 (const int)
0:32 'ps' ( temp float)
0:33 move second child to first child ( temp float)
0:33 direct index ( temp float ClipDistance)
0:33 gl_ClipDistance: direct index for structure ( out implicitly-sized array of float ClipDistance)
0:33 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:33 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:33 gl_ClipDistance: direct index for structure ( out unsized 2-element array of float ClipDistance)
0:33 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_InvocationID' ( in int InvocationID)
0:33 Constant:
0:33 2 (const int)
@ -175,8 +175,8 @@ ERROR: node is still EOpNull!
0:67 Function Parameters:
0:69 Sequence
0:69 gl_PointSize: direct index for structure ( out float PointSize)
0:69 direct index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:69 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:69 direct index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:69 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:69 Constant:
0:69 4 (const int)
0:69 Constant:
@ -211,7 +211,7 @@ ERROR: node is still EOpNull!
0:123 'gl_DeviceIndex' ( in int DeviceIndex)
0:124 'gl_ViewIndex' ( in int ViewIndex)
0:? Linker Objects
0:? 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:? 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance})
0:? 'outa' ( global 4-element array of int)
0:? 'patchIn' ( patch in 4-component vector of float)
0:? 'patchOut' ( patch out 4-component vector of float)

View File

@ -11,7 +11,7 @@ ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch
ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch
ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch
ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample)
ERROR: 0:54: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized
ERROR: 0:54: 'gl_PerVertex' : block already declared with size, can't redeclare as unsized
ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
ERROR: 0:64: 'quads' : cannot apply to 'out'
ERROR: 0:64: 'cw' : can only apply to 'in'
@ -57,8 +57,8 @@ ERROR: node is still EOpNull!
0:32 move second child to first child ( temp 4-component vector of float)
0:32 'p' ( temp 4-component vector of float)
0:32 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:32 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:32 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:32 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:32 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:32 Constant:
0:32 1 (const int)
0:32 Constant:
@ -67,8 +67,8 @@ ERROR: node is still EOpNull!
0:33 move second child to first child ( temp float)
0:33 'ps' ( temp float)
0:33 gl_PointSize: direct index for structure ( in float PointSize)
0:33 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:33 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:33 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:33 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
@ -77,9 +77,9 @@ ERROR: node is still EOpNull!
0:34 move second child to first child ( temp float)
0:34 'cd' ( temp float)
0:34 direct index ( temp float ClipDistance)
0:34 gl_ClipDistance: direct index for structure ( in implicitly-sized array of float ClipDistance)
0:34 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:34 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:34 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance)
0:34 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:34 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:34 Constant:
0:34 1 (const int)
0:34 Constant:
@ -114,20 +114,20 @@ ERROR: node is still EOpNull!
0:40 1 (const int)
0:42 move second child to first child ( temp 4-component vector of float)
0:42 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:42 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:42 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance})
0:42 Constant:
0:42 0 (const uint)
0:42 'p' ( temp 4-component vector of float)
0:43 move second child to first child ( temp float)
0:43 gl_PointSize: direct index for structure ( gl_PointSize float PointSize)
0:43 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:43 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance})
0:43 Constant:
0:43 1 (const uint)
0:43 'ps' ( temp float)
0:44 move second child to first child ( temp float)
0:44 direct index ( temp float ClipDistance)
0:44 gl_ClipDistance: direct index for structure ( out implicitly-sized array of float ClipDistance)
0:44 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:44 gl_ClipDistance: direct index for structure ( out unsized 3-element array of float ClipDistance)
0:44 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance})
0:44 Constant:
0:44 2 (const uint)
0:44 Constant:
@ -146,7 +146,7 @@ ERROR: node is still EOpNull!
0:? Linker Objects
0:? 'patchIn' ( patch in 4-component vector of float)
0:? 'patchOut' ( patch out 4-component vector of float)
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance})
0:? 'badp1' ( smooth patch in 4-component vector of float)
0:? 'badp2' ( flat patch in 4-component vector of float)
0:? 'badp3' ( noperspective patch in 4-component vector of float)

View File

@ -31,7 +31,7 @@ ERROR: node is still EOpNull!
0:30 'p' ( temp float)
0:30 gl_PointSize: direct index for structure ( in float PointSize)
0:30 direct index ( temp block{ in float PointSize gl_PointSize})
0:30 'gl_in' ( in implicitly-sized array of block{ in float PointSize gl_PointSize})
0:30 'gl_in' ( in unsized 2-element array of block{ in float PointSize gl_PointSize})
0:30 Constant:
0:30 1 (const int)
0:30 Constant:
@ -53,7 +53,7 @@ ERROR: node is still EOpNull!
0:38 Constant:
0:38 4.000000
0:? Linker Objects
0:? 'gl_in' ( in implicitly-sized array of block{ in float PointSize gl_PointSize})
0:? 'gl_in' ( in unsized 2-element array of block{ in float PointSize gl_PointSize})
0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_PointSize float PointSize gl_PointSize, })

View File

@ -9,7 +9,7 @@ ERROR: node is still EOpNull!
0:8 Function Definition: main( ( global void)
0:8 Function Parameters:
0:? Linker Objects
0:? 'gl_out' ( out implicitly-sized array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:? 'gl_out' ( out unsized 1-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:? 'outa' ( global 1-element array of int)
0:? 'patchOut' ( patch out 4-component vector of float)

View File

@ -19,7 +19,7 @@ ERROR: node is still EOpNull!
0:? Linker Objects
0:? 'gl_FragDepth' ( gl_FragDepth float FragDepth)
0:? 'depth' ( smooth in float)
0:? 'a' (layout( binding=0 offset=0) uniform implicitly-sized array of atomic_uint)
0:? 'a' (layout( binding=0 offset=0) uniform unsized 1-element array of atomic_uint)
Linked fragment stage:

View File

@ -20,15 +20,15 @@ ERROR: node is still EOpNull!
0:9 Constant:
0:9 1 (const int)
0:10 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:10 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:10 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:10 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance})
0:10 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance})
0:10 Constant:
0:10 1 (const int)
0:10 Constant:
0:10 0 (const int)
0:11 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:11 indirect index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:11 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:11 indirect index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance})
0:11 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance})
0:11 'i' ( global int)
0:11 Constant:
0:11 0 (const int)
@ -38,8 +38,8 @@ ERROR: node is still EOpNull!
0:20 Constant:
0:20 3 (const int)
0:21 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:21 indirect index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:21 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:21 indirect index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance})
0:21 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance})
0:21 'i' ( global int)
0:21 Constant:
0:21 0 (const int)
@ -121,12 +121,12 @@ ERROR: node is still EOpNull!
0:54 'i' ( global int)
0:? Linker Objects
0:? 'i' ( global int)
0:? 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:? 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance})
0:? 'color3' ( in 3-element array of 4-component vector of float)
0:? 's2D' ( uniform sampler2D)
0:? 'coord' ( in 3-element array of 2-component vector of float)
0:? 'v4' ( uniform 4-component vector of float)
0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out implicitly-sized array of float ClipDistance gl_ClipDistance})
0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 1-element array of float ClipDistance gl_ClipDistance})
Linked geometry stage:

View File

@ -20,8 +20,8 @@ ERROR: node is still EOpNull!
0:17 move second child to first child ( temp 4-component vector of float)
0:17 'p' ( temp 4-component vector of float)
0:17 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:17 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:17 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:17 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:17 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:17 Constant:
0:17 1 (const int)
0:17 Constant:
@ -30,8 +30,8 @@ ERROR: node is still EOpNull!
0:18 move second child to first child ( temp float)
0:18 'ps' ( temp float)
0:18 gl_PointSize: direct index for structure ( in float PointSize)
0:18 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:18 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:18 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:18 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:18 Constant:
0:18 1 (const int)
0:18 Constant:
@ -40,9 +40,9 @@ ERROR: node is still EOpNull!
0:19 move second child to first child ( temp float)
0:19 'cd' ( temp float)
0:19 direct index ( temp float ClipDistance)
0:19 gl_ClipDistance: direct index for structure ( in implicitly-sized array of float ClipDistance)
0:19 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:19 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:19 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance)
0:19 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:19 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance})
0:19 Constant:
0:19 1 (const int)
0:19 Constant:

View File

@ -139,7 +139,7 @@ ERROR: node is still EOpNull!
0:? 'b3' ( global 2-element array of 4-component vector of float)
0:? 'b4' ( global 2-element array of 4-component vector of float)
0:? 'c3' ( global 4X2 matrix of float)
0:? 'd2' ( global implicitly-sized array of structure{ global float s, global float t})
0:? 'd2' ( global unsized 1-element array of structure{ global float s, global float t})
0:? 'b5' ( global 5-element array of float)
0:? 'single1' ( global structure{ global int f})
0:? 'single2' ( global structure{ global 2-component vector of uint v})

View File

@ -51,7 +51,7 @@ ERROR: 0:157: 'textureQueryLevels' : no matching overloaded function found
ERROR: 0:157: 'assign' : cannot convert from ' const float' to ' temp int'
ERROR: 0:158: 'textureQueryLevels' : no matching overloaded function found
ERROR: 0:158: 'assign' : cannot convert from ' const float' to ' temp int'
WARNING: 0:161: '[]' : assuming array size of one for compile-time checking of binding numbers for implicitly-sized array
WARNING: 0:161: '[]' : assuming array size of one for compile-time checking of binding numbers for unsized array
ERROR: 51 compilation errors. No code generated.
@ -302,7 +302,7 @@ ERROR: node is still EOpNull!
0:? 'offcheckI' (layout( column_major shared) uniform block{layout( column_major shared offset=16) uniform int foo})
0:? 'samp1D' ( uniform sampler1D)
0:? 'samp1Ds' ( uniform sampler1DShadow)
0:? 'badArray' (layout( binding=0) writeonly uniform implicitly-sized array of image1D)
0:? 'badArray' (layout( binding=0) writeonly uniform unsized 1-element array of image1D)
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)

View File

@ -15,8 +15,8 @@ ERROR: node is still EOpNull!
0:13 Constant:
0:13 3 (const int)
0:14 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:14 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:14 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:14 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance})
0:14 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance})
0:14 Constant:
0:14 1 (const int)
0:14 Constant:
@ -24,8 +24,8 @@ ERROR: node is still EOpNull!
0:15 Constant:
0:15 3 (const int)
0:16 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:16 indirect index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:16 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:16 indirect index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance})
0:16 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance})
0:16 'i' ( global int)
0:16 Constant:
0:16 0 (const int)
@ -33,7 +33,7 @@ ERROR: node is still EOpNull!
0:? 'i' ( global int)
0:? 'colorun' ( in 3-element array of 4-component vector of float)
0:? 'color3' ( in 3-element array of 4-component vector of float)
0:? 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
0:? 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance})
Linked geometry stage:

View File

@ -33,13 +33,13 @@ ERROR: node is still EOpNull!
0:35 GroupMemoryBarrier ( global void)
0:36 move second child to first child ( temp int)
0:36 value: direct index for structure (layout( column_major shared) buffer int)
0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer runtime-sized array of float values})
0:36 Constant:
0:36 0 (const uint)
0:36 Convert float to int ( temp int)
0:36 indirect index (layout( column_major shared) temp float)
0:36 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of float)
0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:36 values: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer runtime-sized array of float values})
0:36 Constant:
0:36 1 (const uint)
0:36 'gl_LocalInvocationIndex' ( in uint LocalInvocationIndex)
@ -56,8 +56,8 @@ ERROR: node is still EOpNull!
0:65 Sequence
0:65 move second child to first child ( temp float)
0:65 direct index (layout( column_major shared) temp float)
0:65 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of float)
0:65 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:65 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of float)
0:65 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer unsized 3-element array of float values})
0:65 Constant:
0:65 1 (const int)
0:65 Constant:
@ -65,8 +65,8 @@ ERROR: node is still EOpNull!
0:65 Constant:
0:65 4.700000
0:66 array length ( temp int)
0:66 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of float)
0:66 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:66 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of float)
0:66 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer unsized 3-element array of float values})
0:66 Constant:
0:66 1 (const int)
0:67 Barrier ( global void)
@ -129,8 +129,8 @@ ERROR: node is still EOpNull!
0:? 4096 (const uint)
0:? 'total' ( const int)
0:? 66592 (const int)
0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:? 'invalid' (layout( column_major shared) buffer block{layout( column_major shared) buffer implicitly-sized array of float values, layout( column_major shared) buffer int value})
0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer runtime-sized array of float values})
0:? 'invalid' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 1-element array of float values, layout( column_major shared) buffer int value})
0:? 'v3' (layout( location=2) in 3-component vector of float)
0:? 'f' ( in float)
0:? 'fo' ( out float)
@ -140,7 +140,7 @@ ERROR: node is still EOpNull!
0:? 'arrX' ( global 2-element array of int)
0:? 'arrY' ( global 1-element array of int)
0:? 'arrZ' ( global 4096-element array of int)
0:? 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:? 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer unsized 3-element array of float values})
0:? 'roll' ( uniform double)
0:? 'destTex' ( writeonly uniform image2D)
0:? 'inbi' ( in block{ in int a})
@ -165,13 +165,13 @@ ERROR: node is still EOpNull!
0:35 GroupMemoryBarrier ( global void)
0:36 move second child to first child ( temp int)
0:36 value: direct index for structure (layout( column_major shared) buffer int)
0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer runtime-sized array of float values})
0:36 Constant:
0:36 0 (const uint)
0:36 Convert float to int ( temp int)
0:36 indirect index (layout( column_major shared) temp float)
0:36 values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of float)
0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:36 values: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer runtime-sized array of float values})
0:36 Constant:
0:36 1 (const uint)
0:36 'gl_LocalInvocationIndex' ( in uint LocalInvocationIndex)
@ -190,8 +190,8 @@ ERROR: node is still EOpNull!
0:? 4096 (const uint)
0:? 'total' ( const int)
0:? 66592 (const int)
0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:? 'invalid' (layout( column_major shared) buffer block{layout( column_major shared) buffer implicitly-sized array of float values, layout( column_major shared) buffer int value})
0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer runtime-sized array of float values})
0:? 'invalid' (layout( column_major shared) buffer block{layout( column_major shared) buffer 1-element array of float values, layout( column_major shared) buffer int value})
0:? 'v3' (layout( location=2) in 3-component vector of float)
0:? 'f' ( in float)
0:? 'fo' ( out float)
@ -201,7 +201,7 @@ ERROR: node is still EOpNull!
0:? 'arrX' ( global 2-element array of int)
0:? 'arrY' ( global 1-element array of int)
0:? 'arrZ' ( global 4096-element array of int)
0:? 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:? 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer unsized 3-element array of float values})
0:? 'roll' ( uniform double)
0:? 'destTex' ( writeonly uniform image2D)
0:? 'inbi' ( in block{ in int a})

View File

@ -7,7 +7,7 @@ ERROR: 0:56: 'constructor' : cannot convert parameter 2 from ' const 3-element
ERROR: 0:60: 'constructor' : cannot convert parameter 2 from ' const 2-element array of 4-component vector of float' to ' temp 3-element array of 4-component vector of float'
ERROR: 0:64: '=' : cannot convert from ' const 3-element array of 2-element array of 4-component vector of float' to ' temp 4-element array of 2-element array of 4-component vector of float'
ERROR: 0:70: 'assign' : cannot convert from ' global 4-element array of 7-element array of float' to ' global 5-element array of 7-element array of float'
ERROR: 0:71: 'assign' : cannot convert from ' global 4-element array of 7-element array of float' to ' global implicitly-sized array of 7-element array of float'
ERROR: 0:71: 'assign' : cannot convert from ' global 4-element array of 7-element array of float' to ' global unsized 1-element array of 7-element array of float'
ERROR: 0:73: 'foo' : no matching overloaded function found
ERROR: 0:78: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type ' global 4-element array of 7-element array of float' and a right operand of type ' global 5-element array of 7-element array of float' (or there is no acceptable conversion)
ERROR: 0:84: '[' : array index out of range '5'
@ -335,7 +335,7 @@ ERROR: node is still EOpNull!
0:69 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of float)
0:69 'g5' ( global 5-element array of 7-element array of float)
0:70 'g5' ( global 5-element array of 7-element array of float)
0:71 'gu' ( global implicitly-sized array of 7-element array of float)
0:71 'gu' ( global unsized 1-element array of 7-element array of float)
0:73 Constant:
0:73 0.000000
0:74 Function Call: bar(f1[5][7]; ( global void)
@ -404,8 +404,8 @@ ERROR: node is still EOpNull!
0:98 0.000000
0:? Linker Objects
0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of float)
0:? 'gu' ( global implicitly-sized array of 7-element array of float)
0:? 'gimp' ( global implicitly-sized array of 1-element array of float)
0:? 'gu' ( global unsized 1-element array of 7-element array of float)
0:? 'gimp' ( global unsized 1-element array of 1-element array of float)
0:? 'g4' ( global 4-element array of 7-element array of float)
0:? 'g5' ( global 5-element array of 7-element array of float)

View File

@ -63,7 +63,7 @@ ERROR: node is still EOpNull!
0:47 3.000000
0:49 move second child to first child ( temp 4-component vector of float)
0:49 gl_Position: direct index for structure ( invariant gl_Position 4-component vector of float Position)
0:49 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:49 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:49 Constant:
0:49 0 (const uint)
0:49 Construct vec4 ( temp 4-component vector of float)

View File

@ -2,7 +2,7 @@ array.frag
ERROR: 0:21: '[' : array index out of range '2'
ERROR: 0:27: '[' : array must be redeclared with a size before being indexed with a variable
ERROR: 0:30: 'assign' : cannot convert from ' global 4-element array of float' to ' global 5-element array of float'
ERROR: 0:31: 'assign' : cannot convert from ' global 4-element array of float' to ' global implicitly-sized array of float'
ERROR: 0:31: 'assign' : cannot convert from ' global 4-element array of float' to ' global runtime-sized array of float'
ERROR: 0:33: 'foo' : no matching overloaded function found
ERROR: 0:42: '[' : array index out of range '5'
ERROR: 0:45: '[' : array index out of range '1000'
@ -23,9 +23,11 @@ ERROR: 0:84: 'return' : type does not match, or is not convertible to, the funct
ERROR: 0:93: 'length' : array must be declared with a size before using this method
ERROR: 0:101: '[' : array index out of range '5'
ERROR: 0:104: 'constructor' : array constructor must have at least one argument
ERROR: 0:104: '=' : cannot convert from ' const float' to ' global implicitly-sized array of int'
ERROR: 0:104: '=' : cannot convert from ' const float' to ' global unsized 1-element array of int'
ERROR: 0:106: 'constructor' : array argument must be sized
ERROR: 26 compilation errors. No code generated.
ERROR: 0:111: '[' : array must be redeclared with a size before being indexed with a variable
ERROR: 0:111: 'variable indexing sampler array' : not supported with this profile: none
ERROR: 28 compilation errors. No code generated.
Shader version: 130
@ -68,21 +70,21 @@ ERROR: node is still EOpNull!
0:21 4.000000
0:24 move second child to first child ( temp float)
0:24 direct index ( temp float)
0:24 'gu' ( global implicitly-sized array of float)
0:24 'gu' ( global runtime-sized array of float)
0:24 Constant:
0:24 2 (const int)
0:24 Constant:
0:24 4.000000
0:26 move second child to first child ( temp float)
0:26 direct index ( temp float)
0:26 'gu' ( global implicitly-sized array of float)
0:26 'gu' ( global runtime-sized array of float)
0:26 Constant:
0:26 3 (const int)
0:26 Constant:
0:26 3.000000
0:27 move second child to first child ( temp float)
0:27 indirect index ( temp float)
0:27 'gu' ( global implicitly-sized array of float)
0:27 'gu' ( global runtime-sized array of float)
0:27 'a' ( uniform int)
0:27 Constant:
0:27 5.000000
@ -91,7 +93,7 @@ ERROR: node is still EOpNull!
0:29 Function Call: foo(f1[5]; ( global 4-element array of float)
0:29 'g5' ( global 5-element array of float)
0:30 'g5' ( global 5-element array of float)
0:31 'gu' ( global implicitly-sized array of float)
0:31 'gu' ( global runtime-sized array of float)
0:33 Constant:
0:33 0.000000
0:34 Function Call: bar(f1[5]; ( global void)
@ -108,7 +110,7 @@ ERROR: node is still EOpNull!
0:36 true case
0:37 move second child to first child ( temp float)
0:37 direct index ( temp float)
0:37 'gu' ( global implicitly-sized array of float)
0:37 'gu' ( global runtime-sized array of float)
0:37 Constant:
0:37 0 (const int)
0:37 Constant:
@ -199,21 +201,21 @@ ERROR: node is still EOpNull!
0:? Sequence
0:71 move second child to first child ( temp int)
0:71 direct index ( temp int)
0:71 'uns' ( temp implicitly-sized array of int)
0:71 'uns' ( temp unsized 4-element array of int)
0:71 Constant:
0:71 3 (const int)
0:71 Constant:
0:71 40 (const int)
0:72 move second child to first child ( temp int)
0:72 direct index ( temp int)
0:72 'uns' ( temp implicitly-sized array of int)
0:72 'uns' ( temp unsized 4-element array of int)
0:72 Constant:
0:72 1 (const int)
0:72 Constant:
0:72 30 (const int)
0:73 move second child to first child ( temp 3-component vector of float)
0:73 direct index ( temp 3-component vector of float)
0:73 'guns' ( global implicitly-sized array of 3-component vector of float)
0:73 'guns' ( global unsized 8-element array of 3-component vector of float)
0:73 Constant:
0:73 2 (const int)
0:73 Constant:
@ -222,11 +224,11 @@ ERROR: node is still EOpNull!
0:73 2.400000
0:76 Constant:
0:76 0.000000
0:79 Function Definition: foo2( ( global implicitly-sized array of float)
0:79 Function Definition: foo2( ( global unsized 1-element array of float)
0:79 Function Parameters:
0:? Sequence
0:82 Branch: Return with expression
0:82 'f' ( temp implicitly-sized array of float)
0:82 'f' ( temp unsized 1-element array of float)
0:84 Branch: Return with expression
0:84 'g' ( temp 9-element array of float)
0:89 Function Definition: foo3( ( global void)
@ -264,17 +266,24 @@ ERROR: node is still EOpNull!
0:106 'b' ( global float)
0:106 Constant:
0:106 0.000000
0:109 Function Definition: foo4( ( global void)
0:109 Function Parameters:
0:111 Sequence
0:111 indirect index ( temp sampler2D)
0:111 's2d' ( uniform runtime-sized array of sampler2D)
0:111 'a' ( uniform int)
0:? Linker Objects
0:? 'gu' ( global implicitly-sized array of float)
0:? 'gu' ( global runtime-sized array of float)
0:? 'g4' ( global 4-element array of float)
0:? 'g5' ( global 5-element array of float)
0:? 'a' ( uniform int)
0:? 'guns' ( global implicitly-sized array of 3-component vector of float)
0:? 'guns' ( global unsized 8-element array of 3-component vector of float)
0:? 'f' ( global float)
0:? 'gUnusedUnsized' ( global implicitly-sized array of float)
0:? 'i' ( global implicitly-sized array of int)
0:? 'emptyA' ( global implicitly-sized array of float)
0:? 'gUnusedUnsized' ( global unsized 1-element array of float)
0:? 'i' ( global unsized 1-element array of int)
0:? 'emptyA' ( global unsized 1-element array of float)
0:? 'b' ( global float)
0:? 's2d' ( uniform runtime-sized array of sampler2D)
Linked fragment stage:
@ -320,21 +329,21 @@ ERROR: node is still EOpNull!
0:21 4.000000
0:24 move second child to first child ( temp float)
0:24 direct index ( temp float)
0:24 'gu' ( global 4-element array of float)
0:24 'gu' ( global runtime-sized array of float)
0:24 Constant:
0:24 2 (const int)
0:24 Constant:
0:24 4.000000
0:26 move second child to first child ( temp float)
0:26 direct index ( temp float)
0:26 'gu' ( global 4-element array of float)
0:26 'gu' ( global runtime-sized array of float)
0:26 Constant:
0:26 3 (const int)
0:26 Constant:
0:26 3.000000
0:27 move second child to first child ( temp float)
0:27 indirect index ( temp float)
0:27 'gu' ( global 4-element array of float)
0:27 'gu' ( global runtime-sized array of float)
0:27 'a' ( uniform int)
0:27 Constant:
0:27 5.000000
@ -343,7 +352,7 @@ ERROR: node is still EOpNull!
0:29 Function Call: foo(f1[5]; ( global 4-element array of float)
0:29 'g5' ( global 5-element array of float)
0:30 'g5' ( global 5-element array of float)
0:31 'gu' ( global 4-element array of float)
0:31 'gu' ( global runtime-sized array of float)
0:33 Constant:
0:33 0.000000
0:34 Function Call: bar(f1[5]; ( global void)
@ -360,7 +369,7 @@ ERROR: node is still EOpNull!
0:36 true case
0:37 move second child to first child ( temp float)
0:37 direct index ( temp float)
0:37 'gu' ( global 4-element array of float)
0:37 'gu' ( global runtime-sized array of float)
0:37 Constant:
0:37 0 (const int)
0:37 Constant:
@ -452,7 +461,7 @@ ERROR: node is still EOpNull!
0:106 Constant:
0:106 0.000000
0:? Linker Objects
0:? 'gu' ( global 4-element array of float)
0:? 'gu' ( global runtime-sized array of float)
0:? 'g4' ( global 4-element array of float)
0:? 'g5' ( global 5-element array of float)
0:? 'a' ( uniform int)
@ -462,4 +471,5 @@ ERROR: node is still EOpNull!
0:? 'i' ( global 1-element array of int)
0:? 'emptyA' ( global 1-element array of float)
0:? 'b' ( global float)
0:? 's2d' ( uniform runtime-sized array of sampler2D)

View File

@ -10,7 +10,7 @@ ERROR: 0:24: 'array assignment' : not supported for this version or the enabled
ERROR: 0:25: 'array assignment' : not supported for this version or the enabled extensions
ERROR: 0:25: 'assign' : cannot convert from ' global 4-element array of mediump float' to ' global 5-element array of mediump float'
ERROR: 0:26: 'array assignment' : not supported for this version or the enabled extensions
ERROR: 0:26: 'assign' : cannot convert from ' global 4-element array of mediump float' to ' global implicitly-sized array of mediump float'
ERROR: 0:26: 'assign' : cannot convert from ' global 4-element array of mediump float' to ' global unsized 1-element array of mediump float'
ERROR: 0:28: 'foo' : no matching overloaded function found
ERROR: 0:31: 'arrayed constructor' : not supported for this version or the enabled extensions
ERROR: 0:31: 'array comparison' : not supported for this version or the enabled extensions
@ -67,7 +67,7 @@ ERROR: node is still EOpNull!
0:24 Function Call: foo(f1[5]; ( global 4-element array of mediump float)
0:24 'g5' ( global 5-element array of mediump float)
0:25 'g5' ( global 5-element array of mediump float)
0:26 'gu' ( global implicitly-sized array of mediump float)
0:26 'gu' ( global unsized 1-element array of mediump float)
0:28 Constant:
0:28 0.000000
0:29 Function Call: bar(f1[5]; ( global void)
@ -84,7 +84,7 @@ ERROR: node is still EOpNull!
0:31 true case
0:32 move second child to first child ( temp mediump float)
0:32 direct index ( temp mediump float)
0:32 'gu' ( global implicitly-sized array of mediump float)
0:32 'gu' ( global unsized 1-element array of mediump float)
0:32 Constant:
0:32 0 (const int)
0:32 Constant:
@ -152,7 +152,7 @@ ERROR: node is still EOpNull!
0:69 'initSb' ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
0:69 's1' ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
0:? Linker Objects
0:? 'gu' ( global implicitly-sized array of mediump float)
0:? 'gu' ( global unsized 1-element array of mediump float)
0:? 'g4' ( global 4-element array of mediump float)
0:? 'g5' ( global 5-element array of mediump float)
0:? 'a' ( uniform mediump int)

View File

@ -134,7 +134,7 @@ ERROR: node is still EOpNull!
0:65 0.050000
0:69 move second child to first child ( temp 4-component vector of float)
0:69 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:69 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:69 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:69 Constant:
0:69 0 (const uint)
0:69 Construct vec4 ( temp 4-component vector of float)
@ -174,7 +174,7 @@ ERROR: node is still EOpNull!
12:20033 Sequence
12:20033 move second child to first child ( temp 4-component vector of float)
12:20033 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
12:20033 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
12:20033 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
12:20033 Constant:
12:20033 0 (const uint)
12:20033 Constant:
@ -188,7 +188,7 @@ ERROR: node is still EOpNull!
12:9011 'RECURSE' ( global int)
0:? Linker Objects
0:? 'sum' ( global float)
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:? 'linenumber' ( global int)
0:? 'filenumber' ( global int)
0:? 'version' ( global int)

View File

@ -35,8 +35,8 @@ gl_FragCoord origin is upper left
0:20 Function Call: @main(vf4; ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? Linker Objects
0:? 'buffer1' (layout( set=0 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 2-component vector of float f} @data})
0:? 'buffer3' (layout( set=2 binding=3 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 2-component vector of float f} @data})
0:? 'buffer1' (layout( set=0 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 2-component vector of float f} @data})
0:? 'buffer3' (layout( set=2 binding=3 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 2-component vector of float f} @data})
0:? 'attach' ( uniform texture2D)
0:? 'ci' ( specialization-constant const int)
0:? 11 (const int)
@ -84,8 +84,8 @@ gl_FragCoord origin is upper left
0:20 Function Call: @main(vf4; ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? Linker Objects
0:? 'buffer1' (layout( set=0 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 2-component vector of float f} @data})
0:? 'buffer3' (layout( set=2 binding=3 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 2-component vector of float f} @data})
0:? 'buffer1' (layout( set=0 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 2-component vector of float f} @data})
0:? 'buffer3' (layout( set=2 binding=3 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 2-component vector of float f} @data})
0:? 'attach' ( uniform texture2D)
0:? 'ci' ( specialization-constant const int)
0:? 11 (const int)

View File

@ -13,7 +13,7 @@ ERROR: node is still EOpNull!
0:? Sequence
0:2 Function Call: @main( ( temp void)
0:? Linker Objects
0:? 'srt0' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'srt0' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
Linked compute stage:
@ -29,6 +29,6 @@ ERROR: node is still EOpNull!
0:? Sequence
0:2 Function Call: @main( ( temp void)
0:? Linker Objects
0:? 'srt0' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'srt0' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
SPIR-V is not generated for failed compile or link

View File

@ -9,15 +9,15 @@ gl_FragCoord origin is upper left
0:36 't2' (layout( set=1 binding=2) uniform texture2D)
0:37 't3' (layout( set=2 binding=1) uniform texture3D)
0:38 direct index (layout( row_major std430) buffer 4-component vector of float)
0:38 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
0:38 't4' (layout( set=3 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:38 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
0:38 't4' (layout( set=3 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:38 Constant:
0:38 0 (const uint)
0:38 Constant:
0:38 0 (const int)
0:39 indirect index (layout( row_major std430) buffer uint)
0:39 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:39 't5' (layout( set=3 binding=2 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:39 't5' (layout( set=3 binding=2 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:39 Constant:
0:39 0 (const uint)
0:39 right-shift ( temp int)
@ -36,8 +36,8 @@ gl_FragCoord origin is upper left
0:49 Constant:
0:49 0 (const int)
0:50 indirect index (layout( row_major std430) buffer uint)
0:50 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:50 'u5' (layout( set=2 binding=4 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:50 'u5' (layout( set=2 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:50 Constant:
0:50 0 (const uint)
0:50 right-shift ( temp int)
@ -46,14 +46,14 @@ gl_FragCoord origin is upper left
0:50 Constant:
0:50 2 (const int)
0:51 direct index (layout( row_major std430) buffer float)
0:51 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of float)
0:51 'u6' (layout( set=3 binding=4 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float)
0:51 'u6' (layout( set=3 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:51 Constant:
0:51 0 (const uint)
0:51 Constant:
0:51 0 (const int)
0:52 'u7' (layout( set=4 binding=4 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:53 'u8' (layout( set=5 binding=4 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:52 'u7' (layout( set=4 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:53 'u8' (layout( set=5 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:55 cb1: direct index for structure (layout( row_major std140) uniform int)
0:55 'anon@0' (layout( set=6 binding=1 row_major std140) uniform block{layout( row_major std140) uniform int cb1})
0:55 Constant:
@ -80,17 +80,17 @@ gl_FragCoord origin is upper left
0:? 't1' (layout( set=1 binding=1) uniform texture1D)
0:? 't2' (layout( set=1 binding=2) uniform texture2D)
0:? 't3' (layout( set=2 binding=1) uniform texture3D)
0:? 't4' (layout( set=3 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:? 't5' (layout( set=3 binding=2 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 't4' (layout( set=3 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:? 't5' (layout( set=3 binding=2 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:? 't6' (layout( set=3 binding=3 rgba32f) uniform textureBuffer)
0:? 'u1' (layout( set=1 binding=1 rgba32f) uniform image1D)
0:? 'u2' (layout( set=2 binding=2 rgba32f) uniform image2D)
0:? 'u3' (layout( set=2 binding=3 rgba32f) uniform image3D)
0:? 'u4' (layout( set=1 binding=4 r32f) uniform imageBuffer)
0:? 'u5' (layout( set=2 binding=4 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'u6' (layout( set=3 binding=4 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:? 'u7' (layout( set=4 binding=4 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:? 'u8' (layout( set=5 binding=4 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:? 'u5' (layout( set=2 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:? 'u6' (layout( set=3 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:? 'u7' (layout( set=4 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:? 'u8' (layout( set=5 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:? 'anon@0' (layout( set=6 binding=1 row_major std140) uniform block{layout( row_major std140) uniform int cb1})
0:? 'anon@1' (layout( binding=7 row_major std430) readonly buffer block{layout( row_major std430) buffer int tb1})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
@ -109,15 +109,15 @@ gl_FragCoord origin is upper left
0:36 't2' (layout( set=1 binding=2) uniform texture2D)
0:37 't3' (layout( set=2 binding=1) uniform texture3D)
0:38 direct index (layout( row_major std430) buffer 4-component vector of float)
0:38 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
0:38 't4' (layout( set=3 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:38 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
0:38 't4' (layout( set=3 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:38 Constant:
0:38 0 (const uint)
0:38 Constant:
0:38 0 (const int)
0:39 indirect index (layout( row_major std430) buffer uint)
0:39 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:39 't5' (layout( set=3 binding=2 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:39 't5' (layout( set=3 binding=2 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:39 Constant:
0:39 0 (const uint)
0:39 right-shift ( temp int)
@ -136,8 +136,8 @@ gl_FragCoord origin is upper left
0:49 Constant:
0:49 0 (const int)
0:50 indirect index (layout( row_major std430) buffer uint)
0:50 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:50 'u5' (layout( set=2 binding=4 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:50 'u5' (layout( set=2 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:50 Constant:
0:50 0 (const uint)
0:50 right-shift ( temp int)
@ -146,14 +146,14 @@ gl_FragCoord origin is upper left
0:50 Constant:
0:50 2 (const int)
0:51 direct index (layout( row_major std430) buffer float)
0:51 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of float)
0:51 'u6' (layout( set=3 binding=4 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float)
0:51 'u6' (layout( set=3 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:51 Constant:
0:51 0 (const uint)
0:51 Constant:
0:51 0 (const int)
0:52 'u7' (layout( set=4 binding=4 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:53 'u8' (layout( set=5 binding=4 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:52 'u7' (layout( set=4 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:53 'u8' (layout( set=5 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:55 cb1: direct index for structure (layout( row_major std140) uniform int)
0:55 'anon@0' (layout( set=6 binding=1 row_major std140) uniform block{layout( row_major std140) uniform int cb1})
0:55 Constant:
@ -180,17 +180,17 @@ gl_FragCoord origin is upper left
0:? 't1' (layout( set=1 binding=1) uniform texture1D)
0:? 't2' (layout( set=1 binding=2) uniform texture2D)
0:? 't3' (layout( set=2 binding=1) uniform texture3D)
0:? 't4' (layout( set=3 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:? 't5' (layout( set=3 binding=2 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 't4' (layout( set=3 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:? 't5' (layout( set=3 binding=2 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:? 't6' (layout( set=3 binding=3 rgba32f) uniform textureBuffer)
0:? 'u1' (layout( set=1 binding=1 rgba32f) uniform image1D)
0:? 'u2' (layout( set=2 binding=2 rgba32f) uniform image2D)
0:? 'u3' (layout( set=2 binding=3 rgba32f) uniform image3D)
0:? 'u4' (layout( set=1 binding=4 r32f) uniform imageBuffer)
0:? 'u5' (layout( set=2 binding=4 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'u6' (layout( set=3 binding=4 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:? 'u7' (layout( set=4 binding=4 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:? 'u8' (layout( set=5 binding=4 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:? 'u5' (layout( set=2 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:? 'u6' (layout( set=3 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:? 'u7' (layout( set=4 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:? 'u8' (layout( set=5 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:? 'anon@0' (layout( set=6 binding=1 row_major std140) uniform block{layout( row_major std140) uniform int cb1})
0:? 'anon@1' (layout( binding=7 row_major std430) readonly buffer block{layout( row_major std430) buffer int tb1})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)

View File

@ -26,8 +26,8 @@ local_size = (64, 1, 1)
0:7 2 (const int)
0:7 move second child to first child ( temp uint)
0:7 indirect index (layout( row_major std430) buffer uint)
0:7 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:7 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:7 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:7 Constant:
0:7 0 (const uint)
0:7 'byteAddrTemp' ( temp int)
@ -42,7 +42,7 @@ local_size = (64, 1, 1)
0:5 Function Call: @main(vu3; ( temp void)
0:? 'dispatchThreadID' ( temp 3-component vector of uint)
0:? Linker Objects
0:? 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID)
@ -76,8 +76,8 @@ local_size = (64, 1, 1)
0:7 2 (const int)
0:7 move second child to first child ( temp uint)
0:7 indirect index (layout( row_major std430) buffer uint)
0:7 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:7 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:7 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:7 Constant:
0:7 0 (const uint)
0:7 'byteAddrTemp' ( temp int)
@ -92,7 +92,7 @@ local_size = (64, 1, 1)
0:5 Function Call: @main(vu3; ( temp void)
0:? 'dispatchThreadID' ( temp 3-component vector of uint)
0:? Linker Objects
0:? 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID)
// Module Version 10000

View File

@ -4,15 +4,15 @@ gl_FragCoord origin is upper left
0:? Sequence
0:8 Function Definition: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float)
0:8 Function Parameters:
0:8 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:8 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:8 'arg_a@count' ( buffer block{layout( row_major std430) buffer int @count})
0:8 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:8 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:8 'arg_c@count' ( buffer block{layout( row_major std430) buffer int @count})
0:? Sequence
0:9 move second child to first child ( temp 4-component vector of float)
0:9 indirect index ( buffer 4-component vector of float)
0:9 @data: direct index for structure ( buffer implicitly-sized array of 4-component vector of float)
0:9 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:9 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of float)
0:9 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:9 Constant:
0:9 0 (const uint)
0:9 AtomicAdd ( temp uint)
@ -29,8 +29,8 @@ gl_FragCoord origin is upper left
0:? 4.000000
0:10 Branch: Return with expression
0:10 indirect index ( buffer 4-component vector of float)
0:10 @data: direct index for structure ( buffer implicitly-sized array of 4-component vector of float)
0:10 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:10 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of float)
0:10 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:10 Constant:
0:10 0 (const uint)
0:10 add ( temp uint)
@ -49,9 +49,9 @@ gl_FragCoord origin is upper left
0:? Sequence
0:22 Branch: Return with expression
0:22 Function Call: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float)
0:22 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:22 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:22 'sbuf_a@count' ( buffer block{layout( row_major std430) buffer int @count})
0:22 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:22 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:22 'sbuf_c@count' ( buffer block{layout( row_major std430) buffer int @count})
0:19 Function Definition: main( ( temp void)
0:19 Function Parameters:
@ -64,11 +64,11 @@ gl_FragCoord origin is upper left
0:19 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:? 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:? 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)
@ -81,15 +81,15 @@ gl_FragCoord origin is upper left
0:? Sequence
0:8 Function Definition: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float)
0:8 Function Parameters:
0:8 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:8 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:8 'arg_a@count' ( buffer block{layout( row_major std430) buffer int @count})
0:8 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:8 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:8 'arg_c@count' ( buffer block{layout( row_major std430) buffer int @count})
0:? Sequence
0:9 move second child to first child ( temp 4-component vector of float)
0:9 indirect index ( buffer 4-component vector of float)
0:9 @data: direct index for structure ( buffer implicitly-sized array of 4-component vector of float)
0:9 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:9 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of float)
0:9 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:9 Constant:
0:9 0 (const uint)
0:9 AtomicAdd ( temp uint)
@ -106,8 +106,8 @@ gl_FragCoord origin is upper left
0:? 4.000000
0:10 Branch: Return with expression
0:10 indirect index ( buffer 4-component vector of float)
0:10 @data: direct index for structure ( buffer implicitly-sized array of 4-component vector of float)
0:10 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:10 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of float)
0:10 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:10 Constant:
0:10 0 (const uint)
0:10 add ( temp uint)
@ -126,9 +126,9 @@ gl_FragCoord origin is upper left
0:? Sequence
0:22 Branch: Return with expression
0:22 Function Call: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float)
0:22 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:22 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:22 'sbuf_a@count' ( buffer block{layout( row_major std430) buffer int @count})
0:22 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:22 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:22 'sbuf_c@count' ( buffer block{layout( row_major std430) buffer int @count})
0:19 Function Definition: main( ( temp void)
0:19 Function Parameters:
@ -141,11 +141,11 @@ gl_FragCoord origin is upper left
0:19 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:? 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:? 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)

View File

@ -8,8 +8,8 @@ gl_FragCoord origin is upper left
0:? Sequence
0:8 move second child to first child ( temp 4-component vector of float)
0:8 indirect index (layout( row_major std430) buffer 4-component vector of float)
0:8 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
0:8 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
0:8 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:8 Constant:
0:8 0 (const uint)
0:8 AtomicAdd ( temp uint)
@ -26,8 +26,8 @@ gl_FragCoord origin is upper left
0:? 4.000000
0:10 Branch: Return with expression
0:10 indirect index (layout( row_major std430) buffer 4-component vector of float)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
0:10 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
0:10 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:10 Constant:
0:10 0 (const uint)
0:10 add ( temp uint)
@ -51,11 +51,11 @@ gl_FragCoord origin is upper left
0:7 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:? 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:? 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)
@ -72,8 +72,8 @@ gl_FragCoord origin is upper left
0:? Sequence
0:8 move second child to first child ( temp 4-component vector of float)
0:8 indirect index (layout( row_major std430) buffer 4-component vector of float)
0:8 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
0:8 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
0:8 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:8 Constant:
0:8 0 (const uint)
0:8 AtomicAdd ( temp uint)
@ -90,8 +90,8 @@ gl_FragCoord origin is upper left
0:? 4.000000
0:10 Branch: Return with expression
0:10 indirect index (layout( row_major std430) buffer 4-component vector of float)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
0:10 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
0:10 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:10 Constant:
0:10 0 (const uint)
0:10 add ( temp uint)
@ -115,11 +115,11 @@ gl_FragCoord origin is upper left
0:7 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:? 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:? 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)

View File

@ -8,8 +8,8 @@ gl_FragCoord origin is upper left
0:? Sequence
0:8 AtomicAdd ( temp void)
0:8 indirect index (layout( row_major std430) buffer uint)
0:8 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:8 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:8 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:8 Constant:
0:8 0 (const uint)
0:8 right-shift ( temp int)
@ -23,8 +23,8 @@ gl_FragCoord origin is upper left
0:9 'u' ( temp uint)
0:9 AtomicAdd ( temp uint)
0:9 indirect index (layout( row_major std430) buffer uint)
0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:9 Constant:
0:9 0 (const uint)
0:9 right-shift ( temp int)
@ -36,8 +36,8 @@ gl_FragCoord origin is upper left
0:9 1 (const int)
0:10 AtomicAnd ( temp void)
0:10 indirect index (layout( row_major std430) buffer uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 right-shift ( temp int)
@ -51,8 +51,8 @@ gl_FragCoord origin is upper left
0:11 'u' ( temp uint)
0:11 AtomicAnd ( temp uint)
0:11 indirect index (layout( row_major std430) buffer uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 right-shift ( temp int)
@ -67,8 +67,8 @@ gl_FragCoord origin is upper left
0:12 Convert int to uint ( temp uint)
0:12 AtomicCompSwap ( temp int)
0:12 indirect index (layout( row_major std430) buffer uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 right-shift ( temp int)
@ -84,8 +84,8 @@ gl_FragCoord origin is upper left
0:14 'u' ( temp uint)
0:14 AtomicExchange ( temp uint)
0:14 indirect index (layout( row_major std430) buffer uint)
0:14 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:14 Constant:
0:14 0 (const uint)
0:14 right-shift ( temp int)
@ -97,8 +97,8 @@ gl_FragCoord origin is upper left
0:14 1 (const int)
0:15 AtomicMax ( temp void)
0:15 indirect index (layout( row_major std430) buffer uint)
0:15 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:15 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:15 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:15 Constant:
0:15 0 (const uint)
0:15 right-shift ( temp int)
@ -112,8 +112,8 @@ gl_FragCoord origin is upper left
0:16 'u' ( temp uint)
0:16 AtomicMax ( temp uint)
0:16 indirect index (layout( row_major std430) buffer uint)
0:16 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:16 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:16 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:16 Constant:
0:16 0 (const uint)
0:16 right-shift ( temp int)
@ -125,8 +125,8 @@ gl_FragCoord origin is upper left
0:16 1 (const int)
0:17 AtomicMin ( temp void)
0:17 indirect index (layout( row_major std430) buffer uint)
0:17 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:17 Constant:
0:17 0 (const uint)
0:17 right-shift ( temp int)
@ -140,8 +140,8 @@ gl_FragCoord origin is upper left
0:18 'u' ( temp uint)
0:18 AtomicMin ( temp uint)
0:18 indirect index (layout( row_major std430) buffer uint)
0:18 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:18 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:18 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:18 Constant:
0:18 0 (const uint)
0:18 right-shift ( temp int)
@ -153,8 +153,8 @@ gl_FragCoord origin is upper left
0:18 1 (const int)
0:19 AtomicOr ( temp void)
0:19 indirect index (layout( row_major std430) buffer uint)
0:19 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:19 Constant:
0:19 0 (const uint)
0:19 right-shift ( temp int)
@ -168,8 +168,8 @@ gl_FragCoord origin is upper left
0:20 'u' ( temp uint)
0:20 AtomicOr ( temp uint)
0:20 indirect index (layout( row_major std430) buffer uint)
0:20 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:20 Constant:
0:20 0 (const uint)
0:20 right-shift ( temp int)
@ -181,8 +181,8 @@ gl_FragCoord origin is upper left
0:20 1 (const int)
0:21 AtomicXor ( temp void)
0:21 indirect index (layout( row_major std430) buffer uint)
0:21 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:21 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:21 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:21 Constant:
0:21 0 (const uint)
0:21 right-shift ( temp int)
@ -196,8 +196,8 @@ gl_FragCoord origin is upper left
0:22 'u' ( temp uint)
0:22 AtomicXor ( temp uint)
0:22 indirect index (layout( row_major std430) buffer uint)
0:22 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:22 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:22 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:22 Constant:
0:22 0 (const uint)
0:22 right-shift ( temp int)
@ -211,8 +211,8 @@ gl_FragCoord origin is upper left
0:24 Construct vec4 ( temp 4-component vector of float)
0:24 Convert uint to float ( temp float)
0:24 indirect index (layout( row_major std430) buffer uint)
0:24 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:24 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:24 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:24 Constant:
0:24 0 (const uint)
0:24 right-shift ( temp int)
@ -230,7 +230,7 @@ gl_FragCoord origin is upper left
0:5 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)
@ -247,8 +247,8 @@ gl_FragCoord origin is upper left
0:? Sequence
0:8 AtomicAdd ( temp void)
0:8 indirect index (layout( row_major std430) buffer uint)
0:8 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:8 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:8 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:8 Constant:
0:8 0 (const uint)
0:8 right-shift ( temp int)
@ -262,8 +262,8 @@ gl_FragCoord origin is upper left
0:9 'u' ( temp uint)
0:9 AtomicAdd ( temp uint)
0:9 indirect index (layout( row_major std430) buffer uint)
0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:9 Constant:
0:9 0 (const uint)
0:9 right-shift ( temp int)
@ -275,8 +275,8 @@ gl_FragCoord origin is upper left
0:9 1 (const int)
0:10 AtomicAnd ( temp void)
0:10 indirect index (layout( row_major std430) buffer uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 right-shift ( temp int)
@ -290,8 +290,8 @@ gl_FragCoord origin is upper left
0:11 'u' ( temp uint)
0:11 AtomicAnd ( temp uint)
0:11 indirect index (layout( row_major std430) buffer uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 right-shift ( temp int)
@ -306,8 +306,8 @@ gl_FragCoord origin is upper left
0:12 Convert int to uint ( temp uint)
0:12 AtomicCompSwap ( temp int)
0:12 indirect index (layout( row_major std430) buffer uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 right-shift ( temp int)
@ -323,8 +323,8 @@ gl_FragCoord origin is upper left
0:14 'u' ( temp uint)
0:14 AtomicExchange ( temp uint)
0:14 indirect index (layout( row_major std430) buffer uint)
0:14 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:14 Constant:
0:14 0 (const uint)
0:14 right-shift ( temp int)
@ -336,8 +336,8 @@ gl_FragCoord origin is upper left
0:14 1 (const int)
0:15 AtomicMax ( temp void)
0:15 indirect index (layout( row_major std430) buffer uint)
0:15 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:15 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:15 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:15 Constant:
0:15 0 (const uint)
0:15 right-shift ( temp int)
@ -351,8 +351,8 @@ gl_FragCoord origin is upper left
0:16 'u' ( temp uint)
0:16 AtomicMax ( temp uint)
0:16 indirect index (layout( row_major std430) buffer uint)
0:16 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:16 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:16 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:16 Constant:
0:16 0 (const uint)
0:16 right-shift ( temp int)
@ -364,8 +364,8 @@ gl_FragCoord origin is upper left
0:16 1 (const int)
0:17 AtomicMin ( temp void)
0:17 indirect index (layout( row_major std430) buffer uint)
0:17 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:17 Constant:
0:17 0 (const uint)
0:17 right-shift ( temp int)
@ -379,8 +379,8 @@ gl_FragCoord origin is upper left
0:18 'u' ( temp uint)
0:18 AtomicMin ( temp uint)
0:18 indirect index (layout( row_major std430) buffer uint)
0:18 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:18 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:18 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:18 Constant:
0:18 0 (const uint)
0:18 right-shift ( temp int)
@ -392,8 +392,8 @@ gl_FragCoord origin is upper left
0:18 1 (const int)
0:19 AtomicOr ( temp void)
0:19 indirect index (layout( row_major std430) buffer uint)
0:19 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:19 Constant:
0:19 0 (const uint)
0:19 right-shift ( temp int)
@ -407,8 +407,8 @@ gl_FragCoord origin is upper left
0:20 'u' ( temp uint)
0:20 AtomicOr ( temp uint)
0:20 indirect index (layout( row_major std430) buffer uint)
0:20 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:20 Constant:
0:20 0 (const uint)
0:20 right-shift ( temp int)
@ -420,8 +420,8 @@ gl_FragCoord origin is upper left
0:20 1 (const int)
0:21 AtomicXor ( temp void)
0:21 indirect index (layout( row_major std430) buffer uint)
0:21 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:21 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:21 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:21 Constant:
0:21 0 (const uint)
0:21 right-shift ( temp int)
@ -435,8 +435,8 @@ gl_FragCoord origin is upper left
0:22 'u' ( temp uint)
0:22 AtomicXor ( temp uint)
0:22 indirect index (layout( row_major std430) buffer uint)
0:22 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:22 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:22 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:22 Constant:
0:22 0 (const uint)
0:22 right-shift ( temp int)
@ -450,8 +450,8 @@ gl_FragCoord origin is upper left
0:24 Construct vec4 ( temp 4-component vector of float)
0:24 Convert uint to float ( temp float)
0:24 indirect index (layout( row_major std430) buffer uint)
0:24 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:24 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:24 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:24 Constant:
0:24 0 (const uint)
0:24 right-shift ( temp int)
@ -469,7 +469,7 @@ gl_FragCoord origin is upper left
0:5 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)

View File

@ -10,8 +10,8 @@ gl_FragCoord origin is upper left
0:7 move second child to first child ( temp uint)
0:7 'size' ( temp uint)
0:7 array length ( temp uint)
0:7 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:7 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:7 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:7 Constant:
0:7 0 (const uint)
0:12 Branch: Return with expression
@ -20,8 +20,8 @@ gl_FragCoord origin is upper left
0:9 add ( temp 4-component vector of float)
0:9 Convert uint to float ( temp float)
0:9 indirect index (layout( row_major std430) buffer uint)
0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:9 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:9 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:9 Constant:
0:9 0 (const uint)
0:9 right-shift ( temp int)
@ -42,14 +42,14 @@ gl_FragCoord origin is upper left
0:10 2 (const int)
0:? Construct vec2 ( temp 2-component vector of uint)
0:10 indirect index ( temp uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 'byteAddrTemp' ( temp int)
0:10 indirect index ( temp uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 add ( temp int)
@ -74,14 +74,14 @@ gl_FragCoord origin is upper left
0:11 2 (const int)
0:? Construct vec3 ( temp 3-component vector of uint)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 'byteAddrTemp' ( temp int)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -89,8 +89,8 @@ gl_FragCoord origin is upper left
0:11 Constant:
0:11 1 (const int)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -112,14 +112,14 @@ gl_FragCoord origin is upper left
0:12 2 (const int)
0:? Construct vec4 ( temp 4-component vector of uint)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 'byteAddrTemp' ( temp int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -127,8 +127,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 1 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -136,8 +136,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 2 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -155,7 +155,7 @@ gl_FragCoord origin is upper left
0:5 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)
@ -174,8 +174,8 @@ gl_FragCoord origin is upper left
0:7 move second child to first child ( temp uint)
0:7 'size' ( temp uint)
0:7 array length ( temp uint)
0:7 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:7 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:7 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:7 Constant:
0:7 0 (const uint)
0:12 Branch: Return with expression
@ -184,8 +184,8 @@ gl_FragCoord origin is upper left
0:9 add ( temp 4-component vector of float)
0:9 Convert uint to float ( temp float)
0:9 indirect index (layout( row_major std430) buffer uint)
0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:9 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:9 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:9 Constant:
0:9 0 (const uint)
0:9 right-shift ( temp int)
@ -206,14 +206,14 @@ gl_FragCoord origin is upper left
0:10 2 (const int)
0:? Construct vec2 ( temp 2-component vector of uint)
0:10 indirect index ( temp uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 'byteAddrTemp' ( temp int)
0:10 indirect index ( temp uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 add ( temp int)
@ -238,14 +238,14 @@ gl_FragCoord origin is upper left
0:11 2 (const int)
0:? Construct vec3 ( temp 3-component vector of uint)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 'byteAddrTemp' ( temp int)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -253,8 +253,8 @@ gl_FragCoord origin is upper left
0:11 Constant:
0:11 1 (const int)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -276,14 +276,14 @@ gl_FragCoord origin is upper left
0:12 2 (const int)
0:? Construct vec4 ( temp 4-component vector of uint)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 'byteAddrTemp' ( temp int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -291,8 +291,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 1 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -300,8 +300,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 2 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -319,7 +319,7 @@ gl_FragCoord origin is upper left
0:5 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)

View File

@ -8,8 +8,8 @@ gl_FragCoord origin is upper left
0:? Sequence
0:13 move second child to first child ( temp float)
0:13 indirect index (layout( row_major std430) buffer float)
0:13 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of float)
0:13 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float)
0:13 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:13 Constant:
0:13 0 (const uint)
0:13 add ( temp uint)
@ -22,8 +22,8 @@ gl_FragCoord origin is upper left
0:17 move second child to first child ( temp uint)
0:17 'size' ( temp uint)
0:17 array length ( temp uint)
0:17 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test})
0:17 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test})
0:17 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:17 Constant:
0:17 0 (const uint)
0:17 move second child to first child ( temp uint)
@ -34,8 +34,8 @@ gl_FragCoord origin is upper left
0:19 Condition
0:19 test: direct index for structure ( temp bool)
0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test})
0:19 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test})
0:19 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test})
0:19 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:19 Constant:
0:19 0 (const uint)
0:19 'pos' ( in uint)
@ -47,16 +47,16 @@ gl_FragCoord origin is upper left
0:20 add ( temp 3-component vector of float)
0:20 color: direct index for structure ( temp 3-component vector of float)
0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test})
0:20 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test})
0:20 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test})
0:20 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:20 Constant:
0:20 0 (const uint)
0:20 'pos' ( in uint)
0:20 Constant:
0:20 0 (const int)
0:20 indirect index (layout( row_major std430) buffer float)
0:20 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of float)
0:20 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float)
0:20 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:20 Constant:
0:20 0 (const uint)
0:20 'pos' ( in uint)
@ -80,8 +80,8 @@ gl_FragCoord origin is upper left
0:12 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:? 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:? 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:? 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)
@ -98,8 +98,8 @@ gl_FragCoord origin is upper left
0:? Sequence
0:13 move second child to first child ( temp float)
0:13 indirect index (layout( row_major std430) buffer float)
0:13 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of float)
0:13 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float)
0:13 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:13 Constant:
0:13 0 (const uint)
0:13 add ( temp uint)
@ -112,8 +112,8 @@ gl_FragCoord origin is upper left
0:17 move second child to first child ( temp uint)
0:17 'size' ( temp uint)
0:17 array length ( temp uint)
0:17 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test})
0:17 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test})
0:17 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:17 Constant:
0:17 0 (const uint)
0:17 move second child to first child ( temp uint)
@ -124,8 +124,8 @@ gl_FragCoord origin is upper left
0:19 Condition
0:19 test: direct index for structure ( temp bool)
0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test})
0:19 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test})
0:19 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test})
0:19 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:19 Constant:
0:19 0 (const uint)
0:19 'pos' ( in uint)
@ -137,16 +137,16 @@ gl_FragCoord origin is upper left
0:20 add ( temp 3-component vector of float)
0:20 color: direct index for structure ( temp 3-component vector of float)
0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test})
0:20 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test})
0:20 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test})
0:20 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:20 Constant:
0:20 0 (const uint)
0:20 'pos' ( in uint)
0:20 Constant:
0:20 0 (const int)
0:20 indirect index (layout( row_major std430) buffer float)
0:20 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of float)
0:20 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float)
0:20 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:20 Constant:
0:20 0 (const uint)
0:20 'pos' ( in uint)
@ -170,8 +170,8 @@ gl_FragCoord origin is upper left
0:12 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:? 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:? 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:? 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)

View File

@ -10,8 +10,8 @@ local_size = (1, 1, 1)
0:14 move second child to first child ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId})
0:14 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId})
0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId})
0:14 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId})
0:14 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data})
0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId})
0:14 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data})
0:14 Constant:
0:14 0 (const uint)
0:14 add ( temp uint)
@ -53,8 +53,8 @@ local_size = (1, 1, 1)
0:16 'storeTemp' ( temp 4-component vector of float)
0:18 move second child to first child ( temp 4-component vector of float)
0:18 indirect index (layout( row_major std430) buffer 4-component vector of float)
0:18 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:18 Constant:
0:18 0 (const uint)
0:18 Convert float to uint ( temp uint)
@ -63,8 +63,8 @@ local_size = (1, 1, 1)
0:18 Constant:
0:18 0 (const int)
0:18 indirect index (layout( row_major std430) buffer 4-component vector of float)
0:18 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:18 Constant:
0:18 0 (const uint)
0:18 Convert float to uint ( temp uint)
@ -82,9 +82,9 @@ local_size = (1, 1, 1)
0:? 'nThreadId' ( temp 3-component vector of uint)
0:? Linker Objects
0:? 'outtx' (layout( rgba32f) uniform image2D)
0:? 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data})
0:? 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data})
0:? 'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:? 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:? 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:? 'nThreadId' ( in 3-component vector of uint GlobalInvocationID)
@ -102,8 +102,8 @@ local_size = (1, 1, 1)
0:14 move second child to first child ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId})
0:14 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId})
0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId})
0:14 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId})
0:14 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data})
0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId})
0:14 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data})
0:14 Constant:
0:14 0 (const uint)
0:14 add ( temp uint)
@ -145,8 +145,8 @@ local_size = (1, 1, 1)
0:16 'storeTemp' ( temp 4-component vector of float)
0:18 move second child to first child ( temp 4-component vector of float)
0:18 indirect index (layout( row_major std430) buffer 4-component vector of float)
0:18 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:18 Constant:
0:18 0 (const uint)
0:18 Convert float to uint ( temp uint)
@ -155,8 +155,8 @@ local_size = (1, 1, 1)
0:18 Constant:
0:18 0 (const int)
0:18 indirect index (layout( row_major std430) buffer 4-component vector of float)
0:18 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:18 Constant:
0:18 0 (const uint)
0:18 Convert float to uint ( temp uint)
@ -174,9 +174,9 @@ local_size = (1, 1, 1)
0:? 'nThreadId' ( temp 3-component vector of uint)
0:? Linker Objects
0:? 'outtx' (layout( rgba32f) uniform image2D)
0:? 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data})
0:? 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data})
0:? 'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:? 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:? 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:? 'nThreadId' ( in 3-component vector of uint GlobalInvocationID)
// Module Version 10000

View File

@ -4,27 +4,27 @@ gl_FragCoord origin is upper left
0:? Sequence
0:5 Function Definition: get(block--vu4[0]1;u1; ( temp 4-component vector of uint)
0:5 Function Parameters:
0:5 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:5 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:5 'bufferOffset' ( in uint)
0:? Sequence
0:6 Branch: Return with expression
0:6 indirect index (layout( row_major std430) buffer 4-component vector of uint)
0:6 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint)
0:6 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
0:6 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:6 Constant:
0:6 0 (const uint)
0:6 'bufferOffset' ( in uint)
0:10 Function Definition: set(block--vu4[0]1;u1;vu4; ( temp void)
0:10 Function Parameters:
0:10 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:10 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:10 'sb@count' ( buffer block{layout( row_major std430) buffer int @count})
0:10 'bufferOffset' ( in uint)
0:10 'data' ( in 4-component vector of uint)
0:? Sequence
0:11 move second child to first child ( temp 4-component vector of uint)
0:11 indirect index ( buffer 4-component vector of uint)
0:11 @data: direct index for structure ( buffer implicitly-sized array of 4-component vector of uint)
0:11 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:11 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of uint)
0:11 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 'bufferOffset' ( in uint)
@ -34,12 +34,12 @@ gl_FragCoord origin is upper left
0:20 'pos' ( in uint)
0:? Sequence
0:21 Function Call: set(block--vu4[0]1;u1;vu4; ( temp void)
0:21 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:21 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:21 'sbuf2@count' ( buffer block{layout( row_major std430) buffer int @count})
0:21 Constant:
0:21 2 (const uint)
0:21 Function Call: get(block--vu4[0]1;u1; ( temp 4-component vector of uint)
0:21 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:21 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:21 Constant:
0:21 3 (const uint)
0:23 Branch: Return with expression
@ -59,10 +59,10 @@ gl_FragCoord origin is upper left
0:20 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:? 'sbuf2@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:? 'sbuf3' (layout( binding=12 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 3-component vector of uint @data})
0:? 'sbuf3' (layout( binding=12 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 3-component vector of uint @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)
@ -75,27 +75,27 @@ gl_FragCoord origin is upper left
0:? Sequence
0:5 Function Definition: get(block--vu4[0]1;u1; ( temp 4-component vector of uint)
0:5 Function Parameters:
0:5 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:5 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:5 'bufferOffset' ( in uint)
0:? Sequence
0:6 Branch: Return with expression
0:6 indirect index (layout( row_major std430) buffer 4-component vector of uint)
0:6 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint)
0:6 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
0:6 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:6 Constant:
0:6 0 (const uint)
0:6 'bufferOffset' ( in uint)
0:10 Function Definition: set(block--vu4[0]1;u1;vu4; ( temp void)
0:10 Function Parameters:
0:10 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:10 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:10 'sb@count' ( buffer block{layout( row_major std430) buffer int @count})
0:10 'bufferOffset' ( in uint)
0:10 'data' ( in 4-component vector of uint)
0:? Sequence
0:11 move second child to first child ( temp 4-component vector of uint)
0:11 indirect index ( buffer 4-component vector of uint)
0:11 @data: direct index for structure ( buffer implicitly-sized array of 4-component vector of uint)
0:11 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:11 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of uint)
0:11 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 'bufferOffset' ( in uint)
@ -105,12 +105,12 @@ gl_FragCoord origin is upper left
0:20 'pos' ( in uint)
0:? Sequence
0:21 Function Call: set(block--vu4[0]1;u1;vu4; ( temp void)
0:21 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:21 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:21 'sbuf2@count' ( buffer block{layout( row_major std430) buffer int @count})
0:21 Constant:
0:21 2 (const uint)
0:21 Function Call: get(block--vu4[0]1;u1; ( temp 4-component vector of uint)
0:21 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:21 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:21 Constant:
0:21 3 (const uint)
0:23 Branch: Return with expression
@ -130,10 +130,10 @@ gl_FragCoord origin is upper left
0:20 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:? 'sbuf2@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:? 'sbuf3' (layout( binding=12 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 3-component vector of uint @data})
0:? 'sbuf3' (layout( binding=12 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 3-component vector of uint @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)

View File

@ -5,7 +5,7 @@ local_size = (256, 1, 1)
0:5 Function Definition: testLoad(u1;block--u1[0]1; ( temp 2-component vector of uint)
0:5 Function Parameters:
0:5 'loc' ( in uint)
0:5 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:5 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:? Sequence
0:6 Sequence
0:6 move second child to first child ( temp 2-component vector of uint)
@ -19,14 +19,14 @@ local_size = (256, 1, 1)
0:6 2 (const int)
0:? Construct vec2 ( temp 2-component vector of uint)
0:6 indirect index ( temp uint)
0:6 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:6 Constant:
0:6 0 (const uint)
0:6 'byteAddrTemp' ( temp int)
0:6 indirect index ( temp uint)
0:6 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:6 Constant:
0:6 0 (const uint)
0:6 add ( temp int)
@ -44,7 +44,7 @@ local_size = (256, 1, 1)
0:13 'result' ( temp 2-component vector of uint)
0:13 Function Call: testLoad(u1;block--u1[0]1; ( temp 2-component vector of uint)
0:13 'dispatchId' ( in uint)
0:13 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:13 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:14 Sequence
0:14 imageStore ( temp void)
0:14 'g_output' (layout( binding=1 rg32ui) uniform uimageBuffer)
@ -60,7 +60,7 @@ local_size = (256, 1, 1)
0:12 Function Call: @main(u1; ( temp void)
0:? 'dispatchId' ( temp uint)
0:? Linker Objects
0:? 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:? 'g_output' (layout( binding=1 rg32ui) uniform uimageBuffer)
0:? 'dispatchId' ( in uint GlobalInvocationID)
@ -74,7 +74,7 @@ local_size = (256, 1, 1)
0:5 Function Definition: testLoad(u1;block--u1[0]1; ( temp 2-component vector of uint)
0:5 Function Parameters:
0:5 'loc' ( in uint)
0:5 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:5 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:? Sequence
0:6 Sequence
0:6 move second child to first child ( temp 2-component vector of uint)
@ -88,14 +88,14 @@ local_size = (256, 1, 1)
0:6 2 (const int)
0:? Construct vec2 ( temp 2-component vector of uint)
0:6 indirect index ( temp uint)
0:6 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:6 Constant:
0:6 0 (const uint)
0:6 'byteAddrTemp' ( temp int)
0:6 indirect index ( temp uint)
0:6 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:6 Constant:
0:6 0 (const uint)
0:6 add ( temp int)
@ -113,7 +113,7 @@ local_size = (256, 1, 1)
0:13 'result' ( temp 2-component vector of uint)
0:13 Function Call: testLoad(u1;block--u1[0]1; ( temp 2-component vector of uint)
0:13 'dispatchId' ( in uint)
0:13 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:13 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:14 Sequence
0:14 imageStore ( temp void)
0:14 'g_output' (layout( binding=1 rg32ui) uniform uimageBuffer)
@ -129,7 +129,7 @@ local_size = (256, 1, 1)
0:12 Function Call: @main(u1; ( temp void)
0:? 'dispatchId' ( temp uint)
0:? Linker Objects
0:? 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:? 'g_output' (layout( binding=1 rg32ui) uniform uimageBuffer)
0:? 'dispatchId' ( in uint GlobalInvocationID)

View File

@ -10,8 +10,8 @@ gl_FragCoord origin is upper left
0:13 move second child to first child ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:13 'mydata' ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:13 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:13 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:13 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:13 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:13 Constant:
0:13 0 (const uint)
0:13 'pos' ( in uint)
@ -19,8 +19,8 @@ gl_FragCoord origin is upper left
0:17 move second child to first child ( temp uint)
0:17 'size' ( temp uint)
0:17 array length ( temp uint)
0:17 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:17 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:17 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:17 Constant:
0:17 0 (const uint)
0:17 move second child to first child ( temp uint)
@ -31,8 +31,8 @@ gl_FragCoord origin is upper left
0:19 Condition
0:19 test: direct index for structure ( temp bool)
0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:19 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:19 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:19 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:19 Constant:
0:19 0 (const uint)
0:19 'pos' ( in uint)
@ -44,16 +44,16 @@ gl_FragCoord origin is upper left
0:20 add ( temp 3-component vector of float)
0:20 color: direct index for structure ( temp 3-component vector of float)
0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:20 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:20 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:20 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:20 Constant:
0:20 0 (const uint)
0:20 'pos' ( in uint)
0:20 Constant:
0:20 0 (const int)
0:20 indirect index (layout( row_major std430) buffer float)
0:20 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of float)
0:20 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float)
0:20 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:20 Constant:
0:20 0 (const uint)
0:20 'pos' ( in uint)
@ -86,8 +86,8 @@ gl_FragCoord origin is upper left
0:12 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:? 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:? 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)
@ -106,8 +106,8 @@ gl_FragCoord origin is upper left
0:13 move second child to first child ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:13 'mydata' ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:13 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:13 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:13 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:13 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:13 Constant:
0:13 0 (const uint)
0:13 'pos' ( in uint)
@ -115,8 +115,8 @@ gl_FragCoord origin is upper left
0:17 move second child to first child ( temp uint)
0:17 'size' ( temp uint)
0:17 array length ( temp uint)
0:17 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:17 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:17 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:17 Constant:
0:17 0 (const uint)
0:17 move second child to first child ( temp uint)
@ -127,8 +127,8 @@ gl_FragCoord origin is upper left
0:19 Condition
0:19 test: direct index for structure ( temp bool)
0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:19 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:19 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:19 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:19 Constant:
0:19 0 (const uint)
0:19 'pos' ( in uint)
@ -140,16 +140,16 @@ gl_FragCoord origin is upper left
0:20 add ( temp 3-component vector of float)
0:20 color: direct index for structure ( temp 3-component vector of float)
0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:20 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:20 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2})
0:20 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:20 Constant:
0:20 0 (const uint)
0:20 'pos' ( in uint)
0:20 Constant:
0:20 0 (const int)
0:20 indirect index (layout( row_major std430) buffer float)
0:20 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of float)
0:20 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float)
0:20 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:20 Constant:
0:20 0 (const uint)
0:20 'pos' ( in uint)
@ -182,8 +182,8 @@ gl_FragCoord origin is upper left
0:12 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:? 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data})
0:? 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)

View File

@ -15,23 +15,23 @@ gl_FragCoord origin is upper left
0:8 0 (const uint)
0:8 0 (const uint)
0:10 direct index (layout( row_major std430) buffer 4-component vector of uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint)
0:10 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
0:10 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 Constant:
0:10 7 (const int)
0:11 direct index (layout( row_major std430) buffer 4-component vector of uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint)
0:11 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
0:11 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 Constant:
0:11 7 (const int)
0:13 move second child to first child ( temp 4-component vector of uint)
0:13 direct index (layout( row_major std430) buffer 4-component vector of uint)
0:13 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint)
0:13 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
0:13 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:13 Constant:
0:13 0 (const uint)
0:13 Constant:
@ -91,11 +91,11 @@ gl_FragCoord origin is upper left
0:7 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:? 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:? 'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:? 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:? 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:? 'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:? 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:? 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)
@ -119,23 +119,23 @@ gl_FragCoord origin is upper left
0:8 0 (const uint)
0:8 0 (const uint)
0:10 direct index (layout( row_major std430) buffer 4-component vector of uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint)
0:10 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
0:10 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 Constant:
0:10 7 (const int)
0:11 direct index (layout( row_major std430) buffer 4-component vector of uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint)
0:11 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
0:11 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 Constant:
0:11 7 (const int)
0:13 move second child to first child ( temp 4-component vector of uint)
0:13 direct index (layout( row_major std430) buffer 4-component vector of uint)
0:13 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint)
0:13 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
0:13 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:13 Constant:
0:13 0 (const uint)
0:13 Constant:
@ -195,11 +195,11 @@ gl_FragCoord origin is upper left
0:7 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:? 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:? 'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:? 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:? 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:? 'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:? 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
0:? 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)

View File

@ -8,8 +8,8 @@ gl_FragCoord origin is upper left
0:? Sequence
0:13 move second child to first child ( temp float)
0:13 indirect index (layout( row_major std430) buffer float)
0:13 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of float)
0:13 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float)
0:13 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:13 Constant:
0:13 0 (const uint)
0:13 add ( temp uint)
@ -22,8 +22,8 @@ gl_FragCoord origin is upper left
0:17 move second child to first child ( temp uint)
0:17 'size' ( temp uint)
0:17 array length ( temp uint)
0:17 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test})
0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test})
0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:17 Constant:
0:17 0 (const uint)
0:17 move second child to first child ( temp uint)
@ -34,8 +34,8 @@ gl_FragCoord origin is upper left
0:19 Condition
0:19 test: direct index for structure ( temp bool)
0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test})
0:19 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test})
0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test})
0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:19 Constant:
0:19 0 (const uint)
0:19 'pos' ( in uint)
@ -47,16 +47,16 @@ gl_FragCoord origin is upper left
0:20 add ( temp 3-component vector of float)
0:20 color: direct index for structure ( temp 3-component vector of float)
0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test})
0:20 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test})
0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test})
0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:20 Constant:
0:20 0 (const uint)
0:20 'pos' ( in uint)
0:20 Constant:
0:20 0 (const int)
0:20 indirect index (layout( row_major std430) buffer float)
0:20 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of float)
0:20 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float)
0:20 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:20 Constant:
0:20 0 (const uint)
0:20 'pos' ( in uint)
@ -80,8 +80,8 @@ gl_FragCoord origin is upper left
0:12 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)
@ -98,8 +98,8 @@ gl_FragCoord origin is upper left
0:? Sequence
0:13 move second child to first child ( temp float)
0:13 indirect index (layout( row_major std430) buffer float)
0:13 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of float)
0:13 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float)
0:13 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:13 Constant:
0:13 0 (const uint)
0:13 add ( temp uint)
@ -112,8 +112,8 @@ gl_FragCoord origin is upper left
0:17 move second child to first child ( temp uint)
0:17 'size' ( temp uint)
0:17 array length ( temp uint)
0:17 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test})
0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test})
0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:17 Constant:
0:17 0 (const uint)
0:17 move second child to first child ( temp uint)
@ -124,8 +124,8 @@ gl_FragCoord origin is upper left
0:19 Condition
0:19 test: direct index for structure ( temp bool)
0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test})
0:19 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test})
0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test})
0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:19 Constant:
0:19 0 (const uint)
0:19 'pos' ( in uint)
@ -137,16 +137,16 @@ gl_FragCoord origin is upper left
0:20 add ( temp 3-component vector of float)
0:20 color: direct index for structure ( temp 3-component vector of float)
0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test})
0:20 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test})
0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test})
0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:20 Constant:
0:20 0 (const uint)
0:20 'pos' ( in uint)
0:20 Constant:
0:20 0 (const int)
0:20 indirect index (layout( row_major std430) buffer float)
0:20 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of float)
0:20 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float)
0:20 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:20 Constant:
0:20 0 (const uint)
0:20 'pos' ( in uint)
@ -170,8 +170,8 @@ gl_FragCoord origin is upper left
0:12 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of float @data})
0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data})
0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)

View File

@ -10,8 +10,8 @@ gl_FragCoord origin is upper left
0:7 move second child to first child ( temp uint)
0:7 'size' ( temp uint)
0:7 array length ( temp uint)
0:7 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:7 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:7 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:7 Constant:
0:7 0 (const uint)
0:? Sequence
@ -23,14 +23,14 @@ gl_FragCoord origin is upper left
0:9 2 (const int)
0:9 move second child to first child ( temp uint)
0:9 indirect index (layout( row_major std430) buffer uint)
0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:9 Constant:
0:9 0 (const uint)
0:9 'byteAddrTemp' ( temp int)
0:9 indirect index (layout( row_major std430) buffer uint)
0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:9 Constant:
0:9 0 (const uint)
0:9 right-shift ( temp int)
@ -46,8 +46,8 @@ gl_FragCoord origin is upper left
0:10 2 (const int)
0:10 move second child to first child ( temp uint)
0:10 indirect index (layout( row_major std430) buffer uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 'byteAddrTemp' ( temp int)
@ -61,14 +61,14 @@ gl_FragCoord origin is upper left
0:10 2 (const int)
0:? Construct vec2 ( temp 2-component vector of uint)
0:10 indirect index ( temp uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 'byteAddrTemp' ( temp int)
0:10 indirect index ( temp uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 add ( temp int)
@ -79,8 +79,8 @@ gl_FragCoord origin is upper left
0:10 0 (const int)
0:10 move second child to first child ( temp uint)
0:10 indirect index (layout( row_major std430) buffer uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 add ( temp int)
@ -97,14 +97,14 @@ gl_FragCoord origin is upper left
0:10 2 (const int)
0:? Construct vec2 ( temp 2-component vector of uint)
0:10 indirect index ( temp uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 'byteAddrTemp' ( temp int)
0:10 indirect index ( temp uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 add ( temp int)
@ -122,8 +122,8 @@ gl_FragCoord origin is upper left
0:11 2 (const int)
0:11 move second child to first child ( temp uint)
0:11 indirect index (layout( row_major std430) buffer uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 'byteAddrTemp' ( temp int)
@ -137,14 +137,14 @@ gl_FragCoord origin is upper left
0:11 2 (const int)
0:? Construct vec3 ( temp 3-component vector of uint)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 'byteAddrTemp' ( temp int)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -152,8 +152,8 @@ gl_FragCoord origin is upper left
0:11 Constant:
0:11 1 (const int)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -164,8 +164,8 @@ gl_FragCoord origin is upper left
0:11 0 (const int)
0:11 move second child to first child ( temp uint)
0:11 indirect index (layout( row_major std430) buffer uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -182,14 +182,14 @@ gl_FragCoord origin is upper left
0:11 2 (const int)
0:? Construct vec3 ( temp 3-component vector of uint)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 'byteAddrTemp' ( temp int)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -197,8 +197,8 @@ gl_FragCoord origin is upper left
0:11 Constant:
0:11 1 (const int)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -209,8 +209,8 @@ gl_FragCoord origin is upper left
0:11 1 (const int)
0:11 move second child to first child ( temp uint)
0:11 indirect index (layout( row_major std430) buffer uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -227,14 +227,14 @@ gl_FragCoord origin is upper left
0:11 2 (const int)
0:? Construct vec3 ( temp 3-component vector of uint)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 'byteAddrTemp' ( temp int)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -242,8 +242,8 @@ gl_FragCoord origin is upper left
0:11 Constant:
0:11 1 (const int)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -261,8 +261,8 @@ gl_FragCoord origin is upper left
0:12 2 (const int)
0:12 move second child to first child ( temp uint)
0:12 indirect index (layout( row_major std430) buffer uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 'byteAddrTemp' ( temp int)
@ -276,14 +276,14 @@ gl_FragCoord origin is upper left
0:12 2 (const int)
0:? Construct vec4 ( temp 4-component vector of uint)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 'byteAddrTemp' ( temp int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -291,8 +291,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 1 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -300,8 +300,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 2 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -312,8 +312,8 @@ gl_FragCoord origin is upper left
0:12 0 (const int)
0:12 move second child to first child ( temp uint)
0:12 indirect index (layout( row_major std430) buffer uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -330,14 +330,14 @@ gl_FragCoord origin is upper left
0:12 2 (const int)
0:? Construct vec4 ( temp 4-component vector of uint)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 'byteAddrTemp' ( temp int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -345,8 +345,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 1 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -354,8 +354,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 2 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -366,8 +366,8 @@ gl_FragCoord origin is upper left
0:12 1 (const int)
0:12 move second child to first child ( temp uint)
0:12 indirect index (layout( row_major std430) buffer uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -384,14 +384,14 @@ gl_FragCoord origin is upper left
0:12 2 (const int)
0:? Construct vec4 ( temp 4-component vector of uint)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 'byteAddrTemp' ( temp int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -399,8 +399,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 1 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -408,8 +408,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 2 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -420,8 +420,8 @@ gl_FragCoord origin is upper left
0:12 2 (const int)
0:12 move second child to first child ( temp uint)
0:12 indirect index (layout( row_major std430) buffer uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -438,14 +438,14 @@ gl_FragCoord origin is upper left
0:12 2 (const int)
0:? Construct vec4 ( temp 4-component vector of uint)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 'byteAddrTemp' ( temp int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -453,8 +453,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 1 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -462,8 +462,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 2 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -476,8 +476,8 @@ gl_FragCoord origin is upper left
0:14 Construct vec4 ( temp 4-component vector of float)
0:14 Convert uint to float ( temp float)
0:14 indirect index (layout( row_major std430) buffer uint)
0:14 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:14 Constant:
0:14 0 (const uint)
0:14 right-shift ( temp int)
@ -495,7 +495,7 @@ gl_FragCoord origin is upper left
0:5 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)
@ -514,8 +514,8 @@ gl_FragCoord origin is upper left
0:7 move second child to first child ( temp uint)
0:7 'size' ( temp uint)
0:7 array length ( temp uint)
0:7 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:7 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:7 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:7 Constant:
0:7 0 (const uint)
0:? Sequence
@ -527,14 +527,14 @@ gl_FragCoord origin is upper left
0:9 2 (const int)
0:9 move second child to first child ( temp uint)
0:9 indirect index (layout( row_major std430) buffer uint)
0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:9 Constant:
0:9 0 (const uint)
0:9 'byteAddrTemp' ( temp int)
0:9 indirect index (layout( row_major std430) buffer uint)
0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:9 Constant:
0:9 0 (const uint)
0:9 right-shift ( temp int)
@ -550,8 +550,8 @@ gl_FragCoord origin is upper left
0:10 2 (const int)
0:10 move second child to first child ( temp uint)
0:10 indirect index (layout( row_major std430) buffer uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 'byteAddrTemp' ( temp int)
@ -565,14 +565,14 @@ gl_FragCoord origin is upper left
0:10 2 (const int)
0:? Construct vec2 ( temp 2-component vector of uint)
0:10 indirect index ( temp uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 'byteAddrTemp' ( temp int)
0:10 indirect index ( temp uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 add ( temp int)
@ -583,8 +583,8 @@ gl_FragCoord origin is upper left
0:10 0 (const int)
0:10 move second child to first child ( temp uint)
0:10 indirect index (layout( row_major std430) buffer uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 add ( temp int)
@ -601,14 +601,14 @@ gl_FragCoord origin is upper left
0:10 2 (const int)
0:? Construct vec2 ( temp 2-component vector of uint)
0:10 indirect index ( temp uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 'byteAddrTemp' ( temp int)
0:10 indirect index ( temp uint)
0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10 Constant:
0:10 0 (const uint)
0:10 add ( temp int)
@ -626,8 +626,8 @@ gl_FragCoord origin is upper left
0:11 2 (const int)
0:11 move second child to first child ( temp uint)
0:11 indirect index (layout( row_major std430) buffer uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 'byteAddrTemp' ( temp int)
@ -641,14 +641,14 @@ gl_FragCoord origin is upper left
0:11 2 (const int)
0:? Construct vec3 ( temp 3-component vector of uint)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 'byteAddrTemp' ( temp int)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -656,8 +656,8 @@ gl_FragCoord origin is upper left
0:11 Constant:
0:11 1 (const int)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -668,8 +668,8 @@ gl_FragCoord origin is upper left
0:11 0 (const int)
0:11 move second child to first child ( temp uint)
0:11 indirect index (layout( row_major std430) buffer uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -686,14 +686,14 @@ gl_FragCoord origin is upper left
0:11 2 (const int)
0:? Construct vec3 ( temp 3-component vector of uint)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 'byteAddrTemp' ( temp int)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -701,8 +701,8 @@ gl_FragCoord origin is upper left
0:11 Constant:
0:11 1 (const int)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -713,8 +713,8 @@ gl_FragCoord origin is upper left
0:11 1 (const int)
0:11 move second child to first child ( temp uint)
0:11 indirect index (layout( row_major std430) buffer uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -731,14 +731,14 @@ gl_FragCoord origin is upper left
0:11 2 (const int)
0:? Construct vec3 ( temp 3-component vector of uint)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 'byteAddrTemp' ( temp int)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -746,8 +746,8 @@ gl_FragCoord origin is upper left
0:11 Constant:
0:11 1 (const int)
0:11 indirect index ( temp uint)
0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11 Constant:
0:11 0 (const uint)
0:11 add ( temp int)
@ -765,8 +765,8 @@ gl_FragCoord origin is upper left
0:12 2 (const int)
0:12 move second child to first child ( temp uint)
0:12 indirect index (layout( row_major std430) buffer uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 'byteAddrTemp' ( temp int)
@ -780,14 +780,14 @@ gl_FragCoord origin is upper left
0:12 2 (const int)
0:? Construct vec4 ( temp 4-component vector of uint)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 'byteAddrTemp' ( temp int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -795,8 +795,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 1 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -804,8 +804,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 2 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -816,8 +816,8 @@ gl_FragCoord origin is upper left
0:12 0 (const int)
0:12 move second child to first child ( temp uint)
0:12 indirect index (layout( row_major std430) buffer uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -834,14 +834,14 @@ gl_FragCoord origin is upper left
0:12 2 (const int)
0:? Construct vec4 ( temp 4-component vector of uint)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 'byteAddrTemp' ( temp int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -849,8 +849,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 1 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -858,8 +858,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 2 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -870,8 +870,8 @@ gl_FragCoord origin is upper left
0:12 1 (const int)
0:12 move second child to first child ( temp uint)
0:12 indirect index (layout( row_major std430) buffer uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -888,14 +888,14 @@ gl_FragCoord origin is upper left
0:12 2 (const int)
0:? Construct vec4 ( temp 4-component vector of uint)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 'byteAddrTemp' ( temp int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -903,8 +903,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 1 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -912,8 +912,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 2 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -924,8 +924,8 @@ gl_FragCoord origin is upper left
0:12 2 (const int)
0:12 move second child to first child ( temp uint)
0:12 indirect index (layout( row_major std430) buffer uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -942,14 +942,14 @@ gl_FragCoord origin is upper left
0:12 2 (const int)
0:? Construct vec4 ( temp 4-component vector of uint)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 'byteAddrTemp' ( temp int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -957,8 +957,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 1 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -966,8 +966,8 @@ gl_FragCoord origin is upper left
0:12 Constant:
0:12 2 (const int)
0:12 indirect index ( temp uint)
0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12 Constant:
0:12 0 (const uint)
0:12 add ( temp int)
@ -980,8 +980,8 @@ gl_FragCoord origin is upper left
0:14 Construct vec4 ( temp 4-component vector of float)
0:14 Convert uint to float ( temp float)
0:14 indirect index (layout( row_major std430) buffer uint)
0:14 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:14 Constant:
0:14 0 (const uint)
0:14 right-shift ( temp int)
@ -999,7 +999,7 @@ gl_FragCoord origin is upper left
0:5 Function Call: @main(u1; ( temp 4-component vector of float)
0:? 'pos' ( temp uint)
0:? Linker Objects
0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'pos' (layout( location=0) flat in uint)

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

@ -7,8 +7,8 @@ local_size = (32, 16, 1)
0:? Sequence
0:6 move second child to first child ( temp uint)
0:6 indirect index (layout( row_major std430) buffer uint)
0:6 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:6 Constant:
0:6 0 (const uint)
0:6 '@gl_SubgroupInvocationID' ( in uint unknown built-in variable)
@ -25,7 +25,7 @@ local_size = (32, 16, 1)
0:? Sequence
0:5 Function Call: @CSMain( ( temp void)
0:? Linker Objects
0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
Linked compute stage:
@ -39,8 +39,8 @@ local_size = (32, 16, 1)
0:? Sequence
0:6 move second child to first child ( temp uint)
0:6 indirect index (layout( row_major std430) buffer uint)
0:6 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:6 Constant:
0:6 0 (const uint)
0:6 '@gl_SubgroupInvocationID' ( in uint unknown built-in variable)
@ -57,7 +57,7 @@ local_size = (32, 16, 1)
0:? Sequence
0:5 Function Call: @CSMain( ( temp void)
0:? Linker Objects
0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
// Module Version 10300
// Generated by (magic number): 80006

File diff suppressed because it is too large Load Diff

View File

@ -8,8 +8,8 @@ local_size = (32, 16, 1)
0:? Sequence
0:6 move second child to first child ( temp uint64_t)
0:6 indirect index (layout( row_major std430) buffer uint64_t)
0:6 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint64_t)
0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t)
0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data})
0:6 Constant:
0:6 0 (const uint)
0:6 direct index ( temp uint)
@ -29,8 +29,8 @@ local_size = (32, 16, 1)
0:6 0 (const uint)
0:7 move second child to first child ( temp uint64_t)
0:7 indirect index (layout( row_major std430) buffer uint64_t)
0:7 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint64_t)
0:7 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t)
0:7 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data})
0:7 Constant:
0:7 0 (const uint)
0:7 direct index ( temp uint)
@ -50,8 +50,8 @@ local_size = (32, 16, 1)
0:7 0 (const uint)
0:8 move second child to first child ( temp uint64_t)
0:8 indirect index (layout( row_major std430) buffer uint64_t)
0:8 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint64_t)
0:8 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t)
0:8 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data})
0:8 Constant:
0:8 0 (const uint)
0:8 direct index ( temp uint)
@ -71,8 +71,8 @@ local_size = (32, 16, 1)
0:8 0 (const uint)
0:9 move second child to first child ( temp uint64_t)
0:9 indirect index (layout( row_major std430) buffer uint64_t)
0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint64_t)
0:9 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t)
0:9 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data})
0:9 Constant:
0:9 0 (const uint)
0:9 direct index ( temp uint)
@ -96,7 +96,7 @@ local_size = (32, 16, 1)
0:5 Function Call: @CSMain(vu3; ( temp void)
0:? 'dti' ( temp 3-component vector of uint)
0:? Linker Objects
0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data})
0:? 'dti' ( in 3-component vector of uint GlobalInvocationID)
@ -112,8 +112,8 @@ local_size = (32, 16, 1)
0:? Sequence
0:6 move second child to first child ( temp uint64_t)
0:6 indirect index (layout( row_major std430) buffer uint64_t)
0:6 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint64_t)
0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t)
0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data})
0:6 Constant:
0:6 0 (const uint)
0:6 direct index ( temp uint)
@ -133,8 +133,8 @@ local_size = (32, 16, 1)
0:6 0 (const uint)
0:7 move second child to first child ( temp uint64_t)
0:7 indirect index (layout( row_major std430) buffer uint64_t)
0:7 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint64_t)
0:7 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t)
0:7 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data})
0:7 Constant:
0:7 0 (const uint)
0:7 direct index ( temp uint)
@ -154,8 +154,8 @@ local_size = (32, 16, 1)
0:7 0 (const uint)
0:8 move second child to first child ( temp uint64_t)
0:8 indirect index (layout( row_major std430) buffer uint64_t)
0:8 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint64_t)
0:8 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t)
0:8 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data})
0:8 Constant:
0:8 0 (const uint)
0:8 direct index ( temp uint)
@ -175,8 +175,8 @@ local_size = (32, 16, 1)
0:8 0 (const uint)
0:9 move second child to first child ( temp uint64_t)
0:9 indirect index (layout( row_major std430) buffer uint64_t)
0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint64_t)
0:9 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t)
0:9 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data})
0:9 Constant:
0:9 0 (const uint)
0:9 direct index ( temp uint)
@ -200,7 +200,7 @@ local_size = (32, 16, 1)
0:5 Function Call: @CSMain(vu3; ( temp void)
0:? 'dti' ( temp 3-component vector of uint)
0:? Linker Objects
0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data})
0:? 'dti' ( in 3-component vector of uint GlobalInvocationID)
// Module Version 10300

View File

@ -0,0 +1,68 @@
mixedArrayDecls.frag
ERROR: 0:30: '' : syntax error, unexpected LEFT_PAREN, expecting COMMA or SEMICOLON
ERROR: 1 compilation errors. No code generated.
Shader version: 450
ERROR: node is still EOpNull!
0:16 Function Definition: foo(i1[14][15][6]; ( global 14-element array of 15-element array of 6-element array of int)
0:16 Function Parameters:
0:16 'p' ( in 14-element array of 15-element array of 6-element array of int)
0:16 Sequence
0:16 Branch: Return with expression
0:16 'p' ( in 14-element array of 15-element array of 6-element array of int)
0:18 Function Definition: main( ( global void)
0:18 Function Parameters:
0:20 Sequence
0:20 direct index ( temp 14-element array of int)
0:20 'g' ( global unsized 4-element array of 14-element array of int)
0:20 Constant:
0:20 3 (const int)
0:21 direct index ( temp 14-element array of int)
0:21 'h' ( global unsized 3-element array of 14-element array of int)
0:21 Constant:
0:21 2 (const int)
0:24 Function Definition: bar( ( global 4-element array of 3-element array of 2-element array of float)
0:24 Function Parameters:
0:? Sequence
0:24 Branch: Return with expression
0:24 'a' ( temp 4-element array of 3-element array of 2-element array of float)
0:? Linker Objects
0:? 's' ( global structure{ global 2-element array of 3-element array of int a, global 5-element array of 3-element array of int b})
0:? 'c' ( global 4-element array of 5-element array of int)
0:? 'd' ( global 8-element array of 5-element array of int)
0:? 'e' ( global 11-element array of 9-element array of int)
0:? 'f' ( global 13-element array of 9-element array of int)
0:? 'g' ( global unsized 4-element array of 14-element array of int)
0:? 'h' ( global unsized 3-element array of 14-element array of int)
0:? 'inbinst' ( in 4-element array of 5-element array of 6-element array of block{ in 8-element array of 9-element array of 7-element array of float f})
0:? 'barm' ( global 4-element array of 3-element array of 2-element array of float)
Linked fragment stage:
Shader version: 450
ERROR: node is still EOpNull!
0:18 Function Definition: main( ( global void)
0:18 Function Parameters:
0:20 Sequence
0:20 direct index ( temp 14-element array of int)
0:20 'g' ( global 4-element array of 14-element array of int)
0:20 Constant:
0:20 3 (const int)
0:21 direct index ( temp 14-element array of int)
0:21 'h' ( global 3-element array of 14-element array of int)
0:21 Constant:
0:21 2 (const int)
0:? Linker Objects
0:? 's' ( global structure{ global 2-element array of 3-element array of int a, global 5-element array of 3-element array of int b})
0:? 'c' ( global 4-element array of 5-element array of int)
0:? 'd' ( global 8-element array of 5-element array of int)
0:? 'e' ( global 11-element array of 9-element array of int)
0:? 'f' ( global 13-element array of 9-element array of int)
0:? 'g' ( global 4-element array of 14-element array of int)
0:? 'h' ( global 3-element array of 14-element array of int)
0:? 'inbinst' ( in 4-element array of 5-element array of 6-element array of block{ in 8-element array of 9-element array of 7-element array of float f})
0:? 'barm' ( global 4-element array of 3-element array of 2-element array of float)

View File

@ -320,7 +320,7 @@ ERROR: node is still EOpNull!
0:? 'factor' (layout( location=3 index=1) out 4-component vector of float)
0:? 'colors' (layout( location=2) out 3-element array of 4-component vector of float)
0:? 'gl_FragDepth' ( gl_FragDepth float FragDepth)
0:? 'anon@2' ( in block{ in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
0:? 'anon@2' ( in block{ in float FogFragCoord gl_FogFragCoord, in unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
Linked fragment stage:

View File

@ -276,7 +276,7 @@ ERROR: node is still EOpNull!
0:? Linker Objects
0:? 'Coords' ( out block{ out 4-component vector of float Position, out 2-component vector of float Texture})
0:? 'anon@0' ( out block{ out 4-component vector of float Color})
0:? 'transforms' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform 4X4 matrix of float ModelViewMatrix, layout( column_major shared) uniform 4X4 matrix of float ModelViewProjectionMatrix, layout( column_major shared) uniform implicitly-sized array of 4-component vector of float a, layout( column_major shared) uniform float Deformation})
0:? 'transforms' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform 4X4 matrix of float ModelViewMatrix, layout( column_major shared) uniform 4X4 matrix of float ModelViewProjectionMatrix, layout( column_major shared) uniform unsized 1-element array of 4-component vector of float a, layout( column_major shared) uniform float Deformation})
0:? 'normal' (layout( location=3) in 4-component vector of float)
0:? 'colors' (layout( location=6) in 3-element array of 4-component vector of float)
0:? 'transforms2' (layout( location=9) in 2-element array of 4X4 matrix of float)
@ -295,7 +295,7 @@ ERROR: node is still EOpNull!
0:? 'b2' (layout( binding=2) uniform atomic_uint)
0:? 'c2' (layout( binding=3) uniform atomic_uint)
0:? 'd2' (layout( binding=2) uniform atomic_uint)
0:? 'anon@5' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:? 'anon@5' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:? 'ColorInv' ( smooth out 3-component vector of float)
0:? 'Color4' ( invariant centroid smooth out 3-component vector of float)
0:? 'position' ( noContraction smooth out 4-component vector of float)

View File

@ -277,7 +277,7 @@ ERROR: node is still EOpNull!
0:? Linker Objects
0:? 'Coords' ( out block{ out 4-component vector of float Position, out 2-component vector of float Texture})
0:? 'anon@0' ( out block{ out 4-component vector of float Color})
0:? 'transforms' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform 4X4 matrix of float ModelViewMatrix, layout( column_major shared) uniform 4X4 matrix of float ModelViewProjectionMatrix, layout( column_major shared) uniform implicitly-sized array of 4-component vector of float a, layout( column_major shared) uniform float Deformation})
0:? 'transforms' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform 4X4 matrix of float ModelViewMatrix, layout( column_major shared) uniform 4X4 matrix of float ModelViewProjectionMatrix, layout( column_major shared) uniform unsized 1-element array of 4-component vector of float a, layout( column_major shared) uniform float Deformation})
0:? 'normal' (layout( location=3) in 4-component vector of float)
0:? 'colors' (layout( location=6) in 3-element array of 4-component vector of float)
0:? 'transforms2' (layout( location=9) in 2-element array of 4X4 matrix of float)
@ -296,7 +296,7 @@ ERROR: node is still EOpNull!
0:? 'b2' (layout( binding=2) uniform atomic_uint)
0:? 'c2' (layout( binding=3) uniform atomic_uint)
0:? 'd2' (layout( binding=2) uniform atomic_uint)
0:? 'anon@5' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:? 'anon@5' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:? 'ColorInv' ( smooth out 3-component vector of float)
0:? 'Color4' ( invariant centroid smooth out 3-component vector of float)
0:? 'position' ( noContraction smooth out 4-component vector of float)

File diff suppressed because it is too large Load Diff

View File

@ -11,7 +11,7 @@ spv.specConstant.vert
Source GLSL 400
Name 4 "main"
Name 9 "arraySize"
Name 14 "foo(vf4[s2148];"
Name 14 "foo(vf4[s2468];"
Name 13 "p"
Name 17 "builtin_spec_constant("
Name 20 "color"
@ -102,10 +102,10 @@ spv.specConstant.vert
Store 20(color) 46
48: 10 Load 22(ucol)
Store 47(param) 48
49: 2 FunctionCall 14(foo(vf4[s2148];) 47(param)
49: 2 FunctionCall 14(foo(vf4[s2468];) 47(param)
Return
FunctionEnd
14(foo(vf4[s2148];): 2 Function None 12
14(foo(vf4[s2468];): 2 Function None 12
13(p): 11(ptr) FunctionParameter
15: Label
54: 24(ptr) AccessChain 53(dupUcol) 23

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,326 @@
spv.vulkan100.subgroupPartitioned.comp
ERROR: 0:19: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:21: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:22: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:23: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:24: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:26: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:27: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:28: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:29: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:31: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:32: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:33: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:34: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:36: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:37: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:38: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:39: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:41: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:42: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:43: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:44: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:46: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:47: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:48: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:49: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:51: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:52: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:53: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:54: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:56: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:57: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:58: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:59: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:61: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:62: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:63: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:64: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:66: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:67: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:68: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:69: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:71: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:72: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:73: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:74: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:76: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:77: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:78: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:79: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:81: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:82: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:83: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:84: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:86: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:87: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:88: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:89: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:91: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:92: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:93: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:94: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:96: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:97: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:98: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:99: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:101: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:102: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:103: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:104: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:106: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:107: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:108: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:109: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:111: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:112: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:113: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:114: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:116: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:117: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:118: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:119: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:121: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:122: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:123: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:124: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:126: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:127: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:128: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:129: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:131: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:132: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:133: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:134: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:136: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:137: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:138: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:139: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:141: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:142: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:143: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:144: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:146: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:147: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:148: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:149: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:151: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:152: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:153: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:154: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:156: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:157: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:158: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:159: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:161: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:162: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:163: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:164: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:166: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:167: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:168: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:169: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:171: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:172: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:173: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:174: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:176: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:177: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:178: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:179: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:181: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:182: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:183: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:184: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:186: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:187: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:188: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:189: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:191: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:192: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:193: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:194: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:196: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:197: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:198: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:199: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:201: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:202: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:203: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:204: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:206: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:207: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:208: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:209: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:211: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:212: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:213: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:214: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:216: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:217: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:218: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:219: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:221: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:222: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:223: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:224: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:226: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:227: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:228: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:229: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:231: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:232: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:233: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:234: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:236: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:237: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:238: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:239: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:241: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:242: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:243: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:244: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:246: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:247: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:248: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:249: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:251: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:252: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:253: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:254: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:256: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:257: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:258: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:259: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:261: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:262: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:263: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:264: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:266: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:267: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:268: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:269: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:271: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:272: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:273: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:274: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:276: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:277: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:278: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:279: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:281: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:282: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:283: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:284: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:286: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:287: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:288: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:289: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:291: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:292: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:293: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:294: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:296: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:297: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:298: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:299: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:301: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:302: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:303: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:304: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:306: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:307: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:308: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:309: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:311: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:312: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:313: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:314: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:316: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:317: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:318: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:319: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:321: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:322: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:323: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:324: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:326: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:327: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:328: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:329: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:331: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:332: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:333: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:334: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:336: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:337: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:338: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:339: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:341: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:342: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:343: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:344: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:346: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:347: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:348: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:349: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:351: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:352: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:353: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:354: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:356: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:357: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:358: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:359: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:361: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:362: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:363: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:364: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:366: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:367: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:368: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:369: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:371: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:372: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:373: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:374: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:376: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:377: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:378: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:379: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:381: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:382: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:383: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:384: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:386: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:387: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:388: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:389: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:391: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:392: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:393: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:394: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:396: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:397: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:398: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:399: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:401: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:402: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:403: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:404: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:406: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:407: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:408: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:409: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:411: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:412: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:413: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:414: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:416: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:417: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:418: 'subgroup op' : requires SPIR-V 1.3
ERROR: 0:419: 'subgroup op' : requires SPIR-V 1.3
ERROR: 321 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link

View File

@ -6,7 +6,7 @@ Shader version: 420
0:42 Sequence
0:42 move second child to first child ( temp 4-component vector of float)
0:42 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:42 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:42 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:42 Constant:
0:42 0 (const uint)
0:42 Construct vec4 ( temp 4-component vector of float)
@ -16,7 +16,7 @@ Shader version: 420
0:? Linker Objects
0:? 'color' ( in 3-component vector of float)
0:? 'foo' ( uniform sampler2DRect)
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)

View File

@ -13,7 +13,7 @@ ERROR: node is still EOpNull!
0:44 Sequence
0:44 move second child to first child ( temp 4-component vector of float)
0:44 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:44 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:44 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:44 Constant:
0:44 0 (const uint)
0:44 Construct vec4 ( temp 4-component vector of float)
@ -24,7 +24,7 @@ ERROR: node is still EOpNull!
0:? Linker Objects
0:? 'color' ( in 3-component vector of float)
0:? 'foo' ( uniform sampler2DRect)
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)

View File

@ -0,0 +1,30 @@
#version 450
struct S {
int[3] a[2], b[5];
};
S s;
int[5] c[4], d[8];
int[9] e[], f[];
int e[11][9];
int f[13][9];
int[14] g[], h[];
int [14][15][6] foo(int[6] p[14][15]) { return p; }
void main()
{
g[3];
h[2];
}
float[4][3][2] bar() { float[3][2] a[4]; return a; }
in inbname {
float[7] f[8][9];
} inbinst[4][5][6];
float[3][2] barm[4]() { float[3][2] a[4]; return a; } // ERROR

View File

@ -2,6 +2,7 @@
#extension GL_ARB_gpu_shader_int64: enable
#extension GL_AMD_gpu_shader_half_float: enable
#extension GL_AMD_gpu_shader_int16: enable
#extension GL_AMD_shader_ballot: enable
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
@ -15,17 +16,21 @@ layout(binding = 0) buffer Buffers
int64_t i64;
u64vec2 u64v;
f16vec3 f16v;
i16vec4 i16v;
uint16_t u16;
};
void main()
{
i = minInvocationsAMD(i);
i = minInvocationsAMD(i);
uv = minInvocationsAMD(uv);
fv = minInvocationsAMD(fv);
dv = minInvocationsAMD(dv);
i64 = minInvocationsAMD(i64);
u64v = minInvocationsAMD(u64v);
f16v = minInvocationsAMD(f16v);
i16v = minInvocationsAMD(i16v);
u16 = minInvocationsAMD(u16);
i = maxInvocationsAMD(i);
uv = maxInvocationsAMD(uv);
@ -34,6 +39,8 @@ void main()
i64 = maxInvocationsAMD(i64);
u64v = maxInvocationsAMD(u64v);
f16v = maxInvocationsAMD(f16v);
i16v = maxInvocationsAMD(i16v);
u16 = maxInvocationsAMD(u16);
i = addInvocationsAMD(i);
uv = addInvocationsAMD(uv);
@ -42,6 +49,8 @@ void main()
i64 = addInvocationsAMD(i64);
u64v = addInvocationsAMD(u64v);
f16v = addInvocationsAMD(f16v);
i16v = addInvocationsAMD(i16v);
u16 = addInvocationsAMD(u16);
i = minInvocationsNonUniformAMD(i);
uv = minInvocationsNonUniformAMD(uv);
@ -50,6 +59,8 @@ void main()
i64 = minInvocationsNonUniformAMD(i64);
u64v = minInvocationsNonUniformAMD(u64v);
f16v = minInvocationsNonUniformAMD(f16v);
i16v = minInvocationsNonUniformAMD(i16v);
u16 = minInvocationsNonUniformAMD(u16);
i = maxInvocationsNonUniformAMD(i);
uv = maxInvocationsNonUniformAMD(uv);
@ -58,6 +69,8 @@ void main()
i64 = maxInvocationsNonUniformAMD(i64);
u64v = maxInvocationsNonUniformAMD(u64v);
f16v = maxInvocationsNonUniformAMD(f16v);
i16v = maxInvocationsNonUniformAMD(i16v);
u16 = maxInvocationsNonUniformAMD(u16);
i = addInvocationsNonUniformAMD(i);
uv = addInvocationsNonUniformAMD(uv);
@ -66,6 +79,8 @@ void main()
i64 = addInvocationsNonUniformAMD(i64);
u64v = addInvocationsNonUniformAMD(u64v);
f16v = addInvocationsNonUniformAMD(f16v);
i16v = addInvocationsNonUniformAMD(i16v);
u16 = addInvocationsNonUniformAMD(u16);
i = minInvocationsInclusiveScanAMD(i);
uv = minInvocationsInclusiveScanAMD(uv);
@ -74,6 +89,8 @@ void main()
i64 = minInvocationsInclusiveScanAMD(i64);
u64v = minInvocationsInclusiveScanAMD(u64v);
f16v = minInvocationsInclusiveScanAMD(f16v);
i16v = minInvocationsInclusiveScanAMD(i16v);
u16 = minInvocationsInclusiveScanAMD(u16);
i = maxInvocationsInclusiveScanAMD(i);
uv = maxInvocationsInclusiveScanAMD(uv);
@ -82,6 +99,8 @@ void main()
i64 = maxInvocationsInclusiveScanAMD(i64);
u64v = maxInvocationsInclusiveScanAMD(u64v);
f16v = maxInvocationsInclusiveScanAMD(f16v);
i16v = maxInvocationsInclusiveScanAMD(i16v);
u16 = maxInvocationsInclusiveScanAMD(u16);
i = addInvocationsInclusiveScanAMD(i);
uv = addInvocationsInclusiveScanAMD(uv);
@ -90,6 +109,8 @@ void main()
i64 = addInvocationsInclusiveScanAMD(i64);
u64v = addInvocationsInclusiveScanAMD(u64v);
f16v = addInvocationsInclusiveScanAMD(f16v);
i16v = addInvocationsInclusiveScanAMD(i16v);
u16 = addInvocationsInclusiveScanAMD(u16);
i = minInvocationsExclusiveScanAMD(i);
uv = minInvocationsExclusiveScanAMD(uv);
@ -98,6 +119,8 @@ void main()
i64 = minInvocationsExclusiveScanAMD(i64);
u64v = minInvocationsExclusiveScanAMD(u64v);
f16v = minInvocationsExclusiveScanAMD(f16v);
i16v = minInvocationsExclusiveScanAMD(i16v);
u16 = minInvocationsExclusiveScanAMD(u16);
i = maxInvocationsExclusiveScanAMD(i);
uv = maxInvocationsExclusiveScanAMD(uv);
@ -106,6 +129,8 @@ void main()
i64 = maxInvocationsExclusiveScanAMD(i64);
u64v = maxInvocationsExclusiveScanAMD(u64v);
f16v = maxInvocationsExclusiveScanAMD(f16v);
i16v = maxInvocationsExclusiveScanAMD(i16v);
u16 = maxInvocationsExclusiveScanAMD(u16);
i = addInvocationsExclusiveScanAMD(i);
uv = addInvocationsExclusiveScanAMD(uv);
@ -114,6 +139,8 @@ void main()
i64 = addInvocationsExclusiveScanAMD(i64);
u64v = addInvocationsExclusiveScanAMD(u64v);
f16v = addInvocationsExclusiveScanAMD(f16v);
i16v = addInvocationsExclusiveScanAMD(i16v);
u16 = addInvocationsExclusiveScanAMD(u16);
i = minInvocationsInclusiveScanNonUniformAMD(i);
uv = minInvocationsInclusiveScanNonUniformAMD(uv);
@ -122,6 +149,8 @@ void main()
i64 = minInvocationsInclusiveScanNonUniformAMD(i64);
u64v = minInvocationsInclusiveScanNonUniformAMD(u64v);
f16v = minInvocationsInclusiveScanNonUniformAMD(f16v);
i16v = minInvocationsInclusiveScanNonUniformAMD(i16v);
u16 = minInvocationsInclusiveScanNonUniformAMD(u16);
i = maxInvocationsInclusiveScanNonUniformAMD(i);
uv = maxInvocationsInclusiveScanNonUniformAMD(uv);
@ -130,6 +159,8 @@ void main()
i64 = maxInvocationsInclusiveScanNonUniformAMD(i64);
u64v = maxInvocationsInclusiveScanNonUniformAMD(u64v);
f16v = maxInvocationsInclusiveScanNonUniformAMD(f16v);
i16v = maxInvocationsInclusiveScanNonUniformAMD(i16v);
u16 = maxInvocationsInclusiveScanNonUniformAMD(u16);
i = addInvocationsInclusiveScanNonUniformAMD(i);
uv = addInvocationsInclusiveScanNonUniformAMD(uv);
@ -138,6 +169,8 @@ void main()
i64 = addInvocationsInclusiveScanNonUniformAMD(i64);
u64v = addInvocationsInclusiveScanNonUniformAMD(u64v);
f16v = addInvocationsInclusiveScanNonUniformAMD(f16v);
i16v = addInvocationsInclusiveScanNonUniformAMD(i16v);
u16 = addInvocationsInclusiveScanNonUniformAMD(u16);
i = minInvocationsExclusiveScanNonUniformAMD(i);
uv = minInvocationsExclusiveScanNonUniformAMD(uv);
@ -146,6 +179,8 @@ void main()
i64 = minInvocationsExclusiveScanNonUniformAMD(i64);
u64v = minInvocationsExclusiveScanNonUniformAMD(u64v);
f16v = minInvocationsExclusiveScanNonUniformAMD(f16v);
i16v = minInvocationsExclusiveScanNonUniformAMD(i16v);
u16 = minInvocationsExclusiveScanNonUniformAMD(u16);
i = maxInvocationsExclusiveScanNonUniformAMD(i);
uv = maxInvocationsExclusiveScanNonUniformAMD(uv);
@ -154,6 +189,8 @@ void main()
i64 = maxInvocationsExclusiveScanNonUniformAMD(i64);
u64v = maxInvocationsExclusiveScanNonUniformAMD(u64v);
f16v = maxInvocationsExclusiveScanNonUniformAMD(f16v);
i16v = maxInvocationsExclusiveScanNonUniformAMD(i16v);
u16 = maxInvocationsExclusiveScanNonUniformAMD(u16);
i = addInvocationsExclusiveScanNonUniformAMD(i);
uv = addInvocationsExclusiveScanNonUniformAMD(uv);
@ -162,4 +199,6 @@ void main()
i64 = addInvocationsExclusiveScanNonUniformAMD(i64);
u64v = addInvocationsExclusiveScanNonUniformAMD(u64v);
f16v = addInvocationsExclusiveScanNonUniformAMD(f16v);
i16v = addInvocationsExclusiveScanNonUniformAMD(i16v);
u16 = addInvocationsExclusiveScanNonUniformAMD(u16);
}

View File

@ -0,0 +1,420 @@
#version 450
#extension GL_NV_shader_subgroup_partitioned: enable
layout (local_size_x = 8) in;
layout(binding = 0) buffer Buffers
{
vec4 f4;
ivec4 i4;
uvec4 u4;
dvec4 d4;
} data[4];
void main()
{
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
uvec4 ballot = subgroupPartitionNV(invocation);
data[invocation].u4 = subgroupPartitionNV(data[0].f4.x);
data[invocation].u4 = subgroupPartitionNV(data[0].f4.xy);
data[invocation].u4 = subgroupPartitionNV(data[0].f4.xyz);
data[invocation].u4 = subgroupPartitionNV(data[0].f4);
data[invocation].u4 = subgroupPartitionNV(data[0].i4.x);
data[invocation].u4 = subgroupPartitionNV(data[0].i4.xy);
data[invocation].u4 = subgroupPartitionNV(data[0].i4.xyz);
data[invocation].u4 = subgroupPartitionNV(data[0].i4);
data[invocation].u4 = subgroupPartitionNV(data[0].u4.x);
data[invocation].u4 = subgroupPartitionNV(data[0].u4.xy);
data[invocation].u4 = subgroupPartitionNV(data[0].u4.xyz);
data[invocation].u4 = subgroupPartitionNV(data[0].u4);
data[invocation].u4 = subgroupPartitionNV(data[0].d4.x);
data[invocation].u4 = subgroupPartitionNV(data[0].d4.xy);
data[invocation].u4 = subgroupPartitionNV(data[0].d4.xyz);
data[invocation].u4 = subgroupPartitionNV(data[0].d4);
data[invocation].u4 = subgroupPartitionNV(bool(data[0].i4.x));
data[invocation].u4 = subgroupPartitionNV(bvec2(data[0].i4.xy));
data[invocation].u4 = subgroupPartitionNV(bvec3(data[0].i4.xyz));
data[invocation].u4 = subgroupPartitionNV(bvec4(data[0].i4));
data[invocation].f4.x = subgroupPartitionedAddNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedAddNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedAddNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedAddNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedAddNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedAddNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedAddNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedAddNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedAddNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedAddNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedAddNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedAddNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedAddNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedAddNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedAddNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedAddNV(data[3].d4, ballot);
data[invocation].f4.x = subgroupPartitionedMulNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedMulNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedMulNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedMulNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedMulNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedMulNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedMulNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedMulNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedMulNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedMulNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedMulNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedMulNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedMulNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedMulNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedMulNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedMulNV(data[3].d4, ballot);
data[invocation].f4.x = subgroupPartitionedMinNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedMinNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedMinNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedMinNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedMinNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedMinNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedMinNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedMinNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedMinNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedMinNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedMinNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedMinNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedMinNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedMinNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedMinNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedMinNV(data[3].d4, ballot);
data[invocation].f4.x = subgroupPartitionedMaxNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedMaxNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedMaxNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedMaxNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedMaxNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedMaxNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedMaxNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedMaxNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedMaxNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedMaxNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedMaxNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedMaxNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedMaxNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedMaxNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedMaxNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedMaxNV(data[3].d4, ballot);
data[invocation].i4.x = subgroupPartitionedAndNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedAndNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedAndNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedAndNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedAndNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedAndNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedAndNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedAndNV(data[3].u4, ballot);
data[invocation].i4.x = int(subgroupPartitionedAndNV(data[0].i4.x < 0, ballot));
data[invocation].i4.xy = ivec2(subgroupPartitionedAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
data[invocation].i4.xyz = ivec3(subgroupPartitionedAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
data[invocation].i4 = ivec4(subgroupPartitionedAndNV(lessThan(data[1].i4, ivec4(0)), ballot));
data[invocation].i4.x = subgroupPartitionedOrNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedOrNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedOrNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedOrNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedOrNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedOrNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedOrNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedOrNV(data[3].u4, ballot);
data[invocation].i4.x = int(subgroupPartitionedOrNV(data[0].i4.x < 0, ballot));
data[invocation].i4.xy = ivec2(subgroupPartitionedOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
data[invocation].i4.xyz = ivec3(subgroupPartitionedOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
data[invocation].i4 = ivec4(subgroupPartitionedOrNV(lessThan(data[1].i4, ivec4(0)), ballot));
data[invocation].i4.x = subgroupPartitionedXorNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedXorNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedXorNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedXorNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedXorNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedXorNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedXorNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedXorNV(data[3].u4, ballot);
data[invocation].i4.x = int(subgroupPartitionedXorNV(data[0].i4.x < 0, ballot));
data[invocation].i4.xy = ivec2(subgroupPartitionedXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
data[invocation].i4.xyz = ivec3(subgroupPartitionedXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
data[invocation].i4 = ivec4(subgroupPartitionedXorNV(lessThan(data[1].i4, ivec4(0)), ballot));
data[invocation].f4.x = subgroupPartitionedInclusiveAddNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedInclusiveAddNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedInclusiveAddNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedInclusiveAddNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedInclusiveAddNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedInclusiveAddNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedInclusiveAddNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedInclusiveAddNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedInclusiveAddNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedInclusiveAddNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedInclusiveAddNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedInclusiveAddNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedInclusiveAddNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedInclusiveAddNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedInclusiveAddNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedInclusiveAddNV(data[3].d4, ballot);
data[invocation].f4.x = subgroupPartitionedInclusiveMulNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedInclusiveMulNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedInclusiveMulNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedInclusiveMulNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedInclusiveMulNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedInclusiveMulNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedInclusiveMulNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedInclusiveMulNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedInclusiveMulNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedInclusiveMulNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedInclusiveMulNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedInclusiveMulNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedInclusiveMulNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedInclusiveMulNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedInclusiveMulNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedInclusiveMulNV(data[3].d4, ballot);
data[invocation].f4.x = subgroupPartitionedInclusiveMinNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedInclusiveMinNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedInclusiveMinNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedInclusiveMinNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedInclusiveMinNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedInclusiveMinNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedInclusiveMinNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedInclusiveMinNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedInclusiveMinNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedInclusiveMinNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedInclusiveMinNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedInclusiveMinNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedInclusiveMinNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedInclusiveMinNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedInclusiveMinNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedInclusiveMinNV(data[3].d4, ballot);
data[invocation].f4.x = subgroupPartitionedInclusiveMaxNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedInclusiveMaxNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedInclusiveMaxNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedInclusiveMaxNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedInclusiveMaxNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedInclusiveMaxNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedInclusiveMaxNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedInclusiveMaxNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedInclusiveMaxNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedInclusiveMaxNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedInclusiveMaxNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedInclusiveMaxNV(data[3].d4, ballot);
data[invocation].i4.x = subgroupPartitionedInclusiveAndNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedInclusiveAndNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedInclusiveAndNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedInclusiveAndNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedInclusiveAndNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedInclusiveAndNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedInclusiveAndNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedInclusiveAndNV(data[3].u4, ballot);
data[invocation].i4.x = int(subgroupPartitionedInclusiveAndNV(data[0].i4.x < 0, ballot));
data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
data[invocation].i4 = ivec4(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot));
data[invocation].i4.x = subgroupPartitionedInclusiveOrNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedInclusiveOrNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedInclusiveOrNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedInclusiveOrNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedInclusiveOrNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedInclusiveOrNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedInclusiveOrNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedInclusiveOrNV(data[3].u4, ballot);
data[invocation].i4.x = int(subgroupPartitionedInclusiveOrNV(data[0].i4.x < 0, ballot));
data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
data[invocation].i4 = ivec4(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot));
data[invocation].i4.x = subgroupPartitionedInclusiveXorNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedInclusiveXorNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedInclusiveXorNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedInclusiveXorNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedInclusiveXorNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedInclusiveXorNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedInclusiveXorNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedInclusiveXorNV(data[3].u4, ballot);
data[invocation].i4.x = int(subgroupPartitionedInclusiveXorNV(data[0].i4.x < 0, ballot));
data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
data[invocation].i4 = ivec4(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot));
data[invocation].f4.x = subgroupPartitionedExclusiveAddNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedExclusiveAddNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedExclusiveAddNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedExclusiveAddNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedExclusiveAddNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedExclusiveAddNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedExclusiveAddNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedExclusiveAddNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedExclusiveAddNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedExclusiveAddNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedExclusiveAddNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedExclusiveAddNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedExclusiveAddNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedExclusiveAddNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedExclusiveAddNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedExclusiveAddNV(data[3].d4, ballot);
data[invocation].f4.x = subgroupPartitionedExclusiveMulNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedExclusiveMulNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedExclusiveMulNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedExclusiveMulNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedExclusiveMulNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedExclusiveMulNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedExclusiveMulNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedExclusiveMulNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedExclusiveMulNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedExclusiveMulNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedExclusiveMulNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedExclusiveMulNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedExclusiveMulNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedExclusiveMulNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedExclusiveMulNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedExclusiveMulNV(data[3].d4, ballot);
data[invocation].f4.x = subgroupPartitionedExclusiveMinNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedExclusiveMinNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedExclusiveMinNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedExclusiveMinNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedExclusiveMinNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedExclusiveMinNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedExclusiveMinNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedExclusiveMinNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedExclusiveMinNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedExclusiveMinNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedExclusiveMinNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedExclusiveMinNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedExclusiveMinNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedExclusiveMinNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedExclusiveMinNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedExclusiveMinNV(data[3].d4, ballot);
data[invocation].f4.x = subgroupPartitionedExclusiveMaxNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedExclusiveMaxNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedExclusiveMaxNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedExclusiveMaxNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedExclusiveMaxNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedExclusiveMaxNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedExclusiveMaxNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedExclusiveMaxNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedExclusiveMaxNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedExclusiveMaxNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedExclusiveMaxNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedExclusiveMaxNV(data[3].d4, ballot);
data[invocation].i4.x = subgroupPartitionedExclusiveAndNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedExclusiveAndNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedExclusiveAndNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedExclusiveAndNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedExclusiveAndNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedExclusiveAndNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedExclusiveAndNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedExclusiveAndNV(data[3].u4, ballot);
data[invocation].i4.x = int(subgroupPartitionedExclusiveAndNV(data[0].i4.x < 0, ballot));
data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
data[invocation].i4 = ivec4(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot));
data[invocation].i4.x = subgroupPartitionedExclusiveOrNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedExclusiveOrNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedExclusiveOrNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedExclusiveOrNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedExclusiveOrNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedExclusiveOrNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedExclusiveOrNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedExclusiveOrNV(data[3].u4, ballot);
data[invocation].i4.x = int(subgroupPartitionedExclusiveOrNV(data[0].i4.x < 0, ballot));
data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
data[invocation].i4 = ivec4(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot));
data[invocation].i4.x = subgroupPartitionedExclusiveXorNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedExclusiveXorNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedExclusiveXorNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedExclusiveXorNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedExclusiveXorNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedExclusiveXorNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedExclusiveXorNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedExclusiveXorNV(data[3].u4, ballot);
data[invocation].i4.x = int(subgroupPartitionedExclusiveXorNV(data[0].i4.x < 0, ballot));
data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
data[invocation].i4 = ivec4(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot));
}

View File

@ -0,0 +1,420 @@
#version 450
#extension GL_NV_shader_subgroup_partitioned: enable
layout (local_size_x = 8) in;
layout(binding = 0) buffer Buffers
{
vec4 f4;
ivec4 i4;
uvec4 u4;
dvec4 d4;
} data[4];
void main()
{
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
uvec4 ballot = subgroupPartitionNV(invocation);
data[invocation].u4 = subgroupPartitionNV(data[0].f4.x);
data[invocation].u4 = subgroupPartitionNV(data[0].f4.xy);
data[invocation].u4 = subgroupPartitionNV(data[0].f4.xyz);
data[invocation].u4 = subgroupPartitionNV(data[0].f4);
data[invocation].u4 = subgroupPartitionNV(data[0].i4.x);
data[invocation].u4 = subgroupPartitionNV(data[0].i4.xy);
data[invocation].u4 = subgroupPartitionNV(data[0].i4.xyz);
data[invocation].u4 = subgroupPartitionNV(data[0].i4);
data[invocation].u4 = subgroupPartitionNV(data[0].u4.x);
data[invocation].u4 = subgroupPartitionNV(data[0].u4.xy);
data[invocation].u4 = subgroupPartitionNV(data[0].u4.xyz);
data[invocation].u4 = subgroupPartitionNV(data[0].u4);
data[invocation].u4 = subgroupPartitionNV(data[0].d4.x);
data[invocation].u4 = subgroupPartitionNV(data[0].d4.xy);
data[invocation].u4 = subgroupPartitionNV(data[0].d4.xyz);
data[invocation].u4 = subgroupPartitionNV(data[0].d4);
data[invocation].u4 = subgroupPartitionNV(bool(data[0].i4.x));
data[invocation].u4 = subgroupPartitionNV(bvec2(data[0].i4.xy));
data[invocation].u4 = subgroupPartitionNV(bvec3(data[0].i4.xyz));
data[invocation].u4 = subgroupPartitionNV(bvec4(data[0].i4));
data[invocation].f4.x = subgroupPartitionedAddNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedAddNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedAddNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedAddNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedAddNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedAddNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedAddNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedAddNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedAddNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedAddNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedAddNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedAddNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedAddNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedAddNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedAddNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedAddNV(data[3].d4, ballot);
data[invocation].f4.x = subgroupPartitionedMulNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedMulNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedMulNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedMulNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedMulNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedMulNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedMulNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedMulNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedMulNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedMulNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedMulNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedMulNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedMulNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedMulNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedMulNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedMulNV(data[3].d4, ballot);
data[invocation].f4.x = subgroupPartitionedMinNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedMinNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedMinNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedMinNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedMinNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedMinNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedMinNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedMinNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedMinNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedMinNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedMinNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedMinNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedMinNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedMinNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedMinNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedMinNV(data[3].d4, ballot);
data[invocation].f4.x = subgroupPartitionedMaxNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedMaxNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedMaxNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedMaxNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedMaxNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedMaxNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedMaxNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedMaxNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedMaxNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedMaxNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedMaxNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedMaxNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedMaxNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedMaxNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedMaxNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedMaxNV(data[3].d4, ballot);
data[invocation].i4.x = subgroupPartitionedAndNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedAndNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedAndNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedAndNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedAndNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedAndNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedAndNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedAndNV(data[3].u4, ballot);
data[invocation].i4.x = int(subgroupPartitionedAndNV(data[0].i4.x < 0, ballot));
data[invocation].i4.xy = ivec2(subgroupPartitionedAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
data[invocation].i4.xyz = ivec3(subgroupPartitionedAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
data[invocation].i4 = ivec4(subgroupPartitionedAndNV(lessThan(data[1].i4, ivec4(0)), ballot));
data[invocation].i4.x = subgroupPartitionedOrNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedOrNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedOrNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedOrNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedOrNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedOrNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedOrNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedOrNV(data[3].u4, ballot);
data[invocation].i4.x = int(subgroupPartitionedOrNV(data[0].i4.x < 0, ballot));
data[invocation].i4.xy = ivec2(subgroupPartitionedOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
data[invocation].i4.xyz = ivec3(subgroupPartitionedOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
data[invocation].i4 = ivec4(subgroupPartitionedOrNV(lessThan(data[1].i4, ivec4(0)), ballot));
data[invocation].i4.x = subgroupPartitionedXorNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedXorNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedXorNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedXorNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedXorNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedXorNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedXorNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedXorNV(data[3].u4, ballot);
data[invocation].i4.x = int(subgroupPartitionedXorNV(data[0].i4.x < 0, ballot));
data[invocation].i4.xy = ivec2(subgroupPartitionedXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
data[invocation].i4.xyz = ivec3(subgroupPartitionedXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
data[invocation].i4 = ivec4(subgroupPartitionedXorNV(lessThan(data[1].i4, ivec4(0)), ballot));
data[invocation].f4.x = subgroupPartitionedInclusiveAddNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedInclusiveAddNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedInclusiveAddNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedInclusiveAddNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedInclusiveAddNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedInclusiveAddNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedInclusiveAddNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedInclusiveAddNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedInclusiveAddNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedInclusiveAddNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedInclusiveAddNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedInclusiveAddNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedInclusiveAddNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedInclusiveAddNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedInclusiveAddNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedInclusiveAddNV(data[3].d4, ballot);
data[invocation].f4.x = subgroupPartitionedInclusiveMulNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedInclusiveMulNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedInclusiveMulNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedInclusiveMulNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedInclusiveMulNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedInclusiveMulNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedInclusiveMulNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedInclusiveMulNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedInclusiveMulNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedInclusiveMulNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedInclusiveMulNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedInclusiveMulNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedInclusiveMulNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedInclusiveMulNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedInclusiveMulNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedInclusiveMulNV(data[3].d4, ballot);
data[invocation].f4.x = subgroupPartitionedInclusiveMinNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedInclusiveMinNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedInclusiveMinNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedInclusiveMinNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedInclusiveMinNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedInclusiveMinNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedInclusiveMinNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedInclusiveMinNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedInclusiveMinNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedInclusiveMinNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedInclusiveMinNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedInclusiveMinNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedInclusiveMinNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedInclusiveMinNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedInclusiveMinNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedInclusiveMinNV(data[3].d4, ballot);
data[invocation].f4.x = subgroupPartitionedInclusiveMaxNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedInclusiveMaxNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedInclusiveMaxNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedInclusiveMaxNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedInclusiveMaxNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedInclusiveMaxNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedInclusiveMaxNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedInclusiveMaxNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedInclusiveMaxNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedInclusiveMaxNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedInclusiveMaxNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedInclusiveMaxNV(data[3].d4, ballot);
data[invocation].i4.x = subgroupPartitionedInclusiveAndNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedInclusiveAndNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedInclusiveAndNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedInclusiveAndNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedInclusiveAndNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedInclusiveAndNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedInclusiveAndNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedInclusiveAndNV(data[3].u4, ballot);
data[invocation].i4.x = int(subgroupPartitionedInclusiveAndNV(data[0].i4.x < 0, ballot));
data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
data[invocation].i4 = ivec4(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot));
data[invocation].i4.x = subgroupPartitionedInclusiveOrNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedInclusiveOrNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedInclusiveOrNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedInclusiveOrNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedInclusiveOrNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedInclusiveOrNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedInclusiveOrNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedInclusiveOrNV(data[3].u4, ballot);
data[invocation].i4.x = int(subgroupPartitionedInclusiveOrNV(data[0].i4.x < 0, ballot));
data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
data[invocation].i4 = ivec4(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot));
data[invocation].i4.x = subgroupPartitionedInclusiveXorNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedInclusiveXorNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedInclusiveXorNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedInclusiveXorNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedInclusiveXorNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedInclusiveXorNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedInclusiveXorNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedInclusiveXorNV(data[3].u4, ballot);
data[invocation].i4.x = int(subgroupPartitionedInclusiveXorNV(data[0].i4.x < 0, ballot));
data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
data[invocation].i4 = ivec4(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot));
data[invocation].f4.x = subgroupPartitionedExclusiveAddNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedExclusiveAddNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedExclusiveAddNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedExclusiveAddNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedExclusiveAddNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedExclusiveAddNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedExclusiveAddNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedExclusiveAddNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedExclusiveAddNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedExclusiveAddNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedExclusiveAddNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedExclusiveAddNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedExclusiveAddNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedExclusiveAddNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedExclusiveAddNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedExclusiveAddNV(data[3].d4, ballot);
data[invocation].f4.x = subgroupPartitionedExclusiveMulNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedExclusiveMulNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedExclusiveMulNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedExclusiveMulNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedExclusiveMulNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedExclusiveMulNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedExclusiveMulNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedExclusiveMulNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedExclusiveMulNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedExclusiveMulNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedExclusiveMulNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedExclusiveMulNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedExclusiveMulNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedExclusiveMulNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedExclusiveMulNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedExclusiveMulNV(data[3].d4, ballot);
data[invocation].f4.x = subgroupPartitionedExclusiveMinNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedExclusiveMinNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedExclusiveMinNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedExclusiveMinNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedExclusiveMinNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedExclusiveMinNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedExclusiveMinNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedExclusiveMinNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedExclusiveMinNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedExclusiveMinNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedExclusiveMinNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedExclusiveMinNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedExclusiveMinNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedExclusiveMinNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedExclusiveMinNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedExclusiveMinNV(data[3].d4, ballot);
data[invocation].f4.x = subgroupPartitionedExclusiveMaxNV(data[0].f4.x, ballot);
data[invocation].f4.xy = subgroupPartitionedExclusiveMaxNV(data[1].f4.xy, ballot);
data[invocation].f4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].f4.xyz, ballot);
data[invocation].f4 = subgroupPartitionedExclusiveMaxNV(data[3].f4, ballot);
data[invocation].i4.x = subgroupPartitionedExclusiveMaxNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedExclusiveMaxNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedExclusiveMaxNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedExclusiveMaxNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedExclusiveMaxNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedExclusiveMaxNV(data[3].u4, ballot);
data[invocation].d4.x = subgroupPartitionedExclusiveMaxNV(data[0].d4.x, ballot);
data[invocation].d4.xy = subgroupPartitionedExclusiveMaxNV(data[1].d4.xy, ballot);
data[invocation].d4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].d4.xyz, ballot);
data[invocation].d4 = subgroupPartitionedExclusiveMaxNV(data[3].d4, ballot);
data[invocation].i4.x = subgroupPartitionedExclusiveAndNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedExclusiveAndNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedExclusiveAndNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedExclusiveAndNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedExclusiveAndNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedExclusiveAndNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedExclusiveAndNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedExclusiveAndNV(data[3].u4, ballot);
data[invocation].i4.x = int(subgroupPartitionedExclusiveAndNV(data[0].i4.x < 0, ballot));
data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
data[invocation].i4 = ivec4(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot));
data[invocation].i4.x = subgroupPartitionedExclusiveOrNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedExclusiveOrNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedExclusiveOrNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedExclusiveOrNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedExclusiveOrNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedExclusiveOrNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedExclusiveOrNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedExclusiveOrNV(data[3].u4, ballot);
data[invocation].i4.x = int(subgroupPartitionedExclusiveOrNV(data[0].i4.x < 0, ballot));
data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
data[invocation].i4 = ivec4(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot));
data[invocation].i4.x = subgroupPartitionedExclusiveXorNV(data[0].i4.x, ballot);
data[invocation].i4.xy = subgroupPartitionedExclusiveXorNV(data[1].i4.xy, ballot);
data[invocation].i4.xyz = subgroupPartitionedExclusiveXorNV(data[2].i4.xyz, ballot);
data[invocation].i4 = subgroupPartitionedExclusiveXorNV(data[3].i4, ballot);
data[invocation].u4.x = subgroupPartitionedExclusiveXorNV(data[0].u4.x, ballot);
data[invocation].u4.xy = subgroupPartitionedExclusiveXorNV(data[1].u4.xy, ballot);
data[invocation].u4.xyz = subgroupPartitionedExclusiveXorNV(data[2].u4.xyz, ballot);
data[invocation].u4 = subgroupPartitionedExclusiveXorNV(data[3].u4, ballot);
data[invocation].i4.x = int(subgroupPartitionedExclusiveXorNV(data[0].i4.x < 0, ballot));
data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot));
data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot));
data[invocation].i4 = ivec4(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot));
}

View File

@ -470,7 +470,7 @@ public:
// Drop just the storage qualification, which perhaps should
// never be done, as it is fundamentally inconsistent, but need to
// explore what downstream consumers need.
// E.g., in a deference, it is an inconsistency between:
// E.g., in a dereference, it is an inconsistency between:
// A) partially dereferenced resource is still in the storage class it started in
// B) partially dereferenced resource is a new temporary object
// If A, then nothing should change, if B, then everything should change, but this is half way.
@ -1315,31 +1315,9 @@ public:
void makeVector() { vector1 = true; }
// Merge type from parent, where a parentType is at the beginning of a declaration,
// establishing some characteristics for all subsequent names, while this type
// is on the individual names.
void mergeType(const TPublicType& parentType)
{
// arrayness is currently the only child aspect that has to be preserved
basicType = parentType.basicType;
vectorSize = parentType.vectorSize;
matrixCols = parentType.matrixCols;
matrixRows = parentType.matrixRows;
vector1 = false; // TPublicType is only GLSL which so far has no vec1
qualifier = parentType.qualifier;
sampler = parentType.sampler;
if (parentType.arraySizes)
newArraySizes(*parentType.arraySizes);
if (parentType.userDef) {
structure = parentType.userDef->getWritableStruct();
setTypeName(parentType.userDef->getTypeName());
}
}
virtual void hideMember() { basicType = EbtVoid; vectorSize = 1; }
virtual bool hiddenMember() const { return basicType == EbtVoid; }
virtual void setTypeName(const TString& n) { typeName = NewPoolTString(n.c_str()); }
virtual void setFieldName(const TString& n) { fieldName = NewPoolTString(n.c_str()); }
virtual const TString& getTypeName() const
{
@ -1369,16 +1347,18 @@ public:
virtual bool isArrayOfArrays() const { return arraySizes != nullptr && arraySizes->getNumDims() > 1; }
virtual int getImplicitArraySize() const { return arraySizes->getImplicitSize(); }
virtual const TArraySizes* getArraySizes() const { return arraySizes; }
virtual TArraySizes& getArraySizes() { assert(arraySizes != nullptr); return *arraySizes; }
virtual TArraySizes* getArraySizes() { return arraySizes; }
virtual bool isScalar() const { return ! isVector() && ! isMatrix() && ! isStruct() && ! isArray(); }
virtual bool isScalarOrVec1() const { return isScalar() || vector1; }
virtual bool isVector() const { return vectorSize > 1 || vector1; }
virtual bool isMatrix() const { return matrixCols ? true : false; }
virtual bool isArray() const { return arraySizes != nullptr; }
virtual bool isExplicitlySizedArray() const { return isArray() && getOuterArraySize() != UnsizedArraySize; }
virtual bool isImplicitlySizedArray() const { return isArray() && getOuterArraySize() == UnsizedArraySize && qualifier.storage != EvqBuffer; }
virtual bool isRuntimeSizedArray() const { return isArray() && getOuterArraySize() == UnsizedArraySize && qualifier.storage == EvqBuffer; }
virtual bool isSizedArray() const { return isArray() && arraySizes->isSized(); }
virtual bool isUnsizedArray() const { return isArray() && !arraySizes->isSized(); }
virtual bool isArrayVariablyIndexed() const { assert(isArray()); return arraySizes->isVariablyIndexed(); }
virtual void setArrayVariablyIndexed() { assert(isArray()); arraySizes->setVariablyIndexed(); }
virtual void updateImplicitArraySize(int size) { assert(isArray()); arraySizes->updateImplicitSize(size); }
virtual bool isStruct() const { return structure != nullptr; }
virtual bool isFloatingDomain() const { return basicType == EbtFloat || basicType == EbtDouble || basicType == EbtFloat16; }
virtual bool isIntegerDomain() const
@ -1436,10 +1416,10 @@ public:
return contains([this](const TType* t) { return t != this && t->isStruct(); } );
}
// Recursively check the structure for any implicitly-sized arrays, needed for triggering a copyUp().
virtual bool containsImplicitlySizedArray() const
// Recursively check the structure for any unsized arrays, needed for triggering a copyUp().
virtual bool containsUnsizedArray() const
{
return contains([](const TType* t) { return t->isImplicitlySizedArray(); } );
return contains([](const TType* t) { return t->isUnsizedArray(); } );
}
virtual bool containsOpaque() const
@ -1503,34 +1483,51 @@ public:
assert(type.arraySizes != nullptr);
*arraySizes = *type.arraySizes;
}
void newArraySizes(const TArraySizes& s)
void copyArraySizes(const TArraySizes& s)
{
// For setting a fresh new set of array sizes, not yet worrying about sharing.
arraySizes = new TArraySizes;
*arraySizes = s;
}
void transferArraySizes(TArraySizes* s)
{
// For setting an already allocated set of sizes that this type can use
// (no copy made).
arraySizes = s;
}
void clearArraySizes()
{
arraySizes = 0;
arraySizes = nullptr;
}
void addArrayOuterSizes(const TArraySizes& s)
// Add inner array sizes, to any existing sizes, via copy; the
// sizes passed in can still be reused for other purposes.
void copyArrayInnerSizes(const TArraySizes* s)
{
if (arraySizes == nullptr)
newArraySizes(s);
else
arraySizes->addOuterSizes(s);
if (s != nullptr) {
if (arraySizes == nullptr)
copyArraySizes(*s);
else
arraySizes->addInnerSizes(*s);
}
}
void changeOuterArraySize(int s) { arraySizes->changeOuterSize(s); }
void setImplicitArraySize(int s) { arraySizes->setImplicitSize(s); }
// Recursively make the implicit array size the explicit array size, through the type tree.
void adoptImplicitArraySizes()
// Recursively make the implicit array size the explicit array size.
// Expicit arrays are compile-time or link-time sized, never run-time sized.
// Sometimes, policy calls for an array to be run-time sized even if it was
// never variably indexed: Don't turn a 'skipNonvariablyIndexed' array into
// an explicit array.
void adoptImplicitArraySizes(bool skipNonvariablyIndexed)
{
if (isImplicitlySizedArray())
if (isUnsizedArray() && !(skipNonvariablyIndexed || isArrayVariablyIndexed()))
changeOuterArraySize(getImplicitArraySize());
if (isStruct()) {
for (int i = 0; i < (int)structure->size(); ++i)
(*structure)[i].type->adoptImplicitArraySizes();
if (isStruct() && structure->size() > 0) {
int lastMember = (int)structure->size() - 1;
for (int i = 0; i < lastMember; ++i)
(*structure)[i].type->adoptImplicitArraySizes(false);
// implement the "last member of an SSBO" policy
(*structure)[lastMember].type->adoptImplicitArraySizes(getQualifier().storage == EvqBuffer);
}
}
@ -1697,11 +1694,19 @@ public:
if (isArray()) {
for(int i = 0; i < (int)arraySizes->getNumDims(); ++i) {
int size = arraySizes->getDimSize(i);
if (size == 0)
appendStr(" implicitly-sized array of");
if (size == UnsizedArraySize && i == 0 && arraySizes->isVariablyIndexed())
appendStr(" runtime-sized array of");
else {
appendStr(" ");
appendInt(arraySizes->getDimSize(i));
if (size == UnsizedArraySize) {
appendStr(" unsized");
if (i == 0) {
appendStr(" ");
appendInt(arraySizes->getImplicitSize());
}
} else {
appendStr(" ");
appendInt(arraySizes->getDimSize(i));
}
appendStr("-element array of");
}
}

View File

@ -41,6 +41,8 @@
#ifndef _ARRAYS_INCLUDED
#define _ARRAYS_INCLUDED
#include <algorithm>
namespace glslang {
// This is used to mean there is no size yet (unsized), it is waiting to get a size from somewhere else.
@ -130,10 +132,10 @@ struct TSmallArrayVector {
sizes->push_back(pair);
}
void push_front(const TSmallArrayVector& newDims)
void push_back(const TSmallArrayVector& newDims)
{
alloc();
sizes->insert(sizes->begin(), newDims.sizes->begin(), newDims.sizes->end());
sizes->insert(sizes->end(), newDims.sizes->begin(), newDims.sizes->end());
}
void pop_front()
@ -220,12 +222,13 @@ protected:
struct TArraySizes {
POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator())
TArraySizes() : implicitArraySize(1) { }
TArraySizes() : implicitArraySize(1), variablyIndexed(false) { }
// For breaking into two non-shared copies, independently modifiable.
TArraySizes& operator=(const TArraySizes& from)
{
implicitArraySize = from.implicitArraySize;
variablyIndexed = from.variablyIndexed;
sizes = from.sizes;
return *this;
@ -252,10 +255,11 @@ struct TArraySizes {
void addInnerSize(int s) { addInnerSize((unsigned)s, nullptr); }
void addInnerSize(int s, TIntermTyped* n) { sizes.push_back((unsigned)s, n); }
void addInnerSize(TArraySize pair) { sizes.push_back(pair.size, pair.node); }
void addInnerSizes(const TArraySizes& s) { sizes.push_back(s.sizes); }
void changeOuterSize(int s) { sizes.changeFront((unsigned)s); }
int getImplicitSize() const { return (int)implicitArraySize; }
void setImplicitSize(int s) { implicitArraySize = s; }
bool isInnerImplicit() const
int getImplicitSize() const { return implicitArraySize; }
void updateImplicitSize(int s) { implicitArraySize = std::max(implicitArraySize, s); }
bool isInnerUnsized() const
{
for (int d = 1; d < sizes.size(); ++d) {
if (sizes.getDimSize(d) == (unsigned)UnsizedArraySize)
@ -264,7 +268,7 @@ struct TArraySizes {
return false;
}
bool clearInnerImplicit()
bool clearInnerUnsized()
{
for (int d = 1; d < sizes.size(); ++d) {
if (sizes.getDimSize(d) == (unsigned)UnsizedArraySize)
@ -287,8 +291,8 @@ struct TArraySizes {
return sizes.getDimNode(0) != nullptr;
}
bool isImplicit() const { return getOuterSize() == UnsizedArraySize || isInnerImplicit(); }
void addOuterSizes(const TArraySizes& s) { sizes.push_front(s.sizes); }
bool hasUnsized() const { return getOuterSize() == UnsizedArraySize || isInnerUnsized(); }
bool isSized() const { return getOuterSize() != UnsizedArraySize; }
void dereference() { sizes.pop_front(); }
void copyDereferenced(const TArraySizes& rhs)
{
@ -311,6 +315,9 @@ struct TArraySizes {
return true;
}
void setVariablyIndexed() { variablyIndexed = true; }
bool isVariablyIndexed() const { return variablyIndexed; }
bool operator==(const TArraySizes& rhs) { return sizes == rhs.sizes; }
bool operator!=(const TArraySizes& rhs) { return sizes != rhs.sizes; }
@ -319,9 +326,12 @@ protected:
TArraySizes(const TArraySizes&);
// for tracking maximum referenced index, before an explicit size is given
// applies only to the outer-most dimension
// For tracking maximum referenced compile-time constant index.
// Applies only to the outer-most dimension. Potentially becomes
// the implicit size of the array, if not variably indexed and
// otherwise legal.
int implicitArraySize;
bool variablyIndexed; // true if array is indexed with a non compile-time constant
};
} // end namespace glslang

32
3rdparty/glslang/glslang/Include/intermediate.h vendored Normal file → Executable file
View File

@ -527,6 +527,32 @@ enum TOperator {
EOpSubgroupQuadSwapHorizontal,
EOpSubgroupQuadSwapVertical,
EOpSubgroupQuadSwapDiagonal,
#ifdef NV_EXTENSIONS
EOpSubgroupPartition,
EOpSubgroupPartitionedAdd,
EOpSubgroupPartitionedMul,
EOpSubgroupPartitionedMin,
EOpSubgroupPartitionedMax,
EOpSubgroupPartitionedAnd,
EOpSubgroupPartitionedOr,
EOpSubgroupPartitionedXor,
EOpSubgroupPartitionedInclusiveAdd,
EOpSubgroupPartitionedInclusiveMul,
EOpSubgroupPartitionedInclusiveMin,
EOpSubgroupPartitionedInclusiveMax,
EOpSubgroupPartitionedInclusiveAnd,
EOpSubgroupPartitionedInclusiveOr,
EOpSubgroupPartitionedInclusiveXor,
EOpSubgroupPartitionedExclusiveAdd,
EOpSubgroupPartitionedExclusiveMul,
EOpSubgroupPartitionedExclusiveMin,
EOpSubgroupPartitionedExclusiveMax,
EOpSubgroupPartitionedExclusiveAnd,
EOpSubgroupPartitionedExclusiveOr,
EOpSubgroupPartitionedExclusiveXor,
#endif
EOpSubgroupGuardStop,
#ifdef AMD_EXTENSIONS
@ -729,7 +755,11 @@ enum TOperator {
// Array operators
//
EOpArrayLength, // "Array" distinguishes from length(v) built-in function, but it applies to vectors and matrices as well.
// Can apply to arrays, vectors, or matrices.
// Can be decomposed to a constant at compile time, but this does not always happen,
// due to link-time effects. So, consumer can expect either a link-time sized or
// run-time sized array.
EOpArrayLength,
//
// Image operations

627
3rdparty/glslang/glslang/MachineIndependent/Initialize.cpp vendored Normal file → Executable file
View File

@ -895,6 +895,36 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 mid3(f16vec3, f16vec3, f16vec3);"
"f16vec4 mid3(f16vec4, f16vec4, f16vec4);"
"int16_t min3(int16_t, int16_t, int16_t);"
"i16vec2 min3(i16vec2, i16vec2, i16vec2);"
"i16vec3 min3(i16vec3, i16vec3, i16vec3);"
"i16vec4 min3(i16vec4, i16vec4, i16vec4);"
"int16_t max3(int16_t, int16_t, int16_t);"
"i16vec2 max3(i16vec2, i16vec2, i16vec2);"
"i16vec3 max3(i16vec3, i16vec3, i16vec3);"
"i16vec4 max3(i16vec4, i16vec4, i16vec4);"
"int16_t mid3(int16_t, int16_t, int16_t);"
"i16vec2 mid3(i16vec2, i16vec2, i16vec2);"
"i16vec3 mid3(i16vec3, i16vec3, i16vec3);"
"i16vec4 mid3(i16vec4, i16vec4, i16vec4);"
"uint16_t min3(uint16_t, uint16_t, uint16_t);"
"u16vec2 min3(u16vec2, u16vec2, u16vec2);"
"u16vec3 min3(u16vec3, u16vec3, u16vec3);"
"u16vec4 min3(u16vec4, u16vec4, u16vec4);"
"uint16_t max3(uint16_t, uint16_t, uint16_t);"
"u16vec2 max3(u16vec2, u16vec2, u16vec2);"
"u16vec3 max3(u16vec3, u16vec3, u16vec3);"
"u16vec4 max3(u16vec4, u16vec4, u16vec4);"
"uint16_t mid3(uint16_t, uint16_t, uint16_t);"
"u16vec2 mid3(u16vec2, u16vec2, u16vec2);"
"u16vec3 mid3(u16vec3, u16vec3, u16vec3);"
"u16vec4 mid3(u16vec4, u16vec4, u16vec4);"
"\n"
);
}
@ -2206,6 +2236,298 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"bvec3 subgroupQuadSwapDiagonal(bvec3);\n"
"bvec4 subgroupQuadSwapDiagonal(bvec4);\n"
#ifdef NV_EXTENSIONS
"uvec4 subgroupPartitionNV(float);\n"
"uvec4 subgroupPartitionNV(vec2);\n"
"uvec4 subgroupPartitionNV(vec3);\n"
"uvec4 subgroupPartitionNV(vec4);\n"
"uvec4 subgroupPartitionNV(int);\n"
"uvec4 subgroupPartitionNV(ivec2);\n"
"uvec4 subgroupPartitionNV(ivec3);\n"
"uvec4 subgroupPartitionNV(ivec4);\n"
"uvec4 subgroupPartitionNV(uint);\n"
"uvec4 subgroupPartitionNV(uvec2);\n"
"uvec4 subgroupPartitionNV(uvec3);\n"
"uvec4 subgroupPartitionNV(uvec4);\n"
"uvec4 subgroupPartitionNV(bool);\n"
"uvec4 subgroupPartitionNV(bvec2);\n"
"uvec4 subgroupPartitionNV(bvec3);\n"
"uvec4 subgroupPartitionNV(bvec4);\n"
"float subgroupPartitionedAddNV(float, uvec4 ballot);\n"
"vec2 subgroupPartitionedAddNV(vec2, uvec4 ballot);\n"
"vec3 subgroupPartitionedAddNV(vec3, uvec4 ballot);\n"
"vec4 subgroupPartitionedAddNV(vec4, uvec4 ballot);\n"
"int subgroupPartitionedAddNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedAddNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedAddNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedAddNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedAddNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedAddNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedAddNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedAddNV(uvec4, uvec4 ballot);\n"
"float subgroupPartitionedMulNV(float, uvec4 ballot);\n"
"vec2 subgroupPartitionedMulNV(vec2, uvec4 ballot);\n"
"vec3 subgroupPartitionedMulNV(vec3, uvec4 ballot);\n"
"vec4 subgroupPartitionedMulNV(vec4, uvec4 ballot);\n"
"int subgroupPartitionedMulNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedMulNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedMulNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedMulNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedMulNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedMulNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedMulNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedMulNV(uvec4, uvec4 ballot);\n"
"float subgroupPartitionedMinNV(float, uvec4 ballot);\n"
"vec2 subgroupPartitionedMinNV(vec2, uvec4 ballot);\n"
"vec3 subgroupPartitionedMinNV(vec3, uvec4 ballot);\n"
"vec4 subgroupPartitionedMinNV(vec4, uvec4 ballot);\n"
"int subgroupPartitionedMinNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedMinNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedMinNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedMinNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedMinNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedMinNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedMinNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedMinNV(uvec4, uvec4 ballot);\n"
"float subgroupPartitionedMaxNV(float, uvec4 ballot);\n"
"vec2 subgroupPartitionedMaxNV(vec2, uvec4 ballot);\n"
"vec3 subgroupPartitionedMaxNV(vec3, uvec4 ballot);\n"
"vec4 subgroupPartitionedMaxNV(vec4, uvec4 ballot);\n"
"int subgroupPartitionedMaxNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedMaxNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedMaxNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedMaxNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedMaxNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedMaxNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedMaxNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedMaxNV(uvec4, uvec4 ballot);\n"
"int subgroupPartitionedAndNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedAndNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedAndNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedAndNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedAndNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedAndNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedAndNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedAndNV(uvec4, uvec4 ballot);\n"
"bool subgroupPartitionedAndNV(bool, uvec4 ballot);\n"
"bvec2 subgroupPartitionedAndNV(bvec2, uvec4 ballot);\n"
"bvec3 subgroupPartitionedAndNV(bvec3, uvec4 ballot);\n"
"bvec4 subgroupPartitionedAndNV(bvec4, uvec4 ballot);\n"
"int subgroupPartitionedOrNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedOrNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedOrNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedOrNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedOrNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedOrNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedOrNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedOrNV(uvec4, uvec4 ballot);\n"
"bool subgroupPartitionedOrNV(bool, uvec4 ballot);\n"
"bvec2 subgroupPartitionedOrNV(bvec2, uvec4 ballot);\n"
"bvec3 subgroupPartitionedOrNV(bvec3, uvec4 ballot);\n"
"bvec4 subgroupPartitionedOrNV(bvec4, uvec4 ballot);\n"
"int subgroupPartitionedXorNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedXorNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedXorNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedXorNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedXorNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedXorNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedXorNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedXorNV(uvec4, uvec4 ballot);\n"
"bool subgroupPartitionedXorNV(bool, uvec4 ballot);\n"
"bvec2 subgroupPartitionedXorNV(bvec2, uvec4 ballot);\n"
"bvec3 subgroupPartitionedXorNV(bvec3, uvec4 ballot);\n"
"bvec4 subgroupPartitionedXorNV(bvec4, uvec4 ballot);\n"
"float subgroupPartitionedInclusiveAddNV(float, uvec4 ballot);\n"
"vec2 subgroupPartitionedInclusiveAddNV(vec2, uvec4 ballot);\n"
"vec3 subgroupPartitionedInclusiveAddNV(vec3, uvec4 ballot);\n"
"vec4 subgroupPartitionedInclusiveAddNV(vec4, uvec4 ballot);\n"
"int subgroupPartitionedInclusiveAddNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedInclusiveAddNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedInclusiveAddNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedInclusiveAddNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedInclusiveAddNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedInclusiveAddNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedInclusiveAddNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedInclusiveAddNV(uvec4, uvec4 ballot);\n"
"float subgroupPartitionedInclusiveMulNV(float, uvec4 ballot);\n"
"vec2 subgroupPartitionedInclusiveMulNV(vec2, uvec4 ballot);\n"
"vec3 subgroupPartitionedInclusiveMulNV(vec3, uvec4 ballot);\n"
"vec4 subgroupPartitionedInclusiveMulNV(vec4, uvec4 ballot);\n"
"int subgroupPartitionedInclusiveMulNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedInclusiveMulNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedInclusiveMulNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedInclusiveMulNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedInclusiveMulNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedInclusiveMulNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedInclusiveMulNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedInclusiveMulNV(uvec4, uvec4 ballot);\n"
"float subgroupPartitionedInclusiveMinNV(float, uvec4 ballot);\n"
"vec2 subgroupPartitionedInclusiveMinNV(vec2, uvec4 ballot);\n"
"vec3 subgroupPartitionedInclusiveMinNV(vec3, uvec4 ballot);\n"
"vec4 subgroupPartitionedInclusiveMinNV(vec4, uvec4 ballot);\n"
"int subgroupPartitionedInclusiveMinNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedInclusiveMinNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedInclusiveMinNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedInclusiveMinNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedInclusiveMinNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedInclusiveMinNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedInclusiveMinNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedInclusiveMinNV(uvec4, uvec4 ballot);\n"
"float subgroupPartitionedInclusiveMaxNV(float, uvec4 ballot);\n"
"vec2 subgroupPartitionedInclusiveMaxNV(vec2, uvec4 ballot);\n"
"vec3 subgroupPartitionedInclusiveMaxNV(vec3, uvec4 ballot);\n"
"vec4 subgroupPartitionedInclusiveMaxNV(vec4, uvec4 ballot);\n"
"int subgroupPartitionedInclusiveMaxNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedInclusiveMaxNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedInclusiveMaxNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedInclusiveMaxNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedInclusiveMaxNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedInclusiveMaxNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedInclusiveMaxNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedInclusiveMaxNV(uvec4, uvec4 ballot);\n"
"int subgroupPartitionedInclusiveAndNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedInclusiveAndNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedInclusiveAndNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedInclusiveAndNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedInclusiveAndNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedInclusiveAndNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedInclusiveAndNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedInclusiveAndNV(uvec4, uvec4 ballot);\n"
"bool subgroupPartitionedInclusiveAndNV(bool, uvec4 ballot);\n"
"bvec2 subgroupPartitionedInclusiveAndNV(bvec2, uvec4 ballot);\n"
"bvec3 subgroupPartitionedInclusiveAndNV(bvec3, uvec4 ballot);\n"
"bvec4 subgroupPartitionedInclusiveAndNV(bvec4, uvec4 ballot);\n"
"int subgroupPartitionedInclusiveOrNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedInclusiveOrNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedInclusiveOrNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedInclusiveOrNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedInclusiveOrNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedInclusiveOrNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedInclusiveOrNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedInclusiveOrNV(uvec4, uvec4 ballot);\n"
"bool subgroupPartitionedInclusiveOrNV(bool, uvec4 ballot);\n"
"bvec2 subgroupPartitionedInclusiveOrNV(bvec2, uvec4 ballot);\n"
"bvec3 subgroupPartitionedInclusiveOrNV(bvec3, uvec4 ballot);\n"
"bvec4 subgroupPartitionedInclusiveOrNV(bvec4, uvec4 ballot);\n"
"int subgroupPartitionedInclusiveXorNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedInclusiveXorNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedInclusiveXorNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedInclusiveXorNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedInclusiveXorNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedInclusiveXorNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedInclusiveXorNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedInclusiveXorNV(uvec4, uvec4 ballot);\n"
"bool subgroupPartitionedInclusiveXorNV(bool, uvec4 ballot);\n"
"bvec2 subgroupPartitionedInclusiveXorNV(bvec2, uvec4 ballot);\n"
"bvec3 subgroupPartitionedInclusiveXorNV(bvec3, uvec4 ballot);\n"
"bvec4 subgroupPartitionedInclusiveXorNV(bvec4, uvec4 ballot);\n"
"float subgroupPartitionedExclusiveAddNV(float, uvec4 ballot);\n"
"vec2 subgroupPartitionedExclusiveAddNV(vec2, uvec4 ballot);\n"
"vec3 subgroupPartitionedExclusiveAddNV(vec3, uvec4 ballot);\n"
"vec4 subgroupPartitionedExclusiveAddNV(vec4, uvec4 ballot);\n"
"int subgroupPartitionedExclusiveAddNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedExclusiveAddNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedExclusiveAddNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedExclusiveAddNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedExclusiveAddNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedExclusiveAddNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedExclusiveAddNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedExclusiveAddNV(uvec4, uvec4 ballot);\n"
"float subgroupPartitionedExclusiveMulNV(float, uvec4 ballot);\n"
"vec2 subgroupPartitionedExclusiveMulNV(vec2, uvec4 ballot);\n"
"vec3 subgroupPartitionedExclusiveMulNV(vec3, uvec4 ballot);\n"
"vec4 subgroupPartitionedExclusiveMulNV(vec4, uvec4 ballot);\n"
"int subgroupPartitionedExclusiveMulNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedExclusiveMulNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedExclusiveMulNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedExclusiveMulNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedExclusiveMulNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedExclusiveMulNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedExclusiveMulNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedExclusiveMulNV(uvec4, uvec4 ballot);\n"
"float subgroupPartitionedExclusiveMinNV(float, uvec4 ballot);\n"
"vec2 subgroupPartitionedExclusiveMinNV(vec2, uvec4 ballot);\n"
"vec3 subgroupPartitionedExclusiveMinNV(vec3, uvec4 ballot);\n"
"vec4 subgroupPartitionedExclusiveMinNV(vec4, uvec4 ballot);\n"
"int subgroupPartitionedExclusiveMinNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedExclusiveMinNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedExclusiveMinNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedExclusiveMinNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedExclusiveMinNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedExclusiveMinNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedExclusiveMinNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedExclusiveMinNV(uvec4, uvec4 ballot);\n"
"float subgroupPartitionedExclusiveMaxNV(float, uvec4 ballot);\n"
"vec2 subgroupPartitionedExclusiveMaxNV(vec2, uvec4 ballot);\n"
"vec3 subgroupPartitionedExclusiveMaxNV(vec3, uvec4 ballot);\n"
"vec4 subgroupPartitionedExclusiveMaxNV(vec4, uvec4 ballot);\n"
"int subgroupPartitionedExclusiveMaxNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedExclusiveMaxNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedExclusiveMaxNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedExclusiveMaxNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedExclusiveMaxNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedExclusiveMaxNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedExclusiveMaxNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedExclusiveMaxNV(uvec4, uvec4 ballot);\n"
"int subgroupPartitionedExclusiveAndNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedExclusiveAndNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedExclusiveAndNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedExclusiveAndNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedExclusiveAndNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedExclusiveAndNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedExclusiveAndNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedExclusiveAndNV(uvec4, uvec4 ballot);\n"
"bool subgroupPartitionedExclusiveAndNV(bool, uvec4 ballot);\n"
"bvec2 subgroupPartitionedExclusiveAndNV(bvec2, uvec4 ballot);\n"
"bvec3 subgroupPartitionedExclusiveAndNV(bvec3, uvec4 ballot);\n"
"bvec4 subgroupPartitionedExclusiveAndNV(bvec4, uvec4 ballot);\n"
"int subgroupPartitionedExclusiveOrNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedExclusiveOrNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedExclusiveOrNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedExclusiveOrNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedExclusiveOrNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedExclusiveOrNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedExclusiveOrNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedExclusiveOrNV(uvec4, uvec4 ballot);\n"
"bool subgroupPartitionedExclusiveOrNV(bool, uvec4 ballot);\n"
"bvec2 subgroupPartitionedExclusiveOrNV(bvec2, uvec4 ballot);\n"
"bvec3 subgroupPartitionedExclusiveOrNV(bvec3, uvec4 ballot);\n"
"bvec4 subgroupPartitionedExclusiveOrNV(bvec4, uvec4 ballot);\n"
"int subgroupPartitionedExclusiveXorNV(int, uvec4 ballot);\n"
"ivec2 subgroupPartitionedExclusiveXorNV(ivec2, uvec4 ballot);\n"
"ivec3 subgroupPartitionedExclusiveXorNV(ivec3, uvec4 ballot);\n"
"ivec4 subgroupPartitionedExclusiveXorNV(ivec4, uvec4 ballot);\n"
"uint subgroupPartitionedExclusiveXorNV(uint, uvec4 ballot);\n"
"uvec2 subgroupPartitionedExclusiveXorNV(uvec2, uvec4 ballot);\n"
"uvec3 subgroupPartitionedExclusiveXorNV(uvec3, uvec4 ballot);\n"
"uvec4 subgroupPartitionedExclusiveXorNV(uvec4, uvec4 ballot);\n"
"bool subgroupPartitionedExclusiveXorNV(bool, uvec4 ballot);\n"
"bvec2 subgroupPartitionedExclusiveXorNV(bvec2, uvec4 ballot);\n"
"bvec3 subgroupPartitionedExclusiveXorNV(bvec3, uvec4 ballot);\n"
"bvec4 subgroupPartitionedExclusiveXorNV(bvec4, uvec4 ballot);\n"
#endif
"\n");
if (profile != EEsProfile && version >= 400) {
@ -2345,6 +2667,74 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"dvec3 subgroupQuadSwapDiagonal(dvec3);\n"
"dvec4 subgroupQuadSwapDiagonal(dvec4);\n"
#ifdef NV_EXTENSIONS
"uvec4 subgroupPartitionNV(double);\n"
"uvec4 subgroupPartitionNV(dvec2);\n"
"uvec4 subgroupPartitionNV(dvec3);\n"
"uvec4 subgroupPartitionNV(dvec4);\n"
"double subgroupPartitionedAddNV(double, uvec4 ballot);\n"
"dvec2 subgroupPartitionedAddNV(dvec2, uvec4 ballot);\n"
"dvec3 subgroupPartitionedAddNV(dvec3, uvec4 ballot);\n"
"dvec4 subgroupPartitionedAddNV(dvec4, uvec4 ballot);\n"
"double subgroupPartitionedMulNV(double, uvec4 ballot);\n"
"dvec2 subgroupPartitionedMulNV(dvec2, uvec4 ballot);\n"
"dvec3 subgroupPartitionedMulNV(dvec3, uvec4 ballot);\n"
"dvec4 subgroupPartitionedMulNV(dvec4, uvec4 ballot);\n"
"double subgroupPartitionedMinNV(double, uvec4 ballot);\n"
"dvec2 subgroupPartitionedMinNV(dvec2, uvec4 ballot);\n"
"dvec3 subgroupPartitionedMinNV(dvec3, uvec4 ballot);\n"
"dvec4 subgroupPartitionedMinNV(dvec4, uvec4 ballot);\n"
"double subgroupPartitionedMaxNV(double, uvec4 ballot);\n"
"dvec2 subgroupPartitionedMaxNV(dvec2, uvec4 ballot);\n"
"dvec3 subgroupPartitionedMaxNV(dvec3, uvec4 ballot);\n"
"dvec4 subgroupPartitionedMaxNV(dvec4, uvec4 ballot);\n"
"double subgroupPartitionedInclusiveAddNV(double, uvec4 ballot);\n"
"dvec2 subgroupPartitionedInclusiveAddNV(dvec2, uvec4 ballot);\n"
"dvec3 subgroupPartitionedInclusiveAddNV(dvec3, uvec4 ballot);\n"
"dvec4 subgroupPartitionedInclusiveAddNV(dvec4, uvec4 ballot);\n"
"double subgroupPartitionedInclusiveMulNV(double, uvec4 ballot);\n"
"dvec2 subgroupPartitionedInclusiveMulNV(dvec2, uvec4 ballot);\n"
"dvec3 subgroupPartitionedInclusiveMulNV(dvec3, uvec4 ballot);\n"
"dvec4 subgroupPartitionedInclusiveMulNV(dvec4, uvec4 ballot);\n"
"double subgroupPartitionedInclusiveMinNV(double, uvec4 ballot);\n"
"dvec2 subgroupPartitionedInclusiveMinNV(dvec2, uvec4 ballot);\n"
"dvec3 subgroupPartitionedInclusiveMinNV(dvec3, uvec4 ballot);\n"
"dvec4 subgroupPartitionedInclusiveMinNV(dvec4, uvec4 ballot);\n"
"double subgroupPartitionedInclusiveMaxNV(double, uvec4 ballot);\n"
"dvec2 subgroupPartitionedInclusiveMaxNV(dvec2, uvec4 ballot);\n"
"dvec3 subgroupPartitionedInclusiveMaxNV(dvec3, uvec4 ballot);\n"
"dvec4 subgroupPartitionedInclusiveMaxNV(dvec4, uvec4 ballot);\n"
"double subgroupPartitionedExclusiveAddNV(double, uvec4 ballot);\n"
"dvec2 subgroupPartitionedExclusiveAddNV(dvec2, uvec4 ballot);\n"
"dvec3 subgroupPartitionedExclusiveAddNV(dvec3, uvec4 ballot);\n"
"dvec4 subgroupPartitionedExclusiveAddNV(dvec4, uvec4 ballot);\n"
"double subgroupPartitionedExclusiveMulNV(double, uvec4 ballot);\n"
"dvec2 subgroupPartitionedExclusiveMulNV(dvec2, uvec4 ballot);\n"
"dvec3 subgroupPartitionedExclusiveMulNV(dvec3, uvec4 ballot);\n"
"dvec4 subgroupPartitionedExclusiveMulNV(dvec4, uvec4 ballot);\n"
"double subgroupPartitionedExclusiveMinNV(double, uvec4 ballot);\n"
"dvec2 subgroupPartitionedExclusiveMinNV(dvec2, uvec4 ballot);\n"
"dvec3 subgroupPartitionedExclusiveMinNV(dvec3, uvec4 ballot);\n"
"dvec4 subgroupPartitionedExclusiveMinNV(dvec4, uvec4 ballot);\n"
"double subgroupPartitionedExclusiveMaxNV(double, uvec4 ballot);\n"
"dvec2 subgroupPartitionedExclusiveMaxNV(dvec2, uvec4 ballot);\n"
"dvec3 subgroupPartitionedExclusiveMaxNV(dvec3, uvec4 ballot);\n"
"dvec4 subgroupPartitionedExclusiveMaxNV(dvec4, uvec4 ballot);\n"
#endif
"\n");
}
@ -2403,6 +2793,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 minInvocationsAMD(f16vec3);"
"f16vec4 minInvocationsAMD(f16vec4);"
"int16_t minInvocationsAMD(int16_t);"
"i16vec2 minInvocationsAMD(i16vec2);"
"i16vec3 minInvocationsAMD(i16vec3);"
"i16vec4 minInvocationsAMD(i16vec4);"
"uint16_t minInvocationsAMD(uint16_t);"
"u16vec2 minInvocationsAMD(u16vec2);"
"u16vec3 minInvocationsAMD(u16vec3);"
"u16vec4 minInvocationsAMD(u16vec4);"
"float minInvocationsInclusiveScanAMD(float);"
"vec2 minInvocationsInclusiveScanAMD(vec2);"
"vec3 minInvocationsInclusiveScanAMD(vec3);"
@ -2438,6 +2838,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 minInvocationsInclusiveScanAMD(f16vec3);"
"f16vec4 minInvocationsInclusiveScanAMD(f16vec4);"
"int16_t minInvocationsInclusiveScanAMD(int16_t);"
"i16vec2 minInvocationsInclusiveScanAMD(i16vec2);"
"i16vec3 minInvocationsInclusiveScanAMD(i16vec3);"
"i16vec4 minInvocationsInclusiveScanAMD(i16vec4);"
"uint16_t minInvocationsInclusiveScanAMD(uint16_t);"
"u16vec2 minInvocationsInclusiveScanAMD(u16vec2);"
"u16vec3 minInvocationsInclusiveScanAMD(u16vec3);"
"u16vec4 minInvocationsInclusiveScanAMD(u16vec4);"
"float minInvocationsExclusiveScanAMD(float);"
"vec2 minInvocationsExclusiveScanAMD(vec2);"
"vec3 minInvocationsExclusiveScanAMD(vec3);"
@ -2473,6 +2883,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 minInvocationsExclusiveScanAMD(f16vec3);"
"f16vec4 minInvocationsExclusiveScanAMD(f16vec4);"
"int16_t minInvocationsExclusiveScanAMD(int16_t);"
"i16vec2 minInvocationsExclusiveScanAMD(i16vec2);"
"i16vec3 minInvocationsExclusiveScanAMD(i16vec3);"
"i16vec4 minInvocationsExclusiveScanAMD(i16vec4);"
"uint16_t minInvocationsExclusiveScanAMD(uint16_t);"
"u16vec2 minInvocationsExclusiveScanAMD(u16vec2);"
"u16vec3 minInvocationsExclusiveScanAMD(u16vec3);"
"u16vec4 minInvocationsExclusiveScanAMD(u16vec4);"
"float maxInvocationsAMD(float);"
"vec2 maxInvocationsAMD(vec2);"
"vec3 maxInvocationsAMD(vec3);"
@ -2508,6 +2928,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 maxInvocationsAMD(f16vec3);"
"f16vec4 maxInvocationsAMD(f16vec4);"
"int16_t maxInvocationsAMD(int16_t);"
"i16vec2 maxInvocationsAMD(i16vec2);"
"i16vec3 maxInvocationsAMD(i16vec3);"
"i16vec4 maxInvocationsAMD(i16vec4);"
"uint16_t maxInvocationsAMD(uint16_t);"
"u16vec2 maxInvocationsAMD(u16vec2);"
"u16vec3 maxInvocationsAMD(u16vec3);"
"u16vec4 maxInvocationsAMD(u16vec4);"
"float maxInvocationsInclusiveScanAMD(float);"
"vec2 maxInvocationsInclusiveScanAMD(vec2);"
"vec3 maxInvocationsInclusiveScanAMD(vec3);"
@ -2543,6 +2973,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 maxInvocationsInclusiveScanAMD(f16vec3);"
"f16vec4 maxInvocationsInclusiveScanAMD(f16vec4);"
"int16_t maxInvocationsInclusiveScanAMD(int16_t);"
"i16vec2 maxInvocationsInclusiveScanAMD(i16vec2);"
"i16vec3 maxInvocationsInclusiveScanAMD(i16vec3);"
"i16vec4 maxInvocationsInclusiveScanAMD(i16vec4);"
"uint16_t maxInvocationsInclusiveScanAMD(uint16_t);"
"u16vec2 maxInvocationsInclusiveScanAMD(u16vec2);"
"u16vec3 maxInvocationsInclusiveScanAMD(u16vec3);"
"u16vec4 maxInvocationsInclusiveScanAMD(u16vec4);"
"float maxInvocationsExclusiveScanAMD(float);"
"vec2 maxInvocationsExclusiveScanAMD(vec2);"
"vec3 maxInvocationsExclusiveScanAMD(vec3);"
@ -2578,6 +3018,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 maxInvocationsExclusiveScanAMD(f16vec3);"
"f16vec4 maxInvocationsExclusiveScanAMD(f16vec4);"
"int16_t maxInvocationsExclusiveScanAMD(int16_t);"
"i16vec2 maxInvocationsExclusiveScanAMD(i16vec2);"
"i16vec3 maxInvocationsExclusiveScanAMD(i16vec3);"
"i16vec4 maxInvocationsExclusiveScanAMD(i16vec4);"
"uint16_t maxInvocationsExclusiveScanAMD(uint16_t);"
"u16vec2 maxInvocationsExclusiveScanAMD(u16vec2);"
"u16vec3 maxInvocationsExclusiveScanAMD(u16vec3);"
"u16vec4 maxInvocationsExclusiveScanAMD(u16vec4);"
"float addInvocationsAMD(float);"
"vec2 addInvocationsAMD(vec2);"
"vec3 addInvocationsAMD(vec3);"
@ -2613,6 +3063,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 addInvocationsAMD(f16vec3);"
"f16vec4 addInvocationsAMD(f16vec4);"
"int16_t addInvocationsAMD(int16_t);"
"i16vec2 addInvocationsAMD(i16vec2);"
"i16vec3 addInvocationsAMD(i16vec3);"
"i16vec4 addInvocationsAMD(i16vec4);"
"uint16_t addInvocationsAMD(uint16_t);"
"u16vec2 addInvocationsAMD(u16vec2);"
"u16vec3 addInvocationsAMD(u16vec3);"
"u16vec4 addInvocationsAMD(u16vec4);"
"float addInvocationsInclusiveScanAMD(float);"
"vec2 addInvocationsInclusiveScanAMD(vec2);"
"vec3 addInvocationsInclusiveScanAMD(vec3);"
@ -2648,6 +3108,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 addInvocationsInclusiveScanAMD(f16vec3);"
"f16vec4 addInvocationsInclusiveScanAMD(f16vec4);"
"int16_t addInvocationsInclusiveScanAMD(int16_t);"
"i16vec2 addInvocationsInclusiveScanAMD(i16vec2);"
"i16vec3 addInvocationsInclusiveScanAMD(i16vec3);"
"i16vec4 addInvocationsInclusiveScanAMD(i16vec4);"
"uint16_t addInvocationsInclusiveScanAMD(uint16_t);"
"u16vec2 addInvocationsInclusiveScanAMD(u16vec2);"
"u16vec3 addInvocationsInclusiveScanAMD(u16vec3);"
"u16vec4 addInvocationsInclusiveScanAMD(u16vec4);"
"float addInvocationsExclusiveScanAMD(float);"
"vec2 addInvocationsExclusiveScanAMD(vec2);"
"vec3 addInvocationsExclusiveScanAMD(vec3);"
@ -2683,6 +3153,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 addInvocationsExclusiveScanAMD(f16vec3);"
"f16vec4 addInvocationsExclusiveScanAMD(f16vec4);"
"int16_t addInvocationsExclusiveScanAMD(int16_t);"
"i16vec2 addInvocationsExclusiveScanAMD(i16vec2);"
"i16vec3 addInvocationsExclusiveScanAMD(i16vec3);"
"i16vec4 addInvocationsExclusiveScanAMD(i16vec4);"
"uint16_t addInvocationsExclusiveScanAMD(uint16_t);"
"u16vec2 addInvocationsExclusiveScanAMD(u16vec2);"
"u16vec3 addInvocationsExclusiveScanAMD(u16vec3);"
"u16vec4 addInvocationsExclusiveScanAMD(u16vec4);"
"float minInvocationsNonUniformAMD(float);"
"vec2 minInvocationsNonUniformAMD(vec2);"
"vec3 minInvocationsNonUniformAMD(vec3);"
@ -2718,6 +3198,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 minInvocationsNonUniformAMD(f16vec3);"
"f16vec4 minInvocationsNonUniformAMD(f16vec4);"
"int16_t minInvocationsNonUniformAMD(int16_t);"
"i16vec2 minInvocationsNonUniformAMD(i16vec2);"
"i16vec3 minInvocationsNonUniformAMD(i16vec3);"
"i16vec4 minInvocationsNonUniformAMD(i16vec4);"
"uint16_t minInvocationsNonUniformAMD(uint16_t);"
"u16vec2 minInvocationsNonUniformAMD(u16vec2);"
"u16vec3 minInvocationsNonUniformAMD(u16vec3);"
"u16vec4 minInvocationsNonUniformAMD(u16vec4);"
"float minInvocationsInclusiveScanNonUniformAMD(float);"
"vec2 minInvocationsInclusiveScanNonUniformAMD(vec2);"
"vec3 minInvocationsInclusiveScanNonUniformAMD(vec3);"
@ -2753,6 +3243,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 minInvocationsInclusiveScanNonUniformAMD(f16vec3);"
"f16vec4 minInvocationsInclusiveScanNonUniformAMD(f16vec4);"
"int16_t minInvocationsInclusiveScanNonUniformAMD(int16_t);"
"i16vec2 minInvocationsInclusiveScanNonUniformAMD(i16vec2);"
"i16vec3 minInvocationsInclusiveScanNonUniformAMD(i16vec3);"
"i16vec4 minInvocationsInclusiveScanNonUniformAMD(i16vec4);"
"uint16_t minInvocationsInclusiveScanNonUniformAMD(uint16_t);"
"u16vec2 minInvocationsInclusiveScanNonUniformAMD(u16vec2);"
"u16vec3 minInvocationsInclusiveScanNonUniformAMD(u16vec3);"
"u16vec4 minInvocationsInclusiveScanNonUniformAMD(u16vec4);"
"float minInvocationsExclusiveScanNonUniformAMD(float);"
"vec2 minInvocationsExclusiveScanNonUniformAMD(vec2);"
"vec3 minInvocationsExclusiveScanNonUniformAMD(vec3);"
@ -2788,6 +3288,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 minInvocationsExclusiveScanNonUniformAMD(f16vec3);"
"f16vec4 minInvocationsExclusiveScanNonUniformAMD(f16vec4);"
"int16_t minInvocationsExclusiveScanNonUniformAMD(int16_t);"
"i16vec2 minInvocationsExclusiveScanNonUniformAMD(i16vec2);"
"i16vec3 minInvocationsExclusiveScanNonUniformAMD(i16vec3);"
"i16vec4 minInvocationsExclusiveScanNonUniformAMD(i16vec4);"
"uint16_t minInvocationsExclusiveScanNonUniformAMD(uint16_t);"
"u16vec2 minInvocationsExclusiveScanNonUniformAMD(u16vec2);"
"u16vec3 minInvocationsExclusiveScanNonUniformAMD(u16vec3);"
"u16vec4 minInvocationsExclusiveScanNonUniformAMD(u16vec4);"
"float maxInvocationsNonUniformAMD(float);"
"vec2 maxInvocationsNonUniformAMD(vec2);"
"vec3 maxInvocationsNonUniformAMD(vec3);"
@ -2823,6 +3333,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 maxInvocationsNonUniformAMD(f16vec3);"
"f16vec4 maxInvocationsNonUniformAMD(f16vec4);"
"int16_t maxInvocationsNonUniformAMD(int16_t);"
"i16vec2 maxInvocationsNonUniformAMD(i16vec2);"
"i16vec3 maxInvocationsNonUniformAMD(i16vec3);"
"i16vec4 maxInvocationsNonUniformAMD(i16vec4);"
"uint16_t maxInvocationsNonUniformAMD(uint16_t);"
"u16vec2 maxInvocationsNonUniformAMD(u16vec2);"
"u16vec3 maxInvocationsNonUniformAMD(u16vec3);"
"u16vec4 maxInvocationsNonUniformAMD(u16vec4);"
"float maxInvocationsInclusiveScanNonUniformAMD(float);"
"vec2 maxInvocationsInclusiveScanNonUniformAMD(vec2);"
"vec3 maxInvocationsInclusiveScanNonUniformAMD(vec3);"
@ -2858,6 +3378,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 maxInvocationsInclusiveScanNonUniformAMD(f16vec3);"
"f16vec4 maxInvocationsInclusiveScanNonUniformAMD(f16vec4);"
"int16_t maxInvocationsInclusiveScanNonUniformAMD(int16_t);"
"i16vec2 maxInvocationsInclusiveScanNonUniformAMD(i16vec2);"
"i16vec3 maxInvocationsInclusiveScanNonUniformAMD(i16vec3);"
"i16vec4 maxInvocationsInclusiveScanNonUniformAMD(i16vec4);"
"uint16_t maxInvocationsInclusiveScanNonUniformAMD(uint16_t);"
"u16vec2 maxInvocationsInclusiveScanNonUniformAMD(u16vec2);"
"u16vec3 maxInvocationsInclusiveScanNonUniformAMD(u16vec3);"
"u16vec4 maxInvocationsInclusiveScanNonUniformAMD(u16vec4);"
"float maxInvocationsExclusiveScanNonUniformAMD(float);"
"vec2 maxInvocationsExclusiveScanNonUniformAMD(vec2);"
"vec3 maxInvocationsExclusiveScanNonUniformAMD(vec3);"
@ -2893,6 +3423,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 maxInvocationsExclusiveScanNonUniformAMD(f16vec3);"
"f16vec4 maxInvocationsExclusiveScanNonUniformAMD(f16vec4);"
"int16_t maxInvocationsExclusiveScanNonUniformAMD(int16_t);"
"i16vec2 maxInvocationsExclusiveScanNonUniformAMD(i16vec2);"
"i16vec3 maxInvocationsExclusiveScanNonUniformAMD(i16vec3);"
"i16vec4 maxInvocationsExclusiveScanNonUniformAMD(i16vec4);"
"uint16_t maxInvocationsExclusiveScanNonUniformAMD(uint16_t);"
"u16vec2 maxInvocationsExclusiveScanNonUniformAMD(u16vec2);"
"u16vec3 maxInvocationsExclusiveScanNonUniformAMD(u16vec3);"
"u16vec4 maxInvocationsExclusiveScanNonUniformAMD(u16vec4);"
"float addInvocationsNonUniformAMD(float);"
"vec2 addInvocationsNonUniformAMD(vec2);"
"vec3 addInvocationsNonUniformAMD(vec3);"
@ -2928,6 +3468,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 addInvocationsNonUniformAMD(f16vec3);"
"f16vec4 addInvocationsNonUniformAMD(f16vec4);"
"int16_t addInvocationsNonUniformAMD(int16_t);"
"i16vec2 addInvocationsNonUniformAMD(i16vec2);"
"i16vec3 addInvocationsNonUniformAMD(i16vec3);"
"i16vec4 addInvocationsNonUniformAMD(i16vec4);"
"uint16_t addInvocationsNonUniformAMD(uint16_t);"
"u16vec2 addInvocationsNonUniformAMD(u16vec2);"
"u16vec3 addInvocationsNonUniformAMD(u16vec3);"
"u16vec4 addInvocationsNonUniformAMD(u16vec4);"
"float addInvocationsInclusiveScanNonUniformAMD(float);"
"vec2 addInvocationsInclusiveScanNonUniformAMD(vec2);"
"vec3 addInvocationsInclusiveScanNonUniformAMD(vec3);"
@ -2963,6 +3513,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 addInvocationsInclusiveScanNonUniformAMD(f16vec3);"
"f16vec4 addInvocationsInclusiveScanNonUniformAMD(f16vec4);"
"int16_t addInvocationsInclusiveScanNonUniformAMD(int16_t);"
"i16vec2 addInvocationsInclusiveScanNonUniformAMD(i16vec2);"
"i16vec3 addInvocationsInclusiveScanNonUniformAMD(i16vec3);"
"i16vec4 addInvocationsInclusiveScanNonUniformAMD(i16vec4);"
"uint16_t addInvocationsInclusiveScanNonUniformAMD(uint16_t);"
"u16vec2 addInvocationsInclusiveScanNonUniformAMD(u16vec2);"
"u16vec3 addInvocationsInclusiveScanNonUniformAMD(u16vec3);"
"u16vec4 addInvocationsInclusiveScanNonUniformAMD(u16vec4);"
"float addInvocationsExclusiveScanNonUniformAMD(float);"
"vec2 addInvocationsExclusiveScanNonUniformAMD(vec2);"
"vec3 addInvocationsExclusiveScanNonUniformAMD(vec3);"
@ -2998,6 +3558,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"f16vec3 addInvocationsExclusiveScanNonUniformAMD(f16vec3);"
"f16vec4 addInvocationsExclusiveScanNonUniformAMD(f16vec4);"
"int16_t addInvocationsExclusiveScanNonUniformAMD(int16_t);"
"i16vec2 addInvocationsExclusiveScanNonUniformAMD(i16vec2);"
"i16vec3 addInvocationsExclusiveScanNonUniformAMD(i16vec3);"
"i16vec4 addInvocationsExclusiveScanNonUniformAMD(i16vec4);"
"uint16_t addInvocationsExclusiveScanNonUniformAMD(uint16_t);"
"u16vec2 addInvocationsExclusiveScanNonUniformAMD(u16vec2);"
"u16vec3 addInvocationsExclusiveScanNonUniformAMD(u16vec3);"
"u16vec4 addInvocationsExclusiveScanNonUniformAMD(u16vec4);"
"float swizzleInvocationsAMD(float, uvec4);"
"vec2 swizzleInvocationsAMD(vec2, uvec4);"
"vec3 swizzleInvocationsAMD(vec3, uvec4);"
@ -7361,6 +7931,32 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable.setFunctionExtensions("subgroupQuadSwapHorizontal", 1, &E_GL_KHR_shader_subgroup_quad);
symbolTable.setFunctionExtensions("subgroupQuadSwapVertical", 1, &E_GL_KHR_shader_subgroup_quad);
symbolTable.setFunctionExtensions("subgroupQuadSwapDiagonal", 1, &E_GL_KHR_shader_subgroup_quad);
#ifdef NV_EXTENSIONS
symbolTable.setFunctionExtensions("subgroupPartitionNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedAddNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedMulNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedMinNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedMaxNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedAndNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedOrNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedXorNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveAddNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveMulNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveMinNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveMaxNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveAndNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveOrNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveXorNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveAddNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveMulNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveMinNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveMaxNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveAndNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveOrNV", 1, &E_GL_NV_shader_subgroup_partitioned);
symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveXorNV", 1, &E_GL_NV_shader_subgroup_partitioned);
#endif
}
if (profile == EEsProfile) {
@ -7897,6 +8493,31 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable.relateToOperator("subgroupQuadSwapHorizontal", EOpSubgroupQuadSwapHorizontal);
symbolTable.relateToOperator("subgroupQuadSwapVertical", EOpSubgroupQuadSwapVertical);
symbolTable.relateToOperator("subgroupQuadSwapDiagonal", EOpSubgroupQuadSwapDiagonal);
#ifdef NV_EXTENSIONS
symbolTable.relateToOperator("subgroupPartitionNV", EOpSubgroupPartition);
symbolTable.relateToOperator("subgroupPartitionedAddNV", EOpSubgroupPartitionedAdd);
symbolTable.relateToOperator("subgroupPartitionedMulNV", EOpSubgroupPartitionedMul);
symbolTable.relateToOperator("subgroupPartitionedMinNV", EOpSubgroupPartitionedMin);
symbolTable.relateToOperator("subgroupPartitionedMaxNV", EOpSubgroupPartitionedMax);
symbolTable.relateToOperator("subgroupPartitionedAndNV", EOpSubgroupPartitionedAnd);
symbolTable.relateToOperator("subgroupPartitionedOrNV", EOpSubgroupPartitionedOr);
symbolTable.relateToOperator("subgroupPartitionedXorNV", EOpSubgroupPartitionedXor);
symbolTable.relateToOperator("subgroupPartitionedInclusiveAddNV", EOpSubgroupPartitionedInclusiveAdd);
symbolTable.relateToOperator("subgroupPartitionedInclusiveMulNV", EOpSubgroupPartitionedInclusiveMul);
symbolTable.relateToOperator("subgroupPartitionedInclusiveMinNV", EOpSubgroupPartitionedInclusiveMin);
symbolTable.relateToOperator("subgroupPartitionedInclusiveMaxNV", EOpSubgroupPartitionedInclusiveMax);
symbolTable.relateToOperator("subgroupPartitionedInclusiveAndNV", EOpSubgroupPartitionedInclusiveAnd);
symbolTable.relateToOperator("subgroupPartitionedInclusiveOrNV", EOpSubgroupPartitionedInclusiveOr);
symbolTable.relateToOperator("subgroupPartitionedInclusiveXorNV", EOpSubgroupPartitionedInclusiveXor);
symbolTable.relateToOperator("subgroupPartitionedExclusiveAddNV", EOpSubgroupPartitionedExclusiveAdd);
symbolTable.relateToOperator("subgroupPartitionedExclusiveMulNV", EOpSubgroupPartitionedExclusiveMul);
symbolTable.relateToOperator("subgroupPartitionedExclusiveMinNV", EOpSubgroupPartitionedExclusiveMin);
symbolTable.relateToOperator("subgroupPartitionedExclusiveMaxNV", EOpSubgroupPartitionedExclusiveMax);
symbolTable.relateToOperator("subgroupPartitionedExclusiveAndNV", EOpSubgroupPartitionedExclusiveAnd);
symbolTable.relateToOperator("subgroupPartitionedExclusiveOrNV", EOpSubgroupPartitionedExclusiveOr);
symbolTable.relateToOperator("subgroupPartitionedExclusiveXorNV", EOpSubgroupPartitionedExclusiveXor);
#endif
}
if (profile == EEsProfile) {
@ -7981,9 +8602,9 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
if (version == 100 || IncludeLegacy(version, profile, spvVersion) || (! ForwardCompatibility && profile != EEsProfile && version < 420)) {
TPrecisionQualifier pq = profile == EEsProfile ? EpqMedium : EpqNone;
TType fragData(EbtFloat, EvqFragColor, pq, 4);
TArraySizes& arraySizes = *new TArraySizes;
arraySizes.addInnerSize(resources.maxDrawBuffers);
fragData.newArraySizes(arraySizes);
TArraySizes* arraySizes = new TArraySizes;
arraySizes->addInnerSize(resources.maxDrawBuffers);
fragData.transferArraySizes(arraySizes);
symbolTable.insert(*new TVariable(NewPoolTString("gl_FragData"), fragData));
SpecialQualifier("gl_FragData", EvqFragColor, EbvFragData, symbolTable);
}

View File

@ -701,12 +701,6 @@ TIntermUnary* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped
// TODO: it seems that some unary folding operations should occur here, but are not
// Propagate specialization-constant-ness, if allowed
if (node->getType().getQualifier().isSpecConstant() && isSpecializationOperation(*newNode))
newNode->getWritableType().getQualifier().makeSpecConstant();
// TODO: it seems that some unary folding operations should occur here, but are not
// Propagate specialization-constant-ness, if allowed
if (node->getType().getQualifier().isSpecConstant() && isSpecializationOperation(*newNode))
newNode->getWritableType().getQualifier().makeSpecConstant();
@ -1425,7 +1419,7 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat
extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_float32) ||
extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_float64);
if(explicitTypesEnabled) {
if (explicitTypesEnabled) {
// integral promotions
if (isIntegralPromotion(from, to)) {
return true;

View File

@ -243,7 +243,7 @@ void TParseContextBase::checkIndex(const TSourceLoc& loc, const TType& type, int
error(loc, "", "[", "index out of range '%d'", index);
index = 0;
} else if (type.isArray()) {
if (type.isExplicitlySizedArray() && index >= type.getOuterArraySize()) {
if (type.isSizedArray() && index >= type.getOuterArraySize()) {
error(loc, "", "[", "array index out of range '%d'", index);
index = type.getOuterArraySize() - 1;
}

View File

@ -284,17 +284,17 @@ TIntermTyped* TParseContext::handleVariable(const TSourceLoc& loc, TSymbol* symb
requireExtensions(loc, symbol->getNumExtensions(), symbol->getExtensions(), symbol->getName().c_str());
if (symbol && symbol->isReadOnly()) {
// All shared things containing an implicitly sized array must be copied up
// All shared things containing an unsized array must be copied up
// on first use, so that all future references will share its array structure,
// so that editing the implicit size will effect all nodes consuming it,
// and so that editing the implicit size won't change the shared one.
//
// If this is a variable or a block, check it and all it contains, but if this
// is a member of an anonymous block, check the whole block, as the whole block
// will need to be copied up if it contains an implicitly-sized array.
if (symbol->getType().containsImplicitlySizedArray() ||
// will need to be copied up if it contains an unsized array.
if (symbol->getType().containsUnsizedArray() ||
(symbol->getAsAnonMember() &&
symbol->getAsAnonMember()->getAnonContainer().getType().containsImplicitlySizedArray()))
symbol->getAsAnonMember()->getAnonContainer().getType().containsUnsizedArray()))
makeEditable(symbol);
}
@ -372,21 +372,28 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn
} else {
// at least one of base and index is not a front-end constant variable...
if (index->getQualifier().isFrontEndConstant())
checkIndex(loc, base->getType(), indexValue);
if (base->getAsSymbolNode() && isIoResizeArray(base->getType()))
handleIoResizeArrayAccess(loc, base);
if (index->getQualifier().isFrontEndConstant()) {
if (base->getType().isImplicitlySizedArray())
updateImplicitArraySize(loc, base, indexValue);
else
checkIndex(loc, base->getType(), indexValue);
if (base->getType().isUnsizedArray())
base->getWritableType().updateImplicitArraySize(indexValue + 1);
result = intermediate.addIndex(EOpIndexDirect, base, index, loc);
} else {
if (base->getType().isImplicitlySizedArray()) {
if (base->getType().isUnsizedArray()) {
// we have a variable index into an unsized array, which is okay,
// depending on the situation
if (base->getAsSymbolNode() && isIoResizeArray(base->getType()))
error(loc, "", "[", "array must be sized by a redeclaration or layout qualifier before being indexed with a variable");
else
error(loc, "", "[", "array must be redeclared with a size before being indexed with a variable");
else {
// it is okay for a run-time sized array
if (base->getType().getQualifier().storage != EvqBuffer)
error(loc, "", "[", "array must be redeclared with a size before being indexed with a variable");
}
base->getWritableType().setArrayVariablyIndexed();
}
if (base->getBasicType() == EbtBlock) {
if (base->getQualifier().storage == EvqBuffer)
@ -485,7 +492,7 @@ void TParseContext::fixIoArraySize(const TSourceLoc& loc, TType& type)
if (language == EShLangTessControl || language == EShLangTessEvaluation) {
if (type.getOuterArraySize() != resources.maxPatchVertices) {
if (type.isExplicitlySizedArray())
if (type.isSizedArray())
error(loc, "tessellation input array size must be gl_MaxPatchVertices or implicitly sized", "[]", "");
type.changeOuterArraySize(resources.maxPatchVertices);
}
@ -518,7 +525,7 @@ void TParseContext::handleIoResizeArrayAccess(const TSourceLoc& /*loc*/, TInterm
return;
// fix array size, if it can be fixed and needs to be fixed (will allow variable indexing)
if (symbolNode->getType().isImplicitlySizedArray()) {
if (symbolNode->getType().isUnsizedArray()) {
int newSize = getIoArrayImplicitSize();
if (newSize > 0)
symbolNode->getWritableType().changeOuterArraySize(newSize);
@ -568,7 +575,7 @@ int TParseContext::getIoArrayImplicitSize() const
void TParseContext::checkIoArrayConsistency(const TSourceLoc& loc, int requiredSize, const char* feature, TType& type, const TString& name)
{
if (type.isImplicitlySizedArray())
if (type.isUnsizedArray())
type.changeOuterArraySize(requiredSize);
else if (type.getOuterArraySize() != requiredSize) {
if (language == EShLangGeometry)
@ -1215,10 +1222,7 @@ TIntermTyped* TParseContext::handleLengthMethod(const TSourceLoc& loc, TFunction
else {
const TType& type = intermNode->getAsTyped()->getType();
if (type.isArray()) {
if (type.isRuntimeSizedArray()) {
// Create a unary op and let the back end handle it
return intermediate.addBuiltInFunctionCall(loc, EOpArrayLength, true, intermNode, TType(EbtInt));
} else if (type.isImplicitlySizedArray()) {
if (type.isUnsizedArray()) {
if (intermNode->getAsSymbolNode() && isIoResizeArray(type)) {
// We could be between a layout declaration that gives a built-in io array implicit size and
// a user redeclaration of that array, meaning we have to substitute its implicit size here
@ -1231,7 +1235,10 @@ TIntermTyped* TParseContext::handleLengthMethod(const TSourceLoc& loc, TFunction
if (length == 0) {
if (intermNode->getAsSymbolNode() && isIoResizeArray(type))
error(loc, "", function->getName().c_str(), "array must first be sized by a redeclaration or layout qualifier");
else
else if (type.getQualifier().isUniformOrBuffer()) {
// Create a unary op and let the back end handle it
return intermediate.addBuiltInFunctionCall(loc, EOpArrayLength, true, intermNode, TType(EbtInt));
} else
error(loc, "", function->getName().c_str(), "array must be declared with a size before using this method");
}
} else if (type.getOuterArrayNode()) {
@ -2283,7 +2290,7 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T
bool floatArgument = false;
for (int arg = 0; arg < function.getParamCount(); ++arg) {
if (function[arg].type->isArray()) {
if (! function[arg].type->isExplicitlySizedArray()) {
if (function[arg].type->isUnsizedArray()) {
// Can't construct from an unsized array.
error(loc, "array argument must be sized", "constructor", "");
return true;
@ -2381,7 +2388,7 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T
return true;
}
if (type.isImplicitlySizedArray()) {
if (type.isUnsizedArray()) {
// auto adapt the constructor type to the number of arguments
type.changeOuterArraySize(function.getParamCount());
} else if (type.getOuterArraySize() != function.getParamCount()) {
@ -2393,20 +2400,21 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T
// Types have to match, but we're still making the type.
// Finish making the type, and the comparison is done later
// when checking for conversion.
TArraySizes& arraySizes = type.getArraySizes();
TArraySizes& arraySizes = *type.getArraySizes();
// At least the dimensionalities have to match.
if (! function[0].type->isArray() || arraySizes.getNumDims() != function[0].type->getArraySizes().getNumDims() + 1) {
if (! function[0].type->isArray() ||
arraySizes.getNumDims() != function[0].type->getArraySizes()->getNumDims() + 1) {
error(loc, "array constructor argument not correct type to construct array element", "constructor", "");
return true;
}
if (arraySizes.isInnerImplicit()) {
if (arraySizes.isInnerUnsized()) {
// "Arrays of arrays ..., and the size for any dimension is optional"
// That means we need to adopt (from the first argument) the other array sizes into the type.
for (int d = 1; d < arraySizes.getNumDims(); ++d) {
if (arraySizes.getDimSize(d) == UnsizedArraySize) {
arraySizes.setDimSize(d, function[0].type->getArraySizes().getDimSize(d - 1));
arraySizes.setDimSize(d, function[0].type->getArraySizes()->getDimSize(d - 1));
}
}
}
@ -2607,6 +2615,15 @@ void TParseContext::transparentOpaqueCheck(const TSourceLoc& loc, const TType& t
}
}
//
// Qualifier checks knowing the qualifier and that it is a member of a struct/block.
//
void TParseContext::memberQualifierCheck(glslang::TPublicType& publicType)
{
globalQualifierFixCheck(publicType.loc, publicType.qualifier);
checkNoShaderLayouts(publicType.loc, publicType.shaderQualifiers);
}
//
// Check/fix just a full qualifier (no variables or types yet, but qualifier is complete) at global level.
//
@ -3080,7 +3097,7 @@ bool TParseContext::arrayError(const TSourceLoc& loc, const TType& type)
//
void TParseContext::arraySizeRequiredCheck(const TSourceLoc& loc, const TArraySizes& arraySizes)
{
if (arraySizes.isImplicit())
if (arraySizes.hasUnsized())
error(loc, "array size required", "", "");
}
@ -3107,9 +3124,9 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua
return;
// No environment allows any non-outer-dimension to be implicitly sized
if (arraySizes->isInnerImplicit()) {
if (arraySizes->isInnerUnsized()) {
error(loc, "only outermost dimension of an array of arrays can be implicitly sized", "[]", "");
arraySizes->clearInnerImplicit();
arraySizes->clearInnerUnsized();
}
if (arraySizes->isInnerSpecialization())
@ -3155,8 +3172,11 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua
arraySizeRequiredCheck(loc, *arraySizes);
}
void TParseContext::arrayOfArrayVersionCheck(const TSourceLoc& loc)
void TParseContext::arrayOfArrayVersionCheck(const TSourceLoc& loc, const TArraySizes* sizes)
{
if (sizes == nullptr || sizes->getNumDims() == 1)
return;
const char* feature = "arrays of arrays";
requireProfile(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, feature);
@ -3164,36 +3184,6 @@ void TParseContext::arrayOfArrayVersionCheck(const TSourceLoc& loc)
profileRequires(loc, ECoreProfile | ECompatibilityProfile, 430, nullptr, feature);
}
void TParseContext::arrayDimCheck(const TSourceLoc& loc, const TArraySizes* sizes1, const TArraySizes* sizes2)
{
if ((sizes1 && sizes2) ||
(sizes1 && sizes1->getNumDims() > 1) ||
(sizes2 && sizes2->getNumDims() > 1))
arrayOfArrayVersionCheck(loc);
}
void TParseContext::arrayDimCheck(const TSourceLoc& loc, const TType* type, const TArraySizes* sizes2)
{
// skip checking for multiple dimensions on the type; it was caught earlier
if ((type && type->isArray() && sizes2) ||
(sizes2 && sizes2->getNumDims() > 1))
arrayOfArrayVersionCheck(loc);
}
// Merge array dimensions listed in 'sizes' onto the type's array dimensions.
//
// From the spec: "vec4[2] a[3]; // size-3 array of size-2 array of vec4"
//
// That means, the 'sizes' go in front of the 'type' as outermost sizes.
// 'type' is the type part of the declaration (to the left)
// 'sizes' is the arrayness tagged on the identifier (to the right)
//
void TParseContext::arrayDimMerge(TType& type, const TArraySizes* sizes)
{
if (sizes != nullptr)
type.addArrayOuterSizes(*sizes);
}
//
// Do all the semantic checking for declaring or redeclaring an array, with and
// without a size, and make the right changes to the symbol table.
@ -3263,7 +3253,7 @@ void TParseContext::declareArray(const TSourceLoc& loc, const TString& identifie
return;
}
if (existingType.isExplicitlySizedArray()) {
if (existingType.isSizedArray()) {
// be more leniant for input arrays to geometry shaders and tessellation control outputs, where the redeclaration is the same size
if (! (isIoResizeArray(type) && existingType.getOuterArraySize() == type.getOuterArraySize()))
error(loc, "redeclaration of array with size", identifier.c_str(), "");
@ -3278,66 +3268,6 @@ void TParseContext::declareArray(const TSourceLoc& loc, const TString& identifie
checkIoArraysConsistency(loc);
}
void TParseContext::updateImplicitArraySize(const TSourceLoc& loc, TIntermNode *node, int index)
{
// maybe there is nothing to do...
TIntermTyped* typedNode = node->getAsTyped();
if (typedNode->getType().getImplicitArraySize() > index)
return;
// something to do...
// Figure out what symbol to lookup, as we will use its type to edit for the size change,
// as that type will be shared through shallow copies for future references.
TSymbol* symbol = nullptr;
int blockIndex = -1;
const TString* lookupName = nullptr;
if (node->getAsSymbolNode())
lookupName = &node->getAsSymbolNode()->getName();
else if (node->getAsBinaryNode()) {
const TIntermBinary* deref = node->getAsBinaryNode();
// This has to be the result of a block dereference, unless it's bad shader code
// If it's a uniform block, then an error will be issued elsewhere, but
// return early now to avoid crashing later in this function.
if (deref->getLeft()->getBasicType() != EbtBlock ||
deref->getLeft()->getType().getQualifier().storage == EvqUniform ||
deref->getRight()->getAsConstantUnion() == nullptr)
return;
const TIntermTyped* left = deref->getLeft();
const TIntermTyped* right = deref->getRight();
if (left->getAsBinaryNode()) {
left = left->getAsBinaryNode()->getLeft(); // Block array access
assert(left->isArray());
}
if (! left->getAsSymbolNode())
return;
blockIndex = right->getAsConstantUnion()->getConstArray()[0].getIConst();
lookupName = &left->getAsSymbolNode()->getName();
if (IsAnonymous(*lookupName))
lookupName = &(*left->getType().getStruct())[blockIndex].type->getFieldName();
}
// Lookup the symbol, should only fail if shader code is incorrect
symbol = symbolTable.find(*lookupName);
if (symbol == nullptr)
return;
if (symbol->getAsFunction()) {
error(loc, "array variable name expected", symbol->getName().c_str(), "");
return;
}
if (symbol->getType().isStruct() && blockIndex != -1)
(*symbol->getWritableType().getStruct())[blockIndex].type->setImplicitArraySize(index + 1);
else
symbol->getWritableType().setImplicitArraySize(index + 1);
}
// Returns true if the first argument to the #line directive is the line number for the next line.
//
// Desktop, pre-version 3.30: "After processing this directive
@ -3623,7 +3553,7 @@ void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newT
error(memberLoc, "cannot redeclare block member with a different type", member->type->getFieldName().c_str(), "");
if (oldType.isArray() != newType.isArray())
error(memberLoc, "cannot change arrayness of redeclared block member", member->type->getFieldName().c_str(), "");
else if (! oldType.sameArrayness(newType) && oldType.isExplicitlySizedArray())
else if (! oldType.sameArrayness(newType) && oldType.isSizedArray())
error(memberLoc, "cannot change array size of redeclared block member", member->type->getFieldName().c_str(), "");
else if (newType.isArray())
arrayLimitCheck(loc, member->type->getFieldName(), newType.getOuterArraySize());
@ -3652,7 +3582,7 @@ void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newT
type.getQualifier().layoutXfbBuffer = currentBlockQualifier.layoutXfbBuffer;
oldType.getQualifier().layoutXfbBuffer = currentBlockQualifier.layoutXfbBuffer;
}
if (oldType.isImplicitlySizedArray() && newType.isExplicitlySizedArray())
if (oldType.isUnsizedArray() && newType.isSizedArray())
oldType.changeOuterArraySize(newType.getOuterArraySize());
// check and process the member's type, which will include managing xfb information
@ -3678,11 +3608,11 @@ void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newT
if (type.isArray() != (arraySizes != nullptr))
error(loc, "cannot change arrayness of redeclared block", blockName.c_str(), "");
else if (type.isArray()) {
if (type.isExplicitlySizedArray() && arraySizes->getOuterSize() == UnsizedArraySize)
error(loc, "block already declared with size, can't redeclare as implicitly-sized", blockName.c_str(), "");
else if (type.isExplicitlySizedArray() && type.getArraySizes() != *arraySizes)
if (type.isSizedArray() && !arraySizes->isSized())
error(loc, "block already declared with size, can't redeclare as unsized", blockName.c_str(), "");
else if (type.isSizedArray() && *type.getArraySizes() != *arraySizes)
error(loc, "cannot change array size of redeclared block", blockName.c_str(), "");
else if (type.isImplicitlySizedArray() && arraySizes->getOuterSize() != UnsizedArraySize)
else if (!type.isSizedArray() && arraySizes->isSized())
type.changeOuterArraySize(arraySizes->getOuterSize());
}
@ -3702,7 +3632,7 @@ void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newT
trackLinkage(*block);
}
void TParseContext::paramCheckFix(const TSourceLoc& loc, const TStorageQualifier& qualifier, TType& type)
void TParseContext::paramCheckFixStorage(const TSourceLoc& loc, const TStorageQualifier& qualifier, TType& type)
{
switch (qualifier) {
case EvqConst:
@ -3749,7 +3679,7 @@ void TParseContext::paramCheckFix(const TSourceLoc& loc, const TQualifier& quali
warn(loc, "qualifier has no effect on non-output parameters", "precise", "");
}
paramCheckFix(loc, qualifier.storage, type);
paramCheckFixStorage(loc, qualifier.storage, type);
}
void TParseContext::nestedBlockCheck(const TSourceLoc& loc)
@ -4621,7 +4551,8 @@ void TParseContext::layoutObjectCheck(const TSourceLoc& loc, const TSymbol& symb
// they are not allowed on block members. For arrayed interfaces (those generally having an
// extra level of arrayness due to interface expansion), the outer array is stripped before
// applying this rule."
void TParseContext::layoutMemberLocationArrayCheck(const TSourceLoc& loc, bool memberWithLocation, TArraySizes* arraySizes)
void TParseContext::layoutMemberLocationArrayCheck(const TSourceLoc& loc, bool memberWithLocation,
TArraySizes* arraySizes)
{
if (memberWithLocation && arraySizes != nullptr) {
if (arraySizes->getNumDims() > (currentBlockQualifier.isArrayedIo(language) ? 1 : 0))
@ -4724,11 +4655,12 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type)
if (type.getBasicType() == EbtSampler) {
int lastBinding = qualifier.layoutBinding;
if (type.isArray()) {
if (type.isImplicitlySizedArray()) {
lastBinding += 1;
warn(loc, "assuming array size of one for compile-time checking of binding numbers for implicitly-sized array", "[]", "");
} else
if (type.isSizedArray())
lastBinding += type.getCumulativeArraySize();
else {
lastBinding += 1;
warn(loc, "assuming array size of one for compile-time checking of binding numbers for unsized array", "[]", "");
}
}
if (spvVersion.vulkan == 0 && lastBinding >= resources.maxCombinedTextureImageUnits)
error(loc, "sampler binding not less than gl_MaxCombinedTextureImageUnits", "binding", type.isArray() ? "(using array)" : "");
@ -4988,7 +4920,7 @@ void TParseContext::fixOffset(const TSourceLoc& loc, TSymbol& symbol)
// Check for overlap
int numOffsets = 4;
if (symbol.getType().isArray()) {
if (symbol.getType().isExplicitlySizedArray() && ! symbol.getType().getArraySizes()->isInnerImplicit())
if (symbol.getType().isSizedArray() && !symbol.getType().getArraySizes()->isInnerUnsized())
numOffsets *= symbol.getType().getCumulativeArraySize();
else {
// "It is a compile-time error to declare an unsized array of atomic_uint."
@ -5325,15 +5257,15 @@ void TParseContext::declareTypeDefaults(const TSourceLoc& loc, const TPublicType
// 'publicType' is the type part of the declaration (to the left)
// 'arraySizes' is the arrayness tagged on the identifier (to the right)
//
TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& identifier, const TPublicType& publicType, TArraySizes* arraySizes, TIntermTyped* initializer)
TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& identifier, const TPublicType& publicType,
TArraySizes* arraySizes, TIntermTyped* initializer)
{
TType type(publicType); // shallow copy; 'type' shares the arrayness and structure definition with 'publicType'
if (type.isImplicitlySizedArray()) {
// Because "int[] a = int[2](...), b = int[3](...)" makes two arrays a and b
// of different sizes, for this case sharing the shallow copy of arrayness
// with the publicType oversubscribes it, so get a deep copy of the arrayness.
type.newArraySizes(*publicType.arraySizes);
}
// Make a fresh type that combines the characteristics from the individual
// identifier syntax and the declaration-type syntax.
TType type(publicType);
type.transferArraySizes(arraySizes);
type.copyArrayInnerSizes(publicType.arraySizes);
arrayOfArrayVersionCheck(loc, type.getArraySizes());
if (voidErrorCheck(loc, identifier, type.getBasicType()))
return nullptr;
@ -5360,15 +5292,9 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden
inheritGlobalDefaults(type.getQualifier());
// Declare the variable
if (arraySizes || type.isArray()) {
// Arrayness is potentially coming both from the type and from the
// variable: "int[] a[];" or just one or the other.
// Merge it all to the type, so all arrayness is part of the type.
arrayDimCheck(loc, &type, arraySizes);
arrayDimMerge(type, arraySizes);
if (type.isArray()) {
// Check that implicit sizing is only where allowed.
arraySizesCheck(loc, type.getQualifier(), &type.getArraySizes(), initializer != nullptr, false);
arraySizesCheck(loc, type.getQualifier(), type.getArraySizes(), initializer != nullptr, false);
if (! arrayQualifierError(loc, type.getQualifier()) && ! arrayError(loc, type))
declareArray(loc, identifier, type, symbol);
@ -5499,8 +5425,7 @@ TIntermNode* TParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyp
}
// Fix outer arrayness if variable is unsized, getting size from the initializer
if (initializer->getType().isExplicitlySizedArray() &&
variable->getType().isImplicitlySizedArray())
if (initializer->getType().isSizedArray() && variable->getType().isUnsizedArray())
variable->getWritableType().changeOuterArraySize(initializer->getType().getOuterArraySize());
// Inner arrayness can also get set by an initializer
@ -5509,8 +5434,10 @@ TIntermNode* TParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyp
variable->getType().getArraySizes()->getNumDims()) {
// adopt unsized sizes from the initializer's sizes
for (int d = 1; d < variable->getType().getArraySizes()->getNumDims(); ++d) {
if (variable->getType().getArraySizes()->getDimSize(d) == UnsizedArraySize)
variable->getWritableType().getArraySizes().setDimSize(d, initializer->getType().getArraySizes()->getDimSize(d));
if (variable->getType().getArraySizes()->getDimSize(d) == UnsizedArraySize) {
variable->getWritableType().getArraySizes()->setDimSize(d,
initializer->getType().getArraySizes()->getDimSize(d));
}
}
}
@ -5621,16 +5548,16 @@ TIntermTyped* TParseContext::convertInitializerList(const TSourceLoc& loc, const
// Later on, initializer execution code will deal with array size logic.
TType arrayType;
arrayType.shallowCopy(type); // sharing struct stuff is fine
arrayType.newArraySizes(*type.getArraySizes()); // but get a fresh copy of the array information, to edit below
arrayType.copyArraySizes(*type.getArraySizes()); // but get a fresh copy of the array information, to edit below
// edit array sizes to fill in unsized dimensions
arrayType.changeOuterArraySize((int)initList->getSequence().size());
TIntermTyped* firstInit = initList->getSequence()[0]->getAsTyped();
if (arrayType.isArrayOfArrays() && firstInit->getType().isArray() &&
arrayType.getArraySizes().getNumDims() == firstInit->getType().getArraySizes()->getNumDims() + 1) {
for (int d = 1; d < arrayType.getArraySizes().getNumDims(); ++d) {
if (arrayType.getArraySizes().getDimSize(d) == UnsizedArraySize)
arrayType.getArraySizes().setDimSize(d, firstInit->getType().getArraySizes()->getDimSize(d - 1));
arrayType.getArraySizes()->getNumDims() == firstInit->getType().getArraySizes()->getNumDims() + 1) {
for (int d = 1; d < arrayType.getArraySizes()->getNumDims(); ++d) {
if (arrayType.getArraySizes()->getDimSize(d) == UnsizedArraySize)
arrayType.getArraySizes()->setDimSize(d, firstInit->getType().getArraySizes()->getDimSize(d - 1));
}
}
@ -5944,13 +5871,14 @@ TIntermTyped* TParseContext::constructAggregate(TIntermNode* node, const TType&
//
// Do everything needed to add an interface block.
//
void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, const TString* instanceName, TArraySizes* arraySizes)
void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, const TString* instanceName,
TArraySizes* arraySizes)
{
blockStageIoCheck(loc, currentBlockQualifier);
blockQualifierCheck(loc, currentBlockQualifier, instanceName != nullptr);
if (arraySizes) {
if (arraySizes != nullptr) {
arraySizesCheck(loc, currentBlockQualifier, arraySizes, false, false);
arrayDimCheck(loc, arraySizes, 0);
arrayOfArrayVersionCheck(loc, arraySizes);
if (arraySizes->getNumDims() > 1)
requireProfile(loc, ~EEsProfile, "array-of-array of block");
}
@ -5967,7 +5895,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con
if ((currentBlockQualifier.storage == EvqUniform || currentBlockQualifier.storage == EvqBuffer) && (memberQualifier.isInterpolation() || memberQualifier.isAuxiliary()))
error(memberLoc, "member of uniform or buffer block cannot have an auxiliary or interpolation qualifier", memberType.getFieldName().c_str(), "");
if (memberType.isArray())
arraySizesCheck(memberLoc, currentBlockQualifier, &memberType.getArraySizes(), false, member == typeList.size() - 1);
arraySizesCheck(memberLoc, currentBlockQualifier, memberType.getArraySizes(), false, member == typeList.size() - 1);
if (memberQualifier.hasOffset()) {
if (spvVersion.spv == 0) {
requireProfile(memberLoc, ~EEsProfile, "offset on block member");
@ -6089,8 +6017,8 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con
//
TType blockType(&typeList, *blockName, currentBlockQualifier);
if (arraySizes)
blockType.newArraySizes(*arraySizes);
if (arraySizes != nullptr)
blockType.transferArraySizes(arraySizes);
else
ioArrayCheck(loc, blockType, instanceName ? *instanceName : *blockName);

View File

@ -341,16 +341,14 @@ public:
void arraySizeRequiredCheck(const TSourceLoc&, const TArraySizes&);
void structArrayCheck(const TSourceLoc&, const TType& structure);
void arraySizesCheck(const TSourceLoc&, const TQualifier&, TArraySizes*, bool initializer, bool lastMember);
void arrayOfArrayVersionCheck(const TSourceLoc&);
void arrayDimCheck(const TSourceLoc&, const TArraySizes* sizes1, const TArraySizes* sizes2);
void arrayDimCheck(const TSourceLoc&, const TType*, const TArraySizes*);
void arrayDimMerge(TType& type, const TArraySizes* sizes);
void arrayOfArrayVersionCheck(const TSourceLoc&, const TArraySizes*);
bool voidErrorCheck(const TSourceLoc&, const TString&, TBasicType);
void boolCheck(const TSourceLoc&, const TIntermTyped*);
void boolCheck(const TSourceLoc&, const TPublicType&);
void samplerCheck(const TSourceLoc&, const TType&, const TString& identifier, TIntermTyped* initializer);
void atomicUintCheck(const TSourceLoc&, const TType&, const TString& identifier);
void transparentOpaqueCheck(const TSourceLoc&, const TType&, const TString& identifier);
void memberQualifierCheck(glslang::TPublicType&);
void globalQualifierFixCheck(const TSourceLoc&, TQualifier&);
void globalQualifierTypeCheck(const TSourceLoc&, const TQualifier&, const TPublicType&);
bool structQualifierErrorCheck(const TSourceLoc&, const TPublicType& pType);
@ -363,7 +361,7 @@ public:
bool containsFieldWithBasicType(const TType& type ,TBasicType basicType);
TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&);
void redeclareBuiltinBlock(const TSourceLoc&, TTypeList& typeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes);
void paramCheckFix(const TSourceLoc&, const TStorageQualifier&, TType& type);
void paramCheckFixStorage(const TSourceLoc&, const TStorageQualifier&, TType& type);
void paramCheckFix(const TSourceLoc&, const TQualifier&, TType& type);
void nestedBlockCheck(const TSourceLoc&);
void nestedStructCheck(const TSourceLoc&);
@ -411,7 +409,6 @@ public:
void wrapupSwitchSubsequence(TIntermAggregate* statements, TIntermNode* branchNode);
TIntermNode* addSwitch(const TSourceLoc&, TIntermTyped* expression, TIntermAggregate* body);
void updateImplicitArraySize(const TSourceLoc&, TIntermNode*, int index);
TAttributeType attributeFromName(const TString& name) const;
TAttributes* makeAttributes(const TString& identifier) const;
TAttributes* makeAttributes(const TString& identifier, TIntermNode* node) const;

View File

@ -1925,6 +1925,7 @@ const char* TProgram::getUniformBlockName(int index) const { return reflection
int TProgram::getUniformBlockSize(int index) const { return reflection->getUniformBlock(index).size; }
int TProgram::getUniformIndex(const char* name) const { return reflection->getIndex(name); }
int TProgram::getUniformBinding(int index) const { return reflection->getUniform(index).getBinding(); }
int TProgram::getUniformBlockBinding(int index) const { return reflection->getUniformBlock(index).getBinding(); }
int TProgram::getUniformBlockIndex(int index) const { return reflection->getUniform(index).index; }
int TProgram::getUniformBlockCounterIndex(int index) const { return reflection->getUniformBlock(index).counterIndex; }
int TProgram::getUniformType(int index) const { return reflection->getUniform(index).glDefineType; }

Some files were not shown because too many files have changed in this diff Show More