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"],
)
py_binary(
name = "gen_extension_headers",
srcs = ["gen_extension_headers.py"],
)
genrule(
name = "gen_build_info_h",
srcs = ["CHANGES.md", "build_info.h.tmpl"],
@ -58,6 +63,14 @@ genrule(
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({
"@bazel_tools//src/conditions:windows": [""],
"//conditions:default": [
@ -206,6 +219,7 @@ cc_binary(
srcs = [
"StandAlone/StandAlone.cpp",
"StandAlone/Worklist.h",
":glslang/glsl_intrinsic_header.h"
],
copts = COMMON_COPTS,
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
if (!defined(glslang_angle)) {
glslang_angle = false
@ -302,6 +319,7 @@ executable("glslang_validator") {
":glslang_build_info",
":glslang_default_resource_limits_sources",
":glslang_sources",
":glslang_extension_headers",
]
public_configs = [ ":glslang_hlsl" ]

View File

@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
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
### Other changes

View File

@ -118,7 +118,7 @@ if(USE_CCACHE)
find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
endif(CCACHE_FOUND)
endif()
endif()
if(ENABLE_CTEST)
@ -127,26 +127,27 @@ endif()
if(ENABLE_HLSL)
add_definitions(-DENABLE_HLSL)
endif(ENABLE_HLSL)
endif()
if(ENABLE_GLSLANG_WEBMIN)
add_definitions(-DGLSLANG_WEB)
if(ENABLE_GLSLANG_WEBMIN_DEVEL)
add_definitions(-DGLSLANG_WEB_DEVEL)
endif(ENABLE_GLSLANG_WEBMIN_DEVEL)
endif(ENABLE_GLSLANG_WEBMIN)
endif()
endif()
if(WIN32)
set(CMAKE_DEBUG_POSTFIX "d")
if(MSVC)
option(OVERRIDE_MSVCCRT "Overrides runtime of MSVC " ON)
if(MSVC AND OVERRIDE_MSVCCRT)
include(ChooseMSVCCRT.cmake)
endif(MSVC)
endif()
add_definitions(-DGLSLANG_OSINCLUDE_WIN32)
elseif(UNIX)
add_definitions(-DGLSLANG_OSINCLUDE_UNIX)
else(WIN32)
else()
message("unknown platform")
endif(WIN32)
endif()
if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")
add_compile_options(-Wall -Wmaybe-uninitialized -Wuninitialized -Wunused -Wunused-local-typedefs
@ -197,7 +198,7 @@ elseif(MSVC)
if(ENABLE_EXCEPTIONS)
add_compile_options(/EHsc) # Enable Exceptions
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)
endif()
endif()
@ -212,7 +213,7 @@ if(ENABLE_GLSLANG_JS)
add_compile_options(-Wno-unused-variable -Wno-unused-const-variable)
endif()
endif()
endif(ENABLE_GLSLANG_JS)
endif()
# Request C++11
if(${CMAKE_VERSION} VERSION_LESS 3.1)
@ -328,7 +329,7 @@ endif()
add_subdirectory(SPIRV)
if(ENABLE_HLSL)
add_subdirectory(hlsl)
endif(ENABLE_HLSL)
endif()
if(ENABLE_CTEST)
add_subdirectory(gtests)
endif()
@ -345,11 +346,11 @@ if(ENABLE_CTEST AND BUILD_TESTING)
set(RESULTS_PATH ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>/localResults)
set(VALIDATOR_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$<CONFIGURATION>/glslangValidator)
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(VALIDATOR_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/glslangValidator)
set(REMAP_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/spirv-remap)
endif(CMAKE_CONFIGURATION_TYPES)
endif()
add_test(NAME glslang-testsuite
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>)
else()
target_link_libraries(SPIRV PRIVATE MachineIndependent)
endif(ENABLE_OPT)
endif()
if(WIN32)
source_group("Source" FILES ${SOURCES} ${HEADERS})
source_group("Source" FILES ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
endif(WIN32)
endif()
if(ENABLE_GLSLANG_INSTALL)
if(BUILD_SHARED_LIBS)
@ -135,4 +135,4 @@ if(ENABLE_GLSLANG_INSTALL)
install(EXPORT SPIRVTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
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
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
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;
case glslang::EbvGeometryIndex:
return spv::BuiltInRayGeometryIndexKHR;
case glslang::EbvCurrentRayTimeNV:
builder.addExtension(spv::E_SPV_NV_ray_tracing_motion_blur);
builder.addCapability(spv::CapabilityRayTracingMotionBlurNV);
return spv::BuiltInCurrentRayTimeNV;
// barycentrics
case glslang::EbvBaryCoordNV:
@ -1826,10 +1830,10 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion,
std::vector<spv::Id> operandIds;
assert(!modeId.second.empty());
for (auto extraOperand : modeId.second) {
int nextConst = 0;
spv::Id operandId = createSpvConstantFromConstUnionArray(
extraOperand->getType(), extraOperand->getConstArray(), nextConst, false);
operandIds.push_back(operandId);
if (extraOperand->getType().getQualifier().isSpecConstant())
operandIds.push_back(getSymbolId(extraOperand->getAsSymbolNode()));
else
operandIds.push_back(createSpvConstant(*extraOperand));
}
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::EOpTerminateRayNV:
case glslang::EOpTraceNV:
case glslang::EOpTraceRayMotionNV:
case glslang::EOpTraceKHR:
case glslang::EOpExecuteCallableNV:
case glslang::EOpExecuteCallableKHR:
@ -3317,9 +3322,11 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
bool cond = glslangOperands[arg]->getAsConstantUnion()->getConstArray()[0].getBConst();
operands.push_back(builder.makeIntConstant(cond ? 1 : 0));
} else if ((arg == 10 && glslangOp == glslang::EOpTraceKHR) ||
(arg == 11 && glslangOp == glslang::EOpTraceRayMotionNV) ||
(arg == 1 && glslangOp == glslang::EOpExecuteCallableKHR)) {
const int opdNum = glslangOp == glslang::EOpTraceKHR ? 10 : 1;
const int set = glslangOp == glslang::EOpTraceKHR ? 0 : 1;
const int opdNum = glslangOp == glslang::EOpTraceKHR ? 10 : (glslangOp == glslang::EOpTraceRayMotionNV ? 11 : 1);
const int set = glslangOp == glslang::EOpExecuteCallableKHR ? 1 : 0;
const int location = glslangOperands[opdNum]->getAsConstantUnion()->getConstArray()[0].getUConst();
auto itNode = locationToSymbol[set].find(location);
visitSymbol(itNode->second);
@ -3377,7 +3384,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
const auto& spirvInst = node->getSpirvInstruction();
if (spirvInst.set == "") {
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()) {
// Translate the constant to a literal value
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.addCapability(spv::CapabilityFloat16ImageAMD);
return builder.makeFloatType(16);
case glslang::EbtInt64: return builder.makeIntType(64);
case glslang::EbtInt64:
builder.addExtension(spv::E_SPV_EXT_shader_image_int64);
builder.addCapability(spv::CapabilityFloat16ImageAMD);
case glslang::EbtUint64: return builder.makeUintType(64);
builder.addCapability(spv::CapabilityInt64ImageEXT);
return builder.makeIntType(64);
case glslang::EbtUint64:
builder.addExtension(spv::E_SPV_EXT_shader_image_int64);
builder.addCapability(spv::CapabilityFloat16ImageAMD);
builder.addCapability(spv::CapabilityInt64ImageEXT);
return builder.makeUintType(64);
#endif
default:
assert(0);
@ -4139,68 +4148,55 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
const auto& spirvType = type.getSpirvType();
const auto& spirvInst = spirvType.spirvInst;
std::vector<spv::Id> operands;
std::vector<spv::IdImmediate> operands;
for (const auto& typeParam : spirvType.typeParams) {
if (typeParam.isConstant) {
// Constant expression
if (typeParam.constant->isLiteral()) {
if (typeParam.constant->getBasicType() == glslang::EbtFloat) {
float floatValue = static_cast<float>(typeParam.constant->getConstArray()[0].getDConst());
unsigned literal = *reinterpret_cast<unsigned*>(&floatValue);
operands.push_back(literal);
} else if (typeParam.constant->getBasicType() == glslang::EbtInt) {
unsigned literal = typeParam.constant->getConstArray()[0].getIConst();
operands.push_back(literal);
} else if (typeParam.constant->getBasicType() == glslang::EbtUint) {
unsigned literal = typeParam.constant->getConstArray()[0].getUConst();
operands.push_back(literal);
} else if (typeParam.constant->getBasicType() == glslang::EbtBool) {
unsigned literal = typeParam.constant->getConstArray()[0].getBConst();
operands.push_back(literal);
} else if (typeParam.constant->getBasicType() == glslang::EbtString) {
auto str = typeParam.constant->getConstArray()[0].getSConst()->c_str();
unsigned literal = 0;
char* literalPtr = reinterpret_cast<char*>(&literal);
unsigned charCount = 0;
char ch = 0;
do {
ch = *(str++);
*(literalPtr++) = ch;
++charCount;
if (charCount == 4) {
operands.push_back(literal);
literalPtr = reinterpret_cast<char*>(&literal);
charCount = 0;
}
} while (ch != 0);
// Partial literal is padded with 0
if (charCount > 0) {
for (; charCount < 4; ++charCount)
*(literalPtr++) = 0;
operands.push_back(literal);
// Constant expression
if (typeParam.constant->isLiteral()) {
if (typeParam.constant->getBasicType() == glslang::EbtFloat) {
float floatValue = static_cast<float>(typeParam.constant->getConstArray()[0].getDConst());
unsigned literal = *reinterpret_cast<unsigned*>(&floatValue);
operands.push_back({false, literal});
} else if (typeParam.constant->getBasicType() == glslang::EbtInt) {
unsigned literal = typeParam.constant->getConstArray()[0].getIConst();
operands.push_back({false, literal});
} else if (typeParam.constant->getBasicType() == glslang::EbtUint) {
unsigned literal = typeParam.constant->getConstArray()[0].getUConst();
operands.push_back({false, literal});
} else if (typeParam.constant->getBasicType() == glslang::EbtBool) {
unsigned literal = typeParam.constant->getConstArray()[0].getBConst();
operands.push_back({false, literal});
} else if (typeParam.constant->getBasicType() == glslang::EbtString) {
auto str = typeParam.constant->getConstArray()[0].getSConst()->c_str();
unsigned literal = 0;
char* literalPtr = reinterpret_cast<char*>(&literal);
unsigned charCount = 0;
char ch = 0;
do {
ch = *(str++);
*(literalPtr++) = ch;
++charCount;
if (charCount == 4) {
operands.push_back({false, literal});
literalPtr = reinterpret_cast<char*>(&literal);
charCount = 0;
}
} else
assert(0); // Unexpected type
} else {
int nextConst = 0;
spv::Id constant = createSpvConstantFromConstUnionArray(
typeParam.constant->getType(), typeParam.constant->getConstArray(), nextConst, false);
operands.push_back(constant);
}
} else {
// Type specifier
spv::Id typeId = convertGlslangToSpvType(*typeParam.type);
operands.push_back(typeId);
}
} while (ch != 0);
// Partial literal is padded with 0
if (charCount > 0) {
for (; charCount < 4; ++charCount)
*(literalPtr++) = 0;
operands.push_back({false, literal});
}
} else
assert(0); // Unexpected type
} else
operands.push_back({true, createSpvConstant(*typeParam.constant)});
}
if (spirvInst.set == "")
spvType = builder.createOp(static_cast<spv::Op>(spirvInst.id), spv::NoType, operands);
else {
spvType = builder.createBuiltinCall(
spv::NoType, getExtBuiltins(spirvInst.set.c_str()), spirvInst.id, operands);
}
assert(spirvInst.set == ""); // Currently, couldn't be extended instructions.
spvType = builder.makeGenericType(static_cast<spv::Op>(spirvInst.id), operands);
break;
}
#endif
@ -7499,6 +7495,8 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op
break;
case glslang::EOpReadFirstInvocation:
opCode = spv::OpSubgroupFirstInvocationKHR;
if (builder.isVectorType(typeId))
return CreateInvocationsVectorOperation(opCode, groupOperation, typeId, operands);
break;
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 ||
op == spv::OpGroupFMax || op == spv::OpGroupUMax || op == spv::OpGroupSMax ||
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::OpGroupSMinNonUniformAMD ||
op == spv::OpGroupFMaxNonUniformAMD || op == spv::OpGroupUMaxNonUniformAMD ||
@ -7652,6 +7650,8 @@ spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv
spvGroupOperands.push_back(scalar);
spv::IdImmediate operand = { true, operands[1] };
spvGroupOperands.push_back(operand);
} else if (op == spv::OpSubgroupFirstInvocationKHR) {
spvGroupOperands.push_back(scalar);
} else if (op == spv::OpGroupBroadcast) {
spv::IdImmediate scope = { true, builder.makeUintConstant(spv::ScopeSubgroup) };
spvGroupOperands.push_back(scope);
@ -8322,6 +8322,11 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
case glslang::EOpTraceNV:
builder.createNoResultOp(spv::OpTraceNV, operands);
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:
builder.createNoResultOp(spv::OpTraceRayKHR, operands);
return 0;
@ -8829,12 +8834,12 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
std::vector<spv::Id> operandIds;
assert(!decorateId.second.empty());
for (auto extraOperand : decorateId.second) {
int nextConst = 0;
spv::Id operandId = createSpvConstantFromConstUnionArray(
extraOperand->getType(), extraOperand->getConstArray(), nextConst, false);
operandIds.push_back(operandId);
if (extraOperand->getQualifier().isSpecConstant())
operandIds.push_back(getSymbolId(extraOperand->getAsSymbolNode()));
else
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

View File

@ -427,6 +427,37 @@ Id Builder::makeCooperativeMatrixType(Id component, Id scope, Id rows, Id cols)
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
// 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) {
for (unsigned int i = 0; i < accessChain.swizzle.size(); ++i) {
accessChain.indexChain.push_back(makeUintConstant(accessChain.swizzle[i]));
accessChain.instr = NoResult;
Id base = collapseAccessChain();
addDecoration(base, nonUniform);

View File

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

View File

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

View File

@ -426,6 +426,7 @@ const char* BuiltInString(int builtIn)
case BuiltInSMCountNV: return "SMCountNV";
case BuiltInWarpIDNV: return "WarpIDNV";
case BuiltInSMIDNV: return "SMIDNV";
case BuiltInCurrentRayTimeNV: return "CurrentRayTimeNV";
default: return "Bad";
}
@ -899,6 +900,12 @@ const char* CapabilityString(int info)
case CapabilityDeviceGroup: return "DeviceGroup";
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 CapabilityFloat16ImageAMD: return "Float16ImageAMD";
@ -916,6 +923,7 @@ const char* CapabilityString(int info)
case CapabilityPerViewAttributesNV: return "PerViewAttributesNV";
case CapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV";
case CapabilityRayTracingNV: return "RayTracingNV";
case CapabilityRayTracingMotionBlurNV: return "RayTracingMotionBlurNV";
case CapabilityRayTracingKHR: return "RayTracingKHR";
case CapabilityRayQueryKHR: return "RayQueryKHR";
case CapabilityRayTracingProvisionalKHR: return "RayTracingProvisionalKHR";
@ -1382,6 +1390,7 @@ const char* OpcodeString(int op)
case OpTerminateRayNV: return "OpTerminateRayNV";
case OpTerminateRayKHR: return "OpTerminateRayKHR";
case OpTraceNV: return "OpTraceNV";
case OpTraceRayMotionNV: return "OpTraceRayMotionNV";
case OpTraceRayKHR: return "OpTraceRayKHR";
case OpTypeAccelerationStructureKHR: return "OpTypeAccelerationStructureKHR";
case OpExecuteCallableNV: return "OpExecuteCallableNV";
@ -2812,6 +2821,20 @@ void Parameterize()
InstructionDesc[OpTraceNV].operands.push(OperandId, "'Payload'");
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, "'Ray Flags'");
InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Cull Mask'");

View File

@ -652,6 +652,7 @@ enum BuiltIn {
BuiltInHitTNV = 5332,
BuiltInHitKindKHR = 5333,
BuiltInHitKindNV = 5333,
BuiltInCurrentRayTimeNV = 5334,
BuiltInIncomingRayFlagsKHR = 5351,
BuiltInIncomingRayFlagsNV = 5351,
BuiltInRayGeometryIndexKHR = 5352,
@ -988,6 +989,7 @@ enum Capability {
CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
CapabilityRayTracingNV = 5340,
CapabilityRayTracingMotionBlurNV = 5341,
CapabilityVulkanMemoryModel = 5345,
CapabilityVulkanMemoryModelKHR = 5345,
CapabilityVulkanMemoryModelDeviceScope = 5346,
@ -1503,6 +1505,8 @@ enum Op {
OpIgnoreIntersectionNV = 5335,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
OpTraceMotionNV = 5338,
OpTraceRayMotionNV = 5339,
OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
OpExecuteCallableNV = 5344,
@ -1539,7 +1543,7 @@ enum Op {
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
OpConstFunctionPointerINTEL = 5600,
OpConstantFunctionPointerINTEL = 5600,
OpFunctionPointerCallINTEL = 5601,
OpAsmTargetINTEL = 5609,
OpAsmINTEL = 5610,
@ -2090,6 +2094,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
case OpTerminateRayNV: *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 OpExecuteCallableNV: *hasResult = false; *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 OpIMul32x16INTEL: *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 OpAsmTargetINTEL: *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
# 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
${CMAKE_CURRENT_SOURCE_DIR}/ResourceLimits.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:${PROJECT_SOURCE_DIR}>)
set(SOURCES StandAlone.cpp DirStackFileIncluder.h)
set(SOURCES StandAlone.cpp DirStackFileIncluder.h ${GLSLANG_INTRINSIC_H})
add_executable(glslangValidator ${SOURCES})
set_property(TARGET glslangValidator PROPERTY FOLDER tools)
@ -62,7 +78,7 @@ elseif(UNIX)
if(NOT ANDROID)
set(LIBRARIES ${LIBRARIES} pthread)
endif()
endif(WIN32)
endif()
target_link_libraries(glslangValidator ${LIBRARIES})
target_include_directories(glslangValidator PUBLIC
@ -73,7 +89,7 @@ if(ENABLE_OPT)
target_include_directories(glslangValidator
PRIVATE ${spirv-tools_SOURCE_DIR}/include
)
endif(ENABLE_OPT)
endif()
if(ENABLE_SPVREMAPPER)
set(REMAPPER_SOURCES spirv-remap.cpp)
@ -85,7 +101,7 @@ endif()
if(WIN32)
source_group("Source" FILES ${SOURCES})
endif(WIN32)
endif()
if(ENABLE_GLSLANG_INSTALL)
install(TARGETS glslangValidator EXPORT glslangValidatorTargets
@ -108,4 +124,4 @@ if(ENABLE_GLSLANG_INSTALL)
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
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) 2013-2016 LunarG, Inc.
// Copyright (C) 2016-2020 Google, Inc.
// Modifications Copyright(C) 2021 Advanced Micro Devices, Inc.All rights reserved.
//
// All rights reserved.
//
@ -65,6 +66,8 @@
// Build-time generated includes
#include "glslang/build_info.h"
#include "glslang/glsl_intrinsic_header.h"
extern "C" {
GLSLANG_EXPORT void ShOutputHtml();
}
@ -174,6 +177,7 @@ const char* shaderStageName = nullptr;
const char* variableName = nullptr;
bool HlslEnable16BitTypes = false;
bool HlslDX9compatible = false;
bool HlslDxPositionW = false;
bool DumpBuiltinSymbols = false;
std::vector<std::string> IncludeDirectoryList;
@ -263,6 +267,7 @@ protected:
// Track the user's #define and #undef from the command line.
TPreamble UserPreamble;
std::string PreambleString;
//
// 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;
} else if (lowerword == "hlsl-dx9-compatible") {
HlslDX9compatible = true;
} else if (lowerword == "hlsl-dx-position-w") {
HlslDxPositionW = true;
} else if (lowerword == "auto-sampled-textures") {
autoSampledTextures = true;
} else if (lowerword == "invert-y" || // synonyms
@ -1204,8 +1211,17 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
"Use '-e <name>'.\n");
shader->setSourceEntryPoint(sourceEntryPointName);
}
std::string intrinsicString = getIntrinsic(compUnit.text, compUnit.count);
PreambleString = "";
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);
#ifndef GLSLANG_WEB
@ -1271,6 +1287,9 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
if (Options & EOptionInvertY)
shader->setInvertY(true);
if (HlslDxPositionW)
shader->setDxPositionW(true);
// Set up the environment, some subsettings take precedence over earlier
// ways of setting things.
if (Options & EOptionSpv) {
@ -1834,6 +1853,8 @@ void usage()
" --hlsl-dx9-compatible interprets sampler declarations as a\n"
" texture/sampler combo like DirectX9 would,\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"
" --keep-uncalled | --ku don't eliminate uncalled functions\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
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 47 50
EntryPoint Fragment 4 "main" 50
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "main"
Name 21 "samp"
Name 33 "tex"
Name 47 "vpos"
Name 50 "@entryPointOutput"
Decorate 21(samp) DescriptorSet 0
Decorate 21(samp) Binding 0
Decorate 33(tex) DescriptorSet 0
Decorate 33(tex) Binding 1
Decorate 47(vpos) Location 0
Decorate 50(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
@ -34,8 +32,6 @@ hlsl.flattenSubset.frag
39: TypeVector 6(float) 2
40: 6(float) Constant 1056964608
41: 39(fvec2) ConstantComposite 40 40
46: TypePointer Input 7(fvec4)
47(vpos): 46(ptr) Variable Input
49: TypePointer Output 7(fvec4)
50(@entryPointOutput): 49(ptr) Variable Output
4(main): 2 Function None 3

View File

@ -6,13 +6,11 @@ hlsl.flattenSubset2.frag
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 49 52
EntryPoint Fragment 4 "main" 52
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "main"
Name 49 "vpos"
Name 52 "@entryPointOutput"
Decorate 49(vpos) Location 0
Decorate 52(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
@ -20,8 +18,6 @@ hlsl.flattenSubset2.frag
7: TypeVector 6(float) 4
43: 6(float) Constant 0
44: 7(fvec4) ConstantComposite 43 43 43 43
48: TypePointer Input 7(fvec4)
49(vpos): 48(ptr) Variable Input
51: TypePointer Output 7(fvec4)
52(@entryPointOutput): 51(ptr) Variable Output
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 Parameters:
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 '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 2 (const int)
0:44 Construct vec3 ( temp lowp 3-component vector of float)
0:44 Convert int to float ( temp lowp float)
0:44 Construct vec3 ( temp mediump 3-component vector of 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 '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 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 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})
@ -43,7 +43,7 @@ ERROR: node is still EOpNull!
0:44 0 (const uint)
0:44 Constant:
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 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})
@ -92,18 +92,18 @@ ERROR: node is still EOpNull!
0:42 Function Definition: main( ( global void)
0:42 Function Parameters:
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 '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 2 (const int)
0:44 Construct vec3 ( temp lowp 3-component vector of float)
0:44 Convert int to float ( temp lowp float)
0:44 Construct vec3 ( temp mediump 3-component vector of 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 '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 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 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})
@ -111,7 +111,7 @@ ERROR: node is still EOpNull!
0:44 0 (const uint)
0:44 Constant:
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 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})

View File

@ -180,7 +180,7 @@ ERROR: node is still EOpNull!
0:91 'i' ( temp highp int)
0:92 imageStore ( global highp void)
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)
@ -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: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 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: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 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:43 textureProjGradOffset ( global highp 4-component vector of uint)
0:43 'usamp2d' ( uniform highp usampler2D)
@ -471,7 +471,7 @@ ERROR: node is still EOpNull!
0:211 Constant:
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:212 textureGatherOffsets ( global highp 4-component vector of float)
0:212 direct index ( temp highp sampler2D)
@ -507,7 +507,7 @@ ERROR: node is still EOpNull!
0:221 Constant:
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:222 textureGatherOffsets ( global highp 4-component vector of float)
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 Constant:
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 'sArray' ( uniform 4-element array of lowp sampler2D)
0:165 Constant:
@ -338,7 +338,7 @@ ERROR: node is still EOpNull!
0:165 Constant:
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:166 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp)
0:166 direct index ( temp lowp sampler2D)
@ -394,7 +394,7 @@ ERROR: node is still EOpNull!
0:179 'sIndex' ( uniform highp int)
0:179 Constant:
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 'sArray' ( uniform 4-element array of lowp sampler2D)
0:180 Constant:
@ -402,7 +402,7 @@ ERROR: node is still EOpNull!
0:180 Constant:
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:181 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp)
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 'ing' ( smooth in 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 'sArray' ( uniform 4-element array of lowp sampler2D)
0:77 Constant:
@ -129,7 +129,7 @@ ERROR: node is still EOpNull!
0:77 Constant:
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:78 textureGatherOffsets ( global lowp 4-component vector of float, operation at mediump)
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 Constant:
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 'sArray' ( uniform 4-element array of lowp sampler2D)
0:71 Constant:
@ -107,7 +107,7 @@ ERROR: node is still EOpNull!
0:71 Constant:
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:72 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp)
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
local_size = (1, 1, 1)
0:? Sequence
0:48 Function Definition: main( ( global void)
0:48 Function Parameters:
0:69 Function Definition: main( ( global void)
0:69 Function Parameters:
0:? Linker Objects
0:? 'bool_init' ( const bool)
0:? true (const bool)
@ -29,6 +29,12 @@ local_size = (1, 1, 1)
0:? 'float32_t_init' ( const float)
0:? 13.000000
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:? 'bool_to_bool' ( 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:? 13 (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:? 1 (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:? 13 (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:? 1 (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:? 13 (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:? 1 (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:? 13 (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:? 1 (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:? 13 (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:? 1 (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:? 13 (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:? 1 (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:? 13 (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:? 1 (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:? 13 (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:? 1.000000
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:? 13.000000
0:? 'float64_t_to_float16_t' ( const float16_t)
0:? -4.000000
0:? 4.000000
0:? 'bool_to_float32_t' ( const float)
0:? 1.000000
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:? 13.000000
0:? 'float64_t_to_float32_t' ( const float)
0:? -4.000000
0:? 4.000000
0:? 'bool_to_float64_t' ( const double)
0:? 1.000000
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:? 13.000000
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
@ -327,8 +381,8 @@ Shader version: 450
Requested GL_EXT_shader_explicit_arithmetic_types
local_size = (1, 1, 1)
0:? Sequence
0:48 Function Definition: main( ( global void)
0:48 Function Parameters:
0:69 Function Definition: main( ( global void)
0:69 Function Parameters:
0:? Linker Objects
0:? 'bool_init' ( const bool)
0:? true (const bool)
@ -353,6 +407,12 @@ local_size = (1, 1, 1)
0:? 'float32_t_init' ( const float)
0:? 13.000000
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:? 'bool_to_bool' ( 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:? 13 (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:? 1 (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:? 13 (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:? 1 (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:? 13 (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:? 1 (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:? 13 (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:? 1 (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:? 13 (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:? 1 (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:? 13 (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:? 1 (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:? 13 (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:? 1 (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:? 13 (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:? 1.000000
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:? 13.000000
0:? 'float64_t_to_float16_t' ( const float16_t)
0:? -4.000000
0:? 4.000000
0:? 'bool_to_float32_t' ( const float)
0:? 1.000000
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:? 13.000000
0:? 'float64_t_to_float32_t' ( const float)
0:? -4.000000
0:? 4.000000
0:? 'bool_to_float64_t' ( const double)
0:? 1.000000
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:? 13.000000
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

View File

@ -16,7 +16,7 @@ output primitive = points
0:12 Constant:
0:12 0 (const uint)
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_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
0:12 Constant:
@ -47,7 +47,7 @@ output primitive = points
0:12 Constant:
0:12 0 (const uint)
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_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
0:12 Constant:

View File

@ -13,7 +13,7 @@ vertices = 1
0:11 Constant:
0:11 0 (const uint)
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_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
0:11 Constant:
@ -41,7 +41,7 @@ vertices = 1
0:11 Constant:
0:11 0 (const uint)
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_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
0:11 Constant:

View File

@ -15,7 +15,7 @@ triangle order = none
0:11 Constant:
0:11 0 (const uint)
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_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
0:11 Constant:
@ -45,7 +45,7 @@ triangle order = ccw
0:11 Constant:
0:11 0 (const uint)
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_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
0:11 Constant:

View File

@ -12,7 +12,7 @@ Requested GL_KHR_shader_subgroup_basic
0:10 Constant:
0:10 0 (const uint)
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_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
0:10 Constant:
@ -41,7 +41,7 @@ Requested GL_KHR_shader_subgroup_basic
0:10 Constant:
0:10 0 (const uint)
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_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
0:10 Constant:

View File

@ -16,9 +16,9 @@ using depth_any
0:31 Constant:
0:31 0.100000
0:31 Constant:
0:31 0.500000
0:31 Constant:
0:31 1 (const int)
0:31 Constant:
0:31 0.500000
0:32 Sequence
0:32 move second child to first child ( 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 0.200000
0:32 Constant:
0:32 0.500000
0:32 Constant:
0:32 1 (const int)
0:32 Constant:
0:32 0.500000
0:33 Sequence
0:33 move second child to first child ( 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 0.300000
0:33 Constant:
0:33 0.500000
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
0:33 0.500000
0:35 Sequence
0:35 move second child to first child ( 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.200000
0:35 Constant:
0:35 0.500000
0:35 Constant:
0:35 1 (const int)
0:35 0 (const int)
0:35 Constant:
0:35 0.500000
0:36 Sequence
0:36 move second child to first child ( 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.400000
0:36 Constant:
0:36 0.500000
0:36 1 (const int)
0:36 1 (const int)
0:36 Constant:
0:36 1 (const int)
0:36 1 (const int)
0:36 0.500000
0:37 Sequence
0:37 move second child to first child ( 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.600000
0:37 Constant:
0:37 0.500000
0:37 Constant:
0:37 1 (const int)
0:37 -1 (const int)
0:37 Constant:
0:37 0.500000
0:39 Sequence
0:39 move second child to first child ( 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.300000
0:39 Constant:
0:39 0.500000
0:39 Constant:
0:39 1 (const int)
0:39 0 (const int)
0:39 1 (const int)
0:39 Constant:
0:39 0.500000
0:40 Sequence
0:40 move second child to first child ( 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.600000
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 1 (const int)
0:40 1 (const int)
0:40 1 (const int)
0:40 0.500000
0:41 Sequence
0:41 move second child to first child ( 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.900000
0:41 Constant:
0:41 0.500000
0:41 Constant:
0:41 1 (const int)
0:41 0 (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 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})
@ -218,9 +218,9 @@ using depth_any
0:31 Constant:
0:31 0.100000
0:31 Constant:
0:31 0.500000
0:31 Constant:
0:31 1 (const int)
0:31 Constant:
0:31 0.500000
0:32 Sequence
0:32 move second child to first child ( 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 0.200000
0:32 Constant:
0:32 0.500000
0:32 Constant:
0:32 1 (const int)
0:32 Constant:
0:32 0.500000
0:33 Sequence
0:33 move second child to first child ( 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 0.300000
0:33 Constant:
0:33 0.500000
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
0:33 0.500000
0:35 Sequence
0:35 move second child to first child ( 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.200000
0:35 Constant:
0:35 0.500000
0:35 Constant:
0:35 1 (const int)
0:35 0 (const int)
0:35 Constant:
0:35 0.500000
0:36 Sequence
0:36 move second child to first child ( 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.400000
0:36 Constant:
0:36 0.500000
0:36 1 (const int)
0:36 1 (const int)
0:36 Constant:
0:36 1 (const int)
0:36 1 (const int)
0:36 0.500000
0:37 Sequence
0:37 move second child to first child ( 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.600000
0:37 Constant:
0:37 0.500000
0:37 Constant:
0:37 1 (const int)
0:37 -1 (const int)
0:37 Constant:
0:37 0.500000
0:39 Sequence
0:39 move second child to first child ( 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.300000
0:39 Constant:
0:39 0.500000
0:39 Constant:
0:39 1 (const int)
0:39 0 (const int)
0:39 1 (const int)
0:39 Constant:
0:39 0.500000
0:40 Sequence
0:40 move second child to first child ( 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.600000
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 1 (const int)
0:40 1 (const int)
0:40 1 (const int)
0:40 0.500000
0:41 Sequence
0:41 move second child to first child ( 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.900000
0:41 Constant:
0:41 0.500000
0:41 Constant:
0:41 1 (const int)
0:41 0 (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 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})
@ -399,7 +399,6 @@ using depth_any
0:? '@entryPointOutput.Depth' ( out float FragDepth)
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 161
@ -489,12 +488,12 @@ Validation failed
20(g_sSamp): 19(ptr) Variable UniformConstant
22: TypeSampledImage 14
24: 6(float) Constant 1036831949
25: 6(float) Constant 1056964608
26: TypeInt 32 1
27: 26(int) Constant 1
29: TypeVector 26(int) 4
25: TypeInt 32 1
26: 25(int) Constant 1
27: 6(float) Constant 1056964608
29: TypeVector 25(int) 4
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
34(g_tTex1di4): 33(ptr) Variable UniformConstant
37: TypeSampledImage 32
@ -513,38 +512,38 @@ Validation failed
60: TypeSampledImage 55
62: TypeVector 6(float) 2
63: 62(fvec2) ConstantComposite 24 39
64: TypeVector 26(int) 2
65: 26(int) Constant 0
66: 64(ivec2) ConstantComposite 27 65
69: TypeImage 26(int) 2D sampled format:Unknown
64: TypeVector 25(int) 2
65: 25(int) Constant 0
66: 64(ivec2) ConstantComposite 26 65
69: TypeImage 25(int) 2D sampled format:Unknown
70: TypePointer UniformConstant 69
71(g_tTex2di4): 70(ptr) Variable UniformConstant
74: TypeSampledImage 69
76: 6(float) Constant 1053609165
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
82: TypePointer UniformConstant 81
83(g_tTex2du4): 82(ptr) Variable UniformConstant
86: TypeSampledImage 81
88: 6(float) Constant 1058642330
89: 62(fvec2) ConstantComposite 25 88
90: 26(int) Constant 4294967295
91: 64(ivec2) ConstantComposite 27 90
89: 62(fvec2) ConstantComposite 27 88
90: 25(int) Constant 4294967295
91: 64(ivec2) ConstantComposite 26 90
94: TypeImage 6(float) 3D sampled format:Unknown
95: TypePointer UniformConstant 94
96(g_tTex3df4): 95(ptr) Variable UniformConstant
99: TypeSampledImage 94
101: TypeVector 6(float) 3
102: 101(fvec3) ConstantComposite 24 39 52
103: TypeVector 26(int) 3
104: 103(ivec3) ConstantComposite 27 65 27
107: TypeImage 26(int) 3D sampled format:Unknown
103: TypeVector 25(int) 3
104: 103(ivec3) ConstantComposite 26 65 26
107: TypeImage 25(int) 3D sampled format:Unknown
108: TypePointer UniformConstant 107
109(g_tTex3di4): 108(ptr) Variable UniformConstant
112: TypeSampledImage 107
114: 101(fvec3) ConstantComposite 76 25 88
115: 103(ivec3) ConstantComposite 27 27 27
114: 101(fvec3) ConstantComposite 76 27 88
115: 103(ivec3) ConstantComposite 26 26 26
118: TypeImage 41(int) 3D sampled format:Unknown
119: TypePointer UniformConstant 118
120(g_tTex3du4): 119(ptr) Variable UniformConstant
@ -553,7 +552,7 @@ Validation failed
126: 6(float) Constant 1061997773
127: 6(float) Constant 1063675494
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)
133: 6(float) Constant 1065353216
134: 7(fvec4) ConstantComposite 133 133 133 133
@ -566,7 +565,7 @@ Validation failed
152: TypeImage 6(float) Cube sampled format:Unknown
153: TypePointer UniformConstant 152
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
157(g_tTexcdi4): 156(ptr) Variable UniformConstant
158: TypeImage 41(int) Cube sampled format:Unknown
@ -580,7 +579,7 @@ Validation failed
145: 12(ptr) AccessChain 141(flattenTemp) 65
146: 7(fvec4) Load 145
Store 144(@entryPointOutput.Color) 146
149: 136(ptr) AccessChain 141(flattenTemp) 27
149: 136(ptr) AccessChain 141(flattenTemp) 26
150: 6(float) Load 149
Store 148(@entryPointOutput.Depth) 150
Return
@ -600,51 +599,51 @@ Validation failed
17: 14 Load 16(g_tTex1df4)
21: 18 Load 20(g_sSamp)
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
35: 32 Load 34(g_tTex1di4)
36: 18 Load 20(g_sSamp)
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
48: 45 Load 47(g_tTex1du4)
49: 18 Load 20(g_sSamp)
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
58: 55 Load 57(g_tTex2df4)
59: 18 Load 20(g_sSamp)
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
72: 69 Load 71(g_tTex2di4)
73: 18 Load 20(g_sSamp)
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
84: 81 Load 83(g_tTex2du4)
85: 18 Load 20(g_sSamp)
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
97: 94 Load 96(g_tTex3df4)
98: 18 Load 20(g_sSamp)
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
110: 107 Load 109(g_tTex3di4)
111: 18 Load 20(g_sSamp)
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
121: 118 Load 120(g_tTex3du4)
122: 18 Load 20(g_sSamp)
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
135: 12(ptr) AccessChain 132(psout) 65
Store 135 134
137: 136(ptr) AccessChain 132(psout) 27
137: 136(ptr) AccessChain 132(psout) 26
Store 137 133
138:8(PS_OUTPUT) Load 132(psout)
ReturnValue 138

View File

@ -17,9 +17,9 @@ using depth_any
0:23 0.100000
0:23 0.200000
0:23 Constant:
0:23 0.500000
0:23 Constant:
0:23 0 (const int)
0:23 Constant:
0:23 0.500000
0:24 Sequence
0:24 move second child to first child ( 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.300000
0:24 Constant:
0:24 0.500000
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
0:24 0.500000
0:25 Sequence
0:25 move second child to first child ( 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.400000
0:25 Constant:
0:25 0.500000
0:25 Constant:
0:25 2 (const int)
0:25 Constant:
0:25 0.500000
0:27 Sequence
0:27 move second child to first child ( 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.300000
0:27 Constant:
0:27 0.500000
0:27 0 (const int)
0:27 0 (const int)
0:27 Constant:
0:27 0 (const int)
0:27 0 (const int)
0:27 0.500000
0:28 Sequence
0:28 move second child to first child ( 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.500000
0:28 Constant:
0:28 0.500000
0:28 0 (const int)
0:28 0 (const int)
0:28 Constant:
0:28 0 (const int)
0:28 0 (const int)
0:28 0.500000
0:29 Sequence
0:29 move second child to first child ( 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.700000
0:29 Constant:
0:29 0.500000
0:29 Constant:
0:29 0 (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 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})
@ -168,9 +168,9 @@ using depth_any
0:23 0.100000
0:23 0.200000
0:23 Constant:
0:23 0.500000
0:23 Constant:
0:23 0 (const int)
0:23 Constant:
0:23 0.500000
0:24 Sequence
0:24 move second child to first child ( 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.300000
0:24 Constant:
0:24 0.500000
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
0:24 0.500000
0:25 Sequence
0:25 move second child to first child ( 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.400000
0:25 Constant:
0:25 0.500000
0:25 Constant:
0:25 2 (const int)
0:25 Constant:
0:25 0.500000
0:27 Sequence
0:27 move second child to first child ( 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.300000
0:27 Constant:
0:27 0.500000
0:27 0 (const int)
0:27 0 (const int)
0:27 Constant:
0:27 0 (const int)
0:27 0 (const int)
0:27 0.500000
0:28 Sequence
0:28 move second child to first child ( 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.500000
0:28 Constant:
0:28 0.500000
0:28 0 (const int)
0:28 0 (const int)
0:28 Constant:
0:28 0 (const int)
0:28 0 (const int)
0:28 0.500000
0:29 Sequence
0:29 move second child to first child ( 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.700000
0:29 Constant:
0:29 0.500000
0:29 Constant:
0:29 0 (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 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})
@ -297,7 +297,6 @@ using depth_any
0:? '@entryPointOutput.Depth' ( out float FragDepth)
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 118
@ -369,18 +368,18 @@ Validation failed
25: 6(float) Constant 1036831949
26: 6(float) Constant 1045220557
27: 24(fvec2) ConstantComposite 25 26
28: 6(float) Constant 1056964608
29: TypeInt 32 1
30: 29(int) Constant 0
32: TypeVector 29(int) 4
28: TypeInt 32 1
29: 28(int) Constant 0
30: 6(float) Constant 1056964608
32: TypeVector 28(int) 4
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
37(g_tTex1di4): 36(ptr) Variable UniformConstant
40: TypeSampledImage 35
42: 6(float) Constant 1050253722
43: 24(fvec2) ConstantComposite 26 42
44: 29(int) Constant 1
44: 28(int) Constant 1
46: TypeInt 32 0
47: TypeVector 46(int) 4
48: TypePointer Function 47(ivec4)
@ -390,28 +389,28 @@ Validation failed
55: TypeSampledImage 50
57: 6(float) Constant 1053609165
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
63: TypePointer UniformConstant 62
64(g_tTex2df4): 63(ptr) Variable UniformConstant
67: TypeSampledImage 62
69: TypeVector 6(float) 3
70: 69(fvec3) ConstantComposite 25 26 42
71: TypeVector 29(int) 2
72: 71(ivec2) ConstantComposite 30 30
75: TypeImage 29(int) 2D array sampled format:Unknown
71: TypeVector 28(int) 2
72: 71(ivec2) ConstantComposite 29 29
75: TypeImage 28(int) 2D array sampled format:Unknown
76: TypePointer UniformConstant 75
77(g_tTex2di4): 76(ptr) Variable UniformConstant
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
86: TypePointer UniformConstant 85
87(g_tTex2du4): 86(ptr) Variable UniformConstant
90: TypeSampledImage 85
92: 6(float) Constant 1058642330
93: 6(float) Constant 1060320051
94: 69(fvec3) ConstantComposite 28 92 93
95: 71(ivec2) ConstantComposite 30 44
94: 69(fvec3) ConstantComposite 30 92 93
95: 71(ivec2) ConstantComposite 29 44
97: TypePointer Function 8(PS_OUTPUT)
99: 6(float) Constant 1065353216
100: 7(fvec4) ConstantComposite 99 99 99 99
@ -426,7 +425,7 @@ Validation failed
107(flattenTemp): 97(ptr) Variable Function
108:8(PS_OUTPUT) FunctionCall 10(@main()
Store 107(flattenTemp) 108
111: 12(ptr) AccessChain 107(flattenTemp) 30
111: 12(ptr) AccessChain 107(flattenTemp) 29
112: 7(fvec4) Load 111
Store 110(@entryPointOutput.Color) 112
115: 102(ptr) AccessChain 107(flattenTemp) 44
@ -446,34 +445,34 @@ Validation failed
17: 14 Load 16(g_tTex1df4)
21: 18 Load 20(g_sSamp)
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
38: 35 Load 37(g_tTex1di4)
39: 18 Load 20(g_sSamp)
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
53: 50 Load 52(g_tTex1du4)
54: 18 Load 20(g_sSamp)
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
65: 62 Load 64(g_tTex2df4)
66: 18 Load 20(g_sSamp)
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
78: 75 Load 77(g_tTex2di4)
79: 18 Load 20(g_sSamp)
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
88: 85 Load 87(g_tTex2du4)
89: 18 Load 20(g_sSamp)
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
101: 12(ptr) AccessChain 98(psout) 30
101: 12(ptr) AccessChain 98(psout) 29
Store 101 100
103: 102(ptr) AccessChain 98(psout) 44
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) 1 Offset 16
Decorate 26(block) BufferBlock
Decorate 28 DescriptorSet 0
Decorate 28 Binding 1
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0

View File

@ -31,7 +31,6 @@ spv.1.4.OpEntryPoint.frag
Decorate 25(uniformv) Binding 0
MemberDecorate 31(pushB) 0 Offset 0
Decorate 31(pushB) Block
Decorate 33(pushv) Binding 2
MemberDecorate 39(bbt) 0 Offset 0
Decorate 39(bbt) Block
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) 1 Offset 16
Decorate 37(block) BufferBlock
Decorate 39 DescriptorSet 0
Decorate 39 Binding 2
Decorate 50(accNV1) DescriptorSet 0
Decorate 50(accNV1) Binding 1
Decorate 53(payload) Location 0

View File

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

View File

@ -37,8 +37,6 @@ spv.RayGenShaderArray.rgen
MemberDecorate 34(block) 1 Offset 16
MemberDecorate 34(block) 2 Offset 28
Decorate 34(block) BufferBlock
Decorate 36 DescriptorSet 0
Decorate 36 Binding 2
Decorate 60(accNV1) DescriptorSet 0
Decorate 60(accNV1) Binding 1
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) BuiltIn SubgroupSize
Decorate 99 RelaxedPrecision
Decorate 100 RelaxedPrecision
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

@ -22,7 +22,9 @@ Validation failed
Decorate 11(as) Binding 0
2: TypeVoid
3: TypeFunction 2
6: TypeRayQueryKHR
7: TypePointer Function 6
9: TypeAccelerationStructureKHR
10: TypePointer UniformConstant 9
11(as): 10(ptr) Variable UniformConstant
13: TypeInt 32 0
@ -36,8 +38,6 @@ Validation failed
4(main): 2 Function None 3
5: Label
8(rq): 7(ptr) Variable Function
6: TypeRayQueryKHR
9: TypeAccelerationStructureKHR
12: 9 Load 11(as)
RayQueryInitializeKHR 8(rq) 12 14 14 18 17 20 19
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 62(in_f_color) RelaxedPrecision
Decorate 62(in_f_color) Location 0
Decorate 67 RelaxedPrecision
Decorate 68 RelaxedPrecision
Decorate 69 RelaxedPrecision
Decorate 70 RelaxedPrecision
Decorate 97 NoContraction
Decorate 99 NoContraction
Decorate 101 NoContraction

View File

@ -1,7 +1,7 @@
spv.shaderBallot.comp
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 343
// Id's are bound by 397
Capability Shader
Capability Int64
@ -42,7 +42,7 @@ spv.shaderBallot.comp
Decorate 72(Buffers) BufferBlock
Decorate 75(data) DescriptorSet 0
Decorate 75(data) Binding 0
Decorate 342 BuiltIn WorkgroupSize
Decorate 396 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
@ -89,8 +89,8 @@ spv.shaderBallot.comp
196: TypePointer Uniform 6(int)
203: TypePointer Uniform 20(ivec4)
218: TypeVector 6(int) 3
341: 6(int) Constant 8
342: 218(ivec3) ConstantComposite 341 341 100
395: 6(int) Constant 8
396: 218(ivec3) ConstantComposite 395 395 100
4(main): 2 Function None 3
5: Label
8(invocation): 7(ptr) Variable Function
@ -329,107 +329,161 @@ spv.shaderBallot.comp
257: 88(ptr) AccessChain 75(data) 86 77
258: 69(fvec4) Load 257
259: 87(fvec2) VectorShuffle 258 258 0 1
260: 87(fvec2) SubgroupFirstInvocationKHR 259
261: 79(ptr) AccessChain 75(data) 256 77 78
262: 68(float) CompositeExtract 260 0
Store 261 262
263: 79(ptr) AccessChain 75(data) 256 77 100
264: 68(float) CompositeExtract 260 1
Store 263 264
265: 6(int) Load 8(invocation)
266: 88(ptr) AccessChain 75(data) 104 77
267: 69(fvec4) Load 266
268: 105(fvec3) VectorShuffle 267 267 0 1 2
269: 105(fvec3) SubgroupFirstInvocationKHR 268
270: 79(ptr) AccessChain 75(data) 265 77 78
271: 68(float) CompositeExtract 269 0
Store 270 271
272: 79(ptr) AccessChain 75(data) 265 77 100
273: 68(float) CompositeExtract 269 1
Store 272 273
274: 79(ptr) AccessChain 75(data) 265 77 121
275: 68(float) CompositeExtract 269 2
Store 274 275
276: 6(int) Load 8(invocation)
277: 88(ptr) AccessChain 75(data) 125 77
278: 69(fvec4) Load 277
279: 69(fvec4) SubgroupFirstInvocationKHR 278
280: 88(ptr) AccessChain 75(data) 276 77
Store 280 279
281: 6(int) Load 8(invocation)
282: 140(ptr) AccessChain 75(data) 77 86 78
283: 70(int) Load 282
284: 70(int) SubgroupFirstInvocationKHR 283
285: 140(ptr) AccessChain 75(data) 281 86 78
Store 285 284
260: 68(float) CompositeExtract 259 0
261: 68(float) SubgroupFirstInvocationKHR 260
262: 68(float) CompositeExtract 259 1
263: 68(float) SubgroupFirstInvocationKHR 262
264: 87(fvec2) CompositeConstruct 261 263
265: 79(ptr) AccessChain 75(data) 256 77 78
266: 68(float) CompositeExtract 264 0
Store 265 266
267: 79(ptr) AccessChain 75(data) 256 77 100
268: 68(float) CompositeExtract 264 1
Store 267 268
269: 6(int) Load 8(invocation)
270: 88(ptr) AccessChain 75(data) 104 77
271: 69(fvec4) Load 270
272: 105(fvec3) VectorShuffle 271 271 0 1 2
273: 68(float) CompositeExtract 272 0
274: 68(float) SubgroupFirstInvocationKHR 273
275: 68(float) CompositeExtract 272 1
276: 68(float) SubgroupFirstInvocationKHR 275
277: 68(float) CompositeExtract 272 2
278: 68(float) SubgroupFirstInvocationKHR 277
279: 105(fvec3) CompositeConstruct 274 276 278
280: 79(ptr) AccessChain 75(data) 269 77 78
281: 68(float) CompositeExtract 279 0
Store 280 281
282: 79(ptr) AccessChain 75(data) 269 77 100
283: 68(float) CompositeExtract 279 1
Store 282 283
284: 79(ptr) AccessChain 75(data) 269 77 121
285: 68(float) CompositeExtract 279 2
Store 284 285
286: 6(int) Load 8(invocation)
287: 148(ptr) AccessChain 75(data) 86 86
288: 71(ivec4) Load 287
289: 147(ivec2) VectorShuffle 288 288 0 1
290: 147(ivec2) SubgroupFirstInvocationKHR 289
291: 140(ptr) AccessChain 75(data) 286 86 78
292: 70(int) CompositeExtract 290 0
Store 291 292
293: 140(ptr) AccessChain 75(data) 286 86 100
294: 70(int) CompositeExtract 290 1
Store 293 294
295: 6(int) Load 8(invocation)
296: 148(ptr) AccessChain 75(data) 104 86
297: 71(ivec4) Load 296
298: 163(ivec3) VectorShuffle 297 297 0 1 2
299: 163(ivec3) SubgroupFirstInvocationKHR 298
300: 140(ptr) AccessChain 75(data) 295 86 78
301: 70(int) CompositeExtract 299 0
Store 300 301
302: 140(ptr) AccessChain 75(data) 295 86 100
303: 70(int) CompositeExtract 299 1
Store 302 303
304: 140(ptr) AccessChain 75(data) 295 86 121
305: 70(int) CompositeExtract 299 2
Store 304 305
306: 6(int) Load 8(invocation)
307: 148(ptr) AccessChain 75(data) 125 86
308: 71(ivec4) Load 307
309: 71(ivec4) SubgroupFirstInvocationKHR 308
310: 148(ptr) AccessChain 75(data) 306 86
Store 310 309
311: 6(int) Load 8(invocation)
312: 196(ptr) AccessChain 75(data) 77 104 78
313: 6(int) Load 312
314: 6(int) SubgroupFirstInvocationKHR 313
315: 196(ptr) AccessChain 75(data) 311 104 78
Store 315 314
316: 6(int) Load 8(invocation)
317: 203(ptr) AccessChain 75(data) 86 104
318: 20(ivec4) Load 317
319: 26(ivec2) VectorShuffle 318 318 0 1
320: 26(ivec2) SubgroupFirstInvocationKHR 319
321: 196(ptr) AccessChain 75(data) 316 104 78
322: 6(int) CompositeExtract 320 0
Store 321 322
323: 196(ptr) AccessChain 75(data) 316 104 100
324: 6(int) CompositeExtract 320 1
Store 323 324
325: 6(int) Load 8(invocation)
326: 203(ptr) AccessChain 75(data) 104 104
327: 20(ivec4) Load 326
328: 218(ivec3) VectorShuffle 327 327 0 1 2
329: 218(ivec3) SubgroupFirstInvocationKHR 328
330: 196(ptr) AccessChain 75(data) 325 104 78
331: 6(int) CompositeExtract 329 0
287: 88(ptr) AccessChain 75(data) 125 77
288: 69(fvec4) Load 287
289: 68(float) CompositeExtract 288 0
290: 68(float) SubgroupFirstInvocationKHR 289
291: 68(float) CompositeExtract 288 1
292: 68(float) SubgroupFirstInvocationKHR 291
293: 68(float) CompositeExtract 288 2
294: 68(float) SubgroupFirstInvocationKHR 293
295: 68(float) CompositeExtract 288 3
296: 68(float) SubgroupFirstInvocationKHR 295
297: 69(fvec4) CompositeConstruct 290 292 294 296
298: 88(ptr) AccessChain 75(data) 286 77
Store 298 297
299: 6(int) Load 8(invocation)
300: 140(ptr) AccessChain 75(data) 77 86 78
301: 70(int) Load 300
302: 70(int) SubgroupFirstInvocationKHR 301
303: 140(ptr) AccessChain 75(data) 299 86 78
Store 303 302
304: 6(int) Load 8(invocation)
305: 148(ptr) AccessChain 75(data) 86 86
306: 71(ivec4) Load 305
307: 147(ivec2) VectorShuffle 306 306 0 1
308: 70(int) CompositeExtract 307 0
309: 70(int) SubgroupFirstInvocationKHR 308
310: 70(int) CompositeExtract 307 1
311: 70(int) SubgroupFirstInvocationKHR 310
312: 147(ivec2) CompositeConstruct 309 311
313: 140(ptr) AccessChain 75(data) 304 86 78
314: 70(int) CompositeExtract 312 0
Store 313 314
315: 140(ptr) AccessChain 75(data) 304 86 100
316: 70(int) CompositeExtract 312 1
Store 315 316
317: 6(int) Load 8(invocation)
318: 148(ptr) AccessChain 75(data) 104 86
319: 71(ivec4) Load 318
320: 163(ivec3) VectorShuffle 319 319 0 1 2
321: 70(int) CompositeExtract 320 0
322: 70(int) SubgroupFirstInvocationKHR 321
323: 70(int) CompositeExtract 320 1
324: 70(int) SubgroupFirstInvocationKHR 323
325: 70(int) CompositeExtract 320 2
326: 70(int) SubgroupFirstInvocationKHR 325
327: 163(ivec3) CompositeConstruct 322 324 326
328: 140(ptr) AccessChain 75(data) 317 86 78
329: 70(int) CompositeExtract 327 0
Store 328 329
330: 140(ptr) AccessChain 75(data) 317 86 100
331: 70(int) CompositeExtract 327 1
Store 330 331
332: 196(ptr) AccessChain 75(data) 325 104 100
333: 6(int) CompositeExtract 329 1
332: 140(ptr) AccessChain 75(data) 317 86 121
333: 70(int) CompositeExtract 327 2
Store 332 333
334: 196(ptr) AccessChain 75(data) 325 104 121
335: 6(int) CompositeExtract 329 2
Store 334 335
336: 6(int) Load 8(invocation)
337: 203(ptr) AccessChain 75(data) 125 104
338: 20(ivec4) Load 337
339: 20(ivec4) SubgroupFirstInvocationKHR 338
340: 203(ptr) AccessChain 75(data) 336 104
Store 340 339
334: 6(int) Load 8(invocation)
335: 148(ptr) AccessChain 75(data) 125 86
336: 71(ivec4) Load 335
337: 70(int) CompositeExtract 336 0
338: 70(int) SubgroupFirstInvocationKHR 337
339: 70(int) CompositeExtract 336 1
340: 70(int) SubgroupFirstInvocationKHR 339
341: 70(int) CompositeExtract 336 2
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
67: Label
Return

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -134,7 +134,7 @@ ERROR: node is still EOpNull!
0:59 Condition
0:59 Compare Equal ( temp bool)
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 true case
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 Compare Equal ( temp bool)
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 true case
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:? '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:? 'gl_VertexID' ( in int VertexIndex)
0:? 'gl_InstanceID' ( in int InstanceIndex)
0:? 'gl_VertexIndex' ( in int VertexIndex)
0:? 'gl_InstanceIndex' ( in int InstanceIndex)
vk.relaxed.changeSet.frag
Shader version: 460
@ -108,8 +108,8 @@ Shader version: 460
0:? 'Color' ( smooth out highp 4-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:? 'gl_VertexID' ( in int VertexIndex)
0:? 'gl_InstanceID' ( in int InstanceIndex)
0:? 'gl_VertexIndex' ( in int VertexIndex)
0:? 'gl_InstanceIndex' ( in int InstanceIndex)
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
@ -162,8 +162,8 @@ gl_FragCoord origin is upper left
MemberName 28(gl_DefaultUniformBlock) 0 "projectionMatrix"
Name 30 ""
Name 34 "aPos"
Name 44 "gl_VertexID"
Name 45 "gl_InstanceID"
Name 44 "gl_VertexIndex"
Name 45 "gl_InstanceIndex"
Decorate 9(Color) Location 0
Decorate 11(aColor) Location 2
Decorate 15(UV) Location 1
@ -180,8 +180,8 @@ gl_FragCoord origin is upper left
Decorate 30 DescriptorSet 0
Decorate 30 Binding 0
Decorate 34(aPos) Location 0
Decorate 44(gl_VertexID) BuiltIn VertexIndex
Decorate 45(gl_InstanceID) BuiltIn InstanceIndex
Decorate 44(gl_VertexIndex) BuiltIn VertexIndex
Decorate 45(gl_InstanceIndex) BuiltIn InstanceIndex
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -212,8 +212,8 @@ gl_FragCoord origin is upper left
36: 6(float) Constant 0
37: 6(float) Constant 1065353216
43: TypePointer Input 25(int)
44(gl_VertexID): 43(ptr) Variable Input
45(gl_InstanceID): 43(ptr) Variable Input
44(gl_VertexIndex): 43(ptr) Variable Input
45(gl_InstanceIndex): 43(ptr) Variable Input
4(main): 2 Function None 3
5: Label
12: 7(fvec4) Load 11(aColor)

View File

@ -28,8 +28,8 @@ Shader version: 460
0:? Linker Objects
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:? 'gl_VertexID' ( in int VertexIndex)
0:? 'gl_InstanceID' ( in int InstanceIndex)
0:? 'gl_VertexIndex' ( in int VertexIndex)
0:? 'gl_InstanceIndex' ( in int InstanceIndex)
vk.relaxed.errorcheck.frag
Shader version: 460
@ -94,8 +94,8 @@ Shader version: 460
0:? Linker Objects
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:? 'gl_VertexID' ( in int VertexIndex)
0:? 'gl_InstanceID' ( in int InstanceIndex)
0:? 'gl_VertexIndex' ( in int VertexIndex)
0:? 'gl_InstanceIndex' ( in int InstanceIndex)
Shader version: 460
gl_FragCoord origin is upper left
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 Constant:
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 direct index ( temp highp float)
0:29 'v' ( temp highp 4-component vector of float)
@ -105,7 +107,9 @@ Shader version: 460
0:29 Constant:
0:29 0 (const int)
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 'io' (layout( location=0) smooth out 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:? '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:? 'gl_VertexID' ( in int VertexIndex)
0:? 'gl_InstanceID' ( in int InstanceIndex)
0:? 'gl_VertexIndex' ( in int VertexIndex)
0:? 'gl_InstanceIndex' ( in int InstanceIndex)
vk.relaxed.stagelink.frag
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 Constant:
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 direct index ( temp highp float)
0:29 'v' ( temp highp 4-component vector of float)
@ -323,7 +329,9 @@ Shader version: 460
0:29 Constant:
0:29 0 (const int)
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 'io' (layout( location=0) smooth out 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:? '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:? 'gl_VertexID' ( in int VertexIndex)
0:? 'gl_InstanceID' ( in int InstanceIndex)
0:? 'gl_VertexIndex' ( in int VertexIndex)
0:? 'gl_InstanceIndex' ( in int InstanceIndex)
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
@ -428,12 +436,12 @@ gl_FragCoord origin is upper left
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 88
// Id's are bound by 92
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 72 80 86
EntryPoint Vertex 4 "main" 72 82 90
Source GLSL 460
Name 4 "main"
Name 9 "foo("
@ -454,9 +462,9 @@ gl_FragCoord origin is upper left
MemberName 35(gl_DefaultUniformBlock) 6 "c1"
Name 37 ""
Name 67 "v"
Name 72 "gl_VertexID"
Name 80 "gl_InstanceID"
Name 86 "io"
Name 72 "gl_VertexIndex"
Name 82 "gl_InstanceIndex"
Name 90 "io"
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Volatile
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent
@ -483,9 +491,9 @@ gl_FragCoord origin is upper left
Decorate 35(gl_DefaultUniformBlock) Block
Decorate 37 DescriptorSet 0
Decorate 37 Binding 0
Decorate 72(gl_VertexID) BuiltIn VertexIndex
Decorate 80(gl_InstanceID) BuiltIn InstanceIndex
Decorate 86(io) Location 0
Decorate 72(gl_VertexIndex) BuiltIn VertexIndex
Decorate 82(gl_InstanceIndex) BuiltIn InstanceIndex
Decorate 90(io) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -517,31 +525,35 @@ gl_FragCoord origin is upper left
57: 17(int) Constant 4
70: 17(int) Constant 5
71: TypePointer Input 17(int)
72(gl_VertexID): 71(ptr) Variable Input
77: TypePointer Function 6(float)
80(gl_InstanceID): 71(ptr) Variable Input
85: TypePointer Output 7(fvec4)
86(io): 85(ptr) Variable Output
72(gl_VertexIndex): 71(ptr) Variable Input
79: TypePointer Function 6(float)
82(gl_InstanceIndex): 71(ptr) Variable Input
89: TypePointer Output 7(fvec4)
90(io): 89(ptr) Variable Output
4(main): 2 Function None 3
5: Label
67(v): 30(ptr) Variable Function
68: 7(fvec4) FunctionCall 9(foo()
Store 67(v) 68
69: 7(fvec4) Load 67(v)
73: 17(int) Load 72(gl_VertexID)
74: 38(ptr) AccessChain 37 70 73
75: 7(fvec4) Load 74
76: 7(fvec4) FAdd 69 75
Store 67(v) 76
78: 77(ptr) AccessChain 67(v) 22
79: 6(float) Load 78
81: 17(int) Load 80(gl_InstanceID)
82: 6(float) ConvertSToF 81
83: 6(float) FSub 79 82
84: 77(ptr) AccessChain 67(v) 22
Store 84 83
87: 7(fvec4) Load 67(v)
Store 86(io) 87
73: 17(int) Load 72(gl_VertexIndex)
74: 17(int) Load 72(gl_VertexIndex)
75: 17(int) ISub 73 74
76: 38(ptr) AccessChain 37 70 75
77: 7(fvec4) Load 76
78: 7(fvec4) FAdd 69 77
Store 67(v) 78
80: 79(ptr) AccessChain 67(v) 22
81: 6(float) Load 80
83: 17(int) Load 82(gl_InstanceIndex)
84: 17(int) Load 82(gl_InstanceIndex)
85: 17(int) ISub 83 84
86: 6(float) ConvertSToF 85
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
FunctionEnd
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 'scbt' ( specialization-constant 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 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 1.000000
0:18 Convert bool to int ( specialization-constant const int)
@ -86,34 +86,34 @@ Shader version: 450
0:35 2 (const int)
0:35 'sci2' ( specialization-constant const highp 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 2 (const int)
0:37 'sci2' ( specialization-constant const highp int)
0:37 2 (const int)
0:38 Construct ivec2 ( temp 2-element array of 2-component vector of int)
0:38 Construct ivec2 ( specialization-constant const 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 highp 2-component vector of int)
0:38 'sci2' ( specialization-constant const highp int)
0:38 2 (const int)
0:38 'sci2' ( specialization-constant const highp 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 2 (const int)
0:38 'sci2' ( specialization-constant const highp 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 1.000000
0:40 'scf1' ( specialization-constant const highp float)
0:40 1.000000
0:41 Construct vec2 ( temp 2-element array of 2-component vector of float)
0:41 Construct vec2 ( specialization-constant const 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 highp 2-component vector of float)
0:41 'scf1' ( specialization-constant const highp float)
0:41 1.000000
0:41 'scf1' ( specialization-constant const highp float)
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 1.000000
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 'scbt' ( specialization-constant 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 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 1.000000
0:18 Convert bool to int ( specialization-constant const int)
@ -217,34 +217,34 @@ Shader version: 450
0:35 2 (const int)
0:35 'sci2' ( specialization-constant const highp 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 2 (const int)
0:37 'sci2' ( specialization-constant const highp int)
0:37 2 (const int)
0:38 Construct ivec2 ( temp 2-element array of 2-component vector of int)
0:38 Construct ivec2 ( specialization-constant const 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 highp 2-component vector of int)
0:38 'sci2' ( specialization-constant const highp int)
0:38 2 (const int)
0:38 'sci2' ( specialization-constant const highp 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 2 (const int)
0:38 'sci2' ( specialization-constant const highp 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 1.000000
0:40 'scf1' ( specialization-constant const highp float)
0:40 1.000000
0:41 Construct vec2 ( temp 2-element array of 2-component vector of float)
0:41 Construct vec2 ( specialization-constant const 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 highp 2-component vector of float)
0:41 'scf1' ( specialization-constant const highp float)
0:41 1.000000
0:41 'scf1' ( specialization-constant const highp float)
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 1.000000
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: '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:51: 'binding' : sampler/texture/image requires layout(binding=X)
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:46: 'binding' : cannot be used with push_constant
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:60: 'subpassLoadMS' : no matching overloaded function found
ERROR: 0:61: 'subpassLoad' : no matching overloaded function found
ERROR: 0:55: 'input_attachment_index' : can only be used with a subpass
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:66: 'subroutine' : not allowed when generating SPIR-V
ERROR: 0:66: 'subroutine' : feature not yet implemented
ERROR: 0:67: 'subroutine' : not allowed when generating SPIR-V
ERROR: 0:67: 'subroutine' : feature not yet implemented
ERROR: 0:69: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan
ERROR: 0:73: 'texture' : no matching overloaded function found
ERROR: 0:74: 'imageStore' : no matching overloaded function found
WARNING: 0:82: '' : all default precisions are highp; use precision statements to quiet warning, e.g.:
ERROR: 0:64: 'subpassLoad' : no matching overloaded function found
ERROR: 0:66: 'subpassLoadMS' : no matching overloaded function found
ERROR: 0:69: 'subroutine' : not allowed when generating SPIR-V
ERROR: 0:69: 'subroutine' : feature not yet implemented
ERROR: 0:70: 'subroutine' : not allowed when generating SPIR-V
ERROR: 0:70: 'subroutine' : feature not yet implemented
ERROR: 0:72: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan
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;"
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:96: 'gl_NumSamples' : undeclared identifier
ERROR: 0:101: 'noise1' : no matching overloaded function found
ERROR: 0:102: 'noise2' : no matching overloaded function found
ERROR: 0:103: 'noise3' : no matching overloaded function found
ERROR: 0:104: 'noise4' : no matching overloaded function found
ERROR: 53 compilation errors. No code generated.
ERROR: 0:95: 'call argument' : sampler constructor must appear at point of use
ERROR: 0:96: ',' : sampler constructor must appear at point of use
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:97: 'call argument' : sampler constructor must appear at point of use
ERROR: 0:99: 'gl_NumSamples' : undeclared identifier
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

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 float16_t float16_t_init = float16_t(42.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) \
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) \
TYPE_TO_TYPE(x, bool); \
TYPE_TO_TYPE(x, int8_t); \
@ -45,4 +52,18 @@ TYPE_TO(float16_t);
TYPE_TO(float32_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() {}

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