Merge branch 'sync' into automapping-opengl-location
Sync code from KhronosGroup/glslang.
This commit is contained in:
commit
1247baa678
11
BUILD.gn
11
BUILD.gn
@ -148,6 +148,7 @@ source_set("glslang_sources") {
|
|||||||
"-Wno-inconsistent-missing-override",
|
"-Wno-inconsistent-missing-override",
|
||||||
"-Wno-sign-compare",
|
"-Wno-sign-compare",
|
||||||
"-Wno-unused-variable",
|
"-Wno-unused-variable",
|
||||||
|
"-Wno-missing-field-initializers",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
if (is_win && !is_clang) {
|
if (is_win && !is_clang) {
|
||||||
@ -186,3 +187,13 @@ executable("glslang_validator") {
|
|||||||
":glslang_sources",
|
":glslang_sources",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
executable("spirv-remap") {
|
||||||
|
sources = [
|
||||||
|
"StandAlone/spirv-remap.cpp",
|
||||||
|
]
|
||||||
|
defines = [ "ENABLE_OPT=1" ]
|
||||||
|
deps = [
|
||||||
|
":glslang_sources",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|||||||
@ -105,6 +105,8 @@ else()
|
|||||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
add_compile_options(-fno-rtti)
|
||||||
|
|
||||||
function(glslang_set_link_args TARGET)
|
function(glslang_set_link_args TARGET)
|
||||||
# For MinGW compiles, statically link against the GCC and C++ runtimes.
|
# For MinGW compiles, statically link against the GCC and C++ runtimes.
|
||||||
# This avoids the need to ship those runtimes as DLLs.
|
# This avoids the need to ship those runtimes as DLLs.
|
||||||
|
|||||||
@ -34,5 +34,6 @@ static const char* const E_SPV_EXT_shader_stencil_export = "SPV_EXT_shade
|
|||||||
static const char* const E_SPV_EXT_shader_viewport_index_layer = "SPV_EXT_shader_viewport_index_layer";
|
static const char* const E_SPV_EXT_shader_viewport_index_layer = "SPV_EXT_shader_viewport_index_layer";
|
||||||
static const char* const E_SPV_EXT_fragment_fully_covered = "SPV_EXT_fragment_fully_covered";
|
static const char* const E_SPV_EXT_fragment_fully_covered = "SPV_EXT_fragment_fully_covered";
|
||||||
static const char* const E_SPV_EXT_fragment_invocation_density = "SPV_EXT_fragment_invocation_density";
|
static const char* const E_SPV_EXT_fragment_invocation_density = "SPV_EXT_fragment_invocation_density";
|
||||||
|
static const char* const E_SPV_EXT_demote_to_helper_invocation = "SPV_EXT_demote_to_helper_invocation";
|
||||||
|
|
||||||
#endif // #ifndef GLSLextEXT_H
|
#endif // #ifndef GLSLextEXT_H
|
||||||
|
|||||||
@ -42,5 +42,6 @@ static const char* const E_SPV_KHR_post_depth_coverage = "SPV_KHR_post_
|
|||||||
static const char* const E_SPV_KHR_vulkan_memory_model = "SPV_KHR_vulkan_memory_model";
|
static const char* const E_SPV_KHR_vulkan_memory_model = "SPV_KHR_vulkan_memory_model";
|
||||||
static const char* const E_SPV_EXT_physical_storage_buffer = "SPV_EXT_physical_storage_buffer";
|
static const char* const E_SPV_EXT_physical_storage_buffer = "SPV_EXT_physical_storage_buffer";
|
||||||
static const char* const E_SPV_EXT_fragment_shader_interlock = "SPV_EXT_fragment_shader_interlock";
|
static const char* const E_SPV_EXT_fragment_shader_interlock = "SPV_EXT_fragment_shader_interlock";
|
||||||
|
static const char* const E_SPV_KHR_shader_clock = "SPV_KHR_shader_clock";
|
||||||
|
|
||||||
#endif // #ifndef GLSLextKHR_H
|
#endif // #ifndef GLSLextKHR_H
|
||||||
|
|||||||
@ -75,4 +75,7 @@ const char* const E_SPV_NV_shading_rate = "SPV_NV_shading_rate";
|
|||||||
//SPV_NV_cooperative_matrix
|
//SPV_NV_cooperative_matrix
|
||||||
const char* const E_SPV_NV_cooperative_matrix = "SPV_NV_cooperative_matrix";
|
const char* const E_SPV_NV_cooperative_matrix = "SPV_NV_cooperative_matrix";
|
||||||
|
|
||||||
|
//SPV_NV_shader_sm_builtins
|
||||||
|
const char* const E_SPV_NV_shader_sm_builtins = "SPV_NV_shader_sm_builtins";
|
||||||
|
|
||||||
#endif // #ifndef GLSLextNV_H
|
#endif // #ifndef GLSLextNV_H
|
||||||
|
|||||||
@ -138,7 +138,7 @@ protected:
|
|||||||
spv::LoopControlMask TranslateLoopControl(const glslang::TIntermLoop&, std::vector<unsigned int>& operands) const;
|
spv::LoopControlMask TranslateLoopControl(const glslang::TIntermLoop&, std::vector<unsigned int>& operands) const;
|
||||||
spv::StorageClass TranslateStorageClass(const glslang::TType&);
|
spv::StorageClass TranslateStorageClass(const glslang::TType&);
|
||||||
void addIndirectionIndexCapabilities(const glslang::TType& baseType, const glslang::TType& indexType);
|
void addIndirectionIndexCapabilities(const glslang::TType& baseType, const glslang::TType& indexType);
|
||||||
spv::Id createSpvVariable(const glslang::TIntermSymbol*);
|
spv::Id createSpvVariable(const glslang::TIntermSymbol*, spv::Id forcedType);
|
||||||
spv::Id getSampledType(const glslang::TSampler&);
|
spv::Id getSampledType(const glslang::TSampler&);
|
||||||
spv::Id getInvertedSwizzleType(const glslang::TIntermTyped&);
|
spv::Id getInvertedSwizzleType(const glslang::TIntermTyped&);
|
||||||
spv::Id createInvertedSwizzle(spv::Decoration precision, const glslang::TIntermTyped&, spv::Id parentResult);
|
spv::Id createInvertedSwizzle(spv::Decoration precision, const glslang::TIntermTyped&, spv::Id parentResult);
|
||||||
@ -169,7 +169,7 @@ protected:
|
|||||||
void makeGlobalInitializers(const glslang::TIntermSequence&);
|
void makeGlobalInitializers(const glslang::TIntermSequence&);
|
||||||
void visitFunctions(const glslang::TIntermSequence&);
|
void visitFunctions(const glslang::TIntermSequence&);
|
||||||
void handleFunctionEntry(const glslang::TIntermAggregate* node);
|
void handleFunctionEntry(const glslang::TIntermAggregate* node);
|
||||||
void translateArguments(const glslang::TIntermAggregate& node, std::vector<spv::Id>& arguments);
|
void translateArguments(const glslang::TIntermAggregate& node, std::vector<spv::Id>& arguments, spv::Builder::AccessChain::CoherentFlags &lvalueCoherentFlags);
|
||||||
void translateArguments(glslang::TIntermUnary& node, std::vector<spv::Id>& arguments);
|
void translateArguments(glslang::TIntermUnary& node, std::vector<spv::Id>& arguments);
|
||||||
spv::Id createImageTextureFunctionCall(glslang::TIntermOperator* node);
|
spv::Id createImageTextureFunctionCall(glslang::TIntermOperator* node);
|
||||||
spv::Id handleUserFunctionCall(const glslang::TIntermAggregate*);
|
spv::Id handleUserFunctionCall(const glslang::TIntermAggregate*);
|
||||||
@ -178,14 +178,14 @@ protected:
|
|||||||
glslang::TBasicType typeProxy, bool reduceComparison = true);
|
glslang::TBasicType typeProxy, bool reduceComparison = true);
|
||||||
spv::Id createBinaryMatrixOperation(spv::Op, OpDecorations&, spv::Id typeId, spv::Id left, spv::Id right);
|
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,
|
spv::Id createUnaryOperation(glslang::TOperator op, OpDecorations&, spv::Id typeId, spv::Id operand,
|
||||||
glslang::TBasicType typeProxy);
|
glslang::TBasicType typeProxy, const spv::Builder::AccessChain::CoherentFlags &lvalueCoherentFlags);
|
||||||
spv::Id createUnaryMatrixOperation(spv::Op op, OpDecorations&, spv::Id typeId, spv::Id operand,
|
spv::Id createUnaryMatrixOperation(spv::Op op, OpDecorations&, spv::Id typeId, spv::Id operand,
|
||||||
glslang::TBasicType typeProxy);
|
glslang::TBasicType typeProxy);
|
||||||
spv::Id createConversion(glslang::TOperator op, OpDecorations&, spv::Id destTypeId, spv::Id operand,
|
spv::Id createConversion(glslang::TOperator op, OpDecorations&, spv::Id destTypeId, spv::Id operand,
|
||||||
glslang::TBasicType typeProxy);
|
glslang::TBasicType typeProxy);
|
||||||
spv::Id createIntWidthConversion(glslang::TOperator op, spv::Id operand, int vectorSize);
|
spv::Id createIntWidthConversion(glslang::TOperator op, spv::Id operand, int vectorSize);
|
||||||
spv::Id makeSmearedConstant(spv::Id constant, 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);
|
spv::Id createAtomicOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy, const spv::Builder::AccessChain::CoherentFlags &lvalueCoherentFlags);
|
||||||
spv::Id createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy);
|
spv::Id createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy);
|
||||||
spv::Id CreateInvocationsVectorOperation(spv::Op op, spv::GroupOperation groupOperation, spv::Id typeId, std::vector<spv::Id>& operands);
|
spv::Id CreateInvocationsVectorOperation(spv::Op op, spv::GroupOperation groupOperation, spv::Id typeId, std::vector<spv::Id>& operands);
|
||||||
spv::Id createSubgroupOperation(glslang::TOperator op, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy);
|
spv::Id createSubgroupOperation(glslang::TOperator op, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy);
|
||||||
@ -208,6 +208,8 @@ protected:
|
|||||||
if (builder.getSpvVersion() < glslang::EShTargetSpv_1_3)
|
if (builder.getSpvVersion() < glslang::EShTargetSpv_1_3)
|
||||||
builder.addExtension(ext);
|
builder.addExtension(ext);
|
||||||
}
|
}
|
||||||
|
std::pair<spv::Id, spv::Id> getForcedType(spv::BuiltIn, const glslang::TType&);
|
||||||
|
spv::Id translateForcedType(spv::Id object);
|
||||||
|
|
||||||
glslang::SpvOptions& options;
|
glslang::SpvOptions& options;
|
||||||
spv::Function* shaderEntry;
|
spv::Function* shaderEntry;
|
||||||
@ -224,6 +226,7 @@ protected:
|
|||||||
bool linkageOnly; // true when visiting the set of objects in the AST present only for establishing interface, whether or not they were statically used
|
bool linkageOnly; // true when visiting the set of objects in the AST present only for establishing interface, whether or not they were statically used
|
||||||
std::set<spv::Id> iOSet; // all input/output variables from either static use or declaration of interface
|
std::set<spv::Id> iOSet; // all input/output variables from either static use or declaration of interface
|
||||||
const glslang::TIntermediate* glslangIntermediate;
|
const glslang::TIntermediate* glslangIntermediate;
|
||||||
|
bool nanMinMaxClamp; // true if use NMin/NMax/NClamp instead of FMin/FMax/FClamp
|
||||||
spv::Id stdBuiltins;
|
spv::Id stdBuiltins;
|
||||||
std::unordered_map<const char*, spv::Id> extBuiltinMap;
|
std::unordered_map<const char*, spv::Id> extBuiltinMap;
|
||||||
|
|
||||||
@ -237,6 +240,10 @@ protected:
|
|||||||
std::unordered_map<std::string, const glslang::TIntermSymbol*> counterOriginator;
|
std::unordered_map<std::string, const glslang::TIntermSymbol*> counterOriginator;
|
||||||
// Map pointee types for EbtReference to their forward pointers
|
// Map pointee types for EbtReference to their forward pointers
|
||||||
std::map<const glslang::TType *, spv::Id> forwardPointers;
|
std::map<const glslang::TType *, spv::Id> forwardPointers;
|
||||||
|
// Type forcing, for when SPIR-V wants a different type than the AST,
|
||||||
|
// requiring local translation to and from SPIR-V type on every access.
|
||||||
|
// Maps <builtin-variable-id -> AST-required-type-id>
|
||||||
|
std::unordered_map<spv::Id, spv::Id> forceType;
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -732,27 +739,27 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
|||||||
case glslang::EbvSubGroupEqMask:
|
case glslang::EbvSubGroupEqMask:
|
||||||
builder.addExtension(spv::E_SPV_KHR_shader_ballot);
|
builder.addExtension(spv::E_SPV_KHR_shader_ballot);
|
||||||
builder.addCapability(spv::CapabilitySubgroupBallotKHR);
|
builder.addCapability(spv::CapabilitySubgroupBallotKHR);
|
||||||
return spv::BuiltInSubgroupEqMaskKHR;
|
return spv::BuiltInSubgroupEqMask;
|
||||||
|
|
||||||
case glslang::EbvSubGroupGeMask:
|
case glslang::EbvSubGroupGeMask:
|
||||||
builder.addExtension(spv::E_SPV_KHR_shader_ballot);
|
builder.addExtension(spv::E_SPV_KHR_shader_ballot);
|
||||||
builder.addCapability(spv::CapabilitySubgroupBallotKHR);
|
builder.addCapability(spv::CapabilitySubgroupBallotKHR);
|
||||||
return spv::BuiltInSubgroupGeMaskKHR;
|
return spv::BuiltInSubgroupGeMask;
|
||||||
|
|
||||||
case glslang::EbvSubGroupGtMask:
|
case glslang::EbvSubGroupGtMask:
|
||||||
builder.addExtension(spv::E_SPV_KHR_shader_ballot);
|
builder.addExtension(spv::E_SPV_KHR_shader_ballot);
|
||||||
builder.addCapability(spv::CapabilitySubgroupBallotKHR);
|
builder.addCapability(spv::CapabilitySubgroupBallotKHR);
|
||||||
return spv::BuiltInSubgroupGtMaskKHR;
|
return spv::BuiltInSubgroupGtMask;
|
||||||
|
|
||||||
case glslang::EbvSubGroupLeMask:
|
case glslang::EbvSubGroupLeMask:
|
||||||
builder.addExtension(spv::E_SPV_KHR_shader_ballot);
|
builder.addExtension(spv::E_SPV_KHR_shader_ballot);
|
||||||
builder.addCapability(spv::CapabilitySubgroupBallotKHR);
|
builder.addCapability(spv::CapabilitySubgroupBallotKHR);
|
||||||
return spv::BuiltInSubgroupLeMaskKHR;
|
return spv::BuiltInSubgroupLeMask;
|
||||||
|
|
||||||
case glslang::EbvSubGroupLtMask:
|
case glslang::EbvSubGroupLtMask:
|
||||||
builder.addExtension(spv::E_SPV_KHR_shader_ballot);
|
builder.addExtension(spv::E_SPV_KHR_shader_ballot);
|
||||||
builder.addCapability(spv::CapabilitySubgroupBallotKHR);
|
builder.addCapability(spv::CapabilitySubgroupBallotKHR);
|
||||||
return spv::BuiltInSubgroupLtMaskKHR;
|
return spv::BuiltInSubgroupLtMask;
|
||||||
|
|
||||||
case glslang::EbvNumSubgroups:
|
case glslang::EbvNumSubgroups:
|
||||||
builder.addCapability(spv::CapabilityGroupNonUniform);
|
builder.addCapability(spv::CapabilityGroupNonUniform);
|
||||||
@ -794,6 +801,7 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
|||||||
builder.addCapability(spv::CapabilityGroupNonUniform);
|
builder.addCapability(spv::CapabilityGroupNonUniform);
|
||||||
builder.addCapability(spv::CapabilityGroupNonUniformBallot);
|
builder.addCapability(spv::CapabilityGroupNonUniformBallot);
|
||||||
return spv::BuiltInSubgroupLtMask;
|
return spv::BuiltInSubgroupLtMask;
|
||||||
|
|
||||||
#ifdef AMD_EXTENSIONS
|
#ifdef AMD_EXTENSIONS
|
||||||
case glslang::EbvBaryCoordNoPersp:
|
case glslang::EbvBaryCoordNoPersp:
|
||||||
builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter);
|
builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter);
|
||||||
@ -946,6 +954,24 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
|||||||
case glslang::EbvMeshViewIndicesNV:
|
case glslang::EbvMeshViewIndicesNV:
|
||||||
return spv::BuiltInMeshViewIndicesNV;
|
return spv::BuiltInMeshViewIndicesNV;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// sm builtins
|
||||||
|
case glslang::EbvWarpsPerSM:
|
||||||
|
builder.addExtension(spv::E_SPV_NV_shader_sm_builtins);
|
||||||
|
builder.addCapability(spv::CapabilityShaderSMBuiltinsNV);
|
||||||
|
return spv::BuiltInWarpsPerSMNV;
|
||||||
|
case glslang::EbvSMCount:
|
||||||
|
builder.addExtension(spv::E_SPV_NV_shader_sm_builtins);
|
||||||
|
builder.addCapability(spv::CapabilityShaderSMBuiltinsNV);
|
||||||
|
return spv::BuiltInSMCountNV;
|
||||||
|
case glslang::EbvWarpID:
|
||||||
|
builder.addExtension(spv::E_SPV_NV_shader_sm_builtins);
|
||||||
|
builder.addCapability(spv::CapabilityShaderSMBuiltinsNV);
|
||||||
|
return spv::BuiltInWarpIDNV;
|
||||||
|
case glslang::EbvSMID:
|
||||||
|
builder.addExtension(spv::E_SPV_NV_shader_sm_builtins);
|
||||||
|
builder.addCapability(spv::CapabilityShaderSMBuiltinsNV);
|
||||||
|
return spv::BuiltInSMIDNV;
|
||||||
default:
|
default:
|
||||||
return spv::BuiltInMax;
|
return spv::BuiltInMax;
|
||||||
}
|
}
|
||||||
@ -1295,7 +1321,8 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const gl
|
|||||||
sequenceDepth(0), logger(buildLogger),
|
sequenceDepth(0), logger(buildLogger),
|
||||||
builder(spvVersion, (glslang::GetKhronosToolId() << 16) | glslang::GetSpirvGeneratorVersion(), logger),
|
builder(spvVersion, (glslang::GetKhronosToolId() << 16) | glslang::GetSpirvGeneratorVersion(), logger),
|
||||||
inEntryPoint(false), entryPointTerminated(false), linkageOnly(false),
|
inEntryPoint(false), entryPointTerminated(false), linkageOnly(false),
|
||||||
glslangIntermediate(glslangIntermediate)
|
glslangIntermediate(glslangIntermediate),
|
||||||
|
nanMinMaxClamp(glslangIntermediate->getNanMinMaxClamp())
|
||||||
{
|
{
|
||||||
spv::ExecutionModel executionModel = TranslateExecutionModel(glslangIntermediate->getStage());
|
spv::ExecutionModel executionModel = TranslateExecutionModel(glslangIntermediate->getStage());
|
||||||
|
|
||||||
@ -1600,8 +1627,8 @@ void TGlslangToSpvTraverser::visitSymbol(glslang::TIntermSymbol* symbol)
|
|||||||
// Formal function parameters were mapped during makeFunctions().
|
// Formal function parameters were mapped during makeFunctions().
|
||||||
spv::Id id = getSymbolId(symbol);
|
spv::Id id = getSymbolId(symbol);
|
||||||
|
|
||||||
// Include all "static use" and "linkage only" interface variables on the OpEntryPoint instruction
|
|
||||||
if (builder.isPointer(id)) {
|
if (builder.isPointer(id)) {
|
||||||
|
// Include all "static use" and "linkage only" interface variables on the OpEntryPoint instruction
|
||||||
// Consider adding to the OpEntryPoint interface list.
|
// Consider adding to the OpEntryPoint interface list.
|
||||||
// Only looking at structures if they have at least one member.
|
// Only looking at structures if they have at least one member.
|
||||||
if (!symbol->getType().isStruct() || symbol->getType().getStruct()->size() > 0) {
|
if (!symbol->getType().isStruct() || symbol->getType().getStruct()->size() > 0) {
|
||||||
@ -1613,6 +1640,14 @@ void TGlslangToSpvTraverser::visitSymbol(glslang::TIntermSymbol* symbol)
|
|||||||
iOSet.insert(id);
|
iOSet.insert(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If the SPIR-V type is required to be different than the AST type,
|
||||||
|
// translate now from the SPIR-V type to the AST type, for the consuming
|
||||||
|
// operation.
|
||||||
|
// Note this turns it from an l-value to an r-value.
|
||||||
|
// Currently, all symbols needing this are inputs; avoid the map lookup when non-input.
|
||||||
|
if (symbol->getType().getQualifier().storage == glslang::EvqVaryingIn)
|
||||||
|
id = translateForcedType(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only process non-linkage-only nodes for generating actual static uses
|
// Only process non-linkage-only nodes for generating actual static uses
|
||||||
@ -1630,8 +1665,10 @@ void TGlslangToSpvTraverser::visitSymbol(glslang::TIntermSymbol* symbol)
|
|||||||
// See comments in handleUserFunctionCall().
|
// See comments in handleUserFunctionCall().
|
||||||
// B) Specialization constants (normal constants don't even come in as a variable),
|
// B) Specialization constants (normal constants don't even come in as a variable),
|
||||||
// These are also pure R-values.
|
// These are also pure R-values.
|
||||||
|
// C) R-Values from type translation, see above call to translateForcedType()
|
||||||
glslang::TQualifier qualifier = symbol->getQualifier();
|
glslang::TQualifier qualifier = symbol->getQualifier();
|
||||||
if (qualifier.isSpecConstant() || rValueParameters.find(symbol->getId()) != rValueParameters.end())
|
if (qualifier.isSpecConstant() || rValueParameters.find(symbol->getId()) != rValueParameters.end() ||
|
||||||
|
!builder.isPointerType(builder.getTypeId(id)))
|
||||||
builder.setAccessChainRValue(id);
|
builder.setAccessChainRValue(id);
|
||||||
else
|
else
|
||||||
builder.setAccessChainLValue(id);
|
builder.setAccessChainLValue(id);
|
||||||
@ -1888,6 +1925,71 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Figure out what, if any, type changes are needed when accessing a specific built-in.
|
||||||
|
// Returns <the type SPIR-V requires for declarion, the type to translate to on use>.
|
||||||
|
// Also see comment for 'forceType', regarding tracking SPIR-V-required types.
|
||||||
|
std::pair<spv::Id, spv::Id> TGlslangToSpvTraverser::getForcedType(spv::BuiltIn builtIn,
|
||||||
|
const glslang::TType& glslangType)
|
||||||
|
{
|
||||||
|
switch(builtIn)
|
||||||
|
{
|
||||||
|
case spv::BuiltInSubgroupEqMask:
|
||||||
|
case spv::BuiltInSubgroupGeMask:
|
||||||
|
case spv::BuiltInSubgroupGtMask:
|
||||||
|
case spv::BuiltInSubgroupLeMask:
|
||||||
|
case spv::BuiltInSubgroupLtMask: {
|
||||||
|
// these require changing a 64-bit scaler -> a vector of 32-bit components
|
||||||
|
if (glslangType.isVector())
|
||||||
|
break;
|
||||||
|
std::pair<spv::Id, spv::Id> ret(builder.makeVectorType(builder.makeUintType(32), 4),
|
||||||
|
builder.makeUintType(64));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::pair<spv::Id, spv::Id> ret(spv::NoType, spv::NoType);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
// For an object previously identified (see getForcedType() and forceType)
|
||||||
|
// as needing type translations, do the translation needed for a load, turning
|
||||||
|
// an L-value into in R-value.
|
||||||
|
spv::Id TGlslangToSpvTraverser::translateForcedType(spv::Id object)
|
||||||
|
{
|
||||||
|
const auto forceIt = forceType.find(object);
|
||||||
|
if (forceIt == forceType.end())
|
||||||
|
return object;
|
||||||
|
|
||||||
|
spv::Id desiredTypeId = forceIt->second;
|
||||||
|
spv::Id objectTypeId = builder.getTypeId(object);
|
||||||
|
assert(builder.isPointerType(objectTypeId));
|
||||||
|
objectTypeId = builder.getContainedTypeId(objectTypeId);
|
||||||
|
if (builder.isVectorType(objectTypeId) &&
|
||||||
|
builder.getScalarTypeWidth(builder.getContainedTypeId(objectTypeId)) == 32) {
|
||||||
|
if (builder.getScalarTypeWidth(desiredTypeId) == 64) {
|
||||||
|
// handle 32-bit v.xy* -> 64-bit
|
||||||
|
builder.clearAccessChain();
|
||||||
|
builder.setAccessChainLValue(object);
|
||||||
|
object = builder.accessChainLoad(spv::NoPrecision, spv::DecorationMax, objectTypeId);
|
||||||
|
std::vector<spv::Id> components;
|
||||||
|
components.push_back(builder.createCompositeExtract(object, builder.getContainedTypeId(objectTypeId), 0));
|
||||||
|
components.push_back(builder.createCompositeExtract(object, builder.getContainedTypeId(objectTypeId), 1));
|
||||||
|
|
||||||
|
spv::Id vecType = builder.makeVectorType(builder.getContainedTypeId(objectTypeId), 2);
|
||||||
|
return builder.createUnaryOp(spv::OpBitcast, desiredTypeId,
|
||||||
|
builder.createCompositeConstruct(vecType, components));
|
||||||
|
} else {
|
||||||
|
logger->missingFunctionality("forcing 32-bit vector type to non 64-bit scalar");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger->missingFunctionality("forcing non 32-bit vector type");
|
||||||
|
}
|
||||||
|
|
||||||
|
return object;
|
||||||
|
}
|
||||||
|
|
||||||
bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TIntermUnary* node)
|
bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TIntermUnary* node)
|
||||||
{
|
{
|
||||||
builder.setLine(node->getLoc().line, node->getLoc().getFilename());
|
builder.setLine(node->getLoc().line, node->getLoc().getFilename());
|
||||||
@ -1963,19 +2065,26 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI
|
|||||||
invertedType = getInvertedSwizzleType(*node->getOperand());
|
invertedType = getInvertedSwizzleType(*node->getOperand());
|
||||||
|
|
||||||
builder.clearAccessChain();
|
builder.clearAccessChain();
|
||||||
|
TIntermNode *operandNode;
|
||||||
if (invertedType != spv::NoType)
|
if (invertedType != spv::NoType)
|
||||||
node->getOperand()->getAsBinaryNode()->getLeft()->traverse(this);
|
operandNode = node->getOperand()->getAsBinaryNode()->getLeft();
|
||||||
else
|
else
|
||||||
node->getOperand()->traverse(this);
|
operandNode = node->getOperand();
|
||||||
|
|
||||||
|
operandNode->traverse(this);
|
||||||
|
|
||||||
spv::Id operand = spv::NoResult;
|
spv::Id operand = spv::NoResult;
|
||||||
|
|
||||||
|
spv::Builder::AccessChain::CoherentFlags lvalueCoherentFlags;
|
||||||
|
|
||||||
if (node->getOp() == glslang::EOpAtomicCounterIncrement ||
|
if (node->getOp() == glslang::EOpAtomicCounterIncrement ||
|
||||||
node->getOp() == glslang::EOpAtomicCounterDecrement ||
|
node->getOp() == glslang::EOpAtomicCounterDecrement ||
|
||||||
node->getOp() == glslang::EOpAtomicCounter ||
|
node->getOp() == glslang::EOpAtomicCounter ||
|
||||||
node->getOp() == glslang::EOpInterpolateAtCentroid)
|
node->getOp() == glslang::EOpInterpolateAtCentroid) {
|
||||||
operand = builder.accessChainGetLValue(); // Special case l-value operands
|
operand = builder.accessChainGetLValue(); // Special case l-value operands
|
||||||
else
|
lvalueCoherentFlags = builder.getAccessChain().coherentFlags;
|
||||||
|
lvalueCoherentFlags |= TranslateCoherent(operandNode->getAsTyped()->getType());
|
||||||
|
} else
|
||||||
operand = accessChainLoad(node->getOperand()->getType());
|
operand = accessChainLoad(node->getOperand()->getType());
|
||||||
|
|
||||||
OpDecorations decorations = { TranslatePrecisionDecoration(node->getOperationPrecision()),
|
OpDecorations decorations = { TranslatePrecisionDecoration(node->getOperationPrecision()),
|
||||||
@ -1988,7 +2097,7 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI
|
|||||||
|
|
||||||
// if not, then possibly an operation
|
// if not, then possibly an operation
|
||||||
if (! result)
|
if (! result)
|
||||||
result = createUnaryOperation(node->getOp(), decorations, resultType(), operand, node->getOperand()->getBasicType());
|
result = createUnaryOperation(node->getOp(), decorations, resultType(), operand, node->getOperand()->getBasicType(), lvalueCoherentFlags);
|
||||||
|
|
||||||
if (result) {
|
if (result) {
|
||||||
if (invertedType) {
|
if (invertedType) {
|
||||||
@ -2095,6 +2204,8 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
|
|||||||
bool noReturnValue = false;
|
bool noReturnValue = false;
|
||||||
bool atomic = false;
|
bool atomic = false;
|
||||||
|
|
||||||
|
spv::Builder::AccessChain::CoherentFlags lvalueCoherentFlags;
|
||||||
|
|
||||||
assert(node->getOp());
|
assert(node->getOp());
|
||||||
|
|
||||||
spv::Decoration precision = TranslatePrecisionDecoration(node->getOperationPrecision());
|
spv::Decoration precision = TranslatePrecisionDecoration(node->getOperationPrecision());
|
||||||
@ -2292,7 +2403,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
|
|||||||
{
|
{
|
||||||
builder.setLine(node->getLoc().line, node->getLoc().getFilename());
|
builder.setLine(node->getLoc().line, node->getLoc().getFilename());
|
||||||
std::vector<spv::Id> arguments;
|
std::vector<spv::Id> arguments;
|
||||||
translateArguments(*node, arguments);
|
translateArguments(*node, arguments, lvalueCoherentFlags);
|
||||||
spv::Id constructed;
|
spv::Id constructed;
|
||||||
if (node->getOp() == glslang::EOpConstructTextureSampler)
|
if (node->getOp() == glslang::EOpConstructTextureSampler)
|
||||||
constructed = builder.createOp(spv::OpSampledImage, resultType(), arguments);
|
constructed = builder.createOp(spv::OpSampledImage, resultType(), arguments);
|
||||||
@ -2584,9 +2695,11 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lvalue)
|
if (lvalue) {
|
||||||
operands.push_back(builder.accessChainGetLValue());
|
operands.push_back(builder.accessChainGetLValue());
|
||||||
else {
|
lvalueCoherentFlags = builder.getAccessChain().coherentFlags;
|
||||||
|
lvalueCoherentFlags |= TranslateCoherent(glslangOperands[arg]->getAsTyped()->getType());
|
||||||
|
} else {
|
||||||
builder.setLine(node->getLoc().line, node->getLoc().getFilename());
|
builder.setLine(node->getLoc().line, node->getLoc().getFilename());
|
||||||
operands.push_back(accessChainLoad(glslangOperands[arg]->getAsTyped()->getType()));
|
operands.push_back(accessChainLoad(glslangOperands[arg]->getAsTyped()->getType()));
|
||||||
}
|
}
|
||||||
@ -2621,7 +2734,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
|
|||||||
result = 0;
|
result = 0;
|
||||||
} else if (atomic) {
|
} else if (atomic) {
|
||||||
// Handle all atomics
|
// Handle all atomics
|
||||||
result = createAtomicOperation(node->getOp(), precision, resultType(), operands, node->getBasicType());
|
result = createAtomicOperation(node->getOp(), precision, resultType(), operands, node->getBasicType(), lvalueCoherentFlags);
|
||||||
} else {
|
} else {
|
||||||
// Pass through to generic operations.
|
// Pass through to generic operations.
|
||||||
switch (glslangOperands.size()) {
|
switch (glslangOperands.size()) {
|
||||||
@ -2636,7 +2749,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
|
|||||||
result = createUnaryOperation(
|
result = createUnaryOperation(
|
||||||
node->getOp(), decorations,
|
node->getOp(), decorations,
|
||||||
resultType(), operands.front(),
|
resultType(), operands.front(),
|
||||||
glslangOperands[0]->getAsTyped()->getBasicType());
|
glslangOperands[0]->getAsTyped()->getBasicType(), lvalueCoherentFlags);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -2998,6 +3111,12 @@ bool TGlslangToSpvTraverser::visitBranch(glslang::TVisit /* visit */, glslang::T
|
|||||||
builder.clearAccessChain();
|
builder.clearAccessChain();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case glslang::EOpDemote:
|
||||||
|
builder.createNoResultOp(spv::OpDemoteToHelperInvocationEXT);
|
||||||
|
builder.addExtension(spv::E_SPV_EXT_demote_to_helper_invocation);
|
||||||
|
builder.addCapability(spv::CapabilityDemoteToHelperInvocationEXT);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
assert(0);
|
assert(0);
|
||||||
break;
|
break;
|
||||||
@ -3006,7 +3125,7 @@ bool TGlslangToSpvTraverser::visitBranch(glslang::TVisit /* visit */, glslang::T
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol* node)
|
spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol* node, spv::Id forcedType)
|
||||||
{
|
{
|
||||||
// First, steer off constants, which are not SPIR-V variables, but
|
// First, steer off constants, which are not SPIR-V variables, but
|
||||||
// can still have a mapping to a SPIR-V Id.
|
// can still have a mapping to a SPIR-V Id.
|
||||||
@ -3019,7 +3138,8 @@ spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol*
|
|||||||
|
|
||||||
// Now, handle actual variables
|
// Now, handle actual variables
|
||||||
spv::StorageClass storageClass = TranslateStorageClass(node->getType());
|
spv::StorageClass storageClass = TranslateStorageClass(node->getType());
|
||||||
spv::Id spvType = convertGlslangToSpvType(node->getType());
|
spv::Id spvType = forcedType == spv::NoType ? convertGlslangToSpvType(node->getType())
|
||||||
|
: forcedType;
|
||||||
|
|
||||||
const bool contains16BitType = node->getType().containsBasicType(glslang::EbtFloat16) ||
|
const bool contains16BitType = node->getType().containsBasicType(glslang::EbtFloat16) ||
|
||||||
node->getType().containsBasicType(glslang::EbtInt16) ||
|
node->getType().containsBasicType(glslang::EbtInt16) ||
|
||||||
@ -3048,6 +3168,11 @@ spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol*
|
|||||||
builder.addCapability(spv::CapabilityStorageUniformBufferBlock16);
|
builder.addCapability(spv::CapabilityStorageUniformBufferBlock16);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
if (node->getType().containsBasicType(glslang::EbtFloat16))
|
||||||
|
builder.addCapability(spv::CapabilityFloat16);
|
||||||
|
if (node->getType().containsBasicType(glslang::EbtInt16) ||
|
||||||
|
node->getType().containsBasicType(glslang::EbtUint16))
|
||||||
|
builder.addCapability(spv::CapabilityInt16);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3064,6 +3189,8 @@ spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol*
|
|||||||
} else if (storageClass == spv::StorageClassStorageBuffer) {
|
} else if (storageClass == spv::StorageClassStorageBuffer) {
|
||||||
builder.addExtension(spv::E_SPV_KHR_8bit_storage);
|
builder.addExtension(spv::E_SPV_KHR_8bit_storage);
|
||||||
builder.addCapability(spv::CapabilityStorageBuffer8BitAccess);
|
builder.addCapability(spv::CapabilityStorageBuffer8BitAccess);
|
||||||
|
} else {
|
||||||
|
builder.addCapability(spv::CapabilityInt8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3376,9 +3503,12 @@ spv::Id TGlslangToSpvTraverser::convertGlslangStructToSpvType(const glslang::TTy
|
|||||||
memberRemapper[glslangMembers][i] = -1;
|
memberRemapper[glslangMembers][i] = -1;
|
||||||
} else {
|
} else {
|
||||||
if (type.getBasicType() == glslang::EbtBlock) {
|
if (type.getBasicType() == glslang::EbtBlock) {
|
||||||
memberRemapper[glslangMembers][i] = i - memberDelta;
|
if (filterMember(glslangMember)) {
|
||||||
if (filterMember(glslangMember))
|
memberDelta++;
|
||||||
|
memberRemapper[glslangMembers][i] = -1;
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
memberRemapper[glslangMembers][i] = i - memberDelta;
|
||||||
}
|
}
|
||||||
// modify just this child's view of the qualifier
|
// modify just this child's view of the qualifier
|
||||||
glslang::TQualifier memberQualifier = glslangMember.getQualifier();
|
glslang::TQualifier memberQualifier = glslangMember.getQualifier();
|
||||||
@ -3996,6 +4126,16 @@ void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslF
|
|||||||
symbolValues[parameters[p]->getAsSymbolNode()->getId()] = function->getParamId(p);
|
symbolValues[parameters[p]->getAsSymbolNode()->getId()] = function->getParamId(p);
|
||||||
// give a name too
|
// give a name too
|
||||||
builder.addName(function->getParamId(p), parameters[p]->getAsSymbolNode()->getName().c_str());
|
builder.addName(function->getParamId(p), parameters[p]->getAsSymbolNode()->getName().c_str());
|
||||||
|
|
||||||
|
const glslang::TType& paramType = parameters[p]->getAsTyped()->getType();
|
||||||
|
if (paramType.containsBasicType(glslang::EbtInt8) ||
|
||||||
|
paramType.containsBasicType(glslang::EbtUint8))
|
||||||
|
builder.addCapability(spv::CapabilityInt8);
|
||||||
|
if (paramType.containsBasicType(glslang::EbtInt16) ||
|
||||||
|
paramType.containsBasicType(glslang::EbtUint16))
|
||||||
|
builder.addCapability(spv::CapabilityInt16);
|
||||||
|
if (paramType.containsBasicType(glslang::EbtFloat16))
|
||||||
|
builder.addCapability(spv::CapabilityFloat16);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4034,7 +4174,7 @@ void TGlslangToSpvTraverser::handleFunctionEntry(const glslang::TIntermAggregate
|
|||||||
builder.setBuildPoint(functionBlock);
|
builder.setBuildPoint(functionBlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate& node, std::vector<spv::Id>& arguments)
|
void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate& node, std::vector<spv::Id>& arguments, spv::Builder::AccessChain::CoherentFlags &lvalueCoherentFlags)
|
||||||
{
|
{
|
||||||
const glslang::TIntermSequence& glslangArguments = node.getSequence();
|
const glslang::TIntermSequence& glslangArguments = node.getSequence();
|
||||||
|
|
||||||
@ -4192,9 +4332,11 @@ void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate&
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lvalue)
|
if (lvalue) {
|
||||||
arguments.push_back(builder.accessChainGetLValue());
|
arguments.push_back(builder.accessChainGetLValue());
|
||||||
else
|
lvalueCoherentFlags = builder.getAccessChain().coherentFlags;
|
||||||
|
lvalueCoherentFlags |= TranslateCoherent(glslangArguments[i]->getAsTyped()->getType());
|
||||||
|
} else
|
||||||
arguments.push_back(accessChainLoad(glslangArguments[i]->getAsTyped()->getType()));
|
arguments.push_back(accessChainLoad(glslangArguments[i]->getAsTyped()->getType()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4235,9 +4377,11 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
|
|||||||
return spv::ImageOperandsMaskNone;
|
return spv::ImageOperandsMaskNone;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
spv::Builder::AccessChain::CoherentFlags lvalueCoherentFlags;
|
||||||
|
|
||||||
std::vector<spv::Id> arguments;
|
std::vector<spv::Id> arguments;
|
||||||
if (node->getAsAggregate())
|
if (node->getAsAggregate())
|
||||||
translateArguments(*node->getAsAggregate(), arguments);
|
translateArguments(*node->getAsAggregate(), arguments, lvalueCoherentFlags);
|
||||||
else
|
else
|
||||||
translateArguments(*node->getAsUnaryNode(), arguments);
|
translateArguments(*node->getAsUnaryNode(), arguments);
|
||||||
spv::Decoration precision = TranslatePrecisionDecoration(node->getOperationPrecision());
|
spv::Decoration precision = TranslatePrecisionDecoration(node->getOperationPrecision());
|
||||||
@ -4518,7 +4662,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
|
|||||||
for (; opIt != arguments.end(); ++opIt)
|
for (; opIt != arguments.end(); ++opIt)
|
||||||
operands.push_back(*opIt);
|
operands.push_back(*opIt);
|
||||||
|
|
||||||
return createAtomicOperation(node->getOp(), precision, resultType(), operands, node->getBasicType());
|
return createAtomicOperation(node->getOp(), precision, resultType(), operands, node->getBasicType(), lvalueCoherentFlags);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5274,7 +5418,7 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, OpDecora
|
|||||||
}
|
}
|
||||||
|
|
||||||
spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDecorations& decorations, spv::Id typeId,
|
spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDecorations& decorations, spv::Id typeId,
|
||||||
spv::Id operand, glslang::TBasicType typeProxy)
|
spv::Id operand, glslang::TBasicType typeProxy, const spv::Builder::AccessChain::CoherentFlags &lvalueCoherentFlags)
|
||||||
{
|
{
|
||||||
spv::Op unaryOp = spv::OpNop;
|
spv::Op unaryOp = spv::OpNop;
|
||||||
int extBuiltins = -1;
|
int extBuiltins = -1;
|
||||||
@ -5545,7 +5689,7 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDe
|
|||||||
// Handle all of the atomics in one place, in createAtomicOperation()
|
// Handle all of the atomics in one place, in createAtomicOperation()
|
||||||
std::vector<spv::Id> operands;
|
std::vector<spv::Id> operands;
|
||||||
operands.push_back(operand);
|
operands.push_back(operand);
|
||||||
return createAtomicOperation(op, decorations.precision, typeId, operands, typeProxy);
|
return createAtomicOperation(op, decorations.precision, typeId, operands, typeProxy, lvalueCoherentFlags);
|
||||||
}
|
}
|
||||||
|
|
||||||
case glslang::EOpBitFieldReverse:
|
case glslang::EOpBitFieldReverse:
|
||||||
@ -6153,7 +6297,7 @@ spv::Id TGlslangToSpvTraverser::makeSmearedConstant(spv::Id constant, int vector
|
|||||||
}
|
}
|
||||||
|
|
||||||
// For glslang ops that map to SPV atomic opCodes
|
// For glslang ops that map to SPV atomic opCodes
|
||||||
spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv::Decoration /*precision*/, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy)
|
spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv::Decoration /*precision*/, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy, const spv::Builder::AccessChain::CoherentFlags &lvalueCoherentFlags)
|
||||||
{
|
{
|
||||||
spv::Op opCode = spv::OpNop;
|
spv::Op opCode = spv::OpNop;
|
||||||
|
|
||||||
@ -6239,7 +6383,7 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv
|
|||||||
scopeId = builder.makeUintConstant(spv::ScopeDevice);
|
scopeId = builder.makeUintConstant(spv::ScopeDevice);
|
||||||
}
|
}
|
||||||
// semantics default to relaxed
|
// semantics default to relaxed
|
||||||
spv::Id semanticsId = builder.makeUintConstant(spv::MemorySemanticsMaskNone);
|
spv::Id semanticsId = builder.makeUintConstant(lvalueCoherentFlags.volatil ? spv::MemorySemanticsVolatileMask : spv::MemorySemanticsMaskNone);
|
||||||
spv::Id semanticsId2 = semanticsId;
|
spv::Id semanticsId2 = semanticsId;
|
||||||
|
|
||||||
pointerId = operands[0];
|
pointerId = operands[0];
|
||||||
@ -6269,7 +6413,10 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv
|
|||||||
|
|
||||||
// Check for capabilities
|
// Check for capabilities
|
||||||
unsigned semanticsImmediate = builder.getConstantScalar(semanticsId) | builder.getConstantScalar(semanticsId2);
|
unsigned semanticsImmediate = builder.getConstantScalar(semanticsId) | builder.getConstantScalar(semanticsId2);
|
||||||
if (semanticsImmediate & (spv::MemorySemanticsMakeAvailableKHRMask | spv::MemorySemanticsMakeVisibleKHRMask | spv::MemorySemanticsOutputMemoryKHRMask)) {
|
if (semanticsImmediate & (spv::MemorySemanticsMakeAvailableKHRMask |
|
||||||
|
spv::MemorySemanticsMakeVisibleKHRMask |
|
||||||
|
spv::MemorySemanticsOutputMemoryKHRMask |
|
||||||
|
spv::MemorySemanticsVolatileMask)) {
|
||||||
builder.addCapability(spv::CapabilityVulkanMemoryModelKHR);
|
builder.addCapability(spv::CapabilityVulkanMemoryModelKHR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6961,7 +7108,7 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
|
|||||||
switch (op) {
|
switch (op) {
|
||||||
case glslang::EOpMin:
|
case glslang::EOpMin:
|
||||||
if (isFloat)
|
if (isFloat)
|
||||||
libCall = spv::GLSLstd450FMin;
|
libCall = nanMinMaxClamp ? spv::GLSLstd450NMin : spv::GLSLstd450FMin;
|
||||||
else if (isUnsigned)
|
else if (isUnsigned)
|
||||||
libCall = spv::GLSLstd450UMin;
|
libCall = spv::GLSLstd450UMin;
|
||||||
else
|
else
|
||||||
@ -6973,7 +7120,7 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
|
|||||||
break;
|
break;
|
||||||
case glslang::EOpMax:
|
case glslang::EOpMax:
|
||||||
if (isFloat)
|
if (isFloat)
|
||||||
libCall = spv::GLSLstd450FMax;
|
libCall = nanMinMaxClamp ? spv::GLSLstd450NMax : spv::GLSLstd450FMax;
|
||||||
else if (isUnsigned)
|
else if (isUnsigned)
|
||||||
libCall = spv::GLSLstd450UMax;
|
libCall = spv::GLSLstd450UMax;
|
||||||
else
|
else
|
||||||
@ -6992,7 +7139,7 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
|
|||||||
|
|
||||||
case glslang::EOpClamp:
|
case glslang::EOpClamp:
|
||||||
if (isFloat)
|
if (isFloat)
|
||||||
libCall = spv::GLSLstd450FClamp;
|
libCall = nanMinMaxClamp ? spv::GLSLstd450NClamp : spv::GLSLstd450FClamp;
|
||||||
else if (isUnsigned)
|
else if (isUnsigned)
|
||||||
libCall = spv::GLSLstd450UClamp;
|
libCall = spv::GLSLstd450UClamp;
|
||||||
else
|
else
|
||||||
@ -7211,7 +7358,10 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
|
|||||||
unsigned int memoryScope = builder.getConstantScalar(operands[1]);
|
unsigned int memoryScope = builder.getConstantScalar(operands[1]);
|
||||||
unsigned int semantics = builder.getConstantScalar(operands[2]) | builder.getConstantScalar(operands[3]);
|
unsigned int semantics = builder.getConstantScalar(operands[2]) | builder.getConstantScalar(operands[3]);
|
||||||
builder.createControlBarrier((spv::Scope)executionScope, (spv::Scope)memoryScope, (spv::MemorySemanticsMask)semantics);
|
builder.createControlBarrier((spv::Scope)executionScope, (spv::Scope)memoryScope, (spv::MemorySemanticsMask)semantics);
|
||||||
if (semantics & (spv::MemorySemanticsMakeAvailableKHRMask | spv::MemorySemanticsMakeVisibleKHRMask | spv::MemorySemanticsOutputMemoryKHRMask)) {
|
if (semantics & (spv::MemorySemanticsMakeAvailableKHRMask |
|
||||||
|
spv::MemorySemanticsMakeVisibleKHRMask |
|
||||||
|
spv::MemorySemanticsOutputMemoryKHRMask |
|
||||||
|
spv::MemorySemanticsVolatileMask)) {
|
||||||
builder.addCapability(spv::CapabilityVulkanMemoryModelKHR);
|
builder.addCapability(spv::CapabilityVulkanMemoryModelKHR);
|
||||||
}
|
}
|
||||||
if (glslangIntermediate->usingVulkanMemoryModel() && (executionScope == spv::ScopeDevice || memoryScope == spv::ScopeDevice)) {
|
if (glslangIntermediate->usingVulkanMemoryModel() && (executionScope == spv::ScopeDevice || memoryScope == spv::ScopeDevice)) {
|
||||||
@ -7228,7 +7378,10 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
|
|||||||
unsigned int memoryScope = builder.getConstantScalar(operands[0]);
|
unsigned int memoryScope = builder.getConstantScalar(operands[0]);
|
||||||
unsigned int semantics = builder.getConstantScalar(operands[1]) | builder.getConstantScalar(operands[2]);
|
unsigned int semantics = builder.getConstantScalar(operands[1]) | builder.getConstantScalar(operands[2]);
|
||||||
builder.createMemoryBarrier((spv::Scope)memoryScope, (spv::MemorySemanticsMask)semantics);
|
builder.createMemoryBarrier((spv::Scope)memoryScope, (spv::MemorySemanticsMask)semantics);
|
||||||
if (semantics & (spv::MemorySemanticsMakeAvailableKHRMask | spv::MemorySemanticsMakeVisibleKHRMask | spv::MemorySemanticsOutputMemoryKHRMask)) {
|
if (semantics & (spv::MemorySemanticsMakeAvailableKHRMask |
|
||||||
|
spv::MemorySemanticsMakeVisibleKHRMask |
|
||||||
|
spv::MemorySemanticsOutputMemoryKHRMask |
|
||||||
|
spv::MemorySemanticsVolatileMask)) {
|
||||||
builder.addCapability(spv::CapabilityVulkanMemoryModelKHR);
|
builder.addCapability(spv::CapabilityVulkanMemoryModelKHR);
|
||||||
}
|
}
|
||||||
if (glslangIntermediate->usingVulkanMemoryModel() && memoryScope == spv::ScopeDevice) {
|
if (glslangIntermediate->usingVulkanMemoryModel() && memoryScope == spv::ScopeDevice) {
|
||||||
@ -7466,6 +7619,30 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv:
|
|||||||
builder.createNoResultOp(spv::OpEndInvocationInterlockEXT);
|
builder.createNoResultOp(spv::OpEndInvocationInterlockEXT);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
case glslang::EOpIsHelperInvocation:
|
||||||
|
{
|
||||||
|
std::vector<spv::Id> args; // Dummy arguments
|
||||||
|
builder.addExtension(spv::E_SPV_EXT_demote_to_helper_invocation);
|
||||||
|
builder.addCapability(spv::CapabilityDemoteToHelperInvocationEXT);
|
||||||
|
return builder.createOp(spv::OpIsHelperInvocationEXT, typeId, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
case glslang::EOpReadClockSubgroupKHR: {
|
||||||
|
std::vector<spv::Id> args;
|
||||||
|
args.push_back(builder.makeUintConstant(spv::ScopeSubgroup));
|
||||||
|
builder.addExtension(spv::E_SPV_KHR_shader_clock);
|
||||||
|
builder.addCapability(spv::CapabilityShaderClockKHR);
|
||||||
|
return builder.createOp(spv::OpReadClockKHR, typeId, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
case glslang::EOpReadClockDeviceKHR: {
|
||||||
|
std::vector<spv::Id> args;
|
||||||
|
args.push_back(builder.makeUintConstant(spv::ScopeDevice));
|
||||||
|
builder.addExtension(spv::E_SPV_KHR_shader_clock);
|
||||||
|
builder.addCapability(spv::CapabilityShaderClockKHR);
|
||||||
|
return builder.createOp(spv::OpReadClockKHR, typeId, args);
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
logger->missingFunctionality("unknown operation with no arguments");
|
logger->missingFunctionality("unknown operation with no arguments");
|
||||||
return 0;
|
return 0;
|
||||||
@ -7482,8 +7659,12 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
|
|||||||
}
|
}
|
||||||
|
|
||||||
// it was not found, create it
|
// it was not found, create it
|
||||||
id = createSpvVariable(symbol);
|
spv::BuiltIn builtIn = TranslateBuiltInDecoration(symbol->getQualifier().builtIn, false);
|
||||||
|
auto forcedType = getForcedType(builtIn, symbol->getType());
|
||||||
|
id = createSpvVariable(symbol, forcedType.first);
|
||||||
symbolValues[symbol->getId()] = id;
|
symbolValues[symbol->getId()] = id;
|
||||||
|
if (forcedType.second != spv::NoType)
|
||||||
|
forceType[id] = forcedType.second;
|
||||||
|
|
||||||
if (symbol->getBasicType() != glslang::EbtBlock) {
|
if (symbol->getBasicType() != glslang::EbtBlock) {
|
||||||
builder.addDecoration(id, TranslatePrecisionDecoration(symbol->getType()));
|
builder.addDecoration(id, TranslatePrecisionDecoration(symbol->getType()));
|
||||||
@ -7543,10 +7724,10 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
|
|||||||
builder.addDecoration(id, memory[i]);
|
builder.addDecoration(id, memory[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// built-in variable decorations
|
// add built-in variable decoration
|
||||||
spv::BuiltIn builtIn = TranslateBuiltInDecoration(symbol->getQualifier().builtIn, false);
|
if (builtIn != spv::BuiltInMax) {
|
||||||
if (builtIn != spv::BuiltInMax)
|
|
||||||
builder.addDecoration(id, spv::DecorationBuiltIn, (int)builtIn);
|
builder.addDecoration(id, spv::DecorationBuiltIn, (int)builtIn);
|
||||||
|
}
|
||||||
|
|
||||||
// nonuniform
|
// nonuniform
|
||||||
builder.addDecoration(id, TranslateNonUniformDecoration(symbol->getType().getQualifier()));
|
builder.addDecoration(id, TranslateNonUniformDecoration(symbol->getType().getQualifier()));
|
||||||
@ -7561,6 +7742,7 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
|
|||||||
decoration = (spv::Decoration)spv::DecorationMax;
|
decoration = (spv::Decoration)spv::DecorationMax;
|
||||||
builder.addDecoration(id, decoration);
|
builder.addDecoration(id, decoration);
|
||||||
if (decoration != spv::DecorationMax) {
|
if (decoration != spv::DecorationMax) {
|
||||||
|
builder.addCapability(spv::CapabilitySampleMaskOverrideCoverageNV);
|
||||||
builder.addExtension(spv::E_SPV_NV_sample_mask_override_coverage);
|
builder.addExtension(spv::E_SPV_NV_sample_mask_override_coverage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -8090,11 +8272,14 @@ void GlslangToSpv(const TIntermediate& intermediate, std::vector<unsigned int>&
|
|||||||
#if ENABLE_OPT
|
#if ENABLE_OPT
|
||||||
// If from HLSL, run spirv-opt to "legalize" the SPIR-V for Vulkan
|
// If from HLSL, run spirv-opt to "legalize" the SPIR-V for Vulkan
|
||||||
// eg. forward and remove memory writes of opaque types.
|
// eg. forward and remove memory writes of opaque types.
|
||||||
if ((intermediate.getSource() == EShSourceHlsl || options->optimizeSize) && !options->disableOptimizer)
|
bool prelegalization = intermediate.getSource() == EShSourceHlsl;
|
||||||
|
if ((intermediate.getSource() == EShSourceHlsl || options->optimizeSize) && !options->disableOptimizer) {
|
||||||
SpirvToolsLegalize(intermediate, spirv, logger, options);
|
SpirvToolsLegalize(intermediate, spirv, logger, options);
|
||||||
|
prelegalization = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (options->validate)
|
if (options->validate)
|
||||||
SpirvToolsValidate(intermediate, spirv, logger);
|
SpirvToolsValidate(intermediate, spirv, logger, prelegalization);
|
||||||
|
|
||||||
if (options->disassemble)
|
if (options->disassemble)
|
||||||
SpirvToolsDisassemble(std::cout, spirv);
|
SpirvToolsDisassemble(std::cout, spirv);
|
||||||
|
|||||||
@ -195,7 +195,7 @@ private:
|
|||||||
// Header access & set methods
|
// Header access & set methods
|
||||||
spirword_t magic() const { return spv[0]; } // return magic number
|
spirword_t magic() const { return spv[0]; } // return magic number
|
||||||
spirword_t bound() const { return spv[3]; } // return Id bound from header
|
spirword_t bound() const { return spv[3]; } // return Id bound from header
|
||||||
spirword_t bound(spirword_t b) { return spv[3] = b; };
|
spirword_t bound(spirword_t b) { return spv[3] = b; }
|
||||||
spirword_t genmagic() const { return spv[2]; } // generator magic
|
spirword_t genmagic() const { return spv[2]; } // generator magic
|
||||||
spirword_t genmagic(spirword_t m) { return spv[2] = m; }
|
spirword_t genmagic(spirword_t m) { return spv[2] = m; }
|
||||||
spirword_t schemaNum() const { return spv[4]; } // schema number from header
|
spirword_t schemaNum() const { return spv[4]; } // schema number from header
|
||||||
|
|||||||
@ -103,7 +103,7 @@ void SpirvToolsDisassemble(std::ostream& out, const std::vector<unsigned int>& s
|
|||||||
|
|
||||||
// Apply the SPIRV-Tools validator to generated SPIR-V.
|
// Apply the SPIRV-Tools validator to generated SPIR-V.
|
||||||
void SpirvToolsValidate(const glslang::TIntermediate& intermediate, std::vector<unsigned int>& spirv,
|
void SpirvToolsValidate(const glslang::TIntermediate& intermediate, std::vector<unsigned int>& spirv,
|
||||||
spv::SpvBuildLogger* logger)
|
spv::SpvBuildLogger* logger, bool prelegalization)
|
||||||
{
|
{
|
||||||
// validate
|
// validate
|
||||||
spv_context context = spvContextCreate(MapToSpirvToolsEnv(intermediate.getSpv(), logger));
|
spv_context context = spvContextCreate(MapToSpirvToolsEnv(intermediate.getSpv(), logger));
|
||||||
@ -111,6 +111,7 @@ void SpirvToolsValidate(const glslang::TIntermediate& intermediate, std::vector<
|
|||||||
spv_diagnostic diagnostic = nullptr;
|
spv_diagnostic diagnostic = nullptr;
|
||||||
spv_validator_options options = spvValidatorOptionsCreate();
|
spv_validator_options options = spvValidatorOptionsCreate();
|
||||||
spvValidatorOptionsSetRelaxBlockLayout(options, intermediate.usingHlslOffsets());
|
spvValidatorOptionsSetRelaxBlockLayout(options, intermediate.usingHlslOffsets());
|
||||||
|
spvValidatorOptionsSetBeforeHlslLegalization(options, prelegalization);
|
||||||
spvValidateWithOptions(context, options, &binary, &diagnostic);
|
spvValidateWithOptions(context, options, &binary, &diagnostic);
|
||||||
|
|
||||||
// report
|
// report
|
||||||
|
|||||||
@ -66,7 +66,7 @@ void SpirvToolsDisassemble(std::ostream& out, const std::vector<unsigned int>& s
|
|||||||
|
|
||||||
// Apply the SPIRV-Tools validator to generated SPIR-V.
|
// Apply the SPIRV-Tools validator to generated SPIR-V.
|
||||||
void SpirvToolsValidate(const glslang::TIntermediate& intermediate, std::vector<unsigned int>& spirv,
|
void SpirvToolsValidate(const glslang::TIntermediate& intermediate, std::vector<unsigned int>& spirv,
|
||||||
spv::SpvBuildLogger*);
|
spv::SpvBuildLogger*, bool prelegalization);
|
||||||
|
|
||||||
// Apply the SPIRV-Tools optimizer to generated SPIR-V, for the purpose of
|
// Apply the SPIRV-Tools optimizer to generated SPIR-V, for the purpose of
|
||||||
// legalizing HLSL SPIR-V.
|
// legalizing HLSL SPIR-V.
|
||||||
|
|||||||
@ -648,6 +648,9 @@ static void GLSLstd450GetDebugNames(const char** names)
|
|||||||
names[GLSLstd450InterpolateAtCentroid] = "InterpolateAtCentroid";
|
names[GLSLstd450InterpolateAtCentroid] = "InterpolateAtCentroid";
|
||||||
names[GLSLstd450InterpolateAtSample] = "InterpolateAtSample";
|
names[GLSLstd450InterpolateAtSample] = "InterpolateAtSample";
|
||||||
names[GLSLstd450InterpolateAtOffset] = "InterpolateAtOffset";
|
names[GLSLstd450InterpolateAtOffset] = "InterpolateAtOffset";
|
||||||
|
names[GLSLstd450NMin] = "NMin";
|
||||||
|
names[GLSLstd450NMax] = "NMax";
|
||||||
|
names[GLSLstd450NClamp] = "NClamp";
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef AMD_EXTENSIONS
|
#ifdef AMD_EXTENSIONS
|
||||||
@ -731,6 +734,7 @@ static const char* GLSLextNVGetDebugNames(const char* name, unsigned entrypoint)
|
|||||||
case CapabilityFragmentBarycentricNV: return "FragmentBarycentricNV";
|
case CapabilityFragmentBarycentricNV: return "FragmentBarycentricNV";
|
||||||
case CapabilityMeshShadingNV: return "MeshShadingNV";
|
case CapabilityMeshShadingNV: return "MeshShadingNV";
|
||||||
case CapabilityImageFootprintNV: return "ImageFootprintNV";
|
case CapabilityImageFootprintNV: return "ImageFootprintNV";
|
||||||
|
case CapabilitySampleMaskOverrideCoverageNV:return "SampleMaskOverrideCoverageNV";
|
||||||
|
|
||||||
// NV Decorations
|
// NV Decorations
|
||||||
case DecorationOverrideCoverageNV: return "OverrideCoverageNV";
|
case DecorationOverrideCoverageNV: return "OverrideCoverageNV";
|
||||||
|
|||||||
@ -423,6 +423,10 @@ const char* BuiltInString(int builtIn)
|
|||||||
case BuiltInMeshViewCountNV: return "MeshViewCountNV";
|
case BuiltInMeshViewCountNV: return "MeshViewCountNV";
|
||||||
case BuiltInMeshViewIndicesNV: return "MeshViewIndicesNV";
|
case BuiltInMeshViewIndicesNV: return "MeshViewIndicesNV";
|
||||||
#endif
|
#endif
|
||||||
|
case BuiltInWarpsPerSMNV: return "WarpsPerSMNV";
|
||||||
|
case BuiltInSMCountNV: return "SMCountNV";
|
||||||
|
case BuiltInWarpIDNV: return "WarpIDNV";
|
||||||
|
case BuiltInSMIDNV: return "SMIDNV";
|
||||||
|
|
||||||
default: return "Bad";
|
default: return "Bad";
|
||||||
}
|
}
|
||||||
@ -922,6 +926,7 @@ const char* CapabilityString(int info)
|
|||||||
case CapabilityMeshShadingNV: return "MeshShadingNV";
|
case CapabilityMeshShadingNV: return "MeshShadingNV";
|
||||||
case CapabilityImageFootprintNV: return "ImageFootprintNV";
|
case CapabilityImageFootprintNV: return "ImageFootprintNV";
|
||||||
// case CapabilityShadingRateNV: return "ShadingRateNV"; // superseded by FragmentDensityEXT
|
// case CapabilityShadingRateNV: return "ShadingRateNV"; // superseded by FragmentDensityEXT
|
||||||
|
case CapabilitySampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV";
|
||||||
#endif
|
#endif
|
||||||
case CapabilityFragmentDensityEXT: return "FragmentDensityEXT";
|
case CapabilityFragmentDensityEXT: return "FragmentDensityEXT";
|
||||||
|
|
||||||
@ -948,11 +953,15 @@ const char* CapabilityString(int info)
|
|||||||
case CapabilityVariablePointers: return "VariablePointers";
|
case CapabilityVariablePointers: return "VariablePointers";
|
||||||
|
|
||||||
case CapabilityCooperativeMatrixNV: return "CooperativeMatrixNV";
|
case CapabilityCooperativeMatrixNV: return "CooperativeMatrixNV";
|
||||||
|
case CapabilityShaderSMBuiltinsNV: return "ShaderSMBuiltinsNV";
|
||||||
|
|
||||||
case CapabilityFragmentShaderSampleInterlockEXT: return "CapabilityFragmentShaderSampleInterlockEXT";
|
case CapabilityFragmentShaderSampleInterlockEXT: return "CapabilityFragmentShaderSampleInterlockEXT";
|
||||||
case CapabilityFragmentShaderPixelInterlockEXT: return "CapabilityFragmentShaderPixelInterlockEXT";
|
case CapabilityFragmentShaderPixelInterlockEXT: return "CapabilityFragmentShaderPixelInterlockEXT";
|
||||||
case CapabilityFragmentShaderShadingRateInterlockEXT: return "CapabilityFragmentShaderShadingRateInterlockEXT";
|
case CapabilityFragmentShaderShadingRateInterlockEXT: return "CapabilityFragmentShaderShadingRateInterlockEXT";
|
||||||
|
|
||||||
|
case CapabilityDemoteToHelperInvocationEXT: return "DemoteToHelperInvocationEXT";
|
||||||
|
case CapabilityShaderClockKHR: return "ShaderClockKHR";
|
||||||
|
|
||||||
default: return "Bad";
|
default: return "Bad";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1342,6 +1351,8 @@ const char* OpcodeString(int op)
|
|||||||
case 5012: return "OpFragmentFetchAMD";
|
case 5012: return "OpFragmentFetchAMD";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
case OpReadClockKHR: return "OpReadClockKHR";
|
||||||
|
|
||||||
case OpDecorateStringGOOGLE: return "OpDecorateStringGOOGLE";
|
case OpDecorateStringGOOGLE: return "OpDecorateStringGOOGLE";
|
||||||
case OpMemberDecorateStringGOOGLE: return "OpMemberDecorateStringGOOGLE";
|
case OpMemberDecorateStringGOOGLE: return "OpMemberDecorateStringGOOGLE";
|
||||||
|
|
||||||
@ -1362,6 +1373,8 @@ const char* OpcodeString(int op)
|
|||||||
case OpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV";
|
case OpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV";
|
||||||
case OpCooperativeMatrixMulAddNV: return "OpCooperativeMatrixMulAddNV";
|
case OpCooperativeMatrixMulAddNV: return "OpCooperativeMatrixMulAddNV";
|
||||||
case OpCooperativeMatrixLengthNV: return "OpCooperativeMatrixLengthNV";
|
case OpCooperativeMatrixLengthNV: return "OpCooperativeMatrixLengthNV";
|
||||||
|
case OpDemoteToHelperInvocationEXT: return "OpDemoteToHelperInvocationEXT";
|
||||||
|
case OpIsHelperInvocationEXT: return "OpIsHelperInvocationEXT";
|
||||||
|
|
||||||
case OpBeginInvocationInterlockEXT: return "OpBeginInvocationInterlockEXT";
|
case OpBeginInvocationInterlockEXT: return "OpBeginInvocationInterlockEXT";
|
||||||
case OpEndInvocationInterlockEXT: return "OpEndInvocationInterlockEXT";
|
case OpEndInvocationInterlockEXT: return "OpEndInvocationInterlockEXT";
|
||||||
@ -2779,6 +2792,10 @@ void Parameterize()
|
|||||||
InstructionDesc[OpCooperativeMatrixMulAddNV].operands.push(OperandId, "'C'");
|
InstructionDesc[OpCooperativeMatrixMulAddNV].operands.push(OperandId, "'C'");
|
||||||
|
|
||||||
InstructionDesc[OpCooperativeMatrixLengthNV].operands.push(OperandId, "'Type'");
|
InstructionDesc[OpCooperativeMatrixLengthNV].operands.push(OperandId, "'Type'");
|
||||||
|
|
||||||
|
InstructionDesc[OpDemoteToHelperInvocationEXT].setResultAndType(false, false);
|
||||||
|
|
||||||
|
InstructionDesc[OpReadClockKHR].operands.push(OperandScope, "'Scope'");
|
||||||
}
|
}
|
||||||
|
|
||||||
}; // end spv namespace
|
}; // end spv namespace
|
||||||
|
|||||||
@ -455,6 +455,7 @@ enum Decoration {
|
|||||||
DecorationHlslCounterBufferGOOGLE = 5634,
|
DecorationHlslCounterBufferGOOGLE = 5634,
|
||||||
DecorationHlslSemanticGOOGLE = 5635,
|
DecorationHlslSemanticGOOGLE = 5635,
|
||||||
DecorationUserSemantic = 5635,
|
DecorationUserSemantic = 5635,
|
||||||
|
DecorationUserTypeGOOGLE = 5636,
|
||||||
DecorationMax = 0x7fffffff,
|
DecorationMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -632,6 +633,7 @@ enum MemorySemanticsShift {
|
|||||||
MemorySemanticsOutputMemoryKHRShift = 12,
|
MemorySemanticsOutputMemoryKHRShift = 12,
|
||||||
MemorySemanticsMakeAvailableKHRShift = 13,
|
MemorySemanticsMakeAvailableKHRShift = 13,
|
||||||
MemorySemanticsMakeVisibleKHRShift = 14,
|
MemorySemanticsMakeVisibleKHRShift = 14,
|
||||||
|
MemorySemanticsVolatileShift = 15,
|
||||||
MemorySemanticsMax = 0x7fffffff,
|
MemorySemanticsMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -650,6 +652,7 @@ enum MemorySemanticsMask {
|
|||||||
MemorySemanticsOutputMemoryKHRMask = 0x00001000,
|
MemorySemanticsOutputMemoryKHRMask = 0x00001000,
|
||||||
MemorySemanticsMakeAvailableKHRMask = 0x00002000,
|
MemorySemanticsMakeAvailableKHRMask = 0x00002000,
|
||||||
MemorySemanticsMakeVisibleKHRMask = 0x00004000,
|
MemorySemanticsMakeVisibleKHRMask = 0x00004000,
|
||||||
|
MemorySemanticsVolatileMask = 0x00008000,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum MemoryAccessShift {
|
enum MemoryAccessShift {
|
||||||
@ -806,6 +809,7 @@ enum Capability {
|
|||||||
CapabilityFragmentMaskAMD = 5010,
|
CapabilityFragmentMaskAMD = 5010,
|
||||||
CapabilityStencilExportEXT = 5013,
|
CapabilityStencilExportEXT = 5013,
|
||||||
CapabilityImageReadWriteLodAMD = 5015,
|
CapabilityImageReadWriteLodAMD = 5015,
|
||||||
|
CapabilityShaderClockKHR = 5055,
|
||||||
CapabilitySampleMaskOverrideCoverageNV = 5249,
|
CapabilitySampleMaskOverrideCoverageNV = 5249,
|
||||||
CapabilityGeometryShaderPassthroughNV = 5251,
|
CapabilityGeometryShaderPassthroughNV = 5251,
|
||||||
CapabilityShaderViewportIndexLayerEXT = 5254,
|
CapabilityShaderViewportIndexLayerEXT = 5254,
|
||||||
@ -843,6 +847,7 @@ enum Capability {
|
|||||||
CapabilityFragmentShaderShadingRateInterlockEXT = 5372,
|
CapabilityFragmentShaderShadingRateInterlockEXT = 5372,
|
||||||
CapabilityShaderSMBuiltinsNV = 5373,
|
CapabilityShaderSMBuiltinsNV = 5373,
|
||||||
CapabilityFragmentShaderPixelInterlockEXT = 5378,
|
CapabilityFragmentShaderPixelInterlockEXT = 5378,
|
||||||
|
CapabilityDemoteToHelperInvocationEXT = 5379,
|
||||||
CapabilitySubgroupShuffleINTEL = 5568,
|
CapabilitySubgroupShuffleINTEL = 5568,
|
||||||
CapabilitySubgroupBufferBlockIOINTEL = 5569,
|
CapabilitySubgroupBufferBlockIOINTEL = 5569,
|
||||||
CapabilitySubgroupImageBlockIOINTEL = 5570,
|
CapabilitySubgroupImageBlockIOINTEL = 5570,
|
||||||
@ -1215,6 +1220,7 @@ enum Op {
|
|||||||
OpGroupSMaxNonUniformAMD = 5007,
|
OpGroupSMaxNonUniformAMD = 5007,
|
||||||
OpFragmentMaskFetchAMD = 5011,
|
OpFragmentMaskFetchAMD = 5011,
|
||||||
OpFragmentFetchAMD = 5012,
|
OpFragmentFetchAMD = 5012,
|
||||||
|
OpReadClockKHR = 5056,
|
||||||
OpImageSampleFootprintNV = 5283,
|
OpImageSampleFootprintNV = 5283,
|
||||||
OpGroupNonUniformPartitionNV = 5296,
|
OpGroupNonUniformPartitionNV = 5296,
|
||||||
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
||||||
@ -1231,6 +1237,8 @@ enum Op {
|
|||||||
OpCooperativeMatrixLengthNV = 5362,
|
OpCooperativeMatrixLengthNV = 5362,
|
||||||
OpBeginInvocationInterlockEXT = 5364,
|
OpBeginInvocationInterlockEXT = 5364,
|
||||||
OpEndInvocationInterlockEXT = 5365,
|
OpEndInvocationInterlockEXT = 5365,
|
||||||
|
OpDemoteToHelperInvocationEXT = 5380,
|
||||||
|
OpIsHelperInvocationEXT = 5381,
|
||||||
OpSubgroupShuffleINTEL = 5571,
|
OpSubgroupShuffleINTEL = 5571,
|
||||||
OpSubgroupShuffleDownINTEL = 5572,
|
OpSubgroupShuffleDownINTEL = 5572,
|
||||||
OpSubgroupShuffleUpINTEL = 5573,
|
OpSubgroupShuffleUpINTEL = 5573,
|
||||||
@ -1745,6 +1753,7 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
|
case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
|
case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
|
case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
|
case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
|
case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
|
||||||
@ -1759,6 +1768,10 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
|
case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
|
case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
|
case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
|
case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
|
case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
|
case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
@ -1903,8 +1916,6 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
|
case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
|
case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
|
case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* SPV_ENABLE_UTILITY_CODE */
|
#endif /* SPV_ENABLE_UTILITY_CODE */
|
||||||
|
|||||||
@ -436,6 +436,6 @@ __inline void Block::addInstruction(std::unique_ptr<Instruction> inst)
|
|||||||
parent.getParent().mapInstruction(raw_instruction);
|
parent.getParent().mapInstruction(raw_instruction);
|
||||||
}
|
}
|
||||||
|
|
||||||
}; // end spv namespace
|
} // end spv namespace
|
||||||
|
|
||||||
#endif // spvIR_H
|
#endif // spvIR_H
|
||||||
|
|||||||
@ -104,6 +104,7 @@ enum TOptions {
|
|||||||
bool targetHlslFunctionality1 = false;
|
bool targetHlslFunctionality1 = false;
|
||||||
bool SpvToolsDisassembler = false;
|
bool SpvToolsDisassembler = false;
|
||||||
bool SpvToolsValidate = false;
|
bool SpvToolsValidate = false;
|
||||||
|
bool NaNClamp = false;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Return codes from main/exit().
|
// Return codes from main/exit().
|
||||||
@ -522,6 +523,8 @@ void ProcessArguments(std::vector<std::unique_ptr<glslang::TWorkItem>>& workItem
|
|||||||
} else if (lowerword == "keep-uncalled" || // synonyms
|
} else if (lowerword == "keep-uncalled" || // synonyms
|
||||||
lowerword == "ku") {
|
lowerword == "ku") {
|
||||||
Options |= EOptionKeepUncalled;
|
Options |= EOptionKeepUncalled;
|
||||||
|
} else if (lowerword == "nan-clamp") {
|
||||||
|
NaNClamp = true;
|
||||||
} else if (lowerword == "no-storage-format" || // synonyms
|
} else if (lowerword == "no-storage-format" || // synonyms
|
||||||
lowerword == "nsf") {
|
lowerword == "nsf") {
|
||||||
Options |= EOptionNoStorageFormat;
|
Options |= EOptionNoStorageFormat;
|
||||||
@ -769,8 +772,17 @@ void ProcessArguments(std::vector<std::unique_ptr<glslang::TWorkItem>>& workItem
|
|||||||
Error("must provide -S when --stdin is given");
|
Error("must provide -S when --stdin is given");
|
||||||
|
|
||||||
// Make sure that -E is not specified alongside linking (which includes SPV generation)
|
// Make sure that -E is not specified alongside linking (which includes SPV generation)
|
||||||
if ((Options & EOptionOutputPreprocessed) && (Options & EOptionLinkProgram))
|
// Or things that require linking
|
||||||
Error("can't use -E when linking is selected");
|
if (Options & EOptionOutputPreprocessed) {
|
||||||
|
if (Options & EOptionLinkProgram)
|
||||||
|
Error("can't use -E when linking is selected");
|
||||||
|
if (Options & EOptionDumpReflection)
|
||||||
|
Error("reflection requires linking, which can't be used when -E when is selected");
|
||||||
|
}
|
||||||
|
|
||||||
|
// reflection requires linking
|
||||||
|
if ((Options & EOptionDumpReflection) && !(Options & EOptionLinkProgram))
|
||||||
|
Error("reflection requires -l for linking");
|
||||||
|
|
||||||
// -o or -x makes no sense if there is no target binary
|
// -o or -x makes no sense if there is no target binary
|
||||||
if (binaryFileName && (Options & EOptionSpv) == 0)
|
if (binaryFileName && (Options & EOptionSpv) == 0)
|
||||||
@ -981,6 +993,7 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
|
|||||||
|
|
||||||
shader->setFlattenUniformArrays((Options & EOptionFlattenUniformArrays) != 0);
|
shader->setFlattenUniformArrays((Options & EOptionFlattenUniformArrays) != 0);
|
||||||
shader->setNoStorageFormat((Options & EOptionNoStorageFormat) != 0);
|
shader->setNoStorageFormat((Options & EOptionNoStorageFormat) != 0);
|
||||||
|
shader->setNanMinMaxClamp(NaNClamp);
|
||||||
shader->setResourceSetBinding(baseResourceSetBinding[compUnit.stage]);
|
shader->setResourceSetBinding(baseResourceSetBinding[compUnit.stage]);
|
||||||
|
|
||||||
if (Options & EOptionHlslIoMapping)
|
if (Options & EOptionHlslIoMapping)
|
||||||
@ -1508,7 +1521,7 @@ void usage()
|
|||||||
" -l link all input files together to form a single module\n"
|
" -l link all input files together to form a single module\n"
|
||||||
" -m memory leak mode\n"
|
" -m memory leak mode\n"
|
||||||
" -o <file> save binary to <file>, requires a binary option (e.g., -V)\n"
|
" -o <file> save binary to <file>, requires a binary option (e.g., -V)\n"
|
||||||
" -q dump reflection query database\n"
|
" -q dump reflection query database; requires -l for linking\n"
|
||||||
" -r | --relaxed-errors"
|
" -r | --relaxed-errors"
|
||||||
" relaxed GLSL semantic error-checking mode\n"
|
" relaxed GLSL semantic error-checking mode\n"
|
||||||
" -s silence syntax and semantic error reporting\n"
|
" -s silence syntax and semantic error reporting\n"
|
||||||
@ -1533,9 +1546,11 @@ void usage()
|
|||||||
" works independently of source language\n"
|
" works independently of source language\n"
|
||||||
" --hlsl-iomap perform IO mapping in HLSL register space\n"
|
" --hlsl-iomap perform IO mapping in HLSL register space\n"
|
||||||
" --hlsl-enable-16bit-types allow 16-bit types in SPIR-V for HLSL\n"
|
" --hlsl-enable-16bit-types allow 16-bit types in SPIR-V for HLSL\n"
|
||||||
" --hlsl-dx9-compatible interprets sampler declarations as a texture/sampler combo like DirectX9 would."
|
" --hlsl-dx9-compatible interprets sampler declarations as a\n"
|
||||||
|
" texture/sampler combo like DirectX9 would.\n"
|
||||||
" --invert-y | --iy invert position.Y output in vertex shader\n"
|
" --invert-y | --iy invert position.Y output in vertex shader\n"
|
||||||
" --keep-uncalled | --ku don't eliminate uncalled functions\n"
|
" --keep-uncalled | --ku don't eliminate uncalled functions\n"
|
||||||
|
" --nan-clamp favor non-NaN operand in min, max, and clamp\n"
|
||||||
" --no-storage-format | --nsf use Unknown image format\n"
|
" --no-storage-format | --nsf use Unknown image format\n"
|
||||||
" --reflect-strict-array-suffix use strict array suffix rules when\n"
|
" --reflect-strict-array-suffix use strict array suffix rules when\n"
|
||||||
" reflecting\n"
|
" reflecting\n"
|
||||||
|
|||||||
@ -227,7 +227,7 @@ namespace {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (arg == "--version" || arg == "-V") {
|
else if (arg == "--version" || arg == "-V") {
|
||||||
std::cout << basename(argv[0]) << " version 0.97 " << __DATE__ << " " << __TIME__ << std::endl;
|
std::cout << basename(argv[0]) << " version 0.97" << std::endl;
|
||||||
exit(0);
|
exit(0);
|
||||||
} else if (arg == "--input" || arg == "-i") {
|
} else if (arg == "--input" || arg == "-i") {
|
||||||
// Collect input files
|
// Collect input files
|
||||||
|
|||||||
2
Test/310.frag
Normal file → Executable file
2
Test/310.frag
Normal file → Executable file
@ -58,8 +58,8 @@ void foo23()
|
|||||||
b1 = mix(b2, b3, b);
|
b1 = mix(b2, b3, b);
|
||||||
uvec3 um3 = mix(uvec3(i), uvec3(i), bvec3(b));
|
uvec3 um3 = mix(uvec3(i), uvec3(i), bvec3(b));
|
||||||
ivec4 im4 = mix(ivec4(i), ivec4(i), bvec4(b));
|
ivec4 im4 = mix(ivec4(i), ivec4(i), bvec4(b));
|
||||||
|
1 << mix(1u, 1u, false); // does not require folding
|
||||||
}
|
}
|
||||||
|
|
||||||
layout(binding=3) uniform sampler2D s1;
|
layout(binding=3) uniform sampler2D s1;
|
||||||
layout(binding=3) uniform sampler2D s2; // ERROR: overlapping bindings? Don't see that in the 310 spec.
|
layout(binding=3) uniform sampler2D s2; // ERROR: overlapping bindings? Don't see that in the 310 spec.
|
||||||
highp layout(binding=2) uniform writeonly image2D i2D;
|
highp layout(binding=2) uniform writeonly image2D i2D;
|
||||||
|
|||||||
@ -1,5 +1,17 @@
|
|||||||
#version 320 es
|
#version 320 es
|
||||||
|
|
||||||
|
float fX;
|
||||||
|
float fY;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
dFdx(fX);
|
||||||
|
dFdy(fY);
|
||||||
|
fwidth(fX);
|
||||||
|
dFdxCoarse(fX);
|
||||||
|
dFdyCoarse(fY);
|
||||||
|
fwidthCoarse(fX);
|
||||||
|
dFdxFine(fX);
|
||||||
|
dFdyFine(fY);
|
||||||
|
fwidthFine(fX);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,7 +29,6 @@ ERROR: 0:94: 'writeonly' : argument cannot drop memory qualifier when passed to
|
|||||||
ERROR: 0:97: '' : memory qualifiers cannot be used on this type
|
ERROR: 0:97: '' : memory qualifiers cannot be used on this type
|
||||||
ERROR: 0:98: '' : memory qualifiers cannot be used on this type
|
ERROR: 0:98: '' : memory qualifiers cannot be used on this type
|
||||||
ERROR: 0:109: 'format' : image formats must match
|
ERROR: 0:109: 'format' : image formats must match
|
||||||
ERROR: 0:110: 'restrict' : argument cannot drop memory qualifier when passed to formal parameter
|
|
||||||
ERROR: 0:110: 'format' : image formats must match
|
ERROR: 0:110: 'format' : image formats must match
|
||||||
ERROR: 0:111: 'format' : image formats must match
|
ERROR: 0:111: 'format' : image formats must match
|
||||||
ERROR: 0:114: 'image load-store format' : not supported with this profile: es
|
ERROR: 0:114: 'image load-store format' : not supported with this profile: es
|
||||||
@ -87,7 +86,7 @@ WARNING: 0:238: '#define' : names containing consecutive underscores are reserve
|
|||||||
ERROR: 0:244: 'gl_DeviceIndex' : required extension not requested: GL_EXT_device_group
|
ERROR: 0:244: 'gl_DeviceIndex' : required extension not requested: GL_EXT_device_group
|
||||||
ERROR: 0:245: 'gl_ViewIndex' : undeclared identifier
|
ERROR: 0:245: 'gl_ViewIndex' : undeclared identifier
|
||||||
ERROR: 0:255: 'gl_ViewIndex' : undeclared identifier
|
ERROR: 0:255: 'gl_ViewIndex' : undeclared identifier
|
||||||
ERROR: 86 compilation errors. No code generated.
|
ERROR: 85 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 310
|
Shader version: 310
|
||||||
|
|||||||
@ -337,6 +337,16 @@ ERROR: node is still EOpNull!
|
|||||||
0:60 'i' ( uniform mediump int)
|
0:60 'i' ( uniform mediump int)
|
||||||
0:60 Construct bvec4 ( temp 4-component vector of bool)
|
0:60 Construct bvec4 ( temp 4-component vector of bool)
|
||||||
0:60 'b' ( temp bool)
|
0:60 'b' ( temp bool)
|
||||||
|
0:61 left-shift ( temp int)
|
||||||
|
0:61 Constant:
|
||||||
|
0:61 1 (const int)
|
||||||
|
0:61 mix ( global uint)
|
||||||
|
0:61 Constant:
|
||||||
|
0:61 1 (const uint)
|
||||||
|
0:61 Constant:
|
||||||
|
0:61 1 (const uint)
|
||||||
|
0:61 Constant:
|
||||||
|
0:61 false (const bool)
|
||||||
0:98 Function Definition: foots( ( global void)
|
0:98 Function Definition: foots( ( global void)
|
||||||
0:98 Function Parameters:
|
0:98 Function Parameters:
|
||||||
0:100 Sequence
|
0:100 Sequence
|
||||||
|
|||||||
@ -72,8 +72,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:25 move second child to first child ( temp highp 4-component vector of float)
|
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 '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 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 unsized 1-element 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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 '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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
|
||||||
0:25 Constant:
|
0:25 Constant:
|
||||||
0:25 1 (const int)
|
0:25 1 (const int)
|
||||||
0:25 Constant:
|
0:25 Constant:
|
||||||
@ -82,8 +82,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:26 move second child to first child ( temp highp float)
|
0:26 move second child to first child ( temp highp float)
|
||||||
0:26 'ps' ( temp highp float)
|
0:26 'ps' ( temp highp float)
|
||||||
0:26 gl_PointSize: direct index for structure ( in highp float PointSize)
|
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 unsized 1-element 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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 '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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
|
||||||
0:26 Constant:
|
0:26 Constant:
|
||||||
0:26 1 (const int)
|
0:26 1 (const int)
|
||||||
0:26 Constant:
|
0:26 Constant:
|
||||||
@ -211,8 +211,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:114 move second child to first child ( temp highp float)
|
0:114 move second child to first child ( temp highp float)
|
||||||
0:114 'ps' ( temp highp float)
|
0:114 'ps' ( temp highp float)
|
||||||
0:114 gl_PointSize: direct index for structure ( in highp float PointSize)
|
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 unsized 1-element 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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 '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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
|
||||||
0:114 Constant:
|
0:114 Constant:
|
||||||
0:114 1 (const int)
|
0:114 1 (const int)
|
||||||
0:114 Constant:
|
0:114 Constant:
|
||||||
@ -442,8 +442,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:25 move second child to first child ( temp highp 4-component vector of float)
|
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 '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 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 1-element 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV 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 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
|
||||||
0:25 Constant:
|
0:25 Constant:
|
||||||
0:25 1 (const int)
|
0:25 1 (const int)
|
||||||
0:25 Constant:
|
0:25 Constant:
|
||||||
@ -452,8 +452,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:26 move second child to first child ( temp highp float)
|
0:26 move second child to first child ( temp highp float)
|
||||||
0:26 'ps' ( temp highp float)
|
0:26 'ps' ( temp highp float)
|
||||||
0:26 gl_PointSize: direct index for structure ( in highp float PointSize)
|
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 1-element 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV 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 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
|
||||||
0:26 Constant:
|
0:26 Constant:
|
||||||
0:26 1 (const int)
|
0:26 1 (const int)
|
||||||
0:26 Constant:
|
0:26 Constant:
|
||||||
|
|||||||
@ -76,8 +76,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:36 move second child to first child ( temp highp 4-component vector of float)
|
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 '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 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 unsized 1-element 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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 '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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
|
||||||
0:36 Constant:
|
0:36 Constant:
|
||||||
0:36 1 (const int)
|
0:36 1 (const int)
|
||||||
0:36 Constant:
|
0:36 Constant:
|
||||||
@ -86,8 +86,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:37 move second child to first child ( temp highp float)
|
0:37 move second child to first child ( temp highp float)
|
||||||
0:37 'ps' ( temp highp float)
|
0:37 'ps' ( temp highp float)
|
||||||
0:37 gl_PointSize: direct index for structure ( in highp float PointSize)
|
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 unsized 1-element 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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 '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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
|
||||||
0:37 Constant:
|
0:37 Constant:
|
||||||
0:37 1 (const int)
|
0:37 1 (const int)
|
||||||
0:37 Constant:
|
0:37 Constant:
|
||||||
@ -209,8 +209,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:36 move second child to first child ( temp highp 4-component vector of float)
|
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 '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 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 1-element 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV 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 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
|
||||||
0:36 Constant:
|
0:36 Constant:
|
||||||
0:36 1 (const int)
|
0:36 1 (const int)
|
||||||
0:36 Constant:
|
0:36 Constant:
|
||||||
@ -219,8 +219,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:37 move second child to first child ( temp highp float)
|
0:37 move second child to first child ( temp highp float)
|
||||||
0:37 'ps' ( temp highp float)
|
0:37 'ps' ( temp highp float)
|
||||||
0:37 gl_PointSize: direct index for structure ( in highp float PointSize)
|
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 1-element 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV 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 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
|
||||||
0:37 Constant:
|
0:37 Constant:
|
||||||
0:37 1 (const int)
|
0:37 1 (const int)
|
||||||
0:37 Constant:
|
0:37 Constant:
|
||||||
|
|||||||
@ -1,10 +1,43 @@
|
|||||||
320.comp
|
320.comp
|
||||||
|
ERROR: 0:8: 'dFdx' : required extension not requested: GL_NV_compute_shader_derivatives
|
||||||
|
ERROR: 0:9: 'dFdy' : required extension not requested: GL_NV_compute_shader_derivatives
|
||||||
|
ERROR: 0:10: 'fwidth' : required extension not requested: GL_NV_compute_shader_derivatives
|
||||||
|
ERROR: 0:11: 'dFdxCoarse' : required extension not requested: GL_NV_compute_shader_derivatives
|
||||||
|
ERROR: 0:12: 'dFdyCoarse' : required extension not requested: GL_NV_compute_shader_derivatives
|
||||||
|
ERROR: 0:13: 'fwidthCoarse' : required extension not requested: GL_NV_compute_shader_derivatives
|
||||||
|
ERROR: 0:14: 'dFdxFine' : required extension not requested: GL_NV_compute_shader_derivatives
|
||||||
|
ERROR: 0:15: 'dFdyFine' : required extension not requested: GL_NV_compute_shader_derivatives
|
||||||
|
ERROR: 0:16: 'fwidthFine' : required extension not requested: GL_NV_compute_shader_derivatives
|
||||||
|
ERROR: 9 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 320
|
Shader version: 320
|
||||||
local_size = (1, 1, 1)
|
local_size = (1, 1, 1)
|
||||||
0:? Sequence
|
ERROR: node is still EOpNull!
|
||||||
0:3 Function Definition: main( ( global void)
|
0:6 Function Definition: main( ( global void)
|
||||||
0:3 Function Parameters:
|
0:6 Function Parameters:
|
||||||
|
0:8 Sequence
|
||||||
|
0:8 dPdx ( global highp float)
|
||||||
|
0:8 'fX' ( global highp float)
|
||||||
|
0:9 dPdy ( global highp float)
|
||||||
|
0:9 'fY' ( global highp float)
|
||||||
|
0:10 fwidth ( global highp float)
|
||||||
|
0:10 'fX' ( global highp float)
|
||||||
|
0:11 dPdxCoarse ( global highp float)
|
||||||
|
0:11 'fX' ( global highp float)
|
||||||
|
0:12 dPdyCoarse ( global highp float)
|
||||||
|
0:12 'fY' ( global highp float)
|
||||||
|
0:13 fwidthCoarse ( global highp float)
|
||||||
|
0:13 'fX' ( global highp float)
|
||||||
|
0:14 dPdxFine ( global highp float)
|
||||||
|
0:14 'fX' ( global highp float)
|
||||||
|
0:15 dPdyFine ( global highp float)
|
||||||
|
0:15 'fY' ( global highp float)
|
||||||
|
0:16 fwidthFine ( global highp float)
|
||||||
|
0:16 'fX' ( global highp float)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
|
0:? 'fX' ( global highp float)
|
||||||
|
0:? 'fY' ( global highp float)
|
||||||
|
|
||||||
|
|
||||||
Linked compute stage:
|
Linked compute stage:
|
||||||
@ -12,8 +45,29 @@ Linked compute stage:
|
|||||||
|
|
||||||
Shader version: 320
|
Shader version: 320
|
||||||
local_size = (1, 1, 1)
|
local_size = (1, 1, 1)
|
||||||
0:? Sequence
|
ERROR: node is still EOpNull!
|
||||||
0:3 Function Definition: main( ( global void)
|
0:6 Function Definition: main( ( global void)
|
||||||
0:3 Function Parameters:
|
0:6 Function Parameters:
|
||||||
|
0:8 Sequence
|
||||||
|
0:8 dPdx ( global highp float)
|
||||||
|
0:8 'fX' ( global highp float)
|
||||||
|
0:9 dPdy ( global highp float)
|
||||||
|
0:9 'fY' ( global highp float)
|
||||||
|
0:10 fwidth ( global highp float)
|
||||||
|
0:10 'fX' ( global highp float)
|
||||||
|
0:11 dPdxCoarse ( global highp float)
|
||||||
|
0:11 'fX' ( global highp float)
|
||||||
|
0:12 dPdyCoarse ( global highp float)
|
||||||
|
0:12 'fY' ( global highp float)
|
||||||
|
0:13 fwidthCoarse ( global highp float)
|
||||||
|
0:13 'fX' ( global highp float)
|
||||||
|
0:14 dPdxFine ( global highp float)
|
||||||
|
0:14 'fX' ( global highp float)
|
||||||
|
0:15 dPdyFine ( global highp float)
|
||||||
|
0:15 'fY' ( global highp float)
|
||||||
|
0:16 fwidthFine ( global highp float)
|
||||||
|
0:16 'fX' ( global highp float)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
|
0:? 'fX' ( global highp float)
|
||||||
|
0:? 'fY' ( global highp float)
|
||||||
|
|
||||||
|
|||||||
@ -66,8 +66,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:23 move second child to first child ( temp highp 4-component vector of float)
|
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 '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 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 unsized 1-element 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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 '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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
|
||||||
0:23 Constant:
|
0:23 Constant:
|
||||||
0:23 1 (const int)
|
0:23 1 (const int)
|
||||||
0:23 Constant:
|
0:23 Constant:
|
||||||
@ -76,8 +76,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:24 move second child to first child ( temp highp float)
|
0:24 move second child to first child ( temp highp float)
|
||||||
0:24 'ps' ( temp highp float)
|
0:24 'ps' ( temp highp float)
|
||||||
0:24 gl_PointSize: direct index for structure ( in highp float PointSize)
|
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 unsized 1-element 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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 '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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
|
||||||
0:24 Constant:
|
0:24 Constant:
|
||||||
0:24 1 (const int)
|
0:24 1 (const int)
|
||||||
0:24 Constant:
|
0:24 Constant:
|
||||||
@ -196,8 +196,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:104 move second child to first child ( temp highp float)
|
0:104 move second child to first child ( temp highp float)
|
||||||
0:104 'ps' ( temp highp float)
|
0:104 'ps' ( temp highp float)
|
||||||
0:104 gl_PointSize: direct index for structure ( in highp float PointSize)
|
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 unsized 1-element 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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 '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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
|
||||||
0:104 Constant:
|
0:104 Constant:
|
||||||
0:104 1 (const int)
|
0:104 1 (const int)
|
||||||
0:104 Constant:
|
0:104 Constant:
|
||||||
@ -424,8 +424,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:23 move second child to first child ( temp highp 4-component vector of float)
|
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 '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 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 1-element 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV 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 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
|
||||||
0:23 Constant:
|
0:23 Constant:
|
||||||
0:23 1 (const int)
|
0:23 1 (const int)
|
||||||
0:23 Constant:
|
0:23 Constant:
|
||||||
@ -434,8 +434,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:24 move second child to first child ( temp highp float)
|
0:24 move second child to first child ( temp highp float)
|
||||||
0:24 'ps' ( temp highp float)
|
0:24 'ps' ( temp highp float)
|
||||||
0:24 gl_PointSize: direct index for structure ( in highp float PointSize)
|
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 1-element 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV 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 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
|
||||||
0:24 Constant:
|
0:24 Constant:
|
||||||
0:24 1 (const int)
|
0:24 1 (const int)
|
||||||
0:24 Constant:
|
0:24 Constant:
|
||||||
|
|||||||
@ -66,8 +66,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:32 move second child to first child ( temp highp 4-component vector of float)
|
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 '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 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 unsized 1-element 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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 '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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
|
||||||
0:32 Constant:
|
0:32 Constant:
|
||||||
0:32 1 (const int)
|
0:32 1 (const int)
|
||||||
0:32 Constant:
|
0:32 Constant:
|
||||||
@ -76,8 +76,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:33 move second child to first child ( temp highp float)
|
0:33 move second child to first child ( temp highp float)
|
||||||
0:33 'ps' ( temp highp float)
|
0:33 'ps' ( temp highp float)
|
||||||
0:33 gl_PointSize: direct index for structure ( in highp float PointSize)
|
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 unsized 1-element 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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV 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 '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 SecondaryPositionNV gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
|
||||||
0:33 Constant:
|
0:33 Constant:
|
||||||
0:33 1 (const int)
|
0:33 1 (const int)
|
||||||
0:33 Constant:
|
0:33 Constant:
|
||||||
@ -184,8 +184,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:32 move second child to first child ( temp highp 4-component vector of float)
|
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 '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 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 1-element 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV 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 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
|
||||||
0:32 Constant:
|
0:32 Constant:
|
||||||
0:32 1 (const int)
|
0:32 1 (const int)
|
||||||
0:32 Constant:
|
0:32 Constant:
|
||||||
@ -194,8 +194,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:33 move second child to first child ( temp highp float)
|
0:33 move second child to first child ( temp highp float)
|
||||||
0:33 'ps' ( temp highp float)
|
0:33 'ps' ( temp highp float)
|
||||||
0:33 gl_PointSize: direct index for structure ( in highp float PointSize)
|
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 1-element 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV 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 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 SecondaryPositionNV gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
|
||||||
0:33 Constant:
|
0:33 Constant:
|
||||||
0:33 1 (const int)
|
0:33 1 (const int)
|
||||||
0:33 Constant:
|
0:33 Constant:
|
||||||
|
|||||||
@ -9,17 +9,17 @@ local_size = (1, 1, 1)
|
|||||||
0:? 'bool_init' ( const bool)
|
0:? 'bool_init' ( const bool)
|
||||||
0:? true (const bool)
|
0:? true (const bool)
|
||||||
0:? 'int8_t_init' ( const int8_t)
|
0:? 'int8_t_init' ( const int8_t)
|
||||||
0:? -1 (const int)
|
0:? -1 (const int8_t)
|
||||||
0:? 'int16_t_init' ( const int16_t)
|
0:? 'int16_t_init' ( const int16_t)
|
||||||
0:? -2 (const int)
|
0:? -2 (const int16_t)
|
||||||
0:? 'int32_t_init' ( const int)
|
0:? 'int32_t_init' ( const int)
|
||||||
0:? -3 (const int)
|
0:? -3 (const int)
|
||||||
0:? 'int64_t_init' ( const int64_t)
|
0:? 'int64_t_init' ( const int64_t)
|
||||||
0:? -4 (const int64_t)
|
0:? -4 (const int64_t)
|
||||||
0:? 'uint8_t_init' ( const uint8_t)
|
0:? 'uint8_t_init' ( const uint8_t)
|
||||||
0:? 1 (const int)
|
0:? 1 (const uint8_t)
|
||||||
0:? 'uint16_t_init' ( const uint16_t)
|
0:? 'uint16_t_init' ( const uint16_t)
|
||||||
0:? 2 (const int)
|
0:? 2 (const uint16_t)
|
||||||
0:? 'uint32_t_init' ( const uint)
|
0:? 'uint32_t_init' ( const uint)
|
||||||
0:? 3 (const uint)
|
0:? 3 (const uint)
|
||||||
0:? 'uint64_t_init' ( const uint64_t)
|
0:? 'uint64_t_init' ( const uint64_t)
|
||||||
@ -33,17 +33,17 @@ local_size = (1, 1, 1)
|
|||||||
0:? 'bool_to_bool' ( const bool)
|
0:? 'bool_to_bool' ( const bool)
|
||||||
0:? true (const bool)
|
0:? true (const bool)
|
||||||
0:? 'int8_t_to_bool' ( const bool)
|
0:? 'int8_t_to_bool' ( const bool)
|
||||||
0:? -1 (const int)
|
0:? true (const bool)
|
||||||
0:? 'int16_t_to_bool' ( const bool)
|
0:? 'int16_t_to_bool' ( const bool)
|
||||||
0:? -2 (const int)
|
0:? true (const bool)
|
||||||
0:? 'int32_t_to_bool' ( const bool)
|
0:? 'int32_t_to_bool' ( const bool)
|
||||||
0:? true (const bool)
|
0:? true (const bool)
|
||||||
0:? 'int64_t_to_bool' ( const bool)
|
0:? 'int64_t_to_bool' ( const bool)
|
||||||
0:? true (const bool)
|
0:? true (const bool)
|
||||||
0:? 'uint8_t_to_bool' ( const bool)
|
0:? 'uint8_t_to_bool' ( const bool)
|
||||||
0:? 1 (const int)
|
0:? true (const bool)
|
||||||
0:? 'uint16_t_to_bool' ( const bool)
|
0:? 'uint16_t_to_bool' ( const bool)
|
||||||
0:? 2 (const int)
|
0:? true (const bool)
|
||||||
0:? 'uint32_t_to_bool' ( const bool)
|
0:? 'uint32_t_to_bool' ( const bool)
|
||||||
0:? true (const bool)
|
0:? true (const bool)
|
||||||
0:? 'uint64_t_to_bool' ( const bool)
|
0:? 'uint64_t_to_bool' ( const bool)
|
||||||
@ -55,53 +55,53 @@ local_size = (1, 1, 1)
|
|||||||
0:? 'float64_t_to_bool' ( const bool)
|
0:? 'float64_t_to_bool' ( const bool)
|
||||||
0:? true (const bool)
|
0:? true (const bool)
|
||||||
0:? 'bool_to_int8_t' ( const int8_t)
|
0:? 'bool_to_int8_t' ( const int8_t)
|
||||||
0:? true (const bool)
|
0:? 1 (const int8_t)
|
||||||
0:? 'int8_t_to_int8_t' ( const int8_t)
|
0:? 'int8_t_to_int8_t' ( const int8_t)
|
||||||
0:? -1 (const int)
|
0:? -1 (const int8_t)
|
||||||
0:? 'int16_t_to_int8_t' ( const int8_t)
|
0:? 'int16_t_to_int8_t' ( const int8_t)
|
||||||
0:? -2 (const int)
|
0:? -2 (const int8_t)
|
||||||
0:? 'int32_t_to_int8_t' ( const int8_t)
|
0:? 'int32_t_to_int8_t' ( const int8_t)
|
||||||
0:? -3 (const int)
|
0:? -3 (const int8_t)
|
||||||
0:? 'int64_t_to_int8_t' ( const int8_t)
|
0:? 'int64_t_to_int8_t' ( const int8_t)
|
||||||
0:? -4 (const int64_t)
|
0:? -4 (const int8_t)
|
||||||
0:? 'uint8_t_to_int8_t' ( const int8_t)
|
0:? 'uint8_t_to_int8_t' ( const int8_t)
|
||||||
0:? 1 (const int)
|
0:? 1 (const int8_t)
|
||||||
0:? 'uint16_t_to_int8_t' ( const int8_t)
|
0:? 'uint16_t_to_int8_t' ( const int8_t)
|
||||||
0:? 2 (const int)
|
0:? 2 (const int8_t)
|
||||||
0:? 'uint32_t_to_int8_t' ( const int8_t)
|
0:? 'uint32_t_to_int8_t' ( const int8_t)
|
||||||
0:? 3 (const uint)
|
0:? 3 (const int8_t)
|
||||||
0:? 'uint64_t_to_int8_t' ( const int8_t)
|
0:? 'uint64_t_to_int8_t' ( const int8_t)
|
||||||
0:? 4 (const uint64_t)
|
0:? 4 (const int8_t)
|
||||||
0:? 'float16_t_to_int8_t' ( const int8_t)
|
0:? 'float16_t_to_int8_t' ( const int8_t)
|
||||||
0:? 42.000000
|
0:? 42 (const int8_t)
|
||||||
0:? 'float32_t_to_int8_t' ( const int8_t)
|
0:? 'float32_t_to_int8_t' ( const int8_t)
|
||||||
0:? 13.000000
|
0:? 13 (const int8_t)
|
||||||
0:? 'float64_t_to_int8_t' ( const int8_t)
|
0:? 'float64_t_to_int8_t' ( const int8_t)
|
||||||
0:? -4.000000
|
0:? -4 (const int8_t)
|
||||||
0:? 'bool_to_int16_t' ( const int16_t)
|
0:? 'bool_to_int16_t' ( const int16_t)
|
||||||
0:? true (const bool)
|
0:? 1 (const int16_t)
|
||||||
0:? 'int8_t_to_int16_t' ( const int16_t)
|
0:? 'int8_t_to_int16_t' ( const int16_t)
|
||||||
0:? -1 (const int)
|
0:? -1 (const int16_t)
|
||||||
0:? 'int16_t_to_int16_t' ( const int16_t)
|
0:? 'int16_t_to_int16_t' ( const int16_t)
|
||||||
0:? -2 (const int)
|
0:? -2 (const int16_t)
|
||||||
0:? 'int32_t_to_int16_t' ( const int16_t)
|
0:? 'int32_t_to_int16_t' ( const int16_t)
|
||||||
0:? -3 (const int)
|
0:? -3 (const int16_t)
|
||||||
0:? 'int64_t_to_int16_t' ( const int16_t)
|
0:? 'int64_t_to_int16_t' ( const int16_t)
|
||||||
0:? -4 (const int64_t)
|
0:? -4 (const int16_t)
|
||||||
0:? 'uint8_t_to_int16_t' ( const int16_t)
|
0:? 'uint8_t_to_int16_t' ( const int16_t)
|
||||||
0:? 1 (const int)
|
0:? 1 (const int16_t)
|
||||||
0:? 'uint16_t_to_int16_t' ( const int16_t)
|
0:? 'uint16_t_to_int16_t' ( const int16_t)
|
||||||
0:? 2 (const int)
|
0:? 2 (const int16_t)
|
||||||
0:? 'uint32_t_to_int16_t' ( const int16_t)
|
0:? 'uint32_t_to_int16_t' ( const int16_t)
|
||||||
0:? 3 (const uint)
|
0:? 3 (const int16_t)
|
||||||
0:? 'uint64_t_to_int16_t' ( const int16_t)
|
0:? 'uint64_t_to_int16_t' ( const int16_t)
|
||||||
0:? 4 (const uint64_t)
|
0:? 4 (const int16_t)
|
||||||
0:? 'float16_t_to_int16_t' ( const int16_t)
|
0:? 'float16_t_to_int16_t' ( const int16_t)
|
||||||
0:? 42.000000
|
0:? 42 (const int16_t)
|
||||||
0:? 'float32_t_to_int16_t' ( const int16_t)
|
0:? 'float32_t_to_int16_t' ( const int16_t)
|
||||||
0:? 13.000000
|
0:? 13 (const int16_t)
|
||||||
0:? 'float64_t_to_int16_t' ( const int16_t)
|
0:? 'float64_t_to_int16_t' ( const int16_t)
|
||||||
0:? -4.000000
|
0:? -4 (const int16_t)
|
||||||
0:? 'bool_to_int32_t' ( const int)
|
0:? 'bool_to_int32_t' ( const int)
|
||||||
0:? 1 (const int)
|
0:? 1 (const int)
|
||||||
0:? 'int8_t_to_int32_t' ( const int)
|
0:? 'int8_t_to_int32_t' ( const int)
|
||||||
@ -129,17 +129,17 @@ local_size = (1, 1, 1)
|
|||||||
0:? 'bool_to_int64_t' ( const int64_t)
|
0:? 'bool_to_int64_t' ( const int64_t)
|
||||||
0:? 1 (const int64_t)
|
0:? 1 (const int64_t)
|
||||||
0:? 'int8_t_to_int64_t' ( const int64_t)
|
0:? 'int8_t_to_int64_t' ( const int64_t)
|
||||||
0:? -1 (const int)
|
0:? -1 (const int64_t)
|
||||||
0:? 'int16_t_to_int64_t' ( const int64_t)
|
0:? 'int16_t_to_int64_t' ( const int64_t)
|
||||||
0:? -2 (const int)
|
0:? -2 (const int64_t)
|
||||||
0:? 'int32_t_to_int64_t' ( const int64_t)
|
0:? 'int32_t_to_int64_t' ( const int64_t)
|
||||||
0:? -3 (const int64_t)
|
0:? -3 (const int64_t)
|
||||||
0:? 'int64_t_to_int64_t' ( const int64_t)
|
0:? 'int64_t_to_int64_t' ( const int64_t)
|
||||||
0:? -4 (const int64_t)
|
0:? -4 (const int64_t)
|
||||||
0:? 'uint8_t_to_int64_t' ( const int64_t)
|
0:? 'uint8_t_to_int64_t' ( const int64_t)
|
||||||
0:? 1 (const int)
|
0:? 1 (const int64_t)
|
||||||
0:? 'uint16_t_to_int64_t' ( const int64_t)
|
0:? 'uint16_t_to_int64_t' ( const int64_t)
|
||||||
0:? 2 (const int)
|
0:? 2 (const int64_t)
|
||||||
0:? 'uint32_t_to_int64_t' ( const int64_t)
|
0:? 'uint32_t_to_int64_t' ( const int64_t)
|
||||||
0:? 3 (const int64_t)
|
0:? 3 (const int64_t)
|
||||||
0:? 'uint64_t_to_int64_t' ( const int64_t)
|
0:? 'uint64_t_to_int64_t' ( const int64_t)
|
||||||
@ -151,67 +151,67 @@ local_size = (1, 1, 1)
|
|||||||
0:? 'float64_t_to_int64_t' ( const int64_t)
|
0:? 'float64_t_to_int64_t' ( const int64_t)
|
||||||
0:? -4 (const int64_t)
|
0:? -4 (const int64_t)
|
||||||
0:? 'bool_to_uint8_t' ( const uint8_t)
|
0:? 'bool_to_uint8_t' ( const uint8_t)
|
||||||
0:? true (const bool)
|
0:? 1 (const uint8_t)
|
||||||
0:? 'int8_t_to_uint8_t' ( const uint8_t)
|
0:? 'int8_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? -1 (const int)
|
0:? 255 (const uint8_t)
|
||||||
0:? 'int16_t_to_uint8_t' ( const uint8_t)
|
0:? 'int16_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? -2 (const int)
|
0:? 254 (const uint8_t)
|
||||||
0:? 'int32_t_to_uint8_t' ( const uint8_t)
|
0:? 'int32_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? -3 (const int)
|
0:? 253 (const uint8_t)
|
||||||
0:? 'int64_t_to_uint8_t' ( const uint8_t)
|
0:? 'int64_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? -4 (const int64_t)
|
0:? 252 (const uint8_t)
|
||||||
0:? 'uint8_t_to_uint8_t' ( const uint8_t)
|
0:? 'uint8_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? 1 (const int)
|
0:? 1 (const uint8_t)
|
||||||
0:? 'uint16_t_to_uint8_t' ( const uint8_t)
|
0:? 'uint16_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? 2 (const int)
|
0:? 2 (const uint8_t)
|
||||||
0:? 'uint32_t_to_uint8_t' ( const uint8_t)
|
0:? 'uint32_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? 3 (const uint)
|
0:? 3 (const uint8_t)
|
||||||
0:? 'uint64_t_to_uint8_t' ( const uint8_t)
|
0:? 'uint64_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? 4 (const uint64_t)
|
0:? 4 (const uint8_t)
|
||||||
0:? 'float16_t_to_uint8_t' ( const uint8_t)
|
0:? 'float16_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? 42.000000
|
0:? 42 (const uint8_t)
|
||||||
0:? 'float32_t_to_uint8_t' ( const uint8_t)
|
0:? 'float32_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? 13.000000
|
0:? 13 (const uint8_t)
|
||||||
0:? 'float64_t_to_uint8_t' ( const uint8_t)
|
0:? 'float64_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? -4.000000
|
0:? 252 (const uint8_t)
|
||||||
0:? 'bool_to_uint16_t' ( const uint16_t)
|
0:? 'bool_to_uint16_t' ( const uint16_t)
|
||||||
0:? true (const bool)
|
0:? 1 (const uint16_t)
|
||||||
0:? 'int8_t_to_uint16_t' ( const uint16_t)
|
0:? 'int8_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? -1 (const int)
|
0:? 65535 (const uint16_t)
|
||||||
0:? 'int16_t_to_uint16_t' ( const uint16_t)
|
0:? 'int16_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? -2 (const int)
|
0:? 65534 (const uint16_t)
|
||||||
0:? 'int32_t_to_uint16_t' ( const uint16_t)
|
0:? 'int32_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? -3 (const int)
|
0:? 65533 (const uint16_t)
|
||||||
0:? 'int64_t_to_uint16_t' ( const uint16_t)
|
0:? 'int64_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? -4 (const int64_t)
|
0:? 65532 (const uint16_t)
|
||||||
0:? 'uint8_t_to_uint16_t' ( const uint16_t)
|
0:? 'uint8_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? 1 (const int)
|
0:? 1 (const uint16_t)
|
||||||
0:? 'uint16_t_to_uint16_t' ( const uint16_t)
|
0:? 'uint16_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? 2 (const int)
|
0:? 2 (const uint16_t)
|
||||||
0:? 'uint32_t_to_uint16_t' ( const uint16_t)
|
0:? 'uint32_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? 3 (const uint)
|
0:? 3 (const uint16_t)
|
||||||
0:? 'uint64_t_to_uint16_t' ( const uint16_t)
|
0:? 'uint64_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? 4 (const uint64_t)
|
0:? 4 (const uint16_t)
|
||||||
0:? 'float16_t_to_uint16_t' ( const uint16_t)
|
0:? 'float16_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? 42.000000
|
0:? 42 (const uint16_t)
|
||||||
0:? 'float32_t_to_uint16_t' ( const uint16_t)
|
0:? 'float32_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? 13.000000
|
0:? 13 (const uint16_t)
|
||||||
0:? 'float64_t_to_uint16_t' ( const uint16_t)
|
0:? 'float64_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? -4.000000
|
0:? 65532 (const uint16_t)
|
||||||
0:? 'bool_to_uint32_t' ( const uint)
|
0:? 'bool_to_uint32_t' ( const uint)
|
||||||
0:? 1 (const uint)
|
0:? 1 (const uint)
|
||||||
0:? 'int8_t_to_uint32_t' ( const uint)
|
0:? 'int8_t_to_uint32_t' ( const uint)
|
||||||
0:? -1 (const int)
|
0:? 4294967295 (const uint)
|
||||||
0:? 'int16_t_to_uint32_t' ( const uint)
|
0:? 'int16_t_to_uint32_t' ( const uint)
|
||||||
0:? -2 (const int)
|
0:? 4294967294 (const uint)
|
||||||
0:? 'int32_t_to_uint32_t' ( const uint)
|
0:? 'int32_t_to_uint32_t' ( const uint)
|
||||||
0:? 4294967293 (const uint)
|
0:? 4294967293 (const uint)
|
||||||
0:? 'int64_t_to_uint32_t' ( const uint)
|
0:? 'int64_t_to_uint32_t' ( const uint)
|
||||||
0:? 4294967292 (const uint)
|
0:? 4294967292 (const uint)
|
||||||
0:? 'uint8_t_to_uint32_t' ( const uint)
|
0:? 'uint8_t_to_uint32_t' ( const uint)
|
||||||
0:? 1 (const int)
|
0:? 1 (const uint)
|
||||||
0:? 'uint16_t_to_uint32_t' ( const uint)
|
0:? 'uint16_t_to_uint32_t' ( const uint)
|
||||||
0:? 2 (const int)
|
0:? 2 (const uint)
|
||||||
0:? 'uint32_t_to_uint32_t' ( const uint)
|
0:? 'uint32_t_to_uint32_t' ( const uint)
|
||||||
0:? 3 (const uint)
|
0:? 3 (const uint)
|
||||||
0:? 'uint64_t_to_uint32_t' ( const uint)
|
0:? 'uint64_t_to_uint32_t' ( const uint)
|
||||||
@ -225,17 +225,17 @@ local_size = (1, 1, 1)
|
|||||||
0:? 'bool_to_uint64_t' ( const uint64_t)
|
0:? 'bool_to_uint64_t' ( const uint64_t)
|
||||||
0:? 1 (const uint64_t)
|
0:? 1 (const uint64_t)
|
||||||
0:? 'int8_t_to_uint64_t' ( const uint64_t)
|
0:? 'int8_t_to_uint64_t' ( const uint64_t)
|
||||||
0:? -1 (const int)
|
0:? 18446744073709551615 (const uint64_t)
|
||||||
0:? 'int16_t_to_uint64_t' ( const uint64_t)
|
0:? 'int16_t_to_uint64_t' ( const uint64_t)
|
||||||
0:? -2 (const int)
|
0:? 18446744073709551614 (const uint64_t)
|
||||||
0:? 'int32_t_to_uint64_t' ( const uint64_t)
|
0:? 'int32_t_to_uint64_t' ( const uint64_t)
|
||||||
0:? 18446744073709551613 (const uint64_t)
|
0:? 18446744073709551613 (const uint64_t)
|
||||||
0:? 'int64_t_to_uint64_t' ( const uint64_t)
|
0:? 'int64_t_to_uint64_t' ( const uint64_t)
|
||||||
0:? 18446744073709551612 (const uint64_t)
|
0:? 18446744073709551612 (const uint64_t)
|
||||||
0:? 'uint8_t_to_uint64_t' ( const uint64_t)
|
0:? 'uint8_t_to_uint64_t' ( const uint64_t)
|
||||||
0:? 1 (const int)
|
0:? 1 (const uint64_t)
|
||||||
0:? 'uint16_t_to_uint64_t' ( const uint64_t)
|
0:? 'uint16_t_to_uint64_t' ( const uint64_t)
|
||||||
0:? 2 (const int)
|
0:? 2 (const uint64_t)
|
||||||
0:? 'uint32_t_to_uint64_t' ( const uint64_t)
|
0:? 'uint32_t_to_uint64_t' ( const uint64_t)
|
||||||
0:? 3 (const uint64_t)
|
0:? 3 (const uint64_t)
|
||||||
0:? 'uint64_t_to_uint64_t' ( const uint64_t)
|
0:? 'uint64_t_to_uint64_t' ( const uint64_t)
|
||||||
@ -249,17 +249,17 @@ local_size = (1, 1, 1)
|
|||||||
0:? 'bool_to_float16_t' ( const float16_t)
|
0:? 'bool_to_float16_t' ( const float16_t)
|
||||||
0:? 1.000000
|
0:? 1.000000
|
||||||
0:? 'int8_t_to_float16_t' ( const float16_t)
|
0:? 'int8_t_to_float16_t' ( const float16_t)
|
||||||
0:? -1 (const int)
|
0:? -1.000000
|
||||||
0:? 'int16_t_to_float16_t' ( const float16_t)
|
0:? 'int16_t_to_float16_t' ( const float16_t)
|
||||||
0:? -2 (const int)
|
0:? -2.000000
|
||||||
0:? 'int32_t_to_float16_t' ( const float16_t)
|
0:? 'int32_t_to_float16_t' ( const float16_t)
|
||||||
0:? -3.000000
|
0:? -3.000000
|
||||||
0:? 'int64_t_to_float16_t' ( const float16_t)
|
0:? 'int64_t_to_float16_t' ( const float16_t)
|
||||||
0:? -4.000000
|
0:? -4.000000
|
||||||
0:? 'uint8_t_to_float16_t' ( const float16_t)
|
0:? 'uint8_t_to_float16_t' ( const float16_t)
|
||||||
0:? 1 (const int)
|
0:? 1.000000
|
||||||
0:? 'uint16_t_to_float16_t' ( const float16_t)
|
0:? 'uint16_t_to_float16_t' ( const float16_t)
|
||||||
0:? 2 (const int)
|
0:? 2.000000
|
||||||
0:? 'uint32_t_to_float16_t' ( const float16_t)
|
0:? 'uint32_t_to_float16_t' ( const float16_t)
|
||||||
0:? 3.000000
|
0:? 3.000000
|
||||||
0:? 'uint64_t_to_float16_t' ( const float16_t)
|
0:? 'uint64_t_to_float16_t' ( const float16_t)
|
||||||
@ -273,17 +273,17 @@ local_size = (1, 1, 1)
|
|||||||
0:? 'bool_to_float32_t' ( const float)
|
0:? 'bool_to_float32_t' ( const float)
|
||||||
0:? 1.000000
|
0:? 1.000000
|
||||||
0:? 'int8_t_to_float32_t' ( const float)
|
0:? 'int8_t_to_float32_t' ( const float)
|
||||||
0:? -1 (const int)
|
0:? -1.000000
|
||||||
0:? 'int16_t_to_float32_t' ( const float)
|
0:? 'int16_t_to_float32_t' ( const float)
|
||||||
0:? -2 (const int)
|
0:? -2.000000
|
||||||
0:? 'int32_t_to_float32_t' ( const float)
|
0:? 'int32_t_to_float32_t' ( const float)
|
||||||
0:? -3.000000
|
0:? -3.000000
|
||||||
0:? 'int64_t_to_float32_t' ( const float)
|
0:? 'int64_t_to_float32_t' ( const float)
|
||||||
0:? -4.000000
|
0:? -4.000000
|
||||||
0:? 'uint8_t_to_float32_t' ( const float)
|
0:? 'uint8_t_to_float32_t' ( const float)
|
||||||
0:? 1 (const int)
|
0:? 1.000000
|
||||||
0:? 'uint16_t_to_float32_t' ( const float)
|
0:? 'uint16_t_to_float32_t' ( const float)
|
||||||
0:? 2 (const int)
|
0:? 2.000000
|
||||||
0:? 'uint32_t_to_float32_t' ( const float)
|
0:? 'uint32_t_to_float32_t' ( const float)
|
||||||
0:? 3.000000
|
0:? 3.000000
|
||||||
0:? 'uint64_t_to_float32_t' ( const float)
|
0:? 'uint64_t_to_float32_t' ( const float)
|
||||||
@ -297,17 +297,17 @@ local_size = (1, 1, 1)
|
|||||||
0:? 'bool_to_float64_t' ( const double)
|
0:? 'bool_to_float64_t' ( const double)
|
||||||
0:? 1.000000
|
0:? 1.000000
|
||||||
0:? 'int8_t_to_float64_t' ( const double)
|
0:? 'int8_t_to_float64_t' ( const double)
|
||||||
0:? -1 (const int)
|
0:? -1.000000
|
||||||
0:? 'int16_t_to_float64_t' ( const double)
|
0:? 'int16_t_to_float64_t' ( const double)
|
||||||
0:? -2 (const int)
|
0:? -2.000000
|
||||||
0:? 'int32_t_to_float64_t' ( const double)
|
0:? 'int32_t_to_float64_t' ( const double)
|
||||||
0:? -3.000000
|
0:? -3.000000
|
||||||
0:? 'int64_t_to_float64_t' ( const double)
|
0:? 'int64_t_to_float64_t' ( const double)
|
||||||
0:? -4.000000
|
0:? -4.000000
|
||||||
0:? 'uint8_t_to_float64_t' ( const double)
|
0:? 'uint8_t_to_float64_t' ( const double)
|
||||||
0:? 1 (const int)
|
0:? 1.000000
|
||||||
0:? 'uint16_t_to_float64_t' ( const double)
|
0:? 'uint16_t_to_float64_t' ( const double)
|
||||||
0:? 2 (const int)
|
0:? 2.000000
|
||||||
0:? 'uint32_t_to_float64_t' ( const double)
|
0:? 'uint32_t_to_float64_t' ( const double)
|
||||||
0:? 3.000000
|
0:? 3.000000
|
||||||
0:? 'uint64_t_to_float64_t' ( const double)
|
0:? 'uint64_t_to_float64_t' ( const double)
|
||||||
@ -333,17 +333,17 @@ local_size = (1, 1, 1)
|
|||||||
0:? 'bool_init' ( const bool)
|
0:? 'bool_init' ( const bool)
|
||||||
0:? true (const bool)
|
0:? true (const bool)
|
||||||
0:? 'int8_t_init' ( const int8_t)
|
0:? 'int8_t_init' ( const int8_t)
|
||||||
0:? -1 (const int)
|
0:? -1 (const int8_t)
|
||||||
0:? 'int16_t_init' ( const int16_t)
|
0:? 'int16_t_init' ( const int16_t)
|
||||||
0:? -2 (const int)
|
0:? -2 (const int16_t)
|
||||||
0:? 'int32_t_init' ( const int)
|
0:? 'int32_t_init' ( const int)
|
||||||
0:? -3 (const int)
|
0:? -3 (const int)
|
||||||
0:? 'int64_t_init' ( const int64_t)
|
0:? 'int64_t_init' ( const int64_t)
|
||||||
0:? -4 (const int64_t)
|
0:? -4 (const int64_t)
|
||||||
0:? 'uint8_t_init' ( const uint8_t)
|
0:? 'uint8_t_init' ( const uint8_t)
|
||||||
0:? 1 (const int)
|
0:? 1 (const uint8_t)
|
||||||
0:? 'uint16_t_init' ( const uint16_t)
|
0:? 'uint16_t_init' ( const uint16_t)
|
||||||
0:? 2 (const int)
|
0:? 2 (const uint16_t)
|
||||||
0:? 'uint32_t_init' ( const uint)
|
0:? 'uint32_t_init' ( const uint)
|
||||||
0:? 3 (const uint)
|
0:? 3 (const uint)
|
||||||
0:? 'uint64_t_init' ( const uint64_t)
|
0:? 'uint64_t_init' ( const uint64_t)
|
||||||
@ -357,17 +357,17 @@ local_size = (1, 1, 1)
|
|||||||
0:? 'bool_to_bool' ( const bool)
|
0:? 'bool_to_bool' ( const bool)
|
||||||
0:? true (const bool)
|
0:? true (const bool)
|
||||||
0:? 'int8_t_to_bool' ( const bool)
|
0:? 'int8_t_to_bool' ( const bool)
|
||||||
0:? -1 (const int)
|
0:? true (const bool)
|
||||||
0:? 'int16_t_to_bool' ( const bool)
|
0:? 'int16_t_to_bool' ( const bool)
|
||||||
0:? -2 (const int)
|
0:? true (const bool)
|
||||||
0:? 'int32_t_to_bool' ( const bool)
|
0:? 'int32_t_to_bool' ( const bool)
|
||||||
0:? true (const bool)
|
0:? true (const bool)
|
||||||
0:? 'int64_t_to_bool' ( const bool)
|
0:? 'int64_t_to_bool' ( const bool)
|
||||||
0:? true (const bool)
|
0:? true (const bool)
|
||||||
0:? 'uint8_t_to_bool' ( const bool)
|
0:? 'uint8_t_to_bool' ( const bool)
|
||||||
0:? 1 (const int)
|
0:? true (const bool)
|
||||||
0:? 'uint16_t_to_bool' ( const bool)
|
0:? 'uint16_t_to_bool' ( const bool)
|
||||||
0:? 2 (const int)
|
0:? true (const bool)
|
||||||
0:? 'uint32_t_to_bool' ( const bool)
|
0:? 'uint32_t_to_bool' ( const bool)
|
||||||
0:? true (const bool)
|
0:? true (const bool)
|
||||||
0:? 'uint64_t_to_bool' ( const bool)
|
0:? 'uint64_t_to_bool' ( const bool)
|
||||||
@ -379,53 +379,53 @@ local_size = (1, 1, 1)
|
|||||||
0:? 'float64_t_to_bool' ( const bool)
|
0:? 'float64_t_to_bool' ( const bool)
|
||||||
0:? true (const bool)
|
0:? true (const bool)
|
||||||
0:? 'bool_to_int8_t' ( const int8_t)
|
0:? 'bool_to_int8_t' ( const int8_t)
|
||||||
0:? true (const bool)
|
0:? 1 (const int8_t)
|
||||||
0:? 'int8_t_to_int8_t' ( const int8_t)
|
0:? 'int8_t_to_int8_t' ( const int8_t)
|
||||||
0:? -1 (const int)
|
0:? -1 (const int8_t)
|
||||||
0:? 'int16_t_to_int8_t' ( const int8_t)
|
0:? 'int16_t_to_int8_t' ( const int8_t)
|
||||||
0:? -2 (const int)
|
0:? -2 (const int8_t)
|
||||||
0:? 'int32_t_to_int8_t' ( const int8_t)
|
0:? 'int32_t_to_int8_t' ( const int8_t)
|
||||||
0:? -3 (const int)
|
0:? -3 (const int8_t)
|
||||||
0:? 'int64_t_to_int8_t' ( const int8_t)
|
0:? 'int64_t_to_int8_t' ( const int8_t)
|
||||||
0:? -4 (const int64_t)
|
0:? -4 (const int8_t)
|
||||||
0:? 'uint8_t_to_int8_t' ( const int8_t)
|
0:? 'uint8_t_to_int8_t' ( const int8_t)
|
||||||
0:? 1 (const int)
|
0:? 1 (const int8_t)
|
||||||
0:? 'uint16_t_to_int8_t' ( const int8_t)
|
0:? 'uint16_t_to_int8_t' ( const int8_t)
|
||||||
0:? 2 (const int)
|
0:? 2 (const int8_t)
|
||||||
0:? 'uint32_t_to_int8_t' ( const int8_t)
|
0:? 'uint32_t_to_int8_t' ( const int8_t)
|
||||||
0:? 3 (const uint)
|
0:? 3 (const int8_t)
|
||||||
0:? 'uint64_t_to_int8_t' ( const int8_t)
|
0:? 'uint64_t_to_int8_t' ( const int8_t)
|
||||||
0:? 4 (const uint64_t)
|
0:? 4 (const int8_t)
|
||||||
0:? 'float16_t_to_int8_t' ( const int8_t)
|
0:? 'float16_t_to_int8_t' ( const int8_t)
|
||||||
0:? 42.000000
|
0:? 42 (const int8_t)
|
||||||
0:? 'float32_t_to_int8_t' ( const int8_t)
|
0:? 'float32_t_to_int8_t' ( const int8_t)
|
||||||
0:? 13.000000
|
0:? 13 (const int8_t)
|
||||||
0:? 'float64_t_to_int8_t' ( const int8_t)
|
0:? 'float64_t_to_int8_t' ( const int8_t)
|
||||||
0:? -4.000000
|
0:? -4 (const int8_t)
|
||||||
0:? 'bool_to_int16_t' ( const int16_t)
|
0:? 'bool_to_int16_t' ( const int16_t)
|
||||||
0:? true (const bool)
|
0:? 1 (const int16_t)
|
||||||
0:? 'int8_t_to_int16_t' ( const int16_t)
|
0:? 'int8_t_to_int16_t' ( const int16_t)
|
||||||
0:? -1 (const int)
|
0:? -1 (const int16_t)
|
||||||
0:? 'int16_t_to_int16_t' ( const int16_t)
|
0:? 'int16_t_to_int16_t' ( const int16_t)
|
||||||
0:? -2 (const int)
|
0:? -2 (const int16_t)
|
||||||
0:? 'int32_t_to_int16_t' ( const int16_t)
|
0:? 'int32_t_to_int16_t' ( const int16_t)
|
||||||
0:? -3 (const int)
|
0:? -3 (const int16_t)
|
||||||
0:? 'int64_t_to_int16_t' ( const int16_t)
|
0:? 'int64_t_to_int16_t' ( const int16_t)
|
||||||
0:? -4 (const int64_t)
|
0:? -4 (const int16_t)
|
||||||
0:? 'uint8_t_to_int16_t' ( const int16_t)
|
0:? 'uint8_t_to_int16_t' ( const int16_t)
|
||||||
0:? 1 (const int)
|
0:? 1 (const int16_t)
|
||||||
0:? 'uint16_t_to_int16_t' ( const int16_t)
|
0:? 'uint16_t_to_int16_t' ( const int16_t)
|
||||||
0:? 2 (const int)
|
0:? 2 (const int16_t)
|
||||||
0:? 'uint32_t_to_int16_t' ( const int16_t)
|
0:? 'uint32_t_to_int16_t' ( const int16_t)
|
||||||
0:? 3 (const uint)
|
0:? 3 (const int16_t)
|
||||||
0:? 'uint64_t_to_int16_t' ( const int16_t)
|
0:? 'uint64_t_to_int16_t' ( const int16_t)
|
||||||
0:? 4 (const uint64_t)
|
0:? 4 (const int16_t)
|
||||||
0:? 'float16_t_to_int16_t' ( const int16_t)
|
0:? 'float16_t_to_int16_t' ( const int16_t)
|
||||||
0:? 42.000000
|
0:? 42 (const int16_t)
|
||||||
0:? 'float32_t_to_int16_t' ( const int16_t)
|
0:? 'float32_t_to_int16_t' ( const int16_t)
|
||||||
0:? 13.000000
|
0:? 13 (const int16_t)
|
||||||
0:? 'float64_t_to_int16_t' ( const int16_t)
|
0:? 'float64_t_to_int16_t' ( const int16_t)
|
||||||
0:? -4.000000
|
0:? -4 (const int16_t)
|
||||||
0:? 'bool_to_int32_t' ( const int)
|
0:? 'bool_to_int32_t' ( const int)
|
||||||
0:? 1 (const int)
|
0:? 1 (const int)
|
||||||
0:? 'int8_t_to_int32_t' ( const int)
|
0:? 'int8_t_to_int32_t' ( const int)
|
||||||
@ -453,17 +453,17 @@ local_size = (1, 1, 1)
|
|||||||
0:? 'bool_to_int64_t' ( const int64_t)
|
0:? 'bool_to_int64_t' ( const int64_t)
|
||||||
0:? 1 (const int64_t)
|
0:? 1 (const int64_t)
|
||||||
0:? 'int8_t_to_int64_t' ( const int64_t)
|
0:? 'int8_t_to_int64_t' ( const int64_t)
|
||||||
0:? -1 (const int)
|
0:? -1 (const int64_t)
|
||||||
0:? 'int16_t_to_int64_t' ( const int64_t)
|
0:? 'int16_t_to_int64_t' ( const int64_t)
|
||||||
0:? -2 (const int)
|
0:? -2 (const int64_t)
|
||||||
0:? 'int32_t_to_int64_t' ( const int64_t)
|
0:? 'int32_t_to_int64_t' ( const int64_t)
|
||||||
0:? -3 (const int64_t)
|
0:? -3 (const int64_t)
|
||||||
0:? 'int64_t_to_int64_t' ( const int64_t)
|
0:? 'int64_t_to_int64_t' ( const int64_t)
|
||||||
0:? -4 (const int64_t)
|
0:? -4 (const int64_t)
|
||||||
0:? 'uint8_t_to_int64_t' ( const int64_t)
|
0:? 'uint8_t_to_int64_t' ( const int64_t)
|
||||||
0:? 1 (const int)
|
0:? 1 (const int64_t)
|
||||||
0:? 'uint16_t_to_int64_t' ( const int64_t)
|
0:? 'uint16_t_to_int64_t' ( const int64_t)
|
||||||
0:? 2 (const int)
|
0:? 2 (const int64_t)
|
||||||
0:? 'uint32_t_to_int64_t' ( const int64_t)
|
0:? 'uint32_t_to_int64_t' ( const int64_t)
|
||||||
0:? 3 (const int64_t)
|
0:? 3 (const int64_t)
|
||||||
0:? 'uint64_t_to_int64_t' ( const int64_t)
|
0:? 'uint64_t_to_int64_t' ( const int64_t)
|
||||||
@ -475,67 +475,67 @@ local_size = (1, 1, 1)
|
|||||||
0:? 'float64_t_to_int64_t' ( const int64_t)
|
0:? 'float64_t_to_int64_t' ( const int64_t)
|
||||||
0:? -4 (const int64_t)
|
0:? -4 (const int64_t)
|
||||||
0:? 'bool_to_uint8_t' ( const uint8_t)
|
0:? 'bool_to_uint8_t' ( const uint8_t)
|
||||||
0:? true (const bool)
|
0:? 1 (const uint8_t)
|
||||||
0:? 'int8_t_to_uint8_t' ( const uint8_t)
|
0:? 'int8_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? -1 (const int)
|
0:? 255 (const uint8_t)
|
||||||
0:? 'int16_t_to_uint8_t' ( const uint8_t)
|
0:? 'int16_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? -2 (const int)
|
0:? 254 (const uint8_t)
|
||||||
0:? 'int32_t_to_uint8_t' ( const uint8_t)
|
0:? 'int32_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? -3 (const int)
|
0:? 253 (const uint8_t)
|
||||||
0:? 'int64_t_to_uint8_t' ( const uint8_t)
|
0:? 'int64_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? -4 (const int64_t)
|
0:? 252 (const uint8_t)
|
||||||
0:? 'uint8_t_to_uint8_t' ( const uint8_t)
|
0:? 'uint8_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? 1 (const int)
|
0:? 1 (const uint8_t)
|
||||||
0:? 'uint16_t_to_uint8_t' ( const uint8_t)
|
0:? 'uint16_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? 2 (const int)
|
0:? 2 (const uint8_t)
|
||||||
0:? 'uint32_t_to_uint8_t' ( const uint8_t)
|
0:? 'uint32_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? 3 (const uint)
|
0:? 3 (const uint8_t)
|
||||||
0:? 'uint64_t_to_uint8_t' ( const uint8_t)
|
0:? 'uint64_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? 4 (const uint64_t)
|
0:? 4 (const uint8_t)
|
||||||
0:? 'float16_t_to_uint8_t' ( const uint8_t)
|
0:? 'float16_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? 42.000000
|
0:? 42 (const uint8_t)
|
||||||
0:? 'float32_t_to_uint8_t' ( const uint8_t)
|
0:? 'float32_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? 13.000000
|
0:? 13 (const uint8_t)
|
||||||
0:? 'float64_t_to_uint8_t' ( const uint8_t)
|
0:? 'float64_t_to_uint8_t' ( const uint8_t)
|
||||||
0:? -4.000000
|
0:? 252 (const uint8_t)
|
||||||
0:? 'bool_to_uint16_t' ( const uint16_t)
|
0:? 'bool_to_uint16_t' ( const uint16_t)
|
||||||
0:? true (const bool)
|
0:? 1 (const uint16_t)
|
||||||
0:? 'int8_t_to_uint16_t' ( const uint16_t)
|
0:? 'int8_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? -1 (const int)
|
0:? 65535 (const uint16_t)
|
||||||
0:? 'int16_t_to_uint16_t' ( const uint16_t)
|
0:? 'int16_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? -2 (const int)
|
0:? 65534 (const uint16_t)
|
||||||
0:? 'int32_t_to_uint16_t' ( const uint16_t)
|
0:? 'int32_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? -3 (const int)
|
0:? 65533 (const uint16_t)
|
||||||
0:? 'int64_t_to_uint16_t' ( const uint16_t)
|
0:? 'int64_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? -4 (const int64_t)
|
0:? 65532 (const uint16_t)
|
||||||
0:? 'uint8_t_to_uint16_t' ( const uint16_t)
|
0:? 'uint8_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? 1 (const int)
|
0:? 1 (const uint16_t)
|
||||||
0:? 'uint16_t_to_uint16_t' ( const uint16_t)
|
0:? 'uint16_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? 2 (const int)
|
0:? 2 (const uint16_t)
|
||||||
0:? 'uint32_t_to_uint16_t' ( const uint16_t)
|
0:? 'uint32_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? 3 (const uint)
|
0:? 3 (const uint16_t)
|
||||||
0:? 'uint64_t_to_uint16_t' ( const uint16_t)
|
0:? 'uint64_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? 4 (const uint64_t)
|
0:? 4 (const uint16_t)
|
||||||
0:? 'float16_t_to_uint16_t' ( const uint16_t)
|
0:? 'float16_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? 42.000000
|
0:? 42 (const uint16_t)
|
||||||
0:? 'float32_t_to_uint16_t' ( const uint16_t)
|
0:? 'float32_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? 13.000000
|
0:? 13 (const uint16_t)
|
||||||
0:? 'float64_t_to_uint16_t' ( const uint16_t)
|
0:? 'float64_t_to_uint16_t' ( const uint16_t)
|
||||||
0:? -4.000000
|
0:? 65532 (const uint16_t)
|
||||||
0:? 'bool_to_uint32_t' ( const uint)
|
0:? 'bool_to_uint32_t' ( const uint)
|
||||||
0:? 1 (const uint)
|
0:? 1 (const uint)
|
||||||
0:? 'int8_t_to_uint32_t' ( const uint)
|
0:? 'int8_t_to_uint32_t' ( const uint)
|
||||||
0:? -1 (const int)
|
0:? 4294967295 (const uint)
|
||||||
0:? 'int16_t_to_uint32_t' ( const uint)
|
0:? 'int16_t_to_uint32_t' ( const uint)
|
||||||
0:? -2 (const int)
|
0:? 4294967294 (const uint)
|
||||||
0:? 'int32_t_to_uint32_t' ( const uint)
|
0:? 'int32_t_to_uint32_t' ( const uint)
|
||||||
0:? 4294967293 (const uint)
|
0:? 4294967293 (const uint)
|
||||||
0:? 'int64_t_to_uint32_t' ( const uint)
|
0:? 'int64_t_to_uint32_t' ( const uint)
|
||||||
0:? 4294967292 (const uint)
|
0:? 4294967292 (const uint)
|
||||||
0:? 'uint8_t_to_uint32_t' ( const uint)
|
0:? 'uint8_t_to_uint32_t' ( const uint)
|
||||||
0:? 1 (const int)
|
0:? 1 (const uint)
|
||||||
0:? 'uint16_t_to_uint32_t' ( const uint)
|
0:? 'uint16_t_to_uint32_t' ( const uint)
|
||||||
0:? 2 (const int)
|
0:? 2 (const uint)
|
||||||
0:? 'uint32_t_to_uint32_t' ( const uint)
|
0:? 'uint32_t_to_uint32_t' ( const uint)
|
||||||
0:? 3 (const uint)
|
0:? 3 (const uint)
|
||||||
0:? 'uint64_t_to_uint32_t' ( const uint)
|
0:? 'uint64_t_to_uint32_t' ( const uint)
|
||||||
@ -549,17 +549,17 @@ local_size = (1, 1, 1)
|
|||||||
0:? 'bool_to_uint64_t' ( const uint64_t)
|
0:? 'bool_to_uint64_t' ( const uint64_t)
|
||||||
0:? 1 (const uint64_t)
|
0:? 1 (const uint64_t)
|
||||||
0:? 'int8_t_to_uint64_t' ( const uint64_t)
|
0:? 'int8_t_to_uint64_t' ( const uint64_t)
|
||||||
0:? -1 (const int)
|
0:? 18446744073709551615 (const uint64_t)
|
||||||
0:? 'int16_t_to_uint64_t' ( const uint64_t)
|
0:? 'int16_t_to_uint64_t' ( const uint64_t)
|
||||||
0:? -2 (const int)
|
0:? 18446744073709551614 (const uint64_t)
|
||||||
0:? 'int32_t_to_uint64_t' ( const uint64_t)
|
0:? 'int32_t_to_uint64_t' ( const uint64_t)
|
||||||
0:? 18446744073709551613 (const uint64_t)
|
0:? 18446744073709551613 (const uint64_t)
|
||||||
0:? 'int64_t_to_uint64_t' ( const uint64_t)
|
0:? 'int64_t_to_uint64_t' ( const uint64_t)
|
||||||
0:? 18446744073709551612 (const uint64_t)
|
0:? 18446744073709551612 (const uint64_t)
|
||||||
0:? 'uint8_t_to_uint64_t' ( const uint64_t)
|
0:? 'uint8_t_to_uint64_t' ( const uint64_t)
|
||||||
0:? 1 (const int)
|
0:? 1 (const uint64_t)
|
||||||
0:? 'uint16_t_to_uint64_t' ( const uint64_t)
|
0:? 'uint16_t_to_uint64_t' ( const uint64_t)
|
||||||
0:? 2 (const int)
|
0:? 2 (const uint64_t)
|
||||||
0:? 'uint32_t_to_uint64_t' ( const uint64_t)
|
0:? 'uint32_t_to_uint64_t' ( const uint64_t)
|
||||||
0:? 3 (const uint64_t)
|
0:? 3 (const uint64_t)
|
||||||
0:? 'uint64_t_to_uint64_t' ( const uint64_t)
|
0:? 'uint64_t_to_uint64_t' ( const uint64_t)
|
||||||
@ -573,17 +573,17 @@ local_size = (1, 1, 1)
|
|||||||
0:? 'bool_to_float16_t' ( const float16_t)
|
0:? 'bool_to_float16_t' ( const float16_t)
|
||||||
0:? 1.000000
|
0:? 1.000000
|
||||||
0:? 'int8_t_to_float16_t' ( const float16_t)
|
0:? 'int8_t_to_float16_t' ( const float16_t)
|
||||||
0:? -1 (const int)
|
0:? -1.000000
|
||||||
0:? 'int16_t_to_float16_t' ( const float16_t)
|
0:? 'int16_t_to_float16_t' ( const float16_t)
|
||||||
0:? -2 (const int)
|
0:? -2.000000
|
||||||
0:? 'int32_t_to_float16_t' ( const float16_t)
|
0:? 'int32_t_to_float16_t' ( const float16_t)
|
||||||
0:? -3.000000
|
0:? -3.000000
|
||||||
0:? 'int64_t_to_float16_t' ( const float16_t)
|
0:? 'int64_t_to_float16_t' ( const float16_t)
|
||||||
0:? -4.000000
|
0:? -4.000000
|
||||||
0:? 'uint8_t_to_float16_t' ( const float16_t)
|
0:? 'uint8_t_to_float16_t' ( const float16_t)
|
||||||
0:? 1 (const int)
|
0:? 1.000000
|
||||||
0:? 'uint16_t_to_float16_t' ( const float16_t)
|
0:? 'uint16_t_to_float16_t' ( const float16_t)
|
||||||
0:? 2 (const int)
|
0:? 2.000000
|
||||||
0:? 'uint32_t_to_float16_t' ( const float16_t)
|
0:? 'uint32_t_to_float16_t' ( const float16_t)
|
||||||
0:? 3.000000
|
0:? 3.000000
|
||||||
0:? 'uint64_t_to_float16_t' ( const float16_t)
|
0:? 'uint64_t_to_float16_t' ( const float16_t)
|
||||||
@ -597,17 +597,17 @@ local_size = (1, 1, 1)
|
|||||||
0:? 'bool_to_float32_t' ( const float)
|
0:? 'bool_to_float32_t' ( const float)
|
||||||
0:? 1.000000
|
0:? 1.000000
|
||||||
0:? 'int8_t_to_float32_t' ( const float)
|
0:? 'int8_t_to_float32_t' ( const float)
|
||||||
0:? -1 (const int)
|
0:? -1.000000
|
||||||
0:? 'int16_t_to_float32_t' ( const float)
|
0:? 'int16_t_to_float32_t' ( const float)
|
||||||
0:? -2 (const int)
|
0:? -2.000000
|
||||||
0:? 'int32_t_to_float32_t' ( const float)
|
0:? 'int32_t_to_float32_t' ( const float)
|
||||||
0:? -3.000000
|
0:? -3.000000
|
||||||
0:? 'int64_t_to_float32_t' ( const float)
|
0:? 'int64_t_to_float32_t' ( const float)
|
||||||
0:? -4.000000
|
0:? -4.000000
|
||||||
0:? 'uint8_t_to_float32_t' ( const float)
|
0:? 'uint8_t_to_float32_t' ( const float)
|
||||||
0:? 1 (const int)
|
0:? 1.000000
|
||||||
0:? 'uint16_t_to_float32_t' ( const float)
|
0:? 'uint16_t_to_float32_t' ( const float)
|
||||||
0:? 2 (const int)
|
0:? 2.000000
|
||||||
0:? 'uint32_t_to_float32_t' ( const float)
|
0:? 'uint32_t_to_float32_t' ( const float)
|
||||||
0:? 3.000000
|
0:? 3.000000
|
||||||
0:? 'uint64_t_to_float32_t' ( const float)
|
0:? 'uint64_t_to_float32_t' ( const float)
|
||||||
@ -621,17 +621,17 @@ local_size = (1, 1, 1)
|
|||||||
0:? 'bool_to_float64_t' ( const double)
|
0:? 'bool_to_float64_t' ( const double)
|
||||||
0:? 1.000000
|
0:? 1.000000
|
||||||
0:? 'int8_t_to_float64_t' ( const double)
|
0:? 'int8_t_to_float64_t' ( const double)
|
||||||
0:? -1 (const int)
|
0:? -1.000000
|
||||||
0:? 'int16_t_to_float64_t' ( const double)
|
0:? 'int16_t_to_float64_t' ( const double)
|
||||||
0:? -2 (const int)
|
0:? -2.000000
|
||||||
0:? 'int32_t_to_float64_t' ( const double)
|
0:? 'int32_t_to_float64_t' ( const double)
|
||||||
0:? -3.000000
|
0:? -3.000000
|
||||||
0:? 'int64_t_to_float64_t' ( const double)
|
0:? 'int64_t_to_float64_t' ( const double)
|
||||||
0:? -4.000000
|
0:? -4.000000
|
||||||
0:? 'uint8_t_to_float64_t' ( const double)
|
0:? 'uint8_t_to_float64_t' ( const double)
|
||||||
0:? 1 (const int)
|
0:? 1.000000
|
||||||
0:? 'uint16_t_to_float64_t' ( const double)
|
0:? 'uint16_t_to_float64_t' ( const double)
|
||||||
0:? 2 (const int)
|
0:? 2.000000
|
||||||
0:? 'uint32_t_to_float64_t' ( const double)
|
0:? 'uint32_t_to_float64_t' ( const double)
|
||||||
0:? 3.000000
|
0:? 3.000000
|
||||||
0:? 'uint64_t_to_float64_t' ( const double)
|
0:? 'uint64_t_to_float64_t' ( const double)
|
||||||
|
|||||||
@ -85,7 +85,11 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
|
|||||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 86 compilation errors. No code generated.
|
ERROR: 0:232: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:233: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:234: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:235: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 90 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 450
|
Shader version: 450
|
||||||
@ -97,6 +101,7 @@ Requested GL_KHR_shader_subgroup_quad
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle
|
Requested GL_KHR_shader_subgroup_shuffle
|
||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||||
@ -597,6 +602,20 @@ ERROR: node is still EOpNull!
|
|||||||
0:226 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
0:226 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||||
0:226 'ballot' ( temp 4-component vector of uint)
|
0:226 'ballot' ( temp 4-component vector of uint)
|
||||||
0:226 'parti' ( temp 4-component vector of uint)
|
0:226 'parti' ( temp 4-component vector of uint)
|
||||||
|
0:230 Function Definition: sm_builtins_err( ( global void)
|
||||||
|
0:230 Function Parameters:
|
||||||
|
0:232 Sequence
|
||||||
|
0:232 'gl_WarpsPerSMNV' ( flat in uint WarpsPerSMNV)
|
||||||
|
0:233 'gl_SMCountNV' ( flat in uint SMCountNV)
|
||||||
|
0:234 'gl_WarpIDNV' ( flat in uint WarpIDNV)
|
||||||
|
0:235 'gl_SMIDNV' ( flat in uint SMIDNV)
|
||||||
|
0:242 Function Definition: sm_builtins( ( global void)
|
||||||
|
0:242 Function Parameters:
|
||||||
|
0:244 Sequence
|
||||||
|
0:244 'gl_WarpsPerSMNV' ( flat in uint WarpsPerSMNV)
|
||||||
|
0:245 'gl_SMCountNV' ( flat in uint SMCountNV)
|
||||||
|
0:246 'gl_WarpIDNV' ( flat in uint WarpIDNV)
|
||||||
|
0:247 'gl_SMIDNV' ( flat in uint SMIDNV)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'data' (layout( location=0) out 4-component vector of uint)
|
0:? 'data' (layout( location=0) out 4-component vector of uint)
|
||||||
|
|
||||||
@ -613,6 +632,7 @@ Requested GL_KHR_shader_subgroup_quad
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle
|
Requested GL_KHR_shader_subgroup_shuffle
|
||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:105 Function Definition: main( ( global void)
|
0:105 Function Definition: main( ( global void)
|
||||||
|
|||||||
@ -85,7 +85,11 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
|
|||||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 86 compilation errors. No code generated.
|
ERROR: 0:238: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:239: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:240: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:241: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 90 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 450
|
Shader version: 450
|
||||||
@ -97,6 +101,7 @@ Requested GL_KHR_shader_subgroup_quad
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle
|
Requested GL_KHR_shader_subgroup_shuffle
|
||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
invocations = -1
|
invocations = -1
|
||||||
max_vertices = 1
|
max_vertices = 1
|
||||||
@ -606,6 +611,20 @@ ERROR: node is still EOpNull!
|
|||||||
0:232 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
0:232 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||||
0:232 'ballot' ( temp 4-component vector of uint)
|
0:232 'ballot' ( temp 4-component vector of uint)
|
||||||
0:232 'parti' ( temp 4-component vector of uint)
|
0:232 'parti' ( temp 4-component vector of uint)
|
||||||
|
0:236 Function Definition: sm_builtins_err( ( global void)
|
||||||
|
0:236 Function Parameters:
|
||||||
|
0:238 Sequence
|
||||||
|
0:238 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:239 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:240 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:241 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
|
0:248 Function Definition: sm_builtins( ( global void)
|
||||||
|
0:248 Function Parameters:
|
||||||
|
0:250 Sequence
|
||||||
|
0:250 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:251 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:252 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:253 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||||
|
|
||||||
@ -622,6 +641,7 @@ Requested GL_KHR_shader_subgroup_quad
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle
|
Requested GL_KHR_shader_subgroup_shuffle
|
||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
invocations = 1
|
invocations = 1
|
||||||
max_vertices = 1
|
max_vertices = 1
|
||||||
|
|||||||
@ -85,7 +85,11 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
|
|||||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 86 compilation errors. No code generated.
|
ERROR: 0:237: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:238: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:239: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:240: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 90 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 450
|
Shader version: 450
|
||||||
@ -97,6 +101,7 @@ Requested GL_KHR_shader_subgroup_quad
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle
|
Requested GL_KHR_shader_subgroup_shuffle
|
||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
vertices = 1
|
vertices = 1
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
@ -603,6 +608,20 @@ ERROR: node is still EOpNull!
|
|||||||
0:231 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
0:231 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||||
0:231 'ballot' ( temp 4-component vector of uint)
|
0:231 'ballot' ( temp 4-component vector of uint)
|
||||||
0:231 'parti' ( temp 4-component vector of uint)
|
0:231 'parti' ( temp 4-component vector of uint)
|
||||||
|
0:235 Function Definition: sm_builtins_err( ( global void)
|
||||||
|
0:235 Function Parameters:
|
||||||
|
0:237 Sequence
|
||||||
|
0:237 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:238 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:239 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:240 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
|
0:247 Function Definition: sm_builtins( ( global void)
|
||||||
|
0:247 Function Parameters:
|
||||||
|
0:249 Sequence
|
||||||
|
0:249 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:250 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:251 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:252 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||||
|
|
||||||
@ -619,6 +638,7 @@ Requested GL_KHR_shader_subgroup_quad
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle
|
Requested GL_KHR_shader_subgroup_shuffle
|
||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
vertices = 1
|
vertices = 1
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
|
|||||||
@ -85,7 +85,11 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
|
|||||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 86 compilation errors. No code generated.
|
ERROR: 0:237: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:238: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:239: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:240: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 90 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 450
|
Shader version: 450
|
||||||
@ -97,6 +101,7 @@ Requested GL_KHR_shader_subgroup_quad
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle
|
Requested GL_KHR_shader_subgroup_shuffle
|
||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
input primitive = isolines
|
input primitive = isolines
|
||||||
vertex spacing = none
|
vertex spacing = none
|
||||||
@ -605,6 +610,20 @@ ERROR: node is still EOpNull!
|
|||||||
0:231 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
0:231 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||||
0:231 'ballot' ( temp 4-component vector of uint)
|
0:231 'ballot' ( temp 4-component vector of uint)
|
||||||
0:231 'parti' ( temp 4-component vector of uint)
|
0:231 'parti' ( temp 4-component vector of uint)
|
||||||
|
0:235 Function Definition: sm_builtins_err( ( global void)
|
||||||
|
0:235 Function Parameters:
|
||||||
|
0:237 Sequence
|
||||||
|
0:237 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:238 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:239 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:240 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
|
0:247 Function Definition: sm_builtins( ( global void)
|
||||||
|
0:247 Function Parameters:
|
||||||
|
0:249 Sequence
|
||||||
|
0:249 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:250 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:251 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:252 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||||
|
|
||||||
@ -621,6 +640,7 @@ Requested GL_KHR_shader_subgroup_quad
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle
|
Requested GL_KHR_shader_subgroup_shuffle
|
||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
input primitive = isolines
|
input primitive = isolines
|
||||||
vertex spacing = equal_spacing
|
vertex spacing = equal_spacing
|
||||||
|
|||||||
@ -85,7 +85,11 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
|
|||||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 86 compilation errors. No code generated.
|
ERROR: 0:236: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:237: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:238: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:239: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 90 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 450
|
Shader version: 450
|
||||||
@ -97,6 +101,7 @@ Requested GL_KHR_shader_subgroup_quad
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle
|
Requested GL_KHR_shader_subgroup_shuffle
|
||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||||
@ -602,6 +607,20 @@ ERROR: node is still EOpNull!
|
|||||||
0:230 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
0:230 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||||
0:230 'ballot' ( temp 4-component vector of uint)
|
0:230 'ballot' ( temp 4-component vector of uint)
|
||||||
0:230 'parti' ( temp 4-component vector of uint)
|
0:230 'parti' ( temp 4-component vector of uint)
|
||||||
|
0:234 Function Definition: sm_builtins_err( ( global void)
|
||||||
|
0:234 Function Parameters:
|
||||||
|
0:236 Sequence
|
||||||
|
0:236 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:237 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:238 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:239 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
|
0:246 Function Definition: sm_builtins( ( global void)
|
||||||
|
0:246 Function Parameters:
|
||||||
|
0:248 Sequence
|
||||||
|
0:248 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:249 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:250 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:251 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||||
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
|
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||||
@ -620,6 +639,7 @@ Requested GL_KHR_shader_subgroup_quad
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle
|
Requested GL_KHR_shader_subgroup_shuffle
|
||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:109 Function Definition: main( ( global void)
|
0:109 Function Definition: main( ( global void)
|
||||||
|
|||||||
@ -85,7 +85,11 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
|
|||||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 86 compilation errors. No code generated.
|
ERROR: 0:242: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:243: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:244: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:245: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 90 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 450
|
Shader version: 450
|
||||||
@ -97,6 +101,7 @@ Requested GL_KHR_shader_subgroup_quad
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle
|
Requested GL_KHR_shader_subgroup_shuffle
|
||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
local_size = (8, 8, 1)
|
local_size = (8, 8, 1)
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
@ -631,6 +636,20 @@ ERROR: node is still EOpNull!
|
|||||||
0:236 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
0:236 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||||
0:236 'ballot' ( temp 4-component vector of uint)
|
0:236 'ballot' ( temp 4-component vector of uint)
|
||||||
0:236 'parti' ( temp 4-component vector of uint)
|
0:236 'parti' ( temp 4-component vector of uint)
|
||||||
|
0:240 Function Definition: sm_builtins_err( ( global void)
|
||||||
|
0:240 Function Parameters:
|
||||||
|
0:242 Sequence
|
||||||
|
0:242 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:243 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:244 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:245 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
|
0:252 Function Definition: sm_builtins( ( global void)
|
||||||
|
0:252 Function Parameters:
|
||||||
|
0:254 Sequence
|
||||||
|
0:254 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:255 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:256 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:257 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||||
0:? 8 (const uint)
|
0:? 8 (const uint)
|
||||||
@ -651,6 +670,7 @@ Requested GL_KHR_shader_subgroup_quad
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle
|
Requested GL_KHR_shader_subgroup_shuffle
|
||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
local_size = (8, 8, 1)
|
local_size = (8, 8, 1)
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
|
|||||||
@ -85,7 +85,11 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
|
|||||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 86 compilation errors. No code generated.
|
ERROR: 0:298: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:299: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:300: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:301: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 90 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 460
|
Shader version: 460
|
||||||
@ -98,6 +102,7 @@ Requested GL_KHR_shader_subgroup_shuffle
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
Requested GL_NV_mesh_shader
|
Requested GL_NV_mesh_shader
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
max_vertices = 81
|
max_vertices = 81
|
||||||
max_primitives = 32
|
max_primitives = 32
|
||||||
@ -887,6 +892,20 @@ ERROR: node is still EOpNull!
|
|||||||
0:292 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
0:292 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||||
0:292 'ballot' ( temp 4-component vector of uint)
|
0:292 'ballot' ( temp 4-component vector of uint)
|
||||||
0:292 'parti' ( temp 4-component vector of uint)
|
0:292 'parti' ( temp 4-component vector of uint)
|
||||||
|
0:296 Function Definition: sm_builtins_err( ( global void)
|
||||||
|
0:296 Function Parameters:
|
||||||
|
0:298 Sequence
|
||||||
|
0:298 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:299 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:300 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:301 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
|
0:308 Function Definition: sm_builtins( ( global void)
|
||||||
|
0:308 Function Parameters:
|
||||||
|
0:310 Sequence
|
||||||
|
0:310 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:311 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:312 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:313 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||||
0:? 32 (const uint)
|
0:? 32 (const uint)
|
||||||
@ -910,6 +929,7 @@ Requested GL_KHR_shader_subgroup_shuffle
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
Requested GL_NV_mesh_shader
|
Requested GL_NV_mesh_shader
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
max_vertices = 81
|
max_vertices = 81
|
||||||
max_primitives = 32
|
max_primitives = 32
|
||||||
|
|||||||
@ -85,7 +85,11 @@ ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
|
|||||||
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 86 compilation errors. No code generated.
|
ERROR: 0:259: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:260: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:261: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:262: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 90 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 460
|
Shader version: 460
|
||||||
@ -98,6 +102,7 @@ Requested GL_KHR_shader_subgroup_shuffle
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
Requested GL_NV_ray_tracing
|
Requested GL_NV_ray_tracing
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||||
@ -671,6 +676,20 @@ ERROR: node is still EOpNull!
|
|||||||
0:253 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
0:253 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||||
0:253 'ballot' ( temp 4-component vector of uint)
|
0:253 'ballot' ( temp 4-component vector of uint)
|
||||||
0:253 'parti' ( temp 4-component vector of uint)
|
0:253 'parti' ( temp 4-component vector of uint)
|
||||||
|
0:257 Function Definition: sm_builtins_err( ( global void)
|
||||||
|
0:257 Function Parameters:
|
||||||
|
0:259 Sequence
|
||||||
|
0:259 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:260 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:261 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:262 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
|
0:269 Function Definition: sm_builtins( ( global void)
|
||||||
|
0:269 Function Parameters:
|
||||||
|
0:271 Sequence
|
||||||
|
0:271 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:272 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:273 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:274 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)
|
0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)
|
||||||
|
|
||||||
@ -688,6 +707,7 @@ Requested GL_KHR_shader_subgroup_shuffle
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
Requested GL_NV_ray_tracing
|
Requested GL_NV_ray_tracing
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:106 Function Definition: main( ( global void)
|
0:106 Function Definition: main( ( global void)
|
||||||
|
|||||||
@ -85,7 +85,11 @@ ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
|
|||||||
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 86 compilation errors. No code generated.
|
ERROR: 0:247: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:248: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:249: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:250: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 90 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 460
|
Shader version: 460
|
||||||
@ -98,6 +102,7 @@ Requested GL_KHR_shader_subgroup_shuffle
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
Requested GL_NV_ray_tracing
|
Requested GL_NV_ray_tracing
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||||
@ -614,6 +619,20 @@ ERROR: node is still EOpNull!
|
|||||||
0:241 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
0:241 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||||
0:241 'ballot' ( temp 4-component vector of uint)
|
0:241 'ballot' ( temp 4-component vector of uint)
|
||||||
0:241 'parti' ( temp 4-component vector of uint)
|
0:241 'parti' ( temp 4-component vector of uint)
|
||||||
|
0:245 Function Definition: sm_builtins_err( ( global void)
|
||||||
|
0:245 Function Parameters:
|
||||||
|
0:247 Sequence
|
||||||
|
0:247 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:248 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:249 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:250 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
|
0:257 Function Definition: sm_builtins( ( global void)
|
||||||
|
0:257 Function Parameters:
|
||||||
|
0:259 Sequence
|
||||||
|
0:259 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:260 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:261 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:262 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'data0' (layout( location=0) callableDataNV 4-component vector of float)
|
0:? 'data0' (layout( location=0) callableDataNV 4-component vector of float)
|
||||||
0:? 'anon@0' (layout( location=1) callableDataInNV block{ callableDataInNV uint data1})
|
0:? 'anon@0' (layout( location=1) callableDataInNV block{ callableDataInNV uint data1})
|
||||||
@ -632,6 +651,7 @@ Requested GL_KHR_shader_subgroup_shuffle
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
Requested GL_NV_ray_tracing
|
Requested GL_NV_ray_tracing
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:109 Function Definition: main( ( global void)
|
0:109 Function Definition: main( ( global void)
|
||||||
|
|||||||
@ -85,7 +85,11 @@ ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
|
|||||||
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 86 compilation errors. No code generated.
|
ERROR: 0:257: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:258: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:259: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:260: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 90 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 460
|
Shader version: 460
|
||||||
@ -98,6 +102,7 @@ Requested GL_KHR_shader_subgroup_shuffle
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
Requested GL_NV_ray_tracing
|
Requested GL_NV_ray_tracing
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||||
@ -680,6 +685,20 @@ ERROR: node is still EOpNull!
|
|||||||
0:251 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
0:251 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||||
0:251 'ballot' ( temp 4-component vector of uint)
|
0:251 'ballot' ( temp 4-component vector of uint)
|
||||||
0:251 'parti' ( temp 4-component vector of uint)
|
0:251 'parti' ( temp 4-component vector of uint)
|
||||||
|
0:255 Function Definition: sm_builtins_err( ( global void)
|
||||||
|
0:255 Function Parameters:
|
||||||
|
0:257 Sequence
|
||||||
|
0:257 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:258 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:259 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:260 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
|
0:267 Function Definition: sm_builtins( ( global void)
|
||||||
|
0:267 Function Parameters:
|
||||||
|
0:269 Sequence
|
||||||
|
0:269 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:270 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:271 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:272 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
|
0:? 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
|
||||||
0:? 'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float)
|
0:? 'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float)
|
||||||
@ -699,6 +718,7 @@ Requested GL_KHR_shader_subgroup_shuffle
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
Requested GL_NV_ray_tracing
|
Requested GL_NV_ray_tracing
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:108 Function Definition: main( ( global void)
|
0:108 Function Definition: main( ( global void)
|
||||||
|
|||||||
@ -85,7 +85,11 @@ ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
|
|||||||
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 86 compilation errors. No code generated.
|
ERROR: 0:251: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:252: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:253: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:254: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 90 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 460
|
Shader version: 460
|
||||||
@ -98,6 +102,7 @@ Requested GL_KHR_shader_subgroup_shuffle
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
Requested GL_NV_ray_tracing
|
Requested GL_NV_ray_tracing
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||||
@ -644,6 +649,20 @@ ERROR: node is still EOpNull!
|
|||||||
0:245 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
0:245 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||||
0:245 'ballot' ( temp 4-component vector of uint)
|
0:245 'ballot' ( temp 4-component vector of uint)
|
||||||
0:245 'parti' ( temp 4-component vector of uint)
|
0:245 'parti' ( temp 4-component vector of uint)
|
||||||
|
0:249 Function Definition: sm_builtins_err( ( global void)
|
||||||
|
0:249 Function Parameters:
|
||||||
|
0:251 Sequence
|
||||||
|
0:251 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:252 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:253 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:254 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
|
0:261 Function Definition: sm_builtins( ( global void)
|
||||||
|
0:261 Function Parameters:
|
||||||
|
0:263 Sequence
|
||||||
|
0:263 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:264 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:265 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:266 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'accNV0' (layout( set=0 binding=0) uniform accelerationStructureNV)
|
0:? 'accNV0' (layout( set=0 binding=0) uniform accelerationStructureNV)
|
||||||
0:? 'accNV1' (layout( set=0 binding=1) uniform accelerationStructureNV)
|
0:? 'accNV1' (layout( set=0 binding=1) uniform accelerationStructureNV)
|
||||||
@ -664,6 +683,7 @@ Requested GL_KHR_shader_subgroup_shuffle
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
Requested GL_NV_ray_tracing
|
Requested GL_NV_ray_tracing
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:113 Function Definition: main( ( global void)
|
0:113 Function Definition: main( ( global void)
|
||||||
|
|||||||
@ -85,7 +85,11 @@ ERROR: 0:97: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
|
|||||||
ERROR: 0:98: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:98: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:99: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:99: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:100: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:100: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 86 compilation errors. No code generated.
|
ERROR: 0:257: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:258: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:259: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:260: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 90 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 460
|
Shader version: 460
|
||||||
@ -98,6 +102,7 @@ Requested GL_KHR_shader_subgroup_shuffle
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
Requested GL_NV_ray_tracing
|
Requested GL_NV_ray_tracing
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:5 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
0:5 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||||
@ -658,6 +663,20 @@ ERROR: node is still EOpNull!
|
|||||||
0:251 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
0:251 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||||
0:251 'ballot' ( temp 4-component vector of uint)
|
0:251 'ballot' ( temp 4-component vector of uint)
|
||||||
0:251 'parti' ( temp 4-component vector of uint)
|
0:251 'parti' ( temp 4-component vector of uint)
|
||||||
|
0:255 Function Definition: sm_builtins_err( ( global void)
|
||||||
|
0:255 Function Parameters:
|
||||||
|
0:257 Sequence
|
||||||
|
0:257 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:258 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:259 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:260 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
|
0:267 Function Definition: sm_builtins( ( global void)
|
||||||
|
0:267 Function Parameters:
|
||||||
|
0:269 Sequence
|
||||||
|
0:269 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:270 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:271 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:272 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'iAttr' ( hitAttributeNV 4-component vector of float)
|
0:? 'iAttr' ( hitAttributeNV 4-component vector of float)
|
||||||
|
|
||||||
@ -675,6 +694,7 @@ Requested GL_KHR_shader_subgroup_shuffle
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
Requested GL_NV_ray_tracing
|
Requested GL_NV_ray_tracing
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:108 Function Definition: main( ( global void)
|
0:108 Function Definition: main( ( global void)
|
||||||
|
|||||||
@ -85,7 +85,11 @@ ERROR: 0:97: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
|
|||||||
ERROR: 0:98: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:98: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:99: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:99: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:100: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:100: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 86 compilation errors. No code generated.
|
ERROR: 0:251: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:252: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:253: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:254: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 90 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 460
|
Shader version: 460
|
||||||
@ -98,6 +102,7 @@ Requested GL_KHR_shader_subgroup_shuffle
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
Requested GL_NV_ray_tracing
|
Requested GL_NV_ray_tracing
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:5 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
0:5 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||||
@ -652,6 +657,20 @@ ERROR: node is still EOpNull!
|
|||||||
0:245 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
0:245 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||||
0:245 'ballot' ( temp 4-component vector of uint)
|
0:245 'ballot' ( temp 4-component vector of uint)
|
||||||
0:245 'parti' ( temp 4-component vector of uint)
|
0:245 'parti' ( temp 4-component vector of uint)
|
||||||
|
0:249 Function Definition: sm_builtins_err( ( global void)
|
||||||
|
0:249 Function Parameters:
|
||||||
|
0:251 Sequence
|
||||||
|
0:251 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:252 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:253 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:254 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
|
0:261 Function Definition: sm_builtins( ( global void)
|
||||||
|
0:261 Function Parameters:
|
||||||
|
0:263 Sequence
|
||||||
|
0:263 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:264 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:265 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:266 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
|
0:? 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
|
||||||
0:? 'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float)
|
0:? 'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float)
|
||||||
@ -671,6 +690,7 @@ Requested GL_KHR_shader_subgroup_shuffle
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
Requested GL_NV_ray_tracing
|
Requested GL_NV_ray_tracing
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:109 Function Definition: main( ( global void)
|
0:109 Function Definition: main( ( global void)
|
||||||
|
|||||||
@ -85,7 +85,11 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
|
|||||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||||
ERROR: 86 compilation errors. No code generated.
|
ERROR: 0:288: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:289: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:290: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 0:291: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
|
||||||
|
ERROR: 90 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 460
|
Shader version: 460
|
||||||
@ -98,6 +102,7 @@ Requested GL_KHR_shader_subgroup_shuffle
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
Requested GL_NV_mesh_shader
|
Requested GL_NV_mesh_shader
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
local_size = (32, 1, 1)
|
local_size = (32, 1, 1)
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
@ -729,6 +734,20 @@ ERROR: node is still EOpNull!
|
|||||||
0:282 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
0:282 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||||
0:282 'ballot' ( temp 4-component vector of uint)
|
0:282 'ballot' ( temp 4-component vector of uint)
|
||||||
0:282 'parti' ( temp 4-component vector of uint)
|
0:282 'parti' ( temp 4-component vector of uint)
|
||||||
|
0:286 Function Definition: sm_builtins_err( ( global void)
|
||||||
|
0:286 Function Parameters:
|
||||||
|
0:288 Sequence
|
||||||
|
0:288 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:289 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:290 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:291 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
|
0:298 Function Definition: sm_builtins( ( global void)
|
||||||
|
0:298 Function Parameters:
|
||||||
|
0:300 Sequence
|
||||||
|
0:300 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
|
||||||
|
0:301 'gl_SMCountNV' ( in uint SMCountNV)
|
||||||
|
0:302 'gl_WarpIDNV' ( in uint WarpIDNV)
|
||||||
|
0:303 'gl_SMIDNV' ( in uint SMIDNV)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||||
0:? 32 (const uint)
|
0:? 32 (const uint)
|
||||||
@ -753,6 +772,7 @@ Requested GL_KHR_shader_subgroup_shuffle
|
|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||||
Requested GL_KHR_shader_subgroup_vote
|
Requested GL_KHR_shader_subgroup_vote
|
||||||
Requested GL_NV_mesh_shader
|
Requested GL_NV_mesh_shader
|
||||||
|
Requested GL_NV_shader_sm_builtins
|
||||||
Requested GL_NV_shader_subgroup_partitioned
|
Requested GL_NV_shader_subgroup_partitioned
|
||||||
local_size = (32, 1, 1)
|
local_size = (32, 1, 1)
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
|
|||||||
230
Test/baseResults/hlsl.specConstant.frag.out
Executable file
230
Test/baseResults/hlsl.specConstant.frag.out
Executable file
@ -0,0 +1,230 @@
|
|||||||
|
hlsl.specConstant.frag
|
||||||
|
Shader version: 500
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:6 Function Definition: @main( ( temp 4-component vector of float)
|
||||||
|
0:6 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:8 Sequence
|
||||||
|
0:8 move second child to first child ( temp uint)
|
||||||
|
0:8 'i' ( temp uint)
|
||||||
|
0:8 Constant:
|
||||||
|
0:8 0 (const uint)
|
||||||
|
0:8 Loop with condition tested first
|
||||||
|
0:8 Loop Condition
|
||||||
|
0:8 Compare Less Than ( temp bool)
|
||||||
|
0:8 'i' ( temp uint)
|
||||||
|
0:8 indirect index ( const uint)
|
||||||
|
0:8 Constant:
|
||||||
|
0:8 10 (const uint)
|
||||||
|
0:8 20 (const uint)
|
||||||
|
0:8 30 (const uint)
|
||||||
|
0:8 40 (const uint)
|
||||||
|
0:8 'index' ( specialization-constant const uint)
|
||||||
|
0:8 2 (const uint)
|
||||||
|
0:8 Loop Body
|
||||||
|
0:9 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:9 'r' ( temp 4-component vector of float)
|
||||||
|
0:9 Construct vec4 ( temp 4-component vector of float)
|
||||||
|
0:9 Convert uint to float ( temp float)
|
||||||
|
0:9 'i' ( temp uint)
|
||||||
|
0:8 Loop Terminal Expression
|
||||||
|
0:8 Post-Increment ( temp uint)
|
||||||
|
0:8 'i' ( temp uint)
|
||||||
|
0:11 add second child into first child ( temp 4-component vector of float)
|
||||||
|
0:11 'r' ( temp 4-component vector of float)
|
||||||
|
0:11 Convert uint to float ( temp float)
|
||||||
|
0:11 add ( specialization-constant const uint)
|
||||||
|
0:11 'index' ( specialization-constant const uint)
|
||||||
|
0:11 2 (const uint)
|
||||||
|
0:11 'index' ( specialization-constant const uint)
|
||||||
|
0:11 2 (const uint)
|
||||||
|
0:12 add second child into first child ( temp 4-component vector of float)
|
||||||
|
0:12 'r' ( temp 4-component vector of float)
|
||||||
|
0:12 Convert uint to float ( temp float)
|
||||||
|
0:12 component-wise multiply ( specialization-constant const uint)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const uint)
|
||||||
|
0:12 'index' ( specialization-constant const uint)
|
||||||
|
0:12 2 (const uint)
|
||||||
|
0:14 Branch: Return with expression
|
||||||
|
0:14 'r' ( temp 4-component vector of float)
|
||||||
|
0:6 Function Definition: main( ( temp void)
|
||||||
|
0:6 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:6 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
||||||
|
0:6 Function Call: @main( ( temp 4-component vector of float)
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'index' ( specialization-constant const uint)
|
||||||
|
0:? 2 (const uint)
|
||||||
|
0:? 'array' ( const 4-element array of uint)
|
||||||
|
0:? 10 (const uint)
|
||||||
|
0:? 20 (const uint)
|
||||||
|
0:? 30 (const uint)
|
||||||
|
0:? 40 (const uint)
|
||||||
|
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
||||||
|
|
||||||
|
|
||||||
|
Linked fragment stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 500
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:6 Function Definition: @main( ( temp 4-component vector of float)
|
||||||
|
0:6 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:8 Sequence
|
||||||
|
0:8 move second child to first child ( temp uint)
|
||||||
|
0:8 'i' ( temp uint)
|
||||||
|
0:8 Constant:
|
||||||
|
0:8 0 (const uint)
|
||||||
|
0:8 Loop with condition tested first
|
||||||
|
0:8 Loop Condition
|
||||||
|
0:8 Compare Less Than ( temp bool)
|
||||||
|
0:8 'i' ( temp uint)
|
||||||
|
0:8 indirect index ( const uint)
|
||||||
|
0:8 Constant:
|
||||||
|
0:8 10 (const uint)
|
||||||
|
0:8 20 (const uint)
|
||||||
|
0:8 30 (const uint)
|
||||||
|
0:8 40 (const uint)
|
||||||
|
0:8 'index' ( specialization-constant const uint)
|
||||||
|
0:8 2 (const uint)
|
||||||
|
0:8 Loop Body
|
||||||
|
0:9 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:9 'r' ( temp 4-component vector of float)
|
||||||
|
0:9 Construct vec4 ( temp 4-component vector of float)
|
||||||
|
0:9 Convert uint to float ( temp float)
|
||||||
|
0:9 'i' ( temp uint)
|
||||||
|
0:8 Loop Terminal Expression
|
||||||
|
0:8 Post-Increment ( temp uint)
|
||||||
|
0:8 'i' ( temp uint)
|
||||||
|
0:11 add second child into first child ( temp 4-component vector of float)
|
||||||
|
0:11 'r' ( temp 4-component vector of float)
|
||||||
|
0:11 Convert uint to float ( temp float)
|
||||||
|
0:11 add ( specialization-constant const uint)
|
||||||
|
0:11 'index' ( specialization-constant const uint)
|
||||||
|
0:11 2 (const uint)
|
||||||
|
0:11 'index' ( specialization-constant const uint)
|
||||||
|
0:11 2 (const uint)
|
||||||
|
0:12 add second child into first child ( temp 4-component vector of float)
|
||||||
|
0:12 'r' ( temp 4-component vector of float)
|
||||||
|
0:12 Convert uint to float ( temp float)
|
||||||
|
0:12 component-wise multiply ( specialization-constant const uint)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const uint)
|
||||||
|
0:12 'index' ( specialization-constant const uint)
|
||||||
|
0:12 2 (const uint)
|
||||||
|
0:14 Branch: Return with expression
|
||||||
|
0:14 'r' ( temp 4-component vector of float)
|
||||||
|
0:6 Function Definition: main( ( temp void)
|
||||||
|
0:6 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:6 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
||||||
|
0:6 Function Call: @main( ( temp 4-component vector of float)
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'index' ( specialization-constant const uint)
|
||||||
|
0:? 2 (const uint)
|
||||||
|
0:? 'array' ( const 4-element array of uint)
|
||||||
|
0:? 10 (const uint)
|
||||||
|
0:? 20 (const uint)
|
||||||
|
0:? 30 (const uint)
|
||||||
|
0:? 40 (const uint)
|
||||||
|
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80007
|
||||||
|
// Id's are bound by 61
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "main" 59
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source HLSL 500
|
||||||
|
Name 4 "main"
|
||||||
|
Name 9 "@main("
|
||||||
|
Name 13 "i"
|
||||||
|
Name 28 "index"
|
||||||
|
Name 30 "indexable"
|
||||||
|
Name 36 "r"
|
||||||
|
Name 59 "@entryPointOutput"
|
||||||
|
Decorate 28(index) SpecId 0
|
||||||
|
Decorate 59(@entryPointOutput) Location 0
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypeFunction 7(fvec4)
|
||||||
|
11: TypeInt 32 0
|
||||||
|
12: TypePointer Function 11(int)
|
||||||
|
14: 11(int) Constant 0
|
||||||
|
21: 11(int) Constant 4
|
||||||
|
22: TypeArray 11(int) 21
|
||||||
|
23: 11(int) Constant 10
|
||||||
|
24: 11(int) Constant 20
|
||||||
|
25: 11(int) Constant 30
|
||||||
|
26: 11(int) Constant 40
|
||||||
|
27: 22 ConstantComposite 23 24 25 26
|
||||||
|
28(index): 11(int) SpecConstant 2
|
||||||
|
29: TypePointer Function 22
|
||||||
|
33: TypeBool
|
||||||
|
35: TypePointer Function 7(fvec4)
|
||||||
|
41: TypeInt 32 1
|
||||||
|
42: 41(int) Constant 1
|
||||||
|
44: 11(int) SpecConstantOp 128 28(index) 28(index)
|
||||||
|
49: 11(int) Constant 2
|
||||||
|
50: 11(int) SpecConstantOp 132 49 28(index)
|
||||||
|
58: TypePointer Output 7(fvec4)
|
||||||
|
59(@entryPointOutput): 58(ptr) Variable Output
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
60: 7(fvec4) FunctionCall 9(@main()
|
||||||
|
Store 59(@entryPointOutput) 60
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
|
9(@main(): 7(fvec4) Function None 8
|
||||||
|
10: Label
|
||||||
|
13(i): 12(ptr) Variable Function
|
||||||
|
30(indexable): 29(ptr) Variable Function
|
||||||
|
36(r): 35(ptr) Variable Function
|
||||||
|
Store 13(i) 14
|
||||||
|
Branch 15
|
||||||
|
15: Label
|
||||||
|
LoopMerge 17 18 None
|
||||||
|
Branch 19
|
||||||
|
19: Label
|
||||||
|
20: 11(int) Load 13(i)
|
||||||
|
Store 30(indexable) 27
|
||||||
|
31: 12(ptr) AccessChain 30(indexable) 28(index)
|
||||||
|
32: 11(int) Load 31
|
||||||
|
34: 33(bool) ULessThan 20 32
|
||||||
|
BranchConditional 34 16 17
|
||||||
|
16: Label
|
||||||
|
37: 11(int) Load 13(i)
|
||||||
|
38: 6(float) ConvertUToF 37
|
||||||
|
39: 7(fvec4) CompositeConstruct 38 38 38 38
|
||||||
|
Store 36(r) 39
|
||||||
|
Branch 18
|
||||||
|
18: Label
|
||||||
|
40: 11(int) Load 13(i)
|
||||||
|
43: 11(int) IAdd 40 42
|
||||||
|
Store 13(i) 43
|
||||||
|
Branch 15
|
||||||
|
17: Label
|
||||||
|
45: 6(float) ConvertUToF 44
|
||||||
|
46: 7(fvec4) Load 36(r)
|
||||||
|
47: 7(fvec4) CompositeConstruct 45 45 45 45
|
||||||
|
48: 7(fvec4) FAdd 46 47
|
||||||
|
Store 36(r) 48
|
||||||
|
51: 6(float) ConvertUToF 50
|
||||||
|
52: 7(fvec4) Load 36(r)
|
||||||
|
53: 7(fvec4) CompositeConstruct 51 51 51 51
|
||||||
|
54: 7(fvec4) FAdd 52 53
|
||||||
|
Store 36(r) 54
|
||||||
|
55: 7(fvec4) Load 36(r)
|
||||||
|
ReturnValue 55
|
||||||
|
FunctionEnd
|
||||||
@ -135,7 +135,6 @@ local_size = (256, 1, 1)
|
|||||||
0:? 'g_output' (layout( binding=1 rg32ui) uniform uimageBuffer)
|
0:? 'g_output' (layout( binding=1 rg32ui) uniform uimageBuffer)
|
||||||
0:? 'dispatchId' ( in 3-component vector of uint GlobalInvocationID)
|
0:? 'dispatchId' ( in 3-component vector of uint GlobalInvocationID)
|
||||||
|
|
||||||
Validation failed
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80007
|
// Generated by (magic number): 80007
|
||||||
// Id's are bound by 63
|
// Id's are bound by 63
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
spv.16bitstorage-int.frag
|
spv.16bitstorage-int.frag
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80007
|
// Generated by (magic number): 80007
|
||||||
// Id's are bound by 172
|
// Id's are bound by 171
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
Capability StorageUniformBufferBlock16
|
Capability StorageUniformBufferBlock16
|
||||||
@ -209,10 +209,7 @@ spv.16bitstorage-int.frag
|
|||||||
114: 20(int) Constant 7
|
114: 20(int) Constant 7
|
||||||
115: 20(int) Constant 6
|
115: 20(int) Constant 6
|
||||||
116: TypePointer Uniform 20(int)
|
116: TypePointer Uniform 20(int)
|
||||||
166: 6(int16_t) Constant 1
|
166: 39(ivec2) ConstantComposite 32 33
|
||||||
167: 6(int16_t) Constant 2
|
|
||||||
168: 7(i16vec2) ConstantComposite 166 167
|
|
||||||
170: 6(int16_t) Constant 3
|
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
69(x0): 68(ptr) Variable Function
|
69(x0): 68(ptr) Variable Function
|
||||||
@ -332,9 +329,11 @@ spv.16bitstorage-int.frag
|
|||||||
164: 6(int16_t) Load 163
|
164: 6(int16_t) Load 163
|
||||||
165: 28(ptr) AccessChain 19(b2) 21
|
165: 28(ptr) AccessChain 19(b2) 21
|
||||||
Store 165 164
|
Store 165 164
|
||||||
169: 42(ptr) AccessChain 19(b2) 32
|
167: 7(i16vec2) SConvert 166
|
||||||
Store 169 168
|
168: 42(ptr) AccessChain 19(b2) 32
|
||||||
171: 28(ptr) AccessChain 19(b2) 21
|
Store 168 167
|
||||||
Store 171 170
|
169: 6(int16_t) SConvert 58
|
||||||
|
170: 28(ptr) AccessChain 19(b2) 21
|
||||||
|
Store 170 169
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -210,10 +210,8 @@ spv.16bitstorage-uint.frag
|
|||||||
115: 20(int) Constant 7
|
115: 20(int) Constant 7
|
||||||
116: 20(int) Constant 6
|
116: 20(int) Constant 6
|
||||||
117: TypePointer Uniform 9(int)
|
117: TypePointer Uniform 9(int)
|
||||||
167: 6(int16_t) Constant 1
|
167: 39(ivec2) ConstantComposite 82 10
|
||||||
168: 6(int16_t) Constant 2
|
170: 9(int) Constant 3
|
||||||
169: 7(i16vec2) ConstantComposite 167 168
|
|
||||||
171: 6(int16_t) Constant 3
|
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
69(x0): 68(ptr) Variable Function
|
69(x0): 68(ptr) Variable Function
|
||||||
@ -333,8 +331,10 @@ spv.16bitstorage-uint.frag
|
|||||||
165: 6(int16_t) Load 164
|
165: 6(int16_t) Load 164
|
||||||
166: 28(ptr) AccessChain 19(b2) 21
|
166: 28(ptr) AccessChain 19(b2) 21
|
||||||
Store 166 165
|
Store 166 165
|
||||||
170: 42(ptr) AccessChain 19(b2) 32
|
168: 7(i16vec2) UConvert 167
|
||||||
Store 170 169
|
169: 42(ptr) AccessChain 19(b2) 32
|
||||||
|
Store 169 168
|
||||||
|
171: 6(int16_t) UConvert 170
|
||||||
172: 28(ptr) AccessChain 19(b2) 21
|
172: 28(ptr) AccessChain 19(b2) 21
|
||||||
Store 172 171
|
Store 172 171
|
||||||
Return
|
Return
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
spv.16bitstorage.frag
|
spv.16bitstorage.frag
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80007
|
// Generated by (magic number): 80007
|
||||||
// Id's are bound by 172
|
// Id's are bound by 173
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
Capability StorageUniformBufferBlock16
|
Capability StorageUniformBufferBlock16
|
||||||
@ -209,10 +209,9 @@ spv.16bitstorage.frag
|
|||||||
114: 20(int) Constant 7
|
114: 20(int) Constant 7
|
||||||
115: 20(int) Constant 6
|
115: 20(int) Constant 6
|
||||||
116: TypePointer Uniform 20(int)
|
116: TypePointer Uniform 20(int)
|
||||||
166:6(float16_t) Constant 15360
|
166: 37(float) Constant 1073741824
|
||||||
167:6(float16_t) Constant 16384
|
167: 40(fvec2) ConstantComposite 83 166
|
||||||
168: 7(f16vec2) ConstantComposite 166 167
|
170: 37(float) Constant 1077936128
|
||||||
170:6(float16_t) Constant 16896
|
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
70(x0): 69(ptr) Variable Function
|
70(x0): 69(ptr) Variable Function
|
||||||
@ -332,9 +331,11 @@ spv.16bitstorage.frag
|
|||||||
164:6(float16_t) Load 163
|
164:6(float16_t) Load 163
|
||||||
165: 28(ptr) AccessChain 19(b2) 21
|
165: 28(ptr) AccessChain 19(b2) 21
|
||||||
Store 165 164
|
Store 165 164
|
||||||
|
168: 7(f16vec2) FConvert 167
|
||||||
169: 43(ptr) AccessChain 19(b2) 32
|
169: 43(ptr) AccessChain 19(b2) 32
|
||||||
Store 169 168
|
Store 169 168
|
||||||
171: 28(ptr) AccessChain 19(b2) 21
|
171:6(float16_t) FConvert 170
|
||||||
Store 171 170
|
172: 28(ptr) AccessChain 19(b2) 21
|
||||||
|
Store 172 171
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
1402
Test/baseResults/spv.400.frag.nanclamp.out
Normal file
1402
Test/baseResults/spv.400.frag.nanclamp.out
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
|||||||
spv.8bitstorage-int.frag
|
spv.8bitstorage-int.frag
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80007
|
// Generated by (magic number): 80007
|
||||||
// Id's are bound by 172
|
// Id's are bound by 171
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
Capability UniformAndStorageBuffer8BitAccess
|
Capability UniformAndStorageBuffer8BitAccess
|
||||||
@ -208,10 +208,7 @@ spv.8bitstorage-int.frag
|
|||||||
114: 20(int) Constant 7
|
114: 20(int) Constant 7
|
||||||
115: 20(int) Constant 6
|
115: 20(int) Constant 6
|
||||||
116: TypePointer Uniform 20(int)
|
116: TypePointer Uniform 20(int)
|
||||||
166: 6(int8_t) Constant 1
|
166: 39(ivec2) ConstantComposite 32 33
|
||||||
167: 6(int8_t) Constant 2
|
|
||||||
168: 7(i8vec2) ConstantComposite 166 167
|
|
||||||
170: 6(int8_t) Constant 3
|
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
69(x0): 68(ptr) Variable Function
|
69(x0): 68(ptr) Variable Function
|
||||||
@ -331,9 +328,11 @@ spv.8bitstorage-int.frag
|
|||||||
164: 6(int8_t) Load 163
|
164: 6(int8_t) Load 163
|
||||||
165: 28(ptr) AccessChain 19(b2) 21
|
165: 28(ptr) AccessChain 19(b2) 21
|
||||||
Store 165 164
|
Store 165 164
|
||||||
169: 42(ptr) AccessChain 19(b2) 32
|
167: 7(i8vec2) SConvert 166
|
||||||
Store 169 168
|
168: 42(ptr) AccessChain 19(b2) 32
|
||||||
171: 28(ptr) AccessChain 19(b2) 21
|
Store 168 167
|
||||||
Store 171 170
|
169: 6(int8_t) SConvert 58
|
||||||
|
170: 28(ptr) AccessChain 19(b2) 21
|
||||||
|
Store 170 169
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -209,10 +209,8 @@ spv.8bitstorage-uint.frag
|
|||||||
115: 20(int) Constant 7
|
115: 20(int) Constant 7
|
||||||
116: 20(int) Constant 6
|
116: 20(int) Constant 6
|
||||||
117: TypePointer Uniform 9(int)
|
117: TypePointer Uniform 9(int)
|
||||||
167: 6(int8_t) Constant 1
|
167: 39(ivec2) ConstantComposite 82 10
|
||||||
168: 6(int8_t) Constant 2
|
170: 9(int) Constant 3
|
||||||
169: 7(i8vec2) ConstantComposite 167 168
|
|
||||||
171: 6(int8_t) Constant 3
|
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
69(x0): 68(ptr) Variable Function
|
69(x0): 68(ptr) Variable Function
|
||||||
@ -332,8 +330,10 @@ spv.8bitstorage-uint.frag
|
|||||||
165: 6(int8_t) Load 164
|
165: 6(int8_t) Load 164
|
||||||
166: 28(ptr) AccessChain 19(b2) 21
|
166: 28(ptr) AccessChain 19(b2) 21
|
||||||
Store 166 165
|
Store 166 165
|
||||||
170: 42(ptr) AccessChain 19(b2) 32
|
168: 7(i8vec2) UConvert 167
|
||||||
Store 170 169
|
169: 42(ptr) AccessChain 19(b2) 32
|
||||||
|
Store 169 168
|
||||||
|
171: 6(int8_t) UConvert 170
|
||||||
172: 28(ptr) AccessChain 19(b2) 21
|
172: 28(ptr) AccessChain 19(b2) 21
|
||||||
Store 172 171
|
Store 172 171
|
||||||
Return
|
Return
|
||||||
|
|||||||
@ -4,7 +4,7 @@ WARNING: 0:6: '' : all default precisions are highp; use precision statements to
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80007
|
// Generated by (magic number): 80007
|
||||||
// Id's are bound by 60
|
// Id's are bound by 61
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
Capability StorageBuffer8BitAccess
|
Capability StorageBuffer8BitAccess
|
||||||
@ -68,7 +68,7 @@ WARNING: 0:6: '' : all default precisions are highp; use precision statements to
|
|||||||
50: 49(ptr) Variable StorageBuffer
|
50: 49(ptr) Variable StorageBuffer
|
||||||
51: TypePointer StorageBuffer 6(int)
|
51: TypePointer StorageBuffer 6(int)
|
||||||
54: 31(int) Constant 1
|
54: 31(int) Constant 1
|
||||||
58: 27(int8_t) Constant 9
|
58: 6(int) Constant 9
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
20(allOk): 19(ptr) Variable Function
|
20(allOk): 19(ptr) Variable Function
|
||||||
@ -103,8 +103,9 @@ WARNING: 0:6: '' : all default precisions are highp; use precision statements to
|
|||||||
47: Label
|
47: Label
|
||||||
56: 33(ptr) AccessChain 30 32
|
56: 33(ptr) AccessChain 30 32
|
||||||
57: 25(ptr) Load 56
|
57: 25(ptr) Load 56
|
||||||
59: 36(ptr) AccessChain 57 32
|
59: 27(int8_t) UConvert 58
|
||||||
Store 59 58 Aligned 16
|
60: 36(ptr) AccessChain 57 32
|
||||||
|
Store 60 59 Aligned 16
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
12(compare_uint8_t(u1;u1;): 8(bool) Function None 9
|
12(compare_uint8_t(u1;u1;): 8(bool) Function None 9
|
||||||
|
|||||||
69
Test/baseResults/spv.conditionalDemote.frag.out
Normal file
69
Test/baseResults/spv.conditionalDemote.frag.out
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
spv.conditionalDemote.frag
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80007
|
||||||
|
// Id's are bound by 38
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability DemoteToHelperInvocationEXT
|
||||||
|
Extension "SPV_EXT_demote_to_helper_invocation"
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "main" 17 36
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source GLSL 460
|
||||||
|
SourceExtension "GL_EXT_demote_to_helper_invocation"
|
||||||
|
Name 4 "main"
|
||||||
|
Name 9 "v"
|
||||||
|
Name 13 "tex"
|
||||||
|
Name 17 "coord"
|
||||||
|
Name 33 "x"
|
||||||
|
Name 36 "o"
|
||||||
|
Decorate 13(tex) DescriptorSet 0
|
||||||
|
Decorate 13(tex) Binding 0
|
||||||
|
Decorate 17(coord) Location 0
|
||||||
|
Decorate 36(o) Location 0
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypePointer Function 7(fvec4)
|
||||||
|
10: TypeImage 6(float) 2D sampled format:Unknown
|
||||||
|
11: TypeSampledImage 10
|
||||||
|
12: TypePointer UniformConstant 11
|
||||||
|
13(tex): 12(ptr) Variable UniformConstant
|
||||||
|
15: TypeVector 6(float) 2
|
||||||
|
16: TypePointer Input 15(fvec2)
|
||||||
|
17(coord): 16(ptr) Variable Input
|
||||||
|
21: 6(float) Constant 1036831949
|
||||||
|
22: 6(float) Constant 1045220557
|
||||||
|
23: 6(float) Constant 1050253722
|
||||||
|
24: 6(float) Constant 1053609165
|
||||||
|
25: 7(fvec4) ConstantComposite 21 22 23 24
|
||||||
|
26: TypeBool
|
||||||
|
27: TypeVector 26(bool) 4
|
||||||
|
32: TypePointer Function 26(bool)
|
||||||
|
35: TypePointer Output 7(fvec4)
|
||||||
|
36(o): 35(ptr) Variable Output
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
9(v): 8(ptr) Variable Function
|
||||||
|
33(x): 32(ptr) Variable Function
|
||||||
|
14: 11 Load 13(tex)
|
||||||
|
18: 15(fvec2) Load 17(coord)
|
||||||
|
19: 7(fvec4) ImageSampleImplicitLod 14 18
|
||||||
|
Store 9(v) 19
|
||||||
|
20: 7(fvec4) Load 9(v)
|
||||||
|
28: 27(bvec4) FOrdEqual 20 25
|
||||||
|
29: 26(bool) All 28
|
||||||
|
SelectionMerge 31 None
|
||||||
|
BranchConditional 29 30 31
|
||||||
|
30: Label
|
||||||
|
DemoteToHelperInvocationEXT
|
||||||
|
Branch 31
|
||||||
|
31: Label
|
||||||
|
34: 26(bool) IsHelperInvocationEXT
|
||||||
|
Store 33(x) 34
|
||||||
|
37: 7(fvec4) Load 9(v)
|
||||||
|
Store 36(o) 37
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
171
Test/baseResults/spv.constConstruct.vert.out
Normal file
171
Test/baseResults/spv.constConstruct.vert.out
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
spv.constConstruct.vert
|
||||||
|
Validation failed
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80007
|
||||||
|
// Id's are bound by 150
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability Float64
|
||||||
|
Capability Int64
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Vertex 4 "main"
|
||||||
|
Source GLSL 450
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float32"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float64"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int32"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8"
|
||||||
|
Name 4 "main"
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 16
|
||||||
|
7:6(float16_t) Constant 15360
|
||||||
|
8:6(float16_t) Constant 16384
|
||||||
|
9:6(float16_t) Constant 16896
|
||||||
|
10:6(float16_t) Constant 17408
|
||||||
|
11:6(float16_t) Constant 17664
|
||||||
|
12:6(float16_t) Constant 17920
|
||||||
|
13:6(float16_t) Constant 18176
|
||||||
|
14:6(float16_t) Constant 18432
|
||||||
|
15:6(float16_t) Constant 18560
|
||||||
|
16:6(float16_t) Constant 18688
|
||||||
|
17:6(float16_t) Constant 18816
|
||||||
|
18: TypeFloat 32
|
||||||
|
19: 18(float) Constant 1099431936
|
||||||
|
20: 18(float) Constant 1099956224
|
||||||
|
21: 18(float) Constant 1100480512
|
||||||
|
22: 18(float) Constant 1101004800
|
||||||
|
23: 18(float) Constant 1101529088
|
||||||
|
24: 18(float) Constant 1102053376
|
||||||
|
25: 18(float) Constant 1102577664
|
||||||
|
26: 18(float) Constant 1103101952
|
||||||
|
27: 18(float) Constant 1103626240
|
||||||
|
28: 18(float) Constant 1104150528
|
||||||
|
29: 18(float) Constant 1104674816
|
||||||
|
30: 18(float) Constant 1065353216
|
||||||
|
31: TypeFloat 64
|
||||||
|
32:31(float64_t) Constant 0 1077968896
|
||||||
|
33:31(float64_t) Constant 0 1078001664
|
||||||
|
34:31(float64_t) Constant 0 1078034432
|
||||||
|
35:31(float64_t) Constant 0 1078067200
|
||||||
|
36:31(float64_t) Constant 0 1078099968
|
||||||
|
37:31(float64_t) Constant 0 1078132736
|
||||||
|
38:31(float64_t) Constant 0 1078165504
|
||||||
|
39:31(float64_t) Constant 0 1078198272
|
||||||
|
40:31(float64_t) Constant 0 1078231040
|
||||||
|
41:31(float64_t) Constant 0 1078263808
|
||||||
|
42:31(float64_t) Constant 0 1078296576
|
||||||
|
43:31(float64_t) Constant 0 1072693248
|
||||||
|
44: TypeInt 8 1
|
||||||
|
45: 44(int8_t) Constant 49
|
||||||
|
46: 44(int8_t) Constant 50
|
||||||
|
47: 44(int8_t) Constant 51
|
||||||
|
48: 44(int8_t) Constant 52
|
||||||
|
49: 44(int8_t) Constant 53
|
||||||
|
50: 44(int8_t) Constant 54
|
||||||
|
51: 44(int8_t) Constant 55
|
||||||
|
52: 44(int8_t) Constant 56
|
||||||
|
53: 44(int8_t) Constant 57
|
||||||
|
54: 44(int8_t) Constant 58
|
||||||
|
55: 44(int8_t) Constant 59
|
||||||
|
56: 44(int8_t) Constant 1
|
||||||
|
57: TypeInt 16 1
|
||||||
|
58: 57(int16_t) Constant 65
|
||||||
|
59: 57(int16_t) Constant 66
|
||||||
|
60: 57(int16_t) Constant 67
|
||||||
|
61: 57(int16_t) Constant 68
|
||||||
|
62: 57(int16_t) Constant 69
|
||||||
|
63: 57(int16_t) Constant 70
|
||||||
|
64: 57(int16_t) Constant 71
|
||||||
|
65: 57(int16_t) Constant 72
|
||||||
|
66: 57(int16_t) Constant 73
|
||||||
|
67: 57(int16_t) Constant 74
|
||||||
|
68: 57(int16_t) Constant 75
|
||||||
|
69: 57(int16_t) Constant 1
|
||||||
|
70: TypeInt 32 1
|
||||||
|
71: 70(int) Constant 81
|
||||||
|
72: 70(int) Constant 82
|
||||||
|
73: 70(int) Constant 83
|
||||||
|
74: 70(int) Constant 84
|
||||||
|
75: 70(int) Constant 85
|
||||||
|
76: 70(int) Constant 86
|
||||||
|
77: 70(int) Constant 87
|
||||||
|
78: 70(int) Constant 88
|
||||||
|
79: 70(int) Constant 89
|
||||||
|
80: 70(int) Constant 90
|
||||||
|
81: 70(int) Constant 91
|
||||||
|
82: 70(int) Constant 1
|
||||||
|
83: TypeInt 64 1
|
||||||
|
84: 83(int64_t) Constant 97 0
|
||||||
|
85: 83(int64_t) Constant 98 0
|
||||||
|
86: 83(int64_t) Constant 99 0
|
||||||
|
87: 83(int64_t) Constant 100 0
|
||||||
|
88: 83(int64_t) Constant 101 0
|
||||||
|
89: 83(int64_t) Constant 102 0
|
||||||
|
90: 83(int64_t) Constant 103 0
|
||||||
|
91: 83(int64_t) Constant 104 0
|
||||||
|
92: 83(int64_t) Constant 105 0
|
||||||
|
93: 83(int64_t) Constant 106 0
|
||||||
|
94: 83(int64_t) Constant 107 0
|
||||||
|
95: 83(int64_t) Constant 1 0
|
||||||
|
96: TypeInt 8 0
|
||||||
|
97: 96(int8_t) Constant 113
|
||||||
|
98: 96(int8_t) Constant 114
|
||||||
|
99: 96(int8_t) Constant 115
|
||||||
|
100: 96(int8_t) Constant 116
|
||||||
|
101: 96(int8_t) Constant 117
|
||||||
|
102: 96(int8_t) Constant 118
|
||||||
|
103: 96(int8_t) Constant 119
|
||||||
|
104: 96(int8_t) Constant 120
|
||||||
|
105: 96(int8_t) Constant 121
|
||||||
|
106: 96(int8_t) Constant 122
|
||||||
|
107: 96(int8_t) Constant 123
|
||||||
|
108: 96(int8_t) Constant 1
|
||||||
|
109: TypeInt 16 0
|
||||||
|
110:109(int16_t) Constant 129
|
||||||
|
111:109(int16_t) Constant 130
|
||||||
|
112:109(int16_t) Constant 131
|
||||||
|
113:109(int16_t) Constant 65412
|
||||||
|
114:109(int16_t) Constant 133
|
||||||
|
115:109(int16_t) Constant 134
|
||||||
|
116:109(int16_t) Constant 135
|
||||||
|
117:109(int16_t) Constant 136
|
||||||
|
118:109(int16_t) Constant 137
|
||||||
|
119:109(int16_t) Constant 138
|
||||||
|
120:109(int16_t) Constant 139
|
||||||
|
121:109(int16_t) Constant 1
|
||||||
|
122: TypeInt 32 0
|
||||||
|
123: 122(int) Constant 145
|
||||||
|
124: 122(int) Constant 146
|
||||||
|
125: 122(int) Constant 147
|
||||||
|
126: 122(int) Constant 4294967188
|
||||||
|
127: 122(int) Constant 149
|
||||||
|
128: 122(int) Constant 150
|
||||||
|
129: 122(int) Constant 151
|
||||||
|
130: 122(int) Constant 152
|
||||||
|
131: 122(int) Constant 153
|
||||||
|
132: 122(int) Constant 154
|
||||||
|
133: 122(int) Constant 155
|
||||||
|
134: 122(int) Constant 1
|
||||||
|
135: TypeInt 64 0
|
||||||
|
136:135(int64_t) Constant 161 0
|
||||||
|
137:135(int64_t) Constant 162 0
|
||||||
|
138:135(int64_t) Constant 163 0
|
||||||
|
139:135(int64_t) Constant 4294967204 4294967295
|
||||||
|
140:135(int64_t) Constant 165 0
|
||||||
|
141:135(int64_t) Constant 166 0
|
||||||
|
142:135(int64_t) Constant 167 0
|
||||||
|
143:135(int64_t) Constant 168 0
|
||||||
|
144:135(int64_t) Constant 169 0
|
||||||
|
145:135(int64_t) Constant 170 0
|
||||||
|
146:135(int64_t) Constant 171 0
|
||||||
|
147:135(int64_t) Constant 1 0
|
||||||
|
148: TypeBool
|
||||||
|
149: 148(bool) ConstantTrue
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
6
Test/baseResults/spv.demoteDisabled.frag.out
Normal file
6
Test/baseResults/spv.demoteDisabled.frag.out
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
spv.demoteDisabled.frag
|
||||||
|
ERROR: 0:9: 'demote' : undeclared identifier
|
||||||
|
ERROR: 1 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
SPIR-V is not generated for failed compile or link
|
||||||
62
Test/baseResults/spv.functionParameterTypes.frag.out
Normal file
62
Test/baseResults/spv.functionParameterTypes.frag.out
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
spv.functionParameterTypes.frag
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80007
|
||||||
|
// Id's are bound by 34
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability Float16
|
||||||
|
Capability Int64
|
||||||
|
Capability Int16
|
||||||
|
Capability Int8
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source GLSL 460
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8"
|
||||||
|
Name 4 "main"
|
||||||
|
Name 29 "f(i81;u81;i161;u161;i641;u641;f161;"
|
||||||
|
Name 22 "i8"
|
||||||
|
Name 23 "u8"
|
||||||
|
Name 24 "i16"
|
||||||
|
Name 25 "u16"
|
||||||
|
Name 26 "i64"
|
||||||
|
Name 27 "u64"
|
||||||
|
Name 28 "f16"
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeInt 8 1
|
||||||
|
7: TypePointer Function 6(int8_t)
|
||||||
|
8: TypeInt 8 0
|
||||||
|
9: TypePointer Function 8(int8_t)
|
||||||
|
10: TypeInt 16 1
|
||||||
|
11: TypePointer Function 10(int16_t)
|
||||||
|
12: TypeInt 16 0
|
||||||
|
13: TypePointer Function 12(int16_t)
|
||||||
|
14: TypeInt 64 1
|
||||||
|
15: TypePointer Function 14(int64_t)
|
||||||
|
16: TypeInt 64 0
|
||||||
|
17: TypePointer Function 16(int64_t)
|
||||||
|
18: TypeFloat 16
|
||||||
|
19: TypePointer Function 18(float16_t)
|
||||||
|
20: TypeInt 32 1
|
||||||
|
21: TypeFunction 20(int) 7(ptr) 9(ptr) 11(ptr) 13(ptr) 15(ptr) 17(ptr) 19(ptr)
|
||||||
|
31: 20(int) Constant 0
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
|
29(f(i81;u81;i161;u161;i641;u641;f161;): 20(int) Function None 21
|
||||||
|
22(i8): 7(ptr) FunctionParameter
|
||||||
|
23(u8): 9(ptr) FunctionParameter
|
||||||
|
24(i16): 11(ptr) FunctionParameter
|
||||||
|
25(u16): 13(ptr) FunctionParameter
|
||||||
|
26(i64): 15(ptr) FunctionParameter
|
||||||
|
27(u64): 17(ptr) FunctionParameter
|
||||||
|
28(f16): 19(ptr) FunctionParameter
|
||||||
|
30: Label
|
||||||
|
ReturnValue 31
|
||||||
|
FunctionEnd
|
||||||
@ -1,7 +1,7 @@
|
|||||||
spv.memoryScopeSemantics.comp
|
spv.memoryScopeSemantics.comp
|
||||||
// Module Version 10300
|
// Module Version 10300
|
||||||
// Generated by (magic number): 80007
|
// Generated by (magic number): 80007
|
||||||
// Id's are bound by 148
|
// Id's are bound by 163
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
Capability Int64
|
Capability Int64
|
||||||
@ -23,59 +23,66 @@ spv.memoryScopeSemantics.comp
|
|||||||
Name 23 "atomu"
|
Name 23 "atomu"
|
||||||
Name 24 "value"
|
Name 24 "value"
|
||||||
Name 36 "imagei"
|
Name 36 "imagei"
|
||||||
Name 45 "imageu"
|
Name 46 "imageu"
|
||||||
Name 65 "BufferU"
|
Name 66 "BufferU"
|
||||||
MemberName 65(BufferU) 0 "x"
|
MemberName 66(BufferU) 0 "x"
|
||||||
Name 67 "bufferu"
|
Name 68 "bufferu"
|
||||||
Name 72 "y"
|
Name 73 "y"
|
||||||
Name 77 "BufferI"
|
Name 78 "BufferI"
|
||||||
MemberName 77(BufferI) 0 "x"
|
MemberName 78(BufferI) 0 "x"
|
||||||
Name 79 "bufferi"
|
Name 80 "bufferi"
|
||||||
Name 83 "A"
|
Name 84 "A"
|
||||||
MemberName 83(A) 0 "x"
|
MemberName 84(A) 0 "x"
|
||||||
Name 84 "BufferJ"
|
Name 85 "BufferJ"
|
||||||
MemberName 84(BufferJ) 0 "a"
|
MemberName 85(BufferJ) 0 "a"
|
||||||
Name 87 "bufferj"
|
Name 88 "bufferj"
|
||||||
Name 98 "BufferK"
|
Name 99 "BufferK"
|
||||||
MemberName 98(BufferK) 0 "x"
|
MemberName 99(BufferK) 0 "x"
|
||||||
Name 100 "bufferk"
|
Name 101 "bufferk"
|
||||||
Name 110 "imagej"
|
Name 111 "imagej"
|
||||||
Name 122 "samp"
|
Name 123 "samp"
|
||||||
Name 133 "atomu64"
|
Name 134 "atomu64"
|
||||||
Name 138 "atomi64"
|
Name 139 "atomi64"
|
||||||
Name 143 "BufferL"
|
Name 144 "BufferL"
|
||||||
MemberName 143(BufferL) 0 "x"
|
MemberName 144(BufferL) 0 "x"
|
||||||
Name 145 "bufferl"
|
Name 146 "bufferl"
|
||||||
|
Name 151 "BufferM"
|
||||||
|
MemberName 151(BufferM) 0 "x"
|
||||||
|
Name 153 "bufferm"
|
||||||
Decorate 36(imagei) DescriptorSet 0
|
Decorate 36(imagei) DescriptorSet 0
|
||||||
Decorate 36(imagei) Binding 1
|
Decorate 36(imagei) Binding 1
|
||||||
Decorate 45(imageu) DescriptorSet 0
|
Decorate 46(imageu) DescriptorSet 0
|
||||||
Decorate 45(imageu) Binding 0
|
Decorate 46(imageu) Binding 0
|
||||||
MemberDecorate 65(BufferU) 0 Offset 0
|
MemberDecorate 66(BufferU) 0 Offset 0
|
||||||
Decorate 65(BufferU) Block
|
Decorate 66(BufferU) Block
|
||||||
Decorate 67(bufferu) DescriptorSet 0
|
Decorate 68(bufferu) DescriptorSet 0
|
||||||
Decorate 67(bufferu) Binding 2
|
Decorate 68(bufferu) Binding 2
|
||||||
MemberDecorate 77(BufferI) 0 Offset 0
|
MemberDecorate 78(BufferI) 0 Offset 0
|
||||||
Decorate 77(BufferI) Block
|
Decorate 78(BufferI) Block
|
||||||
Decorate 79(bufferi) DescriptorSet 0
|
Decorate 80(bufferi) DescriptorSet 0
|
||||||
Decorate 79(bufferi) Binding 3
|
Decorate 80(bufferi) Binding 3
|
||||||
Decorate 82 ArrayStride 4
|
Decorate 83 ArrayStride 4
|
||||||
MemberDecorate 83(A) 0 Offset 0
|
MemberDecorate 84(A) 0 Offset 0
|
||||||
MemberDecorate 84(BufferJ) 0 Offset 0
|
MemberDecorate 85(BufferJ) 0 Offset 0
|
||||||
Decorate 84(BufferJ) Block
|
Decorate 85(BufferJ) Block
|
||||||
Decorate 87(bufferj) DescriptorSet 0
|
Decorate 88(bufferj) DescriptorSet 0
|
||||||
Decorate 87(bufferj) Binding 4
|
Decorate 88(bufferj) Binding 4
|
||||||
MemberDecorate 98(BufferK) 0 Offset 0
|
MemberDecorate 99(BufferK) 0 Offset 0
|
||||||
Decorate 98(BufferK) Block
|
Decorate 99(BufferK) Block
|
||||||
Decorate 100(bufferk) DescriptorSet 0
|
Decorate 101(bufferk) DescriptorSet 0
|
||||||
Decorate 100(bufferk) Binding 7
|
Decorate 101(bufferk) Binding 7
|
||||||
Decorate 110(imagej) DescriptorSet 0
|
Decorate 111(imagej) DescriptorSet 0
|
||||||
Decorate 110(imagej) Binding 5
|
Decorate 111(imagej) Binding 5
|
||||||
Decorate 122(samp) DescriptorSet 0
|
Decorate 123(samp) DescriptorSet 0
|
||||||
Decorate 122(samp) Binding 6
|
Decorate 123(samp) Binding 6
|
||||||
MemberDecorate 143(BufferL) 0 Offset 0
|
MemberDecorate 144(BufferL) 0 Offset 0
|
||||||
Decorate 143(BufferL) Block
|
Decorate 144(BufferL) Block
|
||||||
Decorate 145(bufferl) DescriptorSet 0
|
Decorate 146(bufferl) DescriptorSet 0
|
||||||
Decorate 145(bufferl) Binding 8
|
Decorate 146(bufferl) Binding 8
|
||||||
|
MemberDecorate 151(BufferM) 0 Offset 0
|
||||||
|
Decorate 151(BufferM) Block
|
||||||
|
Decorate 153(bufferm) DescriptorSet 0
|
||||||
|
Decorate 153(bufferm) Binding 9
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 1
|
6: TypeInt 32 1
|
||||||
@ -106,67 +113,72 @@ spv.memoryScopeSemantics.comp
|
|||||||
38: 6(int) Constant 0
|
38: 6(int) Constant 0
|
||||||
39: 37(ivec2) ConstantComposite 38 38
|
39: 37(ivec2) ConstantComposite 38 38
|
||||||
40: TypePointer Image 6(int)
|
40: TypePointer Image 6(int)
|
||||||
43: TypeImage 15(int) 2D nonsampled format:R32ui
|
42: 15(int) Constant 32768
|
||||||
44: TypePointer UniformConstant 43
|
44: TypeImage 15(int) 2D nonsampled format:R32ui
|
||||||
45(imageu): 44(ptr) Variable UniformConstant
|
45: TypePointer UniformConstant 44
|
||||||
46: 15(int) Constant 3
|
46(imageu): 45(ptr) Variable UniformConstant
|
||||||
47: TypePointer Image 15(int)
|
47: 15(int) Constant 3
|
||||||
50: 15(int) Constant 4
|
48: TypePointer Image 15(int)
|
||||||
52: 15(int) Constant 7
|
51: 15(int) Constant 4
|
||||||
57: 6(int) Constant 7
|
53: 15(int) Constant 7
|
||||||
61: 15(int) Constant 10
|
58: 6(int) Constant 7
|
||||||
63: 15(int) Constant 322
|
62: 15(int) Constant 10
|
||||||
65(BufferU): TypeStruct 15(int)
|
64: 15(int) Constant 322
|
||||||
66: TypePointer StorageBuffer 65(BufferU)
|
66(BufferU): TypeStruct 15(int)
|
||||||
67(bufferu): 66(ptr) Variable StorageBuffer
|
67: TypePointer StorageBuffer 66(BufferU)
|
||||||
68: TypePointer StorageBuffer 15(int)
|
68(bufferu): 67(ptr) Variable StorageBuffer
|
||||||
70: 15(int) Constant 1
|
69: TypePointer StorageBuffer 15(int)
|
||||||
77(BufferI): TypeStruct 15(int)
|
71: 15(int) Constant 1
|
||||||
78: TypePointer StorageBuffer 77(BufferI)
|
78(BufferI): TypeStruct 15(int)
|
||||||
79(bufferi): 78(ptr) Variable StorageBuffer
|
79: TypePointer StorageBuffer 78(BufferI)
|
||||||
82: TypeArray 15(int) 26
|
80(bufferi): 79(ptr) Variable StorageBuffer
|
||||||
83(A): TypeStruct 82
|
83: TypeArray 15(int) 26
|
||||||
84(BufferJ): TypeStruct 83(A)
|
84(A): TypeStruct 83
|
||||||
85: TypeArray 84(BufferJ) 26
|
85(BufferJ): TypeStruct 84(A)
|
||||||
86: TypePointer StorageBuffer 85
|
86: TypeArray 85(BufferJ) 26
|
||||||
87(bufferj): 86(ptr) Variable StorageBuffer
|
87: TypePointer StorageBuffer 86
|
||||||
94: TypePointer StorageBuffer 83(A)
|
88(bufferj): 87(ptr) Variable StorageBuffer
|
||||||
98(BufferK): TypeStruct 15(int)
|
95: TypePointer StorageBuffer 84(A)
|
||||||
99: TypePointer Uniform 98(BufferK)
|
99(BufferK): TypeStruct 15(int)
|
||||||
100(bufferk): 99(ptr) Variable Uniform
|
100: TypePointer Uniform 99(BufferK)
|
||||||
101: TypePointer Uniform 15(int)
|
101(bufferk): 100(ptr) Variable Uniform
|
||||||
106: TypeVector 6(int) 4
|
102: TypePointer Uniform 15(int)
|
||||||
108: TypeArray 34 26
|
107: TypeVector 6(int) 4
|
||||||
109: TypePointer UniformConstant 108
|
109: TypeArray 34 26
|
||||||
110(imagej): 109(ptr) Variable UniformConstant
|
110: TypePointer UniformConstant 109
|
||||||
116: 106(ivec4) ConstantComposite 38 38 38 38
|
111(imagej): 110(ptr) Variable UniformConstant
|
||||||
117: TypeFloat 32
|
117: 107(ivec4) ConstantComposite 38 38 38 38
|
||||||
118: TypeImage 117(float) 2D sampled format:Unknown
|
118: TypeFloat 32
|
||||||
119: TypeSampledImage 118
|
119: TypeImage 118(float) 2D sampled format:Unknown
|
||||||
120: TypeArray 119 26
|
120: TypeSampledImage 119
|
||||||
121: TypePointer UniformConstant 120
|
121: TypeArray 120 26
|
||||||
122(samp): 121(ptr) Variable UniformConstant
|
122: TypePointer UniformConstant 121
|
||||||
123: TypePointer UniformConstant 119
|
123(samp): 122(ptr) Variable UniformConstant
|
||||||
126: TypeVector 117(float) 2
|
124: TypePointer UniformConstant 120
|
||||||
127: 117(float) Constant 0
|
127: TypeVector 118(float) 2
|
||||||
128: 126(fvec2) ConstantComposite 127 127
|
128: 118(float) Constant 0
|
||||||
129: TypeVector 117(float) 4
|
129: 127(fvec2) ConstantComposite 128 128
|
||||||
131: TypeInt 64 0
|
130: TypeVector 118(float) 4
|
||||||
132: TypePointer Workgroup 131(int64_t)
|
132: TypeInt 64 0
|
||||||
133(atomu64): 132(ptr) Variable Workgroup
|
133: TypePointer Workgroup 132(int64_t)
|
||||||
134:131(int64_t) Constant 7 0
|
134(atomu64): 133(ptr) Variable Workgroup
|
||||||
136: TypeInt 64 1
|
135:132(int64_t) Constant 7 0
|
||||||
137: TypePointer Workgroup 136(int64_t)
|
137: TypeInt 64 1
|
||||||
138(atomi64): 137(ptr) Variable Workgroup
|
138: TypePointer Workgroup 137(int64_t)
|
||||||
139:136(int64_t) Constant 10 0
|
139(atomi64): 138(ptr) Variable Workgroup
|
||||||
143(BufferL): TypeStruct 15(int)
|
140:137(int64_t) Constant 10 0
|
||||||
144: TypePointer StorageBuffer 143(BufferL)
|
144(BufferL): TypeStruct 15(int)
|
||||||
145(bufferl): 144(ptr) Variable StorageBuffer
|
145: TypePointer StorageBuffer 144(BufferL)
|
||||||
|
146(bufferl): 145(ptr) Variable StorageBuffer
|
||||||
|
151(BufferM): TypeStruct 15(int)
|
||||||
|
152: TypePointer StorageBuffer 151(BufferM)
|
||||||
|
153(bufferm): 152(ptr) Variable StorageBuffer
|
||||||
|
161: 6(int) Constant 32768
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
8(origi): 7(ptr) Variable Function
|
8(origi): 7(ptr) Variable Function
|
||||||
21(origu): 20(ptr) Variable Function
|
21(origu): 20(ptr) Variable Function
|
||||||
72(y): 20(ptr) Variable Function
|
73(y): 20(ptr) Variable Function
|
||||||
19: 6(int) AtomicIAdd 10(atomi) 12 18 11
|
19: 6(int) AtomicIAdd 10(atomi) 12 18 11
|
||||||
Store 8(origi) 19
|
Store 8(origi) 19
|
||||||
25: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
|
25: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
|
||||||
@ -177,77 +189,87 @@ spv.memoryScopeSemantics.comp
|
|||||||
32: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
|
32: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
|
||||||
AtomicStore 23(atomu) 12 33 32
|
AtomicStore 23(atomu) 12 33 32
|
||||||
41: 40(ptr) ImageTexelPointer 36(imagei) 39 17
|
41: 40(ptr) ImageTexelPointer 36(imagei) 39 17
|
||||||
42: 6(int) AtomicLoad 41 12 30
|
43: 6(int) AtomicLoad 41 12 30
|
||||||
Store 8(origi) 42
|
Store 8(origi) 43
|
||||||
48: 47(ptr) ImageTexelPointer 45(imageu) 39 17
|
49: 48(ptr) ImageTexelPointer 46(imageu) 39 17
|
||||||
49: 15(int) AtomicIAdd 48 12 30 46
|
50: 15(int) AtomicIAdd 49 12 30 47
|
||||||
Store 21(origu) 49
|
Store 21(origu) 50
|
||||||
51: 47(ptr) ImageTexelPointer 45(imageu) 39 17
|
52: 48(ptr) ImageTexelPointer 46(imageu) 39 17
|
||||||
AtomicStore 51 12 33 50
|
AtomicStore 52 12 33 51
|
||||||
53: 15(int) AtomicOr 23(atomu) 12 17 52
|
54: 15(int) AtomicOr 23(atomu) 12 17 53
|
||||||
Store 21(origu) 53
|
|
||||||
54: 15(int) AtomicXor 23(atomu) 12 17 52
|
|
||||||
Store 21(origu) 54
|
Store 21(origu) 54
|
||||||
55: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
|
55: 15(int) AtomicXor 23(atomu) 12 17 53
|
||||||
56: 15(int) AtomicUMin 23(atomu) 12 17 55
|
Store 21(origu) 55
|
||||||
Store 21(origu) 56
|
56: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
|
||||||
58: 6(int) AtomicSMax 10(atomi) 12 17 57
|
57: 15(int) AtomicUMin 23(atomu) 12 17 56
|
||||||
Store 8(origi) 58
|
Store 21(origu) 57
|
||||||
59: 6(int) Load 8(origi)
|
59: 6(int) AtomicSMax 10(atomi) 12 17 58
|
||||||
60: 6(int) AtomicExchange 10(atomi) 12 17 59
|
Store 8(origi) 59
|
||||||
Store 8(origi) 60
|
60: 6(int) Load 8(origi)
|
||||||
62: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
|
61: 6(int) AtomicExchange 10(atomi) 12 17 60
|
||||||
64: 15(int) AtomicCompareExchange 23(atomu) 12 63 63 62 61
|
Store 8(origi) 61
|
||||||
Store 21(origu) 64
|
63: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
|
||||||
69: 68(ptr) AccessChain 67(bufferu) 38
|
65: 15(int) AtomicCompareExchange 23(atomu) 12 64 64 63 62
|
||||||
71: 15(int) AtomicIAdd 69 12 18 70
|
Store 21(origu) 65
|
||||||
|
70: 69(ptr) AccessChain 68(bufferu) 38
|
||||||
|
72: 15(int) AtomicIAdd 70 12 18 71
|
||||||
MemoryBarrier 26 18
|
MemoryBarrier 26 18
|
||||||
ControlBarrier 26 26 63
|
ControlBarrier 26 26 64
|
||||||
ControlBarrier 26 26 17
|
ControlBarrier 26 26 17
|
||||||
73: 68(ptr) AccessChain 67(bufferu) 38
|
74: 69(ptr) AccessChain 68(bufferu) 38
|
||||||
74: 15(int) Load 73 MakePointerVisibleKHR NonPrivatePointerKHR 26
|
75: 15(int) Load 74 MakePointerVisibleKHR NonPrivatePointerKHR 26
|
||||||
Store 72(y) 74
|
Store 73(y) 75
|
||||||
75: 15(int) Load 72(y)
|
76: 15(int) Load 73(y)
|
||||||
76: 68(ptr) AccessChain 67(bufferu) 38
|
77: 69(ptr) AccessChain 68(bufferu) 38
|
||||||
Store 76 75 MakePointerAvailableKHR NonPrivatePointerKHR 26
|
Store 77 76 MakePointerAvailableKHR NonPrivatePointerKHR 26
|
||||||
80: 68(ptr) AccessChain 79(bufferi) 38
|
81: 69(ptr) AccessChain 80(bufferi) 38
|
||||||
81: 15(int) Load 80 MakePointerVisibleKHR NonPrivatePointerKHR 16
|
82: 15(int) Load 81 MakePointerVisibleKHR NonPrivatePointerKHR 16
|
||||||
Store 72(y) 81
|
Store 73(y) 82
|
||||||
88: 68(ptr) AccessChain 87(bufferj) 38 38 38 12
|
89: 69(ptr) AccessChain 88(bufferj) 38 38 38 12
|
||||||
89: 15(int) Load 88 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16
|
90: 15(int) Load 89 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16
|
||||||
Store 72(y) 89
|
Store 73(y) 90
|
||||||
90: 15(int) Load 72(y)
|
91: 15(int) Load 73(y)
|
||||||
91: 68(ptr) AccessChain 79(bufferi) 38
|
92: 69(ptr) AccessChain 80(bufferi) 38
|
||||||
Store 91 90 MakePointerAvailableKHR NonPrivatePointerKHR 16
|
Store 92 91 MakePointerAvailableKHR NonPrivatePointerKHR 16
|
||||||
92: 15(int) Load 72(y)
|
93: 15(int) Load 73(y)
|
||||||
93: 68(ptr) AccessChain 87(bufferj) 38 38 38 12
|
94: 69(ptr) AccessChain 88(bufferj) 38 38 38 12
|
||||||
Store 93 92 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 16
|
Store 94 93 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 16
|
||||||
95: 94(ptr) AccessChain 87(bufferj) 12 38
|
96: 95(ptr) AccessChain 88(bufferj) 12 38
|
||||||
96: 83(A) Load 95 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16
|
97: 84(A) Load 96 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16
|
||||||
97: 94(ptr) AccessChain 87(bufferj) 38 38
|
98: 95(ptr) AccessChain 88(bufferj) 38 38
|
||||||
Store 97 96 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 16
|
Store 98 97 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 16
|
||||||
102: 101(ptr) AccessChain 100(bufferk) 38
|
103: 102(ptr) AccessChain 101(bufferk) 38
|
||||||
103: 15(int) Load 102 NonPrivatePointerKHR
|
104: 15(int) Load 103 NonPrivatePointerKHR
|
||||||
104: 68(ptr) AccessChain 79(bufferi) 38
|
105: 69(ptr) AccessChain 80(bufferi) 38
|
||||||
Store 104 103 MakePointerAvailableKHR NonPrivatePointerKHR 16
|
Store 105 104 MakePointerAvailableKHR NonPrivatePointerKHR 16
|
||||||
105: 34 Load 36(imagei)
|
106: 34 Load 36(imagei)
|
||||||
107: 106(ivec4) ImageRead 105 39 MakeTexelVisibleKHR NonPrivateTexelKHR VolatileTexelKHR 16
|
108: 107(ivec4) ImageRead 106 39 MakeTexelVisibleKHR NonPrivateTexelKHR VolatileTexelKHR 16
|
||||||
111: 35(ptr) AccessChain 110(imagej) 38
|
112: 35(ptr) AccessChain 111(imagej) 38
|
||||||
112: 34 Load 111
|
113: 34 Load 112
|
||||||
113: 106(ivec4) ImageRead 112 39 NonPrivateTexelKHR
|
114: 107(ivec4) ImageRead 113 39 NonPrivateTexelKHR
|
||||||
114: 35(ptr) AccessChain 110(imagej) 12
|
115: 35(ptr) AccessChain 111(imagej) 12
|
||||||
115: 34 Load 114
|
116: 34 Load 115
|
||||||
ImageWrite 115 39 116 NonPrivateTexelKHR
|
ImageWrite 116 39 117 NonPrivateTexelKHR
|
||||||
124: 123(ptr) AccessChain 122(samp) 38
|
125: 124(ptr) AccessChain 123(samp) 38
|
||||||
125: 119 Load 124
|
126: 120 Load 125
|
||||||
130: 129(fvec4) ImageSampleExplicitLod 125 128 Lod NonPrivateTexelKHR 127
|
131: 130(fvec4) ImageSampleExplicitLod 126 129 Lod NonPrivateTexelKHR 128
|
||||||
135:131(int64_t) AtomicUMax 133(atomu64) 12 17 134
|
136:132(int64_t) AtomicUMax 134(atomu64) 12 17 135
|
||||||
Store 133(atomu64) 135 MakePointerAvailableKHR NonPrivatePointerKHR 26
|
Store 134(atomu64) 136 MakePointerAvailableKHR NonPrivatePointerKHR 26
|
||||||
140:131(int64_t) Load 133(atomu64) MakePointerVisibleKHR NonPrivatePointerKHR 26
|
141:132(int64_t) Load 134(atomu64) MakePointerVisibleKHR NonPrivatePointerKHR 26
|
||||||
141:136(int64_t) Bitcast 140
|
142:137(int64_t) Bitcast 141
|
||||||
142:136(int64_t) AtomicCompareExchange 138(atomi64) 12 63 63 141 139
|
143:137(int64_t) AtomicCompareExchange 139(atomi64) 12 64 64 142 140
|
||||||
146: 68(ptr) AccessChain 145(bufferl) 38
|
147: 69(ptr) AccessChain 146(bufferl) 38
|
||||||
147: 15(int) Load 146 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16
|
148: 15(int) Load 147 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16
|
||||||
Store 72(y) 147
|
Store 73(y) 148
|
||||||
|
149: 69(ptr) AccessChain 146(bufferl) 38
|
||||||
|
150: 15(int) AtomicIAdd 149 16 42 71
|
||||||
|
154: 69(ptr) AccessChain 153(bufferm) 38
|
||||||
|
155: 15(int) AtomicOr 154 16 42 26
|
||||||
|
156: 40(ptr) ImageTexelPointer 36(imagei) 39 17
|
||||||
|
157: 6(int) AtomicIAdd 156 16 42 11
|
||||||
|
158: 69(ptr) AccessChain 68(bufferu) 38
|
||||||
|
159: 15(int) AtomicIAdd 158 12 17 51
|
||||||
|
160: 69(ptr) AccessChain 68(bufferu) 38
|
||||||
|
162: 15(int) AtomicIAdd 160 12 42 16
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -11,7 +11,9 @@ ERROR: 0:23: 'atomicAdd' : Semantics must not include multiple of gl_SemanticsRe
|
|||||||
ERROR: 0:24: 'atomicCompSwap' : semUnequal must not be gl_SemanticsRelease or gl_SemanticsAcquireRelease
|
ERROR: 0:24: 'atomicCompSwap' : semUnequal must not be gl_SemanticsRelease or gl_SemanticsAcquireRelease
|
||||||
ERROR: 0:25: 'memoryBarrier' : gl_SemanticsMakeVisible requires gl_SemanticsAcquire or gl_SemanticsAcquireRelease
|
ERROR: 0:25: 'memoryBarrier' : gl_SemanticsMakeVisible requires gl_SemanticsAcquire or gl_SemanticsAcquireRelease
|
||||||
ERROR: 0:26: 'memoryBarrier' : gl_SemanticsMakeAvailable requires gl_SemanticsRelease or gl_SemanticsAcquireRelease
|
ERROR: 0:26: 'memoryBarrier' : gl_SemanticsMakeAvailable requires gl_SemanticsRelease or gl_SemanticsAcquireRelease
|
||||||
ERROR: 12 compilation errors. No code generated.
|
ERROR: 0:27: 'memoryBarrier' : gl_SemanticsVolatile must not be used with memoryBarrier or controlBarrier
|
||||||
|
ERROR: 0:28: 'atomicCompSwap' : semEqual and semUnequal must either both include gl_SemanticsVolatile or neither
|
||||||
|
ERROR: 14 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
SPIR-V is not generated for failed compile or link
|
SPIR-V is not generated for failed compile or link
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
spv.meshShaderPerViewUserDefined.mesh
|
spv.meshShaderPerViewUserDefined.mesh
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80007
|
// Generated by (magic number): 80007
|
||||||
// Id's are bound by 90
|
// Id's are bound by 108
|
||||||
|
|
||||||
Capability MeshShadingNV
|
Capability MeshShadingNV
|
||||||
Extension "SPV_NV_mesh_shader"
|
Extension "SPV_NV_mesh_shader"
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint MeshNV 4 "main" 11 20 21 35 67
|
EntryPoint MeshNV 4 "main" 11 20 21 35 67 92 95 96 97 102 105 106 107
|
||||||
ExecutionMode 4 LocalSize 32 1 1
|
ExecutionMode 4 LocalSize 32 1 1
|
||||||
ExecutionMode 4 OutputVertices 81
|
ExecutionMode 4 OutputVertices 81
|
||||||
ExecutionMode 4 OutputPrimitivesNV 32
|
ExecutionMode 4 OutputPrimitivesNV 32
|
||||||
@ -32,6 +32,14 @@ spv.meshShaderPerViewUserDefined.mesh
|
|||||||
MemberName 64(perviewBlock) 2 "color7"
|
MemberName 64(perviewBlock) 2 "color7"
|
||||||
MemberName 64(perviewBlock) 3 "color8"
|
MemberName 64(perviewBlock) 3 "color8"
|
||||||
Name 67 "b2"
|
Name 67 "b2"
|
||||||
|
Name 92 "nonBlk1"
|
||||||
|
Name 95 "nonBlk2"
|
||||||
|
Name 96 "nonBlk3"
|
||||||
|
Name 97 "nonBlk4"
|
||||||
|
Name 102 "nonBlkArr1"
|
||||||
|
Name 105 "nonBlkArr2"
|
||||||
|
Name 106 "nonBlkArr3"
|
||||||
|
Name 107 "nonBlkArr4"
|
||||||
Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
||||||
Decorate 20(gl_MeshViewIndicesNV) BuiltIn MeshViewIndicesNV
|
Decorate 20(gl_MeshViewIndicesNV) BuiltIn MeshViewIndicesNV
|
||||||
Decorate 21(gl_MeshViewCountNV) BuiltIn MeshViewCountNV
|
Decorate 21(gl_MeshViewCountNV) BuiltIn MeshViewCountNV
|
||||||
@ -50,6 +58,26 @@ spv.meshShaderPerViewUserDefined.mesh
|
|||||||
Decorate 64(perviewBlock) Block
|
Decorate 64(perviewBlock) Block
|
||||||
Decorate 67(b2) Location 10
|
Decorate 67(b2) Location 10
|
||||||
Decorate 89 BuiltIn WorkgroupSize
|
Decorate 89 BuiltIn WorkgroupSize
|
||||||
|
Decorate 92(nonBlk1) PerViewNV
|
||||||
|
Decorate 92(nonBlk1) Location 18
|
||||||
|
Decorate 95(nonBlk2) PerPrimitiveNV
|
||||||
|
Decorate 95(nonBlk2) PerViewNV
|
||||||
|
Decorate 95(nonBlk2) Location 19
|
||||||
|
Decorate 96(nonBlk3) PerViewNV
|
||||||
|
Decorate 96(nonBlk3) Location 20
|
||||||
|
Decorate 97(nonBlk4) PerPrimitiveNV
|
||||||
|
Decorate 97(nonBlk4) PerViewNV
|
||||||
|
Decorate 97(nonBlk4) Location 21
|
||||||
|
Decorate 102(nonBlkArr1) PerViewNV
|
||||||
|
Decorate 102(nonBlkArr1) Location 22
|
||||||
|
Decorate 105(nonBlkArr2) PerPrimitiveNV
|
||||||
|
Decorate 105(nonBlkArr2) PerViewNV
|
||||||
|
Decorate 105(nonBlkArr2) Location 24
|
||||||
|
Decorate 106(nonBlkArr3) PerViewNV
|
||||||
|
Decorate 106(nonBlkArr3) Location 26
|
||||||
|
Decorate 107(nonBlkArr4) PerPrimitiveNV
|
||||||
|
Decorate 107(nonBlkArr4) PerViewNV
|
||||||
|
Decorate 107(nonBlkArr4) Location 28
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 0
|
6: TypeInt 32 0
|
||||||
@ -106,6 +134,24 @@ spv.meshShaderPerViewUserDefined.mesh
|
|||||||
86: 27(fvec4) ConstantComposite 85 85 85 85
|
86: 27(fvec4) ConstantComposite 85 85 85 85
|
||||||
88: 6(int) Constant 32
|
88: 6(int) Constant 32
|
||||||
89: 9(ivec3) ConstantComposite 88 60 60
|
89: 9(ivec3) ConstantComposite 88 60 60
|
||||||
|
90: TypeArray 63 32
|
||||||
|
91: TypePointer Output 90
|
||||||
|
92(nonBlk1): 91(ptr) Variable Output
|
||||||
|
93: TypeArray 63 88
|
||||||
|
94: TypePointer Output 93
|
||||||
|
95(nonBlk2): 94(ptr) Variable Output
|
||||||
|
96(nonBlk3): 91(ptr) Variable Output
|
||||||
|
97(nonBlk4): 94(ptr) Variable Output
|
||||||
|
98: TypeArray 27(fvec4) 62
|
||||||
|
99: TypeArray 98 17
|
||||||
|
100: TypeArray 99 32
|
||||||
|
101: TypePointer Output 100
|
||||||
|
102(nonBlkArr1): 101(ptr) Variable Output
|
||||||
|
103: TypeArray 99 88
|
||||||
|
104: TypePointer Output 103
|
||||||
|
105(nonBlkArr2): 104(ptr) Variable Output
|
||||||
|
106(nonBlkArr3): 101(ptr) Variable Output
|
||||||
|
107(nonBlkArr4): 104(ptr) Variable Output
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
8(iid): 7(ptr) Variable Function
|
8(iid): 7(ptr) Variable Function
|
||||||
|
|||||||
11
Test/baseResults/spv.meshShaderPerView_Errors.mesh.out
Normal file
11
Test/baseResults/spv.meshShaderPerView_Errors.mesh.out
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
spv.meshShaderPerView_Errors.mesh
|
||||||
|
ERROR: 0:19: '[]' : only outermost dimension of an array of arrays can be implicitly sized
|
||||||
|
ERROR: 0:20: '[]' : mesh view output array size must be gl_MaxMeshViewCountNV or implicitly sized
|
||||||
|
ERROR: 0:21: 'perviewNV' : requires a view array dimension
|
||||||
|
ERROR: 0:25: '[]' : only outermost dimension of an array of arrays can be implicitly sized
|
||||||
|
ERROR: 0:26: '[]' : mesh view output array size must be gl_MaxMeshViewCountNV or implicitly sized
|
||||||
|
ERROR: 0:27: 'perviewNV' : requires a view array dimension
|
||||||
|
ERROR: 6 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
SPIR-V is not generated for failed compile or link
|
||||||
@ -1,8 +1,7 @@
|
|||||||
spv.multiviewPerViewAttributes.tesc
|
spv.multiviewPerViewAttributes.tesc
|
||||||
Validation failed
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80007
|
// Generated by (magic number): 80007
|
||||||
// Id's are bound by 37
|
// Id's are bound by 41
|
||||||
|
|
||||||
Capability Tessellation
|
Capability Tessellation
|
||||||
Capability PerViewAttributesNV
|
Capability PerViewAttributesNV
|
||||||
@ -24,7 +23,7 @@ Validation failed
|
|||||||
MemberName 27(gl_PerVertex) 1 "gl_PointSize"
|
MemberName 27(gl_PerVertex) 1 "gl_PointSize"
|
||||||
MemberName 27(gl_PerVertex) 2 "gl_ClipDistance"
|
MemberName 27(gl_PerVertex) 2 "gl_ClipDistance"
|
||||||
MemberName 27(gl_PerVertex) 3 "gl_CullDistance"
|
MemberName 27(gl_PerVertex) 3 "gl_CullDistance"
|
||||||
MemberName 27(gl_PerVertex) 5 "gl_PositionPerViewNV"
|
MemberName 27(gl_PerVertex) 4 "gl_PositionPerViewNV"
|
||||||
Name 31 "gl_in"
|
Name 31 "gl_in"
|
||||||
MemberDecorate 13(gl_PerVertex) 0 BuiltIn PositionPerViewNV
|
MemberDecorate 13(gl_PerVertex) 0 BuiltIn PositionPerViewNV
|
||||||
MemberDecorate 13(gl_PerVertex) 1 BuiltIn ViewportMaskPerViewNV
|
MemberDecorate 13(gl_PerVertex) 1 BuiltIn ViewportMaskPerViewNV
|
||||||
@ -34,6 +33,7 @@ Validation failed
|
|||||||
MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize
|
MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize
|
||||||
MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance
|
MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||||
MemberDecorate 27(gl_PerVertex) 3 BuiltIn CullDistance
|
MemberDecorate 27(gl_PerVertex) 3 BuiltIn CullDistance
|
||||||
|
MemberDecorate 27(gl_PerVertex) 4 BuiltIn PositionPerViewNV
|
||||||
Decorate 27(gl_PerVertex) Block
|
Decorate 27(gl_PerVertex) Block
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
@ -61,7 +61,8 @@ Validation failed
|
|||||||
30: TypePointer Input 29
|
30: TypePointer Input 29
|
||||||
31(gl_in): 30(ptr) Variable Input
|
31(gl_in): 30(ptr) Variable Input
|
||||||
32: TypePointer Input 7(fvec4)
|
32: TypePointer Input 7(fvec4)
|
||||||
35: TypePointer Output 7(fvec4)
|
35: 11(int) Constant 4
|
||||||
|
39: TypePointer Output 7(fvec4)
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
20: 11(int) Load 19(gl_InvocationID)
|
20: 11(int) Load 19(gl_InvocationID)
|
||||||
@ -70,7 +71,10 @@ Validation failed
|
|||||||
25: 11(int) Load 19(gl_InvocationID)
|
25: 11(int) Load 19(gl_InvocationID)
|
||||||
33: 32(ptr) AccessChain 31(gl_in) 21 22
|
33: 32(ptr) AccessChain 31(gl_in) 21 22
|
||||||
34: 7(fvec4) Load 33
|
34: 7(fvec4) Load 33
|
||||||
36: 35(ptr) AccessChain 17(gl_out) 25 22 22
|
36: 32(ptr) AccessChain 31(gl_in) 21 35 22
|
||||||
Store 36 34
|
37: 7(fvec4) Load 36
|
||||||
|
38: 7(fvec4) FAdd 34 37
|
||||||
|
40: 39(ptr) AccessChain 17(gl_out) 25 22 22
|
||||||
|
Store 40 38
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
54
Test/baseResults/spv.privateVariableTypes.frag.out
Normal file
54
Test/baseResults/spv.privateVariableTypes.frag.out
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
spv.privateVariableTypes.frag
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80007
|
||||||
|
// Id's are bound by 27
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability Float16
|
||||||
|
Capability Int64
|
||||||
|
Capability Int16
|
||||||
|
Capability Int8
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source GLSL 460
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64"
|
||||||
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8"
|
||||||
|
Name 4 "main"
|
||||||
|
Name 8 "i8"
|
||||||
|
Name 11 "u8"
|
||||||
|
Name 14 "i16"
|
||||||
|
Name 17 "u16"
|
||||||
|
Name 20 "i64"
|
||||||
|
Name 23 "u64"
|
||||||
|
Name 26 "f16"
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeInt 8 1
|
||||||
|
7: TypePointer Private 6(int8_t)
|
||||||
|
8(i8): 7(ptr) Variable Private
|
||||||
|
9: TypeInt 8 0
|
||||||
|
10: TypePointer Private 9(int8_t)
|
||||||
|
11(u8): 10(ptr) Variable Private
|
||||||
|
12: TypeInt 16 1
|
||||||
|
13: TypePointer Private 12(int16_t)
|
||||||
|
14(i16): 13(ptr) Variable Private
|
||||||
|
15: TypeInt 16 0
|
||||||
|
16: TypePointer Private 15(int16_t)
|
||||||
|
17(u16): 16(ptr) Variable Private
|
||||||
|
18: TypeInt 64 1
|
||||||
|
19: TypePointer Private 18(int64_t)
|
||||||
|
20(i64): 19(ptr) Variable Private
|
||||||
|
21: TypeInt 64 0
|
||||||
|
22: TypePointer Private 21(int64_t)
|
||||||
|
23(u64): 22(ptr) Variable Private
|
||||||
|
24: TypeFloat 16
|
||||||
|
25: TypePointer Private 24(float16_t)
|
||||||
|
26(f16): 25(ptr) Variable Private
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
@ -1,10 +1,10 @@
|
|||||||
spv.sampleMaskOverrideCoverage.frag
|
spv.sampleMaskOverrideCoverage.frag
|
||||||
Validation failed
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80007
|
// Generated by (magic number): 80007
|
||||||
// Id's are bound by 20
|
// Id's are bound by 20
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
|
Capability SampleMaskOverrideCoverageNV
|
||||||
Extension "SPV_NV_sample_mask_override_coverage"
|
Extension "SPV_NV_sample_mask_override_coverage"
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
spv.shaderBallot.comp
|
spv.shaderBallot.comp
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80007
|
// Generated by (magic number): 80007
|
||||||
// Id's are bound by 298
|
// Id's are bound by 318
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
Capability Int64
|
Capability Int64
|
||||||
@ -9,7 +9,7 @@ spv.shaderBallot.comp
|
|||||||
Extension "SPV_KHR_shader_ballot"
|
Extension "SPV_KHR_shader_ballot"
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint GLCompute 4 "main" 10 12 21 23 26 29 32
|
EntryPoint GLCompute 4 "main" 10 12 22 29 36 43 50
|
||||||
ExecutionMode 4 LocalSize 8 8 1
|
ExecutionMode 4 LocalSize 8 8 1
|
||||||
Source GLSL 450
|
Source GLSL 450
|
||||||
SourceExtension "GL_ARB_gpu_shader_int64"
|
SourceExtension "GL_ARB_gpu_shader_int64"
|
||||||
@ -19,30 +19,30 @@ spv.shaderBallot.comp
|
|||||||
Name 10 "gl_SubGroupInvocationARB"
|
Name 10 "gl_SubGroupInvocationARB"
|
||||||
Name 12 "gl_SubGroupSizeARB"
|
Name 12 "gl_SubGroupSizeARB"
|
||||||
Name 19 "relMask"
|
Name 19 "relMask"
|
||||||
Name 21 "gl_SubGroupEqMaskARB"
|
Name 22 "gl_SubGroupEqMaskARB"
|
||||||
Name 23 "gl_SubGroupGeMaskARB"
|
Name 29 "gl_SubGroupGeMaskARB"
|
||||||
Name 26 "gl_SubGroupGtMaskARB"
|
Name 36 "gl_SubGroupGtMaskARB"
|
||||||
Name 29 "gl_SubGroupLeMaskARB"
|
Name 43 "gl_SubGroupLeMaskARB"
|
||||||
Name 32 "gl_SubGroupLtMaskARB"
|
Name 50 "gl_SubGroupLtMaskARB"
|
||||||
Name 52 "Buffers"
|
Name 72 "Buffers"
|
||||||
MemberName 52(Buffers) 0 "f4"
|
MemberName 72(Buffers) 0 "f4"
|
||||||
MemberName 52(Buffers) 1 "i4"
|
MemberName 72(Buffers) 1 "i4"
|
||||||
MemberName 52(Buffers) 2 "u4"
|
MemberName 72(Buffers) 2 "u4"
|
||||||
Name 55 "data"
|
Name 75 "data"
|
||||||
Decorate 10(gl_SubGroupInvocationARB) BuiltIn SubgroupLocalInvocationId
|
Decorate 10(gl_SubGroupInvocationARB) BuiltIn SubgroupLocalInvocationId
|
||||||
Decorate 12(gl_SubGroupSizeARB) BuiltIn SubgroupSize
|
Decorate 12(gl_SubGroupSizeARB) BuiltIn SubgroupSize
|
||||||
Decorate 21(gl_SubGroupEqMaskARB) BuiltIn SubgroupEqMaskKHR
|
Decorate 22(gl_SubGroupEqMaskARB) BuiltIn SubgroupEqMaskKHR
|
||||||
Decorate 23(gl_SubGroupGeMaskARB) BuiltIn SubgroupGeMaskKHR
|
Decorate 29(gl_SubGroupGeMaskARB) BuiltIn SubgroupGeMaskKHR
|
||||||
Decorate 26(gl_SubGroupGtMaskARB) BuiltIn SubgroupGtMaskKHR
|
Decorate 36(gl_SubGroupGtMaskARB) BuiltIn SubgroupGtMaskKHR
|
||||||
Decorate 29(gl_SubGroupLeMaskARB) BuiltIn SubgroupLeMaskKHR
|
Decorate 43(gl_SubGroupLeMaskARB) BuiltIn SubgroupLeMaskKHR
|
||||||
Decorate 32(gl_SubGroupLtMaskARB) BuiltIn SubgroupLtMaskKHR
|
Decorate 50(gl_SubGroupLtMaskARB) BuiltIn SubgroupLtMaskKHR
|
||||||
MemberDecorate 52(Buffers) 0 Offset 0
|
MemberDecorate 72(Buffers) 0 Offset 0
|
||||||
MemberDecorate 52(Buffers) 1 Offset 16
|
MemberDecorate 72(Buffers) 1 Offset 16
|
||||||
MemberDecorate 52(Buffers) 2 Offset 32
|
MemberDecorate 72(Buffers) 2 Offset 32
|
||||||
Decorate 52(Buffers) BufferBlock
|
Decorate 72(Buffers) BufferBlock
|
||||||
Decorate 55(data) DescriptorSet 0
|
Decorate 75(data) DescriptorSet 0
|
||||||
Decorate 55(data) Binding 0
|
Decorate 75(data) Binding 0
|
||||||
Decorate 297 BuiltIn WorkgroupSize
|
Decorate 317 BuiltIn WorkgroupSize
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 0
|
6: TypeInt 32 0
|
||||||
@ -53,43 +53,43 @@ spv.shaderBallot.comp
|
|||||||
15: 6(int) Constant 4
|
15: 6(int) Constant 4
|
||||||
17: TypeInt 64 0
|
17: TypeInt 64 0
|
||||||
18: TypePointer Function 17(int64_t)
|
18: TypePointer Function 17(int64_t)
|
||||||
20: TypePointer Input 17(int64_t)
|
20: TypeVector 6(int) 4
|
||||||
21(gl_SubGroupEqMaskARB): 20(ptr) Variable Input
|
21: TypePointer Input 20(ivec4)
|
||||||
23(gl_SubGroupGeMaskARB): 20(ptr) Variable Input
|
22(gl_SubGroupEqMaskARB): 21(ptr) Variable Input
|
||||||
26(gl_SubGroupGtMaskARB): 20(ptr) Variable Input
|
26: TypeVector 6(int) 2
|
||||||
29(gl_SubGroupLeMaskARB): 20(ptr) Variable Input
|
29(gl_SubGroupGeMaskARB): 21(ptr) Variable Input
|
||||||
32(gl_SubGroupLtMaskARB): 20(ptr) Variable Input
|
36(gl_SubGroupGtMaskARB): 21(ptr) Variable Input
|
||||||
36: TypeBool
|
43(gl_SubGroupLeMaskARB): 21(ptr) Variable Input
|
||||||
37: 36(bool) ConstantTrue
|
50(gl_SubGroupLtMaskARB): 21(ptr) Variable Input
|
||||||
38: TypeVector 6(int) 4
|
58: TypeBool
|
||||||
42: TypeVector 6(int) 2
|
59: 58(bool) ConstantTrue
|
||||||
48: TypeFloat 32
|
68: TypeFloat 32
|
||||||
49: TypeVector 48(float) 4
|
69: TypeVector 68(float) 4
|
||||||
50: TypeInt 32 1
|
70: TypeInt 32 1
|
||||||
51: TypeVector 50(int) 4
|
71: TypeVector 70(int) 4
|
||||||
52(Buffers): TypeStruct 49(fvec4) 51(ivec4) 38(ivec4)
|
72(Buffers): TypeStruct 69(fvec4) 71(ivec4) 20(ivec4)
|
||||||
53: TypeArray 52(Buffers) 15
|
73: TypeArray 72(Buffers) 15
|
||||||
54: TypePointer Uniform 53
|
74: TypePointer Uniform 73
|
||||||
55(data): 54(ptr) Variable Uniform
|
75(data): 74(ptr) Variable Uniform
|
||||||
57: 50(int) Constant 0
|
77: 70(int) Constant 0
|
||||||
58: 6(int) Constant 0
|
78: 6(int) Constant 0
|
||||||
59: TypePointer Uniform 48(float)
|
79: TypePointer Uniform 68(float)
|
||||||
66: 50(int) Constant 1
|
86: 70(int) Constant 1
|
||||||
67: TypeVector 48(float) 2
|
87: TypeVector 68(float) 2
|
||||||
68: TypePointer Uniform 49(fvec4)
|
88: TypePointer Uniform 69(fvec4)
|
||||||
82: 50(int) Constant 2
|
102: 70(int) Constant 2
|
||||||
83: TypeVector 48(float) 3
|
103: TypeVector 68(float) 3
|
||||||
99: 50(int) Constant 3
|
119: 70(int) Constant 3
|
||||||
114: TypePointer Uniform 50(int)
|
134: TypePointer Uniform 70(int)
|
||||||
121: TypeVector 50(int) 2
|
141: TypeVector 70(int) 2
|
||||||
122: TypePointer Uniform 51(ivec4)
|
142: TypePointer Uniform 71(ivec4)
|
||||||
136: TypeVector 50(int) 3
|
156: TypeVector 70(int) 3
|
||||||
166: TypePointer Uniform 6(int)
|
186: TypePointer Uniform 6(int)
|
||||||
173: TypePointer Uniform 38(ivec4)
|
193: TypePointer Uniform 20(ivec4)
|
||||||
187: TypeVector 6(int) 3
|
207: TypeVector 6(int) 3
|
||||||
295: 6(int) Constant 8
|
315: 6(int) Constant 8
|
||||||
296: 6(int) Constant 1
|
316: 6(int) Constant 1
|
||||||
297: 187(ivec3) ConstantComposite 295 295 296
|
317: 207(ivec3) ConstantComposite 315 315 316
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
8(invocation): 7(ptr) Variable Function
|
8(invocation): 7(ptr) Variable Function
|
||||||
@ -99,275 +99,295 @@ spv.shaderBallot.comp
|
|||||||
14: 6(int) IAdd 11 13
|
14: 6(int) IAdd 11 13
|
||||||
16: 6(int) UMod 14 15
|
16: 6(int) UMod 14 15
|
||||||
Store 8(invocation) 16
|
Store 8(invocation) 16
|
||||||
22: 17(int64_t) Load 21(gl_SubGroupEqMaskARB)
|
23: 20(ivec4) Load 22(gl_SubGroupEqMaskARB)
|
||||||
24: 17(int64_t) Load 23(gl_SubGroupGeMaskARB)
|
24: 6(int) CompositeExtract 23 0
|
||||||
25: 17(int64_t) IAdd 22 24
|
25: 6(int) CompositeExtract 23 1
|
||||||
27: 17(int64_t) Load 26(gl_SubGroupGtMaskARB)
|
27: 26(ivec2) CompositeConstruct 24 25
|
||||||
28: 17(int64_t) IAdd 25 27
|
28: 17(int64_t) Bitcast 27
|
||||||
30: 17(int64_t) Load 29(gl_SubGroupLeMaskARB)
|
30: 20(ivec4) Load 29(gl_SubGroupGeMaskARB)
|
||||||
31: 17(int64_t) IAdd 28 30
|
31: 6(int) CompositeExtract 30 0
|
||||||
33: 17(int64_t) Load 32(gl_SubGroupLtMaskARB)
|
32: 6(int) CompositeExtract 30 1
|
||||||
34: 17(int64_t) IAdd 31 33
|
33: 26(ivec2) CompositeConstruct 31 32
|
||||||
Store 19(relMask) 34
|
34: 17(int64_t) Bitcast 33
|
||||||
35: 17(int64_t) Load 19(relMask)
|
35: 17(int64_t) IAdd 28 34
|
||||||
39: 38(ivec4) SubgroupBallotKHR 37
|
37: 20(ivec4) Load 36(gl_SubGroupGtMaskARB)
|
||||||
40: 6(int) CompositeExtract 39 0
|
38: 6(int) CompositeExtract 37 0
|
||||||
41: 6(int) CompositeExtract 39 1
|
39: 6(int) CompositeExtract 37 1
|
||||||
43: 42(ivec2) CompositeConstruct 40 41
|
40: 26(ivec2) CompositeConstruct 38 39
|
||||||
44: 17(int64_t) Bitcast 43
|
41: 17(int64_t) Bitcast 40
|
||||||
45: 36(bool) IEqual 35 44
|
42: 17(int64_t) IAdd 35 41
|
||||||
SelectionMerge 47 None
|
44: 20(ivec4) Load 43(gl_SubGroupLeMaskARB)
|
||||||
BranchConditional 45 46 216
|
45: 6(int) CompositeExtract 44 0
|
||||||
46: Label
|
46: 6(int) CompositeExtract 44 1
|
||||||
56: 6(int) Load 8(invocation)
|
47: 26(ivec2) CompositeConstruct 45 46
|
||||||
60: 59(ptr) AccessChain 55(data) 57 57 58
|
48: 17(int64_t) Bitcast 47
|
||||||
61: 48(float) Load 60
|
49: 17(int64_t) IAdd 42 48
|
||||||
62: 6(int) Load 8(invocation)
|
51: 20(ivec4) Load 50(gl_SubGroupLtMaskARB)
|
||||||
63: 48(float) SubgroupReadInvocationKHR 61 62
|
52: 6(int) CompositeExtract 51 0
|
||||||
64: 59(ptr) AccessChain 55(data) 56 57 58
|
53: 6(int) CompositeExtract 51 1
|
||||||
Store 64 63
|
54: 26(ivec2) CompositeConstruct 52 53
|
||||||
65: 6(int) Load 8(invocation)
|
55: 17(int64_t) Bitcast 54
|
||||||
69: 68(ptr) AccessChain 55(data) 66 57
|
56: 17(int64_t) IAdd 49 55
|
||||||
70: 49(fvec4) Load 69
|
Store 19(relMask) 56
|
||||||
71: 67(fvec2) VectorShuffle 70 70 0 1
|
57: 17(int64_t) Load 19(relMask)
|
||||||
72: 6(int) Load 8(invocation)
|
60: 20(ivec4) SubgroupBallotKHR 59
|
||||||
73: 48(float) CompositeExtract 71 0
|
61: 6(int) CompositeExtract 60 0
|
||||||
74: 48(float) SubgroupReadInvocationKHR 73 72
|
62: 6(int) CompositeExtract 60 1
|
||||||
75: 48(float) CompositeExtract 71 1
|
63: 26(ivec2) CompositeConstruct 61 62
|
||||||
76: 48(float) SubgroupReadInvocationKHR 75 72
|
64: 17(int64_t) Bitcast 63
|
||||||
77: 67(fvec2) CompositeConstruct 74 76
|
65: 58(bool) IEqual 57 64
|
||||||
78: 68(ptr) AccessChain 55(data) 65 57
|
SelectionMerge 67 None
|
||||||
79: 49(fvec4) Load 78
|
BranchConditional 65 66 236
|
||||||
80: 49(fvec4) VectorShuffle 79 77 4 5 2 3
|
66: Label
|
||||||
Store 78 80
|
76: 6(int) Load 8(invocation)
|
||||||
81: 6(int) Load 8(invocation)
|
80: 79(ptr) AccessChain 75(data) 77 77 78
|
||||||
84: 68(ptr) AccessChain 55(data) 82 57
|
81: 68(float) Load 80
|
||||||
85: 49(fvec4) Load 84
|
82: 6(int) Load 8(invocation)
|
||||||
86: 83(fvec3) VectorShuffle 85 85 0 1 2
|
83: 68(float) SubgroupReadInvocationKHR 81 82
|
||||||
87: 6(int) Load 8(invocation)
|
84: 79(ptr) AccessChain 75(data) 76 77 78
|
||||||
88: 48(float) CompositeExtract 86 0
|
Store 84 83
|
||||||
89: 48(float) SubgroupReadInvocationKHR 88 87
|
85: 6(int) Load 8(invocation)
|
||||||
90: 48(float) CompositeExtract 86 1
|
89: 88(ptr) AccessChain 75(data) 86 77
|
||||||
91: 48(float) SubgroupReadInvocationKHR 90 87
|
90: 69(fvec4) Load 89
|
||||||
92: 48(float) CompositeExtract 86 2
|
91: 87(fvec2) VectorShuffle 90 90 0 1
|
||||||
93: 48(float) SubgroupReadInvocationKHR 92 87
|
92: 6(int) Load 8(invocation)
|
||||||
94: 83(fvec3) CompositeConstruct 89 91 93
|
93: 68(float) CompositeExtract 91 0
|
||||||
95: 68(ptr) AccessChain 55(data) 81 57
|
94: 68(float) SubgroupReadInvocationKHR 93 92
|
||||||
96: 49(fvec4) Load 95
|
95: 68(float) CompositeExtract 91 1
|
||||||
97: 49(fvec4) VectorShuffle 96 94 4 5 6 3
|
96: 68(float) SubgroupReadInvocationKHR 95 92
|
||||||
Store 95 97
|
97: 87(fvec2) CompositeConstruct 94 96
|
||||||
98: 6(int) Load 8(invocation)
|
98: 88(ptr) AccessChain 75(data) 85 77
|
||||||
100: 68(ptr) AccessChain 55(data) 99 57
|
99: 69(fvec4) Load 98
|
||||||
101: 49(fvec4) Load 100
|
100: 69(fvec4) VectorShuffle 99 97 4 5 2 3
|
||||||
102: 6(int) Load 8(invocation)
|
Store 98 100
|
||||||
103: 48(float) CompositeExtract 101 0
|
101: 6(int) Load 8(invocation)
|
||||||
104: 48(float) SubgroupReadInvocationKHR 103 102
|
104: 88(ptr) AccessChain 75(data) 102 77
|
||||||
105: 48(float) CompositeExtract 101 1
|
105: 69(fvec4) Load 104
|
||||||
106: 48(float) SubgroupReadInvocationKHR 105 102
|
106: 103(fvec3) VectorShuffle 105 105 0 1 2
|
||||||
107: 48(float) CompositeExtract 101 2
|
107: 6(int) Load 8(invocation)
|
||||||
108: 48(float) SubgroupReadInvocationKHR 107 102
|
108: 68(float) CompositeExtract 106 0
|
||||||
109: 48(float) CompositeExtract 101 3
|
109: 68(float) SubgroupReadInvocationKHR 108 107
|
||||||
110: 48(float) SubgroupReadInvocationKHR 109 102
|
110: 68(float) CompositeExtract 106 1
|
||||||
111: 49(fvec4) CompositeConstruct 104 106 108 110
|
111: 68(float) SubgroupReadInvocationKHR 110 107
|
||||||
112: 68(ptr) AccessChain 55(data) 98 57
|
112: 68(float) CompositeExtract 106 2
|
||||||
Store 112 111
|
113: 68(float) SubgroupReadInvocationKHR 112 107
|
||||||
113: 6(int) Load 8(invocation)
|
114: 103(fvec3) CompositeConstruct 109 111 113
|
||||||
115: 114(ptr) AccessChain 55(data) 57 66 58
|
115: 88(ptr) AccessChain 75(data) 101 77
|
||||||
116: 50(int) Load 115
|
116: 69(fvec4) Load 115
|
||||||
117: 6(int) Load 8(invocation)
|
117: 69(fvec4) VectorShuffle 116 114 4 5 6 3
|
||||||
118: 50(int) SubgroupReadInvocationKHR 116 117
|
Store 115 117
|
||||||
119: 114(ptr) AccessChain 55(data) 113 66 58
|
118: 6(int) Load 8(invocation)
|
||||||
Store 119 118
|
120: 88(ptr) AccessChain 75(data) 119 77
|
||||||
120: 6(int) Load 8(invocation)
|
121: 69(fvec4) Load 120
|
||||||
123: 122(ptr) AccessChain 55(data) 66 66
|
122: 6(int) Load 8(invocation)
|
||||||
124: 51(ivec4) Load 123
|
123: 68(float) CompositeExtract 121 0
|
||||||
125: 121(ivec2) VectorShuffle 124 124 0 1
|
124: 68(float) SubgroupReadInvocationKHR 123 122
|
||||||
126: 6(int) Load 8(invocation)
|
125: 68(float) CompositeExtract 121 1
|
||||||
127: 50(int) CompositeExtract 125 0
|
126: 68(float) SubgroupReadInvocationKHR 125 122
|
||||||
128: 50(int) SubgroupReadInvocationKHR 127 126
|
127: 68(float) CompositeExtract 121 2
|
||||||
129: 50(int) CompositeExtract 125 1
|
128: 68(float) SubgroupReadInvocationKHR 127 122
|
||||||
130: 50(int) SubgroupReadInvocationKHR 129 126
|
129: 68(float) CompositeExtract 121 3
|
||||||
131: 121(ivec2) CompositeConstruct 128 130
|
130: 68(float) SubgroupReadInvocationKHR 129 122
|
||||||
132: 122(ptr) AccessChain 55(data) 120 66
|
131: 69(fvec4) CompositeConstruct 124 126 128 130
|
||||||
133: 51(ivec4) Load 132
|
132: 88(ptr) AccessChain 75(data) 118 77
|
||||||
134: 51(ivec4) VectorShuffle 133 131 4 5 2 3
|
Store 132 131
|
||||||
Store 132 134
|
133: 6(int) Load 8(invocation)
|
||||||
135: 6(int) Load 8(invocation)
|
135: 134(ptr) AccessChain 75(data) 77 86 78
|
||||||
137: 122(ptr) AccessChain 55(data) 82 66
|
136: 70(int) Load 135
|
||||||
138: 51(ivec4) Load 137
|
137: 6(int) Load 8(invocation)
|
||||||
139: 136(ivec3) VectorShuffle 138 138 0 1 2
|
138: 70(int) SubgroupReadInvocationKHR 136 137
|
||||||
|
139: 134(ptr) AccessChain 75(data) 133 86 78
|
||||||
|
Store 139 138
|
||||||
140: 6(int) Load 8(invocation)
|
140: 6(int) Load 8(invocation)
|
||||||
141: 50(int) CompositeExtract 139 0
|
143: 142(ptr) AccessChain 75(data) 86 86
|
||||||
142: 50(int) SubgroupReadInvocationKHR 141 140
|
144: 71(ivec4) Load 143
|
||||||
143: 50(int) CompositeExtract 139 1
|
145: 141(ivec2) VectorShuffle 144 144 0 1
|
||||||
144: 50(int) SubgroupReadInvocationKHR 143 140
|
146: 6(int) Load 8(invocation)
|
||||||
145: 50(int) CompositeExtract 139 2
|
147: 70(int) CompositeExtract 145 0
|
||||||
146: 50(int) SubgroupReadInvocationKHR 145 140
|
148: 70(int) SubgroupReadInvocationKHR 147 146
|
||||||
147: 136(ivec3) CompositeConstruct 142 144 146
|
149: 70(int) CompositeExtract 145 1
|
||||||
148: 122(ptr) AccessChain 55(data) 135 66
|
150: 70(int) SubgroupReadInvocationKHR 149 146
|
||||||
149: 51(ivec4) Load 148
|
151: 141(ivec2) CompositeConstruct 148 150
|
||||||
150: 51(ivec4) VectorShuffle 149 147 4 5 6 3
|
152: 142(ptr) AccessChain 75(data) 140 86
|
||||||
Store 148 150
|
153: 71(ivec4) Load 152
|
||||||
151: 6(int) Load 8(invocation)
|
154: 71(ivec4) VectorShuffle 153 151 4 5 2 3
|
||||||
152: 122(ptr) AccessChain 55(data) 99 66
|
Store 152 154
|
||||||
153: 51(ivec4) Load 152
|
155: 6(int) Load 8(invocation)
|
||||||
154: 6(int) Load 8(invocation)
|
157: 142(ptr) AccessChain 75(data) 102 86
|
||||||
155: 50(int) CompositeExtract 153 0
|
158: 71(ivec4) Load 157
|
||||||
156: 50(int) SubgroupReadInvocationKHR 155 154
|
159: 156(ivec3) VectorShuffle 158 158 0 1 2
|
||||||
157: 50(int) CompositeExtract 153 1
|
160: 6(int) Load 8(invocation)
|
||||||
158: 50(int) SubgroupReadInvocationKHR 157 154
|
161: 70(int) CompositeExtract 159 0
|
||||||
159: 50(int) CompositeExtract 153 2
|
162: 70(int) SubgroupReadInvocationKHR 161 160
|
||||||
160: 50(int) SubgroupReadInvocationKHR 159 154
|
163: 70(int) CompositeExtract 159 1
|
||||||
161: 50(int) CompositeExtract 153 3
|
164: 70(int) SubgroupReadInvocationKHR 163 160
|
||||||
162: 50(int) SubgroupReadInvocationKHR 161 154
|
165: 70(int) CompositeExtract 159 2
|
||||||
163: 51(ivec4) CompositeConstruct 156 158 160 162
|
166: 70(int) SubgroupReadInvocationKHR 165 160
|
||||||
164: 122(ptr) AccessChain 55(data) 151 66
|
167: 156(ivec3) CompositeConstruct 162 164 166
|
||||||
Store 164 163
|
168: 142(ptr) AccessChain 75(data) 155 86
|
||||||
165: 6(int) Load 8(invocation)
|
169: 71(ivec4) Load 168
|
||||||
167: 166(ptr) AccessChain 55(data) 57 82 58
|
170: 71(ivec4) VectorShuffle 169 167 4 5 6 3
|
||||||
168: 6(int) Load 167
|
Store 168 170
|
||||||
169: 6(int) Load 8(invocation)
|
171: 6(int) Load 8(invocation)
|
||||||
170: 6(int) SubgroupReadInvocationKHR 168 169
|
172: 142(ptr) AccessChain 75(data) 119 86
|
||||||
171: 166(ptr) AccessChain 55(data) 165 82 58
|
173: 71(ivec4) Load 172
|
||||||
Store 171 170
|
174: 6(int) Load 8(invocation)
|
||||||
172: 6(int) Load 8(invocation)
|
175: 70(int) CompositeExtract 173 0
|
||||||
174: 173(ptr) AccessChain 55(data) 66 82
|
176: 70(int) SubgroupReadInvocationKHR 175 174
|
||||||
175: 38(ivec4) Load 174
|
177: 70(int) CompositeExtract 173 1
|
||||||
176: 42(ivec2) VectorShuffle 175 175 0 1
|
178: 70(int) SubgroupReadInvocationKHR 177 174
|
||||||
177: 6(int) Load 8(invocation)
|
179: 70(int) CompositeExtract 173 2
|
||||||
178: 6(int) CompositeExtract 176 0
|
180: 70(int) SubgroupReadInvocationKHR 179 174
|
||||||
179: 6(int) SubgroupReadInvocationKHR 178 177
|
181: 70(int) CompositeExtract 173 3
|
||||||
180: 6(int) CompositeExtract 176 1
|
182: 70(int) SubgroupReadInvocationKHR 181 174
|
||||||
181: 6(int) SubgroupReadInvocationKHR 180 177
|
183: 71(ivec4) CompositeConstruct 176 178 180 182
|
||||||
182: 42(ivec2) CompositeConstruct 179 181
|
184: 142(ptr) AccessChain 75(data) 171 86
|
||||||
183: 173(ptr) AccessChain 55(data) 172 82
|
Store 184 183
|
||||||
184: 38(ivec4) Load 183
|
185: 6(int) Load 8(invocation)
|
||||||
185: 38(ivec4) VectorShuffle 184 182 4 5 2 3
|
187: 186(ptr) AccessChain 75(data) 77 102 78
|
||||||
Store 183 185
|
188: 6(int) Load 187
|
||||||
186: 6(int) Load 8(invocation)
|
189: 6(int) Load 8(invocation)
|
||||||
188: 173(ptr) AccessChain 55(data) 82 82
|
190: 6(int) SubgroupReadInvocationKHR 188 189
|
||||||
189: 38(ivec4) Load 188
|
191: 186(ptr) AccessChain 75(data) 185 102 78
|
||||||
190: 187(ivec3) VectorShuffle 189 189 0 1 2
|
Store 191 190
|
||||||
191: 6(int) Load 8(invocation)
|
192: 6(int) Load 8(invocation)
|
||||||
192: 6(int) CompositeExtract 190 0
|
194: 193(ptr) AccessChain 75(data) 86 102
|
||||||
193: 6(int) SubgroupReadInvocationKHR 192 191
|
195: 20(ivec4) Load 194
|
||||||
194: 6(int) CompositeExtract 190 1
|
196: 26(ivec2) VectorShuffle 195 195 0 1
|
||||||
195: 6(int) SubgroupReadInvocationKHR 194 191
|
197: 6(int) Load 8(invocation)
|
||||||
196: 6(int) CompositeExtract 190 2
|
198: 6(int) CompositeExtract 196 0
|
||||||
197: 6(int) SubgroupReadInvocationKHR 196 191
|
199: 6(int) SubgroupReadInvocationKHR 198 197
|
||||||
198: 187(ivec3) CompositeConstruct 193 195 197
|
200: 6(int) CompositeExtract 196 1
|
||||||
199: 173(ptr) AccessChain 55(data) 186 82
|
201: 6(int) SubgroupReadInvocationKHR 200 197
|
||||||
200: 38(ivec4) Load 199
|
202: 26(ivec2) CompositeConstruct 199 201
|
||||||
201: 38(ivec4) VectorShuffle 200 198 4 5 6 3
|
203: 193(ptr) AccessChain 75(data) 192 102
|
||||||
Store 199 201
|
204: 20(ivec4) Load 203
|
||||||
202: 6(int) Load 8(invocation)
|
205: 20(ivec4) VectorShuffle 204 202 4 5 2 3
|
||||||
203: 173(ptr) AccessChain 55(data) 99 82
|
Store 203 205
|
||||||
204: 38(ivec4) Load 203
|
206: 6(int) Load 8(invocation)
|
||||||
205: 6(int) Load 8(invocation)
|
208: 193(ptr) AccessChain 75(data) 102 102
|
||||||
206: 6(int) CompositeExtract 204 0
|
209: 20(ivec4) Load 208
|
||||||
207: 6(int) SubgroupReadInvocationKHR 206 205
|
210: 207(ivec3) VectorShuffle 209 209 0 1 2
|
||||||
208: 6(int) CompositeExtract 204 1
|
211: 6(int) Load 8(invocation)
|
||||||
209: 6(int) SubgroupReadInvocationKHR 208 205
|
212: 6(int) CompositeExtract 210 0
|
||||||
210: 6(int) CompositeExtract 204 2
|
213: 6(int) SubgroupReadInvocationKHR 212 211
|
||||||
211: 6(int) SubgroupReadInvocationKHR 210 205
|
214: 6(int) CompositeExtract 210 1
|
||||||
212: 6(int) CompositeExtract 204 3
|
215: 6(int) SubgroupReadInvocationKHR 214 211
|
||||||
213: 6(int) SubgroupReadInvocationKHR 212 205
|
216: 6(int) CompositeExtract 210 2
|
||||||
214: 38(ivec4) CompositeConstruct 207 209 211 213
|
217: 6(int) SubgroupReadInvocationKHR 216 211
|
||||||
215: 173(ptr) AccessChain 55(data) 202 82
|
218: 207(ivec3) CompositeConstruct 213 215 217
|
||||||
Store 215 214
|
219: 193(ptr) AccessChain 75(data) 206 102
|
||||||
Branch 47
|
220: 20(ivec4) Load 219
|
||||||
216: Label
|
221: 20(ivec4) VectorShuffle 220 218 4 5 6 3
|
||||||
217: 6(int) Load 8(invocation)
|
Store 219 221
|
||||||
218: 59(ptr) AccessChain 55(data) 57 57 58
|
|
||||||
219: 48(float) Load 218
|
|
||||||
220: 48(float) SubgroupFirstInvocationKHR 219
|
|
||||||
221: 59(ptr) AccessChain 55(data) 217 57 58
|
|
||||||
Store 221 220
|
|
||||||
222: 6(int) Load 8(invocation)
|
222: 6(int) Load 8(invocation)
|
||||||
223: 68(ptr) AccessChain 55(data) 66 57
|
223: 193(ptr) AccessChain 75(data) 119 102
|
||||||
224: 49(fvec4) Load 223
|
224: 20(ivec4) Load 223
|
||||||
225: 67(fvec2) VectorShuffle 224 224 0 1
|
225: 6(int) Load 8(invocation)
|
||||||
226: 67(fvec2) SubgroupFirstInvocationKHR 225
|
226: 6(int) CompositeExtract 224 0
|
||||||
227: 68(ptr) AccessChain 55(data) 222 57
|
227: 6(int) SubgroupReadInvocationKHR 226 225
|
||||||
228: 49(fvec4) Load 227
|
228: 6(int) CompositeExtract 224 1
|
||||||
229: 49(fvec4) VectorShuffle 228 226 4 5 2 3
|
229: 6(int) SubgroupReadInvocationKHR 228 225
|
||||||
Store 227 229
|
230: 6(int) CompositeExtract 224 2
|
||||||
230: 6(int) Load 8(invocation)
|
231: 6(int) SubgroupReadInvocationKHR 230 225
|
||||||
231: 68(ptr) AccessChain 55(data) 82 57
|
232: 6(int) CompositeExtract 224 3
|
||||||
232: 49(fvec4) Load 231
|
233: 6(int) SubgroupReadInvocationKHR 232 225
|
||||||
233: 83(fvec3) VectorShuffle 232 232 0 1 2
|
234: 20(ivec4) CompositeConstruct 227 229 231 233
|
||||||
234: 83(fvec3) SubgroupFirstInvocationKHR 233
|
235: 193(ptr) AccessChain 75(data) 222 102
|
||||||
235: 68(ptr) AccessChain 55(data) 230 57
|
Store 235 234
|
||||||
236: 49(fvec4) Load 235
|
Branch 67
|
||||||
237: 49(fvec4) VectorShuffle 236 234 4 5 6 3
|
236: Label
|
||||||
Store 235 237
|
237: 6(int) Load 8(invocation)
|
||||||
238: 6(int) Load 8(invocation)
|
238: 79(ptr) AccessChain 75(data) 77 77 78
|
||||||
239: 68(ptr) AccessChain 55(data) 99 57
|
239: 68(float) Load 238
|
||||||
240: 49(fvec4) Load 239
|
240: 68(float) SubgroupFirstInvocationKHR 239
|
||||||
241: 49(fvec4) SubgroupFirstInvocationKHR 240
|
241: 79(ptr) AccessChain 75(data) 237 77 78
|
||||||
242: 68(ptr) AccessChain 55(data) 238 57
|
Store 241 240
|
||||||
Store 242 241
|
242: 6(int) Load 8(invocation)
|
||||||
243: 6(int) Load 8(invocation)
|
243: 88(ptr) AccessChain 75(data) 86 77
|
||||||
244: 114(ptr) AccessChain 55(data) 57 66 58
|
244: 69(fvec4) Load 243
|
||||||
245: 50(int) Load 244
|
245: 87(fvec2) VectorShuffle 244 244 0 1
|
||||||
246: 50(int) SubgroupFirstInvocationKHR 245
|
246: 87(fvec2) SubgroupFirstInvocationKHR 245
|
||||||
247: 114(ptr) AccessChain 55(data) 243 66 58
|
247: 88(ptr) AccessChain 75(data) 242 77
|
||||||
Store 247 246
|
248: 69(fvec4) Load 247
|
||||||
248: 6(int) Load 8(invocation)
|
249: 69(fvec4) VectorShuffle 248 246 4 5 2 3
|
||||||
249: 122(ptr) AccessChain 55(data) 66 66
|
Store 247 249
|
||||||
250: 51(ivec4) Load 249
|
250: 6(int) Load 8(invocation)
|
||||||
251: 121(ivec2) VectorShuffle 250 250 0 1
|
251: 88(ptr) AccessChain 75(data) 102 77
|
||||||
252: 121(ivec2) SubgroupFirstInvocationKHR 251
|
252: 69(fvec4) Load 251
|
||||||
253: 122(ptr) AccessChain 55(data) 248 66
|
253: 103(fvec3) VectorShuffle 252 252 0 1 2
|
||||||
254: 51(ivec4) Load 253
|
254: 103(fvec3) SubgroupFirstInvocationKHR 253
|
||||||
255: 51(ivec4) VectorShuffle 254 252 4 5 2 3
|
255: 88(ptr) AccessChain 75(data) 250 77
|
||||||
Store 253 255
|
256: 69(fvec4) Load 255
|
||||||
256: 6(int) Load 8(invocation)
|
257: 69(fvec4) VectorShuffle 256 254 4 5 6 3
|
||||||
257: 122(ptr) AccessChain 55(data) 82 66
|
Store 255 257
|
||||||
258: 51(ivec4) Load 257
|
258: 6(int) Load 8(invocation)
|
||||||
259: 136(ivec3) VectorShuffle 258 258 0 1 2
|
259: 88(ptr) AccessChain 75(data) 119 77
|
||||||
260: 136(ivec3) SubgroupFirstInvocationKHR 259
|
260: 69(fvec4) Load 259
|
||||||
261: 122(ptr) AccessChain 55(data) 256 66
|
261: 69(fvec4) SubgroupFirstInvocationKHR 260
|
||||||
262: 51(ivec4) Load 261
|
262: 88(ptr) AccessChain 75(data) 258 77
|
||||||
263: 51(ivec4) VectorShuffle 262 260 4 5 6 3
|
Store 262 261
|
||||||
Store 261 263
|
263: 6(int) Load 8(invocation)
|
||||||
264: 6(int) Load 8(invocation)
|
264: 134(ptr) AccessChain 75(data) 77 86 78
|
||||||
265: 122(ptr) AccessChain 55(data) 99 66
|
265: 70(int) Load 264
|
||||||
266: 51(ivec4) Load 265
|
266: 70(int) SubgroupFirstInvocationKHR 265
|
||||||
267: 51(ivec4) SubgroupFirstInvocationKHR 266
|
267: 134(ptr) AccessChain 75(data) 263 86 78
|
||||||
268: 122(ptr) AccessChain 55(data) 264 66
|
Store 267 266
|
||||||
Store 268 267
|
268: 6(int) Load 8(invocation)
|
||||||
269: 6(int) Load 8(invocation)
|
269: 142(ptr) AccessChain 75(data) 86 86
|
||||||
270: 166(ptr) AccessChain 55(data) 57 82 58
|
270: 71(ivec4) Load 269
|
||||||
271: 6(int) Load 270
|
271: 141(ivec2) VectorShuffle 270 270 0 1
|
||||||
272: 6(int) SubgroupFirstInvocationKHR 271
|
272: 141(ivec2) SubgroupFirstInvocationKHR 271
|
||||||
273: 166(ptr) AccessChain 55(data) 269 82 58
|
273: 142(ptr) AccessChain 75(data) 268 86
|
||||||
Store 273 272
|
274: 71(ivec4) Load 273
|
||||||
274: 6(int) Load 8(invocation)
|
275: 71(ivec4) VectorShuffle 274 272 4 5 2 3
|
||||||
275: 173(ptr) AccessChain 55(data) 66 82
|
Store 273 275
|
||||||
276: 38(ivec4) Load 275
|
276: 6(int) Load 8(invocation)
|
||||||
277: 42(ivec2) VectorShuffle 276 276 0 1
|
277: 142(ptr) AccessChain 75(data) 102 86
|
||||||
278: 42(ivec2) SubgroupFirstInvocationKHR 277
|
278: 71(ivec4) Load 277
|
||||||
279: 173(ptr) AccessChain 55(data) 274 82
|
279: 156(ivec3) VectorShuffle 278 278 0 1 2
|
||||||
280: 38(ivec4) Load 279
|
280: 156(ivec3) SubgroupFirstInvocationKHR 279
|
||||||
281: 38(ivec4) VectorShuffle 280 278 4 5 2 3
|
281: 142(ptr) AccessChain 75(data) 276 86
|
||||||
Store 279 281
|
282: 71(ivec4) Load 281
|
||||||
282: 6(int) Load 8(invocation)
|
283: 71(ivec4) VectorShuffle 282 280 4 5 6 3
|
||||||
283: 173(ptr) AccessChain 55(data) 82 82
|
Store 281 283
|
||||||
284: 38(ivec4) Load 283
|
284: 6(int) Load 8(invocation)
|
||||||
285: 187(ivec3) VectorShuffle 284 284 0 1 2
|
285: 142(ptr) AccessChain 75(data) 119 86
|
||||||
286: 187(ivec3) SubgroupFirstInvocationKHR 285
|
286: 71(ivec4) Load 285
|
||||||
287: 173(ptr) AccessChain 55(data) 282 82
|
287: 71(ivec4) SubgroupFirstInvocationKHR 286
|
||||||
288: 38(ivec4) Load 287
|
288: 142(ptr) AccessChain 75(data) 284 86
|
||||||
289: 38(ivec4) VectorShuffle 288 286 4 5 6 3
|
Store 288 287
|
||||||
Store 287 289
|
289: 6(int) Load 8(invocation)
|
||||||
290: 6(int) Load 8(invocation)
|
290: 186(ptr) AccessChain 75(data) 77 102 78
|
||||||
291: 173(ptr) AccessChain 55(data) 99 82
|
291: 6(int) Load 290
|
||||||
292: 38(ivec4) Load 291
|
292: 6(int) SubgroupFirstInvocationKHR 291
|
||||||
293: 38(ivec4) SubgroupFirstInvocationKHR 292
|
293: 186(ptr) AccessChain 75(data) 289 102 78
|
||||||
294: 173(ptr) AccessChain 55(data) 290 82
|
Store 293 292
|
||||||
Store 294 293
|
294: 6(int) Load 8(invocation)
|
||||||
Branch 47
|
295: 193(ptr) AccessChain 75(data) 86 102
|
||||||
47: Label
|
296: 20(ivec4) Load 295
|
||||||
|
297: 26(ivec2) VectorShuffle 296 296 0 1
|
||||||
|
298: 26(ivec2) SubgroupFirstInvocationKHR 297
|
||||||
|
299: 193(ptr) AccessChain 75(data) 294 102
|
||||||
|
300: 20(ivec4) Load 299
|
||||||
|
301: 20(ivec4) VectorShuffle 300 298 4 5 2 3
|
||||||
|
Store 299 301
|
||||||
|
302: 6(int) Load 8(invocation)
|
||||||
|
303: 193(ptr) AccessChain 75(data) 102 102
|
||||||
|
304: 20(ivec4) Load 303
|
||||||
|
305: 207(ivec3) VectorShuffle 304 304 0 1 2
|
||||||
|
306: 207(ivec3) SubgroupFirstInvocationKHR 305
|
||||||
|
307: 193(ptr) AccessChain 75(data) 302 102
|
||||||
|
308: 20(ivec4) Load 307
|
||||||
|
309: 20(ivec4) VectorShuffle 308 306 4 5 6 3
|
||||||
|
Store 307 309
|
||||||
|
310: 6(int) Load 8(invocation)
|
||||||
|
311: 193(ptr) AccessChain 75(data) 119 102
|
||||||
|
312: 20(ivec4) Load 311
|
||||||
|
313: 20(ivec4) SubgroupFirstInvocationKHR 312
|
||||||
|
314: 193(ptr) AccessChain 75(data) 310 102
|
||||||
|
Store 314 313
|
||||||
|
Branch 67
|
||||||
|
67: Label
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
50
Test/baseResults/spv.smBuiltins.frag.out
Normal file
50
Test/baseResults/spv.smBuiltins.frag.out
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
spv.smBuiltins.frag
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80007
|
||||||
|
// Id's are bound by 20
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability ShaderSMBuiltinsNV
|
||||||
|
Extension "SPV_NV_shader_sm_builtins"
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "main" 9 11 13 15 17
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source GLSL 450
|
||||||
|
SourceExtension "GL_NV_shader_sm_builtins"
|
||||||
|
Name 4 "main"
|
||||||
|
Name 9 "data"
|
||||||
|
Name 11 "gl_WarpsPerSMNV"
|
||||||
|
Name 13 "gl_SMCountNV"
|
||||||
|
Name 15 "gl_WarpIDNV"
|
||||||
|
Name 17 "gl_SMIDNV"
|
||||||
|
Decorate 9(data) Location 0
|
||||||
|
Decorate 11(gl_WarpsPerSMNV) Flat
|
||||||
|
Decorate 11(gl_WarpsPerSMNV) BuiltIn WarpsPerSMNV
|
||||||
|
Decorate 13(gl_SMCountNV) Flat
|
||||||
|
Decorate 13(gl_SMCountNV) BuiltIn SMCountNV
|
||||||
|
Decorate 15(gl_WarpIDNV) Flat
|
||||||
|
Decorate 15(gl_WarpIDNV) BuiltIn WarpIDNV
|
||||||
|
Decorate 17(gl_SMIDNV) Flat
|
||||||
|
Decorate 17(gl_SMIDNV) BuiltIn SMIDNV
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeInt 32 0
|
||||||
|
7: TypeVector 6(int) 4
|
||||||
|
8: TypePointer Output 7(ivec4)
|
||||||
|
9(data): 8(ptr) Variable Output
|
||||||
|
10: TypePointer Input 6(int)
|
||||||
|
11(gl_WarpsPerSMNV): 10(ptr) Variable Input
|
||||||
|
13(gl_SMCountNV): 10(ptr) Variable Input
|
||||||
|
15(gl_WarpIDNV): 10(ptr) Variable Input
|
||||||
|
17(gl_SMIDNV): 10(ptr) Variable Input
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
12: 6(int) Load 11(gl_WarpsPerSMNV)
|
||||||
|
14: 6(int) Load 13(gl_SMCountNV)
|
||||||
|
16: 6(int) Load 15(gl_WarpIDNV)
|
||||||
|
18: 6(int) Load 17(gl_SMIDNV)
|
||||||
|
19: 7(ivec4) CompositeConstruct 12 14 16 18
|
||||||
|
Store 9(data) 19
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
62
Test/baseResults/spv.smBuiltins.vert.out
Normal file
62
Test/baseResults/spv.smBuiltins.vert.out
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
spv.smBuiltins.vert
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80007
|
||||||
|
// Id's are bound by 29
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability ShaderSMBuiltinsNV
|
||||||
|
Extension "SPV_NV_shader_sm_builtins"
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Vertex 4 "main" 15 18 20 22 24
|
||||||
|
Source GLSL 450
|
||||||
|
SourceExtension "GL_NV_shader_sm_builtins"
|
||||||
|
Name 4 "main"
|
||||||
|
Name 9 "Output"
|
||||||
|
MemberName 9(Output) 0 "result"
|
||||||
|
Name 11 ""
|
||||||
|
Name 15 "gl_VertexIndex"
|
||||||
|
Name 18 "gl_WarpsPerSMNV"
|
||||||
|
Name 20 "gl_SMCountNV"
|
||||||
|
Name 22 "gl_WarpIDNV"
|
||||||
|
Name 24 "gl_SMIDNV"
|
||||||
|
Decorate 8 ArrayStride 16
|
||||||
|
MemberDecorate 9(Output) 0 Offset 0
|
||||||
|
Decorate 9(Output) BufferBlock
|
||||||
|
Decorate 11 DescriptorSet 0
|
||||||
|
Decorate 11 Binding 0
|
||||||
|
Decorate 15(gl_VertexIndex) BuiltIn VertexIndex
|
||||||
|
Decorate 18(gl_WarpsPerSMNV) BuiltIn WarpsPerSMNV
|
||||||
|
Decorate 20(gl_SMCountNV) BuiltIn SMCountNV
|
||||||
|
Decorate 22(gl_WarpIDNV) BuiltIn WarpIDNV
|
||||||
|
Decorate 24(gl_SMIDNV) BuiltIn SMIDNV
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeInt 32 0
|
||||||
|
7: TypeVector 6(int) 4
|
||||||
|
8: TypeRuntimeArray 7(ivec4)
|
||||||
|
9(Output): TypeStruct 8
|
||||||
|
10: TypePointer Uniform 9(Output)
|
||||||
|
11: 10(ptr) Variable Uniform
|
||||||
|
12: TypeInt 32 1
|
||||||
|
13: 12(int) Constant 0
|
||||||
|
14: TypePointer Input 12(int)
|
||||||
|
15(gl_VertexIndex): 14(ptr) Variable Input
|
||||||
|
17: TypePointer Input 6(int)
|
||||||
|
18(gl_WarpsPerSMNV): 17(ptr) Variable Input
|
||||||
|
20(gl_SMCountNV): 17(ptr) Variable Input
|
||||||
|
22(gl_WarpIDNV): 17(ptr) Variable Input
|
||||||
|
24(gl_SMIDNV): 17(ptr) Variable Input
|
||||||
|
27: TypePointer Uniform 7(ivec4)
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
16: 12(int) Load 15(gl_VertexIndex)
|
||||||
|
19: 6(int) Load 18(gl_WarpsPerSMNV)
|
||||||
|
21: 6(int) Load 20(gl_SMCountNV)
|
||||||
|
23: 6(int) Load 22(gl_WarpIDNV)
|
||||||
|
25: 6(int) Load 24(gl_SMIDNV)
|
||||||
|
26: 7(ivec4) CompositeConstruct 19 21 23 25
|
||||||
|
28: 27(ptr) AccessChain 11 13 16
|
||||||
|
Store 28 26
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
6
Test/baseResults/spv.specConstArrayCheck.vert.out
Executable file
6
Test/baseResults/spv.specConstArrayCheck.vert.out
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
spv.specConstArrayCheck.vert
|
||||||
|
ERROR: 0:13: '[' : array index out of range '6'
|
||||||
|
ERROR: 1 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
SPIR-V is not generated for failed compile or link
|
||||||
@ -11,7 +11,7 @@ spv.specConstant.vert
|
|||||||
Source GLSL 400
|
Source GLSL 400
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "arraySize"
|
Name 9 "arraySize"
|
||||||
Name 14 "foo(vf4[s2765];"
|
Name 14 "foo(vf4[s2769];"
|
||||||
Name 13 "p"
|
Name 13 "p"
|
||||||
Name 17 "builtin_spec_constant("
|
Name 17 "builtin_spec_constant("
|
||||||
Name 20 "color"
|
Name 20 "color"
|
||||||
@ -102,10 +102,10 @@ spv.specConstant.vert
|
|||||||
Store 20(color) 46
|
Store 20(color) 46
|
||||||
48: 10 Load 22(ucol)
|
48: 10 Load 22(ucol)
|
||||||
Store 47(param) 48
|
Store 47(param) 48
|
||||||
49: 2 FunctionCall 14(foo(vf4[s2765];) 47(param)
|
49: 2 FunctionCall 14(foo(vf4[s2769];) 47(param)
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
14(foo(vf4[s2765];): 2 Function None 12
|
14(foo(vf4[s2769];): 2 Function None 12
|
||||||
13(p): 11(ptr) FunctionParameter
|
13(p): 11(ptr) FunctionParameter
|
||||||
15: Label
|
15: Label
|
||||||
54: 24(ptr) AccessChain 53(dupUcol) 23
|
54: 24(ptr) AccessChain 53(dupUcol) 23
|
||||||
|
|||||||
@ -1,8 +1,7 @@
|
|||||||
spv.stereoViewRendering.tesc
|
spv.stereoViewRendering.tesc
|
||||||
Validation failed
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80007
|
// Generated by (magic number): 80007
|
||||||
// Id's are bound by 38
|
// Id's are bound by 42
|
||||||
|
|
||||||
Capability Geometry
|
Capability Geometry
|
||||||
Capability Tessellation
|
Capability Tessellation
|
||||||
@ -14,7 +13,7 @@ Validation failed
|
|||||||
Extension "SPV_NV_viewport_array2"
|
Extension "SPV_NV_viewport_array2"
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint TessellationControl 4 "main" 16 18 31 37
|
EntryPoint TessellationControl 4 "main" 16 18 31 41
|
||||||
ExecutionMode 4 OutputVertices 4
|
ExecutionMode 4 OutputVertices 4
|
||||||
Source GLSL 450
|
Source GLSL 450
|
||||||
SourceExtension "GL_NV_stereo_view_rendering"
|
SourceExtension "GL_NV_stereo_view_rendering"
|
||||||
@ -32,7 +31,7 @@ Validation failed
|
|||||||
MemberName 27(gl_PerVertex) 3 "gl_CullDistance"
|
MemberName 27(gl_PerVertex) 3 "gl_CullDistance"
|
||||||
MemberName 27(gl_PerVertex) 4 "gl_SecondaryPositionNV"
|
MemberName 27(gl_PerVertex) 4 "gl_SecondaryPositionNV"
|
||||||
Name 31 "gl_in"
|
Name 31 "gl_in"
|
||||||
Name 37 "gl_Layer"
|
Name 41 "gl_Layer"
|
||||||
MemberDecorate 12(gl_PerVertex) 0 BuiltIn SecondaryPositionNV
|
MemberDecorate 12(gl_PerVertex) 0 BuiltIn SecondaryPositionNV
|
||||||
MemberDecorate 12(gl_PerVertex) 1 BuiltIn SecondaryViewportMaskNV
|
MemberDecorate 12(gl_PerVertex) 1 BuiltIn SecondaryViewportMaskNV
|
||||||
Decorate 12(gl_PerVertex) Block
|
Decorate 12(gl_PerVertex) Block
|
||||||
@ -41,10 +40,11 @@ Validation failed
|
|||||||
MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize
|
MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize
|
||||||
MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance
|
MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||||
MemberDecorate 27(gl_PerVertex) 3 BuiltIn CullDistance
|
MemberDecorate 27(gl_PerVertex) 3 BuiltIn CullDistance
|
||||||
|
MemberDecorate 27(gl_PerVertex) 4 BuiltIn SecondaryPositionNV
|
||||||
Decorate 27(gl_PerVertex) Block
|
Decorate 27(gl_PerVertex) Block
|
||||||
Decorate 37(gl_Layer) BuiltIn Layer
|
Decorate 41(gl_Layer) BuiltIn Layer
|
||||||
Decorate 37(gl_Layer) ViewportRelativeNV
|
Decorate 41(gl_Layer) ViewportRelativeNV
|
||||||
Decorate 37(gl_Layer) SecondaryViewportRelativeNV 1
|
Decorate 41(gl_Layer) SecondaryViewportRelativeNV 1
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
@ -71,8 +71,9 @@ Validation failed
|
|||||||
30: TypePointer Input 29
|
30: TypePointer Input 29
|
||||||
31(gl_in): 30(ptr) Variable Input
|
31(gl_in): 30(ptr) Variable Input
|
||||||
32: TypePointer Input 7(fvec4)
|
32: TypePointer Input 7(fvec4)
|
||||||
35: TypePointer Output 7(fvec4)
|
35: 8(int) Constant 4
|
||||||
37(gl_Layer): 22(ptr) Variable Output
|
39: TypePointer Output 7(fvec4)
|
||||||
|
41(gl_Layer): 22(ptr) Variable Output
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
19: 8(int) Load 18(gl_InvocationID)
|
19: 8(int) Load 18(gl_InvocationID)
|
||||||
@ -81,7 +82,10 @@ Validation failed
|
|||||||
24: 8(int) Load 18(gl_InvocationID)
|
24: 8(int) Load 18(gl_InvocationID)
|
||||||
33: 32(ptr) AccessChain 31(gl_in) 20 21
|
33: 32(ptr) AccessChain 31(gl_in) 20 21
|
||||||
34: 7(fvec4) Load 33
|
34: 7(fvec4) Load 33
|
||||||
36: 35(ptr) AccessChain 16(gl_out) 24 21
|
36: 32(ptr) AccessChain 31(gl_in) 20 35
|
||||||
Store 36 34
|
37: 7(fvec4) Load 36
|
||||||
|
38: 7(fvec4) FAdd 34 37
|
||||||
|
40: 39(ptr) AccessChain 16(gl_out) 24 21
|
||||||
|
Store 40 38
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -226,3 +226,23 @@ void partitioned_works(vec4 f4)
|
|||||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tests for NV_shader_sm_builtins
|
||||||
|
void sm_builtins_err()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV; // ERROR, no extension
|
||||||
|
gl_SMCountNV; // ERROR, no extension
|
||||||
|
gl_WarpIDNV; // ERROR, no extension
|
||||||
|
gl_SMIDNV; // ERROR, no extension
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef GL_NV_shader_sm_builtins
|
||||||
|
#extension GL_NV_shader_sm_builtins : enable
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void sm_builtins()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV;
|
||||||
|
gl_SMCountNV;
|
||||||
|
gl_WarpIDNV;
|
||||||
|
gl_SMIDNV;
|
||||||
|
}
|
||||||
|
|||||||
@ -232,3 +232,23 @@ void partitioned_works(vec4 f4)
|
|||||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tests for NV_shader_sm_builtins
|
||||||
|
void sm_builtins_err()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV; // ERROR, no extension
|
||||||
|
gl_SMCountNV; // ERROR, no extension
|
||||||
|
gl_WarpIDNV; // ERROR, no extension
|
||||||
|
gl_SMIDNV; // ERROR, no extension
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef GL_NV_shader_sm_builtins
|
||||||
|
#extension GL_NV_shader_sm_builtins : enable
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void sm_builtins()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV;
|
||||||
|
gl_SMCountNV;
|
||||||
|
gl_WarpIDNV;
|
||||||
|
gl_SMIDNV;
|
||||||
|
}
|
||||||
|
|||||||
@ -231,3 +231,23 @@ void partitioned_works(vec4 f4)
|
|||||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tests for NV_shader_sm_builtins
|
||||||
|
void sm_builtins_err()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV; // ERROR, no extension
|
||||||
|
gl_SMCountNV; // ERROR, no extension
|
||||||
|
gl_WarpIDNV; // ERROR, no extension
|
||||||
|
gl_SMIDNV; // ERROR, no extension
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef GL_NV_shader_sm_builtins
|
||||||
|
#extension GL_NV_shader_sm_builtins : enable
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void sm_builtins()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV;
|
||||||
|
gl_SMCountNV;
|
||||||
|
gl_WarpIDNV;
|
||||||
|
gl_SMIDNV;
|
||||||
|
}
|
||||||
|
|||||||
@ -230,3 +230,24 @@ void partitioned_works(vec4 f4)
|
|||||||
subgroupPartitionedExclusiveOrNV(ballot, parti);
|
subgroupPartitionedExclusiveOrNV(ballot, parti);
|
||||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tests for NV_shader_sm_builtins
|
||||||
|
void sm_builtins_err()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV; // ERROR, no extension
|
||||||
|
gl_SMCountNV; // ERROR, no extension
|
||||||
|
gl_WarpIDNV; // ERROR, no extension
|
||||||
|
gl_SMIDNV; // ERROR, no extension
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef GL_NV_shader_sm_builtins
|
||||||
|
#extension GL_NV_shader_sm_builtins : enable
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void sm_builtins()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV;
|
||||||
|
gl_SMCountNV;
|
||||||
|
gl_WarpIDNV;
|
||||||
|
gl_SMIDNV;
|
||||||
|
}
|
||||||
|
|||||||
@ -230,3 +230,24 @@ void partitioned_works(vec4 f4)
|
|||||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tests for NV_shader_sm_builtins
|
||||||
|
void sm_builtins_err()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV; // ERROR, no extension
|
||||||
|
gl_SMCountNV; // ERROR, no extension
|
||||||
|
gl_WarpIDNV; // ERROR, no extension
|
||||||
|
gl_SMIDNV; // ERROR, no extension
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef GL_NV_shader_sm_builtins
|
||||||
|
#extension GL_NV_shader_sm_builtins : enable
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void sm_builtins()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV;
|
||||||
|
gl_SMCountNV;
|
||||||
|
gl_WarpIDNV;
|
||||||
|
gl_SMIDNV;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@ -236,3 +236,23 @@ void partitioned_works(vec4 f4)
|
|||||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tests for NV_shader_sm_builtins
|
||||||
|
void sm_builtins_err()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV; // ERROR, no extension
|
||||||
|
gl_SMCountNV; // ERROR, no extension
|
||||||
|
gl_WarpIDNV; // ERROR, no extension
|
||||||
|
gl_SMIDNV; // ERROR, no extension
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef GL_NV_shader_sm_builtins
|
||||||
|
#extension GL_NV_shader_sm_builtins : enable
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void sm_builtins()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV;
|
||||||
|
gl_SMCountNV;
|
||||||
|
gl_WarpIDNV;
|
||||||
|
gl_SMIDNV;
|
||||||
|
}
|
||||||
|
|||||||
@ -291,3 +291,24 @@ void partitioned_works(vec4 f4)
|
|||||||
subgroupPartitionedExclusiveOrNV(ballot, parti);
|
subgroupPartitionedExclusiveOrNV(ballot, parti);
|
||||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tests for NV_shader_sm_builtins
|
||||||
|
void sm_builtins_err()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV; // ERROR, no extension
|
||||||
|
gl_SMCountNV; // ERROR, no extension
|
||||||
|
gl_WarpIDNV; // ERROR, no extension
|
||||||
|
gl_SMIDNV; // ERROR, no extension
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef GL_NV_shader_sm_builtins
|
||||||
|
#extension GL_NV_shader_sm_builtins : enable
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void sm_builtins()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV;
|
||||||
|
gl_SMCountNV;
|
||||||
|
gl_WarpIDNV;
|
||||||
|
gl_SMIDNV;
|
||||||
|
}
|
||||||
|
|||||||
@ -253,3 +253,23 @@ void partitioned_works(vec4 f4)
|
|||||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tests for NV_shader_sm_builtins
|
||||||
|
void sm_builtins_err()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV; // ERROR, no extension
|
||||||
|
gl_SMCountNV; // ERROR, no extension
|
||||||
|
gl_WarpIDNV; // ERROR, no extension
|
||||||
|
gl_SMIDNV; // ERROR, no extension
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef GL_NV_shader_sm_builtins
|
||||||
|
#extension GL_NV_shader_sm_builtins : enable
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void sm_builtins()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV;
|
||||||
|
gl_SMCountNV;
|
||||||
|
gl_WarpIDNV;
|
||||||
|
gl_SMIDNV;
|
||||||
|
}
|
||||||
|
|||||||
@ -241,3 +241,23 @@ void partitioned_works(vec4 f4)
|
|||||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tests for NV_shader_sm_builtins
|
||||||
|
void sm_builtins_err()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV; // ERROR, no extension
|
||||||
|
gl_SMCountNV; // ERROR, no extension
|
||||||
|
gl_WarpIDNV; // ERROR, no extension
|
||||||
|
gl_SMIDNV; // ERROR, no extension
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef GL_NV_shader_sm_builtins
|
||||||
|
#extension GL_NV_shader_sm_builtins : enable
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void sm_builtins()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV;
|
||||||
|
gl_SMCountNV;
|
||||||
|
gl_WarpIDNV;
|
||||||
|
gl_SMIDNV;
|
||||||
|
}
|
||||||
|
|||||||
@ -251,3 +251,23 @@ void partitioned_works(vec4 f4)
|
|||||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tests for NV_shader_sm_builtins
|
||||||
|
void sm_builtins_err()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV; // ERROR, no extension
|
||||||
|
gl_SMCountNV; // ERROR, no extension
|
||||||
|
gl_WarpIDNV; // ERROR, no extension
|
||||||
|
gl_SMIDNV; // ERROR, no extension
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef GL_NV_shader_sm_builtins
|
||||||
|
#extension GL_NV_shader_sm_builtins : enable
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void sm_builtins()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV;
|
||||||
|
gl_SMCountNV;
|
||||||
|
gl_WarpIDNV;
|
||||||
|
gl_SMIDNV;
|
||||||
|
}
|
||||||
|
|||||||
@ -245,3 +245,23 @@ void partitioned_works(vec4 f4)
|
|||||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tests for NV_shader_sm_builtins
|
||||||
|
void sm_builtins_err()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV; // ERROR, no extension
|
||||||
|
gl_SMCountNV; // ERROR, no extension
|
||||||
|
gl_WarpIDNV; // ERROR, no extension
|
||||||
|
gl_SMIDNV; // ERROR, no extension
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef GL_NV_shader_sm_builtins
|
||||||
|
#extension GL_NV_shader_sm_builtins : enable
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void sm_builtins()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV;
|
||||||
|
gl_SMCountNV;
|
||||||
|
gl_WarpIDNV;
|
||||||
|
gl_SMIDNV;
|
||||||
|
}
|
||||||
|
|||||||
@ -251,3 +251,23 @@ void partitioned_works(vec4 f4)
|
|||||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tests for NV_shader_sm_builtins
|
||||||
|
void sm_builtins_err()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV; // ERROR, no extension
|
||||||
|
gl_SMCountNV; // ERROR, no extension
|
||||||
|
gl_WarpIDNV; // ERROR, no extension
|
||||||
|
gl_SMIDNV; // ERROR, no extension
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef GL_NV_shader_sm_builtins
|
||||||
|
#extension GL_NV_shader_sm_builtins : enable
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void sm_builtins()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV;
|
||||||
|
gl_SMCountNV;
|
||||||
|
gl_WarpIDNV;
|
||||||
|
gl_SMIDNV;
|
||||||
|
}
|
||||||
|
|||||||
@ -245,3 +245,23 @@ void partitioned_works(vec4 f4)
|
|||||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tests for NV_shader_sm_builtins
|
||||||
|
void sm_builtins_err()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV; // ERROR, no extension
|
||||||
|
gl_SMCountNV; // ERROR, no extension
|
||||||
|
gl_WarpIDNV; // ERROR, no extension
|
||||||
|
gl_SMIDNV; // ERROR, no extension
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef GL_NV_shader_sm_builtins
|
||||||
|
#extension GL_NV_shader_sm_builtins : enable
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void sm_builtins()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV;
|
||||||
|
gl_SMCountNV;
|
||||||
|
gl_WarpIDNV;
|
||||||
|
gl_SMIDNV;
|
||||||
|
}
|
||||||
|
|||||||
@ -282,3 +282,23 @@ void partitioned_works(vec4 f4)
|
|||||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tests for NV_shader_sm_builtins
|
||||||
|
void sm_builtins_err()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV; // ERROR, no extension
|
||||||
|
gl_SMCountNV; // ERROR, no extension
|
||||||
|
gl_WarpIDNV; // ERROR, no extension
|
||||||
|
gl_SMIDNV; // ERROR, no extension
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef GL_NV_shader_sm_builtins
|
||||||
|
#extension GL_NV_shader_sm_builtins : enable
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void sm_builtins()
|
||||||
|
{
|
||||||
|
gl_WarpsPerSMNV;
|
||||||
|
gl_SMCountNV;
|
||||||
|
gl_WarpIDNV;
|
||||||
|
gl_SMIDNV;
|
||||||
|
}
|
||||||
|
|||||||
15
Test/hlsl.specConstant.frag
Executable file
15
Test/hlsl.specConstant.frag
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
[[vk::constant_id(0)]] const uint index = 2;
|
||||||
|
|
||||||
|
static const uint array[] = { 10, 20, 30, 40 };
|
||||||
|
|
||||||
|
float4 main( ) : SV_TARGET
|
||||||
|
{
|
||||||
|
float4 r;
|
||||||
|
for(uint i = 0; i < array[index]; i++)
|
||||||
|
r = i;
|
||||||
|
|
||||||
|
r += index + index;
|
||||||
|
r += 2 * index;
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
@ -239,6 +239,13 @@ $EXE -D -E hlsl.pp.expand.frag > $TARGETDIR/hlsl.pp.expand.frag.out 2> $TARGETDI
|
|||||||
diff -b $BASEDIR/hlsl.pp.expand.frag.out $TARGETDIR/hlsl.pp.expand.frag.out || HASERROR=1
|
diff -b $BASEDIR/hlsl.pp.expand.frag.out $TARGETDIR/hlsl.pp.expand.frag.out || HASERROR=1
|
||||||
diff -b $BASEDIR/hlsl.pp.expand.frag.err $TARGETDIR/hlsl.pp.expand.frag.err || HASERROR=1
|
diff -b $BASEDIR/hlsl.pp.expand.frag.err $TARGETDIR/hlsl.pp.expand.frag.err || HASERROR=1
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test --nan-clamp
|
||||||
|
#
|
||||||
|
echo "Testing nan-clamp"
|
||||||
|
$EXE --nan-clamp -H --aml --amb spv.400.frag > $TARGETDIR/spv.400.frag.nanclamp.out
|
||||||
|
diff -b $BASEDIR/spv.400.frag.nanclamp.out $TARGETDIR/spv.400.frag.nanclamp.out || HASERROR=1
|
||||||
|
|
||||||
#
|
#
|
||||||
# Final checking
|
# Final checking
|
||||||
#
|
#
|
||||||
|
|||||||
18
Test/spv.conditionalDemote.frag
Normal file
18
Test/spv.conditionalDemote.frag
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#version 460 core
|
||||||
|
#extension GL_EXT_demote_to_helper_invocation : enable
|
||||||
|
|
||||||
|
layout(set = 0, binding = 0) uniform sampler2D tex;
|
||||||
|
layout(location = 0) in vec2 coord;
|
||||||
|
layout(location = 0) out vec4 o;
|
||||||
|
|
||||||
|
void main (void)
|
||||||
|
{
|
||||||
|
vec4 v = texture(tex, coord);
|
||||||
|
|
||||||
|
if (v == vec4(0.1,0.2,0.3,0.4))
|
||||||
|
demote;
|
||||||
|
|
||||||
|
bool x = helperInvocationEXT();
|
||||||
|
|
||||||
|
o = v;
|
||||||
|
}
|
||||||
158
Test/spv.constConstruct.vert
Normal file
158
Test/spv.constConstruct.vert
Normal file
@ -0,0 +1,158 @@
|
|||||||
|
#version 450
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_float16 : enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_float32 : enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_float64 : enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int8 : enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int16 : enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int32 : enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int64 : enable
|
||||||
|
|
||||||
|
precision highp float;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
float16_t(float16_t(0x1));
|
||||||
|
float16_t(float32_t(0x2));
|
||||||
|
float16_t(float64_t(0x3));
|
||||||
|
float16_t(int8_t (0x4));
|
||||||
|
float16_t(int16_t (0x5));
|
||||||
|
float16_t(int32_t (0x6));
|
||||||
|
float16_t(int64_t (0x7));
|
||||||
|
float16_t(uint8_t (0x8));
|
||||||
|
float16_t(uint16_t (0x9));
|
||||||
|
float16_t(uint32_t (0xA));
|
||||||
|
float16_t(uint64_t (0xB));
|
||||||
|
float16_t(bool (0xC));
|
||||||
|
float32_t(float16_t(0x11));
|
||||||
|
float32_t(float32_t(0x12));
|
||||||
|
float32_t(float64_t(0x13));
|
||||||
|
float32_t(int8_t (0x14));
|
||||||
|
float32_t(int16_t (0x15));
|
||||||
|
float32_t(int32_t (0x16));
|
||||||
|
float32_t(int64_t (0x17));
|
||||||
|
float32_t(uint8_t (0x18));
|
||||||
|
float32_t(uint16_t (0x19));
|
||||||
|
float32_t(uint32_t (0x1A));
|
||||||
|
float32_t(uint64_t (0x1B));
|
||||||
|
float32_t(bool (0x1C));
|
||||||
|
float64_t(float16_t(0x21));
|
||||||
|
float64_t(float32_t(0x22));
|
||||||
|
float64_t(float64_t(0x23));
|
||||||
|
float64_t(int8_t (0x24));
|
||||||
|
float64_t(int16_t (0x25));
|
||||||
|
float64_t(int32_t (0x26));
|
||||||
|
float64_t(int64_t (0x27));
|
||||||
|
float64_t(uint8_t (0x28));
|
||||||
|
float64_t(uint16_t (0x29));
|
||||||
|
float64_t(uint32_t (0x2A));
|
||||||
|
float64_t(uint64_t (0x2B));
|
||||||
|
float64_t(bool (0x2C));
|
||||||
|
int8_t(float16_t(0x31));
|
||||||
|
int8_t(float32_t(0x32));
|
||||||
|
int8_t(float64_t(0x33));
|
||||||
|
int8_t(int8_t (0x34));
|
||||||
|
int8_t(int16_t (0x35));
|
||||||
|
int8_t(int32_t (0x36));
|
||||||
|
int8_t(int64_t (0x37));
|
||||||
|
int8_t(uint8_t (0x38));
|
||||||
|
int8_t(uint16_t (0x39));
|
||||||
|
int8_t(uint32_t (0x3A));
|
||||||
|
int8_t(uint64_t (0x3B));
|
||||||
|
int8_t(bool (0x3C));
|
||||||
|
int16_t(float16_t(0x41));
|
||||||
|
int16_t(float32_t(0x42));
|
||||||
|
int16_t(float64_t(0x43));
|
||||||
|
int16_t(int8_t (0x44));
|
||||||
|
int16_t(int16_t (0x45));
|
||||||
|
int16_t(int32_t (0x46));
|
||||||
|
int16_t(int64_t (0x47));
|
||||||
|
int16_t(uint8_t (0x48));
|
||||||
|
int16_t(uint16_t (0x49));
|
||||||
|
int16_t(uint32_t (0x4A));
|
||||||
|
int16_t(uint64_t (0x4B));
|
||||||
|
int16_t(bool (0x4C));
|
||||||
|
int32_t(float16_t(0x51));
|
||||||
|
int32_t(float32_t(0x52));
|
||||||
|
int32_t(float64_t(0x53));
|
||||||
|
int32_t(int8_t (0x54));
|
||||||
|
int32_t(int16_t (0x55));
|
||||||
|
int32_t(int32_t (0x56));
|
||||||
|
int32_t(int64_t (0x57));
|
||||||
|
int32_t(uint8_t (0x58));
|
||||||
|
int32_t(uint16_t (0x59));
|
||||||
|
int32_t(uint32_t (0x5A));
|
||||||
|
int32_t(uint64_t (0x5B));
|
||||||
|
int32_t(bool (0x5C));
|
||||||
|
int64_t(float16_t(0x61));
|
||||||
|
int64_t(float32_t(0x62));
|
||||||
|
int64_t(float64_t(0x63));
|
||||||
|
int64_t(int8_t (0x64));
|
||||||
|
int64_t(int16_t (0x65));
|
||||||
|
int64_t(int32_t (0x66));
|
||||||
|
int64_t(int64_t (0x67));
|
||||||
|
int64_t(uint8_t (0x68));
|
||||||
|
int64_t(uint16_t (0x69));
|
||||||
|
int64_t(uint32_t (0x6A));
|
||||||
|
int64_t(uint64_t (0x6B));
|
||||||
|
int64_t(bool (0x6C));
|
||||||
|
uint8_t(float16_t(0x71));
|
||||||
|
uint8_t(float32_t(0x72));
|
||||||
|
uint8_t(float64_t(0x73));
|
||||||
|
uint8_t(int8_t (0x74));
|
||||||
|
uint8_t(int16_t (0x75));
|
||||||
|
uint8_t(int32_t (0x76));
|
||||||
|
uint8_t(int64_t (0x77));
|
||||||
|
uint8_t(uint8_t (0x78));
|
||||||
|
uint8_t(uint16_t (0x79));
|
||||||
|
uint8_t(uint32_t (0x7A));
|
||||||
|
uint8_t(uint64_t (0x7B));
|
||||||
|
uint8_t(bool (0x7C));
|
||||||
|
uint16_t(float16_t(0x81));
|
||||||
|
uint16_t(float32_t(0x82));
|
||||||
|
uint16_t(float64_t(0x83));
|
||||||
|
uint16_t(int8_t (0x84));
|
||||||
|
uint16_t(int16_t (0x85));
|
||||||
|
uint16_t(int32_t (0x86));
|
||||||
|
uint16_t(int64_t (0x87));
|
||||||
|
uint16_t(uint8_t (0x88));
|
||||||
|
uint16_t(uint16_t (0x89));
|
||||||
|
uint16_t(uint32_t (0x8A));
|
||||||
|
uint16_t(uint64_t (0x8B));
|
||||||
|
uint16_t(bool (0x8C));
|
||||||
|
uint32_t(float16_t(0x91));
|
||||||
|
uint32_t(float32_t(0x92));
|
||||||
|
uint32_t(float64_t(0x93));
|
||||||
|
uint32_t(int8_t (0x94));
|
||||||
|
uint32_t(int16_t (0x95));
|
||||||
|
uint32_t(int32_t (0x96));
|
||||||
|
uint32_t(int64_t (0x97));
|
||||||
|
uint32_t(uint8_t (0x98));
|
||||||
|
uint32_t(uint16_t (0x99));
|
||||||
|
uint32_t(uint32_t (0x9A));
|
||||||
|
uint32_t(uint64_t (0x9B));
|
||||||
|
uint32_t(bool (0x9C));
|
||||||
|
uint64_t(float16_t(0xA1));
|
||||||
|
uint64_t(float32_t(0xA2));
|
||||||
|
uint64_t(float64_t(0xA3));
|
||||||
|
uint64_t(int8_t (0xA4));
|
||||||
|
uint64_t(int16_t (0xA5));
|
||||||
|
uint64_t(int32_t (0xA6));
|
||||||
|
uint64_t(int64_t (0xA7));
|
||||||
|
uint64_t(uint8_t (0xA8));
|
||||||
|
uint64_t(uint16_t (0xA9));
|
||||||
|
uint64_t(uint32_t (0xAA));
|
||||||
|
uint64_t(uint64_t (0xAB));
|
||||||
|
uint64_t(bool (0xAC));
|
||||||
|
bool(float16_t(0xB1));
|
||||||
|
bool(float32_t(0xB2));
|
||||||
|
bool(float64_t(0xB3));
|
||||||
|
bool(int8_t (0xB4));
|
||||||
|
bool(int16_t (0xB5));
|
||||||
|
bool(int32_t (0xB6));
|
||||||
|
bool(int64_t (0xB7));
|
||||||
|
bool(uint8_t (0xB8));
|
||||||
|
bool(uint16_t (0xB9));
|
||||||
|
bool(uint32_t (0xBA));
|
||||||
|
bool(uint64_t (0xBB));
|
||||||
|
bool(bool (0xBC));
|
||||||
|
}
|
||||||
10
Test/spv.demoteDisabled.frag
Normal file
10
Test/spv.demoteDisabled.frag
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#version 460 core
|
||||||
|
|
||||||
|
void main (void)
|
||||||
|
{
|
||||||
|
{
|
||||||
|
int demote = 0;
|
||||||
|
demote;
|
||||||
|
}
|
||||||
|
demote;
|
||||||
|
}
|
||||||
20
Test/spv.functionParameterTypes.frag
Normal file
20
Test/spv.functionParameterTypes.frag
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#version 460 core
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int64 : enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int8 : enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int16 : enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_float16 : enable
|
||||||
|
|
||||||
|
int f(int8_t i8,
|
||||||
|
uint8_t u8,
|
||||||
|
int16_t i16,
|
||||||
|
uint16_t u16,
|
||||||
|
int64_t i64,
|
||||||
|
uint64_t u64,
|
||||||
|
float16_t f16)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
}
|
||||||
@ -19,6 +19,7 @@ layout (binding = 7) nonprivate uniform BufferK { uint x; } bufferk;
|
|||||||
shared uint64_t atomu64;
|
shared uint64_t atomu64;
|
||||||
shared int64_t atomi64;
|
shared int64_t atomi64;
|
||||||
layout (binding = 8) volatile buffer BufferL { uint x; } bufferl;
|
layout (binding = 8) volatile buffer BufferL { uint x; } bufferl;
|
||||||
|
layout (binding = 9) buffer BufferM { volatile uint x; } bufferm;
|
||||||
|
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
@ -60,5 +61,10 @@ void main()
|
|||||||
atomicCompSwap(atomi64, int64_t(10), int64_t(atomu64), gl_ScopeDevice, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquire, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquire);
|
atomicCompSwap(atomi64, int64_t(10), int64_t(atomu64), gl_ScopeDevice, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquire, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquire);
|
||||||
|
|
||||||
y = bufferl.x;
|
y = bufferl.x;
|
||||||
|
atomicAdd(bufferl.x, 1);
|
||||||
|
atomicOr(bufferm.x, 2);
|
||||||
|
imageAtomicAdd(imagei, ivec2(0,0), 3);
|
||||||
|
atomicAdd(bufferu.x, 4u, gl_ScopeDevice, 0, 0);
|
||||||
|
atomicAdd(bufferu.x, 5u, gl_ScopeDevice, 0, gl_SemanticsVolatile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -24,5 +24,7 @@ void main()
|
|||||||
uint origu = atomicCompSwap(atomu, 10u, value, gl_ScopeDevice, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquire, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquireRelease);
|
uint origu = atomicCompSwap(atomu, 10u, value, gl_ScopeDevice, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquire, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquireRelease);
|
||||||
memoryBarrier(gl_ScopeWorkgroup, gl_StorageSemanticsBuffer, gl_SemanticsRelease | gl_SemanticsMakeVisible);
|
memoryBarrier(gl_ScopeWorkgroup, gl_StorageSemanticsBuffer, gl_SemanticsRelease | gl_SemanticsMakeVisible);
|
||||||
memoryBarrier(gl_ScopeWorkgroup, gl_StorageSemanticsBuffer, gl_SemanticsAcquire | gl_SemanticsMakeAvailable);
|
memoryBarrier(gl_ScopeWorkgroup, gl_StorageSemanticsBuffer, gl_SemanticsAcquire | gl_SemanticsMakeAvailable);
|
||||||
|
memoryBarrier(gl_ScopeWorkgroup, gl_StorageSemanticsBuffer, gl_SemanticsRelease | gl_SemanticsVolatile);
|
||||||
|
atomicCompSwap(bufferi.x, 10u, 10u, gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsAcquire | gl_SemanticsVolatile, gl_StorageSemanticsBuffer, gl_SemanticsAcquire);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -22,18 +22,30 @@ layout(triangles) out;
|
|||||||
layout(location=0) out block {
|
layout(location=0) out block {
|
||||||
perprimitiveNV perviewNV vec4 color1[][3]; // Implicitly sized
|
perprimitiveNV perviewNV vec4 color1[][3]; // Implicitly sized
|
||||||
perprimitiveNV vec4 color2[3];
|
perprimitiveNV vec4 color2[3];
|
||||||
perviewNV vec4 color3[MAX_VIEWS][3]; // Explicitly sized
|
perviewNV vec4 color3[MAX_VIEWS][3]; // Explicitly sized
|
||||||
vec4 color4;
|
vec4 color4;
|
||||||
} b[];
|
} b[];
|
||||||
|
|
||||||
// per-view block
|
// per-view block attributes
|
||||||
perviewNV layout(location=10) out perviewBlock {
|
perviewNV layout(location=10) out perviewBlock {
|
||||||
perprimitiveNV vec4 color5[]; // Implicitly sized
|
perprimitiveNV vec4 color5[]; // Implicitly sized
|
||||||
perprimitiveNV vec4 color6[MAX_VIEWS][3]; // Explicitly sized
|
perprimitiveNV vec4 color6[MAX_VIEWS][3]; // Explicitly sized
|
||||||
vec4 color7[][3]; // Implicitly sized
|
vec4 color7[][3]; // Implicitly sized
|
||||||
vec4 color8[MAX_VIEWS]; // Explicitly sized
|
vec4 color8[MAX_VIEWS]; // Explicitly sized
|
||||||
} b2[];
|
} b2[];
|
||||||
|
|
||||||
|
// per-view non-block attributes
|
||||||
|
perviewNV layout(location=18) out vec4 nonBlk1[MAX_VER][MAX_VIEWS]; // Explicit+Explicit
|
||||||
|
perviewNV perprimitiveNV layout(location=19) out vec4 nonBlk2[MAX_PRIM][]; // Explicit+Implicit
|
||||||
|
perviewNV layout(location=20) out vec4 nonBlk3[][MAX_VIEWS]; // Implicit+Explicit
|
||||||
|
perviewNV perprimitiveNV layout(location=21) out vec4 nonBlk4[][]; // Implicit+Implicit
|
||||||
|
|
||||||
|
// per-view non-block array attributes
|
||||||
|
perviewNV layout(location=22) out vec4 nonBlkArr1[MAX_VER][MAX_VIEWS][2]; // Explicit+Explicit
|
||||||
|
perviewNV perprimitiveNV layout(location=24) out vec4 nonBlkArr2[MAX_PRIM][][2]; // Explicit+Implicit
|
||||||
|
perviewNV layout(location=26) out vec4 nonBlkArr3[][MAX_VIEWS][2]; // Implicit+Explicit
|
||||||
|
perviewNV perprimitiveNV layout(location=28) out vec4 nonBlkArr4[][][2]; // Implicit+Implicit
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
uint iid = gl_LocalInvocationID.x;
|
uint iid = gl_LocalInvocationID.x;
|
||||||
|
|||||||
32
Test/spv.meshShaderPerView_Errors.mesh
Normal file
32
Test/spv.meshShaderPerView_Errors.mesh
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
#define MAX_VER 81
|
||||||
|
#define MAX_PRIM 32
|
||||||
|
#define MAX_VIEWS gl_MaxMeshViewCountNV
|
||||||
|
|
||||||
|
#extension GL_NV_mesh_shader : enable
|
||||||
|
|
||||||
|
layout(local_size_x = 32) in;
|
||||||
|
|
||||||
|
layout(max_vertices=MAX_VER) out;
|
||||||
|
layout(max_primitives=MAX_PRIM) out;
|
||||||
|
layout(triangles) out;
|
||||||
|
|
||||||
|
// test error checks for use of incorrect per-view attributes
|
||||||
|
|
||||||
|
// per-view block attributes
|
||||||
|
perviewNV layout(location=0) out perviewBlock {
|
||||||
|
vec4 missingInnermostDimSize1[][];
|
||||||
|
vec4 incorrectViewDimSize1[MAX_VIEWS+1];
|
||||||
|
vec4 missingViewDim1;
|
||||||
|
} b2[];
|
||||||
|
|
||||||
|
// per-view non-block attributes
|
||||||
|
perviewNV layout(location=10) out vec4 missingInnermostDimSize2[][][];
|
||||||
|
perviewNV layout(location=11) out vec4 incorrectViewDimSize2[][MAX_VIEWS-1];
|
||||||
|
perviewNV layout(location=12) out vec4 missingViewDim2[];
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
@ -10,5 +10,5 @@ out gl_PerVertex {
|
|||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
gl_out[gl_InvocationID].gl_ViewportMaskPerViewNV[0] = 1;
|
gl_out[gl_InvocationID].gl_ViewportMaskPerViewNV[0] = 1;
|
||||||
gl_out[gl_InvocationID].gl_PositionPerViewNV[0] = gl_in[1].gl_Position;
|
gl_out[gl_InvocationID].gl_PositionPerViewNV[0] = gl_in[1].gl_Position + gl_in[1].gl_PositionPerViewNV[0];
|
||||||
}
|
}
|
||||||
|
|||||||
17
Test/spv.privateVariableTypes.frag
Normal file
17
Test/spv.privateVariableTypes.frag
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#version 460 core
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int64 : enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int8 : enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_int16 : enable
|
||||||
|
#extension GL_EXT_shader_explicit_arithmetic_types_float16 : enable
|
||||||
|
|
||||||
|
int8_t i8;
|
||||||
|
uint8_t u8;
|
||||||
|
int16_t i16;
|
||||||
|
uint16_t u16;
|
||||||
|
int64_t i64;
|
||||||
|
uint64_t u64;
|
||||||
|
float16_t f16;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
}
|
||||||
7
Test/spv.smBuiltins.frag
Normal file
7
Test/spv.smBuiltins.frag
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#version 450
|
||||||
|
#extension GL_NV_shader_sm_builtins: enable
|
||||||
|
layout(location = 0) out uvec4 data;
|
||||||
|
void main (void)
|
||||||
|
{
|
||||||
|
data = uvec4(gl_WarpsPerSMNV, gl_SMCountNV, gl_WarpIDNV, gl_SMIDNV);
|
||||||
|
}
|
||||||
11
Test/spv.smBuiltins.vert
Normal file
11
Test/spv.smBuiltins.vert
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#version 450
|
||||||
|
#extension GL_NV_shader_sm_builtins: enable
|
||||||
|
layout(set = 0, binding = 0, std430) buffer Output
|
||||||
|
{
|
||||||
|
uvec4 result[];
|
||||||
|
};
|
||||||
|
|
||||||
|
void main (void)
|
||||||
|
{
|
||||||
|
result[gl_VertexIndex] = uvec4(gl_WarpsPerSMNV, gl_SMCountNV, gl_WarpIDNV, gl_SMIDNV);
|
||||||
|
}
|
||||||
14
Test/spv.specConstArrayCheck.vert
Executable file
14
Test/spv.specConstArrayCheck.vert
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
layout(constant_id = 0) const uint a = 1;
|
||||||
|
layout(constant_id = 1) const uint b = 2;
|
||||||
|
layout(location = 0) out uint o;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
uint arr1[a+a];
|
||||||
|
uint arr2[b];
|
||||||
|
o = arr1[1];
|
||||||
|
o = arr2[1];
|
||||||
|
o = arr1[6];
|
||||||
|
o = arr2[6];
|
||||||
|
}
|
||||||
@ -15,5 +15,5 @@ layout (viewport_relative, secondary_view_offset = 1) out highp int gl_Layer;
|
|||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
gl_out[gl_InvocationID].gl_SecondaryViewportMaskNV[0] = 1;
|
gl_out[gl_InvocationID].gl_SecondaryViewportMaskNV[0] = 1;
|
||||||
gl_out[gl_InvocationID].gl_SecondaryPositionNV = gl_in[1].gl_Position;
|
gl_out[gl_InvocationID].gl_SecondaryPositionNV = gl_in[1].gl_Position + gl_in[1].gl_SecondaryPositionNV;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -275,6 +275,12 @@ enum TBuiltInVariable {
|
|||||||
EbvMeshViewIndicesNV,
|
EbvMeshViewIndicesNV,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// sm builtins
|
||||||
|
EbvWarpsPerSM,
|
||||||
|
EbvSMCount,
|
||||||
|
EbvWarpID,
|
||||||
|
EbvSMID,
|
||||||
|
|
||||||
// HLSL built-ins that live only temporarily, until they get remapped
|
// HLSL built-ins that live only temporarily, until they get remapped
|
||||||
// to one of the above.
|
// to one of the above.
|
||||||
EbvFragDepthGreater,
|
EbvFragDepthGreater,
|
||||||
@ -460,6 +466,11 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v)
|
|||||||
case EbvMeshViewIndicesNV: return "MeshViewIndicesNV";
|
case EbvMeshViewIndicesNV: return "MeshViewIndicesNV";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
case EbvWarpsPerSM: return "WarpsPerSMNV";
|
||||||
|
case EbvSMCount: return "SMCountNV";
|
||||||
|
case EbvWarpID: return "WarpIDNV";
|
||||||
|
case EbvSMID: return "SMIDNV";
|
||||||
|
|
||||||
default: return "unknown built-in variable";
|
default: return "unknown built-in variable";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -514,8 +514,9 @@ public:
|
|||||||
|
|
||||||
const char* semanticName;
|
const char* semanticName;
|
||||||
TStorageQualifier storage : 6;
|
TStorageQualifier storage : 6;
|
||||||
TBuiltInVariable builtIn : 8;
|
TBuiltInVariable builtIn : 9;
|
||||||
TBuiltInVariable declaredBuiltIn : 8;
|
TBuiltInVariable declaredBuiltIn : 9;
|
||||||
|
static_assert(EbvLast < 256, "need to increase size of TBuiltInVariable bitfields!");
|
||||||
TPrecisionQualifier precision : 3;
|
TPrecisionQualifier precision : 3;
|
||||||
bool invariant : 1; // require canonical treatment for cross-shader invariance
|
bool invariant : 1; // require canonical treatment for cross-shader invariance
|
||||||
bool noContraction: 1; // prevent contraction and reassociation, e.g., for 'precise' keyword, and expressions it affects
|
bool noContraction: 1; // prevent contraction and reassociation, e.g., for 'precise' keyword, and expressions it affects
|
||||||
|
|||||||
@ -624,6 +624,8 @@ enum TOperator {
|
|||||||
EOpBeginInvocationInterlock, // Fragment only
|
EOpBeginInvocationInterlock, // Fragment only
|
||||||
EOpEndInvocationInterlock, // Fragment only
|
EOpEndInvocationInterlock, // Fragment only
|
||||||
|
|
||||||
|
EOpIsHelperInvocation,
|
||||||
|
|
||||||
//
|
//
|
||||||
// Branch
|
// Branch
|
||||||
//
|
//
|
||||||
@ -634,6 +636,7 @@ enum TOperator {
|
|||||||
EOpContinue,
|
EOpContinue,
|
||||||
EOpCase,
|
EOpCase,
|
||||||
EOpDefault,
|
EOpDefault,
|
||||||
|
EOpDemote, // Fragment only
|
||||||
|
|
||||||
//
|
//
|
||||||
// Constructors
|
// Constructors
|
||||||
@ -651,9 +654,21 @@ enum TOperator {
|
|||||||
EOpConstructBool,
|
EOpConstructBool,
|
||||||
EOpConstructFloat,
|
EOpConstructFloat,
|
||||||
EOpConstructDouble,
|
EOpConstructDouble,
|
||||||
|
// Keep vector and matrix constructors in a consistent relative order for
|
||||||
|
// TParseContext::constructBuiltIn, which converts between 8/16/32 bit
|
||||||
|
// vector constructors
|
||||||
EOpConstructVec2,
|
EOpConstructVec2,
|
||||||
EOpConstructVec3,
|
EOpConstructVec3,
|
||||||
EOpConstructVec4,
|
EOpConstructVec4,
|
||||||
|
EOpConstructMat2x2,
|
||||||
|
EOpConstructMat2x3,
|
||||||
|
EOpConstructMat2x4,
|
||||||
|
EOpConstructMat3x2,
|
||||||
|
EOpConstructMat3x3,
|
||||||
|
EOpConstructMat3x4,
|
||||||
|
EOpConstructMat4x2,
|
||||||
|
EOpConstructMat4x3,
|
||||||
|
EOpConstructMat4x4,
|
||||||
EOpConstructDVec2,
|
EOpConstructDVec2,
|
||||||
EOpConstructDVec3,
|
EOpConstructDVec3,
|
||||||
EOpConstructDVec4,
|
EOpConstructDVec4,
|
||||||
@ -684,15 +699,6 @@ enum TOperator {
|
|||||||
EOpConstructU64Vec2,
|
EOpConstructU64Vec2,
|
||||||
EOpConstructU64Vec3,
|
EOpConstructU64Vec3,
|
||||||
EOpConstructU64Vec4,
|
EOpConstructU64Vec4,
|
||||||
EOpConstructMat2x2,
|
|
||||||
EOpConstructMat2x3,
|
|
||||||
EOpConstructMat2x4,
|
|
||||||
EOpConstructMat3x2,
|
|
||||||
EOpConstructMat3x3,
|
|
||||||
EOpConstructMat3x4,
|
|
||||||
EOpConstructMat4x2,
|
|
||||||
EOpConstructMat4x3,
|
|
||||||
EOpConstructMat4x4,
|
|
||||||
EOpConstructDMat2x2,
|
EOpConstructDMat2x2,
|
||||||
EOpConstructDMat2x3,
|
EOpConstructDMat2x3,
|
||||||
EOpConstructDMat2x4,
|
EOpConstructDMat2x4,
|
||||||
@ -999,6 +1005,10 @@ enum TOperator {
|
|||||||
EOpWaveGetLaneIndex, // Will decompose to gl_SubgroupInvocationID.
|
EOpWaveGetLaneIndex, // Will decompose to gl_SubgroupInvocationID.
|
||||||
EOpWaveActiveCountBits, // Will decompose to subgroupBallotBitCount(subgroupBallot()).
|
EOpWaveActiveCountBits, // Will decompose to subgroupBallotBitCount(subgroupBallot()).
|
||||||
EOpWavePrefixCountBits, // Will decompose to subgroupBallotInclusiveBitCount(subgroupBallot()).
|
EOpWavePrefixCountBits, // Will decompose to subgroupBallotInclusiveBitCount(subgroupBallot()).
|
||||||
|
|
||||||
|
// Shader Clock Ops
|
||||||
|
EOpReadClockSubgroupKHR,
|
||||||
|
EOpReadClockDeviceKHR,
|
||||||
};
|
};
|
||||||
|
|
||||||
class TIntermTraverser;
|
class TIntermTraverser;
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
// This header is generated by the make-revision script.
|
// This header is generated by the make-revision script.
|
||||||
|
|
||||||
#define GLSLANG_PATCH_LEVEL 3226
|
#define GLSLANG_PATCH_LEVEL 3321
|
||||||
|
|||||||
31
glslang/MachineIndependent/Constant.cpp
Normal file → Executable file
31
glslang/MachineIndependent/Constant.cpp
Normal file → Executable file
@ -415,8 +415,8 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType)
|
|||||||
|
|
||||||
case EOpEmitStreamVertex:
|
case EOpEmitStreamVertex:
|
||||||
case EOpEndStreamPrimitive:
|
case EOpEndStreamPrimitive:
|
||||||
// These don't actually fold
|
// These don't fold
|
||||||
return 0;
|
return nullptr;
|
||||||
|
|
||||||
case EOpPackSnorm2x16:
|
case EOpPackSnorm2x16:
|
||||||
case EOpPackUnorm2x16:
|
case EOpPackUnorm2x16:
|
||||||
@ -491,8 +491,6 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: 3.0 Functionality: unary constant folding: the rest of the ops have to be fleshed out
|
|
||||||
|
|
||||||
case EOpPackSnorm2x16:
|
case EOpPackSnorm2x16:
|
||||||
case EOpPackUnorm2x16:
|
case EOpPackUnorm2x16:
|
||||||
case EOpPackHalf2x16:
|
case EOpPackHalf2x16:
|
||||||
@ -510,7 +508,7 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType)
|
|||||||
case EOpDeterminant:
|
case EOpDeterminant:
|
||||||
case EOpMatrixInverse:
|
case EOpMatrixInverse:
|
||||||
case EOpTranspose:
|
case EOpTranspose:
|
||||||
return 0;
|
return nullptr;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
assert(componentWise);
|
assert(componentWise);
|
||||||
@ -538,7 +536,7 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType)
|
|||||||
case EbtInt64: newConstArray[i].setI64Const(-unionArray[i].getI64Const()); break;
|
case EbtInt64: newConstArray[i].setI64Const(-unionArray[i].getI64Const()); break;
|
||||||
case EbtUint64: newConstArray[i].setU64Const(static_cast<unsigned long long>(-static_cast<long long>(unionArray[i].getU64Const()))); break;
|
case EbtUint64: newConstArray[i].setU64Const(static_cast<unsigned long long>(-static_cast<long long>(unionArray[i].getU64Const()))); break;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return nullptr;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EOpLogicalNot:
|
case EOpLogicalNot:
|
||||||
@ -546,7 +544,7 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType)
|
|||||||
switch (getType().getBasicType()) {
|
switch (getType().getBasicType()) {
|
||||||
case EbtBool: newConstArray[i].setBConst(!unionArray[i].getBConst()); break;
|
case EbtBool: newConstArray[i].setBConst(!unionArray[i].getBConst()); break;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return nullptr;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EOpBitwiseNot:
|
case EOpBitwiseNot:
|
||||||
@ -970,7 +968,7 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType)
|
|||||||
case EOpInt16BitsToFloat16:
|
case EOpInt16BitsToFloat16:
|
||||||
case EOpUint16BitsToFloat16:
|
case EOpUint16BitsToFloat16:
|
||||||
default:
|
default:
|
||||||
return 0;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1201,12 +1199,17 @@ TIntermTyped* TIntermediate::fold(TIntermAggregate* aggrNode)
|
|||||||
newConstArray[comp].setBConst(childConstUnions[0][arg0comp] != childConstUnions[1][arg1comp]);
|
newConstArray[comp].setBConst(childConstUnions[0][arg0comp] != childConstUnions[1][arg1comp]);
|
||||||
break;
|
break;
|
||||||
case EOpMix:
|
case EOpMix:
|
||||||
if (children[2]->getAsTyped()->getBasicType() == EbtBool)
|
if (!children[0]->getAsTyped()->isFloatingDomain())
|
||||||
newConstArray[comp].setDConst(childConstUnions[2][arg2comp].getBConst() ? childConstUnions[1][arg1comp].getDConst() :
|
return aggrNode;
|
||||||
childConstUnions[0][arg0comp].getDConst());
|
if (children[2]->getAsTyped()->getBasicType() == EbtBool) {
|
||||||
else
|
newConstArray[comp].setDConst(childConstUnions[2][arg2comp].getBConst()
|
||||||
newConstArray[comp].setDConst(childConstUnions[0][arg0comp].getDConst() * (1.0 - childConstUnions[2][arg2comp].getDConst()) +
|
? childConstUnions[1][arg1comp].getDConst()
|
||||||
childConstUnions[1][arg1comp].getDConst() * childConstUnions[2][arg2comp].getDConst());
|
: childConstUnions[0][arg0comp].getDConst());
|
||||||
|
} else {
|
||||||
|
newConstArray[comp].setDConst(
|
||||||
|
childConstUnions[0][arg0comp].getDConst() * (1.0 - childConstUnions[2][arg2comp].getDConst()) +
|
||||||
|
childConstUnions[1][arg1comp].getDConst() * childConstUnions[2][arg2comp].getDConst());
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case EOpStep:
|
case EOpStep:
|
||||||
newConstArray[comp].setDConst(childConstUnions[1][arg1comp].getDConst() < childConstUnions[0][arg0comp].getDConst() ? 0.0 : 1.0);
|
newConstArray[comp].setDConst(childConstUnions[1][arg1comp].getDConst() < childConstUnions[0][arg0comp].getDConst() ? 0.0 : 1.0);
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user