Merge branch 'master' into textureQueryLOD

This commit is contained in:
Greg Fischer 2021-11-22 10:39:03 -07:00 committed by GitHub
commit a40e4ac3f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
166 changed files with 8875 additions and 4653 deletions

View File

@ -49,6 +49,11 @@ py_binary(
srcs = ["build_info.py"], srcs = ["build_info.py"],
) )
py_binary(
name = "gen_extension_headers",
srcs = ["gen_extension_headers.py"],
)
genrule( genrule(
name = "gen_build_info_h", name = "gen_build_info_h",
srcs = ["CHANGES.md", "build_info.h.tmpl"], srcs = ["CHANGES.md", "build_info.h.tmpl"],
@ -58,6 +63,14 @@ genrule(
tools = [":build_info"], tools = [":build_info"],
) )
genrule(
name = "gen_extension_headers_h",
srcs = ["glslang/ExtensionHeaders", "gen_extension_headers.py"],
outs = ["glslang/glsl_intrinsic_header.h"],
cmd_bash = "$(location gen_extension_headers) -i $(location glslang/ExtensionHeaders) -o $(location glslang/glsl_intrinsic_header.h)",
tools = [":gen_extension_headers"],
)
COMMON_COPTS = select({ COMMON_COPTS = select({
"@bazel_tools//src/conditions:windows": [""], "@bazel_tools//src/conditions:windows": [""],
"//conditions:default": [ "//conditions:default": [
@ -206,6 +219,7 @@ cc_binary(
srcs = [ srcs = [
"StandAlone/StandAlone.cpp", "StandAlone/StandAlone.cpp",
"StandAlone/Worklist.h", "StandAlone/Worklist.h",
":glslang/glsl_intrinsic_header.h"
], ],
copts = COMMON_COPTS, copts = COMMON_COPTS,
deps = [ deps = [

View File

@ -69,6 +69,23 @@ action("glslang_build_info") {
] ]
} }
action("glslang_extension_headers") {
script = "gen_extension_headers.py"
out_file = "${target_gen_dir}/include/glslang/glsl_intrinsic_header.h"
inputs = [
script
]
outputs = [ out_file ]
args = [
"-i",
rebase_path("glslang/ExtensionHeaders", root_build_dir),
"-o",
rebase_path(out_file, root_build_dir),
]
}
spirv_tools_dir = glslang_spirv_tools_dir spirv_tools_dir = glslang_spirv_tools_dir
if (!defined(glslang_angle)) { if (!defined(glslang_angle)) {
glslang_angle = false glslang_angle = false
@ -302,6 +319,7 @@ executable("glslang_validator") {
":glslang_build_info", ":glslang_build_info",
":glslang_default_resource_limits_sources", ":glslang_default_resource_limits_sources",
":glslang_sources", ":glslang_sources",
":glslang_extension_headers",
] ]
public_configs = [ ":glslang_hlsl" ] public_configs = [ ":glslang_hlsl" ]

View File

@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/). This project adheres to [Semantic Versioning](https://semver.org/).
## 11.7.0 2021-11-11
### Other changes
* Add support for targeting Vulkan 1.2 in the C API
## 11.6.0 2021-08-25
### Other changes
* Atomic memory function only for shader storage block member or shared variable
* Add support for gl_MaxVaryingVectors for ogl
* Fix loading bool arrays from interface blocks
* Generate separate stores for partially swizzled memory stores
* Allow layout(std430) uniform with GL_EXT_scalar_block_layout
* Support for pragma STDGL invariant(all)
* Support for GL_NV_ray_tracing_motion_blur
## 11.5.0 2021-06-23 ## 11.5.0 2021-06-23
### Other changes ### Other changes

View File

@ -118,7 +118,7 @@ if(USE_CCACHE)
find_program(CCACHE_FOUND ccache) find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND) if(CCACHE_FOUND)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
endif(CCACHE_FOUND) endif()
endif() endif()
if(ENABLE_CTEST) if(ENABLE_CTEST)
@ -127,26 +127,27 @@ endif()
if(ENABLE_HLSL) if(ENABLE_HLSL)
add_definitions(-DENABLE_HLSL) add_definitions(-DENABLE_HLSL)
endif(ENABLE_HLSL) endif()
if(ENABLE_GLSLANG_WEBMIN) if(ENABLE_GLSLANG_WEBMIN)
add_definitions(-DGLSLANG_WEB) add_definitions(-DGLSLANG_WEB)
if(ENABLE_GLSLANG_WEBMIN_DEVEL) if(ENABLE_GLSLANG_WEBMIN_DEVEL)
add_definitions(-DGLSLANG_WEB_DEVEL) add_definitions(-DGLSLANG_WEB_DEVEL)
endif(ENABLE_GLSLANG_WEBMIN_DEVEL) endif()
endif(ENABLE_GLSLANG_WEBMIN) endif()
if(WIN32) if(WIN32)
set(CMAKE_DEBUG_POSTFIX "d") set(CMAKE_DEBUG_POSTFIX "d")
if(MSVC) option(OVERRIDE_MSVCCRT "Overrides runtime of MSVC " ON)
if(MSVC AND OVERRIDE_MSVCCRT)
include(ChooseMSVCCRT.cmake) include(ChooseMSVCCRT.cmake)
endif(MSVC) endif()
add_definitions(-DGLSLANG_OSINCLUDE_WIN32) add_definitions(-DGLSLANG_OSINCLUDE_WIN32)
elseif(UNIX) elseif(UNIX)
add_definitions(-DGLSLANG_OSINCLUDE_UNIX) add_definitions(-DGLSLANG_OSINCLUDE_UNIX)
else(WIN32) else()
message("unknown platform") message("unknown platform")
endif(WIN32) endif()
if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")
add_compile_options(-Wall -Wmaybe-uninitialized -Wuninitialized -Wunused -Wunused-local-typedefs add_compile_options(-Wall -Wmaybe-uninitialized -Wuninitialized -Wunused -Wunused-local-typedefs
@ -197,7 +198,7 @@ elseif(MSVC)
if(ENABLE_EXCEPTIONS) if(ENABLE_EXCEPTIONS)
add_compile_options(/EHsc) # Enable Exceptions add_compile_options(/EHsc) # Enable Exceptions
else() else()
string(REGEX REPLACE /EHsc "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) # Try to remove default /EHsc cxx_flag string(REGEX REPLACE "/EHsc" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") # Try to remove default /EHsc cxx_flag
add_compile_options(/D_HAS_EXCEPTIONS=0) add_compile_options(/D_HAS_EXCEPTIONS=0)
endif() endif()
endif() endif()
@ -212,7 +213,7 @@ if(ENABLE_GLSLANG_JS)
add_compile_options(-Wno-unused-variable -Wno-unused-const-variable) add_compile_options(-Wno-unused-variable -Wno-unused-const-variable)
endif() endif()
endif() endif()
endif(ENABLE_GLSLANG_JS) endif()
# Request C++11 # Request C++11
if(${CMAKE_VERSION} VERSION_LESS 3.1) if(${CMAKE_VERSION} VERSION_LESS 3.1)
@ -328,7 +329,7 @@ endif()
add_subdirectory(SPIRV) add_subdirectory(SPIRV)
if(ENABLE_HLSL) if(ENABLE_HLSL)
add_subdirectory(hlsl) add_subdirectory(hlsl)
endif(ENABLE_HLSL) endif()
if(ENABLE_CTEST) if(ENABLE_CTEST)
add_subdirectory(gtests) add_subdirectory(gtests)
endif() endif()
@ -345,11 +346,11 @@ if(ENABLE_CTEST AND BUILD_TESTING)
set(RESULTS_PATH ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>/localResults) set(RESULTS_PATH ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>/localResults)
set(VALIDATOR_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$<CONFIGURATION>/glslangValidator) set(VALIDATOR_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$<CONFIGURATION>/glslangValidator)
set(REMAP_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$<CONFIGURATION>/spirv-remap) set(REMAP_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$<CONFIGURATION>/spirv-remap)
else(CMAKE_CONFIGURATION_TYPES) else()
set(RESULTS_PATH ${CMAKE_CURRENT_BINARY_DIR}/localResults) set(RESULTS_PATH ${CMAKE_CURRENT_BINARY_DIR}/localResults)
set(VALIDATOR_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/glslangValidator) set(VALIDATOR_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/glslangValidator)
set(REMAP_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/spirv-remap) set(REMAP_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/spirv-remap)
endif(CMAKE_CONFIGURATION_TYPES) endif()
add_test(NAME glslang-testsuite add_test(NAME glslang-testsuite
COMMAND bash ${IGNORE_CR_FLAG} runtests ${RESULTS_PATH} ${VALIDATOR_PATH} ${REMAP_PATH} COMMAND bash ${IGNORE_CR_FLAG} runtests ${RESULTS_PATH} ${VALIDATOR_PATH} ${REMAP_PATH}

View File

@ -101,12 +101,12 @@ if(ENABLE_OPT)
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/External>) $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/External>)
else() else()
target_link_libraries(SPIRV PRIVATE MachineIndependent) target_link_libraries(SPIRV PRIVATE MachineIndependent)
endif(ENABLE_OPT) endif()
if(WIN32) if(WIN32)
source_group("Source" FILES ${SOURCES} ${HEADERS}) source_group("Source" FILES ${SOURCES} ${HEADERS})
source_group("Source" FILES ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) source_group("Source" FILES ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
endif(WIN32) endif()
if(ENABLE_GLSLANG_INSTALL) if(ENABLE_GLSLANG_INSTALL)
if(BUILD_SHARED_LIBS) if(BUILD_SHARED_LIBS)
@ -135,4 +135,4 @@ if(ENABLE_GLSLANG_INSTALL)
install(EXPORT SPIRVTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) install(EXPORT SPIRVTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/SPIRV/) install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/SPIRV/)
endif(ENABLE_GLSLANG_INSTALL) endif()

View File

@ -69,6 +69,9 @@ const char* const E_SPV_NV_mesh_shader = "SPV_NV_mesh_shader";
//SPV_NV_raytracing //SPV_NV_raytracing
const char* const E_SPV_NV_ray_tracing = "SPV_NV_ray_tracing"; const char* const E_SPV_NV_ray_tracing = "SPV_NV_ray_tracing";
//SPV_NV_ray_tracing_motion_blur
const char* const E_SPV_NV_ray_tracing_motion_blur = "SPV_NV_ray_tracing_motion_blur";
//SPV_NV_shading_rate //SPV_NV_shading_rate
const char* const E_SPV_NV_shading_rate = "SPV_NV_shading_rate"; const char* const E_SPV_NV_shading_rate = "SPV_NV_shading_rate";

View File

@ -1033,6 +1033,10 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
return spv::BuiltInIncomingRayFlagsKHR; return spv::BuiltInIncomingRayFlagsKHR;
case glslang::EbvGeometryIndex: case glslang::EbvGeometryIndex:
return spv::BuiltInRayGeometryIndexKHR; return spv::BuiltInRayGeometryIndexKHR;
case glslang::EbvCurrentRayTimeNV:
builder.addExtension(spv::E_SPV_NV_ray_tracing_motion_blur);
builder.addCapability(spv::CapabilityRayTracingMotionBlurNV);
return spv::BuiltInCurrentRayTimeNV;
// barycentrics // barycentrics
case glslang::EbvBaryCoordNV: case glslang::EbvBaryCoordNV:
@ -1826,10 +1830,10 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion,
std::vector<spv::Id> operandIds; std::vector<spv::Id> operandIds;
assert(!modeId.second.empty()); assert(!modeId.second.empty());
for (auto extraOperand : modeId.second) { for (auto extraOperand : modeId.second) {
int nextConst = 0; if (extraOperand->getType().getQualifier().isSpecConstant())
spv::Id operandId = createSpvConstantFromConstUnionArray( operandIds.push_back(getSymbolId(extraOperand->getAsSymbolNode()));
extraOperand->getType(), extraOperand->getConstArray(), nextConst, false); else
operandIds.push_back(operandId); operandIds.push_back(createSpvConstant(*extraOperand));
} }
builder.addExecutionModeId(shaderEntry, static_cast<spv::ExecutionMode>(modeId.first), operandIds); builder.addExecutionModeId(shaderEntry, static_cast<spv::ExecutionMode>(modeId.first), operandIds);
} }
@ -3018,6 +3022,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
case glslang::EOpIgnoreIntersectionNV: case glslang::EOpIgnoreIntersectionNV:
case glslang::EOpTerminateRayNV: case glslang::EOpTerminateRayNV:
case glslang::EOpTraceNV: case glslang::EOpTraceNV:
case glslang::EOpTraceRayMotionNV:
case glslang::EOpTraceKHR: case glslang::EOpTraceKHR:
case glslang::EOpExecuteCallableNV: case glslang::EOpExecuteCallableNV:
case glslang::EOpExecuteCallableKHR: case glslang::EOpExecuteCallableKHR:
@ -3317,9 +3322,11 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
bool cond = glslangOperands[arg]->getAsConstantUnion()->getConstArray()[0].getBConst(); bool cond = glslangOperands[arg]->getAsConstantUnion()->getConstArray()[0].getBConst();
operands.push_back(builder.makeIntConstant(cond ? 1 : 0)); operands.push_back(builder.makeIntConstant(cond ? 1 : 0));
} else if ((arg == 10 && glslangOp == glslang::EOpTraceKHR) || } else if ((arg == 10 && glslangOp == glslang::EOpTraceKHR) ||
(arg == 11 && glslangOp == glslang::EOpTraceRayMotionNV) ||
(arg == 1 && glslangOp == glslang::EOpExecuteCallableKHR)) { (arg == 1 && glslangOp == glslang::EOpExecuteCallableKHR)) {
const int opdNum = glslangOp == glslang::EOpTraceKHR ? 10 : 1; const int opdNum = glslangOp == glslang::EOpTraceKHR ? 10 : (glslangOp == glslang::EOpTraceRayMotionNV ? 11 : 1);
const int set = glslangOp == glslang::EOpTraceKHR ? 0 : 1; const int set = glslangOp == glslang::EOpExecuteCallableKHR ? 1 : 0;
const int location = glslangOperands[opdNum]->getAsConstantUnion()->getConstArray()[0].getUConst(); const int location = glslangOperands[opdNum]->getAsConstantUnion()->getConstArray()[0].getUConst();
auto itNode = locationToSymbol[set].find(location); auto itNode = locationToSymbol[set].find(location);
visitSymbol(itNode->second); visitSymbol(itNode->second);
@ -3377,7 +3384,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
const auto& spirvInst = node->getSpirvInstruction(); const auto& spirvInst = node->getSpirvInstruction();
if (spirvInst.set == "") { if (spirvInst.set == "") {
std::vector<spv::IdImmediate> idImmOps; std::vector<spv::IdImmediate> idImmOps;
for (int i = 0; i < glslangOperands.size(); ++i) { for (unsigned int i = 0; i < glslangOperands.size(); ++i) {
if (glslangOperands[i]->getAsTyped()->getQualifier().isSpirvLiteral()) { if (glslangOperands[i]->getAsTyped()->getQualifier().isSpirvLiteral()) {
// Translate the constant to a literal value // Translate the constant to a literal value
std::vector<unsigned> literals; std::vector<unsigned> literals;
@ -3933,12 +3940,14 @@ spv::Id TGlslangToSpvTraverser::getSampledType(const glslang::TSampler& sampler)
builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float_fetch); builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float_fetch);
builder.addCapability(spv::CapabilityFloat16ImageAMD); builder.addCapability(spv::CapabilityFloat16ImageAMD);
return builder.makeFloatType(16); return builder.makeFloatType(16);
case glslang::EbtInt64: return builder.makeIntType(64); case glslang::EbtInt64:
builder.addExtension(spv::E_SPV_EXT_shader_image_int64); builder.addExtension(spv::E_SPV_EXT_shader_image_int64);
builder.addCapability(spv::CapabilityFloat16ImageAMD); builder.addCapability(spv::CapabilityInt64ImageEXT);
case glslang::EbtUint64: return builder.makeUintType(64); return builder.makeIntType(64);
case glslang::EbtUint64:
builder.addExtension(spv::E_SPV_EXT_shader_image_int64); builder.addExtension(spv::E_SPV_EXT_shader_image_int64);
builder.addCapability(spv::CapabilityFloat16ImageAMD); builder.addCapability(spv::CapabilityInt64ImageEXT);
return builder.makeUintType(64);
#endif #endif
default: default:
assert(0); assert(0);
@ -4139,68 +4148,55 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
const auto& spirvType = type.getSpirvType(); const auto& spirvType = type.getSpirvType();
const auto& spirvInst = spirvType.spirvInst; const auto& spirvInst = spirvType.spirvInst;
std::vector<spv::Id> operands; std::vector<spv::IdImmediate> operands;
for (const auto& typeParam : spirvType.typeParams) { for (const auto& typeParam : spirvType.typeParams) {
if (typeParam.isConstant) { // Constant expression
// Constant expression if (typeParam.constant->isLiteral()) {
if (typeParam.constant->isLiteral()) { if (typeParam.constant->getBasicType() == glslang::EbtFloat) {
if (typeParam.constant->getBasicType() == glslang::EbtFloat) { float floatValue = static_cast<float>(typeParam.constant->getConstArray()[0].getDConst());
float floatValue = static_cast<float>(typeParam.constant->getConstArray()[0].getDConst()); unsigned literal = *reinterpret_cast<unsigned*>(&floatValue);
unsigned literal = *reinterpret_cast<unsigned*>(&floatValue); operands.push_back({false, literal});
operands.push_back(literal); } else if (typeParam.constant->getBasicType() == glslang::EbtInt) {
} else if (typeParam.constant->getBasicType() == glslang::EbtInt) { unsigned literal = typeParam.constant->getConstArray()[0].getIConst();
unsigned literal = typeParam.constant->getConstArray()[0].getIConst(); operands.push_back({false, literal});
operands.push_back(literal); } else if (typeParam.constant->getBasicType() == glslang::EbtUint) {
} else if (typeParam.constant->getBasicType() == glslang::EbtUint) { unsigned literal = typeParam.constant->getConstArray()[0].getUConst();
unsigned literal = typeParam.constant->getConstArray()[0].getUConst(); operands.push_back({false, literal});
operands.push_back(literal); } else if (typeParam.constant->getBasicType() == glslang::EbtBool) {
} else if (typeParam.constant->getBasicType() == glslang::EbtBool) { unsigned literal = typeParam.constant->getConstArray()[0].getBConst();
unsigned literal = typeParam.constant->getConstArray()[0].getBConst(); operands.push_back({false, literal});
operands.push_back(literal); } else if (typeParam.constant->getBasicType() == glslang::EbtString) {
} else if (typeParam.constant->getBasicType() == glslang::EbtString) { auto str = typeParam.constant->getConstArray()[0].getSConst()->c_str();
auto str = typeParam.constant->getConstArray()[0].getSConst()->c_str(); unsigned literal = 0;
unsigned literal = 0; char* literalPtr = reinterpret_cast<char*>(&literal);
char* literalPtr = reinterpret_cast<char*>(&literal); unsigned charCount = 0;
unsigned charCount = 0; char ch = 0;
char ch = 0; do {
do { ch = *(str++);
ch = *(str++); *(literalPtr++) = ch;
*(literalPtr++) = ch; ++charCount;
++charCount; if (charCount == 4) {
if (charCount == 4) { operands.push_back({false, literal});
operands.push_back(literal); literalPtr = reinterpret_cast<char*>(&literal);
literalPtr = reinterpret_cast<char*>(&literal); charCount = 0;
charCount = 0;
}
} while (ch != 0);
// Partial literal is padded with 0
if (charCount > 0) {
for (; charCount < 4; ++charCount)
*(literalPtr++) = 0;
operands.push_back(literal);
} }
} else } while (ch != 0);
assert(0); // Unexpected type
} else { // Partial literal is padded with 0
int nextConst = 0; if (charCount > 0) {
spv::Id constant = createSpvConstantFromConstUnionArray( for (; charCount < 4; ++charCount)
typeParam.constant->getType(), typeParam.constant->getConstArray(), nextConst, false); *(literalPtr++) = 0;
operands.push_back(constant); operands.push_back({false, literal});
} }
} else { } else
// Type specifier assert(0); // Unexpected type
spv::Id typeId = convertGlslangToSpvType(*typeParam.type); } else
operands.push_back(typeId); operands.push_back({true, createSpvConstant(*typeParam.constant)});
}
} }
if (spirvInst.set == "") assert(spirvInst.set == ""); // Currently, couldn't be extended instructions.
spvType = builder.createOp(static_cast<spv::Op>(spirvInst.id), spv::NoType, operands); spvType = builder.makeGenericType(static_cast<spv::Op>(spirvInst.id), operands);
else {
spvType = builder.createBuiltinCall(
spv::NoType, getExtBuiltins(spirvInst.set.c_str()), spirvInst.id, operands);
}
break; break;
} }
#endif #endif
@ -7499,6 +7495,8 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op
break; break;
case glslang::EOpReadFirstInvocation: case glslang::EOpReadFirstInvocation:
opCode = spv::OpSubgroupFirstInvocationKHR; opCode = spv::OpSubgroupFirstInvocationKHR;
if (builder.isVectorType(typeId))
return CreateInvocationsVectorOperation(opCode, groupOperation, typeId, operands);
break; break;
case glslang::EOpBallot: case glslang::EOpBallot:
{ {
@ -7623,7 +7621,7 @@ spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv
assert(op == spv::OpGroupFMin || op == spv::OpGroupUMin || op == spv::OpGroupSMin || assert(op == spv::OpGroupFMin || op == spv::OpGroupUMin || op == spv::OpGroupSMin ||
op == spv::OpGroupFMax || op == spv::OpGroupUMax || op == spv::OpGroupSMax || op == spv::OpGroupFMax || op == spv::OpGroupUMax || op == spv::OpGroupSMax ||
op == spv::OpGroupFAdd || op == spv::OpGroupIAdd || op == spv::OpGroupBroadcast || op == spv::OpGroupFAdd || op == spv::OpGroupIAdd || op == spv::OpGroupBroadcast ||
op == spv::OpSubgroupReadInvocationKHR || op == spv::OpSubgroupReadInvocationKHR || op == spv::OpSubgroupFirstInvocationKHR ||
op == spv::OpGroupFMinNonUniformAMD || op == spv::OpGroupUMinNonUniformAMD || op == spv::OpGroupFMinNonUniformAMD || op == spv::OpGroupUMinNonUniformAMD ||
op == spv::OpGroupSMinNonUniformAMD || op == spv::OpGroupSMinNonUniformAMD ||
op == spv::OpGroupFMaxNonUniformAMD || op == spv::OpGroupUMaxNonUniformAMD || op == spv::OpGroupFMaxNonUniformAMD || op == spv::OpGroupUMaxNonUniformAMD ||
@ -7652,6 +7650,8 @@ spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv
spvGroupOperands.push_back(scalar); spvGroupOperands.push_back(scalar);
spv::IdImmediate operand = { true, operands[1] }; spv::IdImmediate operand = { true, operands[1] };
spvGroupOperands.push_back(operand); spvGroupOperands.push_back(operand);
} else if (op == spv::OpSubgroupFirstInvocationKHR) {
spvGroupOperands.push_back(scalar);
} else if (op == spv::OpGroupBroadcast) { } else if (op == spv::OpGroupBroadcast) {
spv::IdImmediate scope = { true, builder.makeUintConstant(spv::ScopeSubgroup) }; spv::IdImmediate scope = { true, builder.makeUintConstant(spv::ScopeSubgroup) };
spvGroupOperands.push_back(scope); spvGroupOperands.push_back(scope);
@ -8322,6 +8322,11 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
case glslang::EOpTraceNV: case glslang::EOpTraceNV:
builder.createNoResultOp(spv::OpTraceNV, operands); builder.createNoResultOp(spv::OpTraceNV, operands);
return 0; return 0;
case glslang::EOpTraceRayMotionNV:
builder.addExtension(spv::E_SPV_NV_ray_tracing_motion_blur);
builder.addCapability(spv::CapabilityRayTracingMotionBlurNV);
builder.createNoResultOp(spv::OpTraceRayMotionNV, operands);
return 0;
case glslang::EOpTraceKHR: case glslang::EOpTraceKHR:
builder.createNoResultOp(spv::OpTraceRayKHR, operands); builder.createNoResultOp(spv::OpTraceRayKHR, operands);
return 0; return 0;
@ -8829,12 +8834,12 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
std::vector<spv::Id> operandIds; std::vector<spv::Id> operandIds;
assert(!decorateId.second.empty()); assert(!decorateId.second.empty());
for (auto extraOperand : decorateId.second) { for (auto extraOperand : decorateId.second) {
int nextConst = 0; if (extraOperand->getQualifier().isSpecConstant())
spv::Id operandId = createSpvConstantFromConstUnionArray( operandIds.push_back(getSymbolId(extraOperand->getAsSymbolNode()));
extraOperand->getType(), extraOperand->getConstArray(), nextConst, false); else
operandIds.push_back(operandId); operandIds.push_back(createSpvConstant(*extraOperand));
} }
builder.addDecoration(id, static_cast<spv::Decoration>(decorateId.first), operandIds); builder.addDecorationId(id, static_cast<spv::Decoration>(decorateId.first), operandIds);
} }
// Add spirv_decorate_string // Add spirv_decorate_string

View File

@ -427,6 +427,37 @@ Id Builder::makeCooperativeMatrixType(Id component, Id scope, Id rows, Id cols)
return type->getResultId(); return type->getResultId();
} }
Id Builder::makeGenericType(spv::Op opcode, std::vector<spv::IdImmediate>& operands)
{
// try to find it
Instruction* type;
for (int t = 0; t < (int)groupedTypes[opcode].size(); ++t) {
type = groupedTypes[opcode][t];
if (type->getNumOperands() != operands.size())
continue; // Number mismatch, find next
bool match = true;
for (int op = 0; match && op < operands.size(); ++op) {
match = (operands[op].isId ? type->getIdOperand(op) : type->getImmediateOperand(op)) == operands[op].word;
}
if (match)
return type->getResultId();
}
// not found, make it
type = new Instruction(getUniqueId(), NoType, opcode);
for (int op = 0; op < operands.size(); ++op) {
if (operands[op].isId)
type->addIdOperand(operands[op].word);
else
type->addImmediateOperand(operands[op].word);
}
groupedTypes[opcode].push_back(type);
constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(type));
module.mapInstruction(type);
return type->getResultId();
}
// TODO: performance: track arrays per stride // TODO: performance: track arrays per stride
// If a stride is supplied (non-zero) make an array. // If a stride is supplied (non-zero) make an array.
@ -2812,6 +2843,7 @@ void Builder::accessChainStore(Id rvalue, Decoration nonUniform, spv::MemoryAcce
accessChain.component == NoResult) { accessChain.component == NoResult) {
for (unsigned int i = 0; i < accessChain.swizzle.size(); ++i) { for (unsigned int i = 0; i < accessChain.swizzle.size(); ++i) {
accessChain.indexChain.push_back(makeUintConstant(accessChain.swizzle[i])); accessChain.indexChain.push_back(makeUintConstant(accessChain.swizzle[i]));
accessChain.instr = NoResult;
Id base = collapseAccessChain(); Id base = collapseAccessChain();
addDecoration(base, nonUniform); addDecoration(base, nonUniform);

View File

@ -181,6 +181,7 @@ public:
Id makeSamplerType(); Id makeSamplerType();
Id makeSampledImageType(Id imageType); Id makeSampledImageType(Id imageType);
Id makeCooperativeMatrixType(Id component, Id scope, Id rows, Id cols); Id makeCooperativeMatrixType(Id component, Id scope, Id rows, Id cols);
Id makeGenericType(spv::Op opcode, std::vector<spv::IdImmediate>& operands);
// accelerationStructureNV type // accelerationStructureNV type
Id makeAccelerationStructureType(); Id makeAccelerationStructureType();

View File

@ -44,10 +44,8 @@
#include <algorithm> #include <algorithm>
#include "SpvBuilder.h" #include "SpvBuilder.h"
#include "spirv.hpp" #include "spirv.hpp"
#include "GlslangToSpv.h"
#include "SpvBuilder.h"
namespace spv { namespace spv {
#include "GLSL.std.450.h" #include "GLSL.std.450.h"
#include "GLSL.ext.KHR.h" #include "GLSL.ext.KHR.h"
@ -113,8 +111,6 @@ void Builder::postProcessType(const Instruction& inst, Id typeId)
} }
} }
break; break;
case OpAccessChain:
case OpPtrAccessChain:
case OpCopyObject: case OpCopyObject:
break; break;
case OpFConvert: case OpFConvert:
@ -161,26 +157,43 @@ void Builder::postProcessType(const Instruction& inst, Id typeId)
switch (inst.getImmediateOperand(1)) { switch (inst.getImmediateOperand(1)) {
case GLSLstd450Frexp: case GLSLstd450Frexp:
case GLSLstd450FrexpStruct: case GLSLstd450FrexpStruct:
if (getSpvVersion() < glslang::EShTargetSpv_1_3 && containsType(typeId, OpTypeInt, 16)) if (getSpvVersion() < spv::Spv_1_3 && containsType(typeId, OpTypeInt, 16))
addExtension(spv::E_SPV_AMD_gpu_shader_int16); addExtension(spv::E_SPV_AMD_gpu_shader_int16);
break; break;
case GLSLstd450InterpolateAtCentroid: case GLSLstd450InterpolateAtCentroid:
case GLSLstd450InterpolateAtSample: case GLSLstd450InterpolateAtSample:
case GLSLstd450InterpolateAtOffset: case GLSLstd450InterpolateAtOffset:
if (getSpvVersion() < glslang::EShTargetSpv_1_3 && containsType(typeId, OpTypeFloat, 16)) if (getSpvVersion() < spv::Spv_1_3 && containsType(typeId, OpTypeFloat, 16))
addExtension(spv::E_SPV_AMD_gpu_shader_half_float); addExtension(spv::E_SPV_AMD_gpu_shader_half_float);
break; break;
default: default:
break; break;
} }
break; break;
case OpAccessChain:
case OpPtrAccessChain:
if (isPointerType(typeId))
break;
if (basicTypeOp == OpTypeInt) {
if (width == 16)
addCapability(CapabilityInt16);
else if (width == 8)
addCapability(CapabilityInt8);
}
default: default:
if (basicTypeOp == OpTypeFloat && width == 16) if (basicTypeOp == OpTypeInt) {
addCapability(CapabilityFloat16); if (width == 16)
if (basicTypeOp == OpTypeInt && width == 16) addCapability(CapabilityInt16);
addCapability(CapabilityInt16); else if (width == 8)
if (basicTypeOp == OpTypeInt && width == 8) addCapability(CapabilityInt8);
addCapability(CapabilityInt8); else if (width == 64)
addCapability(CapabilityInt64);
} else if (basicTypeOp == OpTypeFloat) {
if (width == 16)
addCapability(CapabilityFloat16);
else if (width == 64)
addCapability(CapabilityFloat64);
}
break; break;
} }
} }

View File

@ -426,6 +426,7 @@ const char* BuiltInString(int builtIn)
case BuiltInSMCountNV: return "SMCountNV"; case BuiltInSMCountNV: return "SMCountNV";
case BuiltInWarpIDNV: return "WarpIDNV"; case BuiltInWarpIDNV: return "WarpIDNV";
case BuiltInSMIDNV: return "SMIDNV"; case BuiltInSMIDNV: return "SMIDNV";
case BuiltInCurrentRayTimeNV: return "CurrentRayTimeNV";
default: return "Bad"; default: return "Bad";
} }
@ -899,6 +900,12 @@ const char* CapabilityString(int info)
case CapabilityDeviceGroup: return "DeviceGroup"; case CapabilityDeviceGroup: return "DeviceGroup";
case CapabilityMultiView: return "MultiView"; case CapabilityMultiView: return "MultiView";
case CapabilityDenormPreserve: return "DenormPreserve";
case CapabilityDenormFlushToZero: return "DenormFlushToZero";
case CapabilitySignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
case CapabilityRoundingModeRTE: return "RoundingModeRTE";
case CapabilityRoundingModeRTZ: return "RoundingModeRTZ";
case CapabilityStencilExportEXT: return "StencilExportEXT"; case CapabilityStencilExportEXT: return "StencilExportEXT";
case CapabilityFloat16ImageAMD: return "Float16ImageAMD"; case CapabilityFloat16ImageAMD: return "Float16ImageAMD";
@ -916,6 +923,7 @@ const char* CapabilityString(int info)
case CapabilityPerViewAttributesNV: return "PerViewAttributesNV"; case CapabilityPerViewAttributesNV: return "PerViewAttributesNV";
case CapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV"; case CapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV";
case CapabilityRayTracingNV: return "RayTracingNV"; case CapabilityRayTracingNV: return "RayTracingNV";
case CapabilityRayTracingMotionBlurNV: return "RayTracingMotionBlurNV";
case CapabilityRayTracingKHR: return "RayTracingKHR"; case CapabilityRayTracingKHR: return "RayTracingKHR";
case CapabilityRayQueryKHR: return "RayQueryKHR"; case CapabilityRayQueryKHR: return "RayQueryKHR";
case CapabilityRayTracingProvisionalKHR: return "RayTracingProvisionalKHR"; case CapabilityRayTracingProvisionalKHR: return "RayTracingProvisionalKHR";
@ -1382,6 +1390,7 @@ const char* OpcodeString(int op)
case OpTerminateRayNV: return "OpTerminateRayNV"; case OpTerminateRayNV: return "OpTerminateRayNV";
case OpTerminateRayKHR: return "OpTerminateRayKHR"; case OpTerminateRayKHR: return "OpTerminateRayKHR";
case OpTraceNV: return "OpTraceNV"; case OpTraceNV: return "OpTraceNV";
case OpTraceRayMotionNV: return "OpTraceRayMotionNV";
case OpTraceRayKHR: return "OpTraceRayKHR"; case OpTraceRayKHR: return "OpTraceRayKHR";
case OpTypeAccelerationStructureKHR: return "OpTypeAccelerationStructureKHR"; case OpTypeAccelerationStructureKHR: return "OpTypeAccelerationStructureKHR";
case OpExecuteCallableNV: return "OpExecuteCallableNV"; case OpExecuteCallableNV: return "OpExecuteCallableNV";
@ -2812,6 +2821,20 @@ void Parameterize()
InstructionDesc[OpTraceNV].operands.push(OperandId, "'Payload'"); InstructionDesc[OpTraceNV].operands.push(OperandId, "'Payload'");
InstructionDesc[OpTraceNV].setResultAndType(false, false); InstructionDesc[OpTraceNV].setResultAndType(false, false);
InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Acceleration Structure'");
InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Ray Flags'");
InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Cull Mask'");
InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'SBT Record Offset'");
InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'SBT Record Stride'");
InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Miss Index'");
InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Ray Origin'");
InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'TMin'");
InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Ray Direction'");
InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'TMax'");
InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Time'");
InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Payload'");
InstructionDesc[OpTraceRayMotionNV].setResultAndType(false, false);
InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Acceleration Structure'"); InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Acceleration Structure'");
InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Ray Flags'"); InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Ray Flags'");
InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Cull Mask'"); InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Cull Mask'");

View File

@ -652,6 +652,7 @@ enum BuiltIn {
BuiltInHitTNV = 5332, BuiltInHitTNV = 5332,
BuiltInHitKindKHR = 5333, BuiltInHitKindKHR = 5333,
BuiltInHitKindNV = 5333, BuiltInHitKindNV = 5333,
BuiltInCurrentRayTimeNV = 5334,
BuiltInIncomingRayFlagsKHR = 5351, BuiltInIncomingRayFlagsKHR = 5351,
BuiltInIncomingRayFlagsNV = 5351, BuiltInIncomingRayFlagsNV = 5351,
BuiltInRayGeometryIndexKHR = 5352, BuiltInRayGeometryIndexKHR = 5352,
@ -988,6 +989,7 @@ enum Capability {
CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312, CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312, CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
CapabilityRayTracingNV = 5340, CapabilityRayTracingNV = 5340,
CapabilityRayTracingMotionBlurNV = 5341,
CapabilityVulkanMemoryModel = 5345, CapabilityVulkanMemoryModel = 5345,
CapabilityVulkanMemoryModelKHR = 5345, CapabilityVulkanMemoryModelKHR = 5345,
CapabilityVulkanMemoryModelDeviceScope = 5346, CapabilityVulkanMemoryModelDeviceScope = 5346,
@ -1503,6 +1505,8 @@ enum Op {
OpIgnoreIntersectionNV = 5335, OpIgnoreIntersectionNV = 5335,
OpTerminateRayNV = 5336, OpTerminateRayNV = 5336,
OpTraceNV = 5337, OpTraceNV = 5337,
OpTraceMotionNV = 5338,
OpTraceRayMotionNV = 5339,
OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341, OpTypeAccelerationStructureNV = 5341,
OpExecuteCallableNV = 5344, OpExecuteCallableNV = 5344,
@ -1539,7 +1543,7 @@ enum Op {
OpUSubSatINTEL = 5596, OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597, OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598, OpUMul32x16INTEL = 5598,
OpConstFunctionPointerINTEL = 5600, OpConstantFunctionPointerINTEL = 5600,
OpFunctionPointerCallINTEL = 5601, OpFunctionPointerCallINTEL = 5601,
OpAsmTargetINTEL = 5609, OpAsmTargetINTEL = 5609,
OpAsmINTEL = 5610, OpAsmINTEL = 5610,
@ -2090,6 +2094,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break; case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
case OpTraceNV: *hasResult = false; *hasResultType = false; break; case OpTraceNV: *hasResult = false; *hasResultType = false; break;
case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break; case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
@ -2125,7 +2131,7 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break; case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break; case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break; case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
case OpConstFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break; case OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break; case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break; case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
case OpAsmINTEL: *hasResult = true; *hasResultType = true; break; case OpAsmINTEL: *hasResult = true; *hasResultType = true; break;

View File

@ -31,6 +31,22 @@
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE. # POSSIBILITY OF SUCH DAMAGE.
find_host_package(PythonInterp 3 REQUIRED)
set(GLSLANG_INTRINSIC_H "${GLSLANG_GENERATED_INCLUDEDIR}/glslang/glsl_intrinsic_header.h")
set(GLSLANG_INTRINSIC_PY "${CMAKE_CURRENT_SOURCE_DIR}/../gen_extension_headers.py")
set(GLSLANG_INTRINSIC_HEADER_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../glslang/ExtensionHeaders")
add_custom_command(
OUTPUT ${GLSLANG_INTRINSIC_H}
COMMAND ${PYTHON_EXECUTABLE} "${GLSLANG_INTRINSIC_PY}"
"-i" ${GLSLANG_INTRINSIC_HEADER_DIR}
"-o" ${GLSLANG_INTRINSIC_H}
DEPENDS ${GLSLANG_INTRINSIC_PY}
COMMENT "Generating ${GLSLANG_INTRINSIC_H}")
#add_custom_target(glslangValidator DEPENDS ${GLSLANG_INTRINSIC_H})
add_library(glslang-default-resource-limits add_library(glslang-default-resource-limits
${CMAKE_CURRENT_SOURCE_DIR}/ResourceLimits.cpp ${CMAKE_CURRENT_SOURCE_DIR}/ResourceLimits.cpp
${CMAKE_CURRENT_SOURCE_DIR}/resource_limits_c.cpp) ${CMAKE_CURRENT_SOURCE_DIR}/resource_limits_c.cpp)
@ -41,7 +57,7 @@ target_include_directories(glslang-default-resource-limits
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>) PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>)
set(SOURCES StandAlone.cpp DirStackFileIncluder.h) set(SOURCES StandAlone.cpp DirStackFileIncluder.h ${GLSLANG_INTRINSIC_H})
add_executable(glslangValidator ${SOURCES}) add_executable(glslangValidator ${SOURCES})
set_property(TARGET glslangValidator PROPERTY FOLDER tools) set_property(TARGET glslangValidator PROPERTY FOLDER tools)
@ -62,7 +78,7 @@ elseif(UNIX)
if(NOT ANDROID) if(NOT ANDROID)
set(LIBRARIES ${LIBRARIES} pthread) set(LIBRARIES ${LIBRARIES} pthread)
endif() endif()
endif(WIN32) endif()
target_link_libraries(glslangValidator ${LIBRARIES}) target_link_libraries(glslangValidator ${LIBRARIES})
target_include_directories(glslangValidator PUBLIC target_include_directories(glslangValidator PUBLIC
@ -73,7 +89,7 @@ if(ENABLE_OPT)
target_include_directories(glslangValidator target_include_directories(glslangValidator
PRIVATE ${spirv-tools_SOURCE_DIR}/include PRIVATE ${spirv-tools_SOURCE_DIR}/include
) )
endif(ENABLE_OPT) endif()
if(ENABLE_SPVREMAPPER) if(ENABLE_SPVREMAPPER)
set(REMAPPER_SOURCES spirv-remap.cpp) set(REMAPPER_SOURCES spirv-remap.cpp)
@ -85,7 +101,7 @@ endif()
if(WIN32) if(WIN32)
source_group("Source" FILES ${SOURCES}) source_group("Source" FILES ${SOURCES})
endif(WIN32) endif()
if(ENABLE_GLSLANG_INSTALL) if(ENABLE_GLSLANG_INSTALL)
install(TARGETS glslangValidator EXPORT glslangValidatorTargets install(TARGETS glslangValidator EXPORT glslangValidatorTargets
@ -108,4 +124,4 @@ if(ENABLE_GLSLANG_INSTALL)
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif() endif()
install(EXPORT glslang-default-resource-limitsTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) install(EXPORT glslang-default-resource-limitsTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
endif(ENABLE_GLSLANG_INSTALL) endif()

View File

@ -2,6 +2,7 @@
// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. // Copyright (C) 2002-2005 3Dlabs Inc. Ltd.
// Copyright (C) 2013-2016 LunarG, Inc. // Copyright (C) 2013-2016 LunarG, Inc.
// Copyright (C) 2016-2020 Google, Inc. // Copyright (C) 2016-2020 Google, Inc.
// Modifications Copyright(C) 2021 Advanced Micro Devices, Inc.All rights reserved.
// //
// All rights reserved. // All rights reserved.
// //
@ -65,6 +66,8 @@
// Build-time generated includes // Build-time generated includes
#include "glslang/build_info.h" #include "glslang/build_info.h"
#include "glslang/glsl_intrinsic_header.h"
extern "C" { extern "C" {
GLSLANG_EXPORT void ShOutputHtml(); GLSLANG_EXPORT void ShOutputHtml();
} }
@ -174,6 +177,7 @@ const char* shaderStageName = nullptr;
const char* variableName = nullptr; const char* variableName = nullptr;
bool HlslEnable16BitTypes = false; bool HlslEnable16BitTypes = false;
bool HlslDX9compatible = false; bool HlslDX9compatible = false;
bool HlslDxPositionW = false;
bool DumpBuiltinSymbols = false; bool DumpBuiltinSymbols = false;
std::vector<std::string> IncludeDirectoryList; std::vector<std::string> IncludeDirectoryList;
@ -263,6 +267,7 @@ protected:
// Track the user's #define and #undef from the command line. // Track the user's #define and #undef from the command line.
TPreamble UserPreamble; TPreamble UserPreamble;
std::string PreambleString;
// //
// Create the default name for saving a binary if -o is not provided. // Create the default name for saving a binary if -o is not provided.
@ -658,6 +663,8 @@ void ProcessArguments(std::vector<std::unique_ptr<glslang::TWorkItem>>& workItem
HlslEnable16BitTypes = true; HlslEnable16BitTypes = true;
} else if (lowerword == "hlsl-dx9-compatible") { } else if (lowerword == "hlsl-dx9-compatible") {
HlslDX9compatible = true; HlslDX9compatible = true;
} else if (lowerword == "hlsl-dx-position-w") {
HlslDxPositionW = true;
} else if (lowerword == "auto-sampled-textures") { } else if (lowerword == "auto-sampled-textures") {
autoSampledTextures = true; autoSampledTextures = true;
} else if (lowerword == "invert-y" || // synonyms } else if (lowerword == "invert-y" || // synonyms
@ -1204,8 +1211,17 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
"Use '-e <name>'.\n"); "Use '-e <name>'.\n");
shader->setSourceEntryPoint(sourceEntryPointName); shader->setSourceEntryPoint(sourceEntryPointName);
} }
std::string intrinsicString = getIntrinsic(compUnit.text, compUnit.count);
PreambleString = "";
if (UserPreamble.isSet()) if (UserPreamble.isSet())
shader->setPreamble(UserPreamble.get()); PreambleString.append(UserPreamble.get());
if (!intrinsicString.empty())
PreambleString.append(intrinsicString);
shader->setPreamble(PreambleString.c_str());
shader->addProcesses(Processes); shader->addProcesses(Processes);
#ifndef GLSLANG_WEB #ifndef GLSLANG_WEB
@ -1271,6 +1287,9 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
if (Options & EOptionInvertY) if (Options & EOptionInvertY)
shader->setInvertY(true); shader->setInvertY(true);
if (HlslDxPositionW)
shader->setDxPositionW(true);
// Set up the environment, some subsettings take precedence over earlier // Set up the environment, some subsettings take precedence over earlier
// ways of setting things. // ways of setting things.
if (Options & EOptionSpv) { if (Options & EOptionSpv) {
@ -1834,6 +1853,8 @@ void usage()
" --hlsl-dx9-compatible interprets sampler declarations as a\n" " --hlsl-dx9-compatible interprets sampler declarations as a\n"
" texture/sampler combo like DirectX9 would,\n" " texture/sampler combo like DirectX9 would,\n"
" and recognizes DirectX9-specific semantics\n" " and recognizes DirectX9-specific semantics\n"
" --hlsl-dx-position-w W component of SV_Position in HLSL fragment\n"
" shaders compatible with DirectX\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" " --nan-clamp favor non-NaN operand in min, max, and clamp\n"

View File

@ -0,0 +1,20 @@
#version 150
#extension GL_ARB_gpu_shader5 : require
uniform ivec4 u1;
uniform uvec4 u2;
out vec4 result;
vec4 f(in vec4 a, in vec4 b){ return a * b;} // choice 1
vec4 f(in uvec4 a, in uvec4 b){ return vec4(a - b);} // choice 2
void main()
{
result = f(u1, u2); // should match choice 2. which have less implicit conversion.
switch (gl_VertexID)
{
case 0: gl_Position = vec4(-1.0, 1.0, 0.0, 1.0); break;
case 1: gl_Position = vec4( 1.0, 1.0, 0.0, 1.0); break;
case 2: gl_Position = vec4(-1.0,-1.0, 0.0, 1.0); break;
case 3: gl_Position = vec4( 1.0,-1.0, 0.0, 1.0); break;
}
}

View File

@ -0,0 +1,18 @@
#version 150
#extension GL_ARB_draw_instanced : require
#define ID gl_InstanceID
uniform mat4 gtf_ModelViewProjectionMatrix;
uniform vec3 instanceOffsets[3];
in vec4 va[gl_MaxVertexAttribs];
out vec4 color;
void main (void)
{
vec4 vertex = vec4(va[0].xy / 3.0, va[0].zw) + vec4(instanceOffsets[ID], 1.0);
color = vec4(0, 0, 0, 0);
for (int i = 1; i < gl_MaxVertexAttribs; i++)
color += va[i];
gl_Position = gtf_ModelViewProjectionMatrix * vertex;
gl_PointSize = 1.0;
}

View File

@ -0,0 +1,13 @@
#version 330
#extension GL_EXT_shader_integer_mix: require
#if !defined GL_EXT_shader_integer_mix
# error GL_EXT_shader_integer_mix is not defined
#elif GL_EXT_shader_integer_mix != 1
# error GL_EXT_shader_integer_mix is not equal to 1
#endif
void main(void) {
gl_Position = vec4(0);
}

View File

@ -0,0 +1,28 @@
#version 450 core
#extension GL_ARB_shader_atomic_counters: enable
#extension GL_ARB_shader_atomic_counter_ops:enable
layout(binding = 0) uniform atomic_uint counter;
out highp vec4 vsColor;
void main(){
vec4 outColor = vec4(1.0);
uint ret;
ret = atomicCounterAddARB(counter, 4u);
ret = atomicCounterSubtractARB(counter, 4u);
ret = atomicCounterMinARB(counter, 4u);
ret = atomicCounterMaxARB(counter, 4u);
ret = atomicCounterAndARB(counter, 4u);
ret = atomicCounterOrARB(counter, 4u);
ret = atomicCounterXorARB(counter, 4u);
ret = atomicCounterExchangeARB(counter, 4u);
ret = atomicCounterCompSwapARB(counter, 4u, 4u);
uint after = atomicCounter(counter);
if (after == ret)
outColor = vec4(0.0);
vsColor = outColor;
}

View File

@ -6,19 +6,17 @@ hlsl.flattenSubset.frag
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 47 50 EntryPoint Fragment 4 "main" 50
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 21 "samp" Name 21 "samp"
Name 33 "tex" Name 33 "tex"
Name 47 "vpos"
Name 50 "@entryPointOutput" Name 50 "@entryPointOutput"
Decorate 21(samp) DescriptorSet 0 Decorate 21(samp) DescriptorSet 0
Decorate 21(samp) Binding 0 Decorate 21(samp) Binding 0
Decorate 33(tex) DescriptorSet 0 Decorate 33(tex) DescriptorSet 0
Decorate 33(tex) Binding 1 Decorate 33(tex) Binding 1
Decorate 47(vpos) Location 0
Decorate 50(@entryPointOutput) Location 0 Decorate 50(@entryPointOutput) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
@ -34,8 +32,6 @@ hlsl.flattenSubset.frag
39: TypeVector 6(float) 2 39: TypeVector 6(float) 2
40: 6(float) Constant 1056964608 40: 6(float) Constant 1056964608
41: 39(fvec2) ConstantComposite 40 40 41: 39(fvec2) ConstantComposite 40 40
46: TypePointer Input 7(fvec4)
47(vpos): 46(ptr) Variable Input
49: TypePointer Output 7(fvec4) 49: TypePointer Output 7(fvec4)
50(@entryPointOutput): 49(ptr) Variable Output 50(@entryPointOutput): 49(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3

View File

@ -6,13 +6,11 @@ hlsl.flattenSubset2.frag
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 49 52 EntryPoint Fragment 4 "main" 52
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 49 "vpos"
Name 52 "@entryPointOutput" Name 52 "@entryPointOutput"
Decorate 49(vpos) Location 0
Decorate 52(@entryPointOutput) Location 0 Decorate 52(@entryPointOutput) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
@ -20,8 +18,6 @@ hlsl.flattenSubset2.frag
7: TypeVector 6(float) 4 7: TypeVector 6(float) 4
43: 6(float) Constant 0 43: 6(float) Constant 0
44: 7(fvec4) ConstantComposite 43 43 43 43 44: 7(fvec4) ConstantComposite 43 43 43 43
48: TypePointer Input 7(fvec4)
49(vpos): 48(ptr) Variable Input
51: TypePointer Output 7(fvec4) 51: TypePointer Output 7(fvec4)
52(@entryPointOutput): 51(ptr) Variable Output 52(@entryPointOutput): 51(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3

View File

@ -24,18 +24,18 @@ ERROR: node is still EOpNull!
0:42 Function Definition: main( ( global void) 0:42 Function Definition: main( ( global void)
0:42 Function Parameters: 0:42 Function Parameters:
0:44 Sequence 0:44 Sequence
0:44 texture ( global lowp 4-component vector of int) 0:44 texture ( global lowp 4-component vector of int, operation at mediump)
0:44 sampler: direct index for structure ( global lowp isampler3D) 0:44 sampler: direct index for structure ( global lowp isampler3D)
0:44 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t}) 0:44 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t})
0:44 Constant: 0:44 Constant:
0:44 2 (const int) 0:44 2 (const int)
0:44 Construct vec3 ( temp lowp 3-component vector of float) 0:44 Construct vec3 ( temp mediump 3-component vector of float)
0:44 Convert int to float ( temp lowp float) 0:44 Convert int to float ( temp mediump float)
0:44 ni: direct index for structure (layout( column_major shared) uniform mediump int) 0:44 ni: direct index for structure (layout( column_major shared) uniform mediump int)
0:44 'inst' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:44 'inst' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni})
0:44 Constant: 0:44 Constant:
0:44 1 (const int) 0:44 1 (const int)
0:44 Convert uint to float ( temp lowp float) 0:44 Convert uint to float ( temp mediump float)
0:44 direct index ( temp mediump uint) 0:44 direct index ( temp mediump uint)
0:44 bv: direct index for structure (layout( column_major shared) uniform mediump 4-component vector of uint) 0:44 bv: direct index for structure (layout( column_major shared) uniform mediump 4-component vector of uint)
0:44 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint bv, layout( column_major shared) uniform mediump 2X2 matrix of float bm2, layout( column_major shared) uniform lowp isampler2D sampler, layout( column_major shared) uniform structure{ global mediump int a} t, layout( column_major shared) uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, layout( column_major) global structure{ global mediump int a} t} fbs}) 0:44 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint bv, layout( column_major shared) uniform mediump 2X2 matrix of float bm2, layout( column_major shared) uniform lowp isampler2D sampler, layout( column_major shared) uniform structure{ global mediump int a} t, layout( column_major shared) uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, layout( column_major) global structure{ global mediump int a} t} fbs})
@ -43,7 +43,7 @@ ERROR: node is still EOpNull!
0:44 0 (const uint) 0:44 0 (const uint)
0:44 Constant: 0:44 Constant:
0:44 1 (const int) 0:44 1 (const int)
0:44 Convert uint to float ( temp lowp float) 0:44 Convert uint to float ( temp mediump float)
0:44 direct index ( temp mediump uint) 0:44 direct index ( temp mediump uint)
0:44 nbv: direct index for structure (layout( column_major shared) uniform mediump 4-component vector of uint) 0:44 nbv: direct index for structure (layout( column_major shared) uniform mediump 4-component vector of uint)
0:44 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:44 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni})
@ -92,18 +92,18 @@ ERROR: node is still EOpNull!
0:42 Function Definition: main( ( global void) 0:42 Function Definition: main( ( global void)
0:42 Function Parameters: 0:42 Function Parameters:
0:44 Sequence 0:44 Sequence
0:44 texture ( global lowp 4-component vector of int) 0:44 texture ( global lowp 4-component vector of int, operation at mediump)
0:44 sampler: direct index for structure ( global lowp isampler3D) 0:44 sampler: direct index for structure ( global lowp isampler3D)
0:44 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t}) 0:44 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t})
0:44 Constant: 0:44 Constant:
0:44 2 (const int) 0:44 2 (const int)
0:44 Construct vec3 ( temp lowp 3-component vector of float) 0:44 Construct vec3 ( temp mediump 3-component vector of float)
0:44 Convert int to float ( temp lowp float) 0:44 Convert int to float ( temp mediump float)
0:44 ni: direct index for structure (layout( column_major shared) uniform mediump int) 0:44 ni: direct index for structure (layout( column_major shared) uniform mediump int)
0:44 'inst' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:44 'inst' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni})
0:44 Constant: 0:44 Constant:
0:44 1 (const int) 0:44 1 (const int)
0:44 Convert uint to float ( temp lowp float) 0:44 Convert uint to float ( temp mediump float)
0:44 direct index ( temp mediump uint) 0:44 direct index ( temp mediump uint)
0:44 bv: direct index for structure (layout( column_major shared) uniform mediump 4-component vector of uint) 0:44 bv: direct index for structure (layout( column_major shared) uniform mediump 4-component vector of uint)
0:44 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint bv, layout( column_major shared) uniform mediump 2X2 matrix of float bm2, layout( column_major shared) uniform lowp isampler2D sampler, layout( column_major shared) uniform structure{ global mediump int a} t, layout( column_major shared) uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, layout( column_major) global structure{ global mediump int a} t} fbs}) 0:44 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint bv, layout( column_major shared) uniform mediump 2X2 matrix of float bm2, layout( column_major shared) uniform lowp isampler2D sampler, layout( column_major shared) uniform structure{ global mediump int a} t, layout( column_major shared) uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, layout( column_major) global structure{ global mediump int a} t} fbs})
@ -111,7 +111,7 @@ ERROR: node is still EOpNull!
0:44 0 (const uint) 0:44 0 (const uint)
0:44 Constant: 0:44 Constant:
0:44 1 (const int) 0:44 1 (const int)
0:44 Convert uint to float ( temp lowp float) 0:44 Convert uint to float ( temp mediump float)
0:44 direct index ( temp mediump uint) 0:44 direct index ( temp mediump uint)
0:44 nbv: direct index for structure (layout( column_major shared) uniform mediump 4-component vector of uint) 0:44 nbv: direct index for structure (layout( column_major shared) uniform mediump 4-component vector of uint)
0:44 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:44 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni})

View File

@ -180,7 +180,7 @@ ERROR: node is still EOpNull!
0:91 'i' ( temp highp int) 0:91 'i' ( temp highp int)
0:92 imageStore ( global highp void) 0:92 imageStore ( global highp void)
0:92 'ii2da' ( writeonly uniform highp iimage2DArray) 0:92 'ii2da' ( writeonly uniform highp iimage2DArray)
0:92 Construct ivec3 ( temp 3-component vector of int) 0:92 Construct ivec3 ( temp highp 3-component vector of int)
0:92 'i' ( temp highp int) 0:92 'i' ( temp highp int)
0:92 'i' ( temp highp int) 0:92 'i' ( temp highp int)
0:92 'i' ( temp highp int) 0:92 'i' ( temp highp int)
@ -189,9 +189,9 @@ ERROR: node is still EOpNull!
0:92 0 (const int) 0:92 0 (const int)
0:92 0 (const int) 0:92 0 (const int)
0:92 0 (const int) 0:92 0 (const int)
0:93 imageLoad ( global mediump 4-component vector of float) 0:93 imageLoad ( global mediump 4-component vector of float, operation at highp)
0:93 'img2Drgba' (layout( rgba32f) readonly uniform mediump image2D) 0:93 'img2Drgba' (layout( rgba32f) readonly uniform mediump image2D)
0:93 Construct ivec2 ( temp mediump 2-component vector of int) 0:93 Construct ivec2 ( temp highp 2-component vector of int)
0:93 'i' ( temp highp int) 0:93 'i' ( temp highp int)
0:93 'i' ( temp highp int) 0:93 'i' ( temp highp int)
0:94 imageLoad ( global highp 4-component vector of int) 0:94 imageLoad ( global highp 4-component vector of int)

View File

@ -270,7 +270,7 @@ ERROR: node is still EOpNull!
0:42 Constant: 0:42 Constant:
0:42 0.000000 0:42 0.000000
0:42 0.000000 0:42 0.000000
0:42 Convert float to int ( temp highp 2-component vector of int) 0:42 Convert float to int ( temp mediump 2-component vector of int)
0:42 'c2D' ( smooth in mediump 2-component vector of float) 0:42 'c2D' ( smooth in mediump 2-component vector of float)
0:43 textureProjGradOffset ( global highp 4-component vector of uint) 0:43 textureProjGradOffset ( global highp 4-component vector of uint)
0:43 'usamp2d' ( uniform highp usampler2D) 0:43 'usamp2d' ( uniform highp usampler2D)
@ -471,7 +471,7 @@ ERROR: node is still EOpNull!
0:211 Constant: 0:211 Constant:
0:211 0.100000 0:211 0.100000
0:211 0.100000 0:211 0.100000
0:211 Convert float to int ( temp highp 2-component vector of int) 0:211 Convert float to int ( temp mediump 2-component vector of int)
0:211 'inf' ( smooth in mediump 2-component vector of float) 0:211 'inf' ( smooth in mediump 2-component vector of float)
0:212 textureGatherOffsets ( global highp 4-component vector of float) 0:212 textureGatherOffsets ( global highp 4-component vector of float)
0:212 direct index ( temp highp sampler2D) 0:212 direct index ( temp highp sampler2D)
@ -507,7 +507,7 @@ ERROR: node is still EOpNull!
0:221 Constant: 0:221 Constant:
0:221 0.100000 0:221 0.100000
0:221 0.100000 0:221 0.100000
0:221 Convert float to int ( temp highp 2-component vector of int) 0:221 Convert float to int ( temp mediump 2-component vector of int)
0:221 'inf' ( smooth in mediump 2-component vector of float) 0:221 'inf' ( smooth in mediump 2-component vector of float)
0:222 textureGatherOffsets ( global highp 4-component vector of float) 0:222 textureGatherOffsets ( global highp 4-component vector of float)
0:222 direct index ( temp highp sampler2D) 0:222 direct index ( temp highp sampler2D)

View File

@ -330,7 +330,7 @@ ERROR: node is still EOpNull!
0:164 'sIndex' ( uniform highp int) 0:164 'sIndex' ( uniform highp int)
0:164 Constant: 0:164 Constant:
0:164 2 (const int) 0:164 2 (const int)
0:165 textureGatherOffset ( global lowp 4-component vector of float) 0:165 textureGatherOffset ( global lowp 4-component vector of float, operation at highp)
0:165 direct index ( temp lowp sampler2D) 0:165 direct index ( temp lowp sampler2D)
0:165 'sArray' ( uniform 4-element array of lowp sampler2D) 0:165 'sArray' ( uniform 4-element array of lowp sampler2D)
0:165 Constant: 0:165 Constant:
@ -338,7 +338,7 @@ ERROR: node is still EOpNull!
0:165 Constant: 0:165 Constant:
0:165 0.100000 0:165 0.100000
0:165 0.100000 0:165 0.100000
0:165 Convert float to int ( temp lowp 2-component vector of int) 0:165 Convert float to int ( temp highp 2-component vector of int)
0:165 'inf' ( in highp 2-component vector of float) 0:165 'inf' ( in highp 2-component vector of float)
0:166 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp) 0:166 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp)
0:166 direct index ( temp lowp sampler2D) 0:166 direct index ( temp lowp sampler2D)
@ -394,7 +394,7 @@ ERROR: node is still EOpNull!
0:179 'sIndex' ( uniform highp int) 0:179 'sIndex' ( uniform highp int)
0:179 Constant: 0:179 Constant:
0:179 2 (const int) 0:179 2 (const int)
0:180 textureGatherOffset ( global lowp 4-component vector of float) 0:180 textureGatherOffset ( global lowp 4-component vector of float, operation at highp)
0:180 direct index ( temp lowp sampler2D) 0:180 direct index ( temp lowp sampler2D)
0:180 'sArray' ( uniform 4-element array of lowp sampler2D) 0:180 'sArray' ( uniform 4-element array of lowp sampler2D)
0:180 Constant: 0:180 Constant:
@ -402,7 +402,7 @@ ERROR: node is still EOpNull!
0:180 Constant: 0:180 Constant:
0:180 0.100000 0:180 0.100000
0:180 0.100000 0:180 0.100000
0:180 Convert float to int ( temp lowp 2-component vector of int) 0:180 Convert float to int ( temp highp 2-component vector of int)
0:180 'inf' ( in highp 2-component vector of float) 0:180 'inf' ( in highp 2-component vector of float)
0:181 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp) 0:181 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp)
0:181 direct index ( temp lowp sampler2D) 0:181 direct index ( temp lowp sampler2D)

View File

@ -121,7 +121,7 @@ ERROR: node is still EOpNull!
0:76 'inf' ( smooth in mediump 2-component vector of float) 0:76 'inf' ( smooth in mediump 2-component vector of float)
0:76 'ing' ( smooth in mediump 2-component vector of float) 0:76 'ing' ( smooth in mediump 2-component vector of float)
0:76 'h' ( noContraction temp mediump 2-component vector of float) 0:76 'h' ( noContraction temp mediump 2-component vector of float)
0:77 textureGatherOffset ( global lowp 4-component vector of float) 0:77 textureGatherOffset ( global lowp 4-component vector of float, operation at mediump)
0:77 direct index ( temp lowp sampler2D) 0:77 direct index ( temp lowp sampler2D)
0:77 'sArray' ( uniform 4-element array of lowp sampler2D) 0:77 'sArray' ( uniform 4-element array of lowp sampler2D)
0:77 Constant: 0:77 Constant:
@ -129,7 +129,7 @@ ERROR: node is still EOpNull!
0:77 Constant: 0:77 Constant:
0:77 0.100000 0:77 0.100000
0:77 0.100000 0:77 0.100000
0:77 Convert float to int ( temp lowp 2-component vector of int) 0:77 Convert float to int ( temp mediump 2-component vector of int)
0:77 'inf' ( smooth in mediump 2-component vector of float) 0:77 'inf' ( smooth in mediump 2-component vector of float)
0:78 textureGatherOffsets ( global lowp 4-component vector of float, operation at mediump) 0:78 textureGatherOffsets ( global lowp 4-component vector of float, operation at mediump)
0:78 direct index ( temp lowp sampler2D) 0:78 direct index ( temp lowp sampler2D)

View File

@ -99,7 +99,7 @@ ERROR: node is still EOpNull!
0:70 'sIndex' ( uniform highp int) 0:70 'sIndex' ( uniform highp int)
0:70 Constant: 0:70 Constant:
0:70 2 (const int) 0:70 2 (const int)
0:71 textureGatherOffset ( global lowp 4-component vector of float) 0:71 textureGatherOffset ( global lowp 4-component vector of float, operation at highp)
0:71 direct index ( temp lowp sampler2D) 0:71 direct index ( temp lowp sampler2D)
0:71 'sArray' ( uniform 4-element array of lowp sampler2D) 0:71 'sArray' ( uniform 4-element array of lowp sampler2D)
0:71 Constant: 0:71 Constant:
@ -107,7 +107,7 @@ ERROR: node is still EOpNull!
0:71 Constant: 0:71 Constant:
0:71 0.100000 0:71 0.100000
0:71 0.100000 0:71 0.100000
0:71 Convert float to int ( temp lowp 2-component vector of int) 0:71 Convert float to int ( temp highp 2-component vector of int)
0:71 'inf' ( in highp 2-component vector of float) 0:71 'inf' ( in highp 2-component vector of float)
0:72 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp) 0:72 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp)
0:72 direct index ( temp lowp sampler2D) 0:72 direct index ( temp lowp sampler2D)

View File

@ -0,0 +1,206 @@
BestMatchFunction.vert
WARNING: 0:2: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5
Shader version: 150
Requested GL_ARB_gpu_shader5
0:? Sequence
0:7 Function Definition: f(vf4;vf4; ( global 4-component vector of float)
0:7 Function Parameters:
0:7 'a' ( in 4-component vector of float)
0:7 'b' ( in 4-component vector of float)
0:7 Sequence
0:7 Branch: Return with expression
0:7 component-wise multiply ( temp 4-component vector of float)
0:7 'a' ( in 4-component vector of float)
0:7 'b' ( in 4-component vector of float)
0:8 Function Definition: f(vu4;vu4; ( global 4-component vector of float)
0:8 Function Parameters:
0:8 'a' ( in 4-component vector of uint)
0:8 'b' ( in 4-component vector of uint)
0:8 Sequence
0:8 Branch: Return with expression
0:8 Convert uint to float ( temp 4-component vector of float)
0:8 subtract ( temp 4-component vector of uint)
0:8 'a' ( in 4-component vector of uint)
0:8 'b' ( in 4-component vector of uint)
0:10 Function Definition: main( ( global void)
0:10 Function Parameters:
0:12 Sequence
0:12 move second child to first child ( temp 4-component vector of float)
0:12 'result' ( smooth out 4-component vector of float)
0:12 Function Call: f(vu4;vu4; ( global 4-component vector of float)
0:12 Convert int to uint ( temp 4-component vector of uint)
0:12 'u1' ( uniform 4-component vector of int)
0:12 'u2' ( uniform 4-component vector of uint)
0:13 switch
0:13 condition
0:13 'gl_VertexID' ( gl_VertexId int VertexId)
0:13 body
0:13 Sequence
0:15 case: with expression
0:15 Constant:
0:15 0 (const int)
0:? Sequence
0:15 move second child to first child ( temp 4-component vector of float)
0:15 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:15 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:15 Constant:
0:15 0 (const uint)
0:15 Constant:
0:15 -1.000000
0:15 1.000000
0:15 0.000000
0:15 1.000000
0:15 Branch: Break
0:16 case: with expression
0:16 Constant:
0:16 1 (const int)
0:? Sequence
0:16 move second child to first child ( temp 4-component vector of float)
0:16 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:16 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:16 Constant:
0:16 0 (const uint)
0:16 Constant:
0:16 1.000000
0:16 1.000000
0:16 0.000000
0:16 1.000000
0:16 Branch: Break
0:17 case: with expression
0:17 Constant:
0:17 2 (const int)
0:? Sequence
0:17 move second child to first child ( temp 4-component vector of float)
0:17 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:17 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:17 Constant:
0:17 0 (const uint)
0:17 Constant:
0:17 -1.000000
0:17 -1.000000
0:17 0.000000
0:17 1.000000
0:17 Branch: Break
0:18 case: with expression
0:18 Constant:
0:18 3 (const int)
0:? Sequence
0:18 move second child to first child ( temp 4-component vector of float)
0:18 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:18 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:18 Constant:
0:18 0 (const uint)
0:18 Constant:
0:18 1.000000
0:18 -1.000000
0:18 0.000000
0:18 1.000000
0:18 Branch: Break
0:? Linker Objects
0:? 'u1' ( uniform 4-component vector of int)
0:? 'u2' ( uniform 4-component vector of uint)
0:? 'result' ( smooth out 4-component vector of float)
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
Linked vertex stage:
Shader version: 150
Requested GL_ARB_gpu_shader5
0:? Sequence
0:8 Function Definition: f(vu4;vu4; ( global 4-component vector of float)
0:8 Function Parameters:
0:8 'a' ( in 4-component vector of uint)
0:8 'b' ( in 4-component vector of uint)
0:8 Sequence
0:8 Branch: Return with expression
0:8 Convert uint to float ( temp 4-component vector of float)
0:8 subtract ( temp 4-component vector of uint)
0:8 'a' ( in 4-component vector of uint)
0:8 'b' ( in 4-component vector of uint)
0:10 Function Definition: main( ( global void)
0:10 Function Parameters:
0:12 Sequence
0:12 move second child to first child ( temp 4-component vector of float)
0:12 'result' ( smooth out 4-component vector of float)
0:12 Function Call: f(vu4;vu4; ( global 4-component vector of float)
0:12 Convert int to uint ( temp 4-component vector of uint)
0:12 'u1' ( uniform 4-component vector of int)
0:12 'u2' ( uniform 4-component vector of uint)
0:13 switch
0:13 condition
0:13 'gl_VertexID' ( gl_VertexId int VertexId)
0:13 body
0:13 Sequence
0:15 case: with expression
0:15 Constant:
0:15 0 (const int)
0:? Sequence
0:15 move second child to first child ( temp 4-component vector of float)
0:15 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:15 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:15 Constant:
0:15 0 (const uint)
0:15 Constant:
0:15 -1.000000
0:15 1.000000
0:15 0.000000
0:15 1.000000
0:15 Branch: Break
0:16 case: with expression
0:16 Constant:
0:16 1 (const int)
0:? Sequence
0:16 move second child to first child ( temp 4-component vector of float)
0:16 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:16 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:16 Constant:
0:16 0 (const uint)
0:16 Constant:
0:16 1.000000
0:16 1.000000
0:16 0.000000
0:16 1.000000
0:16 Branch: Break
0:17 case: with expression
0:17 Constant:
0:17 2 (const int)
0:? Sequence
0:17 move second child to first child ( temp 4-component vector of float)
0:17 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:17 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:17 Constant:
0:17 0 (const uint)
0:17 Constant:
0:17 -1.000000
0:17 -1.000000
0:17 0.000000
0:17 1.000000
0:17 Branch: Break
0:18 case: with expression
0:18 Constant:
0:18 3 (const int)
0:? Sequence
0:18 move second child to first child ( temp 4-component vector of float)
0:18 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:18 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:18 Constant:
0:18 0 (const uint)
0:18 Constant:
0:18 1.000000
0:18 -1.000000
0:18 0.000000
0:18 1.000000
0:18 Branch: Break
0:? Linker Objects
0:? 'u1' ( uniform 4-component vector of int)
0:? 'u2' ( uniform 4-component vector of uint)
0:? 'result' ( smooth out 4-component vector of float)
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)

View File

@ -0,0 +1,189 @@
GL_ARB_draw_instanced.vert
Shader version: 150
Requested GL_ARB_draw_instanced
0:? Sequence
0:10 Function Definition: main( ( global void)
0:10 Function Parameters:
0:12 Sequence
0:12 Sequence
0:12 move second child to first child ( temp 4-component vector of float)
0:12 'vertex' ( temp 4-component vector of float)
0:12 add ( temp 4-component vector of float)
0:12 Construct vec4 ( temp 4-component vector of float)
0:12 divide ( temp 2-component vector of float)
0:12 vector swizzle ( temp 2-component vector of float)
0:12 direct index ( temp 4-component vector of float)
0:12 'va' ( in 64-element array of 4-component vector of float)
0:12 Constant:
0:12 0 (const int)
0:12 Sequence
0:12 Constant:
0:12 0 (const int)
0:12 Constant:
0:12 1 (const int)
0:12 Constant:
0:12 3.000000
0:12 vector swizzle ( temp 2-component vector of float)
0:12 direct index ( temp 4-component vector of float)
0:12 'va' ( in 64-element array of 4-component vector of float)
0:12 Constant:
0:12 0 (const int)
0:12 Sequence
0:12 Constant:
0:12 2 (const int)
0:12 Constant:
0:12 3 (const int)
0:12 Construct vec4 ( temp 4-component vector of float)
0:12 indirect index ( temp 3-component vector of float)
0:12 'instanceOffsets' ( uniform 3-element array of 3-component vector of float)
0:12 'gl_InstanceID' ( gl_InstanceId int InstanceId)
0:12 Constant:
0:12 1.000000
0:13 move second child to first child ( temp 4-component vector of float)
0:13 'color' ( smooth out 4-component vector of float)
0:13 Constant:
0:13 0.000000
0:13 0.000000
0:13 0.000000
0:13 0.000000
0:14 Sequence
0:14 Sequence
0:14 move second child to first child ( temp int)
0:14 'i' ( temp int)
0:14 Constant:
0:14 1 (const int)
0:14 Loop with condition tested first
0:14 Loop Condition
0:14 Compare Less Than ( temp bool)
0:14 'i' ( temp int)
0:14 Constant:
0:14 64 (const int)
0:14 Loop Body
0:15 add second child into first child ( temp 4-component vector of float)
0:15 'color' ( smooth out 4-component vector of float)
0:15 indirect index ( temp 4-component vector of float)
0:15 'va' ( in 64-element array of 4-component vector of float)
0:15 'i' ( temp int)
0:14 Loop Terminal Expression
0:14 Post-Increment ( temp int)
0:14 'i' ( temp int)
0:16 move second child to first child ( temp 4-component vector of float)
0:16 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:16 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:16 Constant:
0:16 0 (const uint)
0:16 matrix-times-vector ( temp 4-component vector of float)
0:16 'gtf_ModelViewProjectionMatrix' ( uniform 4X4 matrix of float)
0:16 'vertex' ( temp 4-component vector of float)
0:17 move second child to first child ( temp float)
0:17 gl_PointSize: direct index for structure ( gl_PointSize float PointSize)
0:17 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:17 Constant:
0:17 1 (const uint)
0:17 Constant:
0:17 1.000000
0:? Linker Objects
0:? 'gtf_ModelViewProjectionMatrix' ( uniform 4X4 matrix of float)
0:? 'instanceOffsets' ( uniform 3-element array of 3-component vector of float)
0:? 'va' ( in 64-element array of 4-component vector of float)
0:? 'color' ( smooth out 4-component vector of float)
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
Linked vertex stage:
Shader version: 150
Requested GL_ARB_draw_instanced
0:? Sequence
0:10 Function Definition: main( ( global void)
0:10 Function Parameters:
0:12 Sequence
0:12 Sequence
0:12 move second child to first child ( temp 4-component vector of float)
0:12 'vertex' ( temp 4-component vector of float)
0:12 add ( temp 4-component vector of float)
0:12 Construct vec4 ( temp 4-component vector of float)
0:12 divide ( temp 2-component vector of float)
0:12 vector swizzle ( temp 2-component vector of float)
0:12 direct index ( temp 4-component vector of float)
0:12 'va' ( in 64-element array of 4-component vector of float)
0:12 Constant:
0:12 0 (const int)
0:12 Sequence
0:12 Constant:
0:12 0 (const int)
0:12 Constant:
0:12 1 (const int)
0:12 Constant:
0:12 3.000000
0:12 vector swizzle ( temp 2-component vector of float)
0:12 direct index ( temp 4-component vector of float)
0:12 'va' ( in 64-element array of 4-component vector of float)
0:12 Constant:
0:12 0 (const int)
0:12 Sequence
0:12 Constant:
0:12 2 (const int)
0:12 Constant:
0:12 3 (const int)
0:12 Construct vec4 ( temp 4-component vector of float)
0:12 indirect index ( temp 3-component vector of float)
0:12 'instanceOffsets' ( uniform 3-element array of 3-component vector of float)
0:12 'gl_InstanceID' ( gl_InstanceId int InstanceId)
0:12 Constant:
0:12 1.000000
0:13 move second child to first child ( temp 4-component vector of float)
0:13 'color' ( smooth out 4-component vector of float)
0:13 Constant:
0:13 0.000000
0:13 0.000000
0:13 0.000000
0:13 0.000000
0:14 Sequence
0:14 Sequence
0:14 move second child to first child ( temp int)
0:14 'i' ( temp int)
0:14 Constant:
0:14 1 (const int)
0:14 Loop with condition tested first
0:14 Loop Condition
0:14 Compare Less Than ( temp bool)
0:14 'i' ( temp int)
0:14 Constant:
0:14 64 (const int)
0:14 Loop Body
0:15 add second child into first child ( temp 4-component vector of float)
0:15 'color' ( smooth out 4-component vector of float)
0:15 indirect index ( temp 4-component vector of float)
0:15 'va' ( in 64-element array of 4-component vector of float)
0:15 'i' ( temp int)
0:14 Loop Terminal Expression
0:14 Post-Increment ( temp int)
0:14 'i' ( temp int)
0:16 move second child to first child ( temp 4-component vector of float)
0:16 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:16 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:16 Constant:
0:16 0 (const uint)
0:16 matrix-times-vector ( temp 4-component vector of float)
0:16 'gtf_ModelViewProjectionMatrix' ( uniform 4X4 matrix of float)
0:16 'vertex' ( temp 4-component vector of float)
0:17 move second child to first child ( temp float)
0:17 gl_PointSize: direct index for structure ( gl_PointSize float PointSize)
0:17 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:17 Constant:
0:17 1 (const uint)
0:17 Constant:
0:17 1.000000
0:? Linker Objects
0:? 'gtf_ModelViewProjectionMatrix' ( uniform 4X4 matrix of float)
0:? 'instanceOffsets' ( uniform 3-element array of 3-component vector of float)
0:? 'va' ( in 64-element array of 4-component vector of float)
0:? 'color' ( smooth out 4-component vector of float)
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)

View File

@ -0,0 +1,47 @@
GL_EXT_shader_integer_mix.vert
Shader version: 330
Requested GL_EXT_shader_integer_mix
0:? Sequence
0:11 Function Definition: main( ( global void)
0:11 Function Parameters:
0:12 Sequence
0:12 move second child to first child ( temp 4-component vector of float)
0:12 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:12 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:12 Constant:
0:12 0 (const uint)
0:12 Constant:
0:12 0.000000
0:12 0.000000
0:12 0.000000
0:12 0.000000
0:? Linker Objects
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
Linked vertex stage:
Shader version: 330
Requested GL_EXT_shader_integer_mix
0:? Sequence
0:11 Function Definition: main( ( global void)
0:11 Function Parameters:
0:12 Sequence
0:12 move second child to first child ( temp 4-component vector of float)
0:12 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:12 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:12 Constant:
0:12 0 (const uint)
0:12 Constant:
0:12 0.000000
0:12 0.000000
0:12 0.000000
0:12 0.000000
0:? Linker Objects
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)

View File

@ -0,0 +1,201 @@
atomicCounterARBOps.vert
Shader version: 450
Requested GL_ARB_shader_atomic_counter_ops
Requested GL_ARB_shader_atomic_counters
0:? Sequence
0:9 Function Definition: main( ( global void)
0:9 Function Parameters:
0:10 Sequence
0:10 Sequence
0:10 move second child to first child ( temp 4-component vector of float)
0:10 'outColor' ( temp 4-component vector of float)
0:10 Constant:
0:10 1.000000
0:10 1.000000
0:10 1.000000
0:10 1.000000
0:13 move second child to first child ( temp uint)
0:13 'ret' ( temp uint)
0:13 AtomicCounterAdd ( global uint)
0:13 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:13 Constant:
0:13 4 (const uint)
0:14 move second child to first child ( temp uint)
0:14 'ret' ( temp uint)
0:14 AtomicCounterSubtract ( global uint)
0:14 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:14 Constant:
0:14 4 (const uint)
0:15 move second child to first child ( temp uint)
0:15 'ret' ( temp uint)
0:15 AtomicCounterMin ( global uint)
0:15 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:15 Constant:
0:15 4 (const uint)
0:16 move second child to first child ( temp uint)
0:16 'ret' ( temp uint)
0:16 AtomicCounterMax ( global uint)
0:16 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:16 Constant:
0:16 4 (const uint)
0:17 move second child to first child ( temp uint)
0:17 'ret' ( temp uint)
0:17 AtomicCounterAnd ( global uint)
0:17 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:17 Constant:
0:17 4 (const uint)
0:18 move second child to first child ( temp uint)
0:18 'ret' ( temp uint)
0:18 AtomicCounterOr ( global uint)
0:18 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:18 Constant:
0:18 4 (const uint)
0:19 move second child to first child ( temp uint)
0:19 'ret' ( temp uint)
0:19 AtomicCounterXor ( global uint)
0:19 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:19 Constant:
0:19 4 (const uint)
0:20 move second child to first child ( temp uint)
0:20 'ret' ( temp uint)
0:20 AtomicCounterExchange ( global uint)
0:20 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:20 Constant:
0:20 4 (const uint)
0:21 move second child to first child ( temp uint)
0:21 'ret' ( temp uint)
0:21 AtomicCounterCompSwap ( global uint)
0:21 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:21 Constant:
0:21 4 (const uint)
0:21 Constant:
0:21 4 (const uint)
0:23 Sequence
0:23 move second child to first child ( temp uint)
0:23 'after' ( temp uint)
0:23 AtomicCounter ( global uint)
0:23 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:24 Test condition and select ( temp void)
0:24 Condition
0:24 Compare Equal ( temp bool)
0:24 'after' ( temp uint)
0:24 'ret' ( temp uint)
0:24 true case
0:25 move second child to first child ( temp 4-component vector of float)
0:25 'outColor' ( temp 4-component vector of float)
0:25 Constant:
0:25 0.000000
0:25 0.000000
0:25 0.000000
0:25 0.000000
0:27 move second child to first child ( temp 4-component vector of float)
0:27 'vsColor' ( smooth out 4-component vector of float)
0:27 'outColor' ( temp 4-component vector of float)
0:? Linker Objects
0:? 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:? 'vsColor' ( smooth out 4-component vector of float)
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
Linked vertex stage:
Shader version: 450
Requested GL_ARB_shader_atomic_counter_ops
Requested GL_ARB_shader_atomic_counters
0:? Sequence
0:9 Function Definition: main( ( global void)
0:9 Function Parameters:
0:10 Sequence
0:10 Sequence
0:10 move second child to first child ( temp 4-component vector of float)
0:10 'outColor' ( temp 4-component vector of float)
0:10 Constant:
0:10 1.000000
0:10 1.000000
0:10 1.000000
0:10 1.000000
0:13 move second child to first child ( temp uint)
0:13 'ret' ( temp uint)
0:13 AtomicCounterAdd ( global uint)
0:13 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:13 Constant:
0:13 4 (const uint)
0:14 move second child to first child ( temp uint)
0:14 'ret' ( temp uint)
0:14 AtomicCounterSubtract ( global uint)
0:14 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:14 Constant:
0:14 4 (const uint)
0:15 move second child to first child ( temp uint)
0:15 'ret' ( temp uint)
0:15 AtomicCounterMin ( global uint)
0:15 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:15 Constant:
0:15 4 (const uint)
0:16 move second child to first child ( temp uint)
0:16 'ret' ( temp uint)
0:16 AtomicCounterMax ( global uint)
0:16 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:16 Constant:
0:16 4 (const uint)
0:17 move second child to first child ( temp uint)
0:17 'ret' ( temp uint)
0:17 AtomicCounterAnd ( global uint)
0:17 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:17 Constant:
0:17 4 (const uint)
0:18 move second child to first child ( temp uint)
0:18 'ret' ( temp uint)
0:18 AtomicCounterOr ( global uint)
0:18 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:18 Constant:
0:18 4 (const uint)
0:19 move second child to first child ( temp uint)
0:19 'ret' ( temp uint)
0:19 AtomicCounterXor ( global uint)
0:19 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:19 Constant:
0:19 4 (const uint)
0:20 move second child to first child ( temp uint)
0:20 'ret' ( temp uint)
0:20 AtomicCounterExchange ( global uint)
0:20 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:20 Constant:
0:20 4 (const uint)
0:21 move second child to first child ( temp uint)
0:21 'ret' ( temp uint)
0:21 AtomicCounterCompSwap ( global uint)
0:21 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:21 Constant:
0:21 4 (const uint)
0:21 Constant:
0:21 4 (const uint)
0:23 Sequence
0:23 move second child to first child ( temp uint)
0:23 'after' ( temp uint)
0:23 AtomicCounter ( global uint)
0:23 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:24 Test condition and select ( temp void)
0:24 Condition
0:24 Compare Equal ( temp bool)
0:24 'after' ( temp uint)
0:24 'ret' ( temp uint)
0:24 true case
0:25 move second child to first child ( temp 4-component vector of float)
0:25 'outColor' ( temp 4-component vector of float)
0:25 Constant:
0:25 0.000000
0:25 0.000000
0:25 0.000000
0:25 0.000000
0:27 move second child to first child ( temp 4-component vector of float)
0:27 'vsColor' ( smooth out 4-component vector of float)
0:27 'outColor' ( temp 4-component vector of float)
0:? Linker Objects
0:? 'counter' (layout( binding=0 offset=0) uniform atomic_uint)
0:? 'vsColor' ( smooth out 4-component vector of float)
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)

View File

@ -3,8 +3,8 @@ Shader version: 450
Requested GL_EXT_shader_explicit_arithmetic_types Requested GL_EXT_shader_explicit_arithmetic_types
local_size = (1, 1, 1) local_size = (1, 1, 1)
0:? Sequence 0:? Sequence
0:48 Function Definition: main( ( global void) 0:69 Function Definition: main( ( global void)
0:48 Function Parameters: 0:69 Function Parameters:
0:? Linker Objects 0:? Linker Objects
0:? 'bool_init' ( const bool) 0:? 'bool_init' ( const bool)
0:? true (const bool) 0:? true (const bool)
@ -29,6 +29,12 @@ local_size = (1, 1, 1)
0:? 'float32_t_init' ( const float) 0:? 'float32_t_init' ( const float)
0:? 13.000000 0:? 13.000000
0:? 'float64_t_init' ( const double) 0:? 'float64_t_init' ( const double)
0:? 4.000000
0:? 'neg_float16_t_init' ( const float16_t)
0:? -42.000000
0:? 'neg_float32_t_init' ( const float)
0:? -13.000000
0:? 'neg_float64_t_init' ( const double)
0:? -4.000000 0:? -4.000000
0:? 'bool_to_bool' ( const bool) 0:? 'bool_to_bool' ( const bool)
0:? true (const bool) 0:? true (const bool)
@ -77,7 +83,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_int8_t' ( const int8_t) 0:? 'float32_t_to_int8_t' ( const int8_t)
0:? 13 (const int8_t) 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 (const int8_t) 0:? 4 (const int8_t)
0:? 'bool_to_int16_t' ( const int16_t) 0:? 'bool_to_int16_t' ( const int16_t)
0:? 1 (const int16_t) 0:? 1 (const int16_t)
0:? 'int8_t_to_int16_t' ( const int16_t) 0:? 'int8_t_to_int16_t' ( const int16_t)
@ -101,7 +107,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_int16_t' ( const int16_t) 0:? 'float32_t_to_int16_t' ( const int16_t)
0:? 13 (const int16_t) 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 (const int16_t) 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)
@ -125,7 +131,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_int32_t' ( const int) 0:? 'float32_t_to_int32_t' ( const int)
0:? 13 (const int) 0:? 13 (const int)
0:? 'float64_t_to_int32_t' ( const int) 0:? 'float64_t_to_int32_t' ( const int)
0:? -4 (const int) 0:? 4 (const int)
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)
@ -149,7 +155,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_int64_t' ( const int64_t) 0:? 'float32_t_to_int64_t' ( const int64_t)
0:? 13 (const int64_t) 0:? 13 (const int64_t)
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:? 1 (const uint8_t) 0:? 1 (const uint8_t)
0:? 'int8_t_to_uint8_t' ( const uint8_t) 0:? 'int8_t_to_uint8_t' ( const uint8_t)
@ -173,7 +179,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_uint8_t' ( const uint8_t) 0:? 'float32_t_to_uint8_t' ( const uint8_t)
0:? 13 (const uint8_t) 0:? 13 (const uint8_t)
0:? 'float64_t_to_uint8_t' ( const uint8_t) 0:? 'float64_t_to_uint8_t' ( const uint8_t)
0:? 252 (const uint8_t) 0:? 4 (const uint8_t)
0:? 'bool_to_uint16_t' ( const uint16_t) 0:? 'bool_to_uint16_t' ( const uint16_t)
0:? 1 (const uint16_t) 0:? 1 (const uint16_t)
0:? 'int8_t_to_uint16_t' ( const uint16_t) 0:? 'int8_t_to_uint16_t' ( const uint16_t)
@ -197,7 +203,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_uint16_t' ( const uint16_t) 0:? 'float32_t_to_uint16_t' ( const uint16_t)
0:? 13 (const uint16_t) 0:? 13 (const uint16_t)
0:? 'float64_t_to_uint16_t' ( const uint16_t) 0:? 'float64_t_to_uint16_t' ( const uint16_t)
0:? 65532 (const uint16_t) 0:? 4 (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)
@ -221,7 +227,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_uint32_t' ( const uint) 0:? 'float32_t_to_uint32_t' ( const uint)
0:? 13 (const uint) 0:? 13 (const uint)
0:? 'float64_t_to_uint32_t' ( const uint) 0:? 'float64_t_to_uint32_t' ( const uint)
0:? 4294967292 (const uint) 0:? 4 (const uint)
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)
@ -245,7 +251,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_uint64_t' ( const uint64_t) 0:? 'float32_t_to_uint64_t' ( const uint64_t)
0:? 13 (const uint64_t) 0:? 13 (const uint64_t)
0:? 'float64_t_to_uint64_t' ( const uint64_t) 0:? 'float64_t_to_uint64_t' ( const uint64_t)
0:? 18446744073709551612 (const uint64_t) 0:? 4 (const uint64_t)
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)
@ -269,7 +275,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_float16_t' ( const float16_t) 0:? 'float32_t_to_float16_t' ( const float16_t)
0:? 13.000000 0:? 13.000000
0:? 'float64_t_to_float16_t' ( const float16_t) 0:? 'float64_t_to_float16_t' ( const float16_t)
0:? -4.000000 0:? 4.000000
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)
@ -293,7 +299,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_float32_t' ( const float) 0:? 'float32_t_to_float32_t' ( const float)
0:? 13.000000 0:? 13.000000
0:? 'float64_t_to_float32_t' ( const float) 0:? 'float64_t_to_float32_t' ( const float)
0:? -4.000000 0:? 4.000000
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)
@ -317,6 +323,54 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_float64_t' ( const double) 0:? 'float32_t_to_float64_t' ( const double)
0:? 13.000000 0:? 13.000000
0:? 'float64_t_to_float64_t' ( const double) 0:? 'float64_t_to_float64_t' ( const double)
0:? 4.000000
0:? 'neg_float16_t_to_bool' ( const bool)
0:? true (const bool)
0:? 'neg_float32_t_to_bool' ( const bool)
0:? true (const bool)
0:? 'neg_float64_t_to_bool' ( const bool)
0:? true (const bool)
0:? 'neg_float16_t_to_int8_t' ( const int8_t)
0:? -42 (const int8_t)
0:? 'neg_float32_t_to_int8_t' ( const int8_t)
0:? -13 (const int8_t)
0:? 'neg_float64_t_to_int8_t' ( const int8_t)
0:? -4 (const int8_t)
0:? 'neg_float16_t_to_int16_t' ( const int16_t)
0:? -42 (const int16_t)
0:? 'neg_float32_t_to_int16_t' ( const int16_t)
0:? -13 (const int16_t)
0:? 'neg_float64_t_to_int16_t' ( const int16_t)
0:? -4 (const int16_t)
0:? 'neg_float16_t_to_int32_t' ( const int)
0:? -42 (const int)
0:? 'neg_float32_t_to_int32_t' ( const int)
0:? -13 (const int)
0:? 'neg_float64_t_to_int32_t' ( const int)
0:? -4 (const int)
0:? 'neg_float16_t_to_int64_t' ( const int64_t)
0:? -42 (const int64_t)
0:? 'neg_float32_t_to_int64_t' ( const int64_t)
0:? -13 (const int64_t)
0:? 'neg_float64_t_to_int64_t' ( const int64_t)
0:? -4 (const int64_t)
0:? 'neg_float16_t_to_float16_t' ( const float16_t)
0:? -42.000000
0:? 'neg_float32_t_to_float16_t' ( const float16_t)
0:? -13.000000
0:? 'neg_float64_t_to_float16_t' ( const float16_t)
0:? -4.000000
0:? 'neg_float16_t_to_float32_t' ( const float)
0:? -42.000000
0:? 'neg_float32_t_to_float32_t' ( const float)
0:? -13.000000
0:? 'neg_float64_t_to_float32_t' ( const float)
0:? -4.000000
0:? 'neg_float16_t_to_float64_t' ( const double)
0:? -42.000000
0:? 'neg_float32_t_to_float64_t' ( const double)
0:? -13.000000
0:? 'neg_float64_t_to_float64_t' ( const double)
0:? -4.000000 0:? -4.000000
@ -327,8 +381,8 @@ Shader version: 450
Requested GL_EXT_shader_explicit_arithmetic_types Requested GL_EXT_shader_explicit_arithmetic_types
local_size = (1, 1, 1) local_size = (1, 1, 1)
0:? Sequence 0:? Sequence
0:48 Function Definition: main( ( global void) 0:69 Function Definition: main( ( global void)
0:48 Function Parameters: 0:69 Function Parameters:
0:? Linker Objects 0:? Linker Objects
0:? 'bool_init' ( const bool) 0:? 'bool_init' ( const bool)
0:? true (const bool) 0:? true (const bool)
@ -353,6 +407,12 @@ local_size = (1, 1, 1)
0:? 'float32_t_init' ( const float) 0:? 'float32_t_init' ( const float)
0:? 13.000000 0:? 13.000000
0:? 'float64_t_init' ( const double) 0:? 'float64_t_init' ( const double)
0:? 4.000000
0:? 'neg_float16_t_init' ( const float16_t)
0:? -42.000000
0:? 'neg_float32_t_init' ( const float)
0:? -13.000000
0:? 'neg_float64_t_init' ( const double)
0:? -4.000000 0:? -4.000000
0:? 'bool_to_bool' ( const bool) 0:? 'bool_to_bool' ( const bool)
0:? true (const bool) 0:? true (const bool)
@ -401,7 +461,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_int8_t' ( const int8_t) 0:? 'float32_t_to_int8_t' ( const int8_t)
0:? 13 (const int8_t) 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 (const int8_t) 0:? 4 (const int8_t)
0:? 'bool_to_int16_t' ( const int16_t) 0:? 'bool_to_int16_t' ( const int16_t)
0:? 1 (const int16_t) 0:? 1 (const int16_t)
0:? 'int8_t_to_int16_t' ( const int16_t) 0:? 'int8_t_to_int16_t' ( const int16_t)
@ -425,7 +485,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_int16_t' ( const int16_t) 0:? 'float32_t_to_int16_t' ( const int16_t)
0:? 13 (const int16_t) 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 (const int16_t) 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)
@ -449,7 +509,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_int32_t' ( const int) 0:? 'float32_t_to_int32_t' ( const int)
0:? 13 (const int) 0:? 13 (const int)
0:? 'float64_t_to_int32_t' ( const int) 0:? 'float64_t_to_int32_t' ( const int)
0:? -4 (const int) 0:? 4 (const int)
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)
@ -473,7 +533,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_int64_t' ( const int64_t) 0:? 'float32_t_to_int64_t' ( const int64_t)
0:? 13 (const int64_t) 0:? 13 (const int64_t)
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:? 1 (const uint8_t) 0:? 1 (const uint8_t)
0:? 'int8_t_to_uint8_t' ( const uint8_t) 0:? 'int8_t_to_uint8_t' ( const uint8_t)
@ -497,7 +557,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_uint8_t' ( const uint8_t) 0:? 'float32_t_to_uint8_t' ( const uint8_t)
0:? 13 (const uint8_t) 0:? 13 (const uint8_t)
0:? 'float64_t_to_uint8_t' ( const uint8_t) 0:? 'float64_t_to_uint8_t' ( const uint8_t)
0:? 252 (const uint8_t) 0:? 4 (const uint8_t)
0:? 'bool_to_uint16_t' ( const uint16_t) 0:? 'bool_to_uint16_t' ( const uint16_t)
0:? 1 (const uint16_t) 0:? 1 (const uint16_t)
0:? 'int8_t_to_uint16_t' ( const uint16_t) 0:? 'int8_t_to_uint16_t' ( const uint16_t)
@ -521,7 +581,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_uint16_t' ( const uint16_t) 0:? 'float32_t_to_uint16_t' ( const uint16_t)
0:? 13 (const uint16_t) 0:? 13 (const uint16_t)
0:? 'float64_t_to_uint16_t' ( const uint16_t) 0:? 'float64_t_to_uint16_t' ( const uint16_t)
0:? 65532 (const uint16_t) 0:? 4 (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)
@ -545,7 +605,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_uint32_t' ( const uint) 0:? 'float32_t_to_uint32_t' ( const uint)
0:? 13 (const uint) 0:? 13 (const uint)
0:? 'float64_t_to_uint32_t' ( const uint) 0:? 'float64_t_to_uint32_t' ( const uint)
0:? 4294967292 (const uint) 0:? 4 (const uint)
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)
@ -569,7 +629,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_uint64_t' ( const uint64_t) 0:? 'float32_t_to_uint64_t' ( const uint64_t)
0:? 13 (const uint64_t) 0:? 13 (const uint64_t)
0:? 'float64_t_to_uint64_t' ( const uint64_t) 0:? 'float64_t_to_uint64_t' ( const uint64_t)
0:? 18446744073709551612 (const uint64_t) 0:? 4 (const uint64_t)
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)
@ -593,7 +653,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_float16_t' ( const float16_t) 0:? 'float32_t_to_float16_t' ( const float16_t)
0:? 13.000000 0:? 13.000000
0:? 'float64_t_to_float16_t' ( const float16_t) 0:? 'float64_t_to_float16_t' ( const float16_t)
0:? -4.000000 0:? 4.000000
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)
@ -617,7 +677,7 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_float32_t' ( const float) 0:? 'float32_t_to_float32_t' ( const float)
0:? 13.000000 0:? 13.000000
0:? 'float64_t_to_float32_t' ( const float) 0:? 'float64_t_to_float32_t' ( const float)
0:? -4.000000 0:? 4.000000
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)
@ -641,5 +701,53 @@ local_size = (1, 1, 1)
0:? 'float32_t_to_float64_t' ( const double) 0:? 'float32_t_to_float64_t' ( const double)
0:? 13.000000 0:? 13.000000
0:? 'float64_t_to_float64_t' ( const double) 0:? 'float64_t_to_float64_t' ( const double)
0:? 4.000000
0:? 'neg_float16_t_to_bool' ( const bool)
0:? true (const bool)
0:? 'neg_float32_t_to_bool' ( const bool)
0:? true (const bool)
0:? 'neg_float64_t_to_bool' ( const bool)
0:? true (const bool)
0:? 'neg_float16_t_to_int8_t' ( const int8_t)
0:? -42 (const int8_t)
0:? 'neg_float32_t_to_int8_t' ( const int8_t)
0:? -13 (const int8_t)
0:? 'neg_float64_t_to_int8_t' ( const int8_t)
0:? -4 (const int8_t)
0:? 'neg_float16_t_to_int16_t' ( const int16_t)
0:? -42 (const int16_t)
0:? 'neg_float32_t_to_int16_t' ( const int16_t)
0:? -13 (const int16_t)
0:? 'neg_float64_t_to_int16_t' ( const int16_t)
0:? -4 (const int16_t)
0:? 'neg_float16_t_to_int32_t' ( const int)
0:? -42 (const int)
0:? 'neg_float32_t_to_int32_t' ( const int)
0:? -13 (const int)
0:? 'neg_float64_t_to_int32_t' ( const int)
0:? -4 (const int)
0:? 'neg_float16_t_to_int64_t' ( const int64_t)
0:? -42 (const int64_t)
0:? 'neg_float32_t_to_int64_t' ( const int64_t)
0:? -13 (const int64_t)
0:? 'neg_float64_t_to_int64_t' ( const int64_t)
0:? -4 (const int64_t)
0:? 'neg_float16_t_to_float16_t' ( const float16_t)
0:? -42.000000
0:? 'neg_float32_t_to_float16_t' ( const float16_t)
0:? -13.000000
0:? 'neg_float64_t_to_float16_t' ( const float16_t)
0:? -4.000000
0:? 'neg_float16_t_to_float32_t' ( const float)
0:? -42.000000
0:? 'neg_float32_t_to_float32_t' ( const float)
0:? -13.000000
0:? 'neg_float64_t_to_float32_t' ( const float)
0:? -4.000000
0:? 'neg_float16_t_to_float64_t' ( const double)
0:? -42.000000
0:? 'neg_float32_t_to_float64_t' ( const double)
0:? -13.000000
0:? 'neg_float64_t_to_float64_t' ( const double)
0:? -4.000000 0:? -4.000000

View File

@ -16,7 +16,7 @@ output primitive = points
0:12 Constant: 0:12 Constant:
0:12 0 (const uint) 0:12 0 (const uint)
0:12 'gl_PrimitiveIDIn' ( in highp int PrimitiveID) 0:12 'gl_PrimitiveIDIn' ( in highp int PrimitiveID)
0:12 Construct uvec4 ( temp highp 4-component vector of uint) 0:12 Construct uvec4 ( temp mediump 4-component vector of uint)
0:12 'gl_SubgroupSize' ( in mediump uint SubgroupSize) 0:12 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
0:12 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) 0:12 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
0:12 Constant: 0:12 Constant:
@ -47,7 +47,7 @@ output primitive = points
0:12 Constant: 0:12 Constant:
0:12 0 (const uint) 0:12 0 (const uint)
0:12 'gl_PrimitiveIDIn' ( in highp int PrimitiveID) 0:12 'gl_PrimitiveIDIn' ( in highp int PrimitiveID)
0:12 Construct uvec4 ( temp highp 4-component vector of uint) 0:12 Construct uvec4 ( temp mediump 4-component vector of uint)
0:12 'gl_SubgroupSize' ( in mediump uint SubgroupSize) 0:12 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
0:12 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) 0:12 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
0:12 Constant: 0:12 Constant:

View File

@ -13,7 +13,7 @@ vertices = 1
0:11 Constant: 0:11 Constant:
0:11 0 (const uint) 0:11 0 (const uint)
0:11 'gl_PrimitiveID' ( in highp int PrimitiveID) 0:11 'gl_PrimitiveID' ( in highp int PrimitiveID)
0:11 Construct uvec4 ( temp highp 4-component vector of uint) 0:11 Construct uvec4 ( temp mediump 4-component vector of uint)
0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize) 0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) 0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
0:11 Constant: 0:11 Constant:
@ -41,7 +41,7 @@ vertices = 1
0:11 Constant: 0:11 Constant:
0:11 0 (const uint) 0:11 0 (const uint)
0:11 'gl_PrimitiveID' ( in highp int PrimitiveID) 0:11 'gl_PrimitiveID' ( in highp int PrimitiveID)
0:11 Construct uvec4 ( temp highp 4-component vector of uint) 0:11 Construct uvec4 ( temp mediump 4-component vector of uint)
0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize) 0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) 0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
0:11 Constant: 0:11 Constant:

View File

@ -15,7 +15,7 @@ triangle order = none
0:11 Constant: 0:11 Constant:
0:11 0 (const uint) 0:11 0 (const uint)
0:11 'gl_PrimitiveID' ( in highp int PrimitiveID) 0:11 'gl_PrimitiveID' ( in highp int PrimitiveID)
0:11 Construct uvec4 ( temp highp 4-component vector of uint) 0:11 Construct uvec4 ( temp mediump 4-component vector of uint)
0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize) 0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) 0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
0:11 Constant: 0:11 Constant:
@ -45,7 +45,7 @@ triangle order = ccw
0:11 Constant: 0:11 Constant:
0:11 0 (const uint) 0:11 0 (const uint)
0:11 'gl_PrimitiveID' ( in highp int PrimitiveID) 0:11 'gl_PrimitiveID' ( in highp int PrimitiveID)
0:11 Construct uvec4 ( temp highp 4-component vector of uint) 0:11 Construct uvec4 ( temp mediump 4-component vector of uint)
0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize) 0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) 0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
0:11 Constant: 0:11 Constant:

View File

@ -12,7 +12,7 @@ Requested GL_KHR_shader_subgroup_basic
0:10 Constant: 0:10 Constant:
0:10 0 (const uint) 0:10 0 (const uint)
0:10 'gl_VertexID' ( gl_VertexId highp int VertexId) 0:10 'gl_VertexID' ( gl_VertexId highp int VertexId)
0:10 Construct uvec4 ( temp highp 4-component vector of uint) 0:10 Construct uvec4 ( temp mediump 4-component vector of uint)
0:10 'gl_SubgroupSize' ( in mediump uint SubgroupSize) 0:10 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
0:10 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) 0:10 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
0:10 Constant: 0:10 Constant:
@ -41,7 +41,7 @@ Requested GL_KHR_shader_subgroup_basic
0:10 Constant: 0:10 Constant:
0:10 0 (const uint) 0:10 0 (const uint)
0:10 'gl_VertexID' ( gl_VertexId highp int VertexId) 0:10 'gl_VertexID' ( gl_VertexId highp int VertexId)
0:10 Construct uvec4 ( temp highp 4-component vector of uint) 0:10 Construct uvec4 ( temp mediump 4-component vector of uint)
0:10 'gl_SubgroupSize' ( in mediump uint SubgroupSize) 0:10 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
0:10 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID) 0:10 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
0:10 Constant: 0:10 Constant:

View File

@ -16,9 +16,9 @@ using depth_any
0:31 Constant: 0:31 Constant:
0:31 0.100000 0:31 0.100000
0:31 Constant: 0:31 Constant:
0:31 0.500000
0:31 Constant:
0:31 1 (const int) 0:31 1 (const int)
0:31 Constant:
0:31 0.500000
0:32 Sequence 0:32 Sequence
0:32 move second child to first child ( temp 4-component vector of int) 0:32 move second child to first child ( temp 4-component vector of int)
0:32 'txval11' ( temp 4-component vector of int) 0:32 'txval11' ( temp 4-component vector of int)
@ -29,9 +29,9 @@ using depth_any
0:32 Constant: 0:32 Constant:
0:32 0.200000 0:32 0.200000
0:32 Constant: 0:32 Constant:
0:32 0.500000
0:32 Constant:
0:32 1 (const int) 0:32 1 (const int)
0:32 Constant:
0:32 0.500000
0:33 Sequence 0:33 Sequence
0:33 move second child to first child ( temp 4-component vector of uint) 0:33 move second child to first child ( temp 4-component vector of uint)
0:33 'txval12' ( temp 4-component vector of uint) 0:33 'txval12' ( temp 4-component vector of uint)
@ -42,9 +42,9 @@ using depth_any
0:33 Constant: 0:33 Constant:
0:33 0.300000 0:33 0.300000
0:33 Constant: 0:33 Constant:
0:33 0.500000
0:33 Constant:
0:33 1 (const int) 0:33 1 (const int)
0:33 Constant:
0:33 0.500000
0:35 Sequence 0:35 Sequence
0:35 move second child to first child ( temp 4-component vector of float) 0:35 move second child to first child ( temp 4-component vector of float)
0:35 'txval20' ( temp 4-component vector of float) 0:35 'txval20' ( temp 4-component vector of float)
@ -56,10 +56,10 @@ using depth_any
0:35 0.100000 0:35 0.100000
0:35 0.200000 0:35 0.200000
0:35 Constant: 0:35 Constant:
0:35 0.500000
0:35 Constant:
0:35 1 (const int) 0:35 1 (const int)
0:35 0 (const int) 0:35 0 (const int)
0:35 Constant:
0:35 0.500000
0:36 Sequence 0:36 Sequence
0:36 move second child to first child ( temp 4-component vector of int) 0:36 move second child to first child ( temp 4-component vector of int)
0:36 'txval21' ( temp 4-component vector of int) 0:36 'txval21' ( temp 4-component vector of int)
@ -71,10 +71,10 @@ using depth_any
0:36 0.300000 0:36 0.300000
0:36 0.400000 0:36 0.400000
0:36 Constant: 0:36 Constant:
0:36 0.500000 0:36 1 (const int)
0:36 1 (const int)
0:36 Constant: 0:36 Constant:
0:36 1 (const int) 0:36 0.500000
0:36 1 (const int)
0:37 Sequence 0:37 Sequence
0:37 move second child to first child ( temp 4-component vector of uint) 0:37 move second child to first child ( temp 4-component vector of uint)
0:37 'txval22' ( temp 4-component vector of uint) 0:37 'txval22' ( temp 4-component vector of uint)
@ -86,10 +86,10 @@ using depth_any
0:37 0.500000 0:37 0.500000
0:37 0.600000 0:37 0.600000
0:37 Constant: 0:37 Constant:
0:37 0.500000
0:37 Constant:
0:37 1 (const int) 0:37 1 (const int)
0:37 -1 (const int) 0:37 -1 (const int)
0:37 Constant:
0:37 0.500000
0:39 Sequence 0:39 Sequence
0:39 move second child to first child ( temp 4-component vector of float) 0:39 move second child to first child ( temp 4-component vector of float)
0:39 'txval30' ( temp 4-component vector of float) 0:39 'txval30' ( temp 4-component vector of float)
@ -102,11 +102,11 @@ using depth_any
0:39 0.200000 0:39 0.200000
0:39 0.300000 0:39 0.300000
0:39 Constant: 0:39 Constant:
0:39 0.500000
0:39 Constant:
0:39 1 (const int) 0:39 1 (const int)
0:39 0 (const int) 0:39 0 (const int)
0:39 1 (const int) 0:39 1 (const int)
0:39 Constant:
0:39 0.500000
0:40 Sequence 0:40 Sequence
0:40 move second child to first child ( temp 4-component vector of int) 0:40 move second child to first child ( temp 4-component vector of int)
0:40 'txval31' ( temp 4-component vector of int) 0:40 'txval31' ( temp 4-component vector of int)
@ -119,11 +119,11 @@ using depth_any
0:40 0.500000 0:40 0.500000
0:40 0.600000 0:40 0.600000
0:40 Constant: 0:40 Constant:
0:40 0.500000 0:40 1 (const int)
0:40 1 (const int)
0:40 1 (const int)
0:40 Constant: 0:40 Constant:
0:40 1 (const int) 0:40 0.500000
0:40 1 (const int)
0:40 1 (const int)
0:41 Sequence 0:41 Sequence
0:41 move second child to first child ( temp 4-component vector of uint) 0:41 move second child to first child ( temp 4-component vector of uint)
0:41 'txval32' ( temp 4-component vector of uint) 0:41 'txval32' ( temp 4-component vector of uint)
@ -136,11 +136,11 @@ using depth_any
0:41 0.800000 0:41 0.800000
0:41 0.900000 0:41 0.900000
0:41 Constant: 0:41 Constant:
0:41 0.500000
0:41 Constant:
0:41 1 (const int) 0:41 1 (const int)
0:41 0 (const int) 0:41 0 (const int)
0:41 -1 (const int) 0:41 -1 (const int)
0:41 Constant:
0:41 0.500000
0:45 move second child to first child ( temp 4-component vector of float) 0:45 move second child to first child ( temp 4-component vector of float)
0:45 Color: direct index for structure ( temp 4-component vector of float) 0:45 Color: direct index for structure ( temp 4-component vector of float)
0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
@ -218,9 +218,9 @@ using depth_any
0:31 Constant: 0:31 Constant:
0:31 0.100000 0:31 0.100000
0:31 Constant: 0:31 Constant:
0:31 0.500000
0:31 Constant:
0:31 1 (const int) 0:31 1 (const int)
0:31 Constant:
0:31 0.500000
0:32 Sequence 0:32 Sequence
0:32 move second child to first child ( temp 4-component vector of int) 0:32 move second child to first child ( temp 4-component vector of int)
0:32 'txval11' ( temp 4-component vector of int) 0:32 'txval11' ( temp 4-component vector of int)
@ -231,9 +231,9 @@ using depth_any
0:32 Constant: 0:32 Constant:
0:32 0.200000 0:32 0.200000
0:32 Constant: 0:32 Constant:
0:32 0.500000
0:32 Constant:
0:32 1 (const int) 0:32 1 (const int)
0:32 Constant:
0:32 0.500000
0:33 Sequence 0:33 Sequence
0:33 move second child to first child ( temp 4-component vector of uint) 0:33 move second child to first child ( temp 4-component vector of uint)
0:33 'txval12' ( temp 4-component vector of uint) 0:33 'txval12' ( temp 4-component vector of uint)
@ -244,9 +244,9 @@ using depth_any
0:33 Constant: 0:33 Constant:
0:33 0.300000 0:33 0.300000
0:33 Constant: 0:33 Constant:
0:33 0.500000
0:33 Constant:
0:33 1 (const int) 0:33 1 (const int)
0:33 Constant:
0:33 0.500000
0:35 Sequence 0:35 Sequence
0:35 move second child to first child ( temp 4-component vector of float) 0:35 move second child to first child ( temp 4-component vector of float)
0:35 'txval20' ( temp 4-component vector of float) 0:35 'txval20' ( temp 4-component vector of float)
@ -258,10 +258,10 @@ using depth_any
0:35 0.100000 0:35 0.100000
0:35 0.200000 0:35 0.200000
0:35 Constant: 0:35 Constant:
0:35 0.500000
0:35 Constant:
0:35 1 (const int) 0:35 1 (const int)
0:35 0 (const int) 0:35 0 (const int)
0:35 Constant:
0:35 0.500000
0:36 Sequence 0:36 Sequence
0:36 move second child to first child ( temp 4-component vector of int) 0:36 move second child to first child ( temp 4-component vector of int)
0:36 'txval21' ( temp 4-component vector of int) 0:36 'txval21' ( temp 4-component vector of int)
@ -273,10 +273,10 @@ using depth_any
0:36 0.300000 0:36 0.300000
0:36 0.400000 0:36 0.400000
0:36 Constant: 0:36 Constant:
0:36 0.500000 0:36 1 (const int)
0:36 1 (const int)
0:36 Constant: 0:36 Constant:
0:36 1 (const int) 0:36 0.500000
0:36 1 (const int)
0:37 Sequence 0:37 Sequence
0:37 move second child to first child ( temp 4-component vector of uint) 0:37 move second child to first child ( temp 4-component vector of uint)
0:37 'txval22' ( temp 4-component vector of uint) 0:37 'txval22' ( temp 4-component vector of uint)
@ -288,10 +288,10 @@ using depth_any
0:37 0.500000 0:37 0.500000
0:37 0.600000 0:37 0.600000
0:37 Constant: 0:37 Constant:
0:37 0.500000
0:37 Constant:
0:37 1 (const int) 0:37 1 (const int)
0:37 -1 (const int) 0:37 -1 (const int)
0:37 Constant:
0:37 0.500000
0:39 Sequence 0:39 Sequence
0:39 move second child to first child ( temp 4-component vector of float) 0:39 move second child to first child ( temp 4-component vector of float)
0:39 'txval30' ( temp 4-component vector of float) 0:39 'txval30' ( temp 4-component vector of float)
@ -304,11 +304,11 @@ using depth_any
0:39 0.200000 0:39 0.200000
0:39 0.300000 0:39 0.300000
0:39 Constant: 0:39 Constant:
0:39 0.500000
0:39 Constant:
0:39 1 (const int) 0:39 1 (const int)
0:39 0 (const int) 0:39 0 (const int)
0:39 1 (const int) 0:39 1 (const int)
0:39 Constant:
0:39 0.500000
0:40 Sequence 0:40 Sequence
0:40 move second child to first child ( temp 4-component vector of int) 0:40 move second child to first child ( temp 4-component vector of int)
0:40 'txval31' ( temp 4-component vector of int) 0:40 'txval31' ( temp 4-component vector of int)
@ -321,11 +321,11 @@ using depth_any
0:40 0.500000 0:40 0.500000
0:40 0.600000 0:40 0.600000
0:40 Constant: 0:40 Constant:
0:40 0.500000 0:40 1 (const int)
0:40 1 (const int)
0:40 1 (const int)
0:40 Constant: 0:40 Constant:
0:40 1 (const int) 0:40 0.500000
0:40 1 (const int)
0:40 1 (const int)
0:41 Sequence 0:41 Sequence
0:41 move second child to first child ( temp 4-component vector of uint) 0:41 move second child to first child ( temp 4-component vector of uint)
0:41 'txval32' ( temp 4-component vector of uint) 0:41 'txval32' ( temp 4-component vector of uint)
@ -338,11 +338,11 @@ using depth_any
0:41 0.800000 0:41 0.800000
0:41 0.900000 0:41 0.900000
0:41 Constant: 0:41 Constant:
0:41 0.500000
0:41 Constant:
0:41 1 (const int) 0:41 1 (const int)
0:41 0 (const int) 0:41 0 (const int)
0:41 -1 (const int) 0:41 -1 (const int)
0:41 Constant:
0:41 0.500000
0:45 move second child to first child ( temp 4-component vector of float) 0:45 move second child to first child ( temp 4-component vector of float)
0:45 Color: direct index for structure ( temp 4-component vector of float) 0:45 Color: direct index for structure ( temp 4-component vector of float)
0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
@ -399,7 +399,6 @@ using depth_any
0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Depth' ( out float FragDepth)
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
Validation failed
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 161 // Id's are bound by 161
@ -489,12 +488,12 @@ Validation failed
20(g_sSamp): 19(ptr) Variable UniformConstant 20(g_sSamp): 19(ptr) Variable UniformConstant
22: TypeSampledImage 14 22: TypeSampledImage 14
24: 6(float) Constant 1036831949 24: 6(float) Constant 1036831949
25: 6(float) Constant 1056964608 25: TypeInt 32 1
26: TypeInt 32 1 26: 25(int) Constant 1
27: 26(int) Constant 1 27: 6(float) Constant 1056964608
29: TypeVector 26(int) 4 29: TypeVector 25(int) 4
30: TypePointer Function 29(ivec4) 30: TypePointer Function 29(ivec4)
32: TypeImage 26(int) 1D sampled format:Unknown 32: TypeImage 25(int) 1D sampled format:Unknown
33: TypePointer UniformConstant 32 33: TypePointer UniformConstant 32
34(g_tTex1di4): 33(ptr) Variable UniformConstant 34(g_tTex1di4): 33(ptr) Variable UniformConstant
37: TypeSampledImage 32 37: TypeSampledImage 32
@ -513,38 +512,38 @@ Validation failed
60: TypeSampledImage 55 60: TypeSampledImage 55
62: TypeVector 6(float) 2 62: TypeVector 6(float) 2
63: 62(fvec2) ConstantComposite 24 39 63: 62(fvec2) ConstantComposite 24 39
64: TypeVector 26(int) 2 64: TypeVector 25(int) 2
65: 26(int) Constant 0 65: 25(int) Constant 0
66: 64(ivec2) ConstantComposite 27 65 66: 64(ivec2) ConstantComposite 26 65
69: TypeImage 26(int) 2D sampled format:Unknown 69: TypeImage 25(int) 2D sampled format:Unknown
70: TypePointer UniformConstant 69 70: TypePointer UniformConstant 69
71(g_tTex2di4): 70(ptr) Variable UniformConstant 71(g_tTex2di4): 70(ptr) Variable UniformConstant
74: TypeSampledImage 69 74: TypeSampledImage 69
76: 6(float) Constant 1053609165 76: 6(float) Constant 1053609165
77: 62(fvec2) ConstantComposite 52 76 77: 62(fvec2) ConstantComposite 52 76
78: 64(ivec2) ConstantComposite 27 27 78: 64(ivec2) ConstantComposite 26 26
81: TypeImage 41(int) 2D sampled format:Unknown 81: TypeImage 41(int) 2D sampled format:Unknown
82: TypePointer UniformConstant 81 82: TypePointer UniformConstant 81
83(g_tTex2du4): 82(ptr) Variable UniformConstant 83(g_tTex2du4): 82(ptr) Variable UniformConstant
86: TypeSampledImage 81 86: TypeSampledImage 81
88: 6(float) Constant 1058642330 88: 6(float) Constant 1058642330
89: 62(fvec2) ConstantComposite 25 88 89: 62(fvec2) ConstantComposite 27 88
90: 26(int) Constant 4294967295 90: 25(int) Constant 4294967295
91: 64(ivec2) ConstantComposite 27 90 91: 64(ivec2) ConstantComposite 26 90
94: TypeImage 6(float) 3D sampled format:Unknown 94: TypeImage 6(float) 3D sampled format:Unknown
95: TypePointer UniformConstant 94 95: TypePointer UniformConstant 94
96(g_tTex3df4): 95(ptr) Variable UniformConstant 96(g_tTex3df4): 95(ptr) Variable UniformConstant
99: TypeSampledImage 94 99: TypeSampledImage 94
101: TypeVector 6(float) 3 101: TypeVector 6(float) 3
102: 101(fvec3) ConstantComposite 24 39 52 102: 101(fvec3) ConstantComposite 24 39 52
103: TypeVector 26(int) 3 103: TypeVector 25(int) 3
104: 103(ivec3) ConstantComposite 27 65 27 104: 103(ivec3) ConstantComposite 26 65 26
107: TypeImage 26(int) 3D sampled format:Unknown 107: TypeImage 25(int) 3D sampled format:Unknown
108: TypePointer UniformConstant 107 108: TypePointer UniformConstant 107
109(g_tTex3di4): 108(ptr) Variable UniformConstant 109(g_tTex3di4): 108(ptr) Variable UniformConstant
112: TypeSampledImage 107 112: TypeSampledImage 107
114: 101(fvec3) ConstantComposite 76 25 88 114: 101(fvec3) ConstantComposite 76 27 88
115: 103(ivec3) ConstantComposite 27 27 27 115: 103(ivec3) ConstantComposite 26 26 26
118: TypeImage 41(int) 3D sampled format:Unknown 118: TypeImage 41(int) 3D sampled format:Unknown
119: TypePointer UniformConstant 118 119: TypePointer UniformConstant 118
120(g_tTex3du4): 119(ptr) Variable UniformConstant 120(g_tTex3du4): 119(ptr) Variable UniformConstant
@ -553,7 +552,7 @@ Validation failed
126: 6(float) Constant 1061997773 126: 6(float) Constant 1061997773
127: 6(float) Constant 1063675494 127: 6(float) Constant 1063675494
128: 101(fvec3) ConstantComposite 125 126 127 128: 101(fvec3) ConstantComposite 125 126 127
129: 103(ivec3) ConstantComposite 27 65 90 129: 103(ivec3) ConstantComposite 26 65 90
131: TypePointer Function 8(PS_OUTPUT) 131: TypePointer Function 8(PS_OUTPUT)
133: 6(float) Constant 1065353216 133: 6(float) Constant 1065353216
134: 7(fvec4) ConstantComposite 133 133 133 133 134: 7(fvec4) ConstantComposite 133 133 133 133
@ -566,7 +565,7 @@ Validation failed
152: TypeImage 6(float) Cube sampled format:Unknown 152: TypeImage 6(float) Cube sampled format:Unknown
153: TypePointer UniformConstant 152 153: TypePointer UniformConstant 152
154(g_tTexcdf4): 153(ptr) Variable UniformConstant 154(g_tTexcdf4): 153(ptr) Variable UniformConstant
155: TypeImage 26(int) Cube sampled format:Unknown 155: TypeImage 25(int) Cube sampled format:Unknown
156: TypePointer UniformConstant 155 156: TypePointer UniformConstant 155
157(g_tTexcdi4): 156(ptr) Variable UniformConstant 157(g_tTexcdi4): 156(ptr) Variable UniformConstant
158: TypeImage 41(int) Cube sampled format:Unknown 158: TypeImage 41(int) Cube sampled format:Unknown
@ -580,7 +579,7 @@ Validation failed
145: 12(ptr) AccessChain 141(flattenTemp) 65 145: 12(ptr) AccessChain 141(flattenTemp) 65
146: 7(fvec4) Load 145 146: 7(fvec4) Load 145
Store 144(@entryPointOutput.Color) 146 Store 144(@entryPointOutput.Color) 146
149: 136(ptr) AccessChain 141(flattenTemp) 27 149: 136(ptr) AccessChain 141(flattenTemp) 26
150: 6(float) Load 149 150: 6(float) Load 149
Store 148(@entryPointOutput.Depth) 150 Store 148(@entryPointOutput.Depth) 150
Return Return
@ -600,51 +599,51 @@ Validation failed
17: 14 Load 16(g_tTex1df4) 17: 14 Load 16(g_tTex1df4)
21: 18 Load 20(g_sSamp) 21: 18 Load 20(g_sSamp)
23: 22 SampledImage 17 21 23: 22 SampledImage 17 21
28: 7(fvec4) ImageSampleImplicitLod 23 24 Bias ConstOffset 27 25 28: 7(fvec4) ImageSampleImplicitLod 23 24 Bias ConstOffset 27 26
Store 13(txval10) 28 Store 13(txval10) 28
35: 32 Load 34(g_tTex1di4) 35: 32 Load 34(g_tTex1di4)
36: 18 Load 20(g_sSamp) 36: 18 Load 20(g_sSamp)
38: 37 SampledImage 35 36 38: 37 SampledImage 35 36
40: 29(ivec4) ImageSampleImplicitLod 38 39 Bias ConstOffset 27 25 40: 29(ivec4) ImageSampleImplicitLod 38 39 Bias ConstOffset 27 26
Store 31(txval11) 40 Store 31(txval11) 40
48: 45 Load 47(g_tTex1du4) 48: 45 Load 47(g_tTex1du4)
49: 18 Load 20(g_sSamp) 49: 18 Load 20(g_sSamp)
51: 50 SampledImage 48 49 51: 50 SampledImage 48 49
53: 42(ivec4) ImageSampleImplicitLod 51 52 Bias ConstOffset 27 25 53: 42(ivec4) ImageSampleImplicitLod 51 52 Bias ConstOffset 27 26
Store 44(txval12) 53 Store 44(txval12) 53
58: 55 Load 57(g_tTex2df4) 58: 55 Load 57(g_tTex2df4)
59: 18 Load 20(g_sSamp) 59: 18 Load 20(g_sSamp)
61: 60 SampledImage 58 59 61: 60 SampledImage 58 59
67: 7(fvec4) ImageSampleImplicitLod 61 63 Bias ConstOffset 66 25 67: 7(fvec4) ImageSampleImplicitLod 61 63 Bias ConstOffset 27 66
Store 54(txval20) 67 Store 54(txval20) 67
72: 69 Load 71(g_tTex2di4) 72: 69 Load 71(g_tTex2di4)
73: 18 Load 20(g_sSamp) 73: 18 Load 20(g_sSamp)
75: 74 SampledImage 72 73 75: 74 SampledImage 72 73
79: 29(ivec4) ImageSampleImplicitLod 75 77 Bias ConstOffset 78 25 79: 29(ivec4) ImageSampleImplicitLod 75 77 Bias ConstOffset 27 78
Store 68(txval21) 79 Store 68(txval21) 79
84: 81 Load 83(g_tTex2du4) 84: 81 Load 83(g_tTex2du4)
85: 18 Load 20(g_sSamp) 85: 18 Load 20(g_sSamp)
87: 86 SampledImage 84 85 87: 86 SampledImage 84 85
92: 42(ivec4) ImageSampleImplicitLod 87 89 Bias ConstOffset 91 25 92: 42(ivec4) ImageSampleImplicitLod 87 89 Bias ConstOffset 27 91
Store 80(txval22) 92 Store 80(txval22) 92
97: 94 Load 96(g_tTex3df4) 97: 94 Load 96(g_tTex3df4)
98: 18 Load 20(g_sSamp) 98: 18 Load 20(g_sSamp)
100: 99 SampledImage 97 98 100: 99 SampledImage 97 98
105: 7(fvec4) ImageSampleImplicitLod 100 102 Bias ConstOffset 104 25 105: 7(fvec4) ImageSampleImplicitLod 100 102 Bias ConstOffset 27 104
Store 93(txval30) 105 Store 93(txval30) 105
110: 107 Load 109(g_tTex3di4) 110: 107 Load 109(g_tTex3di4)
111: 18 Load 20(g_sSamp) 111: 18 Load 20(g_sSamp)
113: 112 SampledImage 110 111 113: 112 SampledImage 110 111
116: 29(ivec4) ImageSampleImplicitLod 113 114 Bias ConstOffset 115 25 116: 29(ivec4) ImageSampleImplicitLod 113 114 Bias ConstOffset 27 115
Store 106(txval31) 116 Store 106(txval31) 116
121: 118 Load 120(g_tTex3du4) 121: 118 Load 120(g_tTex3du4)
122: 18 Load 20(g_sSamp) 122: 18 Load 20(g_sSamp)
124: 123 SampledImage 121 122 124: 123 SampledImage 121 122
130: 42(ivec4) ImageSampleImplicitLod 124 128 Bias ConstOffset 129 25 130: 42(ivec4) ImageSampleImplicitLod 124 128 Bias ConstOffset 27 129
Store 117(txval32) 130 Store 117(txval32) 130
135: 12(ptr) AccessChain 132(psout) 65 135: 12(ptr) AccessChain 132(psout) 65
Store 135 134 Store 135 134
137: 136(ptr) AccessChain 132(psout) 27 137: 136(ptr) AccessChain 132(psout) 26
Store 137 133 Store 137 133
138:8(PS_OUTPUT) Load 132(psout) 138:8(PS_OUTPUT) Load 132(psout)
ReturnValue 138 ReturnValue 138

View File

@ -17,9 +17,9 @@ using depth_any
0:23 0.100000 0:23 0.100000
0:23 0.200000 0:23 0.200000
0:23 Constant: 0:23 Constant:
0:23 0.500000
0:23 Constant:
0:23 0 (const int) 0:23 0 (const int)
0:23 Constant:
0:23 0.500000
0:24 Sequence 0:24 Sequence
0:24 move second child to first child ( temp 4-component vector of int) 0:24 move second child to first child ( temp 4-component vector of int)
0:24 'txval11' ( temp 4-component vector of int) 0:24 'txval11' ( temp 4-component vector of int)
@ -31,9 +31,9 @@ using depth_any
0:24 0.200000 0:24 0.200000
0:24 0.300000 0:24 0.300000
0:24 Constant: 0:24 Constant:
0:24 0.500000
0:24 Constant:
0:24 1 (const int) 0:24 1 (const int)
0:24 Constant:
0:24 0.500000
0:25 Sequence 0:25 Sequence
0:25 move second child to first child ( temp 4-component vector of uint) 0:25 move second child to first child ( temp 4-component vector of uint)
0:25 'txval12' ( temp 4-component vector of uint) 0:25 'txval12' ( temp 4-component vector of uint)
@ -45,9 +45,9 @@ using depth_any
0:25 0.300000 0:25 0.300000
0:25 0.400000 0:25 0.400000
0:25 Constant: 0:25 Constant:
0:25 0.500000
0:25 Constant:
0:25 2 (const int) 0:25 2 (const int)
0:25 Constant:
0:25 0.500000
0:27 Sequence 0:27 Sequence
0:27 move second child to first child ( temp 4-component vector of float) 0:27 move second child to first child ( temp 4-component vector of float)
0:27 'txval20' ( temp 4-component vector of float) 0:27 'txval20' ( temp 4-component vector of float)
@ -60,10 +60,10 @@ using depth_any
0:27 0.200000 0:27 0.200000
0:27 0.300000 0:27 0.300000
0:27 Constant: 0:27 Constant:
0:27 0.500000 0:27 0 (const int)
0:27 0 (const int)
0:27 Constant: 0:27 Constant:
0:27 0 (const int) 0:27 0.500000
0:27 0 (const int)
0:28 Sequence 0:28 Sequence
0:28 move second child to first child ( temp 4-component vector of int) 0:28 move second child to first child ( temp 4-component vector of int)
0:28 'txval21' ( temp 4-component vector of int) 0:28 'txval21' ( temp 4-component vector of int)
@ -76,10 +76,10 @@ using depth_any
0:28 0.400000 0:28 0.400000
0:28 0.500000 0:28 0.500000
0:28 Constant: 0:28 Constant:
0:28 0.500000 0:28 0 (const int)
0:28 0 (const int)
0:28 Constant: 0:28 Constant:
0:28 0 (const int) 0:28 0.500000
0:28 0 (const int)
0:29 Sequence 0:29 Sequence
0:29 move second child to first child ( temp 4-component vector of uint) 0:29 move second child to first child ( temp 4-component vector of uint)
0:29 'txval22' ( temp 4-component vector of uint) 0:29 'txval22' ( temp 4-component vector of uint)
@ -92,10 +92,10 @@ using depth_any
0:29 0.600000 0:29 0.600000
0:29 0.700000 0:29 0.700000
0:29 Constant: 0:29 Constant:
0:29 0.500000
0:29 Constant:
0:29 0 (const int) 0:29 0 (const int)
0:29 1 (const int) 0:29 1 (const int)
0:29 Constant:
0:29 0.500000
0:33 move second child to first child ( temp 4-component vector of float) 0:33 move second child to first child ( temp 4-component vector of float)
0:33 Color: direct index for structure ( temp 4-component vector of float) 0:33 Color: direct index for structure ( temp 4-component vector of float)
0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
@ -168,9 +168,9 @@ using depth_any
0:23 0.100000 0:23 0.100000
0:23 0.200000 0:23 0.200000
0:23 Constant: 0:23 Constant:
0:23 0.500000
0:23 Constant:
0:23 0 (const int) 0:23 0 (const int)
0:23 Constant:
0:23 0.500000
0:24 Sequence 0:24 Sequence
0:24 move second child to first child ( temp 4-component vector of int) 0:24 move second child to first child ( temp 4-component vector of int)
0:24 'txval11' ( temp 4-component vector of int) 0:24 'txval11' ( temp 4-component vector of int)
@ -182,9 +182,9 @@ using depth_any
0:24 0.200000 0:24 0.200000
0:24 0.300000 0:24 0.300000
0:24 Constant: 0:24 Constant:
0:24 0.500000
0:24 Constant:
0:24 1 (const int) 0:24 1 (const int)
0:24 Constant:
0:24 0.500000
0:25 Sequence 0:25 Sequence
0:25 move second child to first child ( temp 4-component vector of uint) 0:25 move second child to first child ( temp 4-component vector of uint)
0:25 'txval12' ( temp 4-component vector of uint) 0:25 'txval12' ( temp 4-component vector of uint)
@ -196,9 +196,9 @@ using depth_any
0:25 0.300000 0:25 0.300000
0:25 0.400000 0:25 0.400000
0:25 Constant: 0:25 Constant:
0:25 0.500000
0:25 Constant:
0:25 2 (const int) 0:25 2 (const int)
0:25 Constant:
0:25 0.500000
0:27 Sequence 0:27 Sequence
0:27 move second child to first child ( temp 4-component vector of float) 0:27 move second child to first child ( temp 4-component vector of float)
0:27 'txval20' ( temp 4-component vector of float) 0:27 'txval20' ( temp 4-component vector of float)
@ -211,10 +211,10 @@ using depth_any
0:27 0.200000 0:27 0.200000
0:27 0.300000 0:27 0.300000
0:27 Constant: 0:27 Constant:
0:27 0.500000 0:27 0 (const int)
0:27 0 (const int)
0:27 Constant: 0:27 Constant:
0:27 0 (const int) 0:27 0.500000
0:27 0 (const int)
0:28 Sequence 0:28 Sequence
0:28 move second child to first child ( temp 4-component vector of int) 0:28 move second child to first child ( temp 4-component vector of int)
0:28 'txval21' ( temp 4-component vector of int) 0:28 'txval21' ( temp 4-component vector of int)
@ -227,10 +227,10 @@ using depth_any
0:28 0.400000 0:28 0.400000
0:28 0.500000 0:28 0.500000
0:28 Constant: 0:28 Constant:
0:28 0.500000 0:28 0 (const int)
0:28 0 (const int)
0:28 Constant: 0:28 Constant:
0:28 0 (const int) 0:28 0.500000
0:28 0 (const int)
0:29 Sequence 0:29 Sequence
0:29 move second child to first child ( temp 4-component vector of uint) 0:29 move second child to first child ( temp 4-component vector of uint)
0:29 'txval22' ( temp 4-component vector of uint) 0:29 'txval22' ( temp 4-component vector of uint)
@ -243,10 +243,10 @@ using depth_any
0:29 0.600000 0:29 0.600000
0:29 0.700000 0:29 0.700000
0:29 Constant: 0:29 Constant:
0:29 0.500000
0:29 Constant:
0:29 0 (const int) 0:29 0 (const int)
0:29 1 (const int) 0:29 1 (const int)
0:29 Constant:
0:29 0.500000
0:33 move second child to first child ( temp 4-component vector of float) 0:33 move second child to first child ( temp 4-component vector of float)
0:33 Color: direct index for structure ( temp 4-component vector of float) 0:33 Color: direct index for structure ( temp 4-component vector of float)
0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
@ -297,7 +297,6 @@ using depth_any
0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Depth' ( out float FragDepth)
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
Validation failed
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 118 // Id's are bound by 118
@ -369,18 +368,18 @@ Validation failed
25: 6(float) Constant 1036831949 25: 6(float) Constant 1036831949
26: 6(float) Constant 1045220557 26: 6(float) Constant 1045220557
27: 24(fvec2) ConstantComposite 25 26 27: 24(fvec2) ConstantComposite 25 26
28: 6(float) Constant 1056964608 28: TypeInt 32 1
29: TypeInt 32 1 29: 28(int) Constant 0
30: 29(int) Constant 0 30: 6(float) Constant 1056964608
32: TypeVector 29(int) 4 32: TypeVector 28(int) 4
33: TypePointer Function 32(ivec4) 33: TypePointer Function 32(ivec4)
35: TypeImage 29(int) 1D array sampled format:Unknown 35: TypeImage 28(int) 1D array sampled format:Unknown
36: TypePointer UniformConstant 35 36: TypePointer UniformConstant 35
37(g_tTex1di4): 36(ptr) Variable UniformConstant 37(g_tTex1di4): 36(ptr) Variable UniformConstant
40: TypeSampledImage 35 40: TypeSampledImage 35
42: 6(float) Constant 1050253722 42: 6(float) Constant 1050253722
43: 24(fvec2) ConstantComposite 26 42 43: 24(fvec2) ConstantComposite 26 42
44: 29(int) Constant 1 44: 28(int) Constant 1
46: TypeInt 32 0 46: TypeInt 32 0
47: TypeVector 46(int) 4 47: TypeVector 46(int) 4
48: TypePointer Function 47(ivec4) 48: TypePointer Function 47(ivec4)
@ -390,28 +389,28 @@ Validation failed
55: TypeSampledImage 50 55: TypeSampledImage 50
57: 6(float) Constant 1053609165 57: 6(float) Constant 1053609165
58: 24(fvec2) ConstantComposite 42 57 58: 24(fvec2) ConstantComposite 42 57
59: 29(int) Constant 2 59: 28(int) Constant 2
62: TypeImage 6(float) 2D array sampled format:Unknown 62: TypeImage 6(float) 2D array sampled format:Unknown
63: TypePointer UniformConstant 62 63: TypePointer UniformConstant 62
64(g_tTex2df4): 63(ptr) Variable UniformConstant 64(g_tTex2df4): 63(ptr) Variable UniformConstant
67: TypeSampledImage 62 67: TypeSampledImage 62
69: TypeVector 6(float) 3 69: TypeVector 6(float) 3
70: 69(fvec3) ConstantComposite 25 26 42 70: 69(fvec3) ConstantComposite 25 26 42
71: TypeVector 29(int) 2 71: TypeVector 28(int) 2
72: 71(ivec2) ConstantComposite 30 30 72: 71(ivec2) ConstantComposite 29 29
75: TypeImage 29(int) 2D array sampled format:Unknown 75: TypeImage 28(int) 2D array sampled format:Unknown
76: TypePointer UniformConstant 75 76: TypePointer UniformConstant 75
77(g_tTex2di4): 76(ptr) Variable UniformConstant 77(g_tTex2di4): 76(ptr) Variable UniformConstant
80: TypeSampledImage 75 80: TypeSampledImage 75
82: 69(fvec3) ConstantComposite 42 57 28 82: 69(fvec3) ConstantComposite 42 57 30
85: TypeImage 46(int) 2D array sampled format:Unknown 85: TypeImage 46(int) 2D array sampled format:Unknown
86: TypePointer UniformConstant 85 86: TypePointer UniformConstant 85
87(g_tTex2du4): 86(ptr) Variable UniformConstant 87(g_tTex2du4): 86(ptr) Variable UniformConstant
90: TypeSampledImage 85 90: TypeSampledImage 85
92: 6(float) Constant 1058642330 92: 6(float) Constant 1058642330
93: 6(float) Constant 1060320051 93: 6(float) Constant 1060320051
94: 69(fvec3) ConstantComposite 28 92 93 94: 69(fvec3) ConstantComposite 30 92 93
95: 71(ivec2) ConstantComposite 30 44 95: 71(ivec2) ConstantComposite 29 44
97: TypePointer Function 8(PS_OUTPUT) 97: TypePointer Function 8(PS_OUTPUT)
99: 6(float) Constant 1065353216 99: 6(float) Constant 1065353216
100: 7(fvec4) ConstantComposite 99 99 99 99 100: 7(fvec4) ConstantComposite 99 99 99 99
@ -426,7 +425,7 @@ Validation failed
107(flattenTemp): 97(ptr) Variable Function 107(flattenTemp): 97(ptr) Variable Function
108:8(PS_OUTPUT) FunctionCall 10(@main() 108:8(PS_OUTPUT) FunctionCall 10(@main()
Store 107(flattenTemp) 108 Store 107(flattenTemp) 108
111: 12(ptr) AccessChain 107(flattenTemp) 30 111: 12(ptr) AccessChain 107(flattenTemp) 29
112: 7(fvec4) Load 111 112: 7(fvec4) Load 111
Store 110(@entryPointOutput.Color) 112 Store 110(@entryPointOutput.Color) 112
115: 102(ptr) AccessChain 107(flattenTemp) 44 115: 102(ptr) AccessChain 107(flattenTemp) 44
@ -446,34 +445,34 @@ Validation failed
17: 14 Load 16(g_tTex1df4) 17: 14 Load 16(g_tTex1df4)
21: 18 Load 20(g_sSamp) 21: 18 Load 20(g_sSamp)
23: 22 SampledImage 17 21 23: 22 SampledImage 17 21
31: 7(fvec4) ImageSampleImplicitLod 23 27 Bias ConstOffset 30 28 31: 7(fvec4) ImageSampleImplicitLod 23 27 Bias ConstOffset 30 29
Store 13(txval10) 31 Store 13(txval10) 31
38: 35 Load 37(g_tTex1di4) 38: 35 Load 37(g_tTex1di4)
39: 18 Load 20(g_sSamp) 39: 18 Load 20(g_sSamp)
41: 40 SampledImage 38 39 41: 40 SampledImage 38 39
45: 32(ivec4) ImageSampleImplicitLod 41 43 Bias ConstOffset 44 28 45: 32(ivec4) ImageSampleImplicitLod 41 43 Bias ConstOffset 30 44
Store 34(txval11) 45 Store 34(txval11) 45
53: 50 Load 52(g_tTex1du4) 53: 50 Load 52(g_tTex1du4)
54: 18 Load 20(g_sSamp) 54: 18 Load 20(g_sSamp)
56: 55 SampledImage 53 54 56: 55 SampledImage 53 54
60: 47(ivec4) ImageSampleImplicitLod 56 58 Bias ConstOffset 59 28 60: 47(ivec4) ImageSampleImplicitLod 56 58 Bias ConstOffset 30 59
Store 49(txval12) 60 Store 49(txval12) 60
65: 62 Load 64(g_tTex2df4) 65: 62 Load 64(g_tTex2df4)
66: 18 Load 20(g_sSamp) 66: 18 Load 20(g_sSamp)
68: 67 SampledImage 65 66 68: 67 SampledImage 65 66
73: 7(fvec4) ImageSampleImplicitLod 68 70 Bias ConstOffset 72 28 73: 7(fvec4) ImageSampleImplicitLod 68 70 Bias ConstOffset 30 72
Store 61(txval20) 73 Store 61(txval20) 73
78: 75 Load 77(g_tTex2di4) 78: 75 Load 77(g_tTex2di4)
79: 18 Load 20(g_sSamp) 79: 18 Load 20(g_sSamp)
81: 80 SampledImage 78 79 81: 80 SampledImage 78 79
83: 32(ivec4) ImageSampleImplicitLod 81 82 Bias ConstOffset 72 28 83: 32(ivec4) ImageSampleImplicitLod 81 82 Bias ConstOffset 30 72
Store 74(txval21) 83 Store 74(txval21) 83
88: 85 Load 87(g_tTex2du4) 88: 85 Load 87(g_tTex2du4)
89: 18 Load 20(g_sSamp) 89: 18 Load 20(g_sSamp)
91: 90 SampledImage 88 89 91: 90 SampledImage 88 89
96: 47(ivec4) ImageSampleImplicitLod 91 94 Bias ConstOffset 95 28 96: 47(ivec4) ImageSampleImplicitLod 91 94 Bias ConstOffset 30 95
Store 84(txval22) 96 Store 84(txval22) 96
101: 12(ptr) AccessChain 98(psout) 30 101: 12(ptr) AccessChain 98(psout) 29
Store 101 100 Store 101 100
103: 102(ptr) AccessChain 98(psout) 44 103: 102(ptr) AccessChain 98(psout) 44
Store 103 99 Store 103 99

View File

@ -0,0 +1,140 @@
hlsl.structbuffer.rwbyte2.comp
Shader version: 500
local_size = (1, 1, 1)
0:? Sequence
0:6 Function Definition: @main( ( temp void)
0:6 Function Parameters:
0:? Sequence
0:7 Sequence
0:7 move second child to first child ( temp uint)
0:7 'f' ( temp uint)
0:7 indirect index (layout( row_major std430) buffer uint)
0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:7 'g_bbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:7 Constant:
0:7 0 (const uint)
0:7 right-shift ( temp int)
0:7 Constant:
0:7 16 (const int)
0:7 Constant:
0:7 2 (const int)
0:8 move second child to first child ( temp uint)
0:8 direct index (layout( row_major std430) buffer uint)
0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:8 'g_sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:8 Constant:
0:8 0 (const uint)
0:8 Constant:
0:8 0 (const int)
0:8 'f' ( temp uint)
0:6 Function Definition: main( ( temp void)
0:6 Function Parameters:
0:? Sequence
0:6 Function Call: @main( ( temp void)
0:? Linker Objects
0:? 'g_sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:? 'g_bbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
Linked compute stage:
Shader version: 500
local_size = (1, 1, 1)
0:? Sequence
0:6 Function Definition: @main( ( temp void)
0:6 Function Parameters:
0:? Sequence
0:7 Sequence
0:7 move second child to first child ( temp uint)
0:7 'f' ( temp uint)
0:7 indirect index (layout( row_major std430) buffer uint)
0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:7 'g_bbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:7 Constant:
0:7 0 (const uint)
0:7 right-shift ( temp int)
0:7 Constant:
0:7 16 (const int)
0:7 Constant:
0:7 2 (const int)
0:8 move second child to first child ( temp uint)
0:8 direct index (layout( row_major std430) buffer uint)
0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:8 'g_sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:8 Constant:
0:8 0 (const uint)
0:8 Constant:
0:8 0 (const int)
0:8 'f' ( temp uint)
0:6 Function Definition: main( ( temp void)
0:6 Function Parameters:
0:? Sequence
0:6 Function Call: @main( ( temp void)
0:? Linker Objects
0:? 'g_sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:? 'g_bbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 30
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main"
ExecutionMode 4 LocalSize 1 1 1
Source HLSL 500
Name 4 "main"
Name 6 "@main("
Name 10 "f"
Name 12 "g_bbuf"
MemberName 12(g_bbuf) 0 "@data"
Name 14 "g_bbuf"
Name 24 "g_sbuf"
MemberName 24(g_sbuf) 0 "@data"
Name 26 "g_sbuf"
Decorate 11 ArrayStride 4
MemberDecorate 12(g_bbuf) 0 Offset 0
Decorate 12(g_bbuf) BufferBlock
Decorate 14(g_bbuf) DescriptorSet 0
Decorate 14(g_bbuf) Binding 1
Decorate 23 ArrayStride 4
MemberDecorate 24(g_sbuf) 0 Offset 0
Decorate 24(g_sbuf) BufferBlock
Decorate 26(g_sbuf) DescriptorSet 0
Decorate 26(g_sbuf) Binding 0
2: TypeVoid
3: TypeFunction 2
8: TypeInt 32 0
9: TypePointer Function 8(int)
11: TypeRuntimeArray 8(int)
12(g_bbuf): TypeStruct 11
13: TypePointer Uniform 12(g_bbuf)
14(g_bbuf): 13(ptr) Variable Uniform
15: TypeInt 32 1
16: 15(int) Constant 0
17: 15(int) Constant 16
18: 15(int) Constant 2
20: TypePointer Uniform 8(int)
23: TypeRuntimeArray 8(int)
24(g_sbuf): TypeStruct 23
25: TypePointer Uniform 24(g_sbuf)
26(g_sbuf): 25(ptr) Variable Uniform
4(main): 2 Function None 3
5: Label
29: 2 FunctionCall 6(@main()
Return
FunctionEnd
6(@main(): 2 Function None 3
7: Label
10(f): 9(ptr) Variable Function
19: 15(int) ShiftRightArithmetic 17 18
21: 20(ptr) AccessChain 14(g_bbuf) 16 19
22: 8(int) Load 21
Store 10(f) 22
27: 8(int) Load 10(f)
28: 20(ptr) AccessChain 26(g_sbuf) 16 16
Store 28 27
Return
FunctionEnd

View File

@ -0,0 +1,268 @@
hlsl.w-recip.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:5 Function Definition: @main(vf4; ( temp 4-component vector of float)
0:5 Function Parameters:
0:5 'vpos' ( in 4-component vector of float)
0:? Sequence
0:6 Sequence
0:6 move second child to first child ( temp 4-component vector of float)
0:6 'vpos_t' ( temp 4-component vector of float)
0:6 Construct vec4 ( temp 4-component vector of float)
0:6 vector swizzle ( temp 3-component vector of float)
0:6 'vpos' ( in 4-component vector of float)
0:6 Sequence
0:6 Constant:
0:6 0 (const int)
0:6 Constant:
0:6 1 (const int)
0:6 Constant:
0:6 2 (const int)
0:6 divide ( temp float)
0:6 Constant:
0:6 1.000000
0:6 direct index ( temp float)
0:6 'vpos' ( in 4-component vector of float)
0:6 Constant:
0:6 3 (const int)
0:7 Test condition and select ( temp void)
0:7 Condition
0:7 Compare Less Than ( temp bool)
0:7 direct index ( temp float)
0:7 'vpos_t' ( temp 4-component vector of float)
0:7 Constant:
0:7 0 (const int)
0:7 Constant:
0:7 400.000000
0:7 true case
0:8 Branch: Return with expression
0:8 AmbientColor: direct index for structure ( uniform 4-component vector of float)
0:8 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform 4-component vector of float AmbientColor2})
0:8 Constant:
0:8 0 (const uint)
0:7 false case
0:10 Branch: Return with expression
0:10 AmbientColor2: direct index for structure ( uniform 4-component vector of float)
0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform 4-component vector of float AmbientColor2})
0:10 Constant:
0:10 1 (const uint)
0:5 Function Definition: main( ( temp void)
0:5 Function Parameters:
0:? Sequence
0:5 move second child to first child ( temp 4-component vector of float)
0:? 'vpos' ( temp 4-component vector of float)
0:5 Construct vec4 ( temp 4-component vector of float)
0:5 vector swizzle ( temp 3-component vector of float)
0:? 'vpos' ( in 4-component vector of float FragCoord)
0:5 Sequence
0:5 Constant:
0:5 0 (const int)
0:5 Constant:
0:5 1 (const int)
0:5 Constant:
0:5 2 (const int)
0:5 divide ( temp float)
0:5 Constant:
0:5 1.000000
0:5 direct index ( temp float)
0:? 'vpos' ( in 4-component vector of float FragCoord)
0:5 Constant:
0:5 3 (const int)
0:5 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:5 Function Call: @main(vf4; ( temp 4-component vector of float)
0:? 'vpos' ( temp 4-component vector of float)
0:? Linker Objects
0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform 4-component vector of float AmbientColor2})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'vpos' ( in 4-component vector of float FragCoord)
Linked fragment stage:
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:5 Function Definition: @main(vf4; ( temp 4-component vector of float)
0:5 Function Parameters:
0:5 'vpos' ( in 4-component vector of float)
0:? Sequence
0:6 Sequence
0:6 move second child to first child ( temp 4-component vector of float)
0:6 'vpos_t' ( temp 4-component vector of float)
0:6 Construct vec4 ( temp 4-component vector of float)
0:6 vector swizzle ( temp 3-component vector of float)
0:6 'vpos' ( in 4-component vector of float)
0:6 Sequence
0:6 Constant:
0:6 0 (const int)
0:6 Constant:
0:6 1 (const int)
0:6 Constant:
0:6 2 (const int)
0:6 divide ( temp float)
0:6 Constant:
0:6 1.000000
0:6 direct index ( temp float)
0:6 'vpos' ( in 4-component vector of float)
0:6 Constant:
0:6 3 (const int)
0:7 Test condition and select ( temp void)
0:7 Condition
0:7 Compare Less Than ( temp bool)
0:7 direct index ( temp float)
0:7 'vpos_t' ( temp 4-component vector of float)
0:7 Constant:
0:7 0 (const int)
0:7 Constant:
0:7 400.000000
0:7 true case
0:8 Branch: Return with expression
0:8 AmbientColor: direct index for structure ( uniform 4-component vector of float)
0:8 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform 4-component vector of float AmbientColor2})
0:8 Constant:
0:8 0 (const uint)
0:7 false case
0:10 Branch: Return with expression
0:10 AmbientColor2: direct index for structure ( uniform 4-component vector of float)
0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform 4-component vector of float AmbientColor2})
0:10 Constant:
0:10 1 (const uint)
0:5 Function Definition: main( ( temp void)
0:5 Function Parameters:
0:? Sequence
0:5 move second child to first child ( temp 4-component vector of float)
0:? 'vpos' ( temp 4-component vector of float)
0:5 Construct vec4 ( temp 4-component vector of float)
0:5 vector swizzle ( temp 3-component vector of float)
0:? 'vpos' ( in 4-component vector of float FragCoord)
0:5 Sequence
0:5 Constant:
0:5 0 (const int)
0:5 Constant:
0:5 1 (const int)
0:5 Constant:
0:5 2 (const int)
0:5 divide ( temp float)
0:5 Constant:
0:5 1.000000
0:5 direct index ( temp float)
0:? 'vpos' ( in 4-component vector of float FragCoord)
0:5 Constant:
0:5 3 (const int)
0:5 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:5 Function Call: @main(vf4; ( temp 4-component vector of float)
0:? 'vpos' ( temp 4-component vector of float)
0:? Linker Objects
0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform 4-component vector of float AmbientColor2})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'vpos' ( in 4-component vector of float FragCoord)
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 69
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 53 65
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "main"
Name 11 "@main(vf4;"
Name 10 "vpos"
Name 13 "vpos_t"
Name 36 "$Global"
MemberName 36($Global) 0 "AmbientColor"
MemberName 36($Global) 1 "AmbientColor2"
Name 38 ""
Name 51 "vpos"
Name 53 "vpos"
Name 65 "@entryPointOutput"
Name 66 "param"
MemberDecorate 36($Global) 0 Offset 0
MemberDecorate 36($Global) 1 Offset 16
Decorate 36($Global) Block
Decorate 38 DescriptorSet 0
Decorate 38 Binding 0
Decorate 53(vpos) BuiltIn FragCoord
Decorate 65(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
9: TypeFunction 7(fvec4) 8(ptr)
14: TypeVector 6(float) 3
17: 6(float) Constant 1065353216
18: TypeInt 32 0
19: 18(int) Constant 3
20: TypePointer Function 6(float)
28: 18(int) Constant 0
31: 6(float) Constant 1137180672
32: TypeBool
36($Global): TypeStruct 7(fvec4) 7(fvec4)
37: TypePointer Uniform 36($Global)
38: 37(ptr) Variable Uniform
39: TypeInt 32 1
40: 39(int) Constant 0
41: TypePointer Uniform 7(fvec4)
46: 39(int) Constant 1
52: TypePointer Input 7(fvec4)
53(vpos): 52(ptr) Variable Input
56: TypePointer Input 6(float)
64: TypePointer Output 7(fvec4)
65(@entryPointOutput): 64(ptr) Variable Output
4(main): 2 Function None 3
5: Label
51(vpos): 8(ptr) Variable Function
66(param): 8(ptr) Variable Function
54: 7(fvec4) Load 53(vpos)
55: 14(fvec3) VectorShuffle 54 54 0 1 2
57: 56(ptr) AccessChain 53(vpos) 19
58: 6(float) Load 57
59: 6(float) FDiv 17 58
60: 6(float) CompositeExtract 55 0
61: 6(float) CompositeExtract 55 1
62: 6(float) CompositeExtract 55 2
63: 7(fvec4) CompositeConstruct 60 61 62 59
Store 51(vpos) 63
67: 7(fvec4) Load 51(vpos)
Store 66(param) 67
68: 7(fvec4) FunctionCall 11(@main(vf4;) 66(param)
Store 65(@entryPointOutput) 68
Return
FunctionEnd
11(@main(vf4;): 7(fvec4) Function None 9
10(vpos): 8(ptr) FunctionParameter
12: Label
13(vpos_t): 8(ptr) Variable Function
15: 7(fvec4) Load 10(vpos)
16: 14(fvec3) VectorShuffle 15 15 0 1 2
21: 20(ptr) AccessChain 10(vpos) 19
22: 6(float) Load 21
23: 6(float) FDiv 17 22
24: 6(float) CompositeExtract 16 0
25: 6(float) CompositeExtract 16 1
26: 6(float) CompositeExtract 16 2
27: 7(fvec4) CompositeConstruct 24 25 26 23
Store 13(vpos_t) 27
29: 20(ptr) AccessChain 13(vpos_t) 28
30: 6(float) Load 29
33: 32(bool) FOrdLessThan 30 31
SelectionMerge 35 None
BranchConditional 33 34 45
34: Label
42: 41(ptr) AccessChain 38 40
43: 7(fvec4) Load 42
ReturnValue 43
45: Label
47: 41(ptr) AccessChain 38 46
48: 7(fvec4) Load 47
ReturnValue 48
35: Label
Unreachable
FunctionEnd

View File

@ -0,0 +1,413 @@
iomap.blockOutVariableIn.2.vert
Shader version: 440
0:? Sequence
0:9 Function Definition: main( ( global void)
0:9 Function Parameters:
0:11 Sequence
0:11 move second child to first child ( temp 4-component vector of float)
0:11 a1: direct index for structure ( out 4-component vector of float)
0:11 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2})
0:11 Constant:
0:11 0 (const uint)
0:11 Constant:
0:11 1.000000
0:11 1.000000
0:11 1.000000
0:11 1.000000
0:12 move second child to first child ( temp 2-component vector of float)
0:12 a2: direct index for structure ( out 2-component vector of float)
0:12 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2})
0:12 Constant:
0:12 1 (const uint)
0:12 Constant:
0:12 0.500000
0:12 0.500000
0:13 move second child to first child ( temp 4-component vector of float)
0:13 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:13 'anon@1' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:13 Constant:
0:13 0 (const uint)
0:13 Constant:
0:13 1.000000
0:13 1.000000
0:13 1.000000
0:13 1.000000
0:? Linker Objects
0:? 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2})
0:? 'anon@1' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
iomap.blockOutVariableIn.geom
Shader version: 440
invocations = -1
max_vertices = 3
input primitive = triangles
output primitive = triangle_strip
0:? Sequence
0:12 Function Definition: main( ( global void)
0:12 Function Parameters:
0:14 Sequence
0:14 move second child to first child ( temp 4-component vector of float)
0:14 'a1' (layout( location=0 stream=0) out 4-component vector of float)
0:14 direct index (layout( location=0) temp 4-component vector of float)
0:14 'in_a1' (layout( location=0) in 3-element array of 4-component vector of float)
0:14 Constant:
0:14 0 (const int)
0:15 move second child to first child ( temp 2-component vector of float)
0:15 'a2' (layout( location=1 stream=0) out 2-component vector of float)
0:15 direct index (layout( location=1) temp 2-component vector of float)
0:15 'in_a2' (layout( location=1) in 3-element array of 2-component vector of float)
0:15 Constant:
0:15 0 (const int)
0:16 move second child to first child ( temp 4-component vector of float)
0:16 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position)
0:16 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:16 Constant:
0:16 0 (const uint)
0:16 Constant:
0:16 1.000000
0:16 1.000000
0:16 1.000000
0:16 1.000000
0:17 EmitVertex ( global void)
0:19 move second child to first child ( temp 4-component vector of float)
0:19 'a1' (layout( location=0 stream=0) out 4-component vector of float)
0:19 direct index (layout( location=0) temp 4-component vector of float)
0:19 'in_a1' (layout( location=0) in 3-element array of 4-component vector of float)
0:19 Constant:
0:19 1 (const int)
0:20 move second child to first child ( temp 2-component vector of float)
0:20 'a2' (layout( location=1 stream=0) out 2-component vector of float)
0:20 direct index (layout( location=1) temp 2-component vector of float)
0:20 'in_a2' (layout( location=1) in 3-element array of 2-component vector of float)
0:20 Constant:
0:20 1 (const int)
0:21 move second child to first child ( temp 4-component vector of float)
0:21 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position)
0:21 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:21 Constant:
0:21 0 (const uint)
0:21 Constant:
0:21 1.000000
0:21 1.000000
0:21 1.000000
0:21 1.000000
0:22 EmitVertex ( global void)
0:24 move second child to first child ( temp 4-component vector of float)
0:24 'a1' (layout( location=0 stream=0) out 4-component vector of float)
0:24 direct index (layout( location=0) temp 4-component vector of float)
0:24 'in_a1' (layout( location=0) in 3-element array of 4-component vector of float)
0:24 Constant:
0:24 2 (const int)
0:25 move second child to first child ( temp 2-component vector of float)
0:25 'a2' (layout( location=1 stream=0) out 2-component vector of float)
0:25 direct index (layout( location=1) temp 2-component vector of float)
0:25 'in_a2' (layout( location=1) in 3-element array of 2-component vector of float)
0:25 Constant:
0:25 2 (const int)
0:26 move second child to first child ( temp 4-component vector of float)
0:26 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position)
0:26 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:26 Constant:
0:26 0 (const uint)
0:26 Constant:
0:26 1.000000
0:26 1.000000
0:26 1.000000
0:26 1.000000
0:27 EmitVertex ( global void)
0:? Linker Objects
0:? 'in_a1' (layout( location=0) in 3-element array of 4-component vector of float)
0:? 'in_a2' (layout( location=1) in 3-element array of 2-component vector of float)
0:? 'a1' (layout( location=0 stream=0) out 4-component vector of float)
0:? 'a2' (layout( location=1 stream=0) out 2-component vector of float)
0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 1-element array of float ClipDistance gl_ClipDistance})
Linked vertex stage:
Linked geometry stage:
Shader version: 440
0:? Sequence
0:9 Function Definition: main( ( global void)
0:9 Function Parameters:
0:11 Sequence
0:11 move second child to first child ( temp 4-component vector of float)
0:11 a1: direct index for structure ( out 4-component vector of float)
0:11 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2})
0:11 Constant:
0:11 0 (const uint)
0:11 Constant:
0:11 1.000000
0:11 1.000000
0:11 1.000000
0:11 1.000000
0:12 move second child to first child ( temp 2-component vector of float)
0:12 a2: direct index for structure ( out 2-component vector of float)
0:12 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2})
0:12 Constant:
0:12 1 (const uint)
0:12 Constant:
0:12 0.500000
0:12 0.500000
0:13 move second child to first child ( temp 4-component vector of float)
0:13 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:13 'anon@1' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:13 Constant:
0:13 0 (const uint)
0:13 Constant:
0:13 1.000000
0:13 1.000000
0:13 1.000000
0:13 1.000000
0:? Linker Objects
0:? 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2})
0:? 'anon@1' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
Shader version: 440
invocations = 1
max_vertices = 3
input primitive = triangles
output primitive = triangle_strip
0:? Sequence
0:12 Function Definition: main( ( global void)
0:12 Function Parameters:
0:14 Sequence
0:14 move second child to first child ( temp 4-component vector of float)
0:14 'a1' (layout( location=0 stream=0) out 4-component vector of float)
0:14 direct index (layout( location=0) temp 4-component vector of float)
0:14 'in_a1' (layout( location=0) in 3-element array of 4-component vector of float)
0:14 Constant:
0:14 0 (const int)
0:15 move second child to first child ( temp 2-component vector of float)
0:15 'a2' (layout( location=1 stream=0) out 2-component vector of float)
0:15 direct index (layout( location=1) temp 2-component vector of float)
0:15 'in_a2' (layout( location=1) in 3-element array of 2-component vector of float)
0:15 Constant:
0:15 0 (const int)
0:16 move second child to first child ( temp 4-component vector of float)
0:16 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position)
0:16 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 1-element array of float ClipDistance gl_ClipDistance})
0:16 Constant:
0:16 0 (const uint)
0:16 Constant:
0:16 1.000000
0:16 1.000000
0:16 1.000000
0:16 1.000000
0:17 EmitVertex ( global void)
0:19 move second child to first child ( temp 4-component vector of float)
0:19 'a1' (layout( location=0 stream=0) out 4-component vector of float)
0:19 direct index (layout( location=0) temp 4-component vector of float)
0:19 'in_a1' (layout( location=0) in 3-element array of 4-component vector of float)
0:19 Constant:
0:19 1 (const int)
0:20 move second child to first child ( temp 2-component vector of float)
0:20 'a2' (layout( location=1 stream=0) out 2-component vector of float)
0:20 direct index (layout( location=1) temp 2-component vector of float)
0:20 'in_a2' (layout( location=1) in 3-element array of 2-component vector of float)
0:20 Constant:
0:20 1 (const int)
0:21 move second child to first child ( temp 4-component vector of float)
0:21 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position)
0:21 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 1-element array of float ClipDistance gl_ClipDistance})
0:21 Constant:
0:21 0 (const uint)
0:21 Constant:
0:21 1.000000
0:21 1.000000
0:21 1.000000
0:21 1.000000
0:22 EmitVertex ( global void)
0:24 move second child to first child ( temp 4-component vector of float)
0:24 'a1' (layout( location=0 stream=0) out 4-component vector of float)
0:24 direct index (layout( location=0) temp 4-component vector of float)
0:24 'in_a1' (layout( location=0) in 3-element array of 4-component vector of float)
0:24 Constant:
0:24 2 (const int)
0:25 move second child to first child ( temp 2-component vector of float)
0:25 'a2' (layout( location=1 stream=0) out 2-component vector of float)
0:25 direct index (layout( location=1) temp 2-component vector of float)
0:25 'in_a2' (layout( location=1) in 3-element array of 2-component vector of float)
0:25 Constant:
0:25 2 (const int)
0:26 move second child to first child ( temp 4-component vector of float)
0:26 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position)
0:26 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 1-element array of float ClipDistance gl_ClipDistance})
0:26 Constant:
0:26 0 (const uint)
0:26 Constant:
0:26 1.000000
0:26 1.000000
0:26 1.000000
0:26 1.000000
0:27 EmitVertex ( global void)
0:? Linker Objects
0:? 'in_a1' (layout( location=0) in 3-element array of 4-component vector of float)
0:? 'in_a2' (layout( location=1) in 3-element array of 2-component vector of float)
0:? 'a1' (layout( location=0 stream=0) out 4-component vector of float)
0:? 'a2' (layout( location=1 stream=0) out 2-component vector of float)
0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 1-element array of float ClipDistance gl_ClipDistance})
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 33
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 11 28 31 32
Source GLSL 440
Name 4 "main"
Name 9 "Block"
MemberName 9(Block) 0 "a1"
MemberName 9(Block) 1 "a2"
Name 11 ""
Name 26 "gl_PerVertex"
MemberName 26(gl_PerVertex) 0 "gl_Position"
MemberName 26(gl_PerVertex) 1 "gl_PointSize"
MemberName 26(gl_PerVertex) 2 "gl_ClipDistance"
Name 28 ""
Name 31 "gl_VertexID"
Name 32 "gl_InstanceID"
Decorate 9(Block) Block
Decorate 11 Location 0
MemberDecorate 26(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 26(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 26(gl_PerVertex) 2 BuiltIn ClipDistance
Decorate 26(gl_PerVertex) Block
Decorate 31(gl_VertexID) BuiltIn VertexId
Decorate 32(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeVector 6(float) 2
9(Block): TypeStruct 7(fvec4) 8(fvec2)
10: TypePointer Output 9(Block)
11: 10(ptr) Variable Output
12: TypeInt 32 1
13: 12(int) Constant 0
14: 6(float) Constant 1065353216
15: 7(fvec4) ConstantComposite 14 14 14 14
16: TypePointer Output 7(fvec4)
18: 12(int) Constant 1
19: 6(float) Constant 1056964608
20: 8(fvec2) ConstantComposite 19 19
21: TypePointer Output 8(fvec2)
23: TypeInt 32 0
24: 23(int) Constant 1
25: TypeArray 6(float) 24
26(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 25
27: TypePointer Output 26(gl_PerVertex)
28: 27(ptr) Variable Output
30: TypePointer Input 12(int)
31(gl_VertexID): 30(ptr) Variable Input
32(gl_InstanceID): 30(ptr) Variable Input
4(main): 2 Function None 3
5: Label
17: 16(ptr) AccessChain 11 13
Store 17 15
22: 21(ptr) AccessChain 11 18
Store 22 20
29: 16(ptr) AccessChain 28 13
Store 29 15
Return
FunctionEnd
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 49
Capability Geometry
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Geometry 4 "main" 9 14 22 25 33
ExecutionMode 4 Triangles
ExecutionMode 4 Invocations 1
ExecutionMode 4 OutputTriangleStrip
ExecutionMode 4 OutputVertices 3
Source GLSL 440
Name 4 "main"
Name 9 "a1"
Name 14 "in_a1"
Name 22 "a2"
Name 25 "in_a2"
Name 31 "gl_PerVertex"
MemberName 31(gl_PerVertex) 0 "gl_Position"
MemberName 31(gl_PerVertex) 1 "gl_PointSize"
MemberName 31(gl_PerVertex) 2 "gl_ClipDistance"
Name 33 ""
Decorate 9(a1) Location 0
Decorate 14(in_a1) Location 0
Decorate 22(a2) Location 1
Decorate 25(in_a2) Location 1
MemberDecorate 31(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 31(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 31(gl_PerVertex) 2 BuiltIn ClipDistance
Decorate 31(gl_PerVertex) Block
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Output 7(fvec4)
9(a1): 8(ptr) Variable Output
10: TypeInt 32 0
11: 10(int) Constant 3
12: TypeArray 7(fvec4) 11
13: TypePointer Input 12
14(in_a1): 13(ptr) Variable Input
15: TypeInt 32 1
16: 15(int) Constant 0
17: TypePointer Input 7(fvec4)
20: TypeVector 6(float) 2
21: TypePointer Output 20(fvec2)
22(a2): 21(ptr) Variable Output
23: TypeArray 20(fvec2) 11
24: TypePointer Input 23
25(in_a2): 24(ptr) Variable Input
26: TypePointer Input 20(fvec2)
29: 10(int) Constant 1
30: TypeArray 6(float) 29
31(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 30
32: TypePointer Output 31(gl_PerVertex)
33: 32(ptr) Variable Output
34: 6(float) Constant 1065353216
35: 7(fvec4) ConstantComposite 34 34 34 34
37: 15(int) Constant 1
43: 15(int) Constant 2
4(main): 2 Function None 3
5: Label
18: 17(ptr) AccessChain 14(in_a1) 16
19: 7(fvec4) Load 18
Store 9(a1) 19
27: 26(ptr) AccessChain 25(in_a2) 16
28: 20(fvec2) Load 27
Store 22(a2) 28
36: 8(ptr) AccessChain 33 16
Store 36 35
EmitVertex
38: 17(ptr) AccessChain 14(in_a1) 37
39: 7(fvec4) Load 38
Store 9(a1) 39
40: 26(ptr) AccessChain 25(in_a2) 37
41: 20(fvec2) Load 40
Store 22(a2) 41
42: 8(ptr) AccessChain 33 16
Store 42 35
EmitVertex
44: 17(ptr) AccessChain 14(in_a1) 43
45: 7(fvec4) Load 44
Store 9(a1) 45
46: 26(ptr) AccessChain 25(in_a2) 43
47: 20(fvec2) Load 46
Store 22(a2) 47
48: 8(ptr) AccessChain 33 16
Store 48 35
EmitVertex
Return
FunctionEnd

View File

@ -0,0 +1,234 @@
iomap.blockOutVariableIn.vert
Shader version: 440
0:? Sequence
0:9 Function Definition: main( ( global void)
0:9 Function Parameters:
0:11 Sequence
0:11 move second child to first child ( temp 4-component vector of float)
0:11 a1: direct index for structure ( out 4-component vector of float)
0:11 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2})
0:11 Constant:
0:11 0 (const uint)
0:11 Constant:
0:11 1.000000
0:11 1.000000
0:11 1.000000
0:11 1.000000
0:12 move second child to first child ( temp 2-component vector of float)
0:12 a2: direct index for structure ( out 2-component vector of float)
0:12 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2})
0:12 Constant:
0:12 1 (const uint)
0:12 Constant:
0:12 0.500000
0:12 0.500000
0:13 move second child to first child ( temp 4-component vector of float)
0:13 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:13 'anon@1' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:13 Constant:
0:13 0 (const uint)
0:13 Constant:
0:13 1.000000
0:13 1.000000
0:13 1.000000
0:13 1.000000
0:? Linker Objects
0:? 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2})
0:? 'anon@1' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
iomap.blockOutVariableIn.frag
Shader version: 440
0:? Sequence
0:8 Function Definition: main( ( global void)
0:8 Function Parameters:
0:10 Sequence
0:10 move second child to first child ( temp 4-component vector of float)
0:10 'color' (layout( location=0) out 4-component vector of float)
0:10 Construct vec4 ( temp 4-component vector of float)
0:10 vector swizzle ( temp 2-component vector of float)
0:10 'a1' (layout( location=0) smooth in 4-component vector of float)
0:10 Sequence
0:10 Constant:
0:10 0 (const int)
0:10 Constant:
0:10 1 (const int)
0:10 'a2' (layout( location=1) smooth in 2-component vector of float)
0:? Linker Objects
0:? 'a1' (layout( location=0) smooth in 4-component vector of float)
0:? 'a2' (layout( location=1) smooth in 2-component vector of float)
0:? 'color' (layout( location=0) out 4-component vector of float)
Linked vertex stage:
Linked fragment stage:
Shader version: 440
0:? Sequence
0:9 Function Definition: main( ( global void)
0:9 Function Parameters:
0:11 Sequence
0:11 move second child to first child ( temp 4-component vector of float)
0:11 a1: direct index for structure ( out 4-component vector of float)
0:11 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2})
0:11 Constant:
0:11 0 (const uint)
0:11 Constant:
0:11 1.000000
0:11 1.000000
0:11 1.000000
0:11 1.000000
0:12 move second child to first child ( temp 2-component vector of float)
0:12 a2: direct index for structure ( out 2-component vector of float)
0:12 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2})
0:12 Constant:
0:12 1 (const uint)
0:12 Constant:
0:12 0.500000
0:12 0.500000
0:13 move second child to first child ( temp 4-component vector of float)
0:13 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:13 'anon@1' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:13 Constant:
0:13 0 (const uint)
0:13 Constant:
0:13 1.000000
0:13 1.000000
0:13 1.000000
0:13 1.000000
0:? Linker Objects
0:? 'anon@0' (layout( location=0) out block{ out 4-component vector of float a1, out 2-component vector of float a2})
0:? 'anon@1' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
Shader version: 440
0:? Sequence
0:8 Function Definition: main( ( global void)
0:8 Function Parameters:
0:10 Sequence
0:10 move second child to first child ( temp 4-component vector of float)
0:10 'color' (layout( location=0) out 4-component vector of float)
0:10 Construct vec4 ( temp 4-component vector of float)
0:10 vector swizzle ( temp 2-component vector of float)
0:10 'a1' (layout( location=0) smooth in 4-component vector of float)
0:10 Sequence
0:10 Constant:
0:10 0 (const int)
0:10 Constant:
0:10 1 (const int)
0:10 'a2' (layout( location=1) smooth in 2-component vector of float)
0:? Linker Objects
0:? 'a1' (layout( location=0) smooth in 4-component vector of float)
0:? 'a2' (layout( location=1) smooth in 2-component vector of float)
0:? 'color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 33
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 11 28 31 32
Source GLSL 440
Name 4 "main"
Name 9 "Block"
MemberName 9(Block) 0 "a1"
MemberName 9(Block) 1 "a2"
Name 11 ""
Name 26 "gl_PerVertex"
MemberName 26(gl_PerVertex) 0 "gl_Position"
MemberName 26(gl_PerVertex) 1 "gl_PointSize"
MemberName 26(gl_PerVertex) 2 "gl_ClipDistance"
Name 28 ""
Name 31 "gl_VertexID"
Name 32 "gl_InstanceID"
Decorate 9(Block) Block
Decorate 11 Location 0
MemberDecorate 26(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 26(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 26(gl_PerVertex) 2 BuiltIn ClipDistance
Decorate 26(gl_PerVertex) Block
Decorate 31(gl_VertexID) BuiltIn VertexId
Decorate 32(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeVector 6(float) 2
9(Block): TypeStruct 7(fvec4) 8(fvec2)
10: TypePointer Output 9(Block)
11: 10(ptr) Variable Output
12: TypeInt 32 1
13: 12(int) Constant 0
14: 6(float) Constant 1065353216
15: 7(fvec4) ConstantComposite 14 14 14 14
16: TypePointer Output 7(fvec4)
18: 12(int) Constant 1
19: 6(float) Constant 1056964608
20: 8(fvec2) ConstantComposite 19 19
21: TypePointer Output 8(fvec2)
23: TypeInt 32 0
24: 23(int) Constant 1
25: TypeArray 6(float) 24
26(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 25
27: TypePointer Output 26(gl_PerVertex)
28: 27(ptr) Variable Output
30: TypePointer Input 12(int)
31(gl_VertexID): 30(ptr) Variable Input
32(gl_InstanceID): 30(ptr) Variable Input
4(main): 2 Function None 3
5: Label
17: 16(ptr) AccessChain 11 13
Store 17 15
22: 21(ptr) AccessChain 11 18
Store 22 20
29: 16(ptr) AccessChain 28 13
Store 29 15
Return
FunctionEnd
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 23
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 9 11 16
ExecutionMode 4 OriginLowerLeft
Source GLSL 440
Name 4 "main"
Name 9 "color"
Name 11 "a1"
Name 16 "a2"
Decorate 9(color) Location 0
Decorate 11(a1) Location 0
Decorate 16(a2) Location 1
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Output 7(fvec4)
9(color): 8(ptr) Variable Output
10: TypePointer Input 7(fvec4)
11(a1): 10(ptr) Variable Input
12: TypeVector 6(float) 2
15: TypePointer Input 12(fvec2)
16(a2): 15(ptr) Variable Input
4(main): 2 Function None 3
5: Label
13: 7(fvec4) Load 11(a1)
14: 12(fvec2) VectorShuffle 13 13 0 1
17: 12(fvec2) Load 16(a2)
18: 6(float) CompositeExtract 14 0
19: 6(float) CompositeExtract 14 1
20: 6(float) CompositeExtract 17 0
21: 6(float) CompositeExtract 17 1
22: 7(fvec4) CompositeConstruct 18 19 20 21
Store 9(color) 22
Return
FunctionEnd

View File

@ -0,0 +1,276 @@
iomap.variableOutBlockIn.2.vert
Shader version: 440
0:? Sequence
0:6 Function Definition: main( ( global void)
0:6 Function Parameters:
0:8 Sequence
0:8 move second child to first child ( temp 4-component vector of float)
0:8 'a1' (layout( location=0) smooth out 4-component vector of float)
0:8 Constant:
0:8 1.000000
0:8 1.000000
0:8 1.000000
0:8 1.000000
0:9 move second child to first child ( temp 2-component vector of float)
0:9 'a2' (layout( location=1) smooth out 2-component vector of float)
0:9 Constant:
0:9 0.500000
0:9 0.500000
0:10 move second child to first child ( temp 4-component vector of float)
0:10 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:10 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:10 Constant:
0:10 0 (const uint)
0:10 Constant:
0:10 1.000000
0:10 1.000000
0:10 1.000000
0:10 1.000000
0:? Linker Objects
0:? 'a1' (layout( location=0) smooth out 4-component vector of float)
0:? 'a2' (layout( location=1) smooth out 2-component vector of float)
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
iomap.variableOutBlockIn.geom
Shader version: 440
invocations = -1
max_vertices = 3
input primitive = triangles
output primitive = triangle_strip
0:? Sequence
0:14 Function Definition: main( ( global void)
0:14 Function Parameters:
0:16 Sequence
0:16 move second child to first child ( temp 4-component vector of float)
0:16 'a1' (layout( location=0 stream=0) out 4-component vector of float)
0:16 Constant:
0:16 1.000000
0:16 1.000000
0:16 1.000000
0:16 1.000000
0:17 move second child to first child ( temp 2-component vector of float)
0:17 'a2' (layout( location=1 stream=0) out 2-component vector of float)
0:17 Constant:
0:17 0.500000
0:17 0.500000
0:18 move second child to first child ( temp 4-component vector of float)
0:18 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position)
0:18 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:18 Constant:
0:18 0 (const uint)
0:18 Constant:
0:18 1.000000
0:18 1.000000
0:18 1.000000
0:18 1.000000
0:? Linker Objects
0:? 'gin' (layout( location=0) in 3-element array of block{ in 4-component vector of float a1, in 2-component vector of float a2})
0:? 'a1' (layout( location=0 stream=0) out 4-component vector of float)
0:? 'a2' (layout( location=1 stream=0) out 2-component vector of float)
0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 1-element array of float ClipDistance gl_ClipDistance})
Linked vertex stage:
Linked geometry stage:
Shader version: 440
0:? Sequence
0:6 Function Definition: main( ( global void)
0:6 Function Parameters:
0:8 Sequence
0:8 move second child to first child ( temp 4-component vector of float)
0:8 'a1' (layout( location=0) smooth out 4-component vector of float)
0:8 Constant:
0:8 1.000000
0:8 1.000000
0:8 1.000000
0:8 1.000000
0:9 move second child to first child ( temp 2-component vector of float)
0:9 'a2' (layout( location=1) smooth out 2-component vector of float)
0:9 Constant:
0:9 0.500000
0:9 0.500000
0:10 move second child to first child ( temp 4-component vector of float)
0:10 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:10 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:10 Constant:
0:10 0 (const uint)
0:10 Constant:
0:10 1.000000
0:10 1.000000
0:10 1.000000
0:10 1.000000
0:? Linker Objects
0:? 'a1' (layout( location=0) smooth out 4-component vector of float)
0:? 'a2' (layout( location=1) smooth out 2-component vector of float)
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
Shader version: 440
invocations = 1
max_vertices = 3
input primitive = triangles
output primitive = triangle_strip
0:? Sequence
0:14 Function Definition: main( ( global void)
0:14 Function Parameters:
0:16 Sequence
0:16 move second child to first child ( temp 4-component vector of float)
0:16 'a1' (layout( location=0 stream=0) out 4-component vector of float)
0:16 Constant:
0:16 1.000000
0:16 1.000000
0:16 1.000000
0:16 1.000000
0:17 move second child to first child ( temp 2-component vector of float)
0:17 'a2' (layout( location=1 stream=0) out 2-component vector of float)
0:17 Constant:
0:17 0.500000
0:17 0.500000
0:18 move second child to first child ( temp 4-component vector of float)
0:18 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position)
0:18 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 1-element array of float ClipDistance gl_ClipDistance})
0:18 Constant:
0:18 0 (const uint)
0:18 Constant:
0:18 1.000000
0:18 1.000000
0:18 1.000000
0:18 1.000000
0:? Linker Objects
0:? 'gin' (layout( location=0) in 3-element array of block{ in 4-component vector of float a1, in 2-component vector of float a2})
0:? 'a1' (layout( location=0 stream=0) out 4-component vector of float)
0:? 'a2' (layout( location=1 stream=0) out 2-component vector of float)
0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 1-element array of float ClipDistance gl_ClipDistance})
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 29
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 9 14 22 27 28
Source GLSL 440
Name 4 "main"
Name 9 "a1"
Name 14 "a2"
Name 20 "gl_PerVertex"
MemberName 20(gl_PerVertex) 0 "gl_Position"
MemberName 20(gl_PerVertex) 1 "gl_PointSize"
MemberName 20(gl_PerVertex) 2 "gl_ClipDistance"
Name 22 ""
Name 27 "gl_VertexID"
Name 28 "gl_InstanceID"
Decorate 9(a1) Location 0
Decorate 14(a2) Location 1
MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance
Decorate 20(gl_PerVertex) Block
Decorate 27(gl_VertexID) BuiltIn VertexId
Decorate 28(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Output 7(fvec4)
9(a1): 8(ptr) Variable Output
10: 6(float) Constant 1065353216
11: 7(fvec4) ConstantComposite 10 10 10 10
12: TypeVector 6(float) 2
13: TypePointer Output 12(fvec2)
14(a2): 13(ptr) Variable Output
15: 6(float) Constant 1056964608
16: 12(fvec2) ConstantComposite 15 15
17: TypeInt 32 0
18: 17(int) Constant 1
19: TypeArray 6(float) 18
20(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 19
21: TypePointer Output 20(gl_PerVertex)
22: 21(ptr) Variable Output
23: TypeInt 32 1
24: 23(int) Constant 0
26: TypePointer Input 23(int)
27(gl_VertexID): 26(ptr) Variable Input
28(gl_InstanceID): 26(ptr) Variable Input
4(main): 2 Function None 3
5: Label
Store 9(a1) 11
Store 14(a2) 16
25: 8(ptr) AccessChain 22 24
Store 25 11
Return
FunctionEnd
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 31
Capability Geometry
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Geometry 4 "main" 9 14 22 30
ExecutionMode 4 Triangles
ExecutionMode 4 Invocations 1
ExecutionMode 4 OutputTriangleStrip
ExecutionMode 4 OutputVertices 3
Source GLSL 440
Name 4 "main"
Name 9 "a1"
Name 14 "a2"
Name 20 "gl_PerVertex"
MemberName 20(gl_PerVertex) 0 "gl_Position"
MemberName 20(gl_PerVertex) 1 "gl_PointSize"
MemberName 20(gl_PerVertex) 2 "gl_ClipDistance"
Name 22 ""
Name 26 "Inputs"
MemberName 26(Inputs) 0 "a1"
MemberName 26(Inputs) 1 "a2"
Name 30 "gin"
Decorate 9(a1) Location 0
Decorate 14(a2) Location 1
MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance
Decorate 20(gl_PerVertex) Block
Decorate 26(Inputs) Block
Decorate 30(gin) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Output 7(fvec4)
9(a1): 8(ptr) Variable Output
10: 6(float) Constant 1065353216
11: 7(fvec4) ConstantComposite 10 10 10 10
12: TypeVector 6(float) 2
13: TypePointer Output 12(fvec2)
14(a2): 13(ptr) Variable Output
15: 6(float) Constant 1056964608
16: 12(fvec2) ConstantComposite 15 15
17: TypeInt 32 0
18: 17(int) Constant 1
19: TypeArray 6(float) 18
20(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 19
21: TypePointer Output 20(gl_PerVertex)
22: 21(ptr) Variable Output
23: TypeInt 32 1
24: 23(int) Constant 0
26(Inputs): TypeStruct 7(fvec4) 12(fvec2)
27: 17(int) Constant 3
28: TypeArray 26(Inputs) 27
29: TypePointer Input 28
30(gin): 29(ptr) Variable Input
4(main): 2 Function None 3
5: Label
Store 9(a1) 11
Store 14(a2) 16
25: 8(ptr) AccessChain 22 24
Store 25 11
Return
FunctionEnd

View File

@ -0,0 +1,236 @@
iomap.variableOutBlockIn.vert
Shader version: 440
0:? Sequence
0:6 Function Definition: main( ( global void)
0:6 Function Parameters:
0:8 Sequence
0:8 move second child to first child ( temp 4-component vector of float)
0:8 'a1' (layout( location=0) smooth out 4-component vector of float)
0:8 Constant:
0:8 1.000000
0:8 1.000000
0:8 1.000000
0:8 1.000000
0:9 move second child to first child ( temp 2-component vector of float)
0:9 'a2' (layout( location=1) smooth out 2-component vector of float)
0:9 Constant:
0:9 0.500000
0:9 0.500000
0:10 move second child to first child ( temp 4-component vector of float)
0:10 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:10 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:10 Constant:
0:10 0 (const uint)
0:10 Constant:
0:10 1.000000
0:10 1.000000
0:10 1.000000
0:10 1.000000
0:? Linker Objects
0:? 'a1' (layout( location=0) smooth out 4-component vector of float)
0:? 'a2' (layout( location=1) smooth out 2-component vector of float)
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
iomap.variableOutBlockIn.frag
Shader version: 440
0:? Sequence
0:10 Function Definition: main( ( global void)
0:10 Function Parameters:
0:12 Sequence
0:12 move second child to first child ( temp 4-component vector of float)
0:12 'color' (layout( location=0) out 4-component vector of float)
0:12 Construct vec4 ( temp 4-component vector of float)
0:12 vector swizzle ( temp 2-component vector of float)
0:12 a1: direct index for structure ( in 4-component vector of float)
0:12 'anon@0' (layout( location=0) in block{ in 4-component vector of float a1, in 2-component vector of float a2})
0:12 Constant:
0:12 0 (const uint)
0:12 Sequence
0:12 Constant:
0:12 0 (const int)
0:12 Constant:
0:12 1 (const int)
0:12 a2: direct index for structure ( in 2-component vector of float)
0:12 'anon@0' (layout( location=0) in block{ in 4-component vector of float a1, in 2-component vector of float a2})
0:12 Constant:
0:12 1 (const uint)
0:? Linker Objects
0:? 'anon@0' (layout( location=0) in block{ in 4-component vector of float a1, in 2-component vector of float a2})
0:? 'color' (layout( location=0) out 4-component vector of float)
Linked vertex stage:
Linked fragment stage:
Shader version: 440
0:? Sequence
0:6 Function Definition: main( ( global void)
0:6 Function Parameters:
0:8 Sequence
0:8 move second child to first child ( temp 4-component vector of float)
0:8 'a1' (layout( location=0) smooth out 4-component vector of float)
0:8 Constant:
0:8 1.000000
0:8 1.000000
0:8 1.000000
0:8 1.000000
0:9 move second child to first child ( temp 2-component vector of float)
0:9 'a2' (layout( location=1) smooth out 2-component vector of float)
0:9 Constant:
0:9 0.500000
0:9 0.500000
0:10 move second child to first child ( temp 4-component vector of float)
0:10 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:10 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:10 Constant:
0:10 0 (const uint)
0:10 Constant:
0:10 1.000000
0:10 1.000000
0:10 1.000000
0:10 1.000000
0:? Linker Objects
0:? 'a1' (layout( location=0) smooth out 4-component vector of float)
0:? 'a2' (layout( location=1) smooth out 2-component vector of float)
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
Shader version: 440
0:? Sequence
0:10 Function Definition: main( ( global void)
0:10 Function Parameters:
0:12 Sequence
0:12 move second child to first child ( temp 4-component vector of float)
0:12 'color' (layout( location=0) out 4-component vector of float)
0:12 Construct vec4 ( temp 4-component vector of float)
0:12 vector swizzle ( temp 2-component vector of float)
0:12 a1: direct index for structure ( in 4-component vector of float)
0:12 'anon@0' (layout( location=0) in block{ in 4-component vector of float a1, in 2-component vector of float a2})
0:12 Constant:
0:12 0 (const uint)
0:12 Sequence
0:12 Constant:
0:12 0 (const int)
0:12 Constant:
0:12 1 (const int)
0:12 a2: direct index for structure ( in 2-component vector of float)
0:12 'anon@0' (layout( location=0) in block{ in 4-component vector of float a1, in 2-component vector of float a2})
0:12 Constant:
0:12 1 (const uint)
0:? Linker Objects
0:? 'anon@0' (layout( location=0) in block{ in 4-component vector of float a1, in 2-component vector of float a2})
0:? 'color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 29
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 9 14 22 27 28
Source GLSL 440
Name 4 "main"
Name 9 "a1"
Name 14 "a2"
Name 20 "gl_PerVertex"
MemberName 20(gl_PerVertex) 0 "gl_Position"
MemberName 20(gl_PerVertex) 1 "gl_PointSize"
MemberName 20(gl_PerVertex) 2 "gl_ClipDistance"
Name 22 ""
Name 27 "gl_VertexID"
Name 28 "gl_InstanceID"
Decorate 9(a1) Location 0
Decorate 14(a2) Location 1
MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance
Decorate 20(gl_PerVertex) Block
Decorate 27(gl_VertexID) BuiltIn VertexId
Decorate 28(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Output 7(fvec4)
9(a1): 8(ptr) Variable Output
10: 6(float) Constant 1065353216
11: 7(fvec4) ConstantComposite 10 10 10 10
12: TypeVector 6(float) 2
13: TypePointer Output 12(fvec2)
14(a2): 13(ptr) Variable Output
15: 6(float) Constant 1056964608
16: 12(fvec2) ConstantComposite 15 15
17: TypeInt 32 0
18: 17(int) Constant 1
19: TypeArray 6(float) 18
20(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 19
21: TypePointer Output 20(gl_PerVertex)
22: 21(ptr) Variable Output
23: TypeInt 32 1
24: 23(int) Constant 0
26: TypePointer Input 23(int)
27(gl_VertexID): 26(ptr) Variable Input
28(gl_InstanceID): 26(ptr) Variable Input
4(main): 2 Function None 3
5: Label
Store 9(a1) 11
Store 14(a2) 16
25: 8(ptr) AccessChain 22 24
Store 25 11
Return
FunctionEnd
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 29
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 9 13
ExecutionMode 4 OriginLowerLeft
Source GLSL 440
Name 4 "main"
Name 9 "color"
Name 11 "Inputs"
MemberName 11(Inputs) 0 "a1"
MemberName 11(Inputs) 1 "a2"
Name 13 ""
Decorate 9(color) Location 0
Decorate 11(Inputs) Block
Decorate 13 Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Output 7(fvec4)
9(color): 8(ptr) Variable Output
10: TypeVector 6(float) 2
11(Inputs): TypeStruct 7(fvec4) 10(fvec2)
12: TypePointer Input 11(Inputs)
13: 12(ptr) Variable Input
14: TypeInt 32 1
15: 14(int) Constant 0
16: TypePointer Input 7(fvec4)
20: 14(int) Constant 1
21: TypePointer Input 10(fvec2)
4(main): 2 Function None 3
5: Label
17: 16(ptr) AccessChain 13 15
18: 7(fvec4) Load 17
19: 10(fvec2) VectorShuffle 18 18 0 1
22: 21(ptr) AccessChain 13 20
23: 10(fvec2) Load 22
24: 6(float) CompositeExtract 19 0
25: 6(float) CompositeExtract 19 1
26: 6(float) CompositeExtract 23 0
27: 6(float) CompositeExtract 23 1
28: 7(fvec4) CompositeConstruct 24 25 26 27
Store 9(color) 28
Return
FunctionEnd

View File

@ -0,0 +1,154 @@
link.redeclareBuiltin.vert
Shader version: 410
0:? Sequence
0:8 Function Definition: main( ( global void)
0:8 Function Parameters:
0:10 Sequence
0:10 move second child to first child ( temp 4-component vector of float)
0:10 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:10 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position})
0:10 Constant:
0:10 0 (const uint)
0:10 Constant:
0:10 1.000000
0:10 1.000000
0:10 1.000000
0:10 1.000000
0:? Linker Objects
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
link.redeclareBuiltin.geom
Shader version: 410
invocations = -1
max_vertices = 3
input primitive = triangles
output primitive = triangle_strip
0:? Sequence
0:11 Function Definition: main( ( global void)
0:11 Function Parameters:
0:13 Sequence
0:13 move second child to first child ( temp 4-component vector of float)
0:13 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position)
0:13 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:13 Constant:
0:13 0 (const uint)
0:13 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:13 direct index ( temp block{ in 4-component vector of float Position gl_Position})
0:13 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position})
0:13 Constant:
0:13 0 (const int)
0:13 Constant:
0:13 0 (const int)
0:14 EmitVertex ( global void)
0:16 move second child to first child ( temp 4-component vector of float)
0:16 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position)
0:16 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:16 Constant:
0:16 0 (const uint)
0:16 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:16 direct index ( temp block{ in 4-component vector of float Position gl_Position})
0:16 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position})
0:16 Constant:
0:16 1 (const int)
0:16 Constant:
0:16 0 (const int)
0:17 EmitVertex ( global void)
0:19 move second child to first child ( temp 4-component vector of float)
0:19 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position)
0:19 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:19 Constant:
0:19 0 (const uint)
0:19 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:19 direct index ( temp block{ in 4-component vector of float Position gl_Position})
0:19 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position})
0:19 Constant:
0:19 2 (const int)
0:19 Constant:
0:19 0 (const int)
0:20 EmitVertex ( global void)
0:22 EndPrimitive ( global void)
0:? Linker Objects
0:? 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position})
0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 1-element array of float ClipDistance gl_ClipDistance})
Linked vertex stage:
Linked geometry stage:
Shader version: 410
0:? Sequence
0:8 Function Definition: main( ( global void)
0:8 Function Parameters:
0:10 Sequence
0:10 move second child to first child ( temp 4-component vector of float)
0:10 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:10 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position})
0:10 Constant:
0:10 0 (const uint)
0:10 Constant:
0:10 1.000000
0:10 1.000000
0:10 1.000000
0:10 1.000000
0:? Linker Objects
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
Shader version: 410
invocations = 1
max_vertices = 3
input primitive = triangles
output primitive = triangle_strip
0:? Sequence
0:11 Function Definition: main( ( global void)
0:11 Function Parameters:
0:13 Sequence
0:13 move second child to first child ( temp 4-component vector of float)
0:13 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position)
0:13 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 1-element array of float ClipDistance gl_ClipDistance})
0:13 Constant:
0:13 0 (const uint)
0:13 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:13 direct index ( temp block{ in 4-component vector of float Position gl_Position})
0:13 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position})
0:13 Constant:
0:13 0 (const int)
0:13 Constant:
0:13 0 (const int)
0:14 EmitVertex ( global void)
0:16 move second child to first child ( temp 4-component vector of float)
0:16 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position)
0:16 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 1-element array of float ClipDistance gl_ClipDistance})
0:16 Constant:
0:16 0 (const uint)
0:16 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:16 direct index ( temp block{ in 4-component vector of float Position gl_Position})
0:16 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position})
0:16 Constant:
0:16 1 (const int)
0:16 Constant:
0:16 0 (const int)
0:17 EmitVertex ( global void)
0:19 move second child to first child ( temp 4-component vector of float)
0:19 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position)
0:19 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 1-element array of float ClipDistance gl_ClipDistance})
0:19 Constant:
0:19 0 (const uint)
0:19 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:19 direct index ( temp block{ in 4-component vector of float Position gl_Position})
0:19 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position})
0:19 Constant:
0:19 2 (const int)
0:19 Constant:
0:19 0 (const int)
0:20 EmitVertex ( global void)
0:22 EndPrimitive ( global void)
0:? Linker Objects
0:? 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position})
0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 1-element array of float ClipDistance gl_ClipDistance})

View File

@ -0,0 +1,254 @@
link.tesselation.tese
Shader version: 440
input primitive = triangles
vertex spacing = fractional_odd_spacing
triangle order = cw
0:? Sequence
0:15 Function Definition: main( ( global void)
0:15 Function Parameters:
0:17 Sequence
0:17 Sequence
0:17 move second child to first child ( temp float)
0:17 'u' ( temp float)
0:17 direct index ( temp float)
0:17 'gl_TessCoord' ( in 3-component vector of float TessCoord)
0:17 Constant:
0:17 0 (const int)
0:18 Sequence
0:18 move second child to first child ( temp float)
0:18 'v' ( temp float)
0:18 direct index ( temp float)
0:18 'gl_TessCoord' ( in 3-component vector of float TessCoord)
0:18 Constant:
0:18 1 (const int)
0:19 Sequence
0:19 move second child to first child ( temp float)
0:19 'w' ( temp float)
0:19 direct index ( temp float)
0:19 'gl_TessCoord' ( in 3-component vector of float TessCoord)
0:19 Constant:
0:19 2 (const int)
0:21 Sequence
0:21 move second child to first child ( temp 2-component vector of float)
0:21 'newUv' ( temp 2-component vector of float)
0:21 Construct vec2 ( temp 2-component vector of float)
0:21 add ( temp 2-component vector of float)
0:21 add ( temp 2-component vector of float)
0:21 vector-scale ( temp 2-component vector of float)
0:21 'u' ( temp float)
0:21 texCoord: direct index for structure ( in 2-component vector of float)
0:21 direct index (layout( location=0) temp block{ in 2-component vector of float texCoord})
0:21 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord})
0:21 Constant:
0:21 0 (const int)
0:21 Constant:
0:21 0 (const int)
0:21 vector-scale ( temp 2-component vector of float)
0:21 'v' ( temp float)
0:21 texCoord: direct index for structure ( in 2-component vector of float)
0:21 direct index (layout( location=0) temp block{ in 2-component vector of float texCoord})
0:21 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord})
0:21 Constant:
0:21 1 (const int)
0:21 Constant:
0:21 0 (const int)
0:21 vector-scale ( temp 2-component vector of float)
0:21 'w' ( temp float)
0:21 texCoord: direct index for structure ( in 2-component vector of float)
0:21 direct index (layout( location=0) temp block{ in 2-component vector of float texCoord})
0:21 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord})
0:21 Constant:
0:21 2 (const int)
0:21 Constant:
0:21 0 (const int)
0:22 move second child to first child ( temp 2-component vector of float)
0:22 texCoord: direct index for structure ( out 2-component vector of float)
0:22 'OUT' (layout( location=0) out block{ out 2-component vector of float texCoord})
0:22 Constant:
0:22 0 (const int)
0:22 'newUv' ( temp 2-component vector of float)
0:23 move second child to first child ( temp 4-component vector of float)
0:23 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:23 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:23 Constant:
0:23 0 (const uint)
0:23 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:23 indirect index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance})
0:23 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance})
0:23 'gl_PatchVerticesIn' ( in int PatchVertices)
0:23 Constant:
0:23 0 (const int)
0:? Linker Objects
0:? 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord})
0:? 'OUT' (layout( location=0) out block{ out 2-component vector of float texCoord})
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
link.tesselation.tesc
Shader version: 440
vertices = 3
0:? Sequence
0:14 Function Definition: main( ( global void)
0:14 Function Parameters:
0:16 Sequence
0:16 move second child to first child ( temp 2-component vector of float)
0:16 texCoord: direct index for structure ( out 2-component vector of float)
0:16 indirect index (layout( location=0) temp block{ out 2-component vector of float texCoord})
0:16 'OUT' (layout( location=0) out 3-element array of block{ out 2-component vector of float texCoord})
0:16 'gl_InvocationID' ( in int InvocationID)
0:16 Constant:
0:16 0 (const int)
0:16 texCoord: direct index for structure ( in 2-component vector of float)
0:16 indirect index (layout( location=0) temp block{ in 2-component vector of float texCoord})
0:16 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord})
0:16 'gl_InvocationID' ( in int InvocationID)
0:16 Constant:
0:16 0 (const int)
0:18 Sequence
0:18 move second child to first child ( temp float)
0:18 'tessLevel' ( temp float)
0:18 Constant:
0:18 10.000000
0:19 move second child to first child ( temp float)
0:19 indirect index ( patch temp float TessLevelOuter)
0:19 'gl_TessLevelOuter' ( patch out 4-element array of float TessLevelOuter)
0:19 'gl_InvocationID' ( in int InvocationID)
0:19 'tessLevel' ( temp float)
0:20 move second child to first child ( temp float)
0:20 direct index ( patch temp float TessLevelInner)
0:20 'gl_TessLevelInner' ( patch out 2-element array of float TessLevelInner)
0:20 Constant:
0:20 0 (const int)
0:20 'tessLevel' ( temp float)
0:? Linker Objects
0:? 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord})
0:? 'OUT' (layout( location=0) out 3-element array of block{ out 2-component vector of float texCoord})
Linked tessellation control stage:
Linked tessellation evaluation stage:
Shader version: 440
vertices = 3
0:? Sequence
0:14 Function Definition: main( ( global void)
0:14 Function Parameters:
0:16 Sequence
0:16 move second child to first child ( temp 2-component vector of float)
0:16 texCoord: direct index for structure ( out 2-component vector of float)
0:16 indirect index (layout( location=0) temp block{ out 2-component vector of float texCoord})
0:16 'OUT' (layout( location=0) out 3-element array of block{ out 2-component vector of float texCoord})
0:16 'gl_InvocationID' ( in int InvocationID)
0:16 Constant:
0:16 0 (const int)
0:16 texCoord: direct index for structure ( in 2-component vector of float)
0:16 indirect index (layout( location=0) temp block{ in 2-component vector of float texCoord})
0:16 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord})
0:16 'gl_InvocationID' ( in int InvocationID)
0:16 Constant:
0:16 0 (const int)
0:18 Sequence
0:18 move second child to first child ( temp float)
0:18 'tessLevel' ( temp float)
0:18 Constant:
0:18 10.000000
0:19 move second child to first child ( temp float)
0:19 indirect index ( patch temp float TessLevelOuter)
0:19 'gl_TessLevelOuter' ( patch out 4-element array of float TessLevelOuter)
0:19 'gl_InvocationID' ( in int InvocationID)
0:19 'tessLevel' ( temp float)
0:20 move second child to first child ( temp float)
0:20 direct index ( patch temp float TessLevelInner)
0:20 'gl_TessLevelInner' ( patch out 2-element array of float TessLevelInner)
0:20 Constant:
0:20 0 (const int)
0:20 'tessLevel' ( temp float)
0:? Linker Objects
0:? 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord})
0:? 'OUT' (layout( location=0) out 3-element array of block{ out 2-component vector of float texCoord})
Shader version: 440
input primitive = triangles
vertex spacing = fractional_odd_spacing
triangle order = cw
0:? Sequence
0:15 Function Definition: main( ( global void)
0:15 Function Parameters:
0:17 Sequence
0:17 Sequence
0:17 move second child to first child ( temp float)
0:17 'u' ( temp float)
0:17 direct index ( temp float)
0:17 'gl_TessCoord' ( in 3-component vector of float TessCoord)
0:17 Constant:
0:17 0 (const int)
0:18 Sequence
0:18 move second child to first child ( temp float)
0:18 'v' ( temp float)
0:18 direct index ( temp float)
0:18 'gl_TessCoord' ( in 3-component vector of float TessCoord)
0:18 Constant:
0:18 1 (const int)
0:19 Sequence
0:19 move second child to first child ( temp float)
0:19 'w' ( temp float)
0:19 direct index ( temp float)
0:19 'gl_TessCoord' ( in 3-component vector of float TessCoord)
0:19 Constant:
0:19 2 (const int)
0:21 Sequence
0:21 move second child to first child ( temp 2-component vector of float)
0:21 'newUv' ( temp 2-component vector of float)
0:21 Construct vec2 ( temp 2-component vector of float)
0:21 add ( temp 2-component vector of float)
0:21 add ( temp 2-component vector of float)
0:21 vector-scale ( temp 2-component vector of float)
0:21 'u' ( temp float)
0:21 texCoord: direct index for structure ( in 2-component vector of float)
0:21 direct index (layout( location=0) temp block{ in 2-component vector of float texCoord})
0:21 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord})
0:21 Constant:
0:21 0 (const int)
0:21 Constant:
0:21 0 (const int)
0:21 vector-scale ( temp 2-component vector of float)
0:21 'v' ( temp float)
0:21 texCoord: direct index for structure ( in 2-component vector of float)
0:21 direct index (layout( location=0) temp block{ in 2-component vector of float texCoord})
0:21 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord})
0:21 Constant:
0:21 1 (const int)
0:21 Constant:
0:21 0 (const int)
0:21 vector-scale ( temp 2-component vector of float)
0:21 'w' ( temp float)
0:21 texCoord: direct index for structure ( in 2-component vector of float)
0:21 direct index (layout( location=0) temp block{ in 2-component vector of float texCoord})
0:21 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord})
0:21 Constant:
0:21 2 (const int)
0:21 Constant:
0:21 0 (const int)
0:22 move second child to first child ( temp 2-component vector of float)
0:22 texCoord: direct index for structure ( out 2-component vector of float)
0:22 'OUT' (layout( location=0) out block{ out 2-component vector of float texCoord})
0:22 Constant:
0:22 0 (const int)
0:22 'newUv' ( temp 2-component vector of float)
0:23 move second child to first child ( temp 4-component vector of float)
0:23 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:23 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:23 Constant:
0:23 0 (const uint)
0:23 gl_Position: direct index for structure ( in 4-component vector of float Position)
0:23 indirect index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:23 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
0:23 'gl_PatchVerticesIn' ( in int PatchVertices)
0:23 Constant:
0:23 0 (const int)
0:? Linker Objects
0:? 'IN' (layout( location=0) in 32-element array of block{ in 2-component vector of float texCoord})
0:? 'OUT' (layout( location=0) out block{ out 2-component vector of float texCoord})
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

View File

@ -0,0 +1,94 @@
link.tesselation.vert
Shader version: 440
0:? Sequence
0:11 Function Definition: main( ( global void)
0:11 Function Parameters:
0:13 Sequence
0:13 move second child to first child ( temp 4-component vector of float)
0:13 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:13 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:13 Constant:
0:13 0 (const uint)
0:13 'i_Pos' (layout( location=0) in 4-component vector of float)
0:14 move second child to first child ( temp 2-component vector of float)
0:14 texCoord: direct index for structure ( out 2-component vector of float)
0:14 'OUT' (layout( location=0) out block{ out 2-component vector of float texCoord})
0:14 Constant:
0:14 0 (const int)
0:14 'i_Tex' (layout( location=1) in 2-component vector of float)
0:? Linker Objects
0:? 'i_Pos' (layout( location=0) in 4-component vector of float)
0:? 'i_Tex' (layout( location=1) in 2-component vector of float)
0:? 'OUT' (layout( location=0) out block{ out 2-component vector of float texCoord})
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
link.tesselation.frag
Shader version: 440
0:? Sequence
0:12 Function Definition: main( ( global void)
0:12 Function Parameters:
0:14 Sequence
0:14 move second child to first child ( temp 4-component vector of float)
0:14 'oColor' (layout( location=0) out 4-component vector of float)
0:14 texture ( global 4-component vector of float)
0:14 'mytex' (layout( binding=0) uniform sampler2D)
0:14 texCoord: direct index for structure ( in 2-component vector of float)
0:14 'IN' (layout( location=0) in block{ in 2-component vector of float texCoord})
0:14 Constant:
0:14 0 (const int)
0:? Linker Objects
0:? 'IN' (layout( location=0) in block{ in 2-component vector of float texCoord})
0:? 'oColor' (layout( location=0) out 4-component vector of float)
0:? 'mytex' (layout( binding=0) uniform sampler2D)
Linked vertex stage:
Linked fragment stage:
Shader version: 440
0:? Sequence
0:11 Function Definition: main( ( global void)
0:11 Function Parameters:
0:13 Sequence
0:13 move second child to first child ( temp 4-component vector of float)
0:13 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:13 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:13 Constant:
0:13 0 (const uint)
0:13 'i_Pos' (layout( location=0) in 4-component vector of float)
0:14 move second child to first child ( temp 2-component vector of float)
0:14 texCoord: direct index for structure ( out 2-component vector of float)
0:14 'OUT' (layout( location=0) out block{ out 2-component vector of float texCoord})
0:14 Constant:
0:14 0 (const int)
0:14 'i_Tex' (layout( location=1) in 2-component vector of float)
0:? Linker Objects
0:? 'i_Pos' (layout( location=0) in 4-component vector of float)
0:? 'i_Tex' (layout( location=1) in 2-component vector of float)
0:? 'OUT' (layout( location=0) out block{ out 2-component vector of float texCoord})
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
Shader version: 440
0:? Sequence
0:12 Function Definition: main( ( global void)
0:12 Function Parameters:
0:14 Sequence
0:14 move second child to first child ( temp 4-component vector of float)
0:14 'oColor' (layout( location=0) out 4-component vector of float)
0:14 texture ( global 4-component vector of float)
0:14 'mytex' (layout( binding=0) uniform sampler2D)
0:14 texCoord: direct index for structure ( in 2-component vector of float)
0:14 'IN' (layout( location=0) in block{ in 2-component vector of float texCoord})
0:14 Constant:
0:14 0 (const int)
0:? Linker Objects
0:? 'IN' (layout( location=0) in block{ in 2-component vector of float texCoord})
0:? 'oColor' (layout( location=0) out 4-component vector of float)
0:? 'mytex' (layout( binding=0) uniform sampler2D)

View File

@ -28,8 +28,6 @@ rayQuery.rgen
MemberDecorate 26(block) 0 Offset 0 MemberDecorate 26(block) 0 Offset 0
MemberDecorate 26(block) 1 Offset 16 MemberDecorate 26(block) 1 Offset 16
Decorate 26(block) BufferBlock Decorate 26(block) BufferBlock
Decorate 28 DescriptorSet 0
Decorate 28 Binding 1
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0

View File

@ -31,7 +31,6 @@ spv.1.4.OpEntryPoint.frag
Decorate 25(uniformv) Binding 0 Decorate 25(uniformv) Binding 0
MemberDecorate 31(pushB) 0 Offset 0 MemberDecorate 31(pushB) 0 Offset 0
Decorate 31(pushB) Block Decorate 31(pushB) Block
Decorate 33(pushv) Binding 2
MemberDecorate 39(bbt) 0 Offset 0 MemberDecorate 39(bbt) 0 Offset 0
Decorate 39(bbt) Block Decorate 39(bbt) Block
Decorate 41(bufferv) DescriptorSet 0 Decorate 41(bufferv) DescriptorSet 0

View File

@ -0,0 +1,33 @@
spv.AnyHitShaderMotion.rahit
// Module Version 10400
// Generated by (magic number): 8000a
// Id's are bound by 14
Capability RayTracingKHR
Capability RayTracingMotionBlurNV
Extension "SPV_KHR_ray_tracing"
Extension "SPV_NV_ray_tracing_motion_blur"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint AnyHitKHR 4 "main" 10
Source GLSL 460
SourceExtension "GL_NV_ray_tracing_motion_blur"
Name 4 "main"
Name 8 "time"
Name 10 "gl_CurrentRayTimeNV"
Decorate 10(gl_CurrentRayTimeNV) BuiltIn CurrentRayTimeNV
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
9: TypePointer Input 6(float)
10(gl_CurrentRayTimeNV): 9(ptr) Variable Input
12: 6(float) Constant 1056964608
4(main): 2 Function None 3
5: Label
8(time): 7(ptr) Variable Function
11: 6(float) Load 10(gl_CurrentRayTimeNV)
13: 6(float) FAdd 11 12
Store 8(time) 13
Return
FunctionEnd

View File

@ -0,0 +1,59 @@
spv.ClosestHitShaderMotion.rchit
// Module Version 10400
// Generated by (magic number): 8000a
// Id's are bound by 33
Capability RayTracingKHR
Capability RayTracingMotionBlurNV
Extension "SPV_KHR_ray_tracing"
Extension "SPV_NV_ray_tracing_motion_blur"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint ClosestHitKHR 4 "main" 10 16 32
Source GLSL 460
SourceExtension "GL_EXT_ray_tracing"
SourceExtension "GL_NV_ray_tracing_motion_blur"
Name 4 "main"
Name 8 "time"
Name 10 "gl_CurrentRayTimeNV"
Name 16 "accEXT"
Name 32 "incomingPayloadEXT"
Decorate 10(gl_CurrentRayTimeNV) BuiltIn CurrentRayTimeNV
Decorate 16(accEXT) DescriptorSet 0
Decorate 16(accEXT) Binding 0
Decorate 32(incomingPayloadEXT) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
9: TypePointer Input 6(float)
10(gl_CurrentRayTimeNV): 9(ptr) Variable Input
12: 6(float) Constant 1056964608
14: TypeAccelerationStructureKHR
15: TypePointer UniformConstant 14
16(accEXT): 15(ptr) Variable UniformConstant
18: TypeInt 32 0
19: 18(int) Constant 0
20: 18(int) Constant 1
21: 18(int) Constant 2
22: 18(int) Constant 3
23: TypeVector 6(float) 3
24: 23(fvec3) ConstantComposite 12 12 12
25: 6(float) Constant 1065353216
26: 23(fvec3) ConstantComposite 25 25 25
27: 6(float) Constant 1061158912
28: TypeInt 32 1
29: 28(int) Constant 0
30: TypeVector 6(float) 4
31: TypePointer IncomingRayPayloadKHR 30(fvec4)
32(incomingPayloadEXT): 31(ptr) Variable IncomingRayPayloadKHR
4(main): 2 Function None 3
5: Label
8(time): 7(ptr) Variable Function
11: 6(float) Load 10(gl_CurrentRayTimeNV)
13: 6(float) FAdd 11 12
Store 8(time) 13
17: 14 Load 16(accEXT)
TraceRayMotionNV 17 19 20 21 22 19 24 12 26 27 25 32(incomingPayloadEXT)
Return
FunctionEnd

View File

@ -0,0 +1,33 @@
spv.IntersectShaderMotion.rint
// Module Version 10400
// Generated by (magic number): 8000a
// Id's are bound by 14
Capability RayTracingKHR
Capability RayTracingMotionBlurNV
Extension "SPV_KHR_ray_tracing"
Extension "SPV_NV_ray_tracing_motion_blur"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint IntersectionKHR 4 "main" 10
Source GLSL 460
SourceExtension "GL_NV_ray_tracing_motion_blur"
Name 4 "main"
Name 8 "time"
Name 10 "gl_CurrentRayTimeNV"
Decorate 10(gl_CurrentRayTimeNV) BuiltIn CurrentRayTimeNV
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
9: TypePointer Input 6(float)
10(gl_CurrentRayTimeNV): 9(ptr) Variable Input
12: 6(float) Constant 1056964608
4(main): 2 Function None 3
5: Label
8(time): 7(ptr) Variable Function
11: 6(float) Load 10(gl_CurrentRayTimeNV)
13: 6(float) FAdd 11 12
Store 8(time) 13
Return
FunctionEnd

View File

@ -0,0 +1,59 @@
spv.MissShaderMotion.rmiss
// Module Version 10400
// Generated by (magic number): 8000a
// Id's are bound by 33
Capability RayTracingKHR
Capability RayTracingMotionBlurNV
Extension "SPV_KHR_ray_tracing"
Extension "SPV_NV_ray_tracing_motion_blur"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint MissKHR 4 "main" 10 16 32
Source GLSL 460
SourceExtension "GL_EXT_ray_tracing"
SourceExtension "GL_NV_ray_tracing_motion_blur"
Name 4 "main"
Name 8 "time"
Name 10 "gl_CurrentRayTimeNV"
Name 16 "accEXT"
Name 32 "localPayloadEXT"
Decorate 10(gl_CurrentRayTimeNV) BuiltIn CurrentRayTimeNV
Decorate 16(accEXT) DescriptorSet 0
Decorate 16(accEXT) Binding 0
Decorate 32(localPayloadEXT) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
9: TypePointer Input 6(float)
10(gl_CurrentRayTimeNV): 9(ptr) Variable Input
12: 6(float) Constant 1056964608
14: TypeAccelerationStructureKHR
15: TypePointer UniformConstant 14
16(accEXT): 15(ptr) Variable UniformConstant
18: TypeInt 32 0
19: 18(int) Constant 0
20: 18(int) Constant 1
21: 18(int) Constant 2
22: 18(int) Constant 3
23: TypeVector 6(float) 3
24: 23(fvec3) ConstantComposite 12 12 12
25: 6(float) Constant 1065353216
26: 23(fvec3) ConstantComposite 25 25 25
27: 6(float) Constant 1061158912
28: TypeInt 32 1
29: 28(int) Constant 0
30: TypeVector 6(float) 4
31: TypePointer RayPayloadKHR 30(fvec4)
32(localPayloadEXT): 31(ptr) Variable RayPayloadKHR
4(main): 2 Function None 3
5: Label
8(time): 7(ptr) Variable Function
11: 6(float) Load 10(gl_CurrentRayTimeNV)
13: 6(float) FAdd 11 12
Store 8(time) 13
17: 14 Load 16(accEXT)
TraceRayMotionNV 17 19 20 21 22 19 24 12 26 27 25 32(localPayloadEXT)
Return
FunctionEnd

View File

@ -31,8 +31,6 @@ spv.RayGenShader.rgen
MemberDecorate 37(block) 0 Offset 0 MemberDecorate 37(block) 0 Offset 0
MemberDecorate 37(block) 1 Offset 16 MemberDecorate 37(block) 1 Offset 16
Decorate 37(block) BufferBlock Decorate 37(block) BufferBlock
Decorate 39 DescriptorSet 0
Decorate 39 Binding 2
Decorate 50(accNV1) DescriptorSet 0 Decorate 50(accNV1) DescriptorSet 0
Decorate 50(accNV1) Binding 1 Decorate 50(accNV1) Binding 1
Decorate 53(payload) Location 0 Decorate 53(payload) Location 0

View File

@ -30,8 +30,6 @@ spv.RayGenShader11.rgen
MemberDecorate 37(block) 0 Offset 0 MemberDecorate 37(block) 0 Offset 0
MemberDecorate 37(block) 1 Offset 16 MemberDecorate 37(block) 1 Offset 16
Decorate 37(block) Block Decorate 37(block) Block
Decorate 39 DescriptorSet 0
Decorate 39 Binding 1
Decorate 52(payload) Location 0 Decorate 52(payload) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2

View File

@ -37,8 +37,6 @@ spv.RayGenShaderArray.rgen
MemberDecorate 34(block) 1 Offset 16 MemberDecorate 34(block) 1 Offset 16
MemberDecorate 34(block) 2 Offset 28 MemberDecorate 34(block) 2 Offset 28
Decorate 34(block) BufferBlock Decorate 34(block) BufferBlock
Decorate 36 DescriptorSet 0
Decorate 36 Binding 2
Decorate 60(accNV1) DescriptorSet 0 Decorate 60(accNV1) DescriptorSet 0
Decorate 60(accNV1) Binding 1 Decorate 60(accNV1) Binding 1
Decorate 75 DecorationNonUniformEXT Decorate 75 DecorationNonUniformEXT

View File

@ -0,0 +1,81 @@
spv.RayGenShaderMotion.rgen
// Module Version 10400
// Generated by (magic number): 8000a
// Id's are bound by 47
Capability RayTracingKHR
Capability RayTracingMotionBlurNV
Extension "SPV_KHR_ray_tracing"
Extension "SPV_NV_ray_tracing_motion_blur"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint RayGenerationKHR 4 "main" 11 21 29 46
Source GLSL 460
SourceExtension "GL_EXT_ray_tracing"
SourceExtension "GL_NV_ray_tracing_motion_blur"
Name 4 "main"
Name 8 "lx"
Name 11 "gl_LaunchIDEXT"
Name 16 "ly"
Name 20 "sx"
Name 21 "gl_LaunchSizeEXT"
Name 24 "sy"
Name 29 "accEXT"
Name 46 "payloadEXT"
Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR
Decorate 21(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
Decorate 29(accEXT) DescriptorSet 0
Decorate 29(accEXT) Binding 0
Decorate 46(payloadEXT) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypePointer Function 6(int)
9: TypeVector 6(int) 3
10: TypePointer Input 9(ivec3)
11(gl_LaunchIDEXT): 10(ptr) Variable Input
12: 6(int) Constant 0
13: TypePointer Input 6(int)
17: 6(int) Constant 1
21(gl_LaunchSizeEXT): 10(ptr) Variable Input
27: TypeAccelerationStructureKHR
28: TypePointer UniformConstant 27
29(accEXT): 28(ptr) Variable UniformConstant
35: TypeFloat 32
36: TypeVector 35(float) 3
37: 35(float) Constant 1056964608
38: 36(fvec3) ConstantComposite 37 37 37
39: 35(float) Constant 1065353216
40: 36(fvec3) ConstantComposite 39 39 39
41: 35(float) Constant 1061158912
42: TypeInt 32 1
43: 42(int) Constant 0
44: TypeVector 35(float) 4
45: TypePointer RayPayloadKHR 44(fvec4)
46(payloadEXT): 45(ptr) Variable RayPayloadKHR
4(main): 2 Function None 3
5: Label
8(lx): 7(ptr) Variable Function
16(ly): 7(ptr) Variable Function
20(sx): 7(ptr) Variable Function
24(sy): 7(ptr) Variable Function
14: 13(ptr) AccessChain 11(gl_LaunchIDEXT) 12
15: 6(int) Load 14
Store 8(lx) 15
18: 13(ptr) AccessChain 11(gl_LaunchIDEXT) 17
19: 6(int) Load 18
Store 16(ly) 19
22: 13(ptr) AccessChain 21(gl_LaunchSizeEXT) 12
23: 6(int) Load 22
Store 20(sx) 23
25: 13(ptr) AccessChain 21(gl_LaunchSizeEXT) 17
26: 6(int) Load 25
Store 24(sy) 26
30: 27 Load 29(accEXT)
31: 6(int) Load 8(lx)
32: 6(int) Load 16(ly)
33: 6(int) Load 20(sx)
34: 6(int) Load 24(sy)
TraceRayMotionNV 30 31 32 33 34 12 38 37 40 41 37 46(payloadEXT)
Return
FunctionEnd

View File

@ -73,6 +73,7 @@ spv.ext.AnyHitShader.rahit
Decorate 98(gl_SubgroupSize) RelaxedPrecision Decorate 98(gl_SubgroupSize) RelaxedPrecision
Decorate 98(gl_SubgroupSize) BuiltIn SubgroupSize Decorate 98(gl_SubgroupSize) BuiltIn SubgroupSize
Decorate 99 RelaxedPrecision Decorate 99 RelaxedPrecision
Decorate 100 RelaxedPrecision
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0

View File

@ -38,10 +38,21 @@ spv.ext.ClosestHitShader_Subgroup.rchit
Decorate 28(gl_SubgroupInvocationID) RelaxedPrecision Decorate 28(gl_SubgroupInvocationID) RelaxedPrecision
Decorate 28(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId Decorate 28(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
Decorate 29 RelaxedPrecision Decorate 29 RelaxedPrecision
Decorate 30 RelaxedPrecision
Decorate 34(gl_SubGroupGeMaskARB) BuiltIn SubgroupGeMaskKHR Decorate 34(gl_SubGroupGeMaskARB) BuiltIn SubgroupGeMaskKHR
Decorate 41 RelaxedPrecision
Decorate 42 RelaxedPrecision
Decorate 43(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR Decorate 43(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR
Decorate 46 RelaxedPrecision
Decorate 46 RelaxedPrecision
Decorate 47 RelaxedPrecision
Decorate 48(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR Decorate 48(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR
Decorate 51 RelaxedPrecision
Decorate 51 RelaxedPrecision
Decorate 52 RelaxedPrecision
Decorate 53(gl_SubGroupLtMaskARB) BuiltIn SubgroupLtMaskKHR Decorate 53(gl_SubGroupLtMaskARB) BuiltIn SubgroupLtMaskKHR
Decorate 59 RelaxedPrecision
Decorate 60 RelaxedPrecision
Decorate 61(gl_SMIDNV) BuiltIn SMIDNV Decorate 61(gl_SMIDNV) BuiltIn SMIDNV
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2

View File

@ -49,8 +49,6 @@ spv.ext.RayGenSBTlayout.rgen
MemberDecorate 36(block) 9 Offset 120 MemberDecorate 36(block) 9 Offset 120
MemberDecorate 36(block) 10 Offset 128 MemberDecorate 36(block) 10 Offset 128
Decorate 36(block) Block Decorate 36(block) Block
Decorate 38 DescriptorSet 0
Decorate 38 Binding 0
Decorate 60(payload) Location 1 Decorate 60(payload) Location 1
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2

View File

@ -49,8 +49,6 @@ spv.ext.RayGenSBTlayout140.rgen
MemberDecorate 36(block) 9 Offset 136 MemberDecorate 36(block) 9 Offset 136
MemberDecorate 36(block) 10 Offset 144 MemberDecorate 36(block) 10 Offset 144
Decorate 36(block) Block Decorate 36(block) Block
Decorate 38 DescriptorSet 0
Decorate 38 Binding 0
Decorate 60(payload) Location 1 Decorate 60(payload) Location 1
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2

View File

@ -49,8 +49,6 @@ spv.ext.RayGenSBTlayout430.rgen
MemberDecorate 36(block) 9 Offset 120 MemberDecorate 36(block) 9 Offset 120
MemberDecorate 36(block) 10 Offset 128 MemberDecorate 36(block) 10 Offset 128
Decorate 36(block) Block Decorate 36(block) Block
Decorate 38 DescriptorSet 0
Decorate 38 Binding 0
Decorate 60(payload) Location 1 Decorate 60(payload) Location 1
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2

View File

@ -50,8 +50,6 @@ spv.ext.RayGenSBTlayoutscalar.rgen
MemberDecorate 36(block) 9 Offset 96 MemberDecorate 36(block) 9 Offset 96
MemberDecorate 36(block) 10 Offset 104 MemberDecorate 36(block) 10 Offset 104
Decorate 36(block) Block Decorate 36(block) Block
Decorate 38 DescriptorSet 0
Decorate 38 Binding 0
Decorate 60(payload) Location 1 Decorate 60(payload) Location 1
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2

View File

@ -34,8 +34,6 @@ spv.ext.RayGenShader.rgen
MemberDecorate 38(block) 0 Offset 0 MemberDecorate 38(block) 0 Offset 0
MemberDecorate 38(block) 1 Offset 16 MemberDecorate 38(block) 1 Offset 16
Decorate 38(block) Block Decorate 38(block) Block
Decorate 40 DescriptorSet 0
Decorate 40 Binding 3
Decorate 53(payload) Location 1 Decorate 53(payload) Location 1
Decorate 54(accEXT1) DescriptorSet 0 Decorate 54(accEXT1) DescriptorSet 0
Decorate 54(accEXT1) Binding 1 Decorate 54(accEXT1) Binding 1

View File

@ -30,8 +30,6 @@ spv.ext.RayGenShader11.rgen
MemberDecorate 37(block) 0 Offset 0 MemberDecorate 37(block) 0 Offset 0
MemberDecorate 37(block) 1 Offset 16 MemberDecorate 37(block) 1 Offset 16
Decorate 37(block) Block Decorate 37(block) Block
Decorate 39 DescriptorSet 0
Decorate 39 Binding 1
Decorate 52(payload) Location 1 Decorate 52(payload) Location 1
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2

View File

@ -43,8 +43,6 @@ spv.ext.RayGenShaderArray.rgen
MemberDecorate 36(block) 3 Offset 32 MemberDecorate 36(block) 3 Offset 32
MemberDecorate 36(block) 4 Offset 40 MemberDecorate 36(block) 4 Offset 40
Decorate 36(block) Block Decorate 36(block) Block
Decorate 38 DescriptorSet 0
Decorate 38 Binding 2
Decorate 61(payload) Location 1 Decorate 61(payload) Location 1
Decorate 65(accEXT1) DescriptorSet 0 Decorate 65(accEXT1) DescriptorSet 0
Decorate 65(accEXT1) Binding 1 Decorate 65(accEXT1) Binding 1

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
spv.int16.frag spv.int16.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 535 // Id's are bound by 549
Capability Shader Capability Shader
Capability Float16 Capability Float16
@ -48,53 +48,55 @@ spv.int16.frag
Name 154 "i8v" Name 154 "i8v"
Name 163 "u8v" Name 163 "u8v"
Name 176 "bv" Name 176 "bv"
Name 195 "u16v" Name 196 "arr"
Name 200 "i16" Name 204 "u16v"
Name 220 "i" Name 209 "i16"
Name 227 "uv" Name 229 "i"
Name 243 "i64" Name 236 "uv"
Name 281 "b" Name 252 "i64"
Name 343 "i16v" Name 290 "b"
Name 346 "i16" Name 353 "f"
Name 356 "u16v" Name 357 "i16v"
Name 358 "u16" Name 360 "i16"
Name 428 "i32" Name 370 "u16v"
Name 431 "i64" Name 372 "u16"
Name 434 "i16v4" Name 442 "i32"
Name 437 "u32" Name 445 "i64"
Name 438 "u16v2" Name 448 "i16v4"
Name 442 "u64" Name 451 "u32"
Name 445 "u16v4" Name 452 "u16v2"
Name 457 "bv" Name 456 "u64"
Name 530 "Block" Name 459 "u16v4"
MemberName 530(Block) 0 "i16" Name 471 "bv"
MemberName 530(Block) 1 "i16v2" Name 544 "Block"
MemberName 530(Block) 2 "i16v3" MemberName 544(Block) 0 "i16"
MemberName 530(Block) 3 "i16v4" MemberName 544(Block) 1 "i16v2"
MemberName 530(Block) 4 "u16" MemberName 544(Block) 2 "i16v3"
MemberName 530(Block) 5 "u16v2" MemberName 544(Block) 3 "i16v4"
MemberName 530(Block) 6 "u16v3" MemberName 544(Block) 4 "u16"
MemberName 530(Block) 7 "u16v4" MemberName 544(Block) 5 "u16v2"
Name 532 "block" MemberName 544(Block) 6 "u16v3"
Name 533 "si16" MemberName 544(Block) 7 "u16v4"
Name 534 "su16" Name 546 "block"
Name 547 "si16"
Name 548 "su16"
MemberDecorate 24(Uniforms) 0 Offset 0 MemberDecorate 24(Uniforms) 0 Offset 0
Decorate 24(Uniforms) Block Decorate 24(Uniforms) Block
Decorate 26 DescriptorSet 0 Decorate 26 DescriptorSet 0
Decorate 26 Binding 0 Decorate 26 Binding 0
MemberDecorate 530(Block) 0 Offset 0 MemberDecorate 544(Block) 0 Offset 0
MemberDecorate 530(Block) 1 Offset 4 MemberDecorate 544(Block) 1 Offset 4
MemberDecorate 530(Block) 2 Offset 8 MemberDecorate 544(Block) 2 Offset 8
MemberDecorate 530(Block) 3 Offset 16 MemberDecorate 544(Block) 3 Offset 16
MemberDecorate 530(Block) 4 Offset 24 MemberDecorate 544(Block) 4 Offset 24
MemberDecorate 530(Block) 5 Offset 28 MemberDecorate 544(Block) 5 Offset 28
MemberDecorate 530(Block) 6 Offset 32 MemberDecorate 544(Block) 6 Offset 32
MemberDecorate 530(Block) 7 Offset 40 MemberDecorate 544(Block) 7 Offset 40
Decorate 530(Block) Block Decorate 544(Block) Block
Decorate 532(block) DescriptorSet 0 Decorate 546(block) DescriptorSet 0
Decorate 532(block) Binding 1 Decorate 546(block) Binding 1
Decorate 533(si16) SpecId 100 Decorate 547(si16) SpecId 100
Decorate 534(su16) SpecId 101 Decorate 548(su16) SpecId 101
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
14: TypeInt 16 1 14: TypeInt 16 1
@ -160,37 +162,46 @@ spv.int16.frag
185: 36(int16_t) Constant 1 185: 36(int16_t) Constant 1
186: 57(i16vec2) ConstantComposite 184 184 186: 57(i16vec2) ConstantComposite 184 184
187: 57(i16vec2) ConstantComposite 185 185 187: 57(i16vec2) ConstantComposite 185 185
193: TypeVector 36(int16_t) 3 193: 17(int) Constant 4
194: TypePointer Function 193(i16vec3) 194: TypeArray 97(float) 193
197: TypeVector 14(int16_t) 3 195: TypePointer Function 194
219: TypePointer Function 27(int) 197: 97(float) Constant 1065353216
225: TypeVector 17(int) 3 198: 97(float) Constant 1073741824
226: TypePointer Function 225(ivec3) 199: 97(float) Constant 1077936128
242: TypePointer Function 71(int64_t) 200: 97(float) Constant 1082130432
264: 17(int) Constant 1 201: 194 ConstantComposite 197 198 199 200
270: 17(int) Constant 2 202: TypeVector 36(int16_t) 3
276: TypeVector 27(int) 3 203: TypePointer Function 202(i16vec3)
280: TypePointer Function 173(bool) 206: TypeVector 14(int16_t) 3
282: 17(int) Constant 0 228: TypePointer Function 27(int)
296: TypePointer Function 17(int) 234: TypeVector 17(int) 3
354: 52(i16vec2) ConstantComposite 21 21 235: TypePointer Function 234(ivec3)
363:193(i16vec3) ConstantComposite 184 184 184 251: TypePointer Function 71(int64_t)
405: 173(bool) ConstantTrue 273: 17(int) Constant 1
412: 173(bool) ConstantFalse 279: 17(int) Constant 2
413: 174(bvec2) ConstantComposite 412 412 285: TypeVector 27(int) 3
425: TypeVector 173(bool) 3 289: TypePointer Function 173(bool)
426: 425(bvec3) ConstantComposite 412 412 412 291: 17(int) Constant 0
432: TypeVector 14(int16_t) 4 305: TypePointer Function 17(int)
433: TypePointer Function 432(i16vec4) 352: TypePointer Function 97(float)
441: TypePointer Function 77(int64_t) 368: 52(i16vec2) ConstantComposite 21 21
443: TypeVector 36(int16_t) 4 377:202(i16vec3) ConstantComposite 184 184 184
444: TypePointer Function 443(i16vec4) 419: 173(bool) ConstantTrue
456: TypePointer Function 425(bvec3) 426: 173(bool) ConstantFalse
530(Block): TypeStruct 14(int16_t) 52(i16vec2) 197(i16vec3) 432(i16vec4) 36(int16_t) 57(i16vec2) 193(i16vec3) 443(i16vec4) 427: 174(bvec2) ConstantComposite 426 426
531: TypePointer Uniform 530(Block) 439: TypeVector 173(bool) 3
532(block): 531(ptr) Variable Uniform 440: 439(bvec3) ConstantComposite 426 426 426
533(si16): 14(int16_t) SpecConstant 4294967286 446: TypeVector 14(int16_t) 4
534(su16): 36(int16_t) SpecConstant 20 447: TypePointer Function 446(i16vec4)
455: TypePointer Function 77(int64_t)
457: TypeVector 36(int16_t) 4
458: TypePointer Function 457(i16vec4)
470: TypePointer Function 439(bvec3)
544(Block): TypeStruct 14(int16_t) 52(i16vec2) 206(i16vec3) 446(i16vec4) 36(int16_t) 57(i16vec2) 202(i16vec3) 457(i16vec4)
545: TypePointer Uniform 544(Block)
546(block): 545(ptr) Variable Uniform
547(si16): 14(int16_t) SpecConstant 4294967286
548(su16): 36(int16_t) SpecConstant 20
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
Return Return
@ -364,397 +375,404 @@ spv.int16.frag
FunctionEnd FunctionEnd
10(operators(): 2 Function None 3 10(operators(): 2 Function None 3
11: Label 11: Label
195(u16v): 194(ptr) Variable Function 196(arr): 195(ptr) Variable Function
200(i16): 15(ptr) Variable Function 204(u16v): 203(ptr) Variable Function
220(i): 219(ptr) Variable Function 209(i16): 15(ptr) Variable Function
227(uv): 226(ptr) Variable Function 229(i): 228(ptr) Variable Function
243(i64): 242(ptr) Variable Function 236(uv): 235(ptr) Variable Function
281(b): 280(ptr) Variable Function 252(i64): 251(ptr) Variable Function
196:193(i16vec3) Load 195(u16v) 290(b): 289(ptr) Variable Function
198:197(i16vec3) CompositeConstruct 179 179 179 353(f): 352(ptr) Variable Function
199:193(i16vec3) IAdd 196 198 Store 196(arr) 201
Store 195(u16v) 199 205:202(i16vec3) Load 204(u16v)
201: 14(int16_t) Load 200(i16) 207:206(i16vec3) CompositeConstruct 179 179 179
202: 14(int16_t) ISub 201 179 208:202(i16vec3) IAdd 205 207
Store 200(i16) 202 Store 204(u16v) 208
203: 14(int16_t) Load 200(i16) 210: 14(int16_t) Load 209(i16)
204: 14(int16_t) IAdd 203 179 211: 14(int16_t) ISub 210 179
Store 200(i16) 204 Store 209(i16) 211
205:193(i16vec3) Load 195(u16v) 212: 14(int16_t) Load 209(i16)
206:197(i16vec3) CompositeConstruct 179 179 179 213: 14(int16_t) IAdd 212 179
207:193(i16vec3) ISub 205 206 Store 209(i16) 213
Store 195(u16v) 207 214:202(i16vec3) Load 204(u16v)
208:193(i16vec3) Load 195(u16v) 215:206(i16vec3) CompositeConstruct 179 179 179
209:193(i16vec3) Not 208 216:202(i16vec3) ISub 214 215
Store 195(u16v) 209 Store 204(u16v) 216
210: 14(int16_t) Load 200(i16) 217:202(i16vec3) Load 204(u16v)
Store 200(i16) 210 218:202(i16vec3) Not 217
211:193(i16vec3) Load 195(u16v) Store 204(u16v) 218
212:193(i16vec3) SNegate 211 219: 14(int16_t) Load 209(i16)
Store 195(u16v) 212 Store 209(i16) 219
213: 14(int16_t) Load 200(i16) 220:202(i16vec3) Load 204(u16v)
214: 14(int16_t) Load 200(i16) 221:202(i16vec3) SNegate 220
215: 14(int16_t) IAdd 214 213 Store 204(u16v) 221
Store 200(i16) 215 222: 14(int16_t) Load 209(i16)
216:193(i16vec3) Load 195(u16v) 223: 14(int16_t) Load 209(i16)
217:193(i16vec3) Load 195(u16v) 224: 14(int16_t) IAdd 223 222
218:193(i16vec3) ISub 217 216 Store 209(i16) 224
Store 195(u16v) 218 225:202(i16vec3) Load 204(u16v)
221: 14(int16_t) Load 200(i16) 226:202(i16vec3) Load 204(u16v)
222: 27(int) SConvert 221 227:202(i16vec3) ISub 226 225
223: 27(int) Load 220(i) Store 204(u16v) 227
224: 27(int) IMul 223 222 230: 14(int16_t) Load 209(i16)
Store 220(i) 224 231: 27(int) SConvert 230
228:193(i16vec3) Load 195(u16v) 232: 27(int) Load 229(i)
229: 225(ivec3) UConvert 228 233: 27(int) IMul 232 231
230: 225(ivec3) Load 227(uv) Store 229(i) 233
231: 225(ivec3) UDiv 230 229 237:202(i16vec3) Load 204(u16v)
Store 227(uv) 231 238: 234(ivec3) UConvert 237
232: 14(int16_t) Load 200(i16) 239: 234(ivec3) Load 236(uv)
233: 27(int) SConvert 232 240: 234(ivec3) UDiv 239 238
234: 17(int) Bitcast 233 Store 236(uv) 240
235: 225(ivec3) Load 227(uv) 241: 14(int16_t) Load 209(i16)
236: 225(ivec3) CompositeConstruct 234 234 234 242: 27(int) SConvert 241
237: 225(ivec3) UMod 235 236 243: 17(int) Bitcast 242
Store 227(uv) 237 244: 234(ivec3) Load 236(uv)
238:193(i16vec3) Load 195(u16v) 245: 234(ivec3) CompositeConstruct 243 243 243
239: 225(ivec3) UConvert 238 246: 234(ivec3) UMod 244 245
240: 225(ivec3) Load 227(uv) Store 236(uv) 246
241: 225(ivec3) IAdd 239 240 247:202(i16vec3) Load 204(u16v)
Store 227(uv) 241 248: 234(ivec3) UConvert 247
244: 14(int16_t) Load 200(i16) 249: 234(ivec3) Load 236(uv)
245: 71(int64_t) SConvert 244 250: 234(ivec3) IAdd 248 249
246: 71(int64_t) Load 243(i64) Store 236(uv) 250
247: 71(int64_t) ISub 245 246 253: 14(int16_t) Load 209(i16)
Store 243(i64) 247 254: 71(int64_t) SConvert 253
248:193(i16vec3) Load 195(u16v) 255: 71(int64_t) Load 252(i64)
249: 225(ivec3) UConvert 248 256: 71(int64_t) ISub 254 255
250: 225(ivec3) Load 227(uv) Store 252(i64) 256
251: 225(ivec3) IMul 249 250 257:202(i16vec3) Load 204(u16v)
Store 227(uv) 251 258: 234(ivec3) UConvert 257
252: 14(int16_t) Load 200(i16) 259: 234(ivec3) Load 236(uv)
253: 71(int64_t) SConvert 252 260: 234(ivec3) IMul 258 259
254: 71(int64_t) Load 243(i64) Store 236(uv) 260
255: 71(int64_t) IMul 253 254 261: 14(int16_t) Load 209(i16)
Store 243(i64) 255 262: 71(int64_t) SConvert 261
256: 14(int16_t) Load 200(i16) 263: 71(int64_t) Load 252(i64)
257: 27(int) SConvert 256 264: 71(int64_t) IMul 262 263
258: 27(int) Load 220(i) Store 252(i64) 264
259: 27(int) SMod 257 258 265: 14(int16_t) Load 209(i16)
Store 220(i) 259 266: 27(int) SConvert 265
260: 14(int16_t) Load 200(i16) 267: 27(int) Load 229(i)
261:193(i16vec3) Load 195(u16v) 268: 27(int) SMod 266 267
262:197(i16vec3) CompositeConstruct 260 260 260 Store 229(i) 268
263:193(i16vec3) ShiftLeftLogical 261 262 269: 14(int16_t) Load 209(i16)
Store 195(u16v) 263 270:202(i16vec3) Load 204(u16v)
265: 37(ptr) AccessChain 195(u16v) 264 271:206(i16vec3) CompositeConstruct 269 269 269
266: 36(int16_t) Load 265 272:202(i16vec3) ShiftLeftLogical 270 271
267: 14(int16_t) Load 200(i16) Store 204(u16v) 272
268: 14(int16_t) ShiftRightArithmetic 267 266 274: 37(ptr) AccessChain 204(u16v) 273
Store 200(i16) 268 275: 36(int16_t) Load 274
269: 14(int16_t) Load 200(i16) 276: 14(int16_t) Load 209(i16)
271: 37(ptr) AccessChain 195(u16v) 270 277: 14(int16_t) ShiftRightArithmetic 276 275
272: 36(int16_t) Load 271 Store 209(i16) 277
273: 14(int16_t) ShiftLeftLogical 269 272 278: 14(int16_t) Load 209(i16)
Store 200(i16) 273 280: 37(ptr) AccessChain 204(u16v) 279
274:193(i16vec3) Load 195(u16v) 281: 36(int16_t) Load 280
275: 27(int) Load 220(i) 282: 14(int16_t) ShiftLeftLogical 278 281
277: 276(ivec3) CompositeConstruct 275 275 275 Store 209(i16) 282
278:193(i16vec3) ShiftLeftLogical 274 277 283:202(i16vec3) Load 204(u16v)
279: 225(ivec3) UConvert 278 284: 27(int) Load 229(i)
Store 227(uv) 279 286: 285(ivec3) CompositeConstruct 284 284 284
283: 37(ptr) AccessChain 195(u16v) 282 287:202(i16vec3) ShiftLeftLogical 283 286
284: 36(int16_t) Load 283 288: 234(ivec3) UConvert 287
285: 14(int16_t) Load 200(i16) Store 236(uv) 288
286: 36(int16_t) Bitcast 285 292: 37(ptr) AccessChain 204(u16v) 291
287: 173(bool) INotEqual 284 286 293: 36(int16_t) Load 292
Store 281(b) 287 294: 14(int16_t) Load 209(i16)
288: 14(int16_t) Load 200(i16) 295: 36(int16_t) Bitcast 294
289: 36(int16_t) Bitcast 288 296: 173(bool) INotEqual 293 295
290: 37(ptr) AccessChain 195(u16v) 282 Store 290(b) 296
291: 36(int16_t) Load 290 297: 14(int16_t) Load 209(i16)
292: 173(bool) IEqual 289 291 298: 36(int16_t) Bitcast 297
Store 281(b) 292 299: 37(ptr) AccessChain 204(u16v) 291
293: 37(ptr) AccessChain 195(u16v) 282 300: 36(int16_t) Load 299
294: 36(int16_t) Load 293 301: 173(bool) IEqual 298 300
295: 17(int) UConvert 294 Store 290(b) 301
297: 296(ptr) AccessChain 227(uv) 264 302: 37(ptr) AccessChain 204(u16v) 291
298: 17(int) Load 297 303: 36(int16_t) Load 302
299: 173(bool) UGreaterThan 295 298 304: 17(int) UConvert 303
Store 281(b) 299 306: 305(ptr) AccessChain 236(uv) 273
300: 14(int16_t) Load 200(i16) 307: 17(int) Load 306
301: 27(int) SConvert 300 308: 173(bool) UGreaterThan 304 307
302: 27(int) Load 220(i) Store 290(b) 308
303: 173(bool) SLessThan 301 302 309: 14(int16_t) Load 209(i16)
Store 281(b) 303 310: 27(int) SConvert 309
304: 37(ptr) AccessChain 195(u16v) 264 311: 27(int) Load 229(i)
305: 36(int16_t) Load 304 312: 173(bool) SLessThan 310 311
306: 17(int) UConvert 305 Store 290(b) 312
307: 296(ptr) AccessChain 227(uv) 282 313: 37(ptr) AccessChain 204(u16v) 273
308: 17(int) Load 307 314: 36(int16_t) Load 313
309: 173(bool) UGreaterThanEqual 306 308 315: 17(int) UConvert 314
Store 281(b) 309 316: 305(ptr) AccessChain 236(uv) 291
310: 14(int16_t) Load 200(i16) 317: 17(int) Load 316
311: 27(int) SConvert 310 318: 173(bool) UGreaterThanEqual 315 317
312: 27(int) Load 220(i) Store 290(b) 318
313: 173(bool) SLessThanEqual 311 312 319: 14(int16_t) Load 209(i16)
Store 281(b) 313 320: 27(int) SConvert 319
314: 14(int16_t) Load 200(i16) 321: 27(int) Load 229(i)
315: 27(int) SConvert 314 322: 173(bool) SLessThanEqual 320 321
316: 17(int) Bitcast 315 Store 290(b) 322
317: 225(ivec3) Load 227(uv) 323: 14(int16_t) Load 209(i16)
318: 225(ivec3) CompositeConstruct 316 316 316 324: 27(int) SConvert 323
319: 225(ivec3) BitwiseOr 317 318 325: 17(int) Bitcast 324
Store 227(uv) 319 326: 234(ivec3) Load 236(uv)
320: 14(int16_t) Load 200(i16) 327: 234(ivec3) CompositeConstruct 325 325 325
321: 27(int) SConvert 320 328: 234(ivec3) BitwiseOr 326 327
322: 27(int) Load 220(i) Store 236(uv) 328
323: 27(int) BitwiseOr 321 322 329: 14(int16_t) Load 209(i16)
Store 220(i) 323 330: 27(int) SConvert 329
324: 14(int16_t) Load 200(i16) 331: 27(int) Load 229(i)
325: 71(int64_t) SConvert 324 332: 27(int) BitwiseOr 330 331
326: 71(int64_t) Load 243(i64) Store 229(i) 332
327: 71(int64_t) BitwiseAnd 326 325 333: 14(int16_t) Load 209(i16)
Store 243(i64) 327 334: 71(int64_t) SConvert 333
328:193(i16vec3) Load 195(u16v) 335: 71(int64_t) Load 252(i64)
329: 225(ivec3) UConvert 328 336: 71(int64_t) BitwiseAnd 335 334
330: 225(ivec3) Load 227(uv) Store 252(i64) 336
331: 225(ivec3) BitwiseAnd 329 330 337:202(i16vec3) Load 204(u16v)
Store 227(uv) 331 338: 234(ivec3) UConvert 337
332: 14(int16_t) Load 200(i16) 339: 234(ivec3) Load 236(uv)
333: 27(int) SConvert 332 340: 234(ivec3) BitwiseAnd 338 339
334: 17(int) Bitcast 333 Store 236(uv) 340
335: 225(ivec3) Load 227(uv) 341: 14(int16_t) Load 209(i16)
336: 225(ivec3) CompositeConstruct 334 334 334 342: 27(int) SConvert 341
337: 225(ivec3) BitwiseXor 335 336 343: 17(int) Bitcast 342
Store 227(uv) 337 344: 234(ivec3) Load 236(uv)
338:193(i16vec3) Load 195(u16v) 345: 234(ivec3) CompositeConstruct 343 343 343
339: 14(int16_t) Load 200(i16) 346: 234(ivec3) BitwiseXor 344 345
340: 36(int16_t) Bitcast 339 Store 236(uv) 346
341:193(i16vec3) CompositeConstruct 340 340 340 347:202(i16vec3) Load 204(u16v)
342:193(i16vec3) BitwiseXor 338 341 348: 14(int16_t) Load 209(i16)
Store 195(u16v) 342 349: 36(int16_t) Bitcast 348
350:202(i16vec3) CompositeConstruct 349 349 349
351:202(i16vec3) BitwiseXor 347 350
Store 204(u16v) 351
354: 14(int16_t) Load 209(i16)
355: 352(ptr) AccessChain 196(arr) 354
356: 97(float) Load 355
Store 353(f) 356
Return Return
FunctionEnd FunctionEnd
12(builtinFuncs(): 2 Function None 3 12(builtinFuncs(): 2 Function None 3
13: Label 13: Label
343(i16v): 53(ptr) Variable Function 357(i16v): 53(ptr) Variable Function
346(i16): 15(ptr) Variable Function 360(i16): 15(ptr) Variable Function
356(u16v): 194(ptr) Variable Function 370(u16v): 203(ptr) Variable Function
358(u16): 37(ptr) Variable Function 372(u16): 37(ptr) Variable Function
428(i32): 219(ptr) Variable Function 442(i32): 228(ptr) Variable Function
431(i64): 242(ptr) Variable Function 445(i64): 251(ptr) Variable Function
434(i16v4): 433(ptr) Variable Function 448(i16v4): 447(ptr) Variable Function
437(u32): 296(ptr) Variable Function 451(u32): 305(ptr) Variable Function
438(u16v2): 58(ptr) Variable Function 452(u16v2): 58(ptr) Variable Function
442(u64): 441(ptr) Variable Function 456(u64): 455(ptr) Variable Function
445(u16v4): 444(ptr) Variable Function 459(u16v4): 458(ptr) Variable Function
457(bv): 456(ptr) Variable Function 471(bv): 470(ptr) Variable Function
344: 52(i16vec2) Load 343(i16v) 358: 52(i16vec2) Load 357(i16v)
345: 52(i16vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 344 359: 52(i16vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 358
Store 343(i16v) 345 Store 357(i16v) 359
347: 14(int16_t) Load 346(i16) 361: 14(int16_t) Load 360(i16)
348: 14(int16_t) ExtInst 1(GLSL.std.450) 7(SSign) 347 362: 14(int16_t) ExtInst 1(GLSL.std.450) 7(SSign) 361
Store 346(i16) 348 Store 360(i16) 362
349: 52(i16vec2) Load 343(i16v) 363: 52(i16vec2) Load 357(i16v)
350: 14(int16_t) Load 346(i16) 364: 14(int16_t) Load 360(i16)
351: 52(i16vec2) CompositeConstruct 350 350 365: 52(i16vec2) CompositeConstruct 364 364
352: 52(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 349 351 366: 52(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 363 365
Store 343(i16v) 352 Store 357(i16v) 366
353: 52(i16vec2) Load 343(i16v) 367: 52(i16vec2) Load 357(i16v)
355: 52(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 353 354 369: 52(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 367 368
Store 343(i16v) 355 Store 357(i16v) 369
357:193(i16vec3) Load 356(u16v) 371:202(i16vec3) Load 370(u16v)
359: 36(int16_t) Load 358(u16) 373: 36(int16_t) Load 372(u16)
360:193(i16vec3) CompositeConstruct 359 359 359 374:202(i16vec3) CompositeConstruct 373 373 373
361:193(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 357 360 375:202(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 371 374
Store 356(u16v) 361 Store 370(u16v) 375
362:193(i16vec3) Load 356(u16v) 376:202(i16vec3) Load 370(u16v)
364:193(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 362 363 378:202(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 376 377
Store 356(u16v) 364 Store 370(u16v) 378
365: 52(i16vec2) Load 343(i16v) 379: 52(i16vec2) Load 357(i16v)
366: 14(int16_t) Load 346(i16) 380: 14(int16_t) Load 360(i16)
367: 52(i16vec2) CompositeConstruct 366 366 381: 52(i16vec2) CompositeConstruct 380 380
368: 52(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 365 367 382: 52(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 379 381
Store 343(i16v) 368 Store 357(i16v) 382
369: 52(i16vec2) Load 343(i16v) 383: 52(i16vec2) Load 357(i16v)
370: 52(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 369 354 384: 52(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 383 368
Store 343(i16v) 370 Store 357(i16v) 384
371:193(i16vec3) Load 356(u16v) 385:202(i16vec3) Load 370(u16v)
372: 36(int16_t) Load 358(u16) 386: 36(int16_t) Load 372(u16)
373:193(i16vec3) CompositeConstruct 372 372 372 387:202(i16vec3) CompositeConstruct 386 386 386
374:193(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 371 373 388:202(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 385 387
Store 356(u16v) 374 Store 370(u16v) 388
375:193(i16vec3) Load 356(u16v) 389:202(i16vec3) Load 370(u16v)
376:193(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 375 363 390:202(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 389 377
Store 356(u16v) 376 Store 370(u16v) 390
377: 52(i16vec2) Load 343(i16v) 391: 52(i16vec2) Load 357(i16v)
378: 14(int16_t) Load 346(i16) 392: 14(int16_t) Load 360(i16)
379: 14(int16_t) SNegate 378 393: 14(int16_t) SNegate 392
380: 14(int16_t) Load 346(i16) 394: 14(int16_t) Load 360(i16)
381: 52(i16vec2) CompositeConstruct 379 379 395: 52(i16vec2) CompositeConstruct 393 393
382: 52(i16vec2) CompositeConstruct 380 380 396: 52(i16vec2) CompositeConstruct 394 394
383: 52(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 377 381 382 397: 52(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 391 395 396
Store 343(i16v) 383 Store 357(i16v) 397
384: 52(i16vec2) Load 343(i16v) 398: 52(i16vec2) Load 357(i16v)
385: 52(i16vec2) Load 343(i16v) 399: 52(i16vec2) Load 357(i16v)
386: 52(i16vec2) SNegate 385 400: 52(i16vec2) SNegate 399
387: 52(i16vec2) Load 343(i16v) 401: 52(i16vec2) Load 357(i16v)
388: 52(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 384 386 387 402: 52(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 398 400 401
Store 343(i16v) 388 Store 357(i16v) 402
389:193(i16vec3) Load 356(u16v) 403:202(i16vec3) Load 370(u16v)
390: 36(int16_t) Load 358(u16) 404: 36(int16_t) Load 372(u16)
391: 36(int16_t) SNegate 390 405: 36(int16_t) SNegate 404
392: 36(int16_t) Load 358(u16) 406: 36(int16_t) Load 372(u16)
393:193(i16vec3) CompositeConstruct 391 391 391 407:202(i16vec3) CompositeConstruct 405 405 405
394:193(i16vec3) CompositeConstruct 392 392 392 408:202(i16vec3) CompositeConstruct 406 406 406
395:193(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 389 393 394 409:202(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 403 407 408
Store 356(u16v) 395 Store 370(u16v) 409
396:193(i16vec3) Load 356(u16v) 410:202(i16vec3) Load 370(u16v)
397:193(i16vec3) Load 356(u16v) 411:202(i16vec3) Load 370(u16v)
398:193(i16vec3) SNegate 397 412:202(i16vec3) SNegate 411
399:193(i16vec3) Load 356(u16v) 413:202(i16vec3) Load 370(u16v)
400:193(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 396 398 399 414:202(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 410 412 413
Store 356(u16v) 400 Store 370(u16v) 414
401: 15(ptr) AccessChain 343(i16v) 282 415: 15(ptr) AccessChain 357(i16v) 291
402: 14(int16_t) Load 401 416: 14(int16_t) Load 415
403: 15(ptr) AccessChain 343(i16v) 264 417: 15(ptr) AccessChain 357(i16v) 273
404: 14(int16_t) Load 403 418: 14(int16_t) Load 417
406: 14(int16_t) Select 405 404 402 420: 14(int16_t) Select 419 418 416
Store 346(i16) 406 Store 360(i16) 420
407: 14(int16_t) Load 346(i16) 421: 14(int16_t) Load 360(i16)
408: 52(i16vec2) CompositeConstruct 407 407 422: 52(i16vec2) CompositeConstruct 421 421
409: 14(int16_t) Load 346(i16) 423: 14(int16_t) Load 360(i16)
410: 14(int16_t) SNegate 409 424: 14(int16_t) SNegate 423
411: 52(i16vec2) CompositeConstruct 410 410 425: 52(i16vec2) CompositeConstruct 424 424
414: 52(i16vec2) Select 413 411 408 428: 52(i16vec2) Select 427 425 422
Store 343(i16v) 414 Store 357(i16v) 428
415: 37(ptr) AccessChain 356(u16v) 282 429: 37(ptr) AccessChain 370(u16v) 291
416: 36(int16_t) Load 415 430: 36(int16_t) Load 429
417: 37(ptr) AccessChain 356(u16v) 264 431: 37(ptr) AccessChain 370(u16v) 273
418: 36(int16_t) Load 417 432: 36(int16_t) Load 431
419: 36(int16_t) Select 405 418 416 433: 36(int16_t) Select 419 432 430
Store 358(u16) 419 Store 372(u16) 433
420: 36(int16_t) Load 358(u16) 434: 36(int16_t) Load 372(u16)
421:193(i16vec3) CompositeConstruct 420 420 420 435:202(i16vec3) CompositeConstruct 434 434 434
422: 36(int16_t) Load 358(u16) 436: 36(int16_t) Load 372(u16)
423: 36(int16_t) SNegate 422 437: 36(int16_t) SNegate 436
424:193(i16vec3) CompositeConstruct 423 423 423 438:202(i16vec3) CompositeConstruct 437 437 437
427:193(i16vec3) Select 426 424 421 441:202(i16vec3) Select 440 438 435
Store 356(u16v) 427 Store 370(u16v) 441
429: 52(i16vec2) Load 343(i16v) 443: 52(i16vec2) Load 357(i16v)
430: 27(int) Bitcast 429 444: 27(int) Bitcast 443
Store 428(i32) 430 Store 442(i32) 444
435:432(i16vec4) Load 434(i16v4) 449:446(i16vec4) Load 448(i16v4)
436: 71(int64_t) Bitcast 435 450: 71(int64_t) Bitcast 449
Store 431(i64) 436 Store 445(i64) 450
439: 57(i16vec2) Load 438(u16v2) 453: 57(i16vec2) Load 452(u16v2)
440: 17(int) Bitcast 439 454: 17(int) Bitcast 453
Store 437(u32) 440 Store 451(u32) 454
446:443(i16vec4) Load 445(u16v4) 460:457(i16vec4) Load 459(u16v4)
447: 77(int64_t) Bitcast 446 461: 77(int64_t) Bitcast 460
Store 442(u64) 447 Store 456(u64) 461
448: 27(int) Load 428(i32) 462: 27(int) Load 442(i32)
449: 52(i16vec2) Bitcast 448 463: 52(i16vec2) Bitcast 462
Store 343(i16v) 449 Store 357(i16v) 463
450: 71(int64_t) Load 431(i64) 464: 71(int64_t) Load 445(i64)
451:432(i16vec4) Bitcast 450 465:446(i16vec4) Bitcast 464
Store 434(i16v4) 451 Store 448(i16v4) 465
452: 17(int) Load 437(u32) 466: 17(int) Load 451(u32)
453: 57(i16vec2) Bitcast 452 467: 57(i16vec2) Bitcast 466
Store 438(u16v2) 453 Store 452(u16v2) 467
454: 77(int64_t) Load 442(u64) 468: 77(int64_t) Load 456(u64)
455:443(i16vec4) Bitcast 454 469:457(i16vec4) Bitcast 468
Store 445(u16v4) 455 Store 459(u16v4) 469
458:193(i16vec3) Load 356(u16v) 472:202(i16vec3) Load 370(u16v)
459: 36(int16_t) Load 358(u16) 473: 36(int16_t) Load 372(u16)
460:193(i16vec3) CompositeConstruct 459 459 459 474:202(i16vec3) CompositeConstruct 473 473 473
461: 425(bvec3) ULessThan 458 460 475: 439(bvec3) ULessThan 472 474
Store 457(bv) 461 Store 471(bv) 475
462: 52(i16vec2) Load 343(i16v) 476: 52(i16vec2) Load 357(i16v)
463: 14(int16_t) Load 346(i16) 477: 14(int16_t) Load 360(i16)
464: 52(i16vec2) CompositeConstruct 463 463 478: 52(i16vec2) CompositeConstruct 477 477
465: 174(bvec2) SLessThan 462 464 479: 174(bvec2) SLessThan 476 478
466: 280(ptr) AccessChain 457(bv) 282 480: 289(ptr) AccessChain 471(bv) 291
467: 173(bool) CompositeExtract 465 0 481: 173(bool) CompositeExtract 479 0
Store 466 467
468: 280(ptr) AccessChain 457(bv) 264
469: 173(bool) CompositeExtract 465 1
Store 468 469
470:193(i16vec3) Load 356(u16v)
471: 36(int16_t) Load 358(u16)
472:193(i16vec3) CompositeConstruct 471 471 471
473: 425(bvec3) ULessThanEqual 470 472
Store 457(bv) 473
474: 52(i16vec2) Load 343(i16v)
475: 14(int16_t) Load 346(i16)
476: 52(i16vec2) CompositeConstruct 475 475
477: 174(bvec2) SLessThanEqual 474 476
478: 280(ptr) AccessChain 457(bv) 282
479: 173(bool) CompositeExtract 477 0
Store 478 479
480: 280(ptr) AccessChain 457(bv) 264
481: 173(bool) CompositeExtract 477 1
Store 480 481 Store 480 481
482:193(i16vec3) Load 356(u16v) 482: 289(ptr) AccessChain 471(bv) 273
483: 36(int16_t) Load 358(u16) 483: 173(bool) CompositeExtract 479 1
484:193(i16vec3) CompositeConstruct 483 483 483 Store 482 483
485: 425(bvec3) UGreaterThan 482 484 484:202(i16vec3) Load 370(u16v)
Store 457(bv) 485 485: 36(int16_t) Load 372(u16)
486: 52(i16vec2) Load 343(i16v) 486:202(i16vec3) CompositeConstruct 485 485 485
487: 14(int16_t) Load 346(i16) 487: 439(bvec3) ULessThanEqual 484 486
488: 52(i16vec2) CompositeConstruct 487 487 Store 471(bv) 487
489: 174(bvec2) SGreaterThan 486 488 488: 52(i16vec2) Load 357(i16v)
490: 280(ptr) AccessChain 457(bv) 282 489: 14(int16_t) Load 360(i16)
491: 173(bool) CompositeExtract 489 0 490: 52(i16vec2) CompositeConstruct 489 489
Store 490 491 491: 174(bvec2) SLessThanEqual 488 490
492: 280(ptr) AccessChain 457(bv) 264 492: 289(ptr) AccessChain 471(bv) 291
493: 173(bool) CompositeExtract 489 1 493: 173(bool) CompositeExtract 491 0
Store 492 493 Store 492 493
494:193(i16vec3) Load 356(u16v) 494: 289(ptr) AccessChain 471(bv) 273
495: 36(int16_t) Load 358(u16) 495: 173(bool) CompositeExtract 491 1
496:193(i16vec3) CompositeConstruct 495 495 495 Store 494 495
497: 425(bvec3) UGreaterThanEqual 494 496 496:202(i16vec3) Load 370(u16v)
Store 457(bv) 497 497: 36(int16_t) Load 372(u16)
498: 52(i16vec2) Load 343(i16v) 498:202(i16vec3) CompositeConstruct 497 497 497
499: 14(int16_t) Load 346(i16) 499: 439(bvec3) UGreaterThan 496 498
500: 52(i16vec2) CompositeConstruct 499 499 Store 471(bv) 499
501: 174(bvec2) SGreaterThanEqual 498 500 500: 52(i16vec2) Load 357(i16v)
502: 280(ptr) AccessChain 457(bv) 282 501: 14(int16_t) Load 360(i16)
503: 173(bool) CompositeExtract 501 0 502: 52(i16vec2) CompositeConstruct 501 501
Store 502 503 503: 174(bvec2) SGreaterThan 500 502
504: 280(ptr) AccessChain 457(bv) 264 504: 289(ptr) AccessChain 471(bv) 291
505: 173(bool) CompositeExtract 501 1 505: 173(bool) CompositeExtract 503 0
Store 504 505 Store 504 505
506:193(i16vec3) Load 356(u16v) 506: 289(ptr) AccessChain 471(bv) 273
507: 36(int16_t) Load 358(u16) 507: 173(bool) CompositeExtract 503 1
508:193(i16vec3) CompositeConstruct 507 507 507 Store 506 507
509: 425(bvec3) IEqual 506 508 508:202(i16vec3) Load 370(u16v)
Store 457(bv) 509 509: 36(int16_t) Load 372(u16)
510: 52(i16vec2) Load 343(i16v) 510:202(i16vec3) CompositeConstruct 509 509 509
511: 14(int16_t) Load 346(i16) 511: 439(bvec3) UGreaterThanEqual 508 510
512: 52(i16vec2) CompositeConstruct 511 511 Store 471(bv) 511
513: 174(bvec2) IEqual 510 512 512: 52(i16vec2) Load 357(i16v)
514: 280(ptr) AccessChain 457(bv) 282 513: 14(int16_t) Load 360(i16)
515: 173(bool) CompositeExtract 513 0 514: 52(i16vec2) CompositeConstruct 513 513
Store 514 515 515: 174(bvec2) SGreaterThanEqual 512 514
516: 280(ptr) AccessChain 457(bv) 264 516: 289(ptr) AccessChain 471(bv) 291
517: 173(bool) CompositeExtract 513 1 517: 173(bool) CompositeExtract 515 0
Store 516 517 Store 516 517
518:193(i16vec3) Load 356(u16v) 518: 289(ptr) AccessChain 471(bv) 273
519: 36(int16_t) Load 358(u16) 519: 173(bool) CompositeExtract 515 1
520:193(i16vec3) CompositeConstruct 519 519 519 Store 518 519
521: 425(bvec3) INotEqual 518 520 520:202(i16vec3) Load 370(u16v)
Store 457(bv) 521 521: 36(int16_t) Load 372(u16)
522: 52(i16vec2) Load 343(i16v) 522:202(i16vec3) CompositeConstruct 521 521 521
523: 14(int16_t) Load 346(i16) 523: 439(bvec3) IEqual 520 522
524: 52(i16vec2) CompositeConstruct 523 523 Store 471(bv) 523
525: 174(bvec2) INotEqual 522 524 524: 52(i16vec2) Load 357(i16v)
526: 280(ptr) AccessChain 457(bv) 282 525: 14(int16_t) Load 360(i16)
527: 173(bool) CompositeExtract 525 0 526: 52(i16vec2) CompositeConstruct 525 525
Store 526 527 527: 174(bvec2) IEqual 524 526
528: 280(ptr) AccessChain 457(bv) 264 528: 289(ptr) AccessChain 471(bv) 291
529: 173(bool) CompositeExtract 525 1 529: 173(bool) CompositeExtract 527 0
Store 528 529 Store 528 529
530: 289(ptr) AccessChain 471(bv) 273
531: 173(bool) CompositeExtract 527 1
Store 530 531
532:202(i16vec3) Load 370(u16v)
533: 36(int16_t) Load 372(u16)
534:202(i16vec3) CompositeConstruct 533 533 533
535: 439(bvec3) INotEqual 532 534
Store 471(bv) 535
536: 52(i16vec2) Load 357(i16v)
537: 14(int16_t) Load 360(i16)
538: 52(i16vec2) CompositeConstruct 537 537
539: 174(bvec2) INotEqual 536 538
540: 289(ptr) AccessChain 471(bv) 291
541: 173(bool) CompositeExtract 539 0
Store 540 541
542: 289(ptr) AccessChain 471(bv) 273
543: 173(bool) CompositeExtract 539 1
Store 542 543
Return Return
FunctionEnd FunctionEnd

View File

@ -1,7 +1,7 @@
spv.int8.frag spv.int8.frag
// Module Version 10300 // Module Version 10300
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 530 // Id's are bound by 544
Capability Shader Capability Shader
Capability Float16 Capability Float16
@ -48,53 +48,55 @@ spv.int8.frag
Name 117 "f64v" Name 117 "f64v"
Name 144 "u16v" Name 144 "u16v"
Name 174 "bv" Name 174 "bv"
Name 192 "u8v" Name 193 "arr"
Name 197 "i8" Name 201 "u8v"
Name 217 "i" Name 206 "i8"
Name 224 "uv" Name 226 "i"
Name 240 "i16" Name 233 "uv"
Name 276 "b" Name 249 "i16"
Name 338 "i8v" Name 285 "b"
Name 341 "i8" Name 348 "f"
Name 351 "u8v" Name 352 "i8v"
Name 353 "u8" Name 355 "i8"
Name 423 "i16" Name 365 "u8v"
Name 426 "i32" Name 367 "u8"
Name 429 "i8v4" Name 437 "i16"
Name 433 "u16" Name 440 "i32"
Name 434 "u8v2" Name 443 "i8v4"
Name 437 "u32" Name 447 "u16"
Name 440 "u8v4" Name 448 "u8v2"
Name 452 "bv" Name 451 "u32"
Name 525 "Block" Name 454 "u8v4"
MemberName 525(Block) 0 "i8" Name 466 "bv"
MemberName 525(Block) 1 "i8v2" Name 539 "Block"
MemberName 525(Block) 2 "i8v3" MemberName 539(Block) 0 "i8"
MemberName 525(Block) 3 "i8v4" MemberName 539(Block) 1 "i8v2"
MemberName 525(Block) 4 "u8" MemberName 539(Block) 2 "i8v3"
MemberName 525(Block) 5 "u8v2" MemberName 539(Block) 3 "i8v4"
MemberName 525(Block) 6 "u8v3" MemberName 539(Block) 4 "u8"
MemberName 525(Block) 7 "u8v4" MemberName 539(Block) 5 "u8v2"
Name 527 "block" MemberName 539(Block) 6 "u8v3"
Name 528 "si8" MemberName 539(Block) 7 "u8v4"
Name 529 "su8" Name 541 "block"
Name 542 "si8"
Name 543 "su8"
MemberDecorate 24(Uniforms) 0 Offset 0 MemberDecorate 24(Uniforms) 0 Offset 0
Decorate 24(Uniforms) Block Decorate 24(Uniforms) Block
Decorate 26 DescriptorSet 0 Decorate 26 DescriptorSet 0
Decorate 26 Binding 0 Decorate 26 Binding 0
MemberDecorate 525(Block) 0 Offset 0 MemberDecorate 539(Block) 0 Offset 0
MemberDecorate 525(Block) 1 Offset 2 MemberDecorate 539(Block) 1 Offset 2
MemberDecorate 525(Block) 2 Offset 4 MemberDecorate 539(Block) 2 Offset 4
MemberDecorate 525(Block) 3 Offset 8 MemberDecorate 539(Block) 3 Offset 8
MemberDecorate 525(Block) 4 Offset 12 MemberDecorate 539(Block) 4 Offset 12
MemberDecorate 525(Block) 5 Offset 14 MemberDecorate 539(Block) 5 Offset 14
MemberDecorate 525(Block) 6 Offset 16 MemberDecorate 539(Block) 6 Offset 16
MemberDecorate 525(Block) 7 Offset 20 MemberDecorate 539(Block) 7 Offset 20
Decorate 525(Block) Block Decorate 539(Block) Block
Decorate 527(block) DescriptorSet 0 Decorate 541(block) DescriptorSet 0
Decorate 527(block) Binding 1 Decorate 541(block) Binding 1
Decorate 528(si8) SpecId 100 Decorate 542(si8) SpecId 100
Decorate 529(su8) SpecId 101 Decorate 543(su8) SpecId 101
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
14: TypeInt 8 1 14: TypeInt 8 1
@ -159,36 +161,45 @@ spv.int8.frag
182: 36(int8_t) Constant 1 182: 36(int8_t) Constant 1
183: 49(i8vec2) ConstantComposite 181 181 183: 49(i8vec2) ConstantComposite 181 181
184: 49(i8vec2) ConstantComposite 182 182 184: 49(i8vec2) ConstantComposite 182 182
190: TypeVector 36(int8_t) 3 190: 17(int) Constant 4
191: TypePointer Function 190(i8vec3) 191: TypeArray 108(float) 190
194: TypeVector 14(int8_t) 3 192: TypePointer Function 191
216: TypePointer Function 27(int) 194: 108(float) Constant 1065353216
222: TypeVector 17(int) 3 195: 108(float) Constant 1073741824
223: TypePointer Function 222(ivec3) 196: 108(float) Constant 1077936128
239: TypePointer Function 57(int16_t) 197: 108(float) Constant 1082130432
261: 17(int) Constant 1 198: 191 ConstantComposite 194 195 196 197
267: 17(int) Constant 2 199: TypeVector 36(int8_t) 3
275: TypePointer Function 171(bool) 200: TypePointer Function 199(i8vec3)
277: 17(int) Constant 0 203: TypeVector 14(int8_t) 3
291: TypePointer Function 17(int) 225: TypePointer Function 27(int)
349: 52(i8vec2) ConstantComposite 21 21 231: TypeVector 17(int) 3
358: 190(i8vec3) ConstantComposite 181 181 181 232: TypePointer Function 231(ivec3)
400: 171(bool) ConstantTrue 248: TypePointer Function 57(int16_t)
407: 171(bool) ConstantFalse 270: 17(int) Constant 1
408: 172(bvec2) ConstantComposite 407 407 276: 17(int) Constant 2
420: TypeVector 171(bool) 3 284: TypePointer Function 171(bool)
421: 420(bvec3) ConstantComposite 407 407 407 286: 17(int) Constant 0
427: TypeVector 14(int8_t) 4 300: TypePointer Function 17(int)
428: TypePointer Function 427(i8vec4) 347: TypePointer Function 108(float)
432: TypePointer Function 64(int16_t) 363: 52(i8vec2) ConstantComposite 21 21
438: TypeVector 36(int8_t) 4 372: 199(i8vec3) ConstantComposite 181 181 181
439: TypePointer Function 438(i8vec4) 414: 171(bool) ConstantTrue
451: TypePointer Function 420(bvec3) 421: 171(bool) ConstantFalse
525(Block): TypeStruct 14(int8_t) 52(i8vec2) 194(i8vec3) 427(i8vec4) 36(int8_t) 49(i8vec2) 190(i8vec3) 438(i8vec4) 422: 172(bvec2) ConstantComposite 421 421
526: TypePointer Uniform 525(Block) 434: TypeVector 171(bool) 3
527(block): 526(ptr) Variable Uniform 435: 434(bvec3) ConstantComposite 421 421 421
528(si8): 14(int8_t) SpecConstant 4294967286 441: TypeVector 14(int8_t) 4
529(su8): 36(int8_t) SpecConstant 20 442: TypePointer Function 441(i8vec4)
446: TypePointer Function 64(int16_t)
452: TypeVector 36(int8_t) 4
453: TypePointer Function 452(i8vec4)
465: TypePointer Function 434(bvec3)
539(Block): TypeStruct 14(int8_t) 52(i8vec2) 203(i8vec3) 441(i8vec4) 36(int8_t) 49(i8vec2) 199(i8vec3) 452(i8vec4)
540: TypePointer Uniform 539(Block)
541(block): 540(ptr) Variable Uniform
542(si8): 14(int8_t) SpecConstant 4294967286
543(su8): 36(int8_t) SpecConstant 20
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
Return Return
@ -360,396 +371,403 @@ spv.int8.frag
FunctionEnd FunctionEnd
10(operators(): 2 Function None 3 10(operators(): 2 Function None 3
11: Label 11: Label
192(u8v): 191(ptr) Variable Function 193(arr): 192(ptr) Variable Function
197(i8): 15(ptr) Variable Function 201(u8v): 200(ptr) Variable Function
217(i): 216(ptr) Variable Function 206(i8): 15(ptr) Variable Function
224(uv): 223(ptr) Variable Function 226(i): 225(ptr) Variable Function
240(i16): 239(ptr) Variable Function 233(uv): 232(ptr) Variable Function
276(b): 275(ptr) Variable Function 249(i16): 248(ptr) Variable Function
193: 190(i8vec3) Load 192(u8v) 285(b): 284(ptr) Variable Function
195: 194(i8vec3) CompositeConstruct 176 176 176 348(f): 347(ptr) Variable Function
196: 190(i8vec3) IAdd 193 195 Store 193(arr) 198
Store 192(u8v) 196 202: 199(i8vec3) Load 201(u8v)
198: 14(int8_t) Load 197(i8) 204: 203(i8vec3) CompositeConstruct 176 176 176
199: 14(int8_t) ISub 198 176 205: 199(i8vec3) IAdd 202 204
Store 197(i8) 199 Store 201(u8v) 205
200: 14(int8_t) Load 197(i8) 207: 14(int8_t) Load 206(i8)
201: 14(int8_t) IAdd 200 176 208: 14(int8_t) ISub 207 176
Store 197(i8) 201 Store 206(i8) 208
202: 190(i8vec3) Load 192(u8v) 209: 14(int8_t) Load 206(i8)
203: 194(i8vec3) CompositeConstruct 176 176 176 210: 14(int8_t) IAdd 209 176
204: 190(i8vec3) ISub 202 203 Store 206(i8) 210
Store 192(u8v) 204 211: 199(i8vec3) Load 201(u8v)
205: 190(i8vec3) Load 192(u8v) 212: 203(i8vec3) CompositeConstruct 176 176 176
206: 190(i8vec3) Not 205 213: 199(i8vec3) ISub 211 212
Store 192(u8v) 206 Store 201(u8v) 213
207: 14(int8_t) Load 197(i8) 214: 199(i8vec3) Load 201(u8v)
Store 197(i8) 207 215: 199(i8vec3) Not 214
208: 190(i8vec3) Load 192(u8v) Store 201(u8v) 215
209: 190(i8vec3) SNegate 208 216: 14(int8_t) Load 206(i8)
Store 192(u8v) 209 Store 206(i8) 216
210: 14(int8_t) Load 197(i8) 217: 199(i8vec3) Load 201(u8v)
211: 14(int8_t) Load 197(i8) 218: 199(i8vec3) SNegate 217
212: 14(int8_t) IAdd 211 210 Store 201(u8v) 218
Store 197(i8) 212 219: 14(int8_t) Load 206(i8)
213: 190(i8vec3) Load 192(u8v) 220: 14(int8_t) Load 206(i8)
214: 190(i8vec3) Load 192(u8v) 221: 14(int8_t) IAdd 220 219
215: 190(i8vec3) ISub 214 213 Store 206(i8) 221
Store 192(u8v) 215 222: 199(i8vec3) Load 201(u8v)
218: 14(int8_t) Load 197(i8) 223: 199(i8vec3) Load 201(u8v)
219: 27(int) SConvert 218 224: 199(i8vec3) ISub 223 222
220: 27(int) Load 217(i) Store 201(u8v) 224
221: 27(int) IMul 220 219 227: 14(int8_t) Load 206(i8)
Store 217(i) 221 228: 27(int) SConvert 227
225: 190(i8vec3) Load 192(u8v) 229: 27(int) Load 226(i)
226: 222(ivec3) UConvert 225 230: 27(int) IMul 229 228
227: 222(ivec3) Load 224(uv) Store 226(i) 230
228: 222(ivec3) UDiv 227 226 234: 199(i8vec3) Load 201(u8v)
Store 224(uv) 228 235: 231(ivec3) UConvert 234
229: 14(int8_t) Load 197(i8) 236: 231(ivec3) Load 233(uv)
230: 27(int) SConvert 229 237: 231(ivec3) UDiv 236 235
231: 17(int) Bitcast 230 Store 233(uv) 237
232: 222(ivec3) Load 224(uv) 238: 14(int8_t) Load 206(i8)
233: 222(ivec3) CompositeConstruct 231 231 231 239: 27(int) SConvert 238
234: 222(ivec3) UMod 232 233 240: 17(int) Bitcast 239
Store 224(uv) 234 241: 231(ivec3) Load 233(uv)
235: 190(i8vec3) Load 192(u8v) 242: 231(ivec3) CompositeConstruct 240 240 240
236: 222(ivec3) UConvert 235 243: 231(ivec3) UMod 241 242
237: 222(ivec3) Load 224(uv) Store 233(uv) 243
238: 222(ivec3) IAdd 236 237 244: 199(i8vec3) Load 201(u8v)
Store 224(uv) 238 245: 231(ivec3) UConvert 244
241: 14(int8_t) Load 197(i8) 246: 231(ivec3) Load 233(uv)
242: 57(int16_t) SConvert 241 247: 231(ivec3) IAdd 245 246
243: 57(int16_t) Load 240(i16) Store 233(uv) 247
244: 57(int16_t) ISub 242 243 250: 14(int8_t) Load 206(i8)
Store 240(i16) 244 251: 57(int16_t) SConvert 250
245: 190(i8vec3) Load 192(u8v) 252: 57(int16_t) Load 249(i16)
246: 222(ivec3) UConvert 245 253: 57(int16_t) ISub 251 252
247: 222(ivec3) Load 224(uv) Store 249(i16) 253
248: 222(ivec3) IMul 246 247 254: 199(i8vec3) Load 201(u8v)
Store 224(uv) 248 255: 231(ivec3) UConvert 254
249: 14(int8_t) Load 197(i8) 256: 231(ivec3) Load 233(uv)
250: 57(int16_t) SConvert 249 257: 231(ivec3) IMul 255 256
251: 57(int16_t) Load 240(i16) Store 233(uv) 257
252: 57(int16_t) IMul 250 251 258: 14(int8_t) Load 206(i8)
Store 240(i16) 252 259: 57(int16_t) SConvert 258
253: 14(int8_t) Load 197(i8) 260: 57(int16_t) Load 249(i16)
254: 27(int) SConvert 253 261: 57(int16_t) IMul 259 260
255: 27(int) Load 217(i) Store 249(i16) 261
256: 27(int) SMod 254 255 262: 14(int8_t) Load 206(i8)
Store 217(i) 256 263: 27(int) SConvert 262
257: 14(int8_t) Load 197(i8) 264: 27(int) Load 226(i)
258: 190(i8vec3) Load 192(u8v) 265: 27(int) SMod 263 264
259: 194(i8vec3) CompositeConstruct 257 257 257 Store 226(i) 265
260: 190(i8vec3) ShiftLeftLogical 258 259 266: 14(int8_t) Load 206(i8)
Store 192(u8v) 260 267: 199(i8vec3) Load 201(u8v)
262: 37(ptr) AccessChain 192(u8v) 261 268: 203(i8vec3) CompositeConstruct 266 266 266
263: 36(int8_t) Load 262 269: 199(i8vec3) ShiftLeftLogical 267 268
264: 14(int8_t) Load 197(i8) Store 201(u8v) 269
265: 14(int8_t) ShiftRightArithmetic 264 263 271: 37(ptr) AccessChain 201(u8v) 270
Store 197(i8) 265 272: 36(int8_t) Load 271
266: 14(int8_t) Load 197(i8) 273: 14(int8_t) Load 206(i8)
268: 37(ptr) AccessChain 192(u8v) 267 274: 14(int8_t) ShiftRightArithmetic 273 272
269: 36(int8_t) Load 268 Store 206(i8) 274
270: 14(int8_t) ShiftLeftLogical 266 269 275: 14(int8_t) Load 206(i8)
Store 197(i8) 270 277: 37(ptr) AccessChain 201(u8v) 276
271: 190(i8vec3) Load 192(u8v) 278: 36(int8_t) Load 277
272: 14(int8_t) Load 197(i8) 279: 14(int8_t) ShiftLeftLogical 275 278
273: 194(i8vec3) CompositeConstruct 272 272 272 Store 206(i8) 279
274: 190(i8vec3) ShiftLeftLogical 271 273 280: 199(i8vec3) Load 201(u8v)
Store 192(u8v) 274 281: 14(int8_t) Load 206(i8)
278: 37(ptr) AccessChain 192(u8v) 277 282: 203(i8vec3) CompositeConstruct 281 281 281
279: 36(int8_t) Load 278 283: 199(i8vec3) ShiftLeftLogical 280 282
280: 14(int8_t) Load 197(i8) Store 201(u8v) 283
281: 36(int8_t) Bitcast 280 287: 37(ptr) AccessChain 201(u8v) 286
282: 171(bool) INotEqual 279 281 288: 36(int8_t) Load 287
Store 276(b) 282 289: 14(int8_t) Load 206(i8)
283: 14(int8_t) Load 197(i8) 290: 36(int8_t) Bitcast 289
284: 36(int8_t) Bitcast 283 291: 171(bool) INotEqual 288 290
285: 37(ptr) AccessChain 192(u8v) 277 Store 285(b) 291
286: 36(int8_t) Load 285 292: 14(int8_t) Load 206(i8)
287: 171(bool) IEqual 284 286 293: 36(int8_t) Bitcast 292
Store 276(b) 287 294: 37(ptr) AccessChain 201(u8v) 286
288: 37(ptr) AccessChain 192(u8v) 277 295: 36(int8_t) Load 294
289: 36(int8_t) Load 288 296: 171(bool) IEqual 293 295
290: 17(int) UConvert 289 Store 285(b) 296
292: 291(ptr) AccessChain 224(uv) 261 297: 37(ptr) AccessChain 201(u8v) 286
293: 17(int) Load 292 298: 36(int8_t) Load 297
294: 171(bool) UGreaterThan 290 293 299: 17(int) UConvert 298
Store 276(b) 294 301: 300(ptr) AccessChain 233(uv) 270
295: 14(int8_t) Load 197(i8) 302: 17(int) Load 301
296: 27(int) SConvert 295 303: 171(bool) UGreaterThan 299 302
297: 27(int) Load 217(i) Store 285(b) 303
298: 171(bool) SLessThan 296 297 304: 14(int8_t) Load 206(i8)
Store 276(b) 298 305: 27(int) SConvert 304
299: 37(ptr) AccessChain 192(u8v) 261 306: 27(int) Load 226(i)
300: 36(int8_t) Load 299 307: 171(bool) SLessThan 305 306
301: 17(int) UConvert 300 Store 285(b) 307
302: 291(ptr) AccessChain 224(uv) 277 308: 37(ptr) AccessChain 201(u8v) 270
303: 17(int) Load 302 309: 36(int8_t) Load 308
304: 171(bool) UGreaterThanEqual 301 303 310: 17(int) UConvert 309
Store 276(b) 304 311: 300(ptr) AccessChain 233(uv) 286
305: 14(int8_t) Load 197(i8) 312: 17(int) Load 311
306: 27(int) SConvert 305 313: 171(bool) UGreaterThanEqual 310 312
307: 27(int) Load 217(i) Store 285(b) 313
308: 171(bool) SLessThanEqual 306 307 314: 14(int8_t) Load 206(i8)
Store 276(b) 308 315: 27(int) SConvert 314
309: 14(int8_t) Load 197(i8) 316: 27(int) Load 226(i)
310: 27(int) SConvert 309 317: 171(bool) SLessThanEqual 315 316
311: 17(int) Bitcast 310 Store 285(b) 317
312: 222(ivec3) Load 224(uv) 318: 14(int8_t) Load 206(i8)
313: 222(ivec3) CompositeConstruct 311 311 311 319: 27(int) SConvert 318
314: 222(ivec3) BitwiseOr 312 313 320: 17(int) Bitcast 319
Store 224(uv) 314 321: 231(ivec3) Load 233(uv)
315: 14(int8_t) Load 197(i8) 322: 231(ivec3) CompositeConstruct 320 320 320
316: 27(int) SConvert 315 323: 231(ivec3) BitwiseOr 321 322
317: 27(int) Load 217(i) Store 233(uv) 323
318: 27(int) BitwiseOr 316 317 324: 14(int8_t) Load 206(i8)
Store 217(i) 318 325: 27(int) SConvert 324
319: 14(int8_t) Load 197(i8) 326: 27(int) Load 226(i)
320: 57(int16_t) SConvert 319 327: 27(int) BitwiseOr 325 326
321: 57(int16_t) Load 240(i16) Store 226(i) 327
322: 57(int16_t) BitwiseAnd 321 320 328: 14(int8_t) Load 206(i8)
Store 240(i16) 322 329: 57(int16_t) SConvert 328
323: 190(i8vec3) Load 192(u8v) 330: 57(int16_t) Load 249(i16)
324: 222(ivec3) UConvert 323 331: 57(int16_t) BitwiseAnd 330 329
325: 222(ivec3) Load 224(uv) Store 249(i16) 331
326: 222(ivec3) BitwiseAnd 324 325 332: 199(i8vec3) Load 201(u8v)
Store 224(uv) 326 333: 231(ivec3) UConvert 332
327: 14(int8_t) Load 197(i8) 334: 231(ivec3) Load 233(uv)
328: 27(int) SConvert 327 335: 231(ivec3) BitwiseAnd 333 334
329: 17(int) Bitcast 328 Store 233(uv) 335
330: 222(ivec3) Load 224(uv) 336: 14(int8_t) Load 206(i8)
331: 222(ivec3) CompositeConstruct 329 329 329 337: 27(int) SConvert 336
332: 222(ivec3) BitwiseXor 330 331 338: 17(int) Bitcast 337
Store 224(uv) 332 339: 231(ivec3) Load 233(uv)
333: 190(i8vec3) Load 192(u8v) 340: 231(ivec3) CompositeConstruct 338 338 338
334: 14(int8_t) Load 197(i8) 341: 231(ivec3) BitwiseXor 339 340
335: 36(int8_t) Bitcast 334 Store 233(uv) 341
336: 190(i8vec3) CompositeConstruct 335 335 335 342: 199(i8vec3) Load 201(u8v)
337: 190(i8vec3) BitwiseXor 333 336 343: 14(int8_t) Load 206(i8)
Store 192(u8v) 337 344: 36(int8_t) Bitcast 343
345: 199(i8vec3) CompositeConstruct 344 344 344
346: 199(i8vec3) BitwiseXor 342 345
Store 201(u8v) 346
349: 14(int8_t) Load 206(i8)
350: 347(ptr) AccessChain 193(arr) 349
351: 108(float) Load 350
Store 348(f) 351
Return Return
FunctionEnd FunctionEnd
12(builtinFuncs(): 2 Function None 3 12(builtinFuncs(): 2 Function None 3
13: Label 13: Label
338(i8v): 53(ptr) Variable Function 352(i8v): 53(ptr) Variable Function
341(i8): 15(ptr) Variable Function 355(i8): 15(ptr) Variable Function
351(u8v): 191(ptr) Variable Function 365(u8v): 200(ptr) Variable Function
353(u8): 37(ptr) Variable Function 367(u8): 37(ptr) Variable Function
423(i16): 239(ptr) Variable Function 437(i16): 248(ptr) Variable Function
426(i32): 216(ptr) Variable Function 440(i32): 225(ptr) Variable Function
429(i8v4): 428(ptr) Variable Function 443(i8v4): 442(ptr) Variable Function
433(u16): 432(ptr) Variable Function 447(u16): 446(ptr) Variable Function
434(u8v2): 50(ptr) Variable Function 448(u8v2): 50(ptr) Variable Function
437(u32): 291(ptr) Variable Function 451(u32): 300(ptr) Variable Function
440(u8v4): 439(ptr) Variable Function 454(u8v4): 453(ptr) Variable Function
452(bv): 451(ptr) Variable Function 466(bv): 465(ptr) Variable Function
339: 52(i8vec2) Load 338(i8v) 353: 52(i8vec2) Load 352(i8v)
340: 52(i8vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 339 354: 52(i8vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 353
Store 338(i8v) 340 Store 352(i8v) 354
342: 14(int8_t) Load 341(i8) 356: 14(int8_t) Load 355(i8)
343: 14(int8_t) ExtInst 1(GLSL.std.450) 7(SSign) 342 357: 14(int8_t) ExtInst 1(GLSL.std.450) 7(SSign) 356
Store 341(i8) 343 Store 355(i8) 357
344: 52(i8vec2) Load 338(i8v) 358: 52(i8vec2) Load 352(i8v)
345: 14(int8_t) Load 341(i8) 359: 14(int8_t) Load 355(i8)
346: 52(i8vec2) CompositeConstruct 345 345 360: 52(i8vec2) CompositeConstruct 359 359
347: 52(i8vec2) ExtInst 1(GLSL.std.450) 39(SMin) 344 346 361: 52(i8vec2) ExtInst 1(GLSL.std.450) 39(SMin) 358 360
Store 338(i8v) 347 Store 352(i8v) 361
348: 52(i8vec2) Load 338(i8v) 362: 52(i8vec2) Load 352(i8v)
350: 52(i8vec2) ExtInst 1(GLSL.std.450) 39(SMin) 348 349 364: 52(i8vec2) ExtInst 1(GLSL.std.450) 39(SMin) 362 363
Store 338(i8v) 350 Store 352(i8v) 364
352: 190(i8vec3) Load 351(u8v) 366: 199(i8vec3) Load 365(u8v)
354: 36(int8_t) Load 353(u8) 368: 36(int8_t) Load 367(u8)
355: 190(i8vec3) CompositeConstruct 354 354 354 369: 199(i8vec3) CompositeConstruct 368 368 368
356: 190(i8vec3) ExtInst 1(GLSL.std.450) 38(UMin) 352 355 370: 199(i8vec3) ExtInst 1(GLSL.std.450) 38(UMin) 366 369
Store 351(u8v) 356 Store 365(u8v) 370
357: 190(i8vec3) Load 351(u8v) 371: 199(i8vec3) Load 365(u8v)
359: 190(i8vec3) ExtInst 1(GLSL.std.450) 38(UMin) 357 358 373: 199(i8vec3) ExtInst 1(GLSL.std.450) 38(UMin) 371 372
Store 351(u8v) 359 Store 365(u8v) 373
360: 52(i8vec2) Load 338(i8v) 374: 52(i8vec2) Load 352(i8v)
361: 14(int8_t) Load 341(i8) 375: 14(int8_t) Load 355(i8)
362: 52(i8vec2) CompositeConstruct 361 361 376: 52(i8vec2) CompositeConstruct 375 375
363: 52(i8vec2) ExtInst 1(GLSL.std.450) 42(SMax) 360 362 377: 52(i8vec2) ExtInst 1(GLSL.std.450) 42(SMax) 374 376
Store 338(i8v) 363 Store 352(i8v) 377
364: 52(i8vec2) Load 338(i8v) 378: 52(i8vec2) Load 352(i8v)
365: 52(i8vec2) ExtInst 1(GLSL.std.450) 42(SMax) 364 349 379: 52(i8vec2) ExtInst 1(GLSL.std.450) 42(SMax) 378 363
Store 338(i8v) 365 Store 352(i8v) 379
366: 190(i8vec3) Load 351(u8v) 380: 199(i8vec3) Load 365(u8v)
367: 36(int8_t) Load 353(u8) 381: 36(int8_t) Load 367(u8)
368: 190(i8vec3) CompositeConstruct 367 367 367 382: 199(i8vec3) CompositeConstruct 381 381 381
369: 190(i8vec3) ExtInst 1(GLSL.std.450) 41(UMax) 366 368 383: 199(i8vec3) ExtInst 1(GLSL.std.450) 41(UMax) 380 382
Store 351(u8v) 369 Store 365(u8v) 383
370: 190(i8vec3) Load 351(u8v) 384: 199(i8vec3) Load 365(u8v)
371: 190(i8vec3) ExtInst 1(GLSL.std.450) 41(UMax) 370 358 385: 199(i8vec3) ExtInst 1(GLSL.std.450) 41(UMax) 384 372
Store 351(u8v) 371 Store 365(u8v) 385
372: 52(i8vec2) Load 338(i8v) 386: 52(i8vec2) Load 352(i8v)
373: 14(int8_t) Load 341(i8) 387: 14(int8_t) Load 355(i8)
374: 14(int8_t) SNegate 373 388: 14(int8_t) SNegate 387
375: 14(int8_t) Load 341(i8) 389: 14(int8_t) Load 355(i8)
376: 52(i8vec2) CompositeConstruct 374 374 390: 52(i8vec2) CompositeConstruct 388 388
377: 52(i8vec2) CompositeConstruct 375 375 391: 52(i8vec2) CompositeConstruct 389 389
378: 52(i8vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 372 376 377 392: 52(i8vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 386 390 391
Store 338(i8v) 378 Store 352(i8v) 392
379: 52(i8vec2) Load 338(i8v) 393: 52(i8vec2) Load 352(i8v)
380: 52(i8vec2) Load 338(i8v) 394: 52(i8vec2) Load 352(i8v)
381: 52(i8vec2) SNegate 380 395: 52(i8vec2) SNegate 394
382: 52(i8vec2) Load 338(i8v) 396: 52(i8vec2) Load 352(i8v)
383: 52(i8vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 379 381 382 397: 52(i8vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 393 395 396
Store 338(i8v) 383 Store 352(i8v) 397
384: 190(i8vec3) Load 351(u8v) 398: 199(i8vec3) Load 365(u8v)
385: 36(int8_t) Load 353(u8) 399: 36(int8_t) Load 367(u8)
386: 36(int8_t) SNegate 385 400: 36(int8_t) SNegate 399
387: 36(int8_t) Load 353(u8) 401: 36(int8_t) Load 367(u8)
388: 190(i8vec3) CompositeConstruct 386 386 386 402: 199(i8vec3) CompositeConstruct 400 400 400
389: 190(i8vec3) CompositeConstruct 387 387 387 403: 199(i8vec3) CompositeConstruct 401 401 401
390: 190(i8vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 384 388 389 404: 199(i8vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 398 402 403
Store 351(u8v) 390 Store 365(u8v) 404
391: 190(i8vec3) Load 351(u8v) 405: 199(i8vec3) Load 365(u8v)
392: 190(i8vec3) Load 351(u8v) 406: 199(i8vec3) Load 365(u8v)
393: 190(i8vec3) SNegate 392 407: 199(i8vec3) SNegate 406
394: 190(i8vec3) Load 351(u8v) 408: 199(i8vec3) Load 365(u8v)
395: 190(i8vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 391 393 394 409: 199(i8vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 405 407 408
Store 351(u8v) 395 Store 365(u8v) 409
396: 15(ptr) AccessChain 338(i8v) 277 410: 15(ptr) AccessChain 352(i8v) 286
397: 14(int8_t) Load 396 411: 14(int8_t) Load 410
398: 15(ptr) AccessChain 338(i8v) 261 412: 15(ptr) AccessChain 352(i8v) 270
399: 14(int8_t) Load 398 413: 14(int8_t) Load 412
401: 14(int8_t) Select 400 399 397 415: 14(int8_t) Select 414 413 411
Store 341(i8) 401 Store 355(i8) 415
402: 14(int8_t) Load 341(i8) 416: 14(int8_t) Load 355(i8)
403: 52(i8vec2) CompositeConstruct 402 402 417: 52(i8vec2) CompositeConstruct 416 416
404: 14(int8_t) Load 341(i8) 418: 14(int8_t) Load 355(i8)
405: 14(int8_t) SNegate 404 419: 14(int8_t) SNegate 418
406: 52(i8vec2) CompositeConstruct 405 405 420: 52(i8vec2) CompositeConstruct 419 419
409: 52(i8vec2) Select 408 406 403 423: 52(i8vec2) Select 422 420 417
Store 338(i8v) 409 Store 352(i8v) 423
410: 37(ptr) AccessChain 351(u8v) 277 424: 37(ptr) AccessChain 365(u8v) 286
411: 36(int8_t) Load 410 425: 36(int8_t) Load 424
412: 37(ptr) AccessChain 351(u8v) 261 426: 37(ptr) AccessChain 365(u8v) 270
413: 36(int8_t) Load 412 427: 36(int8_t) Load 426
414: 36(int8_t) Select 400 413 411 428: 36(int8_t) Select 414 427 425
Store 353(u8) 414 Store 367(u8) 428
415: 36(int8_t) Load 353(u8) 429: 36(int8_t) Load 367(u8)
416: 190(i8vec3) CompositeConstruct 415 415 415 430: 199(i8vec3) CompositeConstruct 429 429 429
417: 36(int8_t) Load 353(u8) 431: 36(int8_t) Load 367(u8)
418: 36(int8_t) SNegate 417 432: 36(int8_t) SNegate 431
419: 190(i8vec3) CompositeConstruct 418 418 418 433: 199(i8vec3) CompositeConstruct 432 432 432
422: 190(i8vec3) Select 421 419 416 436: 199(i8vec3) Select 435 433 430
Store 351(u8v) 422 Store 365(u8v) 436
424: 52(i8vec2) Load 338(i8v) 438: 52(i8vec2) Load 352(i8v)
425: 57(int16_t) Bitcast 424 439: 57(int16_t) Bitcast 438
Store 423(i16) 425 Store 437(i16) 439
430: 427(i8vec4) Load 429(i8v4) 444: 441(i8vec4) Load 443(i8v4)
431: 27(int) Bitcast 430 445: 27(int) Bitcast 444
Store 426(i32) 431 Store 440(i32) 445
435: 49(i8vec2) Load 434(u8v2) 449: 49(i8vec2) Load 448(u8v2)
436: 64(int16_t) Bitcast 435 450: 64(int16_t) Bitcast 449
Store 433(u16) 436 Store 447(u16) 450
441: 438(i8vec4) Load 440(u8v4) 455: 452(i8vec4) Load 454(u8v4)
442: 17(int) Bitcast 441 456: 17(int) Bitcast 455
Store 437(u32) 442 Store 451(u32) 456
443: 57(int16_t) Load 423(i16) 457: 57(int16_t) Load 437(i16)
444: 52(i8vec2) Bitcast 443 458: 52(i8vec2) Bitcast 457
Store 338(i8v) 444 Store 352(i8v) 458
445: 27(int) Load 426(i32) 459: 27(int) Load 440(i32)
446: 427(i8vec4) Bitcast 445 460: 441(i8vec4) Bitcast 459
Store 429(i8v4) 446 Store 443(i8v4) 460
447: 64(int16_t) Load 433(u16) 461: 64(int16_t) Load 447(u16)
448: 49(i8vec2) Bitcast 447 462: 49(i8vec2) Bitcast 461
Store 434(u8v2) 448 Store 448(u8v2) 462
449: 17(int) Load 437(u32) 463: 17(int) Load 451(u32)
450: 438(i8vec4) Bitcast 449 464: 452(i8vec4) Bitcast 463
Store 440(u8v4) 450 Store 454(u8v4) 464
453: 190(i8vec3) Load 351(u8v) 467: 199(i8vec3) Load 365(u8v)
454: 36(int8_t) Load 353(u8) 468: 36(int8_t) Load 367(u8)
455: 190(i8vec3) CompositeConstruct 454 454 454 469: 199(i8vec3) CompositeConstruct 468 468 468
456: 420(bvec3) ULessThan 453 455 470: 434(bvec3) ULessThan 467 469
Store 452(bv) 456 Store 466(bv) 470
457: 52(i8vec2) Load 338(i8v) 471: 52(i8vec2) Load 352(i8v)
458: 14(int8_t) Load 341(i8) 472: 14(int8_t) Load 355(i8)
459: 52(i8vec2) CompositeConstruct 458 458 473: 52(i8vec2) CompositeConstruct 472 472
460: 172(bvec2) SLessThan 457 459 474: 172(bvec2) SLessThan 471 473
461: 275(ptr) AccessChain 452(bv) 277 475: 284(ptr) AccessChain 466(bv) 286
462: 171(bool) CompositeExtract 460 0 476: 171(bool) CompositeExtract 474 0
Store 461 462
463: 275(ptr) AccessChain 452(bv) 261
464: 171(bool) CompositeExtract 460 1
Store 463 464
465: 190(i8vec3) Load 351(u8v)
466: 36(int8_t) Load 353(u8)
467: 190(i8vec3) CompositeConstruct 466 466 466
468: 420(bvec3) ULessThanEqual 465 467
Store 452(bv) 468
469: 52(i8vec2) Load 338(i8v)
470: 14(int8_t) Load 341(i8)
471: 52(i8vec2) CompositeConstruct 470 470
472: 172(bvec2) SLessThanEqual 469 471
473: 275(ptr) AccessChain 452(bv) 277
474: 171(bool) CompositeExtract 472 0
Store 473 474
475: 275(ptr) AccessChain 452(bv) 261
476: 171(bool) CompositeExtract 472 1
Store 475 476 Store 475 476
477: 190(i8vec3) Load 351(u8v) 477: 284(ptr) AccessChain 466(bv) 270
478: 36(int8_t) Load 353(u8) 478: 171(bool) CompositeExtract 474 1
479: 190(i8vec3) CompositeConstruct 478 478 478 Store 477 478
480: 420(bvec3) UGreaterThan 477 479 479: 199(i8vec3) Load 365(u8v)
Store 452(bv) 480 480: 36(int8_t) Load 367(u8)
481: 52(i8vec2) Load 338(i8v) 481: 199(i8vec3) CompositeConstruct 480 480 480
482: 14(int8_t) Load 341(i8) 482: 434(bvec3) ULessThanEqual 479 481
483: 52(i8vec2) CompositeConstruct 482 482 Store 466(bv) 482
484: 172(bvec2) SGreaterThan 481 483 483: 52(i8vec2) Load 352(i8v)
485: 275(ptr) AccessChain 452(bv) 277 484: 14(int8_t) Load 355(i8)
486: 171(bool) CompositeExtract 484 0 485: 52(i8vec2) CompositeConstruct 484 484
Store 485 486 486: 172(bvec2) SLessThanEqual 483 485
487: 275(ptr) AccessChain 452(bv) 261 487: 284(ptr) AccessChain 466(bv) 286
488: 171(bool) CompositeExtract 484 1 488: 171(bool) CompositeExtract 486 0
Store 487 488 Store 487 488
489: 190(i8vec3) Load 351(u8v) 489: 284(ptr) AccessChain 466(bv) 270
490: 36(int8_t) Load 353(u8) 490: 171(bool) CompositeExtract 486 1
491: 190(i8vec3) CompositeConstruct 490 490 490 Store 489 490
492: 420(bvec3) UGreaterThanEqual 489 491 491: 199(i8vec3) Load 365(u8v)
Store 452(bv) 492 492: 36(int8_t) Load 367(u8)
493: 52(i8vec2) Load 338(i8v) 493: 199(i8vec3) CompositeConstruct 492 492 492
494: 14(int8_t) Load 341(i8) 494: 434(bvec3) UGreaterThan 491 493
495: 52(i8vec2) CompositeConstruct 494 494 Store 466(bv) 494
496: 172(bvec2) SGreaterThanEqual 493 495 495: 52(i8vec2) Load 352(i8v)
497: 275(ptr) AccessChain 452(bv) 277 496: 14(int8_t) Load 355(i8)
498: 171(bool) CompositeExtract 496 0 497: 52(i8vec2) CompositeConstruct 496 496
Store 497 498 498: 172(bvec2) SGreaterThan 495 497
499: 275(ptr) AccessChain 452(bv) 261 499: 284(ptr) AccessChain 466(bv) 286
500: 171(bool) CompositeExtract 496 1 500: 171(bool) CompositeExtract 498 0
Store 499 500 Store 499 500
501: 190(i8vec3) Load 351(u8v) 501: 284(ptr) AccessChain 466(bv) 270
502: 36(int8_t) Load 353(u8) 502: 171(bool) CompositeExtract 498 1
503: 190(i8vec3) CompositeConstruct 502 502 502 Store 501 502
504: 420(bvec3) IEqual 501 503 503: 199(i8vec3) Load 365(u8v)
Store 452(bv) 504 504: 36(int8_t) Load 367(u8)
505: 52(i8vec2) Load 338(i8v) 505: 199(i8vec3) CompositeConstruct 504 504 504
506: 14(int8_t) Load 341(i8) 506: 434(bvec3) UGreaterThanEqual 503 505
507: 52(i8vec2) CompositeConstruct 506 506 Store 466(bv) 506
508: 172(bvec2) IEqual 505 507 507: 52(i8vec2) Load 352(i8v)
509: 275(ptr) AccessChain 452(bv) 277 508: 14(int8_t) Load 355(i8)
510: 171(bool) CompositeExtract 508 0 509: 52(i8vec2) CompositeConstruct 508 508
Store 509 510 510: 172(bvec2) SGreaterThanEqual 507 509
511: 275(ptr) AccessChain 452(bv) 261 511: 284(ptr) AccessChain 466(bv) 286
512: 171(bool) CompositeExtract 508 1 512: 171(bool) CompositeExtract 510 0
Store 511 512 Store 511 512
513: 190(i8vec3) Load 351(u8v) 513: 284(ptr) AccessChain 466(bv) 270
514: 36(int8_t) Load 353(u8) 514: 171(bool) CompositeExtract 510 1
515: 190(i8vec3) CompositeConstruct 514 514 514 Store 513 514
516: 420(bvec3) INotEqual 513 515 515: 199(i8vec3) Load 365(u8v)
Store 452(bv) 516 516: 36(int8_t) Load 367(u8)
517: 52(i8vec2) Load 338(i8v) 517: 199(i8vec3) CompositeConstruct 516 516 516
518: 14(int8_t) Load 341(i8) 518: 434(bvec3) IEqual 515 517
519: 52(i8vec2) CompositeConstruct 518 518 Store 466(bv) 518
520: 172(bvec2) INotEqual 517 519 519: 52(i8vec2) Load 352(i8v)
521: 275(ptr) AccessChain 452(bv) 277 520: 14(int8_t) Load 355(i8)
522: 171(bool) CompositeExtract 520 0 521: 52(i8vec2) CompositeConstruct 520 520
Store 521 522 522: 172(bvec2) IEqual 519 521
523: 275(ptr) AccessChain 452(bv) 261 523: 284(ptr) AccessChain 466(bv) 286
524: 171(bool) CompositeExtract 520 1 524: 171(bool) CompositeExtract 522 0
Store 523 524 Store 523 524
525: 284(ptr) AccessChain 466(bv) 270
526: 171(bool) CompositeExtract 522 1
Store 525 526
527: 199(i8vec3) Load 365(u8v)
528: 36(int8_t) Load 367(u8)
529: 199(i8vec3) CompositeConstruct 528 528 528
530: 434(bvec3) INotEqual 527 529
Store 466(bv) 530
531: 52(i8vec2) Load 352(i8v)
532: 14(int8_t) Load 355(i8)
533: 52(i8vec2) CompositeConstruct 532 532
534: 172(bvec2) INotEqual 531 533
535: 284(ptr) AccessChain 466(bv) 286
536: 171(bool) CompositeExtract 534 0
Store 535 536
537: 284(ptr) AccessChain 466(bv) 270
538: 171(bool) CompositeExtract 534 1
Store 537 538
Return Return
FunctionEnd FunctionEnd

View File

@ -1,4 +1,5 @@
spv.intrinsicsSpirvLiteral.vert spv.intrinsicsSpirvLiteral.vert
Validation failed
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 12 // Id's are bound by 12

View File

@ -22,7 +22,9 @@ Validation failed
Decorate 11(as) Binding 0 Decorate 11(as) Binding 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeRayQueryKHR
7: TypePointer Function 6 7: TypePointer Function 6
9: TypeAccelerationStructureKHR
10: TypePointer UniformConstant 9 10: TypePointer UniformConstant 9
11(as): 10(ptr) Variable UniformConstant 11(as): 10(ptr) Variable UniformConstant
13: TypeInt 32 0 13: TypeInt 32 0
@ -36,8 +38,6 @@ Validation failed
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
8(rq): 7(ptr) Variable Function 8(rq): 7(ptr) Variable Function
6: TypeRayQueryKHR
9: TypeAccelerationStructureKHR
12: 9 Load 11(as) 12: 9 Load 11(as)
RayQueryInitializeKHR 8(rq) 12 14 14 18 17 20 19 RayQueryInitializeKHR 8(rq) 12 14 14 18 17 20 19
RayQueryTerminateKHR 8(rq) RayQueryTerminateKHR 8(rq)

View File

@ -0,0 +1,43 @@
spv.intrinsicsSpirvTypeLocalVar.vert
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 22
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
Source GLSL 460
SourceExtension "GL_EXT_spirv_intrinsics"
Name 4 "main"
Name 10 "func(spv-t1;"
Name 9 "emptyStruct"
Name 13 "size"
Name 16 "dummy"
Name 18 "param"
Decorate 13(size) SpecId 9
2: TypeVoid
3: TypeFunction 2
6: TypeStruct
7: TypePointer Function 6(struct)
8: TypeFunction 2 7(ptr)
12: TypeInt 32 1
13(size): 12(int) SpecConstant 9
14: TypeArray 6(struct) 13(size)
15: TypePointer Function 14
17: 12(int) Constant 1
4(main): 2 Function None 3
5: Label
16(dummy): 15(ptr) Variable Function
18(param): 7(ptr) Variable Function
19: 7(ptr) AccessChain 16(dummy) 17
20: 6(struct) Load 19
Store 18(param) 20
21: 2 FunctionCall 10(func(spv-t1;) 18(param)
Return
FunctionEnd
10(func(spv-t1;): 2 Function None 8
9(emptyStruct): 7(ptr) FunctionParameter
11: Label
Return
FunctionEnd

View File

@ -0,0 +1,55 @@
spv.invariantAll.vert
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 25
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 13 17
Source GLSL 450
Name 4 "main"
Name 11 "gl_PerVertex"
MemberName 11(gl_PerVertex) 0 "gl_Position"
MemberName 11(gl_PerVertex) 1 "gl_PointSize"
MemberName 11(gl_PerVertex) 2 "gl_ClipDistance"
MemberName 11(gl_PerVertex) 3 "gl_CullDistance"
Name 13 ""
Name 17 "v"
MemberDecorate 11(gl_PerVertex) 0 Invariant
MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 11(gl_PerVertex) 1 Invariant
MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 11(gl_PerVertex) 2 Invariant
MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance
MemberDecorate 11(gl_PerVertex) 3 Invariant
MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance
Decorate 11(gl_PerVertex) Block
Decorate 17(v) Location 0
Decorate 17(v) Invariant
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeInt 32 0
9: 8(int) Constant 1
10: TypeArray 6(float) 9
11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10
12: TypePointer Output 11(gl_PerVertex)
13: 12(ptr) Variable Output
14: TypeInt 32 1
15: 14(int) Constant 0
16: TypePointer Output 6(float)
17(v): 16(ptr) Variable Output
20: 6(float) Constant 0
21: 6(float) Constant 1065353216
23: TypePointer Output 7(fvec4)
4(main): 2 Function None 3
5: Label
18: 6(float) Load 17(v)
19: 6(float) Load 17(v)
22: 7(fvec4) CompositeConstruct 18 19 20 21
24: 23(ptr) AccessChain 13 15
Store 24 22
Return
FunctionEnd

View File

@ -36,10 +36,6 @@ spv.precise.tese
Decorate 43 NoContraction Decorate 43 NoContraction
Decorate 62(in_f_color) RelaxedPrecision Decorate 62(in_f_color) RelaxedPrecision
Decorate 62(in_f_color) Location 0 Decorate 62(in_f_color) Location 0
Decorate 67 RelaxedPrecision
Decorate 68 RelaxedPrecision
Decorate 69 RelaxedPrecision
Decorate 70 RelaxedPrecision
Decorate 97 NoContraction Decorate 97 NoContraction
Decorate 99 NoContraction Decorate 99 NoContraction
Decorate 101 NoContraction Decorate 101 NoContraction

View File

@ -1,7 +1,7 @@
spv.shaderBallot.comp spv.shaderBallot.comp
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 343 // Id's are bound by 397
Capability Shader Capability Shader
Capability Int64 Capability Int64
@ -42,7 +42,7 @@ spv.shaderBallot.comp
Decorate 72(Buffers) BufferBlock Decorate 72(Buffers) BufferBlock
Decorate 75(data) DescriptorSet 0 Decorate 75(data) DescriptorSet 0
Decorate 75(data) Binding 0 Decorate 75(data) Binding 0
Decorate 342 BuiltIn WorkgroupSize Decorate 396 BuiltIn WorkgroupSize
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0
@ -89,8 +89,8 @@ spv.shaderBallot.comp
196: TypePointer Uniform 6(int) 196: TypePointer Uniform 6(int)
203: TypePointer Uniform 20(ivec4) 203: TypePointer Uniform 20(ivec4)
218: TypeVector 6(int) 3 218: TypeVector 6(int) 3
341: 6(int) Constant 8 395: 6(int) Constant 8
342: 218(ivec3) ConstantComposite 341 341 100 396: 218(ivec3) ConstantComposite 395 395 100
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
8(invocation): 7(ptr) Variable Function 8(invocation): 7(ptr) Variable Function
@ -329,107 +329,161 @@ spv.shaderBallot.comp
257: 88(ptr) AccessChain 75(data) 86 77 257: 88(ptr) AccessChain 75(data) 86 77
258: 69(fvec4) Load 257 258: 69(fvec4) Load 257
259: 87(fvec2) VectorShuffle 258 258 0 1 259: 87(fvec2) VectorShuffle 258 258 0 1
260: 87(fvec2) SubgroupFirstInvocationKHR 259 260: 68(float) CompositeExtract 259 0
261: 79(ptr) AccessChain 75(data) 256 77 78 261: 68(float) SubgroupFirstInvocationKHR 260
262: 68(float) CompositeExtract 260 0 262: 68(float) CompositeExtract 259 1
Store 261 262 263: 68(float) SubgroupFirstInvocationKHR 262
263: 79(ptr) AccessChain 75(data) 256 77 100 264: 87(fvec2) CompositeConstruct 261 263
264: 68(float) CompositeExtract 260 1 265: 79(ptr) AccessChain 75(data) 256 77 78
Store 263 264 266: 68(float) CompositeExtract 264 0
265: 6(int) Load 8(invocation) Store 265 266
266: 88(ptr) AccessChain 75(data) 104 77 267: 79(ptr) AccessChain 75(data) 256 77 100
267: 69(fvec4) Load 266 268: 68(float) CompositeExtract 264 1
268: 105(fvec3) VectorShuffle 267 267 0 1 2 Store 267 268
269: 105(fvec3) SubgroupFirstInvocationKHR 268 269: 6(int) Load 8(invocation)
270: 79(ptr) AccessChain 75(data) 265 77 78 270: 88(ptr) AccessChain 75(data) 104 77
271: 68(float) CompositeExtract 269 0 271: 69(fvec4) Load 270
Store 270 271 272: 105(fvec3) VectorShuffle 271 271 0 1 2
272: 79(ptr) AccessChain 75(data) 265 77 100 273: 68(float) CompositeExtract 272 0
273: 68(float) CompositeExtract 269 1 274: 68(float) SubgroupFirstInvocationKHR 273
Store 272 273 275: 68(float) CompositeExtract 272 1
274: 79(ptr) AccessChain 75(data) 265 77 121 276: 68(float) SubgroupFirstInvocationKHR 275
275: 68(float) CompositeExtract 269 2 277: 68(float) CompositeExtract 272 2
Store 274 275 278: 68(float) SubgroupFirstInvocationKHR 277
276: 6(int) Load 8(invocation) 279: 105(fvec3) CompositeConstruct 274 276 278
277: 88(ptr) AccessChain 75(data) 125 77 280: 79(ptr) AccessChain 75(data) 269 77 78
278: 69(fvec4) Load 277 281: 68(float) CompositeExtract 279 0
279: 69(fvec4) SubgroupFirstInvocationKHR 278 Store 280 281
280: 88(ptr) AccessChain 75(data) 276 77 282: 79(ptr) AccessChain 75(data) 269 77 100
Store 280 279 283: 68(float) CompositeExtract 279 1
281: 6(int) Load 8(invocation) Store 282 283
282: 140(ptr) AccessChain 75(data) 77 86 78 284: 79(ptr) AccessChain 75(data) 269 77 121
283: 70(int) Load 282 285: 68(float) CompositeExtract 279 2
284: 70(int) SubgroupFirstInvocationKHR 283 Store 284 285
285: 140(ptr) AccessChain 75(data) 281 86 78
Store 285 284
286: 6(int) Load 8(invocation) 286: 6(int) Load 8(invocation)
287: 148(ptr) AccessChain 75(data) 86 86 287: 88(ptr) AccessChain 75(data) 125 77
288: 71(ivec4) Load 287 288: 69(fvec4) Load 287
289: 147(ivec2) VectorShuffle 288 288 0 1 289: 68(float) CompositeExtract 288 0
290: 147(ivec2) SubgroupFirstInvocationKHR 289 290: 68(float) SubgroupFirstInvocationKHR 289
291: 140(ptr) AccessChain 75(data) 286 86 78 291: 68(float) CompositeExtract 288 1
292: 70(int) CompositeExtract 290 0 292: 68(float) SubgroupFirstInvocationKHR 291
Store 291 292 293: 68(float) CompositeExtract 288 2
293: 140(ptr) AccessChain 75(data) 286 86 100 294: 68(float) SubgroupFirstInvocationKHR 293
294: 70(int) CompositeExtract 290 1 295: 68(float) CompositeExtract 288 3
Store 293 294 296: 68(float) SubgroupFirstInvocationKHR 295
295: 6(int) Load 8(invocation) 297: 69(fvec4) CompositeConstruct 290 292 294 296
296: 148(ptr) AccessChain 75(data) 104 86 298: 88(ptr) AccessChain 75(data) 286 77
297: 71(ivec4) Load 296 Store 298 297
298: 163(ivec3) VectorShuffle 297 297 0 1 2 299: 6(int) Load 8(invocation)
299: 163(ivec3) SubgroupFirstInvocationKHR 298 300: 140(ptr) AccessChain 75(data) 77 86 78
300: 140(ptr) AccessChain 75(data) 295 86 78 301: 70(int) Load 300
301: 70(int) CompositeExtract 299 0 302: 70(int) SubgroupFirstInvocationKHR 301
Store 300 301 303: 140(ptr) AccessChain 75(data) 299 86 78
302: 140(ptr) AccessChain 75(data) 295 86 100 Store 303 302
303: 70(int) CompositeExtract 299 1 304: 6(int) Load 8(invocation)
Store 302 303 305: 148(ptr) AccessChain 75(data) 86 86
304: 140(ptr) AccessChain 75(data) 295 86 121 306: 71(ivec4) Load 305
305: 70(int) CompositeExtract 299 2 307: 147(ivec2) VectorShuffle 306 306 0 1
Store 304 305 308: 70(int) CompositeExtract 307 0
306: 6(int) Load 8(invocation) 309: 70(int) SubgroupFirstInvocationKHR 308
307: 148(ptr) AccessChain 75(data) 125 86 310: 70(int) CompositeExtract 307 1
308: 71(ivec4) Load 307 311: 70(int) SubgroupFirstInvocationKHR 310
309: 71(ivec4) SubgroupFirstInvocationKHR 308 312: 147(ivec2) CompositeConstruct 309 311
310: 148(ptr) AccessChain 75(data) 306 86 313: 140(ptr) AccessChain 75(data) 304 86 78
Store 310 309 314: 70(int) CompositeExtract 312 0
311: 6(int) Load 8(invocation) Store 313 314
312: 196(ptr) AccessChain 75(data) 77 104 78 315: 140(ptr) AccessChain 75(data) 304 86 100
313: 6(int) Load 312 316: 70(int) CompositeExtract 312 1
314: 6(int) SubgroupFirstInvocationKHR 313 Store 315 316
315: 196(ptr) AccessChain 75(data) 311 104 78 317: 6(int) Load 8(invocation)
Store 315 314 318: 148(ptr) AccessChain 75(data) 104 86
316: 6(int) Load 8(invocation) 319: 71(ivec4) Load 318
317: 203(ptr) AccessChain 75(data) 86 104 320: 163(ivec3) VectorShuffle 319 319 0 1 2
318: 20(ivec4) Load 317 321: 70(int) CompositeExtract 320 0
319: 26(ivec2) VectorShuffle 318 318 0 1 322: 70(int) SubgroupFirstInvocationKHR 321
320: 26(ivec2) SubgroupFirstInvocationKHR 319 323: 70(int) CompositeExtract 320 1
321: 196(ptr) AccessChain 75(data) 316 104 78 324: 70(int) SubgroupFirstInvocationKHR 323
322: 6(int) CompositeExtract 320 0 325: 70(int) CompositeExtract 320 2
Store 321 322 326: 70(int) SubgroupFirstInvocationKHR 325
323: 196(ptr) AccessChain 75(data) 316 104 100 327: 163(ivec3) CompositeConstruct 322 324 326
324: 6(int) CompositeExtract 320 1 328: 140(ptr) AccessChain 75(data) 317 86 78
Store 323 324 329: 70(int) CompositeExtract 327 0
325: 6(int) Load 8(invocation) Store 328 329
326: 203(ptr) AccessChain 75(data) 104 104 330: 140(ptr) AccessChain 75(data) 317 86 100
327: 20(ivec4) Load 326 331: 70(int) CompositeExtract 327 1
328: 218(ivec3) VectorShuffle 327 327 0 1 2
329: 218(ivec3) SubgroupFirstInvocationKHR 328
330: 196(ptr) AccessChain 75(data) 325 104 78
331: 6(int) CompositeExtract 329 0
Store 330 331 Store 330 331
332: 196(ptr) AccessChain 75(data) 325 104 100 332: 140(ptr) AccessChain 75(data) 317 86 121
333: 6(int) CompositeExtract 329 1 333: 70(int) CompositeExtract 327 2
Store 332 333 Store 332 333
334: 196(ptr) AccessChain 75(data) 325 104 121 334: 6(int) Load 8(invocation)
335: 6(int) CompositeExtract 329 2 335: 148(ptr) AccessChain 75(data) 125 86
Store 334 335 336: 71(ivec4) Load 335
336: 6(int) Load 8(invocation) 337: 70(int) CompositeExtract 336 0
337: 203(ptr) AccessChain 75(data) 125 104 338: 70(int) SubgroupFirstInvocationKHR 337
338: 20(ivec4) Load 337 339: 70(int) CompositeExtract 336 1
339: 20(ivec4) SubgroupFirstInvocationKHR 338 340: 70(int) SubgroupFirstInvocationKHR 339
340: 203(ptr) AccessChain 75(data) 336 104 341: 70(int) CompositeExtract 336 2
Store 340 339 342: 70(int) SubgroupFirstInvocationKHR 341
343: 70(int) CompositeExtract 336 3
344: 70(int) SubgroupFirstInvocationKHR 343
345: 71(ivec4) CompositeConstruct 338 340 342 344
346: 148(ptr) AccessChain 75(data) 334 86
Store 346 345
347: 6(int) Load 8(invocation)
348: 196(ptr) AccessChain 75(data) 77 104 78
349: 6(int) Load 348
350: 6(int) SubgroupFirstInvocationKHR 349
351: 196(ptr) AccessChain 75(data) 347 104 78
Store 351 350
352: 6(int) Load 8(invocation)
353: 203(ptr) AccessChain 75(data) 86 104
354: 20(ivec4) Load 353
355: 26(ivec2) VectorShuffle 354 354 0 1
356: 6(int) CompositeExtract 355 0
357: 6(int) SubgroupFirstInvocationKHR 356
358: 6(int) CompositeExtract 355 1
359: 6(int) SubgroupFirstInvocationKHR 358
360: 26(ivec2) CompositeConstruct 357 359
361: 196(ptr) AccessChain 75(data) 352 104 78
362: 6(int) CompositeExtract 360 0
Store 361 362
363: 196(ptr) AccessChain 75(data) 352 104 100
364: 6(int) CompositeExtract 360 1
Store 363 364
365: 6(int) Load 8(invocation)
366: 203(ptr) AccessChain 75(data) 104 104
367: 20(ivec4) Load 366
368: 218(ivec3) VectorShuffle 367 367 0 1 2
369: 6(int) CompositeExtract 368 0
370: 6(int) SubgroupFirstInvocationKHR 369
371: 6(int) CompositeExtract 368 1
372: 6(int) SubgroupFirstInvocationKHR 371
373: 6(int) CompositeExtract 368 2
374: 6(int) SubgroupFirstInvocationKHR 373
375: 218(ivec3) CompositeConstruct 370 372 374
376: 196(ptr) AccessChain 75(data) 365 104 78
377: 6(int) CompositeExtract 375 0
Store 376 377
378: 196(ptr) AccessChain 75(data) 365 104 100
379: 6(int) CompositeExtract 375 1
Store 378 379
380: 196(ptr) AccessChain 75(data) 365 104 121
381: 6(int) CompositeExtract 375 2
Store 380 381
382: 6(int) Load 8(invocation)
383: 203(ptr) AccessChain 75(data) 125 104
384: 20(ivec4) Load 383
385: 6(int) CompositeExtract 384 0
386: 6(int) SubgroupFirstInvocationKHR 385
387: 6(int) CompositeExtract 384 1
388: 6(int) SubgroupFirstInvocationKHR 387
389: 6(int) CompositeExtract 384 2
390: 6(int) SubgroupFirstInvocationKHR 389
391: 6(int) CompositeExtract 384 3
392: 6(int) SubgroupFirstInvocationKHR 391
393: 20(ivec4) CompositeConstruct 386 388 390 392
394: 203(ptr) AccessChain 75(data) 382 104
Store 394 393
Branch 67 Branch 67
67: Label 67: Label
Return Return

View File

@ -24,6 +24,7 @@ spv.subgroup.frag
Decorate 13(gl_SubgroupInvocationID) Flat Decorate 13(gl_SubgroupInvocationID) Flat
Decorate 13(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId Decorate 13(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
Decorate 14 RelaxedPrecision Decorate 14 RelaxedPrecision
Decorate 16 RelaxedPrecision
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0

View File

@ -33,6 +33,7 @@ spv.subgroup.geom
Decorate 20(gl_SubgroupInvocationID) RelaxedPrecision Decorate 20(gl_SubgroupInvocationID) RelaxedPrecision
Decorate 20(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId Decorate 20(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
Decorate 21 RelaxedPrecision Decorate 21 RelaxedPrecision
Decorate 23 RelaxedPrecision
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0

View File

@ -30,6 +30,7 @@ spv.subgroup.tesc
Decorate 20(gl_SubgroupInvocationID) RelaxedPrecision Decorate 20(gl_SubgroupInvocationID) RelaxedPrecision
Decorate 20(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId Decorate 20(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
Decorate 21 RelaxedPrecision Decorate 21 RelaxedPrecision
Decorate 23 RelaxedPrecision
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0

View File

@ -32,6 +32,7 @@ spv.subgroup.tese
Decorate 20(gl_SubgroupInvocationID) RelaxedPrecision Decorate 20(gl_SubgroupInvocationID) RelaxedPrecision
Decorate 20(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId Decorate 20(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
Decorate 21 RelaxedPrecision Decorate 21 RelaxedPrecision
Decorate 23 RelaxedPrecision
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0

View File

@ -29,6 +29,7 @@ spv.subgroup.vert
Decorate 20(gl_SubgroupInvocationID) RelaxedPrecision Decorate 20(gl_SubgroupInvocationID) RelaxedPrecision
Decorate 20(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId Decorate 20(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
Decorate 21 RelaxedPrecision Decorate 21 RelaxedPrecision
Decorate 23 RelaxedPrecision
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0

View File

@ -75,6 +75,7 @@ spv.uint.frag
Decorate 90 RelaxedPrecision Decorate 90 RelaxedPrecision
Decorate 91 RelaxedPrecision Decorate 91 RelaxedPrecision
Decorate 92 RelaxedPrecision Decorate 92 RelaxedPrecision
Decorate 93 RelaxedPrecision
Decorate 97 RelaxedPrecision Decorate 97 RelaxedPrecision
Decorate 98 RelaxedPrecision Decorate 98 RelaxedPrecision
Decorate 101 RelaxedPrecision Decorate 101 RelaxedPrecision

View File

@ -1,8 +1,7 @@
spv.viewportArray2.tesc spv.viewportArray2.tesc
Validation failed
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 25 // Id's are bound by 23
Capability Tessellation Capability Tessellation
Capability ShaderViewportIndexLayerNV Capability ShaderViewportIndexLayerNV
@ -11,23 +10,21 @@ 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" 14 16 22 24 EntryPoint TessellationControl 4 "main" 14 16 22
ExecutionMode 4 OutputVertices 4 ExecutionMode 4 OutputVertices 4
Source GLSL 450 Source GLSL 430
SourceExtension "GL_NV_viewport_array2" SourceExtension "GL_NV_viewport_array2"
Name 4 "main" Name 4 "main"
Name 10 "gl_PerVertex" Name 10 "gl_PerVertex"
MemberName 10(gl_PerVertex) 0 "gl_ViewportMask" MemberName 10(gl_PerVertex) 0 "gl_ViewportMask"
Name 14 "gl_out" Name 14 "gl_out"
Name 16 "gl_InvocationID" Name 16 "gl_InvocationID"
Name 22 "gl_ViewportIndex" Name 22 "gl_Layer"
Name 24 "gl_Layer"
MemberDecorate 10(gl_PerVertex) 0 BuiltIn ViewportMaskNV MemberDecorate 10(gl_PerVertex) 0 BuiltIn ViewportMaskNV
Decorate 10(gl_PerVertex) Block Decorate 10(gl_PerVertex) Block
Decorate 16(gl_InvocationID) BuiltIn InvocationId Decorate 16(gl_InvocationID) BuiltIn InvocationId
Decorate 22(gl_ViewportIndex) BuiltIn ViewportIndex Decorate 22(gl_Layer) BuiltIn Layer
Decorate 24(gl_Layer) BuiltIn Layer Decorate 22(gl_Layer) ViewportRelativeNV
Decorate 24(gl_Layer) ViewportRelativeNV
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 1 6: TypeInt 32 1
@ -44,14 +41,11 @@ Validation failed
18: 6(int) Constant 0 18: 6(int) Constant 0
19: 6(int) Constant 1 19: 6(int) Constant 1
20: TypePointer Output 6(int) 20: TypePointer Output 6(int)
22(gl_ViewportIndex): 20(ptr) Variable Output 22(gl_Layer): 20(ptr) Variable Output
23: 6(int) Constant 2
24(gl_Layer): 20(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
17: 6(int) Load 16(gl_InvocationID) 17: 6(int) Load 16(gl_InvocationID)
21: 20(ptr) AccessChain 14(gl_out) 17 18 18 21: 20(ptr) AccessChain 14(gl_out) 17 18 18
Store 21 19 Store 21 19
Store 22(gl_ViewportIndex) 23
Return Return
FunctionEnd FunctionEnd

View File

@ -134,7 +134,7 @@ ERROR: node is still EOpNull!
0:59 Condition 0:59 Condition
0:59 Compare Equal ( temp bool) 0:59 Compare Equal ( temp bool)
0:59 'shiftedii' ( temp mediump int) 0:59 'shiftedii' ( temp mediump int)
0:59 Convert uint to int ( temp int) 0:59 Convert uint to int ( temp mediump int)
0:59 'shiftedui' ( temp mediump uint) 0:59 'shiftedui' ( temp mediump uint)
0:59 true case 0:59 true case
0:60 move second child to first child ( temp mediump 4-component vector of uint) 0:60 move second child to first child ( temp mediump 4-component vector of uint)
@ -433,7 +433,7 @@ ERROR: node is still EOpNull!
0:59 Condition 0:59 Condition
0:59 Compare Equal ( temp bool) 0:59 Compare Equal ( temp bool)
0:59 'shiftedii' ( temp mediump int) 0:59 'shiftedii' ( temp mediump int)
0:59 Convert uint to int ( temp int) 0:59 Convert uint to int ( temp mediump int)
0:59 'shiftedui' ( temp mediump uint) 0:59 'shiftedui' ( temp mediump uint)
0:59 true case 0:59 true case
0:60 move second child to first child ( temp mediump 4-component vector of uint) 0:60 move second child to first child ( temp mediump 4-component vector of uint)

View File

@ -34,8 +34,8 @@ Shader version: 460
0:? 'Color' ( smooth out highp 4-component vector of float) 0:? 'Color' ( smooth out highp 4-component vector of float)
0:? 'UV' ( smooth out highp 2-component vector of float) 0:? 'UV' ( smooth out highp 2-component vector of float)
0:? 'anon@1' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, out unsized 1-element array of float CullDistance gl_CullDistance}) 0:? 'anon@1' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, out unsized 1-element array of float CullDistance gl_CullDistance})
0:? 'gl_VertexID' ( in int VertexIndex) 0:? 'gl_VertexIndex' ( in int VertexIndex)
0:? 'gl_InstanceID' ( in int InstanceIndex) 0:? 'gl_InstanceIndex' ( in int InstanceIndex)
vk.relaxed.changeSet.frag vk.relaxed.changeSet.frag
Shader version: 460 Shader version: 460
@ -108,8 +108,8 @@ Shader version: 460
0:? 'Color' ( smooth out highp 4-component vector of float) 0:? 'Color' ( smooth out highp 4-component vector of float)
0:? 'UV' ( smooth out highp 2-component vector of float) 0:? 'UV' ( smooth out highp 2-component vector of float)
0:? 'anon@1' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, out 1-element array of float CullDistance gl_CullDistance}) 0:? 'anon@1' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, out 1-element array of float CullDistance gl_CullDistance})
0:? 'gl_VertexID' ( in int VertexIndex) 0:? 'gl_VertexIndex' ( in int VertexIndex)
0:? 'gl_InstanceID' ( in int InstanceIndex) 0:? 'gl_InstanceIndex' ( in int InstanceIndex)
Shader version: 460 Shader version: 460
gl_FragCoord origin is upper left gl_FragCoord origin is upper left
0:? Sequence 0:? Sequence
@ -162,8 +162,8 @@ gl_FragCoord origin is upper left
MemberName 28(gl_DefaultUniformBlock) 0 "projectionMatrix" MemberName 28(gl_DefaultUniformBlock) 0 "projectionMatrix"
Name 30 "" Name 30 ""
Name 34 "aPos" Name 34 "aPos"
Name 44 "gl_VertexID" Name 44 "gl_VertexIndex"
Name 45 "gl_InstanceID" Name 45 "gl_InstanceIndex"
Decorate 9(Color) Location 0 Decorate 9(Color) Location 0
Decorate 11(aColor) Location 2 Decorate 11(aColor) Location 2
Decorate 15(UV) Location 1 Decorate 15(UV) Location 1
@ -180,8 +180,8 @@ gl_FragCoord origin is upper left
Decorate 30 DescriptorSet 0 Decorate 30 DescriptorSet 0
Decorate 30 Binding 0 Decorate 30 Binding 0
Decorate 34(aPos) Location 0 Decorate 34(aPos) Location 0
Decorate 44(gl_VertexID) BuiltIn VertexIndex Decorate 44(gl_VertexIndex) BuiltIn VertexIndex
Decorate 45(gl_InstanceID) BuiltIn InstanceIndex Decorate 45(gl_InstanceIndex) BuiltIn InstanceIndex
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -212,8 +212,8 @@ gl_FragCoord origin is upper left
36: 6(float) Constant 0 36: 6(float) Constant 0
37: 6(float) Constant 1065353216 37: 6(float) Constant 1065353216
43: TypePointer Input 25(int) 43: TypePointer Input 25(int)
44(gl_VertexID): 43(ptr) Variable Input 44(gl_VertexIndex): 43(ptr) Variable Input
45(gl_InstanceID): 43(ptr) Variable Input 45(gl_InstanceIndex): 43(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
12: 7(fvec4) Load 11(aColor) 12: 7(fvec4) Load 11(aColor)

View File

@ -28,8 +28,8 @@ Shader version: 460
0:? Linker Objects 0:? Linker Objects
0:? 'io' (layout( location=0) smooth out highp 4-component vector of float) 0:? 'io' (layout( location=0) smooth out highp 4-component vector of float)
0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 2-component vector of float a}) 0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 2-component vector of float a})
0:? 'gl_VertexID' ( in int VertexIndex) 0:? 'gl_VertexIndex' ( in int VertexIndex)
0:? 'gl_InstanceID' ( in int InstanceIndex) 0:? 'gl_InstanceIndex' ( in int InstanceIndex)
vk.relaxed.errorcheck.frag vk.relaxed.errorcheck.frag
Shader version: 460 Shader version: 460
@ -94,8 +94,8 @@ Shader version: 460
0:? Linker Objects 0:? Linker Objects
0:? 'io' (layout( location=0) smooth out highp 4-component vector of float) 0:? 'io' (layout( location=0) smooth out highp 4-component vector of float)
0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 2-component vector of float a}) 0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 2-component vector of float a})
0:? 'gl_VertexID' ( in int VertexIndex) 0:? 'gl_VertexIndex' ( in int VertexIndex)
0:? 'gl_InstanceID' ( in int InstanceIndex) 0:? 'gl_InstanceIndex' ( in int InstanceIndex)
Shader version: 460 Shader version: 460
gl_FragCoord origin is upper left gl_FragCoord origin is upper left
0:? Sequence 0:? Sequence

View File

@ -93,7 +93,9 @@ Shader version: 460
0:28 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) 0:28 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:28 Constant: 0:28 Constant:
0:28 5 (const uint) 0:28 5 (const uint)
0:28 'gl_VertexID' ( in int VertexIndex) 0:28 subtract ( temp int)
0:28 'gl_VertexIndex' ( in int VertexIndex)
0:28 'gl_VertexIndex' ( in int VertexIndex)
0:29 move second child to first child ( temp highp float) 0:29 move second child to first child ( temp highp float)
0:29 direct index ( temp highp float) 0:29 direct index ( temp highp float)
0:29 'v' ( temp highp 4-component vector of float) 0:29 'v' ( temp highp 4-component vector of float)
@ -105,7 +107,9 @@ Shader version: 460
0:29 Constant: 0:29 Constant:
0:29 0 (const int) 0:29 0 (const int)
0:29 Convert int to float ( temp highp float) 0:29 Convert int to float ( temp highp float)
0:29 'gl_InstanceID' ( in highp int InstanceIndex) 0:29 subtract ( temp highp int)
0:29 'gl_InstanceIndex' ( in highp int InstanceIndex)
0:29 'gl_InstanceIndex' ( in highp int InstanceIndex)
0:30 move second child to first child ( temp highp 4-component vector of float) 0:30 move second child to first child ( temp highp 4-component vector of float)
0:30 'io' (layout( location=0) smooth out highp 4-component vector of float) 0:30 'io' (layout( location=0) smooth out highp 4-component vector of float)
0:30 'v' ( temp highp 4-component vector of float) 0:30 'v' ( temp highp 4-component vector of float)
@ -113,8 +117,8 @@ Shader version: 460
0:? 'io' (layout( location=0) smooth out highp 4-component vector of float) 0:? 'io' (layout( location=0) smooth out highp 4-component vector of float)
0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) 0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:? 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2}) 0:? 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2})
0:? 'gl_VertexID' ( in int VertexIndex) 0:? 'gl_VertexIndex' ( in int VertexIndex)
0:? 'gl_InstanceID' ( in int InstanceIndex) 0:? 'gl_InstanceIndex' ( in int InstanceIndex)
vk.relaxed.stagelink.frag vk.relaxed.stagelink.frag
Shader version: 460 Shader version: 460
@ -311,7 +315,9 @@ Shader version: 460
0:28 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) 0:28 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:28 Constant: 0:28 Constant:
0:28 5 (const uint) 0:28 5 (const uint)
0:28 'gl_VertexID' ( in int VertexIndex) 0:28 subtract ( temp int)
0:28 'gl_VertexIndex' ( in int VertexIndex)
0:28 'gl_VertexIndex' ( in int VertexIndex)
0:29 move second child to first child ( temp highp float) 0:29 move second child to first child ( temp highp float)
0:29 direct index ( temp highp float) 0:29 direct index ( temp highp float)
0:29 'v' ( temp highp 4-component vector of float) 0:29 'v' ( temp highp 4-component vector of float)
@ -323,7 +329,9 @@ Shader version: 460
0:29 Constant: 0:29 Constant:
0:29 0 (const int) 0:29 0 (const int)
0:29 Convert int to float ( temp highp float) 0:29 Convert int to float ( temp highp float)
0:29 'gl_InstanceID' ( in highp int InstanceIndex) 0:29 subtract ( temp highp int)
0:29 'gl_InstanceIndex' ( in highp int InstanceIndex)
0:29 'gl_InstanceIndex' ( in highp int InstanceIndex)
0:30 move second child to first child ( temp highp 4-component vector of float) 0:30 move second child to first child ( temp highp 4-component vector of float)
0:30 'io' (layout( location=0) smooth out highp 4-component vector of float) 0:30 'io' (layout( location=0) smooth out highp 4-component vector of float)
0:30 'v' ( temp highp 4-component vector of float) 0:30 'v' ( temp highp 4-component vector of float)
@ -331,8 +339,8 @@ Shader version: 460
0:? 'io' (layout( location=0) smooth out highp 4-component vector of float) 0:? 'io' (layout( location=0) smooth out highp 4-component vector of float)
0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s}) 0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:? 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2}) 0:? 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2})
0:? 'gl_VertexID' ( in int VertexIndex) 0:? 'gl_VertexIndex' ( in int VertexIndex)
0:? 'gl_InstanceID' ( in int InstanceIndex) 0:? 'gl_InstanceIndex' ( in int InstanceIndex)
Shader version: 460 Shader version: 460
gl_FragCoord origin is upper left gl_FragCoord origin is upper left
0:? Sequence 0:? Sequence
@ -428,12 +436,12 @@ gl_FragCoord origin is upper left
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000a // Generated by (magic number): 8000a
// Id's are bound by 88 // Id's are bound by 92
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 72 80 86 EntryPoint Vertex 4 "main" 72 82 90
Source GLSL 460 Source GLSL 460
Name 4 "main" Name 4 "main"
Name 9 "foo(" Name 9 "foo("
@ -454,9 +462,9 @@ gl_FragCoord origin is upper left
MemberName 35(gl_DefaultUniformBlock) 6 "c1" MemberName 35(gl_DefaultUniformBlock) 6 "c1"
Name 37 "" Name 37 ""
Name 67 "v" Name 67 "v"
Name 72 "gl_VertexID" Name 72 "gl_VertexIndex"
Name 80 "gl_InstanceID" Name 82 "gl_InstanceIndex"
Name 86 "io" Name 90 "io"
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Volatile MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Volatile
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent
@ -483,9 +491,9 @@ gl_FragCoord origin is upper left
Decorate 35(gl_DefaultUniformBlock) Block Decorate 35(gl_DefaultUniformBlock) Block
Decorate 37 DescriptorSet 0 Decorate 37 DescriptorSet 0
Decorate 37 Binding 0 Decorate 37 Binding 0
Decorate 72(gl_VertexID) BuiltIn VertexIndex Decorate 72(gl_VertexIndex) BuiltIn VertexIndex
Decorate 80(gl_InstanceID) BuiltIn InstanceIndex Decorate 82(gl_InstanceIndex) BuiltIn InstanceIndex
Decorate 86(io) Location 0 Decorate 90(io) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -517,31 +525,35 @@ gl_FragCoord origin is upper left
57: 17(int) Constant 4 57: 17(int) Constant 4
70: 17(int) Constant 5 70: 17(int) Constant 5
71: TypePointer Input 17(int) 71: TypePointer Input 17(int)
72(gl_VertexID): 71(ptr) Variable Input 72(gl_VertexIndex): 71(ptr) Variable Input
77: TypePointer Function 6(float) 79: TypePointer Function 6(float)
80(gl_InstanceID): 71(ptr) Variable Input 82(gl_InstanceIndex): 71(ptr) Variable Input
85: TypePointer Output 7(fvec4) 89: TypePointer Output 7(fvec4)
86(io): 85(ptr) Variable Output 90(io): 89(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
67(v): 30(ptr) Variable Function 67(v): 30(ptr) Variable Function
68: 7(fvec4) FunctionCall 9(foo() 68: 7(fvec4) FunctionCall 9(foo()
Store 67(v) 68 Store 67(v) 68
69: 7(fvec4) Load 67(v) 69: 7(fvec4) Load 67(v)
73: 17(int) Load 72(gl_VertexID) 73: 17(int) Load 72(gl_VertexIndex)
74: 38(ptr) AccessChain 37 70 73 74: 17(int) Load 72(gl_VertexIndex)
75: 7(fvec4) Load 74 75: 17(int) ISub 73 74
76: 7(fvec4) FAdd 69 75 76: 38(ptr) AccessChain 37 70 75
Store 67(v) 76 77: 7(fvec4) Load 76
78: 77(ptr) AccessChain 67(v) 22 78: 7(fvec4) FAdd 69 77
79: 6(float) Load 78 Store 67(v) 78
81: 17(int) Load 80(gl_InstanceID) 80: 79(ptr) AccessChain 67(v) 22
82: 6(float) ConvertSToF 81 81: 6(float) Load 80
83: 6(float) FSub 79 82 83: 17(int) Load 82(gl_InstanceIndex)
84: 77(ptr) AccessChain 67(v) 22 84: 17(int) Load 82(gl_InstanceIndex)
Store 84 83 85: 17(int) ISub 83 84
87: 7(fvec4) Load 67(v) 86: 6(float) ConvertSToF 85
Store 86(io) 87 87: 6(float) FSub 81 86
88: 79(ptr) AccessChain 67(v) 22
Store 88 87
91: 7(fvec4) Load 67(v)
Store 90(io) 91
Return Return
FunctionEnd FunctionEnd
9(foo(): 7(fvec4) Function None 8 9(foo(): 7(fvec4) Function None 8

View File

@ -19,10 +19,10 @@ Shader version: 450
0:14 Convert bool to float ( temp float) 0:14 Convert bool to float ( temp float)
0:14 'scbt' ( specialization-constant const bool) 0:14 'scbt' ( specialization-constant const bool)
0:14 true (const bool) 0:14 true (const bool)
0:15 Convert int to float ( temp float) 0:15 Convert int to float ( temp highp float)
0:15 'sci2' ( specialization-constant const highp int) 0:15 'sci2' ( specialization-constant const highp int)
0:15 2 (const int) 0:15 2 (const int)
0:17 Convert float to int ( temp int) 0:17 Convert float to int ( temp highp int)
0:17 'scf1' ( specialization-constant const highp float) 0:17 'scf1' ( specialization-constant const highp float)
0:17 1.000000 0:17 1.000000
0:18 Convert bool to int ( specialization-constant const int) 0:18 Convert bool to int ( specialization-constant const int)
@ -86,34 +86,34 @@ Shader version: 450
0:35 2 (const int) 0:35 2 (const int)
0:35 'sci2' ( specialization-constant const highp int) 0:35 'sci2' ( specialization-constant const highp int)
0:35 2 (const int) 0:35 2 (const int)
0:37 Construct ivec2 ( specialization-constant const 2-component vector of int) 0:37 Construct ivec2 ( specialization-constant const highp 2-component vector of int)
0:37 'sci2' ( specialization-constant const highp int) 0:37 'sci2' ( specialization-constant const highp int)
0:37 2 (const int) 0:37 2 (const int)
0:37 'sci2' ( specialization-constant const highp int) 0:37 'sci2' ( specialization-constant const highp int)
0:37 2 (const int) 0:37 2 (const int)
0:38 Construct ivec2 ( temp 2-element array of 2-component vector of int) 0:38 Construct ivec2 ( temp 2-element array of highp 2-component vector of int)
0:38 Construct ivec2 ( specialization-constant const 2-component vector of int) 0:38 Construct ivec2 ( specialization-constant const highp 2-component vector of int)
0:38 'sci2' ( specialization-constant const highp int) 0:38 'sci2' ( specialization-constant const highp int)
0:38 2 (const int) 0:38 2 (const int)
0:38 'sci2' ( specialization-constant const highp int) 0:38 'sci2' ( specialization-constant const highp int)
0:38 2 (const int) 0:38 2 (const int)
0:38 Construct ivec2 ( specialization-constant const 2-component vector of int) 0:38 Construct ivec2 ( specialization-constant const highp 2-component vector of int)
0:38 'sci2' ( specialization-constant const highp int) 0:38 'sci2' ( specialization-constant const highp int)
0:38 2 (const int) 0:38 2 (const int)
0:38 'sci2' ( specialization-constant const highp int) 0:38 'sci2' ( specialization-constant const highp int)
0:38 2 (const int) 0:38 2 (const int)
0:40 Construct vec2 ( specialization-constant const 2-component vector of float) 0:40 Construct vec2 ( specialization-constant const highp 2-component vector of float)
0:40 'scf1' ( specialization-constant const highp float) 0:40 'scf1' ( specialization-constant const highp float)
0:40 1.000000 0:40 1.000000
0:40 'scf1' ( specialization-constant const highp float) 0:40 'scf1' ( specialization-constant const highp float)
0:40 1.000000 0:40 1.000000
0:41 Construct vec2 ( temp 2-element array of 2-component vector of float) 0:41 Construct vec2 ( temp 2-element array of highp 2-component vector of float)
0:41 Construct vec2 ( specialization-constant const 2-component vector of float) 0:41 Construct vec2 ( specialization-constant const highp 2-component vector of float)
0:41 'scf1' ( specialization-constant const highp float) 0:41 'scf1' ( specialization-constant const highp float)
0:41 1.000000 0:41 1.000000
0:41 'scf1' ( specialization-constant const highp float) 0:41 'scf1' ( specialization-constant const highp float)
0:41 1.000000 0:41 1.000000
0:41 Construct vec2 ( specialization-constant const 2-component vector of float) 0:41 Construct vec2 ( specialization-constant const highp 2-component vector of float)
0:41 'scf1' ( specialization-constant const highp float) 0:41 'scf1' ( specialization-constant const highp float)
0:41 1.000000 0:41 1.000000
0:41 'scf1' ( specialization-constant const highp float) 0:41 'scf1' ( specialization-constant const highp float)
@ -150,10 +150,10 @@ Shader version: 450
0:14 Convert bool to float ( temp float) 0:14 Convert bool to float ( temp float)
0:14 'scbt' ( specialization-constant const bool) 0:14 'scbt' ( specialization-constant const bool)
0:14 true (const bool) 0:14 true (const bool)
0:15 Convert int to float ( temp float) 0:15 Convert int to float ( temp highp float)
0:15 'sci2' ( specialization-constant const highp int) 0:15 'sci2' ( specialization-constant const highp int)
0:15 2 (const int) 0:15 2 (const int)
0:17 Convert float to int ( temp int) 0:17 Convert float to int ( temp highp int)
0:17 'scf1' ( specialization-constant const highp float) 0:17 'scf1' ( specialization-constant const highp float)
0:17 1.000000 0:17 1.000000
0:18 Convert bool to int ( specialization-constant const int) 0:18 Convert bool to int ( specialization-constant const int)
@ -217,34 +217,34 @@ Shader version: 450
0:35 2 (const int) 0:35 2 (const int)
0:35 'sci2' ( specialization-constant const highp int) 0:35 'sci2' ( specialization-constant const highp int)
0:35 2 (const int) 0:35 2 (const int)
0:37 Construct ivec2 ( specialization-constant const 2-component vector of int) 0:37 Construct ivec2 ( specialization-constant const highp 2-component vector of int)
0:37 'sci2' ( specialization-constant const highp int) 0:37 'sci2' ( specialization-constant const highp int)
0:37 2 (const int) 0:37 2 (const int)
0:37 'sci2' ( specialization-constant const highp int) 0:37 'sci2' ( specialization-constant const highp int)
0:37 2 (const int) 0:37 2 (const int)
0:38 Construct ivec2 ( temp 2-element array of 2-component vector of int) 0:38 Construct ivec2 ( temp 2-element array of highp 2-component vector of int)
0:38 Construct ivec2 ( specialization-constant const 2-component vector of int) 0:38 Construct ivec2 ( specialization-constant const highp 2-component vector of int)
0:38 'sci2' ( specialization-constant const highp int) 0:38 'sci2' ( specialization-constant const highp int)
0:38 2 (const int) 0:38 2 (const int)
0:38 'sci2' ( specialization-constant const highp int) 0:38 'sci2' ( specialization-constant const highp int)
0:38 2 (const int) 0:38 2 (const int)
0:38 Construct ivec2 ( specialization-constant const 2-component vector of int) 0:38 Construct ivec2 ( specialization-constant const highp 2-component vector of int)
0:38 'sci2' ( specialization-constant const highp int) 0:38 'sci2' ( specialization-constant const highp int)
0:38 2 (const int) 0:38 2 (const int)
0:38 'sci2' ( specialization-constant const highp int) 0:38 'sci2' ( specialization-constant const highp int)
0:38 2 (const int) 0:38 2 (const int)
0:40 Construct vec2 ( specialization-constant const 2-component vector of float) 0:40 Construct vec2 ( specialization-constant const highp 2-component vector of float)
0:40 'scf1' ( specialization-constant const highp float) 0:40 'scf1' ( specialization-constant const highp float)
0:40 1.000000 0:40 1.000000
0:40 'scf1' ( specialization-constant const highp float) 0:40 'scf1' ( specialization-constant const highp float)
0:40 1.000000 0:40 1.000000
0:41 Construct vec2 ( temp 2-element array of 2-component vector of float) 0:41 Construct vec2 ( temp 2-element array of highp 2-component vector of float)
0:41 Construct vec2 ( specialization-constant const 2-component vector of float) 0:41 Construct vec2 ( specialization-constant const highp 2-component vector of float)
0:41 'scf1' ( specialization-constant const highp float) 0:41 'scf1' ( specialization-constant const highp float)
0:41 1.000000 0:41 1.000000
0:41 'scf1' ( specialization-constant const highp float) 0:41 'scf1' ( specialization-constant const highp float)
0:41 1.000000 0:41 1.000000
0:41 Construct vec2 ( specialization-constant const 2-component vector of float) 0:41 Construct vec2 ( specialization-constant const highp 2-component vector of float)
0:41 'scf1' ( specialization-constant const highp float) 0:41 'scf1' ( specialization-constant const highp float)
0:41 1.000000 0:41 1.000000
0:41 'scf1' ( specialization-constant const highp float) 0:41 'scf1' ( specialization-constant const highp float)

View File

@ -24,37 +24,38 @@ ERROR: 0:39: 'push_constant' : can only be used with a uniform
ERROR: 0:43: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan ERROR: 0:43: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan
ERROR: 0:43: 'push_constant' : can only be used with a block ERROR: 0:43: 'push_constant' : can only be used with a block
ERROR: 0:45: 'push_constant' : cannot declare a default, can only be used on a block ERROR: 0:45: 'push_constant' : cannot declare a default, can only be used on a block
ERROR: 0:51: 'binding' : sampler/texture/image requires layout(binding=X) ERROR: 0:46: 'binding' : cannot be used with push_constant
ERROR: 0:52: 'binding' : sampler/texture/image requires layout(binding=X)
ERROR: 0:52: 'input_attachment_index' : can only be used with a subpass
ERROR: 0:53: 'binding' : sampler/texture/image requires layout(binding=X)
ERROR: 0:53: 'input_attachment_index' : can only be used with a subpass
ERROR: 0:54: 'binding' : sampler/texture/image requires layout(binding=X) ERROR: 0:54: 'binding' : sampler/texture/image requires layout(binding=X)
ERROR: 0:54: 'subpass' : requires an input_attachment_index layout qualifier
ERROR: 0:55: 'binding' : sampler/texture/image requires layout(binding=X) ERROR: 0:55: 'binding' : sampler/texture/image requires layout(binding=X)
ERROR: 0:60: 'subpassLoadMS' : no matching overloaded function found ERROR: 0:55: 'input_attachment_index' : can only be used with a subpass
ERROR: 0:61: 'subpassLoad' : no matching overloaded function found ERROR: 0:56: 'binding' : sampler/texture/image requires layout(binding=X)
ERROR: 0:56: 'input_attachment_index' : can only be used with a subpass
ERROR: 0:57: 'binding' : sampler/texture/image requires layout(binding=X)
ERROR: 0:57: 'subpass' : requires an input_attachment_index layout qualifier
ERROR: 0:58: 'binding' : sampler/texture/image requires layout(binding=X)
ERROR: 0:63: 'subpassLoadMS' : no matching overloaded function found ERROR: 0:63: 'subpassLoadMS' : no matching overloaded function found
ERROR: 0:66: 'subroutine' : not allowed when generating SPIR-V ERROR: 0:64: 'subpassLoad' : no matching overloaded function found
ERROR: 0:66: 'subroutine' : feature not yet implemented ERROR: 0:66: 'subpassLoadMS' : no matching overloaded function found
ERROR: 0:67: 'subroutine' : not allowed when generating SPIR-V ERROR: 0:69: 'subroutine' : not allowed when generating SPIR-V
ERROR: 0:67: 'subroutine' : feature not yet implemented ERROR: 0:69: 'subroutine' : feature not yet implemented
ERROR: 0:69: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan ERROR: 0:70: 'subroutine' : not allowed when generating SPIR-V
ERROR: 0:73: 'texture' : no matching overloaded function found ERROR: 0:70: 'subroutine' : feature not yet implemented
ERROR: 0:74: 'imageStore' : no matching overloaded function found ERROR: 0:72: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan
WARNING: 0:82: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: ERROR: 0:76: 'texture' : no matching overloaded function found
ERROR: 0:77: 'imageStore' : no matching overloaded function found
WARNING: 0:85: '' : all default precisions are highp; use precision statements to quiet warning, e.g.:
"precision mediump int; precision highp float;" "precision mediump int; precision highp float;"
ERROR: 0:91: 'call argument' : sampler constructor must appear at point of use
ERROR: 0:92: 'call argument' : sampler constructor must appear at point of use
ERROR: 0:93: ',' : sampler constructor must appear at point of use
ERROR: 0:94: ':' : wrong operand types: no operation ':' exists that takes a left-hand operand of type ' temp sampler2D' and a right operand of type ' temp sampler2D' (or there is no acceptable conversion)
ERROR: 0:94: 'call argument' : sampler constructor must appear at point of use ERROR: 0:94: 'call argument' : sampler constructor must appear at point of use
ERROR: 0:96: 'gl_NumSamples' : undeclared identifier ERROR: 0:95: 'call argument' : sampler constructor must appear at point of use
ERROR: 0:101: 'noise1' : no matching overloaded function found ERROR: 0:96: ',' : sampler constructor must appear at point of use
ERROR: 0:102: 'noise2' : no matching overloaded function found ERROR: 0:97: ':' : wrong operand types: no operation ':' exists that takes a left-hand operand of type ' temp sampler2D' and a right operand of type ' temp sampler2D' (or there is no acceptable conversion)
ERROR: 0:103: 'noise3' : no matching overloaded function found ERROR: 0:97: 'call argument' : sampler constructor must appear at point of use
ERROR: 0:104: 'noise4' : no matching overloaded function found ERROR: 0:99: 'gl_NumSamples' : undeclared identifier
ERROR: 53 compilation errors. No code generated. ERROR: 0:104: 'noise1' : no matching overloaded function found
ERROR: 0:105: 'noise2' : no matching overloaded function found
ERROR: 0:106: 'noise3' : no matching overloaded function found
ERROR: 0:107: 'noise4' : no matching overloaded function found
ERROR: 54 compilation errors. No code generated.
ERROR: Linking fragment stage: Only one push_constant block is allowed per stage ERROR: Linking fragment stage: Only one push_constant block is allowed per stage

View File

@ -13,11 +13,18 @@ const uint32_t uint32_t_init = uint32_t(3);
const uint64_t uint64_t_init = uint64_t(4); const uint64_t uint64_t_init = uint64_t(4);
const float16_t float16_t_init = float16_t(42.0); const float16_t float16_t_init = float16_t(42.0);
const float32_t float32_t_init = float32_t(13.0); const float32_t float32_t_init = float32_t(13.0);
const float64_t float64_t_init = float64_t(-4.0); const float64_t float64_t_init = float64_t(4.0);
const float16_t neg_float16_t_init = float16_t(-42.0);
const float32_t neg_float32_t_init = float32_t(-13.0);
const float64_t neg_float64_t_init = float64_t(-4.0);
#define TYPE_TO_TYPE(x, y) \ #define TYPE_TO_TYPE(x, y) \
const x y##_to_##x = x(y##_init) const x y##_to_##x = x(y##_init)
#define TYPE_TO_TYPE_PREFIX(prefix, x, y) \
const x prefix##_##y##_to_##x = x(prefix##_##y##_init)
#define TYPE_TO(x) \ #define TYPE_TO(x) \
TYPE_TO_TYPE(x, bool); \ TYPE_TO_TYPE(x, bool); \
TYPE_TO_TYPE(x, int8_t); \ TYPE_TO_TYPE(x, int8_t); \
@ -45,4 +52,18 @@ TYPE_TO(float16_t);
TYPE_TO(float32_t); TYPE_TO(float32_t);
TYPE_TO(float64_t); TYPE_TO(float64_t);
#define NEG_FLOAT_TO(x) \
TYPE_TO_TYPE_PREFIX(neg, x, float16_t); \
TYPE_TO_TYPE_PREFIX(neg, x, float32_t); \
TYPE_TO_TYPE_PREFIX(neg, x, float64_t)
NEG_FLOAT_TO(bool);
NEG_FLOAT_TO(int8_t);
NEG_FLOAT_TO(int16_t);
NEG_FLOAT_TO(int32_t);
NEG_FLOAT_TO(int64_t);
NEG_FLOAT_TO(float16_t);
NEG_FLOAT_TO(float32_t);
NEG_FLOAT_TO(float64_t);
void main() {} void main() {}

View File

@ -0,0 +1,10 @@
RWStructuredBuffer<uint> g_sbuf;
RWByteAddressBuffer g_bbuf;
void main()
{
uint f = g_bbuf.Load(16);
g_sbuf[0] = f;
}

12
Test/hlsl.w-recip.frag Normal file
View File

@ -0,0 +1,12 @@
float4 AmbientColor = float4(1, 0.5, 0, 1);
float4 AmbientColor2 = float4(0.5, 1, 0, 0);
float4 main(float4 vpos : SV_POSITION) : SV_TARGET
{
float4 vpos_t = float4(vpos.xyz, 1 / vpos.w);
if (vpos_t.x < 400)
return AmbientColor;
else
return AmbientColor2;
}

View File

@ -0,0 +1,14 @@
#version 440
layout(location = 0) out Block
{
vec4 a1;
vec2 a2;
};
void main()
{
a1 = vec4(1.0);
a2 = vec2(0.5);
gl_Position = vec4(1.0);
}

View File

@ -0,0 +1,11 @@
#version 440
layout(location = 0) in vec4 a1;
layout(location = 1) in vec2 a2;
layout(location = 0) out vec4 color;
void main()
{
color = vec4(a1.xy, a2);
}

View File

@ -0,0 +1,28 @@
#version 440
layout(triangles) in;
layout(triangle_strip, max_vertices=3) out;
layout(location = 0) in vec4 in_a1[3];
layout(location = 1) in vec2 in_a2[3];
layout(location = 0) out vec4 a1;
layout(location = 1) out vec2 a2;
void main()
{
a1 = in_a1[0];
a2 = in_a2[0];
gl_Position = vec4(1.0);
EmitVertex();
a1 = in_a1[1];
a2 = in_a2[1];
gl_Position = vec4(1.0);
EmitVertex();
a1 = in_a1[2];
a2 = in_a2[2];
gl_Position = vec4(1.0);
EmitVertex();
}

View File

@ -0,0 +1,14 @@
#version 440
layout(location = 0) out Block
{
vec4 a1;
vec2 a2;
};
void main()
{
a1 = vec4(1.0);
a2 = vec2(0.5);
gl_Position = vec4(1.0);
}

View File

@ -0,0 +1,11 @@
#version 440
layout(location = 0) out vec4 a1;
layout(location = 1) out vec2 a2;
void main()
{
a1 = vec4(1.0);
a2 = vec2(0.5);
gl_Position = vec4(1.0);
}

View File

@ -0,0 +1,13 @@
#version 440
layout(location = 0) in Inputs {
vec4 a1;
vec2 a2;
};
layout(location = 0) out vec4 color;
void main()
{
color = vec4(a1.xy, a2);
}

View File

@ -0,0 +1,19 @@
#version 440
layout(triangles) in;
layout(triangle_strip, max_vertices=3) out;
layout(location = 0) in Inputs {
vec4 a1;
vec2 a2;
} gin[3];
layout(location = 0) out vec4 a1;
layout(location = 1) out vec2 a2;
void main()
{
a1 = vec4(1.0);
a2 = vec2(0.5);
gl_Position = vec4(1.0);
}

View File

@ -0,0 +1,11 @@
#version 440
layout(location = 0) out vec4 a1;
layout(location = 1) out vec2 a2;
void main()
{
a1 = vec4(1.0);
a2 = vec2(0.5);
gl_Position = vec4(1.0);
}

View File

@ -0,0 +1,23 @@
#version 410
layout(triangles) in;
layout(triangle_strip, max_vertices=3) out;
in gl_PerVertex
{
vec4 gl_Position;
} gl_in[];
void main()
{
gl_Position = gl_in[0].gl_Position;
EmitVertex();
gl_Position = gl_in[1].gl_Position;
EmitVertex();
gl_Position = gl_in[2].gl_Position;
EmitVertex();
EndPrimitive();
}

View File

@ -0,0 +1,11 @@
#version 410
out gl_PerVertex
{
vec4 gl_Position;
};
void main()
{
gl_Position = vec4(1.0);
}

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