Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
5a00501ad3
12
.clang-format
Normal file
12
.clang-format
Normal file
@ -0,0 +1,12 @@
|
||||
Language: Cpp
|
||||
IndentWidth: 4
|
||||
BreakBeforeBraces: Custom
|
||||
BraceWrapping: { AfterFunction: true, AfterControlStatement: true }
|
||||
IndentCaseLabels: false
|
||||
ReflowComments: false
|
||||
ColumnLimit: 120
|
||||
AccessModifierOffset: -4
|
||||
AlignTrailingComments: true
|
||||
AllowShortBlocksOnASingleLine: false
|
||||
AllowShortIfStatementsOnASingleLine: false
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
@ -8,6 +8,7 @@ set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "prefix")
|
||||
project(glslang)
|
||||
|
||||
if(WIN32)
|
||||
set(CMAKE_DEBUG_POSTFIX "d")
|
||||
include(ChooseMSVCCRT.cmake)
|
||||
add_definitions(-DGLSLANG_OSINCLUDE_WIN32)
|
||||
elseif(UNIX)
|
||||
@ -23,6 +24,17 @@ elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
|
||||
add_definitions(-std=c++11)
|
||||
endif()
|
||||
|
||||
function(glslang_set_link_args TARGET)
|
||||
# For MinGW compiles, statically link against the GCC and C++ runtimes.
|
||||
# This avoids the need to ship those runtimes as DLLs.
|
||||
if(WIN32)
|
||||
if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")
|
||||
set_target_properties(${TARGET} PROPERTIES
|
||||
LINK_FLAGS "-static -static-libgcc -static-libstdc++")
|
||||
endif()
|
||||
endif(WIN32)
|
||||
endfunction(glslang_set_link_args)
|
||||
|
||||
# We depend on these for later projects, so they should come first.
|
||||
add_subdirectory(External)
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
//
|
||||
//Copyright (C) 2014-2015 LunarG, Inc.
|
||||
//Copyright (C) 2014-2016 LunarG, Inc.
|
||||
//Copyright (C) 2015-2016 Google, Inc.
|
||||
//
|
||||
//All rights reserved.
|
||||
@ -111,7 +111,7 @@ public:
|
||||
|
||||
protected:
|
||||
spv::Decoration TranslateAuxiliaryStorageDecoration(const glslang::TQualifier& qualifier);
|
||||
spv::BuiltIn TranslateBuiltInDecoration(glslang::TBuiltInVariable, bool member);
|
||||
spv::BuiltIn TranslateBuiltInDecoration(glslang::TBuiltInVariable, bool memberDeclaration);
|
||||
spv::ImageFormat TranslateImageFormat(const glslang::TType& type);
|
||||
spv::Id createSpvVariable(const glslang::TIntermSymbol*);
|
||||
spv::Id getSampledType(const glslang::TSampler&);
|
||||
@ -124,7 +124,7 @@ protected:
|
||||
int getArrayStride(const glslang::TType& arrayType, glslang::TLayoutPacking, glslang::TLayoutMatrix);
|
||||
int getMatrixStride(const glslang::TType& matrixType, glslang::TLayoutPacking, glslang::TLayoutMatrix);
|
||||
void updateMemberOffset(const glslang::TType& structType, const glslang::TType& memberType, int& currentOffset, int& nextOffset, glslang::TLayoutPacking, glslang::TLayoutMatrix);
|
||||
void declareClipCullCapability(const glslang::TTypeList& members, int member);
|
||||
void declareUseOfStructMember(const glslang::TTypeList& members, int glslangMember);
|
||||
|
||||
bool isShaderEntrypoint(const glslang::TIntermAggregate* node);
|
||||
void makeFunctions(const glslang::TIntermSequence&);
|
||||
@ -229,16 +229,18 @@ spv::StorageClass TranslateStorageClass(const glslang::TType& type)
|
||||
return spv::StorageClassInput;
|
||||
else if (type.getQualifier().isPipeOutput())
|
||||
return spv::StorageClassOutput;
|
||||
else if (type.getBasicType() == glslang::EbtSampler)
|
||||
return spv::StorageClassUniformConstant;
|
||||
else if (type.getBasicType() == glslang::EbtAtomicUint)
|
||||
return spv::StorageClassAtomicCounter;
|
||||
else if (type.getQualifier().isUniformOrBuffer()) {
|
||||
if (type.getQualifier().layoutPushConstant)
|
||||
return spv::StorageClassPushConstant;
|
||||
if (type.getBasicType() == glslang::EbtBlock)
|
||||
return spv::StorageClassUniform;
|
||||
else if (type.getBasicType() == glslang::EbtAtomicUint)
|
||||
return spv::StorageClassAtomicCounter;
|
||||
else
|
||||
return spv::StorageClassUniformConstant;
|
||||
// TODO: how are we distuingishing between default and non-default non-writable uniforms? Do default uniforms even exist?
|
||||
// TODO: how are we distinguishing between default and non-default non-writable uniforms? Do default uniforms even exist?
|
||||
} else {
|
||||
switch (type.getQualifier().storage) {
|
||||
case glslang::EvqShared: return spv::StorageClassWorkgroup; break;
|
||||
@ -403,21 +405,28 @@ spv::Decoration TranslateNoContractionDecoration(const glslang::TQualifier& qual
|
||||
return (spv::Decoration)spv::BadValue;
|
||||
}
|
||||
|
||||
// Translate glslang built-in variable to SPIR-V built in decoration.
|
||||
spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltInVariable builtIn, bool member)
|
||||
// Translate a glslang built-in variable to a SPIR-V built in decoration. Also generate
|
||||
// associated capabilities when required. For some built-in variables, a capability
|
||||
// is generated only when using the variable in an executable instruction, but not when
|
||||
// just declaring a struct member variable with it. This is true for PointSize,
|
||||
// ClipDistance, and CullDistance.
|
||||
spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltInVariable builtIn, bool memberDeclaration)
|
||||
{
|
||||
switch (builtIn) {
|
||||
case glslang::EbvPointSize:
|
||||
switch (glslangIntermediate->getStage()) {
|
||||
case EShLangGeometry:
|
||||
builder.addCapability(spv::CapabilityGeometryPointSize);
|
||||
break;
|
||||
case EShLangTessControl:
|
||||
case EShLangTessEvaluation:
|
||||
builder.addCapability(spv::CapabilityTessellationPointSize);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
// Defer adding the capability until the built-in is actually used.
|
||||
if (!memberDeclaration) {
|
||||
switch (glslangIntermediate->getStage()) {
|
||||
case EShLangGeometry:
|
||||
builder.addCapability(spv::CapabilityGeometryPointSize);
|
||||
break;
|
||||
case EShLangTessControl:
|
||||
case EShLangTessEvaluation:
|
||||
builder.addCapability(spv::CapabilityTessellationPointSize);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return spv::BuiltInPointSize;
|
||||
|
||||
@ -428,13 +437,13 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
||||
// use needed is to trigger the capability.
|
||||
//
|
||||
case glslang::EbvClipDistance:
|
||||
if (! member)
|
||||
builder.addCapability(spv::CapabilityClipDistance);
|
||||
if (!memberDeclaration)
|
||||
builder.addCapability(spv::CapabilityClipDistance);
|
||||
return spv::BuiltInClipDistance;
|
||||
|
||||
case glslang::EbvCullDistance:
|
||||
if (! member)
|
||||
builder.addCapability(spv::CapabilityCullDistance);
|
||||
if (!memberDeclaration)
|
||||
builder.addCapability(spv::CapabilityCullDistance);
|
||||
return spv::BuiltInCullDistance;
|
||||
|
||||
case glslang::EbvViewportIndex:
|
||||
@ -636,9 +645,9 @@ bool HasNonLayoutQualifiers(const glslang::TQualifier& qualifier)
|
||||
{
|
||||
// This should list qualifiers that simultaneous satisfy:
|
||||
// - struct members can inherit from a struct declaration
|
||||
// - effect decorations on the struct members (note smooth does not, and expecting something like volatile to effect the whole object)
|
||||
// - affect decorations on the struct members (note smooth does not, and expecting something like volatile to effect the whole object)
|
||||
// - are not part of the offset/st430/etc or row/column-major layout
|
||||
return qualifier.invariant || qualifier.nopersp || qualifier.flat || qualifier.centroid || qualifier.patch || qualifier.sample || qualifier.hasLocation();
|
||||
return qualifier.invariant || qualifier.hasLocation();
|
||||
}
|
||||
|
||||
//
|
||||
@ -925,30 +934,34 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T
|
||||
|
||||
// Add the next element in the chain
|
||||
|
||||
int index = node->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst();
|
||||
if (node->getLeft()->getBasicType() == glslang::EbtBlock && node->getOp() == glslang::EOpIndexDirectStruct) {
|
||||
// This may be, e.g., an anonymous block-member selection, which generally need
|
||||
// index remapping due to hidden members in anonymous blocks.
|
||||
std::vector<int>& remapper = memberRemapper[node->getLeft()->getType().getStruct()];
|
||||
assert(remapper.size() > 0);
|
||||
index = remapper[index];
|
||||
}
|
||||
|
||||
const int glslangIndex = node->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst();
|
||||
if (! node->getLeft()->getType().isArray() &&
|
||||
node->getLeft()->getType().isVector() &&
|
||||
node->getOp() == glslang::EOpIndexDirect) {
|
||||
// This is essentially a hard-coded vector swizzle of size 1,
|
||||
// so short circuit the access-chain stuff with a swizzle.
|
||||
std::vector<unsigned> swizzle;
|
||||
swizzle.push_back(node->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst());
|
||||
swizzle.push_back(glslangIndex);
|
||||
builder.accessChainPushSwizzle(swizzle, convertGlslangToSpvType(node->getLeft()->getType()));
|
||||
} else {
|
||||
// normal case for indexing array or structure or block
|
||||
builder.accessChainPush(builder.makeIntConstant(index));
|
||||
int spvIndex = glslangIndex;
|
||||
if (node->getLeft()->getBasicType() == glslang::EbtBlock &&
|
||||
node->getOp() == glslang::EOpIndexDirectStruct)
|
||||
{
|
||||
// This may be, e.g., an anonymous block-member selection, which generally need
|
||||
// index remapping due to hidden members in anonymous blocks.
|
||||
std::vector<int>& remapper = memberRemapper[node->getLeft()->getType().getStruct()];
|
||||
assert(remapper.size() > 0);
|
||||
spvIndex = remapper[glslangIndex];
|
||||
}
|
||||
|
||||
// Add capabilities here for accessing clip/cull distance
|
||||
// normal case for indexing array or structure or block
|
||||
builder.accessChainPush(builder.makeIntConstant(spvIndex));
|
||||
|
||||
// Add capabilities here for accessing PointSize and clip/cull distance.
|
||||
// We have deferred generation of associated capabilities until now.
|
||||
if (node->getLeft()->getType().isStruct() && ! node->getLeft()->getType().isArray())
|
||||
declareClipCullCapability(*node->getLeft()->getType().getStruct(), index);
|
||||
declareUseOfStructMember(*(node->getLeft()->getType().getStruct()), glslangIndex);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@ -1394,6 +1407,10 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
|
||||
case glslang::EOpMemoryBarrierImage:
|
||||
case glslang::EOpMemoryBarrierShared:
|
||||
case glslang::EOpGroupMemoryBarrier:
|
||||
case glslang::EOpAllMemoryBarrierWithGroupSync:
|
||||
case glslang::EOpGroupMemoryBarrierWithGroupSync:
|
||||
case glslang::EOpWorkgroupMemoryBarrier:
|
||||
case glslang::EOpWorkgroupMemoryBarrierWithGroupSync:
|
||||
noReturnValue = true;
|
||||
// These all have 0 operands and will naturally finish up in the code below for 0 operands
|
||||
break;
|
||||
@ -1902,8 +1919,10 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
addMemberDecoration(spvType, member, TranslatePrecisionDecoration(glslangType));
|
||||
// Add interpolation and auxiliary storage decorations only to top-level members of Input and Output storage classes
|
||||
if (type.getQualifier().storage == glslang::EvqVaryingIn || type.getQualifier().storage == glslang::EvqVaryingOut) {
|
||||
addMemberDecoration(spvType, member, TranslateInterpolationDecoration(subQualifier));
|
||||
addMemberDecoration(spvType, member, TranslateAuxiliaryStorageDecoration(subQualifier));
|
||||
if (type.getBasicType() == glslang::EbtBlock) {
|
||||
addMemberDecoration(spvType, member, TranslateInterpolationDecoration(subQualifier));
|
||||
addMemberDecoration(spvType, member, TranslateAuxiliaryStorageDecoration(subQualifier));
|
||||
}
|
||||
}
|
||||
addMemberDecoration(spvType, member, TranslateInvariantDecoration(subQualifier));
|
||||
|
||||
@ -2205,12 +2224,23 @@ void TGlslangToSpvTraverser::updateMemberOffset(const glslang::TType& /*structTy
|
||||
nextOffset = currentOffset + memberSize;
|
||||
}
|
||||
|
||||
void TGlslangToSpvTraverser::declareClipCullCapability(const glslang::TTypeList& members, int member)
|
||||
void TGlslangToSpvTraverser::declareUseOfStructMember(const glslang::TTypeList& members, int glslangMember)
|
||||
{
|
||||
if (members[member].type->getQualifier().builtIn == glslang::EbvClipDistance)
|
||||
builder.addCapability(spv::CapabilityClipDistance);
|
||||
if (members[member].type->getQualifier().builtIn == glslang::EbvCullDistance)
|
||||
builder.addCapability(spv::CapabilityCullDistance);
|
||||
const glslang::TBuiltInVariable glslangBuiltIn = members[glslangMember].type->getQualifier().builtIn;
|
||||
switch (glslangBuiltIn)
|
||||
{
|
||||
case glslang::EbvClipDistance:
|
||||
case glslang::EbvCullDistance:
|
||||
case glslang::EbvPointSize:
|
||||
// Generate the associated capability. Delegate to TranslateBuiltInDecoration.
|
||||
// Alternately, we could just call this for any glslang built-in, since the
|
||||
// capability already guards against duplicates.
|
||||
TranslateBuiltInDecoration(glslangBuiltIn, false);
|
||||
break;
|
||||
default:
|
||||
// Capabilities were already generated when the struct was declared.
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool TGlslangToSpvTraverser::isShaderEntrypoint(const glslang::TIntermAggregate* node)
|
||||
@ -2250,7 +2280,9 @@ void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslF
|
||||
for (int p = 0; p < (int)parameters.size(); ++p) {
|
||||
const glslang::TType& paramType = parameters[p]->getAsTyped()->getType();
|
||||
spv::Id typeId = convertGlslangToSpvType(paramType);
|
||||
if (paramType.getQualifier().storage != glslang::EvqConstReadOnly)
|
||||
if (paramType.isOpaque())
|
||||
typeId = builder.makePointer(TranslateStorageClass(paramType), typeId);
|
||||
else if (paramType.getQualifier().storage != glslang::EvqConstReadOnly)
|
||||
typeId = builder.makePointer(spv::StorageClassFunction, typeId);
|
||||
else
|
||||
constReadOnlyParameters.insert(parameters[p]->getAsSymbolNode()->getId());
|
||||
@ -2560,6 +2592,13 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
|
||||
bias = true;
|
||||
}
|
||||
|
||||
// See if the sampler param should really be just the SPV image part
|
||||
if (cracked.fetch) {
|
||||
// a fetch needs to have the image extracted first
|
||||
if (builder.isSampledImage(params.sampler))
|
||||
params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler);
|
||||
}
|
||||
|
||||
// set the rest of the arguments
|
||||
|
||||
params.coords = arguments[1];
|
||||
@ -2575,14 +2614,16 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
|
||||
++extraArgs;
|
||||
} else if (sampler.shadow) {
|
||||
std::vector<spv::Id> indexes;
|
||||
int comp;
|
||||
int dRefComp;
|
||||
if (cracked.proj)
|
||||
comp = 2; // "The resulting 3rd component of P in the shadow forms is used as Dref"
|
||||
dRefComp = 2; // "The resulting 3rd component of P in the shadow forms is used as Dref"
|
||||
else
|
||||
comp = builder.getNumComponents(params.coords) - 1;
|
||||
indexes.push_back(comp);
|
||||
dRefComp = builder.getNumComponents(params.coords) - 1;
|
||||
indexes.push_back(dRefComp);
|
||||
params.Dref = builder.createCompositeExtract(params.coords, builder.getScalarTypeId(builder.getTypeId(params.coords)), indexes);
|
||||
}
|
||||
|
||||
// lod
|
||||
if (cracked.lod) {
|
||||
params.lod = arguments[2];
|
||||
++extraArgs;
|
||||
@ -2590,15 +2631,21 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
|
||||
// we need to invent the default lod for an explicit lod instruction for a non-fragment stage
|
||||
noImplicitLod = true;
|
||||
}
|
||||
|
||||
// multisample
|
||||
if (sampler.ms) {
|
||||
params.sample = arguments[2]; // For MS, "sample" should be specified
|
||||
++extraArgs;
|
||||
}
|
||||
|
||||
// gradient
|
||||
if (cracked.grad) {
|
||||
params.gradX = arguments[2 + extraArgs];
|
||||
params.gradY = arguments[3 + extraArgs];
|
||||
extraArgs += 2;
|
||||
}
|
||||
|
||||
// offset and offsets
|
||||
if (cracked.offset) {
|
||||
params.offset = arguments[2 + extraArgs];
|
||||
++extraArgs;
|
||||
@ -2606,25 +2653,57 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
|
||||
params.offsets = arguments[2 + extraArgs];
|
||||
++extraArgs;
|
||||
}
|
||||
|
||||
// lod clamp
|
||||
if (cracked.lodClamp) {
|
||||
params.lodClamp = arguments[2 + extraArgs];
|
||||
++extraArgs;
|
||||
}
|
||||
|
||||
// sparse
|
||||
if (sparse) {
|
||||
params.texelOut = arguments[2 + extraArgs];
|
||||
++extraArgs;
|
||||
}
|
||||
|
||||
// bias
|
||||
if (bias) {
|
||||
params.bias = arguments[2 + extraArgs];
|
||||
++extraArgs;
|
||||
}
|
||||
|
||||
// gather component
|
||||
if (cracked.gather && ! sampler.shadow) {
|
||||
// default component is 0, if missing, otherwise an argument
|
||||
if (2 + extraArgs < (int)arguments.size()) {
|
||||
params.comp = arguments[2 + extraArgs];
|
||||
params.component = arguments[2 + extraArgs];
|
||||
++extraArgs;
|
||||
} else {
|
||||
params.comp = builder.makeIntConstant(0);
|
||||
params.component = builder.makeIntConstant(0);
|
||||
}
|
||||
}
|
||||
|
||||
// projective component (might not to move)
|
||||
// GLSL: "The texture coordinates consumed from P, not including the last component of P,
|
||||
// are divided by the last component of P."
|
||||
// SPIR-V: "... (u [, v] [, w], q)... It may be a vector larger than needed, but all
|
||||
// unused components will appear after all used components."
|
||||
if (cracked.proj) {
|
||||
int projSourceComp = builder.getNumComponents(params.coords) - 1;
|
||||
int projTargetComp;
|
||||
switch (sampler.dim) {
|
||||
case glslang::Esd1D: projTargetComp = 1; break;
|
||||
case glslang::Esd2D: projTargetComp = 2; break;
|
||||
case glslang::EsdRect: projTargetComp = 2; break;
|
||||
default: projTargetComp = projSourceComp; break;
|
||||
}
|
||||
// copy the projective coordinate if we have to
|
||||
if (projTargetComp != projSourceComp) {
|
||||
spv::Id projComp = builder.createCompositeExtract(params.coords,
|
||||
builder.getScalarTypeId(builder.getTypeId(params.coords)),
|
||||
projSourceComp);
|
||||
params.coords = builder.createCompositeInsert(projComp, params.coords,
|
||||
builder.getTypeId(params.coords), projTargetComp);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2659,8 +2738,8 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg
|
||||
builder.clearAccessChain();
|
||||
glslangArgs[a]->traverse(this);
|
||||
argTypes.push_back(¶mType);
|
||||
// keep outputs as and samplers l-values, evaluate input-only as r-values
|
||||
if (qualifiers[a] != glslang::EvqConstReadOnly || paramType.getBasicType() == glslang::EbtSampler) {
|
||||
// keep outputs as and opaque objects l-values, evaluate input-only as r-values
|
||||
if (qualifiers[a] != glslang::EvqConstReadOnly || paramType.isOpaque()) {
|
||||
// save l-value
|
||||
lValues.push_back(builder.getAccessChain());
|
||||
} else {
|
||||
@ -2679,7 +2758,7 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg
|
||||
for (int a = 0; a < (int)glslangArgs.size(); ++a) {
|
||||
const glslang::TType& paramType = glslangArgs[a]->getAsTyped()->getType();
|
||||
spv::Id arg;
|
||||
if (paramType.getBasicType() == glslang::EbtSampler) {
|
||||
if (paramType.isOpaque()) {
|
||||
builder.setAccessChain(lValues[lValueCount]);
|
||||
arg = builder.accessChainGetLValue();
|
||||
++lValueCount;
|
||||
@ -3001,7 +3080,7 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, spv::Dec
|
||||
return builder.setPrecision(result, precision);
|
||||
}
|
||||
|
||||
// Handle component-wise +, -, *, and / for all combinations of type.
|
||||
// Handle component-wise +, -, *, %, and / for all combinations of type.
|
||||
// The result type of all of them is the same type as the (a) matrix operand.
|
||||
// The algorithm is to:
|
||||
// - break the matrix(es) into vectors
|
||||
@ -3012,6 +3091,7 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, spv::Dec
|
||||
case spv::OpFAdd:
|
||||
case spv::OpFSub:
|
||||
case spv::OpFDiv:
|
||||
case spv::OpFMod:
|
||||
case spv::OpFMul:
|
||||
{
|
||||
// one time set up...
|
||||
@ -3178,6 +3258,9 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv:
|
||||
case glslang::EOpIsInf:
|
||||
unaryOp = spv::OpIsInf;
|
||||
break;
|
||||
case glslang::EOpIsFinite:
|
||||
unaryOp = spv::OpIsFinite;
|
||||
break;
|
||||
|
||||
case glslang::EOpFloatBitsToInt:
|
||||
case glslang::EOpFloatBitsToUint:
|
||||
@ -3889,8 +3972,6 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op)
|
||||
builder.createNoResultOp(spv::OpEndPrimitive);
|
||||
return 0;
|
||||
case glslang::EOpBarrier:
|
||||
if (glslangIntermediate->getProfile() != EEsProfile)
|
||||
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAllMemory);
|
||||
builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice, spv::MemorySemanticsMaskNone);
|
||||
return 0;
|
||||
case glslang::EOpMemoryBarrier:
|
||||
@ -3911,6 +3992,21 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op)
|
||||
case glslang::EOpGroupMemoryBarrier:
|
||||
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsCrossWorkgroupMemoryMask);
|
||||
return 0;
|
||||
case glslang::EOpAllMemoryBarrierWithGroupSync:
|
||||
// Control barrier with non-"None" semantic is also a memory barrier.
|
||||
builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice, spv::MemorySemanticsAllMemory);
|
||||
return 0;
|
||||
case glslang::EOpGroupMemoryBarrierWithGroupSync:
|
||||
// Control barrier with non-"None" semantic is also a memory barrier.
|
||||
builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice, spv::MemorySemanticsCrossWorkgroupMemoryMask);
|
||||
return 0;
|
||||
case glslang::EOpWorkgroupMemoryBarrier:
|
||||
builder.createMemoryBarrier(spv::ScopeWorkgroup, spv::MemorySemanticsWorkgroupMemoryMask);
|
||||
return 0;
|
||||
case glslang::EOpWorkgroupMemoryBarrierWithGroupSync:
|
||||
// Control barrier with non-"None" semantic is also a memory barrier.
|
||||
builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeWorkgroup, spv::MemorySemanticsWorkgroupMemoryMask);
|
||||
return 0;
|
||||
default:
|
||||
logger->missingFunctionality("unknown operation with no arguments");
|
||||
return 0;
|
||||
@ -4044,7 +4140,7 @@ spv::Id TGlslangToSpvTraverser::createSpvConstant(const glslang::TIntermTyped& n
|
||||
|
||||
// We now know we have a specialization constant to build
|
||||
|
||||
// gl_WorkgroupSize is a special case until the front-end handles hierarchical specialization constants,
|
||||
// gl_WorkGroupSize is a special case until the front-end handles hierarchical specialization constants,
|
||||
// even then, it's specialization ids are handled by special case syntax in GLSL: layout(local_size_x = ...
|
||||
if (node.getType().getQualifier().builtIn == glslang::EbvWorkGroupSize) {
|
||||
std::vector<spv::Id> dimConstId;
|
||||
|
||||
@ -926,8 +926,17 @@ namespace spv {
|
||||
// Count function variable use
|
||||
process(
|
||||
[&](spv::Op opCode, unsigned start) {
|
||||
if (opCode == spv::OpVariable) { ++varUseCount[asId(start+2)]; return true; }
|
||||
return false;
|
||||
if (opCode == spv::OpVariable) {
|
||||
++varUseCount[asId(start+2)];
|
||||
return true;
|
||||
} else if (opCode == spv::OpEntryPoint) {
|
||||
const int wordCount = asWordCount(start);
|
||||
for (int i = 4; i < wordCount; i++) {
|
||||
++varUseCount[asId(start+i)];
|
||||
}
|
||||
return true;
|
||||
} else
|
||||
return false;
|
||||
},
|
||||
|
||||
[&](spv::Id& id) { if (varUseCount[id]) ++varUseCount[id]; }
|
||||
|
||||
@ -1430,10 +1430,10 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse,
|
||||
bool explicitLod = false;
|
||||
texArgs[numArgs++] = parameters.sampler;
|
||||
texArgs[numArgs++] = parameters.coords;
|
||||
if (parameters.Dref)
|
||||
if (parameters.Dref != NoResult)
|
||||
texArgs[numArgs++] = parameters.Dref;
|
||||
if (parameters.comp)
|
||||
texArgs[numArgs++] = parameters.comp;
|
||||
if (parameters.component != NoResult)
|
||||
texArgs[numArgs++] = parameters.component;
|
||||
|
||||
//
|
||||
// Set up the optional arguments
|
||||
@ -1830,6 +1830,9 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector<Id>&
|
||||
int numCols = getTypeNumColumns(resultTypeId);
|
||||
int numRows = getTypeNumRows(resultTypeId);
|
||||
|
||||
Instruction* instr = module.getInstruction(componentTypeId);
|
||||
Id bitCount = instr->getIdOperand(0);
|
||||
|
||||
// Will use a two step process
|
||||
// 1. make a compile-time 2D array of values
|
||||
// 2. construct a matrix from that array
|
||||
@ -1838,8 +1841,8 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector<Id>&
|
||||
|
||||
// initialize the array to the identity matrix
|
||||
Id ids[maxMatrixSize][maxMatrixSize];
|
||||
Id one = makeFloatConstant(1.0);
|
||||
Id zero = makeFloatConstant(0.0);
|
||||
Id one = (bitCount == 64 ? makeDoubleConstant(1.0) : makeFloatConstant(1.0));
|
||||
Id zero = (bitCount == 64 ? makeDoubleConstant(0.0) : makeFloatConstant(0.0));
|
||||
for (int col = 0; col < 4; ++col) {
|
||||
for (int row = 0; row < 4; ++row) {
|
||||
if (col == row)
|
||||
|
||||
@ -321,7 +321,7 @@ public:
|
||||
Id gradX;
|
||||
Id gradY;
|
||||
Id sample;
|
||||
Id comp;
|
||||
Id component;
|
||||
Id texelOut;
|
||||
Id lodClamp;
|
||||
};
|
||||
|
||||
@ -67,10 +67,7 @@ const Id NoType = 0;
|
||||
const unsigned int BadValue = 0xFFFFFFFF;
|
||||
const Decoration NoPrecision = (Decoration)BadValue;
|
||||
const MemorySemanticsMask MemorySemanticsAllMemory =
|
||||
(MemorySemanticsMask)(MemorySemanticsAcquireMask |
|
||||
MemorySemanticsReleaseMask |
|
||||
MemorySemanticsAcquireReleaseMask |
|
||||
MemorySemanticsSequentiallyConsistentMask |
|
||||
(MemorySemanticsMask)(MemorySemanticsSequentiallyConsistentMask |
|
||||
MemorySemanticsUniformMemoryMask |
|
||||
MemorySemanticsSubgroupMemoryMask |
|
||||
MemorySemanticsWorkgroupMemoryMask |
|
||||
|
||||
@ -15,6 +15,8 @@ add_executable(glslangValidator ${SOURCES})
|
||||
add_executable(spirv-remap ${REMAPPER_SOURCES})
|
||||
set_property(TARGET glslangValidator PROPERTY FOLDER tools)
|
||||
set_property(TARGET spirv-remap PROPERTY FOLDER tools)
|
||||
glslang_set_link_args(glslangValidator)
|
||||
glslang_set_link_args(spirv-remap)
|
||||
|
||||
set(LIBRARIES
|
||||
glslang
|
||||
|
||||
@ -213,6 +213,12 @@ float fooinit()
|
||||
|
||||
int init1 = gl_FrontFacing ? 1 : 2; // ERROR, non-const initializer
|
||||
|
||||
#ifdef GL_EXT_shader_non_constant_global_initializers
|
||||
#extension GL_EXT_shader_non_constant_global_initializers : enable
|
||||
#endif
|
||||
|
||||
int init2 = gl_FrontFacing ? 1 : 2;
|
||||
|
||||
#pragma STDGL invariant(all)
|
||||
|
||||
#line 3000
|
||||
|
||||
@ -78,8 +78,8 @@ uniform writeonly iimage2DArray ii2da;
|
||||
|
||||
layout(r32i) uniform iimage2D iimg2D;
|
||||
layout(rgba32i) uniform readonly iimage2D iimg2Drgba;
|
||||
layout(rgba32f) uniform readonly image2D img2Drgba;
|
||||
layout(r32ui) uniform uimage2D uimg2D;
|
||||
layout(rgba32f) uniform readonly image2D img2Drgba; // ERROR, no default
|
||||
layout(r32ui) uniform uimage2D uimg2D; // ERROR, no default
|
||||
|
||||
void qux()
|
||||
{
|
||||
@ -111,9 +111,9 @@ void passrc()
|
||||
passr(iimg2D);
|
||||
}
|
||||
|
||||
layout(rg8i) uniform readonly uimage2D i1bad; // ERROR, type mismatch
|
||||
layout(rgba32i) uniform readonly image2D i2bad; // ERROR, type mismatch
|
||||
layout(rgba32f) uniform readonly uimage2D i3bad; // ERROR, type mismatch
|
||||
highp layout(rg8i) uniform readonly uimage2D i1bad; // ERROR, type mismatch
|
||||
highp layout(rgba32i) uniform readonly image2D i2bad; // ERROR, type mismatch
|
||||
highp layout(rgba32f) uniform readonly uimage2D i3bad; // ERROR, type mismatch
|
||||
layout(r8_snorm) uniform readonly iimage2D i4bad; // ERROR, type mismatch
|
||||
layout(rgba32ui) uniform readonly iimage2D i5bad; // ERROR, type mismatch
|
||||
layout(r8ui) uniform readonly iimage2D i6bad; // ERROR, type mismatch
|
||||
@ -170,17 +170,17 @@ precise int pfoo; // ERROR, reserved
|
||||
dmat2x4 dm; // ERROR
|
||||
uniform samplerCubeArray sca; // ERROR
|
||||
uniform iimage2DRect i2dr; // ERROR
|
||||
uniform image2DMS i2dms; // ERROR
|
||||
highp uniform image2DMS i2dms; // ERROR
|
||||
uniform uimage2DMSArray u2dmsa; // ERROR
|
||||
|
||||
layout(r32f) coherent volatile restrict readonly writeonly uniform image2D okay1;
|
||||
layout(r32i) coherent volatile restrict readonly uniform iimage2D okay2;
|
||||
layout(r32ui) coherent volatile restrict writeonly uniform uimage2D okay3;
|
||||
layout(r32f) coherent volatile restrict uniform image2D okay4;
|
||||
highp layout(r32f) coherent volatile restrict readonly writeonly uniform image2D okay1;
|
||||
layout(r32i) coherent volatile restrict readonly uniform iimage2D okay2;
|
||||
highp layout(r32ui) coherent volatile restrict writeonly uniform uimage2D okay3;
|
||||
highp layout(r32f) coherent volatile restrict uniform image2D okay4;
|
||||
|
||||
layout(rgba32f) coherent volatile restrict uniform image2D badQ1; // ERROR, bad qualifiers
|
||||
layout(rgba8i) coherent volatile restrict uniform iimage2D badQ2; // ERROR, bad qualifiers
|
||||
layout(rgba16ui) coherent volatile restrict uniform uimage2D badQ3; // ERROR, bad qualifiers
|
||||
highp layout(rgba32f) coherent volatile restrict uniform image2D badQ1; // ERROR, bad qualifiers
|
||||
layout(rgba8i) coherent volatile restrict uniform iimage2D badQ2; // ERROR, bad qualifiers
|
||||
highp layout(rgba16ui) coherent volatile restrict uniform uimage2D badQ3; // ERROR, bad qualifiers
|
||||
|
||||
writeonly buffer woblock
|
||||
{
|
||||
|
||||
@ -62,11 +62,11 @@ void foo23()
|
||||
|
||||
layout(binding=3) uniform sampler2D s1;
|
||||
layout(binding=3) uniform sampler2D s2; // ERROR: overlapping bindings? Don't see that in the 310 spec.
|
||||
layout(binding=2) uniform writeonly image2D i2D;
|
||||
layout(binding=4) uniform readonly image3D i3D;
|
||||
layout(binding=5) uniform imageCube iCube;
|
||||
layout(binding=6) uniform image2DArray i2DA;
|
||||
layout(binding=6) uniform coherent volatile restrict image2D i2Dqualified;
|
||||
highp layout(binding=2) uniform writeonly image2D i2D;
|
||||
layout(binding=4) uniform readonly image3D i3D; // ERROR, no default precision
|
||||
layout(binding=5) uniform imageCube iCube; // ERROR, no default precision
|
||||
layout(binding=6) uniform image2DArray i2DA; // ERROR, no default precision
|
||||
layout(binding=6) uniform coherent volatile restrict image2D i2Dqualified; // ERROR, no default precision
|
||||
|
||||
layout(binding = 1) uniform bb {
|
||||
int foo;
|
||||
@ -93,7 +93,7 @@ layout(shared) uniform bshar {
|
||||
in smooth vec4 smoothIn;
|
||||
in flat int flatIn;
|
||||
|
||||
uniform sampler2DMS s2dms;
|
||||
uniform sampler2DMS s2dms; // ERROR, no default precision qualifier
|
||||
|
||||
void foots()
|
||||
{
|
||||
@ -108,7 +108,7 @@ void foots()
|
||||
}
|
||||
|
||||
out bool bout; // ERROR
|
||||
out image2D imageOut; // ERROR
|
||||
highp out image2D imageOut; // ERROR
|
||||
out mat2x3 mout; // ERROR
|
||||
|
||||
in bool inb; // ERROR
|
||||
@ -201,7 +201,7 @@ uniform int sIndex;
|
||||
layout(binding = 0) uniform atomic_uint auArray[2];
|
||||
uniform ubName { int i; } ubInst[4];
|
||||
buffer bbName { int i; } bbInst[4];
|
||||
uniform writeonly image2D iArray[5];
|
||||
highp uniform writeonly image2D iArray[5];
|
||||
const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3), ivec2(0.4));
|
||||
|
||||
void pfooBad()
|
||||
|
||||
@ -147,7 +147,7 @@ uniform int sIndex;
|
||||
layout(binding = 0) uniform atomic_uint auArray[2];
|
||||
uniform ubName { int i; } ubInst[4];
|
||||
buffer bbName { int i; } bbInst[4];
|
||||
uniform writeonly image2D iArray[5];
|
||||
highp uniform writeonly image2D iArray[5];
|
||||
const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3), ivec2(0.4));
|
||||
|
||||
void pfooBad()
|
||||
@ -158,10 +158,10 @@ void pfooBad()
|
||||
auArray[sIndex + 1];
|
||||
ubInst[1];
|
||||
bbInst[2];
|
||||
ubInst[sIndex + 1]; // ERRRO, not supported
|
||||
bbInst[sIndex]; // ERRRO, not supported
|
||||
ubInst[sIndex + 1]; // ERROR, not supported
|
||||
bbInst[sIndex]; // ERROR, not supported
|
||||
iArray[2];
|
||||
iArray[sIndex * 2]; // ERRRO, not supported
|
||||
iArray[sIndex * 2]; // ERROR, not supported
|
||||
textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf)); // ERROR, offset not constant
|
||||
textureGatherOffsets(sArray[0], vec2(0.1), constOffsets); // ERROR, not available
|
||||
}
|
||||
|
||||
@ -148,3 +148,5 @@ void fooKeyMem()
|
||||
{
|
||||
KeyMem.precise;
|
||||
}
|
||||
|
||||
layout(location=28, index=2) out vec4 outIndex2; // ERROR index out of range
|
||||
9
Test/400.vert
Normal file
9
Test/400.vert
Normal file
@ -0,0 +1,9 @@
|
||||
#version 400 core
|
||||
|
||||
in double d; // ERROR, no doubles
|
||||
in dvec3 d3; // ERROR, no doubles
|
||||
in dmat4 dm4; // ERROR, no doubles
|
||||
|
||||
void main()
|
||||
{
|
||||
}
|
||||
9
Test/410.vert
Normal file
9
Test/410.vert
Normal file
@ -0,0 +1,9 @@
|
||||
#version 410 core
|
||||
|
||||
in double d;
|
||||
in dvec3 d3;
|
||||
in dmat4 dm4;
|
||||
|
||||
void main()
|
||||
{
|
||||
}
|
||||
30
Test/420.comp
Executable file
30
Test/420.comp
Executable file
@ -0,0 +1,30 @@
|
||||
#version 420
|
||||
|
||||
layout(local_size_x = 2) in; // ERROR, no compute
|
||||
|
||||
#extension GL_ARB_compute_shader : enable
|
||||
|
||||
layout(local_size_x = 2, local_size_y = 4, local_size_z = 6) in;
|
||||
|
||||
shared vec3 sfoo;
|
||||
|
||||
void main()
|
||||
{
|
||||
sfoo = vec3(gl_WorkGroupSize.x, gl_WorkGroupSize.y, gl_WorkGroupSize.z);
|
||||
sfoo += gl_WorkGroupSize + gl_NumWorkGroups + gl_WorkGroupID + gl_LocalInvocationID + gl_GlobalInvocationID;
|
||||
sfoo *= gl_LocalInvocationIndex;
|
||||
sfoo += gl_MaxComputeWorkGroupCount + gl_MaxComputeWorkGroupSize;
|
||||
sfoo *= gl_MaxComputeUniformComponents +
|
||||
gl_MaxComputeTextureImageUnits +
|
||||
gl_MaxComputeImageUniforms +
|
||||
gl_MaxComputeAtomicCounters +
|
||||
gl_MaxComputeAtomicCounterBuffers;
|
||||
|
||||
barrier();
|
||||
memoryBarrier();
|
||||
memoryBarrierAtomicCounter();
|
||||
memoryBarrierBuffer();
|
||||
memoryBarrierImage();
|
||||
memoryBarrierShared();
|
||||
groupMemoryBarrier();
|
||||
}
|
||||
@ -82,7 +82,7 @@ ERROR: 0:192: '.' : cannot apply to an array: nothing
|
||||
ERROR: 0:193: '.length' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:194: '.' : cannot apply to an array: method
|
||||
ERROR: 0:194: 'a' : can't use function syntax on variable
|
||||
ERROR: 0:214: 'non-constant global initializer' : not supported with this profile: es
|
||||
ERROR: 0:214: 'non-constant global initializer (needs GL_EXT_shader_non_constant_global_initializers)' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:3000: '#error' : line of this error should be 3000
|
||||
ERROR: 0:3002: '' : syntax error
|
||||
ERROR: 77 compilation errors. No code generated.
|
||||
@ -90,6 +90,7 @@ ERROR: 77 compilation errors. No code generated.
|
||||
|
||||
Shader version: 100
|
||||
Requested GL_EXT_frag_depth
|
||||
Requested GL_EXT_shader_non_constant_global_initializers
|
||||
Requested GL_EXT_shader_texture_lod
|
||||
Requested GL_OES_EGL_image_external
|
||||
Requested GL_OES_standard_derivatives
|
||||
@ -376,6 +377,18 @@ ERROR: node is still EOpNull!
|
||||
0:214 false case
|
||||
0:214 Constant:
|
||||
0:214 2 (const int)
|
||||
0:220 Sequence
|
||||
0:220 move second child to first child (temp mediump int)
|
||||
0:220 'init2' (global mediump int)
|
||||
0:220 Test condition and select (temp mediump int)
|
||||
0:220 Condition
|
||||
0:220 'gl_FrontFacing' (gl_FrontFacing bool Face)
|
||||
0:220 true case
|
||||
0:220 Constant:
|
||||
0:220 1 (const int)
|
||||
0:220 false case
|
||||
0:220 Constant:
|
||||
0:220 2 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'a' (global 3-element array of mediump int)
|
||||
0:? 'uint' (global mediump int)
|
||||
@ -407,6 +420,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 'fi3' (const mediump float)
|
||||
0:? 5.000000
|
||||
0:? 'init1' (global mediump int)
|
||||
0:? 'init2' (global mediump int)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
@ -414,6 +428,7 @@ Linked fragment stage:
|
||||
|
||||
Shader version: 100
|
||||
Requested GL_EXT_frag_depth
|
||||
Requested GL_EXT_shader_non_constant_global_initializers
|
||||
Requested GL_EXT_shader_texture_lod
|
||||
Requested GL_OES_EGL_image_external
|
||||
Requested GL_OES_standard_derivatives
|
||||
@ -700,6 +715,18 @@ ERROR: node is still EOpNull!
|
||||
0:214 false case
|
||||
0:214 Constant:
|
||||
0:214 2 (const int)
|
||||
0:220 Sequence
|
||||
0:220 move second child to first child (temp mediump int)
|
||||
0:220 'init2' (global mediump int)
|
||||
0:220 Test condition and select (temp mediump int)
|
||||
0:220 Condition
|
||||
0:220 'gl_FrontFacing' (gl_FrontFacing bool Face)
|
||||
0:220 true case
|
||||
0:220 Constant:
|
||||
0:220 1 (const int)
|
||||
0:220 false case
|
||||
0:220 Constant:
|
||||
0:220 2 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'a' (global 3-element array of mediump int)
|
||||
0:? 'uint' (global mediump int)
|
||||
@ -731,4 +758,5 @@ ERROR: node is still EOpNull!
|
||||
0:? 'fi3' (const mediump float)
|
||||
0:? 5.000000
|
||||
0:? 'init1' (global mediump int)
|
||||
0:? 'init2' (global mediump int)
|
||||
|
||||
|
||||
@ -136,24 +136,24 @@ ERROR: node is still EOpNull!
|
||||
0:53 isinf (global 4-component vector of bool)
|
||||
0:53 'v4' (global mediump 4-component vector of float)
|
||||
0:56 Sequence
|
||||
0:56 move second child to first child (temp mediump int)
|
||||
0:56 move second child to first child (temp highp int)
|
||||
0:56 'i' (temp mediump int)
|
||||
0:56 floatBitsToInt (global mediump int)
|
||||
0:56 floatBitsToInt (global highp int)
|
||||
0:56 'f' (global mediump float)
|
||||
0:57 Sequence
|
||||
0:57 move second child to first child (temp mediump 4-component vector of uint)
|
||||
0:57 move second child to first child (temp highp 4-component vector of uint)
|
||||
0:57 'uv11' (temp mediump 4-component vector of uint)
|
||||
0:57 floatBitsToUint (global mediump 4-component vector of uint)
|
||||
0:57 floatBitsToUint (global highp 4-component vector of uint)
|
||||
0:57 'v4' (global mediump 4-component vector of float)
|
||||
0:58 Sequence
|
||||
0:58 move second child to first child (temp mediump 4-component vector of float)
|
||||
0:58 move second child to first child (temp highp 4-component vector of float)
|
||||
0:58 'v14' (temp mediump 4-component vector of float)
|
||||
0:58 intBitsToFloat (global mediump 4-component vector of float)
|
||||
0:58 intBitsToFloat (global highp 4-component vector of float)
|
||||
0:58 'iv4a' (global mediump 4-component vector of int)
|
||||
0:59 Sequence
|
||||
0:59 move second child to first child (temp mediump 2-component vector of float)
|
||||
0:59 move second child to first child (temp highp 2-component vector of float)
|
||||
0:59 'v15' (temp mediump 2-component vector of float)
|
||||
0:59 uintBitsToFloat (global mediump 2-component vector of float)
|
||||
0:59 uintBitsToFloat (global highp 2-component vector of float)
|
||||
0:59 'uv2c' (global mediump 2-component vector of uint)
|
||||
0:62 Sequence
|
||||
0:62 move second child to first child (temp highp uint)
|
||||
@ -343,24 +343,24 @@ ERROR: node is still EOpNull!
|
||||
0:53 isinf (global 4-component vector of bool)
|
||||
0:53 'v4' (global mediump 4-component vector of float)
|
||||
0:56 Sequence
|
||||
0:56 move second child to first child (temp mediump int)
|
||||
0:56 move second child to first child (temp highp int)
|
||||
0:56 'i' (temp mediump int)
|
||||
0:56 floatBitsToInt (global mediump int)
|
||||
0:56 floatBitsToInt (global highp int)
|
||||
0:56 'f' (global mediump float)
|
||||
0:57 Sequence
|
||||
0:57 move second child to first child (temp mediump 4-component vector of uint)
|
||||
0:57 move second child to first child (temp highp 4-component vector of uint)
|
||||
0:57 'uv11' (temp mediump 4-component vector of uint)
|
||||
0:57 floatBitsToUint (global mediump 4-component vector of uint)
|
||||
0:57 floatBitsToUint (global highp 4-component vector of uint)
|
||||
0:57 'v4' (global mediump 4-component vector of float)
|
||||
0:58 Sequence
|
||||
0:58 move second child to first child (temp mediump 4-component vector of float)
|
||||
0:58 move second child to first child (temp highp 4-component vector of float)
|
||||
0:58 'v14' (temp mediump 4-component vector of float)
|
||||
0:58 intBitsToFloat (global mediump 4-component vector of float)
|
||||
0:58 intBitsToFloat (global highp 4-component vector of float)
|
||||
0:58 'iv4a' (global mediump 4-component vector of int)
|
||||
0:59 Sequence
|
||||
0:59 move second child to first child (temp mediump 2-component vector of float)
|
||||
0:59 move second child to first child (temp highp 2-component vector of float)
|
||||
0:59 'v15' (temp mediump 2-component vector of float)
|
||||
0:59 uintBitsToFloat (global mediump 2-component vector of float)
|
||||
0:59 uintBitsToFloat (global highp 2-component vector of float)
|
||||
0:59 'uv2c' (global mediump 2-component vector of uint)
|
||||
0:62 Sequence
|
||||
0:62 move second child to first child (temp highp uint)
|
||||
|
||||
@ -17,6 +17,8 @@ ERROR: 0:61: 'assign' : l-value required "ro" (can't modify a readonly buffer)
|
||||
ERROR: 0:66: 'buffer' : buffers can be declared only as blocks
|
||||
ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:76: '' : image variables not declared 'writeonly' must have a format layout qualifier
|
||||
ERROR: 0:81: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:82: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:87: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic
|
||||
ERROR: 0:88: 'imageAtomicAdd' : required extension not requested: GL_OES_shader_image_atomic
|
||||
ERROR: 0:89: 'imageAtomicMin' : required extension not requested: GL_OES_shader_image_atomic
|
||||
@ -79,7 +81,7 @@ ERROR: 0:227: 'input block' : not supported in this stage: compute
|
||||
ERROR: 0:231: 'output block' : not supported in this stage: compute
|
||||
WARNING: 0:235: 't__' : identifiers containing consecutive underscores ("__") are reserved
|
||||
WARNING: 0:238: '#define' : names containing consecutive underscores are reserved: __D
|
||||
ERROR: 77 compilation errors. No code generated.
|
||||
ERROR: 79 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 310
|
||||
@ -143,7 +145,7 @@ ERROR: node is still EOpNull!
|
||||
0:87 'i' (temp highp int)
|
||||
0:87 'i' (temp highp int)
|
||||
0:88 imageAtomicAdd (global highp uint)
|
||||
0:88 'uimg2D' (layout(r32ui ) uniform highp uimage2D)
|
||||
0:88 'uimg2D' (layout(r32ui ) uniform mediump uimage2D)
|
||||
0:88 Construct ivec2 (temp highp 2-component vector of int)
|
||||
0:88 'i' (temp highp int)
|
||||
0:88 'i' (temp highp int)
|
||||
@ -177,7 +179,7 @@ ERROR: node is still EOpNull!
|
||||
0:92 0 (const int)
|
||||
0:92 0 (const int)
|
||||
0:93 imageLoad (global highp 4-component vector of float)
|
||||
0:93 'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)
|
||||
0:93 'img2Drgba' (layout(rgba32f ) readonly uniform mediump image2D)
|
||||
0:93 Construct ivec2 (temp highp 2-component vector of int)
|
||||
0:93 'i' (temp highp int)
|
||||
0:93 'i' (temp highp int)
|
||||
@ -467,14 +469,14 @@ ERROR: node is still EOpNull!
|
||||
0:? 'ii2da' (writeonly uniform highp iimage2DArray)
|
||||
0:? 'iimg2D' (layout(r32i ) uniform highp iimage2D)
|
||||
0:? 'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D)
|
||||
0:? 'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)
|
||||
0:? 'uimg2D' (layout(r32ui ) uniform highp uimage2D)
|
||||
0:? 'img2Drgba' (layout(rgba32f ) readonly uniform mediump image2D)
|
||||
0:? 'uimg2D' (layout(r32ui ) uniform mediump uimage2D)
|
||||
0:? 'vol' (volatile temp highp float)
|
||||
0:? 'vol2' (readonly temp highp int)
|
||||
0:? 'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D)
|
||||
0:? 'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D)
|
||||
0:? 'i1bad' (layout(rg8i ) readonly uniform highp uimage2D)
|
||||
0:? 'i2bad' (layout(rgba32i ) readonly uniform lowp image2D)
|
||||
0:? 'i2bad' (layout(rgba32i ) readonly uniform highp image2D)
|
||||
0:? 'i3bad' (layout(rgba32f ) readonly uniform highp uimage2D)
|
||||
0:? 'i4bad' (layout(r8_snorm ) readonly uniform highp iimage2D)
|
||||
0:? 'i5bad' (layout(rgba32ui ) readonly uniform highp iimage2D)
|
||||
@ -489,13 +491,13 @@ ERROR: node is still EOpNull!
|
||||
0:? 'dm' (global 2X4 matrix of double)
|
||||
0:? 'sca' (uniform mediump samplerCubeArray)
|
||||
0:? 'i2dr' (uniform mediump iimage2DRect)
|
||||
0:? 'i2dms' (uniform lowp image2DMS)
|
||||
0:? 'i2dms' (uniform highp image2DMS)
|
||||
0:? 'u2dmsa' (uniform mediump uimage2DMSArray)
|
||||
0:? 'okay1' (layout(r32f ) coherent volatile restrict readonly writeonly uniform lowp image2D)
|
||||
0:? 'okay1' (layout(r32f ) coherent volatile restrict readonly writeonly uniform highp image2D)
|
||||
0:? 'okay2' (layout(r32i ) coherent volatile restrict readonly uniform highp iimage2D)
|
||||
0:? 'okay3' (layout(r32ui ) coherent volatile restrict writeonly uniform highp uimage2D)
|
||||
0:? 'okay4' (layout(r32f ) coherent volatile restrict uniform lowp image2D)
|
||||
0:? 'badQ1' (layout(rgba32f ) coherent volatile restrict uniform lowp image2D)
|
||||
0:? 'okay4' (layout(r32f ) coherent volatile restrict uniform highp image2D)
|
||||
0:? 'badQ1' (layout(rgba32f ) coherent volatile restrict uniform highp image2D)
|
||||
0:? 'badQ2' (layout(rgba8i ) coherent volatile restrict uniform highp iimage2D)
|
||||
0:? 'badQ3' (layout(rgba16ui ) coherent volatile restrict uniform highp uimage2D)
|
||||
0:? 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
@ -570,7 +572,7 @@ ERROR: node is still EOpNull!
|
||||
0:87 'i' (temp highp int)
|
||||
0:87 'i' (temp highp int)
|
||||
0:88 imageAtomicAdd (global highp uint)
|
||||
0:88 'uimg2D' (layout(r32ui ) uniform highp uimage2D)
|
||||
0:88 'uimg2D' (layout(r32ui ) uniform mediump uimage2D)
|
||||
0:88 Construct ivec2 (temp highp 2-component vector of int)
|
||||
0:88 'i' (temp highp int)
|
||||
0:88 'i' (temp highp int)
|
||||
@ -604,7 +606,7 @@ ERROR: node is still EOpNull!
|
||||
0:92 0 (const int)
|
||||
0:92 0 (const int)
|
||||
0:93 imageLoad (global highp 4-component vector of float)
|
||||
0:93 'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)
|
||||
0:93 'img2Drgba' (layout(rgba32f ) readonly uniform mediump image2D)
|
||||
0:93 Construct ivec2 (temp highp 2-component vector of int)
|
||||
0:93 'i' (temp highp int)
|
||||
0:93 'i' (temp highp int)
|
||||
@ -894,14 +896,14 @@ ERROR: node is still EOpNull!
|
||||
0:? 'ii2da' (writeonly uniform highp iimage2DArray)
|
||||
0:? 'iimg2D' (layout(r32i ) uniform highp iimage2D)
|
||||
0:? 'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D)
|
||||
0:? 'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)
|
||||
0:? 'uimg2D' (layout(r32ui ) uniform highp uimage2D)
|
||||
0:? 'img2Drgba' (layout(rgba32f ) readonly uniform mediump image2D)
|
||||
0:? 'uimg2D' (layout(r32ui ) uniform mediump uimage2D)
|
||||
0:? 'vol' (volatile temp highp float)
|
||||
0:? 'vol2' (readonly temp highp int)
|
||||
0:? 'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D)
|
||||
0:? 'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D)
|
||||
0:? 'i1bad' (layout(rg8i ) readonly uniform highp uimage2D)
|
||||
0:? 'i2bad' (layout(rgba32i ) readonly uniform lowp image2D)
|
||||
0:? 'i2bad' (layout(rgba32i ) readonly uniform highp image2D)
|
||||
0:? 'i3bad' (layout(rgba32f ) readonly uniform highp uimage2D)
|
||||
0:? 'i4bad' (layout(r8_snorm ) readonly uniform highp iimage2D)
|
||||
0:? 'i5bad' (layout(rgba32ui ) readonly uniform highp iimage2D)
|
||||
@ -916,13 +918,13 @@ ERROR: node is still EOpNull!
|
||||
0:? 'dm' (global 2X4 matrix of double)
|
||||
0:? 'sca' (uniform mediump samplerCubeArray)
|
||||
0:? 'i2dr' (uniform mediump iimage2DRect)
|
||||
0:? 'i2dms' (uniform lowp image2DMS)
|
||||
0:? 'i2dms' (uniform highp image2DMS)
|
||||
0:? 'u2dmsa' (uniform mediump uimage2DMSArray)
|
||||
0:? 'okay1' (layout(r32f ) coherent volatile restrict readonly writeonly uniform lowp image2D)
|
||||
0:? 'okay1' (layout(r32f ) coherent volatile restrict readonly writeonly uniform highp image2D)
|
||||
0:? 'okay2' (layout(r32i ) coherent volatile restrict readonly uniform highp iimage2D)
|
||||
0:? 'okay3' (layout(r32ui ) coherent volatile restrict writeonly uniform highp uimage2D)
|
||||
0:? 'okay4' (layout(r32f ) coherent volatile restrict uniform lowp image2D)
|
||||
0:? 'badQ1' (layout(rgba32f ) coherent volatile restrict uniform lowp image2D)
|
||||
0:? 'okay4' (layout(r32f ) coherent volatile restrict uniform highp image2D)
|
||||
0:? 'badQ1' (layout(rgba32f ) coherent volatile restrict uniform highp image2D)
|
||||
0:? 'badQ2' (layout(rgba8i ) coherent volatile restrict uniform highp iimage2D)
|
||||
0:? 'badQ3' (layout(rgba16ui ) coherent volatile restrict uniform highp uimage2D)
|
||||
0:? 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
|
||||
@ -20,9 +20,11 @@ ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset,
|
||||
ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
|
||||
ERROR: 0:66: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:66: '' : image variables not declared 'writeonly' must have a format layout qualifier
|
||||
ERROR: 0:67: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:67: '' : image variables not declared 'writeonly' must have a format layout qualifier
|
||||
ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:68: '' : image variables not declared 'writeonly' must have a format layout qualifier
|
||||
ERROR: 0:69: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:69: '' : image variables not declared 'writeonly' must have a format layout qualifier
|
||||
ERROR: 0:73: 'binding' : requires block, or sampler/image, or atomic-counter type
|
||||
ERROR: 0:77: 'location' : location is too large
|
||||
@ -31,6 +33,7 @@ ERROR: 0:82: 'location' : too large for fragment output
|
||||
ERROR: 0:82: 'location' : overlapping use of location 40
|
||||
ERROR: 0:83: 'non-literal layout-id value' : not supported with this profile: es
|
||||
ERROR: 0:83: 'layout-id value' : cannot be negative
|
||||
ERROR: 0:96: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:110: 'out' : cannot be bool
|
||||
ERROR: 0:111: 'image2D' : sampler/image types can only be used in uniform variables or function parameters: imageOut
|
||||
ERROR: 0:111: '' : image variables not declared 'writeonly' must have a format layout qualifier
|
||||
@ -130,7 +133,7 @@ ERROR: 0:427: 'blend equation' : can only apply to a standalone qualifier
|
||||
ERROR: 0:428: 'blend equation' : can only apply to a standalone qualifier
|
||||
ERROR: 0:429: 'blend_support' : unknown blend equation
|
||||
ERROR: 0:431: 'fragment-shader array-of-array output' : not supported with this profile: es
|
||||
ERROR: 122 compilation errors. No code generated.
|
||||
ERROR: 125 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 310
|
||||
@ -351,7 +354,7 @@ ERROR: node is still EOpNull!
|
||||
0:102 move second child to first child (temp highp 2-component vector of int)
|
||||
0:102 'v2' (temp highp 2-component vector of int)
|
||||
0:102 textureSize (global highp 2-component vector of int)
|
||||
0:102 's2dms' (uniform highp sampler2DMS)
|
||||
0:102 's2dms' (uniform mediump sampler2DMS)
|
||||
0:103 move second child to first child (temp highp 2-component vector of int)
|
||||
0:103 'v2' (temp highp 2-component vector of int)
|
||||
0:103 imageQuerySize (global highp 2-component vector of int)
|
||||
@ -363,7 +366,7 @@ ERROR: node is still EOpNull!
|
||||
0:105 move second child to first child (temp highp 2-component vector of int)
|
||||
0:105 'v2' (temp highp 2-component vector of int)
|
||||
0:105 imageQuerySize (global highp 2-component vector of int)
|
||||
0:105 'iCube' (layout(binding=5 ) uniform lowp imageCube)
|
||||
0:105 'iCube' (layout(binding=5 ) uniform mediump imageCube)
|
||||
0:106 move second child to first child (temp highp 3-component vector of int)
|
||||
0:106 'v3' (temp highp 3-component vector of int)
|
||||
0:106 imageQuerySize (global highp 3-component vector of int)
|
||||
@ -371,7 +374,7 @@ ERROR: node is still EOpNull!
|
||||
0:107 move second child to first child (temp highp 2-component vector of int)
|
||||
0:107 'v2' (temp highp 2-component vector of int)
|
||||
0:107 imageQuerySize (global highp 2-component vector of int)
|
||||
0:107 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D)
|
||||
0:107 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform mediump image2D)
|
||||
0:165 Function Definition: fooIO( (global void)
|
||||
0:165 Function Parameters:
|
||||
0:167 Sequence
|
||||
@ -928,9 +931,9 @@ ERROR: node is still EOpNull!
|
||||
0:? 's2' (layout(binding=3 ) uniform highp sampler2D)
|
||||
0:? 'i2D' (layout(binding=2 ) writeonly uniform highp image2D)
|
||||
0:? 'i3D' (layout(binding=4 ) readonly uniform mediump image3D)
|
||||
0:? 'iCube' (layout(binding=5 ) uniform lowp imageCube)
|
||||
0:? 'iCube' (layout(binding=5 ) uniform mediump imageCube)
|
||||
0:? 'i2DA' (layout(binding=6 ) uniform mediump image2DArray)
|
||||
0:? 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D)
|
||||
0:? 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform mediump image2D)
|
||||
0:? 'bbi' (layout(binding=1 column_major shared ) uniform block{layout(column_major shared ) uniform mediump int foo, layout(binding=2 column_major shared ) uniform mediump float f})
|
||||
0:? 'centroidIn' (centroid smooth in mediump 4-component vector of float)
|
||||
0:? 'bigl' (uniform mediump 4-component vector of float)
|
||||
@ -941,7 +944,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 'bshari' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int i})
|
||||
0:? 'smoothIn' (smooth in mediump 4-component vector of float)
|
||||
0:? 'flatIn' (flat in mediump int)
|
||||
0:? 's2dms' (uniform highp sampler2DMS)
|
||||
0:? 's2dms' (uniform mediump sampler2DMS)
|
||||
0:? 'bout' (out bool)
|
||||
0:? 'imageOut' (out highp image2D)
|
||||
0:? 'mout' (out mediump 2X3 matrix of float)
|
||||
@ -1232,7 +1235,7 @@ ERROR: node is still EOpNull!
|
||||
0:102 move second child to first child (temp highp 2-component vector of int)
|
||||
0:102 'v2' (temp highp 2-component vector of int)
|
||||
0:102 textureSize (global highp 2-component vector of int)
|
||||
0:102 's2dms' (uniform highp sampler2DMS)
|
||||
0:102 's2dms' (uniform mediump sampler2DMS)
|
||||
0:103 move second child to first child (temp highp 2-component vector of int)
|
||||
0:103 'v2' (temp highp 2-component vector of int)
|
||||
0:103 imageQuerySize (global highp 2-component vector of int)
|
||||
@ -1244,7 +1247,7 @@ ERROR: node is still EOpNull!
|
||||
0:105 move second child to first child (temp highp 2-component vector of int)
|
||||
0:105 'v2' (temp highp 2-component vector of int)
|
||||
0:105 imageQuerySize (global highp 2-component vector of int)
|
||||
0:105 'iCube' (layout(binding=5 ) uniform lowp imageCube)
|
||||
0:105 'iCube' (layout(binding=5 ) uniform mediump imageCube)
|
||||
0:106 move second child to first child (temp highp 3-component vector of int)
|
||||
0:106 'v3' (temp highp 3-component vector of int)
|
||||
0:106 imageQuerySize (global highp 3-component vector of int)
|
||||
@ -1252,7 +1255,7 @@ ERROR: node is still EOpNull!
|
||||
0:107 move second child to first child (temp highp 2-component vector of int)
|
||||
0:107 'v2' (temp highp 2-component vector of int)
|
||||
0:107 imageQuerySize (global highp 2-component vector of int)
|
||||
0:107 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D)
|
||||
0:107 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform mediump image2D)
|
||||
0:165 Function Definition: fooIO( (global void)
|
||||
0:165 Function Parameters:
|
||||
0:167 Sequence
|
||||
@ -1809,9 +1812,9 @@ ERROR: node is still EOpNull!
|
||||
0:? 's2' (layout(binding=3 ) uniform highp sampler2D)
|
||||
0:? 'i2D' (layout(binding=2 ) writeonly uniform highp image2D)
|
||||
0:? 'i3D' (layout(binding=4 ) readonly uniform mediump image3D)
|
||||
0:? 'iCube' (layout(binding=5 ) uniform lowp imageCube)
|
||||
0:? 'iCube' (layout(binding=5 ) uniform mediump imageCube)
|
||||
0:? 'i2DA' (layout(binding=6 ) uniform mediump image2DArray)
|
||||
0:? 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D)
|
||||
0:? 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform mediump image2D)
|
||||
0:? 'bbi' (layout(binding=1 column_major shared ) uniform block{layout(column_major shared ) uniform mediump int foo, layout(binding=2 column_major shared ) uniform mediump float f})
|
||||
0:? 'centroidIn' (centroid smooth in mediump 4-component vector of float)
|
||||
0:? 'bigl' (uniform mediump 4-component vector of float)
|
||||
@ -1822,7 +1825,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 'bshari' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int i})
|
||||
0:? 'smoothIn' (smooth in mediump 4-component vector of float)
|
||||
0:? 'flatIn' (flat in mediump int)
|
||||
0:? 's2dms' (uniform highp sampler2DMS)
|
||||
0:? 's2dms' (uniform mediump sampler2DMS)
|
||||
0:? 'bout' (out bool)
|
||||
0:? 'imageOut' (out highp image2D)
|
||||
0:? 'mout' (out mediump 2X3 matrix of float)
|
||||
|
||||
@ -291,8 +291,8 @@ ERROR: node is still EOpNull!
|
||||
0:156 'inf' (in highp 2-component vector of float)
|
||||
0:156 'ing' (in highp 2-component vector of float)
|
||||
0:156 'h' (noContraction temp highp 2-component vector of float)
|
||||
0:157 indirect index (temp highp sampler2D)
|
||||
0:157 'sArray' (uniform 4-element array of highp sampler2D)
|
||||
0:157 indirect index (temp lowp sampler2D)
|
||||
0:157 'sArray' (uniform 4-element array of lowp sampler2D)
|
||||
0:157 add (temp highp int)
|
||||
0:157 'sIndex' (uniform highp int)
|
||||
0:157 Constant:
|
||||
@ -330,19 +330,19 @@ ERROR: node is still EOpNull!
|
||||
0:164 'sIndex' (uniform highp int)
|
||||
0:164 Constant:
|
||||
0:164 2 (const int)
|
||||
0:165 textureGatherOffset (global highp 4-component vector of float)
|
||||
0:165 direct index (temp highp sampler2D)
|
||||
0:165 'sArray' (uniform 4-element array of highp sampler2D)
|
||||
0:165 textureGatherOffset (global lowp 4-component vector of float)
|
||||
0:165 direct index (temp lowp sampler2D)
|
||||
0:165 'sArray' (uniform 4-element array of lowp sampler2D)
|
||||
0:165 Constant:
|
||||
0:165 0 (const int)
|
||||
0:165 Constant:
|
||||
0:165 0.100000
|
||||
0:165 0.100000
|
||||
0:165 Convert float to int (temp highp 2-component vector of int)
|
||||
0:165 Convert float to int (temp lowp 2-component vector of int)
|
||||
0:165 'inf' (in highp 2-component vector of float)
|
||||
0:166 textureGatherOffsets (global highp 4-component vector of float)
|
||||
0:166 direct index (temp highp sampler2D)
|
||||
0:166 'sArray' (uniform 4-element array of highp sampler2D)
|
||||
0:166 textureGatherOffsets (global lowp 4-component vector of float)
|
||||
0:166 direct index (temp lowp sampler2D)
|
||||
0:166 'sArray' (uniform 4-element array of lowp sampler2D)
|
||||
0:166 Constant:
|
||||
0:166 0 (const int)
|
||||
0:166 Constant:
|
||||
@ -366,8 +366,8 @@ ERROR: node is still EOpNull!
|
||||
0:174 'inf' (in highp 2-component vector of float)
|
||||
0:174 'ing' (in highp 2-component vector of float)
|
||||
0:174 'h' (noContraction temp highp 2-component vector of float)
|
||||
0:175 indirect index (temp highp sampler2D)
|
||||
0:175 'sArray' (uniform 4-element array of highp sampler2D)
|
||||
0:175 indirect index (temp lowp sampler2D)
|
||||
0:175 'sArray' (uniform 4-element array of lowp sampler2D)
|
||||
0:175 add (temp highp int)
|
||||
0:175 'sIndex' (uniform highp int)
|
||||
0:175 Constant:
|
||||
@ -394,19 +394,19 @@ ERROR: node is still EOpNull!
|
||||
0:179 'sIndex' (uniform highp int)
|
||||
0:179 Constant:
|
||||
0:179 2 (const int)
|
||||
0:180 textureGatherOffset (global highp 4-component vector of float)
|
||||
0:180 direct index (temp highp sampler2D)
|
||||
0:180 'sArray' (uniform 4-element array of highp sampler2D)
|
||||
0:180 textureGatherOffset (global lowp 4-component vector of float)
|
||||
0:180 direct index (temp lowp sampler2D)
|
||||
0:180 'sArray' (uniform 4-element array of lowp sampler2D)
|
||||
0:180 Constant:
|
||||
0:180 0 (const int)
|
||||
0:180 Constant:
|
||||
0:180 0.100000
|
||||
0:180 0.100000
|
||||
0:180 Convert float to int (temp highp 2-component vector of int)
|
||||
0:180 Convert float to int (temp lowp 2-component vector of int)
|
||||
0:180 'inf' (in highp 2-component vector of float)
|
||||
0:181 textureGatherOffsets (global highp 4-component vector of float)
|
||||
0:181 direct index (temp highp sampler2D)
|
||||
0:181 'sArray' (uniform 4-element array of highp sampler2D)
|
||||
0:181 textureGatherOffsets (global lowp 4-component vector of float)
|
||||
0:181 direct index (temp lowp sampler2D)
|
||||
0:181 'sArray' (uniform 4-element array of lowp sampler2D)
|
||||
0:181 Constant:
|
||||
0:181 0 (const int)
|
||||
0:181 Constant:
|
||||
@ -421,9 +421,9 @@ ERROR: node is still EOpNull!
|
||||
0:181 0 (const int)
|
||||
0:181 0 (const int)
|
||||
0:181 0 (const int)
|
||||
0:182 textureGatherOffsets (global highp 4-component vector of float)
|
||||
0:182 direct index (temp highp sampler2D)
|
||||
0:182 'sArray' (uniform 4-element array of highp sampler2D)
|
||||
0:182 textureGatherOffsets (global lowp 4-component vector of float)
|
||||
0:182 direct index (temp lowp sampler2D)
|
||||
0:182 'sArray' (uniform 4-element array of lowp sampler2D)
|
||||
0:182 Constant:
|
||||
0:182 0 (const int)
|
||||
0:182 Constant:
|
||||
@ -927,7 +927,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 'us2dms' (uniform highp usampler2DMS)
|
||||
0:? 'us2dmsa' (uniform mediump usampler2DMSArray)
|
||||
0:? 'outb' (smooth out bool)
|
||||
0:? 'outo' (smooth out highp sampler2D)
|
||||
0:? 'outo' (smooth out lowp sampler2D)
|
||||
0:? 'outa' (smooth out 4-element array of highp float)
|
||||
0:? 'outaa' (smooth out 4-element array of 2-element array of highp float)
|
||||
0:? 'outs' (smooth out structure{global highp float f})
|
||||
@ -949,7 +949,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 'inf' (in highp 2-component vector of float)
|
||||
0:? 'ing' (in highp 2-component vector of float)
|
||||
0:? 'offsets' (uniform 4-element array of highp 2-component vector of int)
|
||||
0:? 'sArray' (uniform 4-element array of highp sampler2D)
|
||||
0:? 'sArray' (uniform 4-element array of lowp sampler2D)
|
||||
0:? 'sIndex' (uniform highp int)
|
||||
0:? 'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)
|
||||
0:? 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
|
||||
@ -1222,8 +1222,8 @@ ERROR: node is still EOpNull!
|
||||
0:156 'inf' (in highp 2-component vector of float)
|
||||
0:156 'ing' (in highp 2-component vector of float)
|
||||
0:156 'h' (noContraction temp highp 2-component vector of float)
|
||||
0:157 indirect index (temp highp sampler2D)
|
||||
0:157 'sArray' (uniform 4-element array of highp sampler2D)
|
||||
0:157 indirect index (temp lowp sampler2D)
|
||||
0:157 'sArray' (uniform 4-element array of lowp sampler2D)
|
||||
0:157 add (temp highp int)
|
||||
0:157 'sIndex' (uniform highp int)
|
||||
0:157 Constant:
|
||||
@ -1261,19 +1261,19 @@ ERROR: node is still EOpNull!
|
||||
0:164 'sIndex' (uniform highp int)
|
||||
0:164 Constant:
|
||||
0:164 2 (const int)
|
||||
0:165 textureGatherOffset (global highp 4-component vector of float)
|
||||
0:165 direct index (temp highp sampler2D)
|
||||
0:165 'sArray' (uniform 4-element array of highp sampler2D)
|
||||
0:165 textureGatherOffset (global lowp 4-component vector of float)
|
||||
0:165 direct index (temp lowp sampler2D)
|
||||
0:165 'sArray' (uniform 4-element array of lowp sampler2D)
|
||||
0:165 Constant:
|
||||
0:165 0 (const int)
|
||||
0:165 Constant:
|
||||
0:165 0.100000
|
||||
0:165 0.100000
|
||||
0:165 Convert float to int (temp highp 2-component vector of int)
|
||||
0:165 Convert float to int (temp lowp 2-component vector of int)
|
||||
0:165 'inf' (in highp 2-component vector of float)
|
||||
0:166 textureGatherOffsets (global highp 4-component vector of float)
|
||||
0:166 direct index (temp highp sampler2D)
|
||||
0:166 'sArray' (uniform 4-element array of highp sampler2D)
|
||||
0:166 textureGatherOffsets (global lowp 4-component vector of float)
|
||||
0:166 direct index (temp lowp sampler2D)
|
||||
0:166 'sArray' (uniform 4-element array of lowp sampler2D)
|
||||
0:166 Constant:
|
||||
0:166 0 (const int)
|
||||
0:166 Constant:
|
||||
@ -1297,8 +1297,8 @@ ERROR: node is still EOpNull!
|
||||
0:174 'inf' (in highp 2-component vector of float)
|
||||
0:174 'ing' (in highp 2-component vector of float)
|
||||
0:174 'h' (noContraction temp highp 2-component vector of float)
|
||||
0:175 indirect index (temp highp sampler2D)
|
||||
0:175 'sArray' (uniform 4-element array of highp sampler2D)
|
||||
0:175 indirect index (temp lowp sampler2D)
|
||||
0:175 'sArray' (uniform 4-element array of lowp sampler2D)
|
||||
0:175 add (temp highp int)
|
||||
0:175 'sIndex' (uniform highp int)
|
||||
0:175 Constant:
|
||||
@ -1325,19 +1325,19 @@ ERROR: node is still EOpNull!
|
||||
0:179 'sIndex' (uniform highp int)
|
||||
0:179 Constant:
|
||||
0:179 2 (const int)
|
||||
0:180 textureGatherOffset (global highp 4-component vector of float)
|
||||
0:180 direct index (temp highp sampler2D)
|
||||
0:180 'sArray' (uniform 4-element array of highp sampler2D)
|
||||
0:180 textureGatherOffset (global lowp 4-component vector of float)
|
||||
0:180 direct index (temp lowp sampler2D)
|
||||
0:180 'sArray' (uniform 4-element array of lowp sampler2D)
|
||||
0:180 Constant:
|
||||
0:180 0 (const int)
|
||||
0:180 Constant:
|
||||
0:180 0.100000
|
||||
0:180 0.100000
|
||||
0:180 Convert float to int (temp highp 2-component vector of int)
|
||||
0:180 Convert float to int (temp lowp 2-component vector of int)
|
||||
0:180 'inf' (in highp 2-component vector of float)
|
||||
0:181 textureGatherOffsets (global highp 4-component vector of float)
|
||||
0:181 direct index (temp highp sampler2D)
|
||||
0:181 'sArray' (uniform 4-element array of highp sampler2D)
|
||||
0:181 textureGatherOffsets (global lowp 4-component vector of float)
|
||||
0:181 direct index (temp lowp sampler2D)
|
||||
0:181 'sArray' (uniform 4-element array of lowp sampler2D)
|
||||
0:181 Constant:
|
||||
0:181 0 (const int)
|
||||
0:181 Constant:
|
||||
@ -1352,9 +1352,9 @@ ERROR: node is still EOpNull!
|
||||
0:181 0 (const int)
|
||||
0:181 0 (const int)
|
||||
0:181 0 (const int)
|
||||
0:182 textureGatherOffsets (global highp 4-component vector of float)
|
||||
0:182 direct index (temp highp sampler2D)
|
||||
0:182 'sArray' (uniform 4-element array of highp sampler2D)
|
||||
0:182 textureGatherOffsets (global lowp 4-component vector of float)
|
||||
0:182 direct index (temp lowp sampler2D)
|
||||
0:182 'sArray' (uniform 4-element array of lowp sampler2D)
|
||||
0:182 Constant:
|
||||
0:182 0 (const int)
|
||||
0:182 Constant:
|
||||
@ -1858,7 +1858,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 'us2dms' (uniform highp usampler2DMS)
|
||||
0:? 'us2dmsa' (uniform mediump usampler2DMSArray)
|
||||
0:? 'outb' (smooth out bool)
|
||||
0:? 'outo' (smooth out highp sampler2D)
|
||||
0:? 'outo' (smooth out lowp sampler2D)
|
||||
0:? 'outa' (smooth out 4-element array of highp float)
|
||||
0:? 'outaa' (smooth out 4-element array of 2-element array of highp float)
|
||||
0:? 'outs' (smooth out structure{global highp float f})
|
||||
@ -1880,7 +1880,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 'inf' (in highp 2-component vector of float)
|
||||
0:? 'ing' (in highp 2-component vector of float)
|
||||
0:? 'offsets' (uniform 4-element array of highp 2-component vector of int)
|
||||
0:? 'sArray' (uniform 4-element array of highp sampler2D)
|
||||
0:? 'sArray' (uniform 4-element array of lowp sampler2D)
|
||||
0:? 'sIndex' (uniform highp int)
|
||||
0:? 'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)
|
||||
0:? 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
|
||||
|
||||
@ -37,7 +37,8 @@ ERROR: 0:140: 'textureQueryLod' : no matching overloaded function found
|
||||
ERROR: 0:140: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float'
|
||||
ERROR: 0:141: 'textureQueryLod' : no matching overloaded function found
|
||||
ERROR: 0:141: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float'
|
||||
ERROR: 38 compilation errors. No code generated.
|
||||
ERROR: 0:152: 'index' : value must be 0 or 1
|
||||
ERROR: 39 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 330
|
||||
@ -122,6 +123,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 'samp2Ds' (uniform sampler2DShadow)
|
||||
0:? 'precise' (global int)
|
||||
0:? 'KeyMem' (global structure{global int precise})
|
||||
0:? 'outIndex2' (layout(location=28 index=0 ) out 4-component vector of float)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
@ -211,4 +213,5 @@ ERROR: node is still EOpNull!
|
||||
0:? 'samp2Ds' (uniform sampler2DShadow)
|
||||
0:? 'precise' (global int)
|
||||
0:? 'KeyMem' (global structure{global int precise})
|
||||
0:? 'outIndex2' (layout(location=28 index=0 ) out 4-component vector of float)
|
||||
|
||||
|
||||
34
Test/baseResults/400.vert.out
Executable file
34
Test/baseResults/400.vert.out
Executable file
@ -0,0 +1,34 @@
|
||||
400.vert
|
||||
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:3: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:4: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:5: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions
|
||||
ERROR: 3 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 400
|
||||
ERROR: node is still EOpNull!
|
||||
0:7 Function Definition: main( (global void)
|
||||
0:7 Function Parameters:
|
||||
0:? Linker Objects
|
||||
0:? 'd' (in double)
|
||||
0:? 'd3' (in 3-component vector of double)
|
||||
0:? 'dm4' (in 4X4 matrix of double)
|
||||
0:? 'gl_VertexID' (gl_VertexId int VertexId)
|
||||
0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
Shader version: 400
|
||||
ERROR: node is still EOpNull!
|
||||
0:7 Function Definition: main( (global void)
|
||||
0:7 Function Parameters:
|
||||
0:? Linker Objects
|
||||
0:? 'd' (in double)
|
||||
0:? 'd3' (in 3-component vector of double)
|
||||
0:? 'dm4' (in 4X4 matrix of double)
|
||||
0:? 'gl_VertexID' (gl_VertexId int VertexId)
|
||||
0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
|
||||
|
||||
29
Test/baseResults/410.vert.out
Executable file
29
Test/baseResults/410.vert.out
Executable file
@ -0,0 +1,29 @@
|
||||
410.vert
|
||||
Warning, version 410 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
Shader version: 410
|
||||
0:? Sequence
|
||||
0:7 Function Definition: main( (global void)
|
||||
0:7 Function Parameters:
|
||||
0:? Linker Objects
|
||||
0:? 'd' (in double)
|
||||
0:? 'd3' (in 3-component vector of double)
|
||||
0:? 'dm4' (in 4X4 matrix of double)
|
||||
0:? 'gl_VertexID' (gl_VertexId int VertexId)
|
||||
0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
Shader version: 410
|
||||
0:? Sequence
|
||||
0:7 Function Definition: main( (global void)
|
||||
0:7 Function Parameters:
|
||||
0:? Linker Objects
|
||||
0:? 'd' (in double)
|
||||
0:? 'd3' (in 3-component vector of double)
|
||||
0:? 'dm4' (in 4X4 matrix of double)
|
||||
0:? 'gl_VertexID' (gl_VertexId int VertexId)
|
||||
0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
|
||||
|
||||
122
Test/baseResults/420.comp.out
Executable file
122
Test/baseResults/420.comp.out
Executable file
@ -0,0 +1,122 @@
|
||||
420.comp
|
||||
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
|
||||
ERROR: 0:3: 'gl_WorkGroupSize' : not supported for this version or the enabled extensions
|
||||
ERROR: 1 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 420
|
||||
Requested GL_ARB_compute_shader
|
||||
local_size = (2, 4, 6)
|
||||
ERROR: node is still EOpNull!
|
||||
0:11 Function Definition: main( (global void)
|
||||
0:11 Function Parameters:
|
||||
0:13 Sequence
|
||||
0:13 move second child to first child (temp 3-component vector of float)
|
||||
0:13 'sfoo' (shared 3-component vector of float)
|
||||
0:13 Constant:
|
||||
0:13 2.000000
|
||||
0:13 4.000000
|
||||
0:13 6.000000
|
||||
0:14 add second child into first child (temp 3-component vector of float)
|
||||
0:14 'sfoo' (shared 3-component vector of float)
|
||||
0:14 Convert uint to float (temp 3-component vector of float)
|
||||
0:14 add (temp 3-component vector of uint)
|
||||
0:14 add (temp 3-component vector of uint)
|
||||
0:14 add (temp 3-component vector of uint)
|
||||
0:14 add (temp 3-component vector of uint)
|
||||
0:14 Constant:
|
||||
0:14 2 (const uint)
|
||||
0:14 4 (const uint)
|
||||
0:14 6 (const uint)
|
||||
0:14 'gl_NumWorkGroups' (in 3-component vector of uint NumWorkGroups)
|
||||
0:14 'gl_WorkGroupID' (in 3-component vector of uint WorkGroupID)
|
||||
0:14 'gl_LocalInvocationID' (in 3-component vector of uint LocalInvocationID)
|
||||
0:14 'gl_GlobalInvocationID' (in 3-component vector of uint GlobalInvocationID)
|
||||
0:15 vector scale second child into first child (temp 3-component vector of float)
|
||||
0:15 'sfoo' (shared 3-component vector of float)
|
||||
0:15 Convert uint to float (temp float)
|
||||
0:15 'gl_LocalInvocationIndex' (in uint LocalInvocationIndex)
|
||||
0:16 add second child into first child (temp 3-component vector of float)
|
||||
0:16 'sfoo' (shared 3-component vector of float)
|
||||
0:16 Constant:
|
||||
0:16 66559.000000
|
||||
0:16 66559.000000
|
||||
0:16 65599.000000
|
||||
0:17 vector scale second child into first child (temp 3-component vector of float)
|
||||
0:17 'sfoo' (shared 3-component vector of float)
|
||||
0:17 Constant:
|
||||
0:17 1057.000000
|
||||
0:23 Barrier (global void)
|
||||
0:24 MemoryBarrier (global void)
|
||||
0:25 MemoryBarrierAtomicCounter (global void)
|
||||
0:26 MemoryBarrierBuffer (global void)
|
||||
0:27 MemoryBarrierImage (global void)
|
||||
0:28 MemoryBarrierShared (global void)
|
||||
0:29 GroupMemoryBarrier (global void)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)
|
||||
0:? 2 (const uint)
|
||||
0:? 4 (const uint)
|
||||
0:? 6 (const uint)
|
||||
0:? 'sfoo' (shared 3-component vector of float)
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
||||
|
||||
Shader version: 420
|
||||
Requested GL_ARB_compute_shader
|
||||
local_size = (2, 4, 6)
|
||||
ERROR: node is still EOpNull!
|
||||
0:11 Function Definition: main( (global void)
|
||||
0:11 Function Parameters:
|
||||
0:13 Sequence
|
||||
0:13 move second child to first child (temp 3-component vector of float)
|
||||
0:13 'sfoo' (shared 3-component vector of float)
|
||||
0:13 Constant:
|
||||
0:13 2.000000
|
||||
0:13 4.000000
|
||||
0:13 6.000000
|
||||
0:14 add second child into first child (temp 3-component vector of float)
|
||||
0:14 'sfoo' (shared 3-component vector of float)
|
||||
0:14 Convert uint to float (temp 3-component vector of float)
|
||||
0:14 add (temp 3-component vector of uint)
|
||||
0:14 add (temp 3-component vector of uint)
|
||||
0:14 add (temp 3-component vector of uint)
|
||||
0:14 add (temp 3-component vector of uint)
|
||||
0:14 Constant:
|
||||
0:14 2 (const uint)
|
||||
0:14 4 (const uint)
|
||||
0:14 6 (const uint)
|
||||
0:14 'gl_NumWorkGroups' (in 3-component vector of uint NumWorkGroups)
|
||||
0:14 'gl_WorkGroupID' (in 3-component vector of uint WorkGroupID)
|
||||
0:14 'gl_LocalInvocationID' (in 3-component vector of uint LocalInvocationID)
|
||||
0:14 'gl_GlobalInvocationID' (in 3-component vector of uint GlobalInvocationID)
|
||||
0:15 vector scale second child into first child (temp 3-component vector of float)
|
||||
0:15 'sfoo' (shared 3-component vector of float)
|
||||
0:15 Convert uint to float (temp float)
|
||||
0:15 'gl_LocalInvocationIndex' (in uint LocalInvocationIndex)
|
||||
0:16 add second child into first child (temp 3-component vector of float)
|
||||
0:16 'sfoo' (shared 3-component vector of float)
|
||||
0:16 Constant:
|
||||
0:16 66559.000000
|
||||
0:16 66559.000000
|
||||
0:16 65599.000000
|
||||
0:17 vector scale second child into first child (temp 3-component vector of float)
|
||||
0:17 'sfoo' (shared 3-component vector of float)
|
||||
0:17 Constant:
|
||||
0:17 1057.000000
|
||||
0:23 Barrier (global void)
|
||||
0:24 MemoryBarrier (global void)
|
||||
0:25 MemoryBarrierAtomicCounter (global void)
|
||||
0:26 MemoryBarrierBuffer (global void)
|
||||
0:27 MemoryBarrierImage (global void)
|
||||
0:28 MemoryBarrierShared (global void)
|
||||
0:29 GroupMemoryBarrier (global void)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)
|
||||
0:? 2 (const uint)
|
||||
0:? 4 (const uint)
|
||||
0:? 6 (const uint)
|
||||
0:? 'sfoo' (shared 3-component vector of float)
|
||||
|
||||
181
Test/baseResults/hlsl.array.frag.out
Executable file
181
Test/baseResults/hlsl.array.frag.out
Executable file
@ -0,0 +1,181 @@
|
||||
hlsl.array.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float)
|
||||
0:8 Function Parameters:
|
||||
0:8 'i' (in int)
|
||||
0:8 'input' (in 3-element array of 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:10 Branch: Return with expression
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 direct index (temp 4-component vector of float)
|
||||
0:10 'a' (temp 4-element array of 4-component vector of float)
|
||||
0:10 Constant:
|
||||
0:10 1 (const int)
|
||||
0:10 indirect index (temp 4-component vector of float)
|
||||
0:10 'a' (temp 4-element array of 4-component vector of float)
|
||||
0:10 'i' (in int)
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 direct index (temp 4-component vector of float)
|
||||
0:10 'input' (in 3-element array of 4-component vector of float)
|
||||
0:10 Constant:
|
||||
0:10 2 (const int)
|
||||
0:10 indirect index (temp 4-component vector of float)
|
||||
0:10 'input' (in 3-element array of 4-component vector of float)
|
||||
0:10 'i' (in int)
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 direct index (temp 4-component vector of float)
|
||||
0:10 'b' (temp 10-element array of 4-component vector of float)
|
||||
0:10 Constant:
|
||||
0:10 5 (const int)
|
||||
0:10 indirect index (temp 4-component vector of float)
|
||||
0:10 'b' (temp 10-element array of 4-component vector of float)
|
||||
0:10 'i' (in int)
|
||||
0:10 indirect index (temp 4-component vector of float)
|
||||
0:10 m: direct index for structure (temp 7-element array of 4-component vector of float)
|
||||
0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m})
|
||||
0:10 's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m})
|
||||
0:10 'i' (in int)
|
||||
0:10 Constant:
|
||||
0:10 0 (const int)
|
||||
0:10 'i' (in int)
|
||||
0:? Linker Objects
|
||||
0:? 'a' (temp 4-element array of 4-component vector of float)
|
||||
0:? 's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m})
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float)
|
||||
0:8 Function Parameters:
|
||||
0:8 'i' (in int)
|
||||
0:8 'input' (in 3-element array of 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:10 Branch: Return with expression
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 direct index (temp 4-component vector of float)
|
||||
0:10 'a' (temp 4-element array of 4-component vector of float)
|
||||
0:10 Constant:
|
||||
0:10 1 (const int)
|
||||
0:10 indirect index (temp 4-component vector of float)
|
||||
0:10 'a' (temp 4-element array of 4-component vector of float)
|
||||
0:10 'i' (in int)
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 direct index (temp 4-component vector of float)
|
||||
0:10 'input' (in 3-element array of 4-component vector of float)
|
||||
0:10 Constant:
|
||||
0:10 2 (const int)
|
||||
0:10 indirect index (temp 4-component vector of float)
|
||||
0:10 'input' (in 3-element array of 4-component vector of float)
|
||||
0:10 'i' (in int)
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 direct index (temp 4-component vector of float)
|
||||
0:10 'b' (temp 10-element array of 4-component vector of float)
|
||||
0:10 Constant:
|
||||
0:10 5 (const int)
|
||||
0:10 indirect index (temp 4-component vector of float)
|
||||
0:10 'b' (temp 10-element array of 4-component vector of float)
|
||||
0:10 'i' (in int)
|
||||
0:10 indirect index (temp 4-component vector of float)
|
||||
0:10 m: direct index for structure (temp 7-element array of 4-component vector of float)
|
||||
0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m})
|
||||
0:10 's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m})
|
||||
0:10 'i' (in int)
|
||||
0:10 Constant:
|
||||
0:10 0 (const int)
|
||||
0:10 'i' (in int)
|
||||
0:? Linker Objects
|
||||
0:? 'a' (temp 4-element array of 4-component vector of float)
|
||||
0:? 's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m})
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 63
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 19 27
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 12 "a"
|
||||
Name 19 "i"
|
||||
Name 27 "input"
|
||||
Name 40 "b"
|
||||
Name 50 ""
|
||||
MemberName 50 0 "m"
|
||||
Name 54 "s"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypeInt 32 0
|
||||
9: 8(int) Constant 4
|
||||
10: TypeArray 7(fvec4) 9
|
||||
11: TypePointer Function 10
|
||||
13: TypeInt 32 1
|
||||
14: 13(int) Constant 1
|
||||
15: TypePointer Function 7(fvec4)
|
||||
18: TypePointer Input 13(int)
|
||||
19(i): 18(ptr) Variable Input
|
||||
24: 8(int) Constant 3
|
||||
25: TypeArray 7(fvec4) 24
|
||||
26: TypePointer Input 25
|
||||
27(input): 26(ptr) Variable Input
|
||||
28: 13(int) Constant 2
|
||||
29: TypePointer Input 7(fvec4)
|
||||
37: 8(int) Constant 10
|
||||
38: TypeArray 7(fvec4) 37
|
||||
39: TypePointer Function 38
|
||||
41: 13(int) Constant 5
|
||||
48: 8(int) Constant 7
|
||||
49: TypeArray 7(fvec4) 48
|
||||
50: TypeStruct 49
|
||||
51: 8(int) Constant 11
|
||||
52: TypeArray 50(struct) 51
|
||||
53: TypePointer Function 52
|
||||
56: 13(int) Constant 0
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
12(a): 11(ptr) Variable Function
|
||||
40(b): 39(ptr) Variable Function
|
||||
54(s): 53(ptr) Variable Function
|
||||
16: 15(ptr) AccessChain 12(a) 14
|
||||
17: 7(fvec4) Load 16
|
||||
20: 13(int) Load 19(i)
|
||||
21: 15(ptr) AccessChain 12(a) 20
|
||||
22: 7(fvec4) Load 21
|
||||
23: 7(fvec4) FAdd 17 22
|
||||
30: 29(ptr) AccessChain 27(input) 28
|
||||
31: 7(fvec4) Load 30
|
||||
32: 13(int) Load 19(i)
|
||||
33: 29(ptr) AccessChain 27(input) 32
|
||||
34: 7(fvec4) Load 33
|
||||
35: 7(fvec4) FAdd 31 34
|
||||
36: 7(fvec4) FAdd 23 35
|
||||
42: 15(ptr) AccessChain 40(b) 41
|
||||
43: 7(fvec4) Load 42
|
||||
44: 13(int) Load 19(i)
|
||||
45: 15(ptr) AccessChain 40(b) 44
|
||||
46: 7(fvec4) Load 45
|
||||
47: 7(fvec4) FAdd 43 46
|
||||
55: 13(int) Load 19(i)
|
||||
57: 13(int) Load 19(i)
|
||||
58: 15(ptr) AccessChain 54(s) 55 56 57
|
||||
59: 7(fvec4) Load 58
|
||||
60: 7(fvec4) FAdd 47 59
|
||||
61: 7(fvec4) FAdd 36 60
|
||||
ReturnValue 61
|
||||
FunctionEnd
|
||||
@ -1,70 +1,70 @@
|
||||
hlsl.assoc.frag
|
||||
Shader version: 100
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float)
|
||||
0:8 Function Parameters:
|
||||
0:8 'a1' (temp 4-component vector of float)
|
||||
0:8 'a2' (temp 4-component vector of float)
|
||||
0:8 'a3' (temp 4-component vector of float)
|
||||
0:8 'a4' (temp 4-component vector of float)
|
||||
0:8 'a5' (temp 4-component vector of float)
|
||||
0:8 'a1' (in 4-component vector of float)
|
||||
0:8 'a2' (in 4-component vector of float)
|
||||
0:8 'a3' (in 4-component vector of float)
|
||||
0:8 'a4' (in 4-component vector of float)
|
||||
0:8 'a5' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:9 move second child to first child (temp 4-component vector of float)
|
||||
0:9 'a1' (temp 4-component vector of float)
|
||||
0:9 'a1' (in 4-component vector of float)
|
||||
0:9 move second child to first child (temp 4-component vector of float)
|
||||
0:9 'a2' (temp 4-component vector of float)
|
||||
0:9 'a2' (in 4-component vector of float)
|
||||
0:9 move second child to first child (temp 4-component vector of float)
|
||||
0:9 'a3' (temp 4-component vector of float)
|
||||
0:9 'a3' (in 4-component vector of float)
|
||||
0:9 move second child to first child (temp 4-component vector of float)
|
||||
0:9 'a4' (temp 4-component vector of float)
|
||||
0:9 'a5' (temp 4-component vector of float)
|
||||
0:9 'a4' (in 4-component vector of float)
|
||||
0:9 'a5' (in 4-component vector of float)
|
||||
0:10 Branch: Return with expression
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 'a1' (temp 4-component vector of float)
|
||||
0:10 'a2' (temp 4-component vector of float)
|
||||
0:10 'a1' (in 4-component vector of float)
|
||||
0:10 'a2' (in 4-component vector of float)
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 'a3' (temp 4-component vector of float)
|
||||
0:10 'a4' (temp 4-component vector of float)
|
||||
0:10 'a5' (temp 4-component vector of float)
|
||||
0:10 'a3' (in 4-component vector of float)
|
||||
0:10 'a4' (in 4-component vector of float)
|
||||
0:10 'a5' (in 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 100
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float)
|
||||
0:8 Function Parameters:
|
||||
0:8 'a1' (temp 4-component vector of float)
|
||||
0:8 'a2' (temp 4-component vector of float)
|
||||
0:8 'a3' (temp 4-component vector of float)
|
||||
0:8 'a4' (temp 4-component vector of float)
|
||||
0:8 'a5' (temp 4-component vector of float)
|
||||
0:8 'a1' (in 4-component vector of float)
|
||||
0:8 'a2' (in 4-component vector of float)
|
||||
0:8 'a3' (in 4-component vector of float)
|
||||
0:8 'a4' (in 4-component vector of float)
|
||||
0:8 'a5' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:9 move second child to first child (temp 4-component vector of float)
|
||||
0:9 'a1' (temp 4-component vector of float)
|
||||
0:9 'a1' (in 4-component vector of float)
|
||||
0:9 move second child to first child (temp 4-component vector of float)
|
||||
0:9 'a2' (temp 4-component vector of float)
|
||||
0:9 'a2' (in 4-component vector of float)
|
||||
0:9 move second child to first child (temp 4-component vector of float)
|
||||
0:9 'a3' (temp 4-component vector of float)
|
||||
0:9 'a3' (in 4-component vector of float)
|
||||
0:9 move second child to first child (temp 4-component vector of float)
|
||||
0:9 'a4' (temp 4-component vector of float)
|
||||
0:9 'a5' (temp 4-component vector of float)
|
||||
0:9 'a4' (in 4-component vector of float)
|
||||
0:9 'a5' (in 4-component vector of float)
|
||||
0:10 Branch: Return with expression
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 'a1' (temp 4-component vector of float)
|
||||
0:10 'a2' (temp 4-component vector of float)
|
||||
0:10 'a1' (in 4-component vector of float)
|
||||
0:10 'a2' (in 4-component vector of float)
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 'a3' (temp 4-component vector of float)
|
||||
0:10 'a4' (temp 4-component vector of float)
|
||||
0:10 'a5' (temp 4-component vector of float)
|
||||
0:10 'a3' (in 4-component vector of float)
|
||||
0:10 'a4' (in 4-component vector of float)
|
||||
0:10 'a5' (in 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
|
||||
// Module Version 10000
|
||||
@ -74,9 +74,9 @@ gl_FragCoord origin is upper left
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction"
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 9 10 11 12 13
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 100
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 9 "a1"
|
||||
Name 10 "a2"
|
||||
@ -87,14 +87,14 @@ gl_FragCoord origin is upper left
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Function 7(fvec4)
|
||||
8: TypePointer Input 7(fvec4)
|
||||
9(a1): 8(ptr) Variable Input
|
||||
10(a2): 8(ptr) Variable Input
|
||||
11(a3): 8(ptr) Variable Input
|
||||
12(a4): 8(ptr) Variable Input
|
||||
13(a5): 8(ptr) Variable Input
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
9(a1): 8(ptr) Variable Function
|
||||
10(a2): 8(ptr) Variable Function
|
||||
11(a3): 8(ptr) Variable Function
|
||||
12(a4): 8(ptr) Variable Function
|
||||
13(a5): 8(ptr) Variable Function
|
||||
14: 7(fvec4) Load 13(a5)
|
||||
Store 12(a4) 14
|
||||
Store 11(a3) 14
|
||||
|
||||
57
Test/baseResults/hlsl.attribute.frag.out
Executable file
57
Test/baseResults/hlsl.attribute.frag.out
Executable file
@ -0,0 +1,57 @@
|
||||
hlsl.attribute.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:14 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:11 Test condition and select (temp void)
|
||||
0:11 Condition
|
||||
0:11 Constant:
|
||||
0:11 0 (const int)
|
||||
0:11 true case is null
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:14 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:11 Test condition and select (temp void)
|
||||
0:11 Condition
|
||||
0:11 Constant:
|
||||
0:11 0 (const int)
|
||||
0:11 true case is null
|
||||
0:? Linker Objects
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 10
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction"
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: 6(int) Constant 0
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
SelectionMerge 9 None
|
||||
BranchConditional 7 8 9
|
||||
8: Label
|
||||
Branch 9
|
||||
9: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
86
Test/baseResults/hlsl.cast.frag.out
Executable file
86
Test/baseResults/hlsl.cast.frag.out
Executable file
@ -0,0 +1,86 @@
|
||||
hlsl.cast.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:3 Branch: Return with expression
|
||||
0:3 add (temp 4-component vector of float)
|
||||
0:3 add (temp 4-component vector of float)
|
||||
0:3 Construct vec4 (temp 4-component vector of float)
|
||||
0:3 'input' (in 4-component vector of float)
|
||||
0:3 Convert int to float (temp 4-component vector of float)
|
||||
0:3 Convert float to int (temp 4-component vector of int)
|
||||
0:3 'input' (in 4-component vector of float)
|
||||
0:3 Constant:
|
||||
0:3 1.198000
|
||||
0:3 1.198000
|
||||
0:3 1.198000
|
||||
0:3 1.198000
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:3 Branch: Return with expression
|
||||
0:3 add (temp 4-component vector of float)
|
||||
0:3 add (temp 4-component vector of float)
|
||||
0:3 Construct vec4 (temp 4-component vector of float)
|
||||
0:3 'input' (in 4-component vector of float)
|
||||
0:3 Convert int to float (temp 4-component vector of float)
|
||||
0:3 Convert float to int (temp 4-component vector of int)
|
||||
0:3 'input' (in 4-component vector of float)
|
||||
0:3 Constant:
|
||||
0:3 1.198000
|
||||
0:3 1.198000
|
||||
0:3 1.198000
|
||||
0:3 1.198000
|
||||
0:? Linker Objects
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 26
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 9
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 9 "input"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Input 7(fvec4)
|
||||
9(input): 8(ptr) Variable Input
|
||||
17: TypeInt 32 1
|
||||
18: TypeVector 17(int) 4
|
||||
22: 6(float) Constant 1067014160
|
||||
23: 7(fvec4) ConstantComposite 22 22 22 22
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
10: 7(fvec4) Load 9(input)
|
||||
11: 6(float) CompositeExtract 10 0
|
||||
12: 6(float) CompositeExtract 10 1
|
||||
13: 6(float) CompositeExtract 10 2
|
||||
14: 6(float) CompositeExtract 10 3
|
||||
15: 7(fvec4) CompositeConstruct 11 12 13 14
|
||||
16: 7(fvec4) Load 9(input)
|
||||
19: 18(ivec4) ConvertFToS 16
|
||||
20: 7(fvec4) ConvertSToF 19
|
||||
21: 7(fvec4) FAdd 15 20
|
||||
24: 7(fvec4) FAdd 21 23
|
||||
ReturnValue 24
|
||||
FunctionEnd
|
||||
116
Test/baseResults/hlsl.doLoop.frag.out
Executable file
116
Test/baseResults/hlsl.doLoop.frag.out
Executable file
@ -0,0 +1,116 @@
|
||||
hlsl.doLoop.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:7 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:3 Loop with condition not tested first
|
||||
0:3 Loop Condition
|
||||
0:3 Constant:
|
||||
0:3 false (const bool)
|
||||
0:3 No loop body
|
||||
0:4 Loop with condition not tested first
|
||||
0:4 Loop Condition
|
||||
0:4 Constant:
|
||||
0:4 false (const bool)
|
||||
0:4 No loop body
|
||||
0:5 Loop with condition not tested first
|
||||
0:5 Loop Condition
|
||||
0:5 Compare Equal (temp bool)
|
||||
0:5 'input' (in 4-component vector of float)
|
||||
0:5 'input' (in 4-component vector of float)
|
||||
0:5 Loop Body
|
||||
0:5 Branch: Return with expression
|
||||
0:5 'input' (in 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:7 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:3 Loop with condition not tested first
|
||||
0:3 Loop Condition
|
||||
0:3 Constant:
|
||||
0:3 false (const bool)
|
||||
0:3 No loop body
|
||||
0:4 Loop with condition not tested first
|
||||
0:4 Loop Condition
|
||||
0:4 Constant:
|
||||
0:4 false (const bool)
|
||||
0:4 No loop body
|
||||
0:5 Loop with condition not tested first
|
||||
0:5 Loop Condition
|
||||
0:5 Compare Equal (temp bool)
|
||||
0:5 'input' (in 4-component vector of float)
|
||||
0:5 'input' (in 4-component vector of float)
|
||||
0:5 Loop Body
|
||||
0:5 Branch: Return with expression
|
||||
0:5 'input' (in 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 31
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 23
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 23 "input"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
10: TypeBool
|
||||
11: 10(bool) ConstantFalse
|
||||
20: TypeFloat 32
|
||||
21: TypeVector 20(float) 4
|
||||
22: TypePointer Input 21(fvec4)
|
||||
23(input): 22(ptr) Variable Input
|
||||
28: TypeVector 10(bool) 4
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
Branch 6
|
||||
6: Label
|
||||
LoopMerge 8 9 None
|
||||
Branch 7
|
||||
7: Label
|
||||
Branch 9
|
||||
9: Label
|
||||
BranchConditional 11 6 8
|
||||
8: Label
|
||||
Branch 12
|
||||
12: Label
|
||||
LoopMerge 14 15 None
|
||||
Branch 13
|
||||
13: Label
|
||||
Branch 15
|
||||
15: Label
|
||||
BranchConditional 11 12 14
|
||||
14: Label
|
||||
Branch 16
|
||||
16: Label
|
||||
LoopMerge 18 19 None
|
||||
Branch 17
|
||||
17: Label
|
||||
24: 21(fvec4) Load 23(input)
|
||||
ReturnValue 24
|
||||
19: Label
|
||||
26: 21(fvec4) Load 23(input)
|
||||
27: 21(fvec4) Load 23(input)
|
||||
29: 28(bvec4) FOrdEqual 26 27
|
||||
30: 10(bool) All 29
|
||||
BranchConditional 30 16 18
|
||||
18: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
@ -1,5 +1,5 @@
|
||||
hlsl.float1.frag
|
||||
Shader version: 100
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:1 move second child to first child (temp 1-component vector of float)
|
||||
@ -12,8 +12,8 @@ gl_FragCoord origin is upper left
|
||||
0:2 2.000000
|
||||
0:8 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
|
||||
0:5 Function Parameters:
|
||||
0:5 'inFloat1' (temp 1-component vector of float)
|
||||
0:5 'inScalar' (temp float)
|
||||
0:5 'inFloat1' (in 1-component vector of float)
|
||||
0:5 'inScalar' (in float)
|
||||
0:? Sequence
|
||||
0:6 Branch: Return with expression
|
||||
0:6 add (temp 1-component vector of float)
|
||||
@ -21,8 +21,8 @@ gl_FragCoord origin is upper left
|
||||
0:6 'f1' (temp 1-component vector of float)
|
||||
0:6 'scalar' (temp float)
|
||||
0:6 vector-scale (temp 1-component vector of float)
|
||||
0:6 'inFloat1' (temp 1-component vector of float)
|
||||
0:6 'inScalar' (temp float)
|
||||
0:6 'inFloat1' (in 1-component vector of float)
|
||||
0:6 'inScalar' (in float)
|
||||
0:? Linker Objects
|
||||
0:? 'f1' (temp 1-component vector of float)
|
||||
0:? 'scalar' (temp float)
|
||||
@ -31,7 +31,7 @@ gl_FragCoord origin is upper left
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 100
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:1 move second child to first child (temp 1-component vector of float)
|
||||
@ -44,8 +44,8 @@ gl_FragCoord origin is upper left
|
||||
0:2 2.000000
|
||||
0:8 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
|
||||
0:5 Function Parameters:
|
||||
0:5 'inFloat1' (temp 1-component vector of float)
|
||||
0:5 'inScalar' (temp float)
|
||||
0:5 'inFloat1' (in 1-component vector of float)
|
||||
0:5 'inScalar' (in float)
|
||||
0:? Sequence
|
||||
0:6 Branch: Return with expression
|
||||
0:6 add (temp 1-component vector of float)
|
||||
@ -53,8 +53,8 @@ gl_FragCoord origin is upper left
|
||||
0:6 'f1' (temp 1-component vector of float)
|
||||
0:6 'scalar' (temp float)
|
||||
0:6 vector-scale (temp 1-component vector of float)
|
||||
0:6 'inFloat1' (temp 1-component vector of float)
|
||||
0:6 'inScalar' (temp float)
|
||||
0:6 'inFloat1' (in 1-component vector of float)
|
||||
0:6 'inScalar' (in float)
|
||||
0:? Linker Objects
|
||||
0:? 'f1' (temp 1-component vector of float)
|
||||
0:? 'scalar' (temp float)
|
||||
@ -68,7 +68,7 @@ gl_FragCoord origin is upper left
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction"
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 100
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 11 "ShaderFunction(vf1;f1;"
|
||||
Name 9 "inFloat1"
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
hlsl.float4.frag
|
||||
Shader version: 100
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:1 move second child to first child (temp 4-component vector of float)
|
||||
@ -9,22 +9,26 @@ gl_FragCoord origin is upper left
|
||||
0:? 0.500000
|
||||
0:? 0.000000
|
||||
0:? 1.000000
|
||||
0:7 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:4 Function Parameters:
|
||||
0:4 'input' (temp 4-component vector of float)
|
||||
0:12 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:9 Function Parameters:
|
||||
0:9 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:5 Branch: Return with expression
|
||||
0:5 component-wise multiply (temp 4-component vector of float)
|
||||
0:5 'input' (temp 4-component vector of float)
|
||||
0:5 'AmbientColor' (temp 4-component vector of float)
|
||||
0:10 Branch: Return with expression
|
||||
0:10 component-wise multiply (temp 4-component vector of float)
|
||||
0:10 'input' (in 4-component vector of float)
|
||||
0:10 'AmbientColor' (temp 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'AmbientColor' (temp 4-component vector of float)
|
||||
0:? 'ff1' (temp bool Face)
|
||||
0:? 'ff2' (temp 4-component vector of float)
|
||||
0:? 'ff3' (temp 4-component vector of float)
|
||||
0:? 'ff4' (temp 4-component vector of float FragCoord)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 100
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:1 move second child to first child (temp 4-component vector of float)
|
||||
@ -34,37 +38,49 @@ gl_FragCoord origin is upper left
|
||||
0:? 0.500000
|
||||
0:? 0.000000
|
||||
0:? 1.000000
|
||||
0:7 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:4 Function Parameters:
|
||||
0:4 'input' (temp 4-component vector of float)
|
||||
0:12 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:9 Function Parameters:
|
||||
0:9 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:5 Branch: Return with expression
|
||||
0:5 component-wise multiply (temp 4-component vector of float)
|
||||
0:5 'input' (temp 4-component vector of float)
|
||||
0:5 'AmbientColor' (temp 4-component vector of float)
|
||||
0:10 Branch: Return with expression
|
||||
0:10 component-wise multiply (temp 4-component vector of float)
|
||||
0:10 'input' (in 4-component vector of float)
|
||||
0:10 'AmbientColor' (temp 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'AmbientColor' (temp 4-component vector of float)
|
||||
0:? 'ff1' (temp bool Face)
|
||||
0:? 'ff2' (temp 4-component vector of float)
|
||||
0:? 'ff3' (temp 4-component vector of float)
|
||||
0:? 'ff4' (temp 4-component vector of float FragCoord)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 19
|
||||
// Id's are bound by 25
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction"
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 100
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 11 "ShaderFunction(vf4;"
|
||||
Name 10 "input"
|
||||
Name 14 "AmbientColor"
|
||||
Name 21 "ff1"
|
||||
Name 22 "ff2"
|
||||
Name 23 "ff3"
|
||||
Name 24 "ff4"
|
||||
Decorate 21(ff1) BuiltIn FrontFacing
|
||||
Decorate 24(ff4) BuiltIn FragCoord
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Function 7(fvec4)
|
||||
9: TypeFunction 7(fvec4) 8(ptr)
|
||||
19: TypeBool
|
||||
20: TypePointer Function 19(bool)
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
FunctionEnd
|
||||
@ -72,6 +88,10 @@ gl_FragCoord origin is upper left
|
||||
10(input): 8(ptr) FunctionParameter
|
||||
12: Label
|
||||
14(AmbientColor): 8(ptr) Variable Function
|
||||
21(ff1): 20(ptr) Variable Function
|
||||
22(ff2): 8(ptr) Variable Function
|
||||
23(ff3): 8(ptr) Variable Function
|
||||
24(ff4): 8(ptr) Variable Function
|
||||
13: 7(fvec4) Load 10(input)
|
||||
15: 7(fvec4) Load 14(AmbientColor)
|
||||
16: 7(fvec4) FMul 13 15
|
||||
|
||||
220
Test/baseResults/hlsl.forLoop.frag.out
Executable file
220
Test/baseResults/hlsl.forLoop.frag.out
Executable file
@ -0,0 +1,220 @@
|
||||
hlsl.forLoop.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:9 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:? Sequence
|
||||
0:3 Loop with condition tested first
|
||||
0:3 No loop condition
|
||||
0:3 No loop body
|
||||
0:4 Sequence
|
||||
0:4 Pre-Increment (temp 4-component vector of float)
|
||||
0:4 'input' (in 4-component vector of float)
|
||||
0:4 Loop with condition tested first
|
||||
0:4 No loop condition
|
||||
0:4 No loop body
|
||||
0:? Sequence
|
||||
0:5 Loop with condition tested first
|
||||
0:5 Loop Condition
|
||||
0:5 Compare Not Equal (temp bool)
|
||||
0:5 'input' (in 4-component vector of float)
|
||||
0:5 'input' (in 4-component vector of float)
|
||||
0:5 No loop body
|
||||
0:? Sequence
|
||||
0:6 Loop with condition tested first
|
||||
0:6 Loop Condition
|
||||
0:6 Compare Not Equal (temp bool)
|
||||
0:6 'input' (in 4-component vector of float)
|
||||
0:6 'input' (in 4-component vector of float)
|
||||
0:6 Loop Body
|
||||
0:? Sequence
|
||||
0:6 Branch: Return with expression
|
||||
0:6 Negate value (temp 4-component vector of float)
|
||||
0:6 'input' (in 4-component vector of float)
|
||||
0:7 Sequence
|
||||
0:7 Pre-Decrement (temp 4-component vector of float)
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:7 Loop with condition tested first
|
||||
0:7 Loop Condition
|
||||
0:7 Compare Not Equal (temp bool)
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:7 Loop Body
|
||||
0:? Sequence
|
||||
0:7 Branch: Return with expression
|
||||
0:7 Negate value (temp 4-component vector of float)
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:7 Loop Terminal Expression
|
||||
0:7 add second child into first child (temp 4-component vector of float)
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:7 Constant:
|
||||
0:7 2.000000
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:9 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:? Sequence
|
||||
0:3 Loop with condition tested first
|
||||
0:3 No loop condition
|
||||
0:3 No loop body
|
||||
0:4 Sequence
|
||||
0:4 Pre-Increment (temp 4-component vector of float)
|
||||
0:4 'input' (in 4-component vector of float)
|
||||
0:4 Loop with condition tested first
|
||||
0:4 No loop condition
|
||||
0:4 No loop body
|
||||
0:? Sequence
|
||||
0:5 Loop with condition tested first
|
||||
0:5 Loop Condition
|
||||
0:5 Compare Not Equal (temp bool)
|
||||
0:5 'input' (in 4-component vector of float)
|
||||
0:5 'input' (in 4-component vector of float)
|
||||
0:5 No loop body
|
||||
0:? Sequence
|
||||
0:6 Loop with condition tested first
|
||||
0:6 Loop Condition
|
||||
0:6 Compare Not Equal (temp bool)
|
||||
0:6 'input' (in 4-component vector of float)
|
||||
0:6 'input' (in 4-component vector of float)
|
||||
0:6 Loop Body
|
||||
0:? Sequence
|
||||
0:6 Branch: Return with expression
|
||||
0:6 Negate value (temp 4-component vector of float)
|
||||
0:6 'input' (in 4-component vector of float)
|
||||
0:7 Sequence
|
||||
0:7 Pre-Decrement (temp 4-component vector of float)
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:7 Loop with condition tested first
|
||||
0:7 Loop Condition
|
||||
0:7 Compare Not Equal (temp bool)
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:7 Loop Body
|
||||
0:? Sequence
|
||||
0:7 Branch: Return with expression
|
||||
0:7 Negate value (temp 4-component vector of float)
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:7 Loop Terminal Expression
|
||||
0:7 add second child into first child (temp 4-component vector of float)
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:7 Constant:
|
||||
0:7 2.000000
|
||||
0:? Linker Objects
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 64
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 13
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 13 "input"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
10: TypeFloat 32
|
||||
11: TypeVector 10(float) 4
|
||||
12: TypePointer Input 11(fvec4)
|
||||
13(input): 12(ptr) Variable Input
|
||||
15: 10(float) Constant 1065353216
|
||||
29: TypeBool
|
||||
30: TypeVector 29(bool) 4
|
||||
60: 10(float) Constant 1073741824
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
Branch 6
|
||||
6: Label
|
||||
LoopMerge 8 9 None
|
||||
Branch 7
|
||||
7: Label
|
||||
Branch 9
|
||||
9: Label
|
||||
Branch 6
|
||||
8: Label
|
||||
14: 11(fvec4) Load 13(input)
|
||||
16: 11(fvec4) CompositeConstruct 15 15 15 15
|
||||
17: 11(fvec4) FAdd 14 16
|
||||
Store 13(input) 17
|
||||
Branch 18
|
||||
18: Label
|
||||
LoopMerge 20 21 None
|
||||
Branch 19
|
||||
19: Label
|
||||
Branch 21
|
||||
21: Label
|
||||
Branch 18
|
||||
20: Label
|
||||
Branch 22
|
||||
22: Label
|
||||
LoopMerge 24 25 None
|
||||
Branch 26
|
||||
26: Label
|
||||
27: 11(fvec4) Load 13(input)
|
||||
28: 11(fvec4) Load 13(input)
|
||||
31: 30(bvec4) FOrdNotEqual 27 28
|
||||
32: 29(bool) Any 31
|
||||
BranchConditional 32 23 24
|
||||
23: Label
|
||||
Branch 25
|
||||
25: Label
|
||||
Branch 22
|
||||
24: Label
|
||||
Branch 33
|
||||
33: Label
|
||||
LoopMerge 35 36 None
|
||||
Branch 37
|
||||
37: Label
|
||||
38: 11(fvec4) Load 13(input)
|
||||
39: 11(fvec4) Load 13(input)
|
||||
40: 30(bvec4) FOrdNotEqual 38 39
|
||||
41: 29(bool) Any 40
|
||||
BranchConditional 41 34 35
|
||||
34: Label
|
||||
42: 11(fvec4) Load 13(input)
|
||||
43: 11(fvec4) FNegate 42
|
||||
ReturnValue 43
|
||||
36: Label
|
||||
Branch 33
|
||||
35: Label
|
||||
45: 11(fvec4) Load 13(input)
|
||||
46: 11(fvec4) CompositeConstruct 15 15 15 15
|
||||
47: 11(fvec4) FSub 45 46
|
||||
Store 13(input) 47
|
||||
Branch 48
|
||||
48: Label
|
||||
LoopMerge 50 51 None
|
||||
Branch 52
|
||||
52: Label
|
||||
53: 11(fvec4) Load 13(input)
|
||||
54: 11(fvec4) Load 13(input)
|
||||
55: 30(bvec4) FOrdNotEqual 53 54
|
||||
56: 29(bool) Any 55
|
||||
BranchConditional 56 49 50
|
||||
49: Label
|
||||
57: 11(fvec4) Load 13(input)
|
||||
58: 11(fvec4) FNegate 57
|
||||
ReturnValue 58
|
||||
51: Label
|
||||
61: 11(fvec4) Load 13(input)
|
||||
62: 11(fvec4) CompositeConstruct 60 60 60 60
|
||||
63: 11(fvec4) FAdd 61 62
|
||||
Store 13(input) 63
|
||||
Branch 48
|
||||
50: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
@ -1,5 +1,5 @@
|
||||
hlsl.frag
|
||||
Shader version: 100
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:1 move second child to first child (temp 4-component vector of float)
|
||||
@ -15,47 +15,47 @@ gl_FragCoord origin is upper left
|
||||
0:2 0.100000
|
||||
0:13 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:5 Function Parameters:
|
||||
0:5 'input' (temp 4-component vector of float)
|
||||
0:5 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 Branch: Return with expression
|
||||
0:6 add (temp 4-component vector of float)
|
||||
0:6 vector-scale (temp 4-component vector of float)
|
||||
0:6 'input' (temp 4-component vector of float)
|
||||
0:6 'input' (in 4-component vector of float)
|
||||
0:6 'AmbientIntensity' (temp float)
|
||||
0:6 'AmbientColor' (temp 4-component vector of float)
|
||||
0:7 Branch: Return with expression
|
||||
0:7 add (temp 4-component vector of float)
|
||||
0:7 component-wise multiply (temp 4-component vector of float)
|
||||
0:7 'input' (temp 4-component vector of float)
|
||||
0:7 'input' (temp 4-component vector of float)
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:7 component-wise multiply (temp 4-component vector of float)
|
||||
0:7 'input' (temp 4-component vector of float)
|
||||
0:7 'input' (temp 4-component vector of float)
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:8 Branch: Return with expression
|
||||
0:8 add (temp 4-component vector of float)
|
||||
0:8 add (temp 4-component vector of float)
|
||||
0:8 'input' (temp 4-component vector of float)
|
||||
0:8 'input' (in 4-component vector of float)
|
||||
0:8 component-wise multiply (temp 4-component vector of float)
|
||||
0:8 'input' (temp 4-component vector of float)
|
||||
0:8 'input' (temp 4-component vector of float)
|
||||
0:8 'input' (temp 4-component vector of float)
|
||||
0:8 'input' (in 4-component vector of float)
|
||||
0:8 'input' (in 4-component vector of float)
|
||||
0:8 'input' (in 4-component vector of float)
|
||||
0:9 Branch: Return with expression
|
||||
0:9 component-wise multiply (temp 4-component vector of float)
|
||||
0:9 Pre-Increment (temp 4-component vector of float)
|
||||
0:9 'input' (temp 4-component vector of float)
|
||||
0:9 'input' (in 4-component vector of float)
|
||||
0:9 Negate value (temp 4-component vector of float)
|
||||
0:9 Negate value (temp 4-component vector of float)
|
||||
0:9 Pre-Decrement (temp 4-component vector of float)
|
||||
0:9 'input' (temp 4-component vector of float)
|
||||
0:9 'input' (in 4-component vector of float)
|
||||
0:10 Branch: Return with expression
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 Post-Increment (temp 4-component vector of float)
|
||||
0:10 'input' (temp 4-component vector of float)
|
||||
0:10 'input' (in 4-component vector of float)
|
||||
0:10 Pre-Increment (temp 4-component vector of float)
|
||||
0:10 'input' (temp 4-component vector of float)
|
||||
0:10 'input' (in 4-component vector of float)
|
||||
0:11 Branch: Return with expression
|
||||
0:11 sine (global 4-component vector of float)
|
||||
0:11 'input' (temp 4-component vector of float)
|
||||
0:11 'input' (in 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'AmbientColor' (temp 4-component vector of float)
|
||||
0:? 'AmbientIntensity' (temp float)
|
||||
@ -64,7 +64,7 @@ gl_FragCoord origin is upper left
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 100
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:1 move second child to first child (temp 4-component vector of float)
|
||||
@ -80,81 +80,82 @@ gl_FragCoord origin is upper left
|
||||
0:2 0.100000
|
||||
0:13 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:5 Function Parameters:
|
||||
0:5 'input' (temp 4-component vector of float)
|
||||
0:5 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 Branch: Return with expression
|
||||
0:6 add (temp 4-component vector of float)
|
||||
0:6 vector-scale (temp 4-component vector of float)
|
||||
0:6 'input' (temp 4-component vector of float)
|
||||
0:6 'input' (in 4-component vector of float)
|
||||
0:6 'AmbientIntensity' (temp float)
|
||||
0:6 'AmbientColor' (temp 4-component vector of float)
|
||||
0:7 Branch: Return with expression
|
||||
0:7 add (temp 4-component vector of float)
|
||||
0:7 component-wise multiply (temp 4-component vector of float)
|
||||
0:7 'input' (temp 4-component vector of float)
|
||||
0:7 'input' (temp 4-component vector of float)
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:7 component-wise multiply (temp 4-component vector of float)
|
||||
0:7 'input' (temp 4-component vector of float)
|
||||
0:7 'input' (temp 4-component vector of float)
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:8 Branch: Return with expression
|
||||
0:8 add (temp 4-component vector of float)
|
||||
0:8 add (temp 4-component vector of float)
|
||||
0:8 'input' (temp 4-component vector of float)
|
||||
0:8 'input' (in 4-component vector of float)
|
||||
0:8 component-wise multiply (temp 4-component vector of float)
|
||||
0:8 'input' (temp 4-component vector of float)
|
||||
0:8 'input' (temp 4-component vector of float)
|
||||
0:8 'input' (temp 4-component vector of float)
|
||||
0:8 'input' (in 4-component vector of float)
|
||||
0:8 'input' (in 4-component vector of float)
|
||||
0:8 'input' (in 4-component vector of float)
|
||||
0:9 Branch: Return with expression
|
||||
0:9 component-wise multiply (temp 4-component vector of float)
|
||||
0:9 Pre-Increment (temp 4-component vector of float)
|
||||
0:9 'input' (temp 4-component vector of float)
|
||||
0:9 'input' (in 4-component vector of float)
|
||||
0:9 Negate value (temp 4-component vector of float)
|
||||
0:9 Negate value (temp 4-component vector of float)
|
||||
0:9 Pre-Decrement (temp 4-component vector of float)
|
||||
0:9 'input' (temp 4-component vector of float)
|
||||
0:9 'input' (in 4-component vector of float)
|
||||
0:10 Branch: Return with expression
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 Post-Increment (temp 4-component vector of float)
|
||||
0:10 'input' (temp 4-component vector of float)
|
||||
0:10 'input' (in 4-component vector of float)
|
||||
0:10 Pre-Increment (temp 4-component vector of float)
|
||||
0:10 'input' (temp 4-component vector of float)
|
||||
0:10 'input' (in 4-component vector of float)
|
||||
0:11 Branch: Return with expression
|
||||
0:11 sine (global 4-component vector of float)
|
||||
0:11 'input' (temp 4-component vector of float)
|
||||
0:11 'input' (in 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'AmbientColor' (temp 4-component vector of float)
|
||||
0:? 'AmbientIntensity' (temp float)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 57
|
||||
// Id's are bound by 58
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction"
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 9
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 100
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 9 "input"
|
||||
Name 12 "AmbientIntensity"
|
||||
Name 15 "AmbientColor"
|
||||
Name 16 "AmbientColor"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Function 7(fvec4)
|
||||
8: TypePointer Input 7(fvec4)
|
||||
9(input): 8(ptr) Variable Input
|
||||
11: TypePointer Function 6(float)
|
||||
36: 6(float) Constant 1065353216
|
||||
15: TypePointer Function 7(fvec4)
|
||||
37: 6(float) Constant 1065353216
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
9(input): 8(ptr) Variable Function
|
||||
12(AmbientIntensity): 11(ptr) Variable Function
|
||||
15(AmbientColor): 8(ptr) Variable Function
|
||||
16(AmbientColor): 15(ptr) Variable Function
|
||||
10: 7(fvec4) Load 9(input)
|
||||
13: 6(float) Load 12(AmbientIntensity)
|
||||
14: 7(fvec4) VectorTimesScalar 10 13
|
||||
16: 7(fvec4) Load 15(AmbientColor)
|
||||
17: 7(fvec4) FAdd 14 16
|
||||
ReturnValue 17
|
||||
17: 7(fvec4) Load 16(AmbientColor)
|
||||
18: 7(fvec4) FAdd 14 17
|
||||
ReturnValue 18
|
||||
FunctionEnd
|
||||
|
||||
223
Test/baseResults/hlsl.if.frag.out
Executable file
223
Test/baseResults/hlsl.if.frag.out
Executable file
@ -0,0 +1,223 @@
|
||||
hlsl.if.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:3 Test condition and select (temp void)
|
||||
0:3 Condition
|
||||
0:3 Compare Equal (temp bool)
|
||||
0:3 'input' (in 4-component vector of float)
|
||||
0:3 'input' (in 4-component vector of float)
|
||||
0:3 true case
|
||||
0:4 Branch: Return with expression
|
||||
0:4 'input' (in 4-component vector of float)
|
||||
0:6 Test condition and select (temp void)
|
||||
0:6 Condition
|
||||
0:6 Compare Equal (temp bool)
|
||||
0:6 'input' (in 4-component vector of float)
|
||||
0:6 'input' (in 4-component vector of float)
|
||||
0:6 true case
|
||||
0:7 Branch: Return with expression
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:6 false case
|
||||
0:9 Branch: Return with expression
|
||||
0:9 Negate value (temp 4-component vector of float)
|
||||
0:9 'input' (in 4-component vector of float)
|
||||
0:11 Test condition and select (temp void)
|
||||
0:11 Condition
|
||||
0:11 Compare Equal (temp bool)
|
||||
0:11 'input' (in 4-component vector of float)
|
||||
0:11 'input' (in 4-component vector of float)
|
||||
0:11 true case is null
|
||||
0:14 Test condition and select (temp void)
|
||||
0:14 Condition
|
||||
0:14 Compare Equal (temp bool)
|
||||
0:14 'input' (in 4-component vector of float)
|
||||
0:14 'input' (in 4-component vector of float)
|
||||
0:14 true case is null
|
||||
0:19 Test condition and select (temp void)
|
||||
0:19 Condition
|
||||
0:19 Compare Equal (temp bool)
|
||||
0:19 'input' (in 4-component vector of float)
|
||||
0:19 'input' (in 4-component vector of float)
|
||||
0:19 true case
|
||||
0:? Sequence
|
||||
0:20 Branch: Return with expression
|
||||
0:20 'input' (in 4-component vector of float)
|
||||
0:23 Test condition and select (temp void)
|
||||
0:23 Condition
|
||||
0:23 Compare Equal (temp bool)
|
||||
0:23 'input' (in 4-component vector of float)
|
||||
0:23 'input' (in 4-component vector of float)
|
||||
0:23 true case
|
||||
0:? Sequence
|
||||
0:24 Branch: Return with expression
|
||||
0:24 'input' (in 4-component vector of float)
|
||||
0:23 false case
|
||||
0:? Sequence
|
||||
0:26 Branch: Return with expression
|
||||
0:26 Negate value (temp 4-component vector of float)
|
||||
0:26 'input' (in 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:3 Test condition and select (temp void)
|
||||
0:3 Condition
|
||||
0:3 Compare Equal (temp bool)
|
||||
0:3 'input' (in 4-component vector of float)
|
||||
0:3 'input' (in 4-component vector of float)
|
||||
0:3 true case
|
||||
0:4 Branch: Return with expression
|
||||
0:4 'input' (in 4-component vector of float)
|
||||
0:6 Test condition and select (temp void)
|
||||
0:6 Condition
|
||||
0:6 Compare Equal (temp bool)
|
||||
0:6 'input' (in 4-component vector of float)
|
||||
0:6 'input' (in 4-component vector of float)
|
||||
0:6 true case
|
||||
0:7 Branch: Return with expression
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:6 false case
|
||||
0:9 Branch: Return with expression
|
||||
0:9 Negate value (temp 4-component vector of float)
|
||||
0:9 'input' (in 4-component vector of float)
|
||||
0:11 Test condition and select (temp void)
|
||||
0:11 Condition
|
||||
0:11 Compare Equal (temp bool)
|
||||
0:11 'input' (in 4-component vector of float)
|
||||
0:11 'input' (in 4-component vector of float)
|
||||
0:11 true case is null
|
||||
0:14 Test condition and select (temp void)
|
||||
0:14 Condition
|
||||
0:14 Compare Equal (temp bool)
|
||||
0:14 'input' (in 4-component vector of float)
|
||||
0:14 'input' (in 4-component vector of float)
|
||||
0:14 true case is null
|
||||
0:19 Test condition and select (temp void)
|
||||
0:19 Condition
|
||||
0:19 Compare Equal (temp bool)
|
||||
0:19 'input' (in 4-component vector of float)
|
||||
0:19 'input' (in 4-component vector of float)
|
||||
0:19 true case
|
||||
0:? Sequence
|
||||
0:20 Branch: Return with expression
|
||||
0:20 'input' (in 4-component vector of float)
|
||||
0:23 Test condition and select (temp void)
|
||||
0:23 Condition
|
||||
0:23 Compare Equal (temp bool)
|
||||
0:23 'input' (in 4-component vector of float)
|
||||
0:23 'input' (in 4-component vector of float)
|
||||
0:23 true case
|
||||
0:? Sequence
|
||||
0:24 Branch: Return with expression
|
||||
0:24 'input' (in 4-component vector of float)
|
||||
0:23 false case
|
||||
0:? Sequence
|
||||
0:26 Branch: Return with expression
|
||||
0:26 Negate value (temp 4-component vector of float)
|
||||
0:26 'input' (in 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 64
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 9
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 9 "input"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Input 7(fvec4)
|
||||
9(input): 8(ptr) Variable Input
|
||||
12: TypeBool
|
||||
13: TypeVector 12(bool) 4
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
10: 7(fvec4) Load 9(input)
|
||||
11: 7(fvec4) Load 9(input)
|
||||
14: 13(bvec4) FOrdEqual 10 11
|
||||
15: 12(bool) All 14
|
||||
SelectionMerge 17 None
|
||||
BranchConditional 15 16 17
|
||||
16: Label
|
||||
18: 7(fvec4) Load 9(input)
|
||||
ReturnValue 18
|
||||
17: Label
|
||||
20: 7(fvec4) Load 9(input)
|
||||
21: 7(fvec4) Load 9(input)
|
||||
22: 13(bvec4) FOrdEqual 20 21
|
||||
23: 12(bool) All 22
|
||||
SelectionMerge 25 None
|
||||
BranchConditional 23 24 28
|
||||
24: Label
|
||||
26: 7(fvec4) Load 9(input)
|
||||
ReturnValue 26
|
||||
28: Label
|
||||
29: 7(fvec4) Load 9(input)
|
||||
30: 7(fvec4) FNegate 29
|
||||
ReturnValue 30
|
||||
25: Label
|
||||
32: 7(fvec4) Load 9(input)
|
||||
33: 7(fvec4) Load 9(input)
|
||||
34: 13(bvec4) FOrdEqual 32 33
|
||||
35: 12(bool) All 34
|
||||
SelectionMerge 37 None
|
||||
BranchConditional 35 36 37
|
||||
36: Label
|
||||
Branch 37
|
||||
37: Label
|
||||
38: 7(fvec4) Load 9(input)
|
||||
39: 7(fvec4) Load 9(input)
|
||||
40: 13(bvec4) FOrdEqual 38 39
|
||||
41: 12(bool) All 40
|
||||
SelectionMerge 43 None
|
||||
BranchConditional 41 42 43
|
||||
42: Label
|
||||
Branch 43
|
||||
43: Label
|
||||
44: 7(fvec4) Load 9(input)
|
||||
45: 7(fvec4) Load 9(input)
|
||||
46: 13(bvec4) FOrdEqual 44 45
|
||||
47: 12(bool) All 46
|
||||
SelectionMerge 49 None
|
||||
BranchConditional 47 48 49
|
||||
48: Label
|
||||
50: 7(fvec4) Load 9(input)
|
||||
ReturnValue 50
|
||||
49: Label
|
||||
52: 7(fvec4) Load 9(input)
|
||||
53: 7(fvec4) Load 9(input)
|
||||
54: 13(bvec4) FOrdEqual 52 53
|
||||
55: 12(bool) All 54
|
||||
SelectionMerge 57 None
|
||||
BranchConditional 55 56 60
|
||||
56: Label
|
||||
58: 7(fvec4) Load 9(input)
|
||||
ReturnValue 58
|
||||
60: Label
|
||||
61: 7(fvec4) Load 9(input)
|
||||
62: 7(fvec4) FNegate 61
|
||||
ReturnValue 62
|
||||
57: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
70
Test/baseResults/hlsl.intrinsics.barriers.comp.out
Normal file
70
Test/baseResults/hlsl.intrinsics.barriers.comp.out
Normal file
@ -0,0 +1,70 @@
|
||||
hlsl.intrinsics.barriers.comp
|
||||
Shader version: 450
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:14 Function Definition: ComputeShaderFunction( (temp float)
|
||||
0:3 Function Parameters:
|
||||
0:? Sequence
|
||||
0:4 MemoryBarrier (global void)
|
||||
0:5 AllMemoryBarrierWithGroupSync (global void)
|
||||
0:6 GroupMemoryBarrier (global void)
|
||||
0:7 GroupMemoryBarrierWithGroupSync (global void)
|
||||
0:8 WorkgroupMemoryBarrier (global void)
|
||||
0:9 WorkgroupMemoryBarrierWithGroupSync (global void)
|
||||
0:11 Branch: Return with expression
|
||||
0:11 Constant:
|
||||
0:11 0.000000
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:14 Function Definition: ComputeShaderFunction( (temp float)
|
||||
0:3 Function Parameters:
|
||||
0:? Sequence
|
||||
0:4 MemoryBarrier (global void)
|
||||
0:5 AllMemoryBarrierWithGroupSync (global void)
|
||||
0:6 GroupMemoryBarrier (global void)
|
||||
0:7 GroupMemoryBarrierWithGroupSync (global void)
|
||||
0:8 WorkgroupMemoryBarrier (global void)
|
||||
0:9 WorkgroupMemoryBarrierWithGroupSync (global void)
|
||||
0:11 Branch: Return with expression
|
||||
0:11 Constant:
|
||||
0:11 0.000000
|
||||
0:? Linker Objects
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 15
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint GLCompute 4 "ComputeShaderFunction"
|
||||
ExecutionMode 4 LocalSize 1 1 1
|
||||
Source HLSL 450
|
||||
Name 4 "ComputeShaderFunction"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
7: 6(int) Constant 1
|
||||
8: 6(int) Constant 4048
|
||||
9: 6(int) Constant 512
|
||||
10: 6(int) Constant 2
|
||||
11: 6(int) Constant 256
|
||||
12: TypeFloat 32
|
||||
13: 12(float) Constant 0
|
||||
4(ComputeShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
MemoryBarrier 7 8
|
||||
ControlBarrier 7 7 8
|
||||
MemoryBarrier 7 9
|
||||
ControlBarrier 7 7 9
|
||||
MemoryBarrier 10 11
|
||||
ControlBarrier 10 10 11
|
||||
ReturnValue 13
|
||||
FunctionEnd
|
||||
768
Test/baseResults/hlsl.intrinsics.comp.out
Normal file
768
Test/baseResults/hlsl.intrinsics.comp.out
Normal file
@ -0,0 +1,768 @@
|
||||
hlsl.intrinsics.comp
|
||||
Shader version: 450
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:44 Function Definition: ComputeShaderFunction(f1;f1;f1;u1;u1; (temp float)
|
||||
0:17 Function Parameters:
|
||||
0:17 'inF0' (in float)
|
||||
0:17 'inF1' (in float)
|
||||
0:17 'inF2' (in float)
|
||||
0:17 'inU0' (in uint)
|
||||
0:17 'inU1' (in uint)
|
||||
0:? Sequence
|
||||
0:21 all (global bool)
|
||||
0:21 'inF0' (in float)
|
||||
0:24 AtomicAdd (global void)
|
||||
0:24 'gs_ua' (temp uint)
|
||||
0:24 'gs_ub' (temp uint)
|
||||
0:25 move second child to first child (temp uint)
|
||||
0:25 'out_u1' (temp uint)
|
||||
0:25 AtomicAdd (temp uint)
|
||||
0:25 'gs_ua' (temp uint)
|
||||
0:25 'gs_ub' (temp uint)
|
||||
0:26 AtomicAnd (global void)
|
||||
0:26 'gs_ua' (temp uint)
|
||||
0:26 'gs_ub' (temp uint)
|
||||
0:27 move second child to first child (temp uint)
|
||||
0:27 'out_u1' (temp uint)
|
||||
0:27 AtomicAnd (temp uint)
|
||||
0:27 'gs_ua' (temp uint)
|
||||
0:27 'gs_ub' (temp uint)
|
||||
0:28 move second child to first child (temp uint)
|
||||
0:28 'out_u1' (temp uint)
|
||||
0:28 AtomicCompSwap (temp uint)
|
||||
0:28 'gs_ua' (temp uint)
|
||||
0:28 'gs_ub' (temp uint)
|
||||
0:28 'gs_uc' (temp uint)
|
||||
0:29 move second child to first child (temp uint)
|
||||
0:29 'out_u1' (temp uint)
|
||||
0:29 AtomicExchange (temp uint)
|
||||
0:29 'gs_ua' (temp uint)
|
||||
0:29 'gs_ub' (temp uint)
|
||||
0:30 AtomicMax (global void)
|
||||
0:30 'gs_ua' (temp uint)
|
||||
0:30 'gs_ub' (temp uint)
|
||||
0:31 move second child to first child (temp uint)
|
||||
0:31 'out_u1' (temp uint)
|
||||
0:31 AtomicMax (temp uint)
|
||||
0:31 'gs_ua' (temp uint)
|
||||
0:31 'gs_ub' (temp uint)
|
||||
0:32 AtomicMin (global void)
|
||||
0:32 'gs_ua' (temp uint)
|
||||
0:32 'gs_ub' (temp uint)
|
||||
0:33 move second child to first child (temp uint)
|
||||
0:33 'out_u1' (temp uint)
|
||||
0:33 AtomicMin (temp uint)
|
||||
0:33 'gs_ua' (temp uint)
|
||||
0:33 'gs_ub' (temp uint)
|
||||
0:34 AtomicOr (global void)
|
||||
0:34 'gs_ua' (temp uint)
|
||||
0:34 'gs_ub' (temp uint)
|
||||
0:35 move second child to first child (temp uint)
|
||||
0:35 'out_u1' (temp uint)
|
||||
0:35 AtomicOr (temp uint)
|
||||
0:35 'gs_ua' (temp uint)
|
||||
0:35 'gs_ub' (temp uint)
|
||||
0:36 AtomicXor (global void)
|
||||
0:36 'gs_ua' (temp uint)
|
||||
0:36 'gs_ub' (temp uint)
|
||||
0:37 move second child to first child (temp uint)
|
||||
0:37 'out_u1' (temp uint)
|
||||
0:37 AtomicXor (temp uint)
|
||||
0:37 'gs_ua' (temp uint)
|
||||
0:37 'gs_ub' (temp uint)
|
||||
0:41 Branch: Return with expression
|
||||
0:41 Constant:
|
||||
0:41 0.000000
|
||||
0:50 Function Definition: ComputeShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float)
|
||||
0:45 Function Parameters:
|
||||
0:45 'inF0' (in 1-component vector of float)
|
||||
0:45 'inF1' (in 1-component vector of float)
|
||||
0:45 'inF2' (in 1-component vector of float)
|
||||
0:? Sequence
|
||||
0:47 Branch: Return with expression
|
||||
0:47 Constant:
|
||||
0:47 0.000000
|
||||
0:77 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float)
|
||||
0:51 Function Parameters:
|
||||
0:51 'inF0' (in 2-component vector of float)
|
||||
0:51 'inF1' (in 2-component vector of float)
|
||||
0:51 'inF2' (in 2-component vector of float)
|
||||
0:51 'inU0' (in 2-component vector of uint)
|
||||
0:51 'inU1' (in 2-component vector of uint)
|
||||
0:? Sequence
|
||||
0:55 all (global bool)
|
||||
0:55 'inF0' (in 2-component vector of float)
|
||||
0:58 AtomicAdd (global void)
|
||||
0:58 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:58 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:59 move second child to first child (temp 2-component vector of uint)
|
||||
0:59 'out_u2' (temp 2-component vector of uint)
|
||||
0:59 AtomicAdd (temp 2-component vector of uint)
|
||||
0:59 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:59 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:60 AtomicAnd (global void)
|
||||
0:60 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:60 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:61 move second child to first child (temp 2-component vector of uint)
|
||||
0:61 'out_u2' (temp 2-component vector of uint)
|
||||
0:61 AtomicAnd (temp 2-component vector of uint)
|
||||
0:61 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:61 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:62 move second child to first child (temp 2-component vector of uint)
|
||||
0:62 'out_u2' (temp 2-component vector of uint)
|
||||
0:62 AtomicCompSwap (temp 2-component vector of uint)
|
||||
0:62 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:62 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:62 'gs_uc2' (temp 2-component vector of uint)
|
||||
0:63 move second child to first child (temp 2-component vector of uint)
|
||||
0:63 'out_u2' (temp 2-component vector of uint)
|
||||
0:63 AtomicExchange (temp 2-component vector of uint)
|
||||
0:63 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:63 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:64 AtomicMax (global void)
|
||||
0:64 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:64 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:65 move second child to first child (temp 2-component vector of uint)
|
||||
0:65 'out_u2' (temp 2-component vector of uint)
|
||||
0:65 AtomicMax (temp 2-component vector of uint)
|
||||
0:65 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:65 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:66 AtomicMin (global void)
|
||||
0:66 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:66 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:67 move second child to first child (temp 2-component vector of uint)
|
||||
0:67 'out_u2' (temp 2-component vector of uint)
|
||||
0:67 AtomicMin (temp 2-component vector of uint)
|
||||
0:67 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:67 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:68 AtomicOr (global void)
|
||||
0:68 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:68 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:69 move second child to first child (temp 2-component vector of uint)
|
||||
0:69 'out_u2' (temp 2-component vector of uint)
|
||||
0:69 AtomicOr (temp 2-component vector of uint)
|
||||
0:69 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:69 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:70 AtomicXor (global void)
|
||||
0:70 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:70 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:71 move second child to first child (temp 2-component vector of uint)
|
||||
0:71 'out_u2' (temp 2-component vector of uint)
|
||||
0:71 AtomicXor (temp 2-component vector of uint)
|
||||
0:71 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:71 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:74 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:104 Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float)
|
||||
0:78 Function Parameters:
|
||||
0:78 'inF0' (in 3-component vector of float)
|
||||
0:78 'inF1' (in 3-component vector of float)
|
||||
0:78 'inF2' (in 3-component vector of float)
|
||||
0:78 'inU0' (in 3-component vector of uint)
|
||||
0:78 'inU1' (in 3-component vector of uint)
|
||||
0:? Sequence
|
||||
0:82 all (global bool)
|
||||
0:82 'inF0' (in 3-component vector of float)
|
||||
0:85 AtomicAdd (global void)
|
||||
0:85 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:85 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:86 move second child to first child (temp 3-component vector of uint)
|
||||
0:86 'out_u3' (temp 3-component vector of uint)
|
||||
0:86 AtomicAdd (temp 3-component vector of uint)
|
||||
0:86 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:86 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:87 AtomicAnd (global void)
|
||||
0:87 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:87 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:88 move second child to first child (temp 3-component vector of uint)
|
||||
0:88 'out_u3' (temp 3-component vector of uint)
|
||||
0:88 AtomicAnd (temp 3-component vector of uint)
|
||||
0:88 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:88 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:89 move second child to first child (temp 3-component vector of uint)
|
||||
0:89 'out_u3' (temp 3-component vector of uint)
|
||||
0:89 AtomicCompSwap (temp 3-component vector of uint)
|
||||
0:89 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:89 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:89 'gs_uc3' (temp 3-component vector of uint)
|
||||
0:90 move second child to first child (temp 3-component vector of uint)
|
||||
0:90 'out_u3' (temp 3-component vector of uint)
|
||||
0:90 AtomicExchange (temp 3-component vector of uint)
|
||||
0:90 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:90 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:91 AtomicMax (global void)
|
||||
0:91 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:91 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:92 move second child to first child (temp 3-component vector of uint)
|
||||
0:92 'out_u3' (temp 3-component vector of uint)
|
||||
0:92 AtomicMax (temp 3-component vector of uint)
|
||||
0:92 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:92 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:93 AtomicMin (global void)
|
||||
0:93 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:93 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:94 move second child to first child (temp 3-component vector of uint)
|
||||
0:94 'out_u3' (temp 3-component vector of uint)
|
||||
0:94 AtomicMin (temp 3-component vector of uint)
|
||||
0:94 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:94 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:95 AtomicOr (global void)
|
||||
0:95 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:95 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:96 move second child to first child (temp 3-component vector of uint)
|
||||
0:96 'out_u3' (temp 3-component vector of uint)
|
||||
0:96 AtomicOr (temp 3-component vector of uint)
|
||||
0:96 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:96 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:97 AtomicXor (global void)
|
||||
0:97 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:97 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:98 move second child to first child (temp 3-component vector of uint)
|
||||
0:98 'out_u3' (temp 3-component vector of uint)
|
||||
0:98 AtomicXor (temp 3-component vector of uint)
|
||||
0:98 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:98 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:101 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:130 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float)
|
||||
0:105 Function Parameters:
|
||||
0:105 'inF0' (in 4-component vector of float)
|
||||
0:105 'inF1' (in 4-component vector of float)
|
||||
0:105 'inF2' (in 4-component vector of float)
|
||||
0:105 'inU0' (in 4-component vector of uint)
|
||||
0:105 'inU1' (in 4-component vector of uint)
|
||||
0:? Sequence
|
||||
0:109 all (global bool)
|
||||
0:109 'inF0' (in 4-component vector of float)
|
||||
0:112 AtomicAdd (global void)
|
||||
0:112 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:112 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:113 move second child to first child (temp 4-component vector of uint)
|
||||
0:113 'out_u4' (temp 4-component vector of uint)
|
||||
0:113 AtomicAdd (temp 4-component vector of uint)
|
||||
0:113 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:113 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:114 AtomicAnd (global void)
|
||||
0:114 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:114 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:115 move second child to first child (temp 4-component vector of uint)
|
||||
0:115 'out_u4' (temp 4-component vector of uint)
|
||||
0:115 AtomicAnd (temp 4-component vector of uint)
|
||||
0:115 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:115 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:116 move second child to first child (temp 4-component vector of uint)
|
||||
0:116 'out_u4' (temp 4-component vector of uint)
|
||||
0:116 AtomicCompSwap (temp 4-component vector of uint)
|
||||
0:116 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:116 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:116 'gs_uc4' (temp 4-component vector of uint)
|
||||
0:117 move second child to first child (temp 4-component vector of uint)
|
||||
0:117 'out_u4' (temp 4-component vector of uint)
|
||||
0:117 AtomicExchange (temp 4-component vector of uint)
|
||||
0:117 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:117 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:118 AtomicMax (global void)
|
||||
0:118 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:118 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:119 move second child to first child (temp 4-component vector of uint)
|
||||
0:119 'out_u4' (temp 4-component vector of uint)
|
||||
0:119 AtomicMax (temp 4-component vector of uint)
|
||||
0:119 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:119 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:120 AtomicMin (global void)
|
||||
0:120 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:120 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:121 move second child to first child (temp 4-component vector of uint)
|
||||
0:121 'out_u4' (temp 4-component vector of uint)
|
||||
0:121 AtomicMin (temp 4-component vector of uint)
|
||||
0:121 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:121 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:122 AtomicOr (global void)
|
||||
0:122 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:122 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:123 move second child to first child (temp 4-component vector of uint)
|
||||
0:123 'out_u4' (temp 4-component vector of uint)
|
||||
0:123 AtomicOr (temp 4-component vector of uint)
|
||||
0:123 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:123 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:124 AtomicXor (global void)
|
||||
0:124 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:124 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:125 move second child to first child (temp 4-component vector of uint)
|
||||
0:125 'out_u4' (temp 4-component vector of uint)
|
||||
0:125 AtomicXor (temp 4-component vector of uint)
|
||||
0:125 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:125 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:128 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:? 4.000000
|
||||
0:? Linker Objects
|
||||
0:? 'gs_ua' (temp uint)
|
||||
0:? 'gs_ub' (temp uint)
|
||||
0:? 'gs_uc' (temp uint)
|
||||
0:? 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:? 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:? 'gs_uc2' (temp 2-component vector of uint)
|
||||
0:? 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:? 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:? 'gs_uc3' (temp 3-component vector of uint)
|
||||
0:? 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:? 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:? 'gs_uc4' (temp 4-component vector of uint)
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:44 Function Definition: ComputeShaderFunction(f1;f1;f1;u1;u1; (temp float)
|
||||
0:17 Function Parameters:
|
||||
0:17 'inF0' (in float)
|
||||
0:17 'inF1' (in float)
|
||||
0:17 'inF2' (in float)
|
||||
0:17 'inU0' (in uint)
|
||||
0:17 'inU1' (in uint)
|
||||
0:? Sequence
|
||||
0:21 all (global bool)
|
||||
0:21 'inF0' (in float)
|
||||
0:24 AtomicAdd (global void)
|
||||
0:24 'gs_ua' (temp uint)
|
||||
0:24 'gs_ub' (temp uint)
|
||||
0:25 move second child to first child (temp uint)
|
||||
0:25 'out_u1' (temp uint)
|
||||
0:25 AtomicAdd (temp uint)
|
||||
0:25 'gs_ua' (temp uint)
|
||||
0:25 'gs_ub' (temp uint)
|
||||
0:26 AtomicAnd (global void)
|
||||
0:26 'gs_ua' (temp uint)
|
||||
0:26 'gs_ub' (temp uint)
|
||||
0:27 move second child to first child (temp uint)
|
||||
0:27 'out_u1' (temp uint)
|
||||
0:27 AtomicAnd (temp uint)
|
||||
0:27 'gs_ua' (temp uint)
|
||||
0:27 'gs_ub' (temp uint)
|
||||
0:28 move second child to first child (temp uint)
|
||||
0:28 'out_u1' (temp uint)
|
||||
0:28 AtomicCompSwap (temp uint)
|
||||
0:28 'gs_ua' (temp uint)
|
||||
0:28 'gs_ub' (temp uint)
|
||||
0:28 'gs_uc' (temp uint)
|
||||
0:29 move second child to first child (temp uint)
|
||||
0:29 'out_u1' (temp uint)
|
||||
0:29 AtomicExchange (temp uint)
|
||||
0:29 'gs_ua' (temp uint)
|
||||
0:29 'gs_ub' (temp uint)
|
||||
0:30 AtomicMax (global void)
|
||||
0:30 'gs_ua' (temp uint)
|
||||
0:30 'gs_ub' (temp uint)
|
||||
0:31 move second child to first child (temp uint)
|
||||
0:31 'out_u1' (temp uint)
|
||||
0:31 AtomicMax (temp uint)
|
||||
0:31 'gs_ua' (temp uint)
|
||||
0:31 'gs_ub' (temp uint)
|
||||
0:32 AtomicMin (global void)
|
||||
0:32 'gs_ua' (temp uint)
|
||||
0:32 'gs_ub' (temp uint)
|
||||
0:33 move second child to first child (temp uint)
|
||||
0:33 'out_u1' (temp uint)
|
||||
0:33 AtomicMin (temp uint)
|
||||
0:33 'gs_ua' (temp uint)
|
||||
0:33 'gs_ub' (temp uint)
|
||||
0:34 AtomicOr (global void)
|
||||
0:34 'gs_ua' (temp uint)
|
||||
0:34 'gs_ub' (temp uint)
|
||||
0:35 move second child to first child (temp uint)
|
||||
0:35 'out_u1' (temp uint)
|
||||
0:35 AtomicOr (temp uint)
|
||||
0:35 'gs_ua' (temp uint)
|
||||
0:35 'gs_ub' (temp uint)
|
||||
0:36 AtomicXor (global void)
|
||||
0:36 'gs_ua' (temp uint)
|
||||
0:36 'gs_ub' (temp uint)
|
||||
0:37 move second child to first child (temp uint)
|
||||
0:37 'out_u1' (temp uint)
|
||||
0:37 AtomicXor (temp uint)
|
||||
0:37 'gs_ua' (temp uint)
|
||||
0:37 'gs_ub' (temp uint)
|
||||
0:41 Branch: Return with expression
|
||||
0:41 Constant:
|
||||
0:41 0.000000
|
||||
0:50 Function Definition: ComputeShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float)
|
||||
0:45 Function Parameters:
|
||||
0:45 'inF0' (in 1-component vector of float)
|
||||
0:45 'inF1' (in 1-component vector of float)
|
||||
0:45 'inF2' (in 1-component vector of float)
|
||||
0:? Sequence
|
||||
0:47 Branch: Return with expression
|
||||
0:47 Constant:
|
||||
0:47 0.000000
|
||||
0:77 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float)
|
||||
0:51 Function Parameters:
|
||||
0:51 'inF0' (in 2-component vector of float)
|
||||
0:51 'inF1' (in 2-component vector of float)
|
||||
0:51 'inF2' (in 2-component vector of float)
|
||||
0:51 'inU0' (in 2-component vector of uint)
|
||||
0:51 'inU1' (in 2-component vector of uint)
|
||||
0:? Sequence
|
||||
0:55 all (global bool)
|
||||
0:55 'inF0' (in 2-component vector of float)
|
||||
0:58 AtomicAdd (global void)
|
||||
0:58 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:58 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:59 move second child to first child (temp 2-component vector of uint)
|
||||
0:59 'out_u2' (temp 2-component vector of uint)
|
||||
0:59 AtomicAdd (temp 2-component vector of uint)
|
||||
0:59 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:59 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:60 AtomicAnd (global void)
|
||||
0:60 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:60 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:61 move second child to first child (temp 2-component vector of uint)
|
||||
0:61 'out_u2' (temp 2-component vector of uint)
|
||||
0:61 AtomicAnd (temp 2-component vector of uint)
|
||||
0:61 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:61 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:62 move second child to first child (temp 2-component vector of uint)
|
||||
0:62 'out_u2' (temp 2-component vector of uint)
|
||||
0:62 AtomicCompSwap (temp 2-component vector of uint)
|
||||
0:62 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:62 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:62 'gs_uc2' (temp 2-component vector of uint)
|
||||
0:63 move second child to first child (temp 2-component vector of uint)
|
||||
0:63 'out_u2' (temp 2-component vector of uint)
|
||||
0:63 AtomicExchange (temp 2-component vector of uint)
|
||||
0:63 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:63 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:64 AtomicMax (global void)
|
||||
0:64 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:64 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:65 move second child to first child (temp 2-component vector of uint)
|
||||
0:65 'out_u2' (temp 2-component vector of uint)
|
||||
0:65 AtomicMax (temp 2-component vector of uint)
|
||||
0:65 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:65 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:66 AtomicMin (global void)
|
||||
0:66 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:66 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:67 move second child to first child (temp 2-component vector of uint)
|
||||
0:67 'out_u2' (temp 2-component vector of uint)
|
||||
0:67 AtomicMin (temp 2-component vector of uint)
|
||||
0:67 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:67 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:68 AtomicOr (global void)
|
||||
0:68 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:68 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:69 move second child to first child (temp 2-component vector of uint)
|
||||
0:69 'out_u2' (temp 2-component vector of uint)
|
||||
0:69 AtomicOr (temp 2-component vector of uint)
|
||||
0:69 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:69 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:70 AtomicXor (global void)
|
||||
0:70 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:70 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:71 move second child to first child (temp 2-component vector of uint)
|
||||
0:71 'out_u2' (temp 2-component vector of uint)
|
||||
0:71 AtomicXor (temp 2-component vector of uint)
|
||||
0:71 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:71 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:74 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:104 Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float)
|
||||
0:78 Function Parameters:
|
||||
0:78 'inF0' (in 3-component vector of float)
|
||||
0:78 'inF1' (in 3-component vector of float)
|
||||
0:78 'inF2' (in 3-component vector of float)
|
||||
0:78 'inU0' (in 3-component vector of uint)
|
||||
0:78 'inU1' (in 3-component vector of uint)
|
||||
0:? Sequence
|
||||
0:82 all (global bool)
|
||||
0:82 'inF0' (in 3-component vector of float)
|
||||
0:85 AtomicAdd (global void)
|
||||
0:85 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:85 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:86 move second child to first child (temp 3-component vector of uint)
|
||||
0:86 'out_u3' (temp 3-component vector of uint)
|
||||
0:86 AtomicAdd (temp 3-component vector of uint)
|
||||
0:86 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:86 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:87 AtomicAnd (global void)
|
||||
0:87 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:87 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:88 move second child to first child (temp 3-component vector of uint)
|
||||
0:88 'out_u3' (temp 3-component vector of uint)
|
||||
0:88 AtomicAnd (temp 3-component vector of uint)
|
||||
0:88 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:88 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:89 move second child to first child (temp 3-component vector of uint)
|
||||
0:89 'out_u3' (temp 3-component vector of uint)
|
||||
0:89 AtomicCompSwap (temp 3-component vector of uint)
|
||||
0:89 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:89 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:89 'gs_uc3' (temp 3-component vector of uint)
|
||||
0:90 move second child to first child (temp 3-component vector of uint)
|
||||
0:90 'out_u3' (temp 3-component vector of uint)
|
||||
0:90 AtomicExchange (temp 3-component vector of uint)
|
||||
0:90 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:90 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:91 AtomicMax (global void)
|
||||
0:91 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:91 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:92 move second child to first child (temp 3-component vector of uint)
|
||||
0:92 'out_u3' (temp 3-component vector of uint)
|
||||
0:92 AtomicMax (temp 3-component vector of uint)
|
||||
0:92 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:92 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:93 AtomicMin (global void)
|
||||
0:93 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:93 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:94 move second child to first child (temp 3-component vector of uint)
|
||||
0:94 'out_u3' (temp 3-component vector of uint)
|
||||
0:94 AtomicMin (temp 3-component vector of uint)
|
||||
0:94 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:94 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:95 AtomicOr (global void)
|
||||
0:95 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:95 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:96 move second child to first child (temp 3-component vector of uint)
|
||||
0:96 'out_u3' (temp 3-component vector of uint)
|
||||
0:96 AtomicOr (temp 3-component vector of uint)
|
||||
0:96 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:96 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:97 AtomicXor (global void)
|
||||
0:97 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:97 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:98 move second child to first child (temp 3-component vector of uint)
|
||||
0:98 'out_u3' (temp 3-component vector of uint)
|
||||
0:98 AtomicXor (temp 3-component vector of uint)
|
||||
0:98 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:98 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:101 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:130 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float)
|
||||
0:105 Function Parameters:
|
||||
0:105 'inF0' (in 4-component vector of float)
|
||||
0:105 'inF1' (in 4-component vector of float)
|
||||
0:105 'inF2' (in 4-component vector of float)
|
||||
0:105 'inU0' (in 4-component vector of uint)
|
||||
0:105 'inU1' (in 4-component vector of uint)
|
||||
0:? Sequence
|
||||
0:109 all (global bool)
|
||||
0:109 'inF0' (in 4-component vector of float)
|
||||
0:112 AtomicAdd (global void)
|
||||
0:112 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:112 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:113 move second child to first child (temp 4-component vector of uint)
|
||||
0:113 'out_u4' (temp 4-component vector of uint)
|
||||
0:113 AtomicAdd (temp 4-component vector of uint)
|
||||
0:113 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:113 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:114 AtomicAnd (global void)
|
||||
0:114 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:114 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:115 move second child to first child (temp 4-component vector of uint)
|
||||
0:115 'out_u4' (temp 4-component vector of uint)
|
||||
0:115 AtomicAnd (temp 4-component vector of uint)
|
||||
0:115 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:115 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:116 move second child to first child (temp 4-component vector of uint)
|
||||
0:116 'out_u4' (temp 4-component vector of uint)
|
||||
0:116 AtomicCompSwap (temp 4-component vector of uint)
|
||||
0:116 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:116 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:116 'gs_uc4' (temp 4-component vector of uint)
|
||||
0:117 move second child to first child (temp 4-component vector of uint)
|
||||
0:117 'out_u4' (temp 4-component vector of uint)
|
||||
0:117 AtomicExchange (temp 4-component vector of uint)
|
||||
0:117 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:117 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:118 AtomicMax (global void)
|
||||
0:118 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:118 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:119 move second child to first child (temp 4-component vector of uint)
|
||||
0:119 'out_u4' (temp 4-component vector of uint)
|
||||
0:119 AtomicMax (temp 4-component vector of uint)
|
||||
0:119 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:119 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:120 AtomicMin (global void)
|
||||
0:120 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:120 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:121 move second child to first child (temp 4-component vector of uint)
|
||||
0:121 'out_u4' (temp 4-component vector of uint)
|
||||
0:121 AtomicMin (temp 4-component vector of uint)
|
||||
0:121 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:121 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:122 AtomicOr (global void)
|
||||
0:122 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:122 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:123 move second child to first child (temp 4-component vector of uint)
|
||||
0:123 'out_u4' (temp 4-component vector of uint)
|
||||
0:123 AtomicOr (temp 4-component vector of uint)
|
||||
0:123 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:123 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:124 AtomicXor (global void)
|
||||
0:124 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:124 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:125 move second child to first child (temp 4-component vector of uint)
|
||||
0:125 'out_u4' (temp 4-component vector of uint)
|
||||
0:125 AtomicXor (temp 4-component vector of uint)
|
||||
0:125 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:125 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:128 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:? 4.000000
|
||||
0:? Linker Objects
|
||||
0:? 'gs_ua' (temp uint)
|
||||
0:? 'gs_ub' (temp uint)
|
||||
0:? 'gs_uc' (temp uint)
|
||||
0:? 'gs_ua2' (temp 2-component vector of uint)
|
||||
0:? 'gs_ub2' (temp 2-component vector of uint)
|
||||
0:? 'gs_uc2' (temp 2-component vector of uint)
|
||||
0:? 'gs_ua3' (temp 3-component vector of uint)
|
||||
0:? 'gs_ub3' (temp 3-component vector of uint)
|
||||
0:? 'gs_uc3' (temp 3-component vector of uint)
|
||||
0:? 'gs_ua4' (temp 4-component vector of uint)
|
||||
0:? 'gs_ub4' (temp 4-component vector of uint)
|
||||
0:? 'gs_uc4' (temp 4-component vector of uint)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 182
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint GLCompute 4 "ComputeShaderFunction" 8 54 98 141
|
||||
ExecutionMode 4 LocalSize 1 1 1
|
||||
Source HLSL 450
|
||||
Name 4 "ComputeShaderFunction"
|
||||
Name 8 "inF0"
|
||||
Name 14 "gs_ua"
|
||||
Name 15 "gs_ub"
|
||||
Name 20 "out_u1"
|
||||
Name 28 "gs_uc"
|
||||
Name 54 "inF0"
|
||||
Name 59 "gs_ua2"
|
||||
Name 60 "gs_ub2"
|
||||
Name 63 "out_u2"
|
||||
Name 71 "gs_uc2"
|
||||
Name 98 "inF0"
|
||||
Name 103 "gs_ua3"
|
||||
Name 104 "gs_ub3"
|
||||
Name 107 "out_u3"
|
||||
Name 115 "gs_uc3"
|
||||
Name 141 "inF0"
|
||||
Name 146 "gs_ua4"
|
||||
Name 147 "gs_ub4"
|
||||
Name 150 "out_u4"
|
||||
Name 158 "gs_uc4"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypePointer Input 6(float)
|
||||
8(inF0): 7(ptr) Variable Input
|
||||
10: TypeBool
|
||||
12: TypeInt 32 0
|
||||
13: TypePointer Function 12(int)
|
||||
17: 12(int) Constant 1
|
||||
18: 12(int) Constant 0
|
||||
49: 6(float) Constant 0
|
||||
52: TypeVector 6(float) 2
|
||||
53: TypePointer Input 52(fvec2)
|
||||
54(inF0): 53(ptr) Variable Input
|
||||
57: TypeVector 12(int) 2
|
||||
58: TypePointer Function 57(ivec2)
|
||||
92: 6(float) Constant 1065353216
|
||||
93: 6(float) Constant 1073741824
|
||||
94: 52(fvec2) ConstantComposite 92 93
|
||||
96: TypeVector 6(float) 3
|
||||
97: TypePointer Input 96(fvec3)
|
||||
98(inF0): 97(ptr) Variable Input
|
||||
101: TypeVector 12(int) 3
|
||||
102: TypePointer Function 101(ivec3)
|
||||
136: 6(float) Constant 1077936128
|
||||
137: 96(fvec3) ConstantComposite 92 93 136
|
||||
139: TypeVector 6(float) 4
|
||||
140: TypePointer Input 139(fvec4)
|
||||
141(inF0): 140(ptr) Variable Input
|
||||
144: TypeVector 12(int) 4
|
||||
145: TypePointer Function 144(ivec4)
|
||||
179: 6(float) Constant 1082130432
|
||||
180: 139(fvec4) ConstantComposite 92 93 136 179
|
||||
4(ComputeShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
14(gs_ua): 13(ptr) Variable Function
|
||||
15(gs_ub): 13(ptr) Variable Function
|
||||
20(out_u1): 13(ptr) Variable Function
|
||||
28(gs_uc): 13(ptr) Variable Function
|
||||
59(gs_ua2): 58(ptr) Variable Function
|
||||
60(gs_ub2): 58(ptr) Variable Function
|
||||
63(out_u2): 58(ptr) Variable Function
|
||||
71(gs_uc2): 58(ptr) Variable Function
|
||||
103(gs_ua3): 102(ptr) Variable Function
|
||||
104(gs_ub3): 102(ptr) Variable Function
|
||||
107(out_u3): 102(ptr) Variable Function
|
||||
115(gs_uc3): 102(ptr) Variable Function
|
||||
146(gs_ua4): 145(ptr) Variable Function
|
||||
147(gs_ub4): 145(ptr) Variable Function
|
||||
150(out_u4): 145(ptr) Variable Function
|
||||
158(gs_uc4): 145(ptr) Variable Function
|
||||
9: 6(float) Load 8(inF0)
|
||||
11: 10(bool) All 9
|
||||
16: 12(int) Load 15(gs_ub)
|
||||
19: 2 AtomicIAdd 14(gs_ua) 17 18 16
|
||||
21: 12(int) Load 15(gs_ub)
|
||||
22: 12(int) AtomicIAdd 14(gs_ua) 17 18 21
|
||||
Store 20(out_u1) 22
|
||||
23: 12(int) Load 15(gs_ub)
|
||||
24: 2 AtomicAnd 14(gs_ua) 17 18 23
|
||||
25: 12(int) Load 15(gs_ub)
|
||||
26: 12(int) AtomicAnd 14(gs_ua) 17 18 25
|
||||
Store 20(out_u1) 26
|
||||
27: 12(int) Load 15(gs_ub)
|
||||
29: 12(int) Load 28(gs_uc)
|
||||
30: 12(int) AtomicCompareExchange 14(gs_ua) 17 18 18 29 27
|
||||
Store 20(out_u1) 30
|
||||
31: 12(int) Load 15(gs_ub)
|
||||
32: 12(int) AtomicExchange 14(gs_ua) 17 18 31
|
||||
Store 20(out_u1) 32
|
||||
33: 12(int) Load 15(gs_ub)
|
||||
34: 2 AtomicSMax 14(gs_ua) 17 18 33
|
||||
35: 12(int) Load 15(gs_ub)
|
||||
36: 12(int) AtomicUMax 14(gs_ua) 17 18 35
|
||||
Store 20(out_u1) 36
|
||||
37: 12(int) Load 15(gs_ub)
|
||||
38: 2 AtomicSMin 14(gs_ua) 17 18 37
|
||||
39: 12(int) Load 15(gs_ub)
|
||||
40: 12(int) AtomicUMin 14(gs_ua) 17 18 39
|
||||
Store 20(out_u1) 40
|
||||
41: 12(int) Load 15(gs_ub)
|
||||
42: 2 AtomicOr 14(gs_ua) 17 18 41
|
||||
43: 12(int) Load 15(gs_ub)
|
||||
44: 12(int) AtomicOr 14(gs_ua) 17 18 43
|
||||
Store 20(out_u1) 44
|
||||
45: 12(int) Load 15(gs_ub)
|
||||
46: 2 AtomicXor 14(gs_ua) 17 18 45
|
||||
47: 12(int) Load 15(gs_ub)
|
||||
48: 12(int) AtomicXor 14(gs_ua) 17 18 47
|
||||
Store 20(out_u1) 48
|
||||
ReturnValue 49
|
||||
FunctionEnd
|
||||
160
Test/baseResults/hlsl.intrinsics.evalfns.frag.out
Normal file
160
Test/baseResults/hlsl.intrinsics.evalfns.frag.out
Normal file
@ -0,0 +1,160 @@
|
||||
hlsl.intrinsics.evalfns.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (temp void)
|
||||
0:3 Function Parameters:
|
||||
0:3 'inF1' (in float)
|
||||
0:3 'inF2' (in 2-component vector of float)
|
||||
0:3 'inF3' (in 3-component vector of float)
|
||||
0:3 'inF4' (in 4-component vector of float)
|
||||
0:3 'inI2' (in 2-component vector of int)
|
||||
0:? Sequence
|
||||
0:4 interpolateAtOffset (temp float)
|
||||
0:4 'inF1' (in float)
|
||||
0:? Constant:
|
||||
0:? -0.500000
|
||||
0:? -0.062500
|
||||
0:5 interpolateAtOffset (temp 2-component vector of float)
|
||||
0:5 'inF2' (in 2-component vector of float)
|
||||
0:? Constant:
|
||||
0:? 0.000000
|
||||
0:? 0.062500
|
||||
0:6 interpolateAtOffset (temp 3-component vector of float)
|
||||
0:6 'inF3' (in 3-component vector of float)
|
||||
0:? Constant:
|
||||
0:? 0.187500
|
||||
0:? -0.375000
|
||||
0:7 interpolateAtOffset (temp 4-component vector of float)
|
||||
0:7 'inF4' (in 4-component vector of float)
|
||||
0:? Constant:
|
||||
0:? 0.437500
|
||||
0:? -0.500000
|
||||
0:9 interpolateAtOffset (temp float)
|
||||
0:9 'inF1' (in float)
|
||||
0:9 vector-scale (temp 2-component vector of float)
|
||||
0:9 Convert int to float (temp 2-component vector of float)
|
||||
0:9 right-shift (temp 2-component vector of int)
|
||||
0:9 left-shift (temp 2-component vector of int)
|
||||
0:9 'inI2' (in 2-component vector of int)
|
||||
0:9 Constant:
|
||||
0:9 28 (const int)
|
||||
0:9 Constant:
|
||||
0:9 28 (const int)
|
||||
0:9 Constant:
|
||||
0:9 0.062500
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (temp void)
|
||||
0:3 Function Parameters:
|
||||
0:3 'inF1' (in float)
|
||||
0:3 'inF2' (in 2-component vector of float)
|
||||
0:3 'inF3' (in 3-component vector of float)
|
||||
0:3 'inF4' (in 4-component vector of float)
|
||||
0:3 'inI2' (in 2-component vector of int)
|
||||
0:? Sequence
|
||||
0:4 interpolateAtOffset (temp float)
|
||||
0:4 'inF1' (in float)
|
||||
0:? Constant:
|
||||
0:? -0.500000
|
||||
0:? -0.062500
|
||||
0:5 interpolateAtOffset (temp 2-component vector of float)
|
||||
0:5 'inF2' (in 2-component vector of float)
|
||||
0:? Constant:
|
||||
0:? 0.000000
|
||||
0:? 0.062500
|
||||
0:6 interpolateAtOffset (temp 3-component vector of float)
|
||||
0:6 'inF3' (in 3-component vector of float)
|
||||
0:? Constant:
|
||||
0:? 0.187500
|
||||
0:? -0.375000
|
||||
0:7 interpolateAtOffset (temp 4-component vector of float)
|
||||
0:7 'inF4' (in 4-component vector of float)
|
||||
0:? Constant:
|
||||
0:? 0.437500
|
||||
0:? -0.500000
|
||||
0:9 interpolateAtOffset (temp float)
|
||||
0:9 'inF1' (in float)
|
||||
0:9 vector-scale (temp 2-component vector of float)
|
||||
0:9 Convert int to float (temp 2-component vector of float)
|
||||
0:9 right-shift (temp 2-component vector of int)
|
||||
0:9 left-shift (temp 2-component vector of int)
|
||||
0:9 'inI2' (in 2-component vector of int)
|
||||
0:9 Constant:
|
||||
0:9 28 (const int)
|
||||
0:9 Constant:
|
||||
0:9 28 (const int)
|
||||
0:9 Constant:
|
||||
0:9 0.062500
|
||||
0:? Linker Objects
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 46
|
||||
|
||||
Capability Shader
|
||||
Capability InterpolationFunction
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 8 15 22 29 36
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 450
|
||||
Name 4 "main"
|
||||
Name 8 "inF1"
|
||||
Name 15 "inF2"
|
||||
Name 22 "inF3"
|
||||
Name 29 "inF4"
|
||||
Name 36 "inI2"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypePointer Input 6(float)
|
||||
8(inF1): 7(ptr) Variable Input
|
||||
9: TypeVector 6(float) 2
|
||||
10: 6(float) Constant 3204448256
|
||||
11: 6(float) Constant 3179282432
|
||||
12: 9(fvec2) ConstantComposite 10 11
|
||||
14: TypePointer Input 9(fvec2)
|
||||
15(inF2): 14(ptr) Variable Input
|
||||
16: 6(float) Constant 0
|
||||
17: 6(float) Constant 1031798784
|
||||
18: 9(fvec2) ConstantComposite 16 17
|
||||
20: TypeVector 6(float) 3
|
||||
21: TypePointer Input 20(fvec3)
|
||||
22(inF3): 21(ptr) Variable Input
|
||||
23: 6(float) Constant 1044381696
|
||||
24: 6(float) Constant 3200253952
|
||||
25: 9(fvec2) ConstantComposite 23 24
|
||||
27: TypeVector 6(float) 4
|
||||
28: TypePointer Input 27(fvec4)
|
||||
29(inF4): 28(ptr) Variable Input
|
||||
30: 6(float) Constant 1054867456
|
||||
31: 9(fvec2) ConstantComposite 30 10
|
||||
33: TypeInt 32 1
|
||||
34: TypeVector 33(int) 2
|
||||
35: TypePointer Input 34(ivec2)
|
||||
36(inI2): 35(ptr) Variable Input
|
||||
38: 33(int) Constant 28
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
13: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 8(inF1) 12
|
||||
19: 9(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 15(inF2) 18
|
||||
26: 20(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 22(inF3) 25
|
||||
32: 27(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 29(inF4) 31
|
||||
37: 34(ivec2) Load 36(inI2)
|
||||
39: 34(ivec2) CompositeConstruct 38 38
|
||||
40: 34(ivec2) ShiftLeftLogical 37 39
|
||||
41: 34(ivec2) CompositeConstruct 38 38
|
||||
42: 34(ivec2) ShiftRightArithmetic 40 41
|
||||
43: 9(fvec2) ConvertSToF 42
|
||||
44: 9(fvec2) VectorTimesScalar 43 17
|
||||
45: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 8(inF1) 44
|
||||
Return
|
||||
FunctionEnd
|
||||
129
Test/baseResults/hlsl.intrinsics.f1632.frag.out
Normal file
129
Test/baseResults/hlsl.intrinsics.f1632.frag.out
Normal file
@ -0,0 +1,129 @@
|
||||
hlsl.intrinsics.f1632.frag
|
||||
ERROR: 0:3: 'f32tof16' : unimplemented intrinsic: handle natively
|
||||
ERROR: 0:16: 'f32tof16' : unimplemented intrinsic: handle natively
|
||||
ERROR: 0:23: 'f32tof16' : unimplemented intrinsic: handle natively
|
||||
ERROR: 0:30: 'f32tof16' : unimplemented intrinsic: handle natively
|
||||
ERROR: 4 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
ERROR: node is still EOpNull!
|
||||
0:8 Function Definition: PixelShaderFunction(f1; (temp float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'inF0' (in float)
|
||||
0:? Sequence
|
||||
0:3 ERROR: Bad unary op
|
||||
(global uint)
|
||||
0:3 'inF0' (in float)
|
||||
0:5 Branch: Return with expression
|
||||
0:5 Constant:
|
||||
0:5 0.000000
|
||||
0:14 Function Definition: PixelShaderFunction(vf1; (temp 1-component vector of float)
|
||||
0:9 Function Parameters:
|
||||
0:9 'inF0' (in 1-component vector of float)
|
||||
0:? Sequence
|
||||
0:11 Branch: Return with expression
|
||||
0:11 Constant:
|
||||
0:11 0.000000
|
||||
0:21 Function Definition: PixelShaderFunction(vf2; (temp 2-component vector of float)
|
||||
0:15 Function Parameters:
|
||||
0:15 'inF0' (in 2-component vector of float)
|
||||
0:? Sequence
|
||||
0:16 ERROR: Bad unary op
|
||||
(global 2-component vector of uint)
|
||||
0:16 'inF0' (in 2-component vector of float)
|
||||
0:18 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:28 Function Definition: PixelShaderFunction(vf3; (temp 3-component vector of float)
|
||||
0:22 Function Parameters:
|
||||
0:22 'inF0' (in 3-component vector of float)
|
||||
0:? Sequence
|
||||
0:23 ERROR: Bad unary op
|
||||
(global 3-component vector of uint)
|
||||
0:23 'inF0' (in 3-component vector of float)
|
||||
0:25 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:35 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:29 Function Parameters:
|
||||
0:29 'inF0' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:30 ERROR: Bad unary op
|
||||
(global 4-component vector of uint)
|
||||
0:30 'inF0' (in 4-component vector of float)
|
||||
0:32 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:? 4.000000
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
ERROR: node is still EOpNull!
|
||||
0:8 Function Definition: PixelShaderFunction(f1; (temp float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'inF0' (in float)
|
||||
0:? Sequence
|
||||
0:3 ERROR: Bad unary op
|
||||
(global uint)
|
||||
0:3 'inF0' (in float)
|
||||
0:5 Branch: Return with expression
|
||||
0:5 Constant:
|
||||
0:5 0.000000
|
||||
0:14 Function Definition: PixelShaderFunction(vf1; (temp 1-component vector of float)
|
||||
0:9 Function Parameters:
|
||||
0:9 'inF0' (in 1-component vector of float)
|
||||
0:? Sequence
|
||||
0:11 Branch: Return with expression
|
||||
0:11 Constant:
|
||||
0:11 0.000000
|
||||
0:21 Function Definition: PixelShaderFunction(vf2; (temp 2-component vector of float)
|
||||
0:15 Function Parameters:
|
||||
0:15 'inF0' (in 2-component vector of float)
|
||||
0:? Sequence
|
||||
0:16 ERROR: Bad unary op
|
||||
(global 2-component vector of uint)
|
||||
0:16 'inF0' (in 2-component vector of float)
|
||||
0:18 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:28 Function Definition: PixelShaderFunction(vf3; (temp 3-component vector of float)
|
||||
0:22 Function Parameters:
|
||||
0:22 'inF0' (in 3-component vector of float)
|
||||
0:? Sequence
|
||||
0:23 ERROR: Bad unary op
|
||||
(global 3-component vector of uint)
|
||||
0:23 'inF0' (in 3-component vector of float)
|
||||
0:25 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:35 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:29 Function Parameters:
|
||||
0:29 'inF0' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:30 ERROR: Bad unary op
|
||||
(global 4-component vector of uint)
|
||||
0:30 'inF0' (in 4-component vector of float)
|
||||
0:32 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:? 4.000000
|
||||
0:? Linker Objects
|
||||
|
||||
SPIR-V is not generated for failed compile or link
|
||||
3431
Test/baseResults/hlsl.intrinsics.frag.out
Normal file
3431
Test/baseResults/hlsl.intrinsics.frag.out
Normal file
File diff suppressed because it is too large
Load Diff
134
Test/baseResults/hlsl.intrinsics.lit.frag.out
Normal file
134
Test/baseResults/hlsl.intrinsics.lit.frag.out
Normal file
@ -0,0 +1,134 @@
|
||||
hlsl.intrinsics.lit.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (temp void)
|
||||
0:2 Function Parameters:
|
||||
0:2 'n_dot_l' (in float)
|
||||
0:2 'n_dot_h' (in float)
|
||||
0:2 'm' (in float)
|
||||
0:? Sequence
|
||||
0:3 move second child to first child (temp 4-component vector of float)
|
||||
0:3 'r0' (temp 4-component vector of float)
|
||||
0:3 Construct vec4 (temp 4-component vector of float)
|
||||
0:3 Constant:
|
||||
0:3 1.000000
|
||||
0:3 max (temp float)
|
||||
0:3 'n_dot_l' (in float)
|
||||
0:3 Constant:
|
||||
0:3 0.000000
|
||||
0:3 Test condition and select (temp float)
|
||||
0:3 Condition
|
||||
0:3 Compare Less Than (temp bool)
|
||||
0:3 min (temp float)
|
||||
0:3 'n_dot_l' (in float)
|
||||
0:3 'n_dot_h' (in float)
|
||||
0:3 Constant:
|
||||
0:3 0.000000
|
||||
0:3 true case
|
||||
0:3 Constant:
|
||||
0:3 0.000000
|
||||
0:3 false case
|
||||
0:3 component-wise multiply (temp float)
|
||||
0:3 'n_dot_h' (in float)
|
||||
0:3 'm' (in float)
|
||||
0:3 Constant:
|
||||
0:3 1.000000
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (temp void)
|
||||
0:2 Function Parameters:
|
||||
0:2 'n_dot_l' (in float)
|
||||
0:2 'n_dot_h' (in float)
|
||||
0:2 'm' (in float)
|
||||
0:? Sequence
|
||||
0:3 move second child to first child (temp 4-component vector of float)
|
||||
0:3 'r0' (temp 4-component vector of float)
|
||||
0:3 Construct vec4 (temp 4-component vector of float)
|
||||
0:3 Constant:
|
||||
0:3 1.000000
|
||||
0:3 max (temp float)
|
||||
0:3 'n_dot_l' (in float)
|
||||
0:3 Constant:
|
||||
0:3 0.000000
|
||||
0:3 Test condition and select (temp float)
|
||||
0:3 Condition
|
||||
0:3 Compare Less Than (temp bool)
|
||||
0:3 min (temp float)
|
||||
0:3 'n_dot_l' (in float)
|
||||
0:3 'n_dot_h' (in float)
|
||||
0:3 Constant:
|
||||
0:3 0.000000
|
||||
0:3 true case
|
||||
0:3 Constant:
|
||||
0:3 0.000000
|
||||
0:3 false case
|
||||
0:3 component-wise multiply (temp float)
|
||||
0:3 'n_dot_h' (in float)
|
||||
0:3 'm' (in float)
|
||||
0:3 Constant:
|
||||
0:3 1.000000
|
||||
0:? Linker Objects
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 33
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 12 19 28
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 9 "r0"
|
||||
Name 12 "n_dot_l"
|
||||
Name 19 "n_dot_h"
|
||||
Name 28 "m"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Function 7(fvec4)
|
||||
10: 6(float) Constant 1065353216
|
||||
11: TypePointer Input 6(float)
|
||||
12(n_dot_l): 11(ptr) Variable Input
|
||||
14: 6(float) Constant 0
|
||||
16: TypePointer Function 6(float)
|
||||
19(n_dot_h): 11(ptr) Variable Input
|
||||
22: TypeBool
|
||||
28(m): 11(ptr) Variable Input
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
9(r0): 8(ptr) Variable Function
|
||||
17: 16(ptr) Variable Function
|
||||
13: 6(float) Load 12(n_dot_l)
|
||||
15: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 13 14
|
||||
18: 6(float) Load 12(n_dot_l)
|
||||
20: 6(float) Load 19(n_dot_h)
|
||||
21: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 18 20
|
||||
23: 22(bool) FOrdLessThan 21 14
|
||||
SelectionMerge 25 None
|
||||
BranchConditional 23 24 26
|
||||
24: Label
|
||||
Store 17 14
|
||||
Branch 25
|
||||
26: Label
|
||||
27: 6(float) Load 19(n_dot_h)
|
||||
29: 6(float) Load 28(m)
|
||||
30: 6(float) FMul 27 29
|
||||
Store 17 30
|
||||
Branch 25
|
||||
25: Label
|
||||
31: 6(float) Load 17
|
||||
32: 7(fvec4) CompositeConstruct 10 15 31 10
|
||||
Store 9(r0) 32
|
||||
Return
|
||||
FunctionEnd
|
||||
886
Test/baseResults/hlsl.intrinsics.negative.comp.out
Normal file
886
Test/baseResults/hlsl.intrinsics.negative.comp.out
Normal file
@ -0,0 +1,886 @@
|
||||
hlsl.intrinsics.negative.comp
|
||||
ERROR: 0:7: 'asdouble' : no matching overloaded function found
|
||||
ERROR: 0:8: 'CheckAccessFullyMapped' : no matching overloaded function found
|
||||
ERROR: 0:9: 'clip' : no matching overloaded function found
|
||||
ERROR: 0:10: 'countbits' : no matching overloaded function found
|
||||
ERROR: 0:11: 'cross' : no matching overloaded function found
|
||||
ERROR: 0:12: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||
ERROR: 0:13: 'ddx' : no matching overloaded function found
|
||||
ERROR: 0:14: 'ddx_coarse' : no matching overloaded function found
|
||||
ERROR: 0:15: 'ddx_fine' : no matching overloaded function found
|
||||
ERROR: 0:16: 'ddy' : no matching overloaded function found
|
||||
ERROR: 0:17: 'ddy_coarse' : no matching overloaded function found
|
||||
ERROR: 0:18: 'ddy_fine' : no matching overloaded function found
|
||||
ERROR: 0:19: 'determinant' : no matching overloaded function found
|
||||
ERROR: 0:20: 'EvaluateAttributeAtCentroid' : no matching overloaded function found
|
||||
ERROR: 0:21: 'EvaluateAttributeAtSample' : no matching overloaded function found
|
||||
ERROR: 0:22: 'EvaluateAttributeSnapped' : no matching overloaded function found
|
||||
ERROR: 0:23: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:24: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:25: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:26: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:27: 'fwidth' : no matching overloaded function found
|
||||
ERROR: 0:28: 'InterlockedAdd' : no matching overloaded function found
|
||||
ERROR: 0:29: 'InterlockedAdd' : no matching overloaded function found
|
||||
ERROR: 0:30: 'InterlockedAnd' : no matching overloaded function found
|
||||
ERROR: 0:31: 'InterlockedAnd' : no matching overloaded function found
|
||||
ERROR: 0:32: 'InterlockedCompareExchange' : no matching overloaded function found
|
||||
ERROR: 0:33: 'InterlockedExchange' : no matching overloaded function found
|
||||
ERROR: 0:34: 'InterlockedMax' : no matching overloaded function found
|
||||
ERROR: 0:35: 'InterlockedMax' : no matching overloaded function found
|
||||
ERROR: 0:36: 'InterlockedMin' : no matching overloaded function found
|
||||
ERROR: 0:37: 'InterlockedMin' : no matching overloaded function found
|
||||
ERROR: 0:38: 'InterlockedOr' : no matching overloaded function found
|
||||
ERROR: 0:39: 'InterlockedOr' : no matching overloaded function found
|
||||
ERROR: 0:40: 'InterlockedXor' : no matching overloaded function found
|
||||
ERROR: 0:41: 'InterlockedXor' : no matching overloaded function found
|
||||
ERROR: 0:42: 'length' : no matching overloaded function found
|
||||
ERROR: 0:43: 'msad4' : no matching overloaded function found
|
||||
ERROR: 0:44: 'normalize' : no matching overloaded function found
|
||||
ERROR: 0:45: 'reflect' : no matching overloaded function found
|
||||
ERROR: 0:46: 'refract' : no matching overloaded function found
|
||||
ERROR: 0:47: 'refract' : no matching overloaded function found
|
||||
ERROR: 0:48: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:49: 'transpose' : no matching overloaded function found
|
||||
ERROR: 0:60: 'GetRenderTargetSamplePosition' : no matching overloaded function found
|
||||
ERROR: 0:69: 'asdouble' : no matching overloaded function found
|
||||
ERROR: 0:70: 'CheckAccessFullyMapped' : no matching overloaded function found
|
||||
ERROR: 0:71: 'countbits' : no matching overloaded function found
|
||||
ERROR: 0:72: 'cross' : no matching overloaded function found
|
||||
ERROR: 0:73: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||
ERROR: 0:74: 'ddx' : no matching overloaded function found
|
||||
ERROR: 0:75: 'ddx_coarse' : no matching overloaded function found
|
||||
ERROR: 0:76: 'ddx_fine' : no matching overloaded function found
|
||||
ERROR: 0:77: 'ddy' : no matching overloaded function found
|
||||
ERROR: 0:78: 'ddy_coarse' : no matching overloaded function found
|
||||
ERROR: 0:79: 'ddy_fine' : no matching overloaded function found
|
||||
ERROR: 0:80: 'determinant' : no matching overloaded function found
|
||||
ERROR: 0:81: 'EvaluateAttributeAtCentroid' : no matching overloaded function found
|
||||
ERROR: 0:82: 'EvaluateAttributeAtSample' : no matching overloaded function found
|
||||
ERROR: 0:83: 'EvaluateAttributeSnapped' : no matching overloaded function found
|
||||
ERROR: 0:84: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:85: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:86: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:87: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:88: 'fwidth' : no matching overloaded function found
|
||||
ERROR: 0:89: 'InterlockedAdd' : no matching overloaded function found
|
||||
ERROR: 0:90: 'InterlockedAdd' : no matching overloaded function found
|
||||
ERROR: 0:91: 'InterlockedAnd' : no matching overloaded function found
|
||||
ERROR: 0:92: 'InterlockedAnd' : no matching overloaded function found
|
||||
ERROR: 0:93: 'InterlockedCompareExchange' : no matching overloaded function found
|
||||
ERROR: 0:94: 'InterlockedExchange' : no matching overloaded function found
|
||||
ERROR: 0:95: 'InterlockedMax' : no matching overloaded function found
|
||||
ERROR: 0:96: 'InterlockedMax' : no matching overloaded function found
|
||||
ERROR: 0:97: 'InterlockedMin' : no matching overloaded function found
|
||||
ERROR: 0:98: 'InterlockedMin' : no matching overloaded function found
|
||||
ERROR: 0:99: 'InterlockedOr' : no matching overloaded function found
|
||||
ERROR: 0:100: 'InterlockedOr' : no matching overloaded function found
|
||||
ERROR: 0:101: 'InterlockedXor' : no matching overloaded function found
|
||||
ERROR: 0:102: 'InterlockedXor' : no matching overloaded function found
|
||||
ERROR: 0:103: 'noise' : no matching overloaded function found
|
||||
ERROR: 0:104: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:105: 'transpose' : no matching overloaded function found
|
||||
ERROR: 0:116: 'CheckAccessFullyMapped' : no matching overloaded function found
|
||||
ERROR: 0:117: 'countbits' : no matching overloaded function found
|
||||
ERROR: 0:118: 'ddx' : no matching overloaded function found
|
||||
ERROR: 0:119: 'ddx_coarse' : no matching overloaded function found
|
||||
ERROR: 0:120: 'ddx_fine' : no matching overloaded function found
|
||||
ERROR: 0:121: 'ddy' : no matching overloaded function found
|
||||
ERROR: 0:122: 'ddy_coarse' : no matching overloaded function found
|
||||
ERROR: 0:123: 'ddy_fine' : no matching overloaded function found
|
||||
ERROR: 0:124: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||
ERROR: 0:125: 'determinant' : no matching overloaded function found
|
||||
ERROR: 0:126: 'EvaluateAttributeAtCentroid' : no matching overloaded function found
|
||||
ERROR: 0:127: 'EvaluateAttributeAtSample' : no matching overloaded function found
|
||||
ERROR: 0:128: 'EvaluateAttributeSnapped' : no matching overloaded function found
|
||||
ERROR: 0:129: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:130: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:131: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:132: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:133: 'fwidth' : no matching overloaded function found
|
||||
ERROR: 0:134: 'InterlockedAdd' : no matching overloaded function found
|
||||
ERROR: 0:135: 'InterlockedAdd' : no matching overloaded function found
|
||||
ERROR: 0:136: 'InterlockedAnd' : no matching overloaded function found
|
||||
ERROR: 0:137: 'InterlockedAnd' : no matching overloaded function found
|
||||
ERROR: 0:138: 'InterlockedCompareExchange' : no matching overloaded function found
|
||||
ERROR: 0:139: 'InterlockedExchange' : no matching overloaded function found
|
||||
ERROR: 0:140: 'InterlockedMax' : no matching overloaded function found
|
||||
ERROR: 0:141: 'InterlockedMax' : no matching overloaded function found
|
||||
ERROR: 0:142: 'InterlockedMin' : no matching overloaded function found
|
||||
ERROR: 0:143: 'InterlockedMin' : no matching overloaded function found
|
||||
ERROR: 0:144: 'InterlockedOr' : no matching overloaded function found
|
||||
ERROR: 0:145: 'InterlockedOr' : no matching overloaded function found
|
||||
ERROR: 0:146: 'InterlockedXor' : no matching overloaded function found
|
||||
ERROR: 0:147: 'InterlockedXor' : no matching overloaded function found
|
||||
ERROR: 0:148: 'noise' : no matching overloaded function found
|
||||
ERROR: 0:149: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:150: 'transpose' : no matching overloaded function found
|
||||
ERROR: 0:161: 'CheckAccessFullyMapped' : no matching overloaded function found
|
||||
ERROR: 0:162: 'countbits' : no matching overloaded function found
|
||||
ERROR: 0:163: 'cross' : no matching overloaded function found
|
||||
ERROR: 0:164: 'determinant' : no matching overloaded function found
|
||||
ERROR: 0:165: 'ddx' : no matching overloaded function found
|
||||
ERROR: 0:166: 'ddx_coarse' : no matching overloaded function found
|
||||
ERROR: 0:167: 'ddx_fine' : no matching overloaded function found
|
||||
ERROR: 0:168: 'ddy' : no matching overloaded function found
|
||||
ERROR: 0:169: 'ddy_coarse' : no matching overloaded function found
|
||||
ERROR: 0:170: 'ddy_fine' : no matching overloaded function found
|
||||
ERROR: 0:171: 'EvaluateAttributeAtCentroid' : no matching overloaded function found
|
||||
ERROR: 0:172: 'EvaluateAttributeAtSample' : no matching overloaded function found
|
||||
ERROR: 0:173: 'EvaluateAttributeSnapped' : no matching overloaded function found
|
||||
ERROR: 0:174: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:175: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:176: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:177: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:178: 'fwidth' : no matching overloaded function found
|
||||
ERROR: 0:179: 'InterlockedAdd' : no matching overloaded function found
|
||||
ERROR: 0:180: 'InterlockedAdd' : no matching overloaded function found
|
||||
ERROR: 0:181: 'InterlockedAnd' : no matching overloaded function found
|
||||
ERROR: 0:182: 'InterlockedAnd' : no matching overloaded function found
|
||||
ERROR: 0:183: 'InterlockedCompareExchange' : no matching overloaded function found
|
||||
ERROR: 0:184: 'InterlockedExchange' : no matching overloaded function found
|
||||
ERROR: 0:185: 'InterlockedMax' : no matching overloaded function found
|
||||
ERROR: 0:186: 'InterlockedMax' : no matching overloaded function found
|
||||
ERROR: 0:187: 'InterlockedMin' : no matching overloaded function found
|
||||
ERROR: 0:188: 'InterlockedMin' : no matching overloaded function found
|
||||
ERROR: 0:189: 'InterlockedOr' : no matching overloaded function found
|
||||
ERROR: 0:190: 'InterlockedOr' : no matching overloaded function found
|
||||
ERROR: 0:191: 'InterlockedXor' : no matching overloaded function found
|
||||
ERROR: 0:192: 'InterlockedXor' : no matching overloaded function found
|
||||
ERROR: 0:193: 'noise' : no matching overloaded function found
|
||||
ERROR: 0:194: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:195: 'transpose' : no matching overloaded function found
|
||||
ERROR: 151 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
local_size = (1, 1, 1)
|
||||
ERROR: node is still EOpNull!
|
||||
0:56 Function Definition: ComputeShaderFunction(f1;f1;f1;i1; (temp float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'inF0' (in float)
|
||||
0:2 'inF1' (in float)
|
||||
0:2 'inF2' (in float)
|
||||
0:2 'inI0' (in int)
|
||||
0:? Sequence
|
||||
0:7 Constant:
|
||||
0:7 0.000000
|
||||
0:8 Constant:
|
||||
0:8 0.000000
|
||||
0:9 Constant:
|
||||
0:9 0.000000
|
||||
0:10 Constant:
|
||||
0:10 0.000000
|
||||
0:11 Constant:
|
||||
0:11 0.000000
|
||||
0:12 Constant:
|
||||
0:12 0.000000
|
||||
0:13 Constant:
|
||||
0:13 0.000000
|
||||
0:14 Constant:
|
||||
0:14 0.000000
|
||||
0:15 Constant:
|
||||
0:15 0.000000
|
||||
0:16 Constant:
|
||||
0:16 0.000000
|
||||
0:17 Constant:
|
||||
0:17 0.000000
|
||||
0:18 Constant:
|
||||
0:18 0.000000
|
||||
0:19 Constant:
|
||||
0:19 0.000000
|
||||
0:20 Constant:
|
||||
0:20 0.000000
|
||||
0:21 Constant:
|
||||
0:21 0.000000
|
||||
0:22 Constant:
|
||||
0:22 0.000000
|
||||
0:23 Constant:
|
||||
0:23 0.000000
|
||||
0:24 Constant:
|
||||
0:24 0.000000
|
||||
0:25 Constant:
|
||||
0:25 0.000000
|
||||
0:26 Constant:
|
||||
0:26 0.000000
|
||||
0:27 Constant:
|
||||
0:27 0.000000
|
||||
0:28 Constant:
|
||||
0:28 0.000000
|
||||
0:29 Constant:
|
||||
0:29 0.000000
|
||||
0:30 Constant:
|
||||
0:30 0.000000
|
||||
0:31 Constant:
|
||||
0:31 0.000000
|
||||
0:32 Constant:
|
||||
0:32 0.000000
|
||||
0:33 Constant:
|
||||
0:33 0.000000
|
||||
0:34 Constant:
|
||||
0:34 0.000000
|
||||
0:35 Constant:
|
||||
0:35 0.000000
|
||||
0:36 Constant:
|
||||
0:36 0.000000
|
||||
0:37 Constant:
|
||||
0:37 0.000000
|
||||
0:38 Constant:
|
||||
0:38 0.000000
|
||||
0:39 Constant:
|
||||
0:39 0.000000
|
||||
0:40 Constant:
|
||||
0:40 0.000000
|
||||
0:41 Constant:
|
||||
0:41 0.000000
|
||||
0:42 Constant:
|
||||
0:42 0.000000
|
||||
0:43 Constant:
|
||||
0:43 0.000000
|
||||
0:44 Constant:
|
||||
0:44 0.000000
|
||||
0:45 Constant:
|
||||
0:45 0.000000
|
||||
0:46 Constant:
|
||||
0:46 0.000000
|
||||
0:47 Constant:
|
||||
0:47 0.000000
|
||||
0:48 Constant:
|
||||
0:48 0.000000
|
||||
0:49 Constant:
|
||||
0:49 0.000000
|
||||
0:53 Branch: Return with expression
|
||||
0:53 Constant:
|
||||
0:53 0.000000
|
||||
0:65 Function Definition: ComputeShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
|
||||
0:57 Function Parameters:
|
||||
0:57 'inF0' (in 1-component vector of float)
|
||||
0:57 'inF1' (in 1-component vector of float)
|
||||
0:57 'inF2' (in 1-component vector of float)
|
||||
0:57 'inI0' (in 1-component vector of int)
|
||||
0:? Sequence
|
||||
0:60 Constant:
|
||||
0:60 0.000000
|
||||
0:62 Branch: Return with expression
|
||||
0:62 Constant:
|
||||
0:62 0.000000
|
||||
0:112 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
|
||||
0:66 Function Parameters:
|
||||
0:66 'inF0' (in 2-component vector of float)
|
||||
0:66 'inF1' (in 2-component vector of float)
|
||||
0:66 'inF2' (in 2-component vector of float)
|
||||
0:66 'inI0' (in 2-component vector of int)
|
||||
0:? Sequence
|
||||
0:69 Constant:
|
||||
0:69 0.000000
|
||||
0:70 Constant:
|
||||
0:70 0.000000
|
||||
0:71 Constant:
|
||||
0:71 0.000000
|
||||
0:72 Constant:
|
||||
0:72 0.000000
|
||||
0:73 Constant:
|
||||
0:73 0.000000
|
||||
0:74 Constant:
|
||||
0:74 0.000000
|
||||
0:75 Constant:
|
||||
0:75 0.000000
|
||||
0:76 Constant:
|
||||
0:76 0.000000
|
||||
0:77 Constant:
|
||||
0:77 0.000000
|
||||
0:78 Constant:
|
||||
0:78 0.000000
|
||||
0:79 Constant:
|
||||
0:79 0.000000
|
||||
0:80 Constant:
|
||||
0:80 0.000000
|
||||
0:81 Constant:
|
||||
0:81 0.000000
|
||||
0:82 Constant:
|
||||
0:82 0.000000
|
||||
0:83 Constant:
|
||||
0:83 0.000000
|
||||
0:84 Constant:
|
||||
0:84 0.000000
|
||||
0:85 Constant:
|
||||
0:85 0.000000
|
||||
0:86 Constant:
|
||||
0:86 0.000000
|
||||
0:87 Constant:
|
||||
0:87 0.000000
|
||||
0:88 Constant:
|
||||
0:88 0.000000
|
||||
0:89 Constant:
|
||||
0:89 0.000000
|
||||
0:90 Constant:
|
||||
0:90 0.000000
|
||||
0:91 Constant:
|
||||
0:91 0.000000
|
||||
0:92 Constant:
|
||||
0:92 0.000000
|
||||
0:93 Constant:
|
||||
0:93 0.000000
|
||||
0:94 Constant:
|
||||
0:94 0.000000
|
||||
0:95 Constant:
|
||||
0:95 0.000000
|
||||
0:96 Constant:
|
||||
0:96 0.000000
|
||||
0:97 Constant:
|
||||
0:97 0.000000
|
||||
0:98 Constant:
|
||||
0:98 0.000000
|
||||
0:99 Constant:
|
||||
0:99 0.000000
|
||||
0:100 Constant:
|
||||
0:100 0.000000
|
||||
0:101 Constant:
|
||||
0:101 0.000000
|
||||
0:102 Constant:
|
||||
0:102 0.000000
|
||||
0:103 Constant:
|
||||
0:103 0.000000
|
||||
0:104 Constant:
|
||||
0:104 0.000000
|
||||
0:105 Constant:
|
||||
0:105 0.000000
|
||||
0:109 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:157 Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
|
||||
0:113 Function Parameters:
|
||||
0:113 'inF0' (in 3-component vector of float)
|
||||
0:113 'inF1' (in 3-component vector of float)
|
||||
0:113 'inF2' (in 3-component vector of float)
|
||||
0:113 'inI0' (in 3-component vector of int)
|
||||
0:? Sequence
|
||||
0:116 Constant:
|
||||
0:116 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:119 Constant:
|
||||
0:119 0.000000
|
||||
0:120 Constant:
|
||||
0:120 0.000000
|
||||
0:121 Constant:
|
||||
0:121 0.000000
|
||||
0:122 Constant:
|
||||
0:122 0.000000
|
||||
0:123 Constant:
|
||||
0:123 0.000000
|
||||
0:124 Constant:
|
||||
0:124 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:127 Constant:
|
||||
0:127 0.000000
|
||||
0:128 Constant:
|
||||
0:128 0.000000
|
||||
0:129 Constant:
|
||||
0:129 0.000000
|
||||
0:130 Constant:
|
||||
0:130 0.000000
|
||||
0:131 Constant:
|
||||
0:131 0.000000
|
||||
0:132 Constant:
|
||||
0:132 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:135 Constant:
|
||||
0:135 0.000000
|
||||
0:136 Constant:
|
||||
0:136 0.000000
|
||||
0:137 Constant:
|
||||
0:137 0.000000
|
||||
0:138 Constant:
|
||||
0:138 0.000000
|
||||
0:139 Constant:
|
||||
0:139 0.000000
|
||||
0:140 Constant:
|
||||
0:140 0.000000
|
||||
0:141 Constant:
|
||||
0:141 0.000000
|
||||
0:142 Constant:
|
||||
0:142 0.000000
|
||||
0:143 Constant:
|
||||
0:143 0.000000
|
||||
0:144 Constant:
|
||||
0:144 0.000000
|
||||
0:145 Constant:
|
||||
0:145 0.000000
|
||||
0:146 Constant:
|
||||
0:146 0.000000
|
||||
0:147 Constant:
|
||||
0:147 0.000000
|
||||
0:148 Constant:
|
||||
0:148 0.000000
|
||||
0:149 Constant:
|
||||
0:149 0.000000
|
||||
0:150 Constant:
|
||||
0:150 0.000000
|
||||
0:154 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
|
||||
0:158 Function Parameters:
|
||||
0:158 'inF0' (in 4-component vector of float)
|
||||
0:158 'inF1' (in 4-component vector of float)
|
||||
0:158 'inF2' (in 4-component vector of float)
|
||||
0:158 'inI0' (in 4-component vector of int)
|
||||
0:? Sequence
|
||||
0:161 Constant:
|
||||
0:161 0.000000
|
||||
0:162 Constant:
|
||||
0:162 0.000000
|
||||
0:163 Constant:
|
||||
0:163 0.000000
|
||||
0:164 Constant:
|
||||
0:164 0.000000
|
||||
0:165 Constant:
|
||||
0:165 0.000000
|
||||
0:166 Constant:
|
||||
0:166 0.000000
|
||||
0:167 Constant:
|
||||
0:167 0.000000
|
||||
0:168 Constant:
|
||||
0:168 0.000000
|
||||
0:169 Constant:
|
||||
0:169 0.000000
|
||||
0:170 Constant:
|
||||
0:170 0.000000
|
||||
0:171 Constant:
|
||||
0:171 0.000000
|
||||
0:172 Constant:
|
||||
0:172 0.000000
|
||||
0:173 Constant:
|
||||
0:173 0.000000
|
||||
0:174 Constant:
|
||||
0:174 0.000000
|
||||
0:175 Constant:
|
||||
0:175 0.000000
|
||||
0:176 Constant:
|
||||
0:176 0.000000
|
||||
0:177 Constant:
|
||||
0:177 0.000000
|
||||
0:178 Constant:
|
||||
0:178 0.000000
|
||||
0:179 Constant:
|
||||
0:179 0.000000
|
||||
0:180 Constant:
|
||||
0:180 0.000000
|
||||
0:181 Constant:
|
||||
0:181 0.000000
|
||||
0:182 Constant:
|
||||
0:182 0.000000
|
||||
0:183 Constant:
|
||||
0:183 0.000000
|
||||
0:184 Constant:
|
||||
0:184 0.000000
|
||||
0:185 Constant:
|
||||
0:185 0.000000
|
||||
0:186 Constant:
|
||||
0:186 0.000000
|
||||
0:187 Constant:
|
||||
0:187 0.000000
|
||||
0:188 Constant:
|
||||
0:188 0.000000
|
||||
0:189 Constant:
|
||||
0:189 0.000000
|
||||
0:190 Constant:
|
||||
0:190 0.000000
|
||||
0:191 Constant:
|
||||
0:191 0.000000
|
||||
0:192 Constant:
|
||||
0:192 0.000000
|
||||
0:193 Constant:
|
||||
0:193 0.000000
|
||||
0:194 Constant:
|
||||
0:194 0.000000
|
||||
0:195 Constant:
|
||||
0:195 0.000000
|
||||
0:199 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:? 4.000000
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
local_size = (1, 1, 1)
|
||||
ERROR: node is still EOpNull!
|
||||
0:56 Function Definition: ComputeShaderFunction(f1;f1;f1;i1; (temp float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'inF0' (in float)
|
||||
0:2 'inF1' (in float)
|
||||
0:2 'inF2' (in float)
|
||||
0:2 'inI0' (in int)
|
||||
0:? Sequence
|
||||
0:7 Constant:
|
||||
0:7 0.000000
|
||||
0:8 Constant:
|
||||
0:8 0.000000
|
||||
0:9 Constant:
|
||||
0:9 0.000000
|
||||
0:10 Constant:
|
||||
0:10 0.000000
|
||||
0:11 Constant:
|
||||
0:11 0.000000
|
||||
0:12 Constant:
|
||||
0:12 0.000000
|
||||
0:13 Constant:
|
||||
0:13 0.000000
|
||||
0:14 Constant:
|
||||
0:14 0.000000
|
||||
0:15 Constant:
|
||||
0:15 0.000000
|
||||
0:16 Constant:
|
||||
0:16 0.000000
|
||||
0:17 Constant:
|
||||
0:17 0.000000
|
||||
0:18 Constant:
|
||||
0:18 0.000000
|
||||
0:19 Constant:
|
||||
0:19 0.000000
|
||||
0:20 Constant:
|
||||
0:20 0.000000
|
||||
0:21 Constant:
|
||||
0:21 0.000000
|
||||
0:22 Constant:
|
||||
0:22 0.000000
|
||||
0:23 Constant:
|
||||
0:23 0.000000
|
||||
0:24 Constant:
|
||||
0:24 0.000000
|
||||
0:25 Constant:
|
||||
0:25 0.000000
|
||||
0:26 Constant:
|
||||
0:26 0.000000
|
||||
0:27 Constant:
|
||||
0:27 0.000000
|
||||
0:28 Constant:
|
||||
0:28 0.000000
|
||||
0:29 Constant:
|
||||
0:29 0.000000
|
||||
0:30 Constant:
|
||||
0:30 0.000000
|
||||
0:31 Constant:
|
||||
0:31 0.000000
|
||||
0:32 Constant:
|
||||
0:32 0.000000
|
||||
0:33 Constant:
|
||||
0:33 0.000000
|
||||
0:34 Constant:
|
||||
0:34 0.000000
|
||||
0:35 Constant:
|
||||
0:35 0.000000
|
||||
0:36 Constant:
|
||||
0:36 0.000000
|
||||
0:37 Constant:
|
||||
0:37 0.000000
|
||||
0:38 Constant:
|
||||
0:38 0.000000
|
||||
0:39 Constant:
|
||||
0:39 0.000000
|
||||
0:40 Constant:
|
||||
0:40 0.000000
|
||||
0:41 Constant:
|
||||
0:41 0.000000
|
||||
0:42 Constant:
|
||||
0:42 0.000000
|
||||
0:43 Constant:
|
||||
0:43 0.000000
|
||||
0:44 Constant:
|
||||
0:44 0.000000
|
||||
0:45 Constant:
|
||||
0:45 0.000000
|
||||
0:46 Constant:
|
||||
0:46 0.000000
|
||||
0:47 Constant:
|
||||
0:47 0.000000
|
||||
0:48 Constant:
|
||||
0:48 0.000000
|
||||
0:49 Constant:
|
||||
0:49 0.000000
|
||||
0:53 Branch: Return with expression
|
||||
0:53 Constant:
|
||||
0:53 0.000000
|
||||
0:65 Function Definition: ComputeShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
|
||||
0:57 Function Parameters:
|
||||
0:57 'inF0' (in 1-component vector of float)
|
||||
0:57 'inF1' (in 1-component vector of float)
|
||||
0:57 'inF2' (in 1-component vector of float)
|
||||
0:57 'inI0' (in 1-component vector of int)
|
||||
0:? Sequence
|
||||
0:60 Constant:
|
||||
0:60 0.000000
|
||||
0:62 Branch: Return with expression
|
||||
0:62 Constant:
|
||||
0:62 0.000000
|
||||
0:112 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
|
||||
0:66 Function Parameters:
|
||||
0:66 'inF0' (in 2-component vector of float)
|
||||
0:66 'inF1' (in 2-component vector of float)
|
||||
0:66 'inF2' (in 2-component vector of float)
|
||||
0:66 'inI0' (in 2-component vector of int)
|
||||
0:? Sequence
|
||||
0:69 Constant:
|
||||
0:69 0.000000
|
||||
0:70 Constant:
|
||||
0:70 0.000000
|
||||
0:71 Constant:
|
||||
0:71 0.000000
|
||||
0:72 Constant:
|
||||
0:72 0.000000
|
||||
0:73 Constant:
|
||||
0:73 0.000000
|
||||
0:74 Constant:
|
||||
0:74 0.000000
|
||||
0:75 Constant:
|
||||
0:75 0.000000
|
||||
0:76 Constant:
|
||||
0:76 0.000000
|
||||
0:77 Constant:
|
||||
0:77 0.000000
|
||||
0:78 Constant:
|
||||
0:78 0.000000
|
||||
0:79 Constant:
|
||||
0:79 0.000000
|
||||
0:80 Constant:
|
||||
0:80 0.000000
|
||||
0:81 Constant:
|
||||
0:81 0.000000
|
||||
0:82 Constant:
|
||||
0:82 0.000000
|
||||
0:83 Constant:
|
||||
0:83 0.000000
|
||||
0:84 Constant:
|
||||
0:84 0.000000
|
||||
0:85 Constant:
|
||||
0:85 0.000000
|
||||
0:86 Constant:
|
||||
0:86 0.000000
|
||||
0:87 Constant:
|
||||
0:87 0.000000
|
||||
0:88 Constant:
|
||||
0:88 0.000000
|
||||
0:89 Constant:
|
||||
0:89 0.000000
|
||||
0:90 Constant:
|
||||
0:90 0.000000
|
||||
0:91 Constant:
|
||||
0:91 0.000000
|
||||
0:92 Constant:
|
||||
0:92 0.000000
|
||||
0:93 Constant:
|
||||
0:93 0.000000
|
||||
0:94 Constant:
|
||||
0:94 0.000000
|
||||
0:95 Constant:
|
||||
0:95 0.000000
|
||||
0:96 Constant:
|
||||
0:96 0.000000
|
||||
0:97 Constant:
|
||||
0:97 0.000000
|
||||
0:98 Constant:
|
||||
0:98 0.000000
|
||||
0:99 Constant:
|
||||
0:99 0.000000
|
||||
0:100 Constant:
|
||||
0:100 0.000000
|
||||
0:101 Constant:
|
||||
0:101 0.000000
|
||||
0:102 Constant:
|
||||
0:102 0.000000
|
||||
0:103 Constant:
|
||||
0:103 0.000000
|
||||
0:104 Constant:
|
||||
0:104 0.000000
|
||||
0:105 Constant:
|
||||
0:105 0.000000
|
||||
0:109 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:157 Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
|
||||
0:113 Function Parameters:
|
||||
0:113 'inF0' (in 3-component vector of float)
|
||||
0:113 'inF1' (in 3-component vector of float)
|
||||
0:113 'inF2' (in 3-component vector of float)
|
||||
0:113 'inI0' (in 3-component vector of int)
|
||||
0:? Sequence
|
||||
0:116 Constant:
|
||||
0:116 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:119 Constant:
|
||||
0:119 0.000000
|
||||
0:120 Constant:
|
||||
0:120 0.000000
|
||||
0:121 Constant:
|
||||
0:121 0.000000
|
||||
0:122 Constant:
|
||||
0:122 0.000000
|
||||
0:123 Constant:
|
||||
0:123 0.000000
|
||||
0:124 Constant:
|
||||
0:124 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:127 Constant:
|
||||
0:127 0.000000
|
||||
0:128 Constant:
|
||||
0:128 0.000000
|
||||
0:129 Constant:
|
||||
0:129 0.000000
|
||||
0:130 Constant:
|
||||
0:130 0.000000
|
||||
0:131 Constant:
|
||||
0:131 0.000000
|
||||
0:132 Constant:
|
||||
0:132 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:135 Constant:
|
||||
0:135 0.000000
|
||||
0:136 Constant:
|
||||
0:136 0.000000
|
||||
0:137 Constant:
|
||||
0:137 0.000000
|
||||
0:138 Constant:
|
||||
0:138 0.000000
|
||||
0:139 Constant:
|
||||
0:139 0.000000
|
||||
0:140 Constant:
|
||||
0:140 0.000000
|
||||
0:141 Constant:
|
||||
0:141 0.000000
|
||||
0:142 Constant:
|
||||
0:142 0.000000
|
||||
0:143 Constant:
|
||||
0:143 0.000000
|
||||
0:144 Constant:
|
||||
0:144 0.000000
|
||||
0:145 Constant:
|
||||
0:145 0.000000
|
||||
0:146 Constant:
|
||||
0:146 0.000000
|
||||
0:147 Constant:
|
||||
0:147 0.000000
|
||||
0:148 Constant:
|
||||
0:148 0.000000
|
||||
0:149 Constant:
|
||||
0:149 0.000000
|
||||
0:150 Constant:
|
||||
0:150 0.000000
|
||||
0:154 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
|
||||
0:158 Function Parameters:
|
||||
0:158 'inF0' (in 4-component vector of float)
|
||||
0:158 'inF1' (in 4-component vector of float)
|
||||
0:158 'inF2' (in 4-component vector of float)
|
||||
0:158 'inI0' (in 4-component vector of int)
|
||||
0:? Sequence
|
||||
0:161 Constant:
|
||||
0:161 0.000000
|
||||
0:162 Constant:
|
||||
0:162 0.000000
|
||||
0:163 Constant:
|
||||
0:163 0.000000
|
||||
0:164 Constant:
|
||||
0:164 0.000000
|
||||
0:165 Constant:
|
||||
0:165 0.000000
|
||||
0:166 Constant:
|
||||
0:166 0.000000
|
||||
0:167 Constant:
|
||||
0:167 0.000000
|
||||
0:168 Constant:
|
||||
0:168 0.000000
|
||||
0:169 Constant:
|
||||
0:169 0.000000
|
||||
0:170 Constant:
|
||||
0:170 0.000000
|
||||
0:171 Constant:
|
||||
0:171 0.000000
|
||||
0:172 Constant:
|
||||
0:172 0.000000
|
||||
0:173 Constant:
|
||||
0:173 0.000000
|
||||
0:174 Constant:
|
||||
0:174 0.000000
|
||||
0:175 Constant:
|
||||
0:175 0.000000
|
||||
0:176 Constant:
|
||||
0:176 0.000000
|
||||
0:177 Constant:
|
||||
0:177 0.000000
|
||||
0:178 Constant:
|
||||
0:178 0.000000
|
||||
0:179 Constant:
|
||||
0:179 0.000000
|
||||
0:180 Constant:
|
||||
0:180 0.000000
|
||||
0:181 Constant:
|
||||
0:181 0.000000
|
||||
0:182 Constant:
|
||||
0:182 0.000000
|
||||
0:183 Constant:
|
||||
0:183 0.000000
|
||||
0:184 Constant:
|
||||
0:184 0.000000
|
||||
0:185 Constant:
|
||||
0:185 0.000000
|
||||
0:186 Constant:
|
||||
0:186 0.000000
|
||||
0:187 Constant:
|
||||
0:187 0.000000
|
||||
0:188 Constant:
|
||||
0:188 0.000000
|
||||
0:189 Constant:
|
||||
0:189 0.000000
|
||||
0:190 Constant:
|
||||
0:190 0.000000
|
||||
0:191 Constant:
|
||||
0:191 0.000000
|
||||
0:192 Constant:
|
||||
0:192 0.000000
|
||||
0:193 Constant:
|
||||
0:193 0.000000
|
||||
0:194 Constant:
|
||||
0:194 0.000000
|
||||
0:195 Constant:
|
||||
0:195 0.000000
|
||||
0:199 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:? 4.000000
|
||||
0:? Linker Objects
|
||||
|
||||
SPIR-V is not generated for failed compile or link
|
||||
702
Test/baseResults/hlsl.intrinsics.negative.frag.out
Normal file
702
Test/baseResults/hlsl.intrinsics.negative.frag.out
Normal file
@ -0,0 +1,702 @@
|
||||
hlsl.intrinsics.negative.frag
|
||||
ERROR: 0:5: 'asdouble' : no matching overloaded function found
|
||||
ERROR: 0:6: 'CheckAccessFullyMapped' : no matching overloaded function found
|
||||
ERROR: 0:7: 'countbits' : no matching overloaded function found
|
||||
ERROR: 0:8: 'cross' : no matching overloaded function found
|
||||
ERROR: 0:9: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||
ERROR: 0:10: 'determinant' : no matching overloaded function found
|
||||
ERROR: 0:12: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:13: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:14: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:15: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:23: 'length' : no matching overloaded function found
|
||||
ERROR: 0:24: 'msad4' : no matching overloaded function found
|
||||
ERROR: 0:25: 'normalize' : no matching overloaded function found
|
||||
ERROR: 0:26: 'reflect' : no matching overloaded function found
|
||||
ERROR: 0:27: 'refract' : no matching overloaded function found
|
||||
ERROR: 0:28: 'refract' : no matching overloaded function found
|
||||
ERROR: 0:29: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:30: 'transpose' : no matching overloaded function found
|
||||
ERROR: 0:39: 'GetRenderTargetSamplePosition' : no matching overloaded function found
|
||||
ERROR: 0:46: 'asdouble' : no matching overloaded function found
|
||||
ERROR: 0:47: 'CheckAccessFullyMapped' : no matching overloaded function found
|
||||
ERROR: 0:48: 'countbits' : no matching overloaded function found
|
||||
ERROR: 0:49: 'cross' : no matching overloaded function found
|
||||
ERROR: 0:50: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||
ERROR: 0:51: 'determinant' : no matching overloaded function found
|
||||
ERROR: 0:52: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:53: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:54: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:55: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:56: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:57: 'transpose' : no matching overloaded function found
|
||||
ERROR: 0:64: 'CheckAccessFullyMapped' : no matching overloaded function found
|
||||
ERROR: 0:65: 'countbits' : no matching overloaded function found
|
||||
ERROR: 0:66: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||
ERROR: 0:67: 'determinant' : no matching overloaded function found
|
||||
ERROR: 0:68: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:69: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:70: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:71: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:72: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:73: 'transpose' : no matching overloaded function found
|
||||
ERROR: 0:81: 'CheckAccessFullyMapped' : no matching overloaded function found
|
||||
ERROR: 0:82: 'countbits' : no matching overloaded function found
|
||||
ERROR: 0:83: 'cross' : no matching overloaded function found
|
||||
ERROR: 0:84: 'determinant' : no matching overloaded function found
|
||||
ERROR: 0:85: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:86: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:87: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:88: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:89: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:90: 'transpose' : no matching overloaded function found
|
||||
ERROR: 0:118: 'countbits' : no matching overloaded function found
|
||||
ERROR: 0:118: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||
ERROR: 0:118: 'cross' : no matching overloaded function found
|
||||
ERROR: 0:118: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:118: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:118: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:118: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:118: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:118: 'length' : no matching overloaded function found
|
||||
ERROR: 0:118: 'noise' : no matching overloaded function found
|
||||
ERROR: 0:118: 'normalize' : no matching overloaded function found
|
||||
ERROR: 0:118: 'reflect' : no matching overloaded function found
|
||||
ERROR: 0:118: 'refract' : no matching overloaded function found
|
||||
ERROR: 0:118: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:126: 'countbits' : no matching overloaded function found
|
||||
ERROR: 0:126: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||
ERROR: 0:126: 'cross' : no matching overloaded function found
|
||||
ERROR: 0:126: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:126: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:126: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:126: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:126: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:126: 'length' : no matching overloaded function found
|
||||
ERROR: 0:126: 'noise' : no matching overloaded function found
|
||||
ERROR: 0:126: 'normalize' : no matching overloaded function found
|
||||
ERROR: 0:126: 'reflect' : no matching overloaded function found
|
||||
ERROR: 0:126: 'refract' : no matching overloaded function found
|
||||
ERROR: 0:126: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:134: 'countbits' : no matching overloaded function found
|
||||
ERROR: 0:134: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||
ERROR: 0:134: 'cross' : no matching overloaded function found
|
||||
ERROR: 0:134: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:134: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:134: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:134: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:134: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:134: 'length' : no matching overloaded function found
|
||||
ERROR: 0:134: 'noise' : no matching overloaded function found
|
||||
ERROR: 0:134: 'normalize' : no matching overloaded function found
|
||||
ERROR: 0:134: 'reflect' : no matching overloaded function found
|
||||
ERROR: 0:134: 'refract' : no matching overloaded function found
|
||||
ERROR: 0:134: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 93 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
ERROR: node is still EOpNull!
|
||||
0:35 Function Definition: PixelShaderFunction(f1;f1;f1;i1; (temp float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'inF0' (in float)
|
||||
0:2 'inF1' (in float)
|
||||
0:2 'inF2' (in float)
|
||||
0:2 'inI0' (in int)
|
||||
0:? Sequence
|
||||
0:5 Constant:
|
||||
0:5 0.000000
|
||||
0:6 Constant:
|
||||
0:6 0.000000
|
||||
0:7 Constant:
|
||||
0:7 0.000000
|
||||
0:8 Constant:
|
||||
0:8 0.000000
|
||||
0:9 Constant:
|
||||
0:9 0.000000
|
||||
0:10 Constant:
|
||||
0:10 0.000000
|
||||
0:12 Constant:
|
||||
0:12 0.000000
|
||||
0:13 Constant:
|
||||
0:13 0.000000
|
||||
0:14 Constant:
|
||||
0:14 0.000000
|
||||
0:15 Constant:
|
||||
0:15 0.000000
|
||||
0:23 Constant:
|
||||
0:23 0.000000
|
||||
0:24 Constant:
|
||||
0:24 0.000000
|
||||
0:25 Constant:
|
||||
0:25 0.000000
|
||||
0:26 Constant:
|
||||
0:26 0.000000
|
||||
0:27 Constant:
|
||||
0:27 0.000000
|
||||
0:28 Constant:
|
||||
0:28 0.000000
|
||||
0:29 Constant:
|
||||
0:29 0.000000
|
||||
0:30 Constant:
|
||||
0:30 0.000000
|
||||
0:32 Branch: Return with expression
|
||||
0:32 Constant:
|
||||
0:32 0.000000
|
||||
0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
|
||||
0:36 Function Parameters:
|
||||
0:36 'inF0' (in 1-component vector of float)
|
||||
0:36 'inF1' (in 1-component vector of float)
|
||||
0:36 'inF2' (in 1-component vector of float)
|
||||
0:36 'inI0' (in 1-component vector of int)
|
||||
0:? Sequence
|
||||
0:39 Constant:
|
||||
0:39 0.000000
|
||||
0:41 Branch: Return with expression
|
||||
0:41 Constant:
|
||||
0:41 0.000000
|
||||
0:62 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
|
||||
0:45 Function Parameters:
|
||||
0:45 'inF0' (in 2-component vector of float)
|
||||
0:45 'inF1' (in 2-component vector of float)
|
||||
0:45 'inF2' (in 2-component vector of float)
|
||||
0:45 'inI0' (in 2-component vector of int)
|
||||
0:? Sequence
|
||||
0:46 Constant:
|
||||
0:46 0.000000
|
||||
0:47 Constant:
|
||||
0:47 0.000000
|
||||
0:48 Constant:
|
||||
0:48 0.000000
|
||||
0:49 Constant:
|
||||
0:49 0.000000
|
||||
0:50 Constant:
|
||||
0:50 0.000000
|
||||
0:51 Constant:
|
||||
0:51 0.000000
|
||||
0:52 Constant:
|
||||
0:52 0.000000
|
||||
0:53 Constant:
|
||||
0:53 0.000000
|
||||
0:54 Constant:
|
||||
0:54 0.000000
|
||||
0:55 Constant:
|
||||
0:55 0.000000
|
||||
0:56 Constant:
|
||||
0:56 0.000000
|
||||
0:57 Constant:
|
||||
0:57 0.000000
|
||||
0:59 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:79 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
|
||||
0:63 Function Parameters:
|
||||
0:63 'inF0' (in 3-component vector of float)
|
||||
0:63 'inF1' (in 3-component vector of float)
|
||||
0:63 'inF2' (in 3-component vector of float)
|
||||
0:63 'inI0' (in 3-component vector of int)
|
||||
0:? Sequence
|
||||
0:64 Constant:
|
||||
0:64 0.000000
|
||||
0:65 Constant:
|
||||
0:65 0.000000
|
||||
0:66 Constant:
|
||||
0:66 0.000000
|
||||
0:67 Constant:
|
||||
0:67 0.000000
|
||||
0:68 Constant:
|
||||
0:68 0.000000
|
||||
0:69 Constant:
|
||||
0:69 0.000000
|
||||
0:70 Constant:
|
||||
0:70 0.000000
|
||||
0:71 Constant:
|
||||
0:71 0.000000
|
||||
0:72 Constant:
|
||||
0:72 0.000000
|
||||
0:73 Constant:
|
||||
0:73 0.000000
|
||||
0:76 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:115 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
|
||||
0:80 Function Parameters:
|
||||
0:80 'inF0' (in 4-component vector of float)
|
||||
0:80 'inF1' (in 4-component vector of float)
|
||||
0:80 'inF2' (in 4-component vector of float)
|
||||
0:80 'inI0' (in 4-component vector of int)
|
||||
0:? Sequence
|
||||
0:81 Constant:
|
||||
0:81 0.000000
|
||||
0:82 Constant:
|
||||
0:82 0.000000
|
||||
0:83 Constant:
|
||||
0:83 0.000000
|
||||
0:84 Constant:
|
||||
0:84 0.000000
|
||||
0:85 Constant:
|
||||
0:85 0.000000
|
||||
0:86 Constant:
|
||||
0:86 0.000000
|
||||
0:87 Constant:
|
||||
0:87 0.000000
|
||||
0:88 Constant:
|
||||
0:88 0.000000
|
||||
0:89 Constant:
|
||||
0:89 0.000000
|
||||
0:90 Constant:
|
||||
0:90 0.000000
|
||||
0:92 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:? 4.000000
|
||||
0:123 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
|
||||
0:116 Function Parameters:
|
||||
0:116 'inF0' (in 2X2 matrix of float)
|
||||
0:116 'inF1' (in 2X2 matrix of float)
|
||||
0:116 'inF2' (in 2X2 matrix of float)
|
||||
0:? Sequence
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:120 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 2.000000
|
||||
0:? 2.000000
|
||||
0:? 2.000000
|
||||
0:? 2.000000
|
||||
0:131 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float)
|
||||
0:124 Function Parameters:
|
||||
0:124 'inF0' (in 3X3 matrix of float)
|
||||
0:124 'inF1' (in 3X3 matrix of float)
|
||||
0:124 'inF2' (in 3X3 matrix of float)
|
||||
0:? Sequence
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:128 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 3.000000
|
||||
0:? 3.000000
|
||||
0:? 3.000000
|
||||
0:? 3.000000
|
||||
0:? 3.000000
|
||||
0:? 3.000000
|
||||
0:? 3.000000
|
||||
0:? 3.000000
|
||||
0:? 3.000000
|
||||
0:138 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float)
|
||||
0:132 Function Parameters:
|
||||
0:132 'inF0' (in 4X4 matrix of float)
|
||||
0:132 'inF1' (in 4X4 matrix of float)
|
||||
0:132 'inF2' (in 4X4 matrix of float)
|
||||
0:? Sequence
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:136 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
ERROR: node is still EOpNull!
|
||||
0:35 Function Definition: PixelShaderFunction(f1;f1;f1;i1; (temp float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'inF0' (in float)
|
||||
0:2 'inF1' (in float)
|
||||
0:2 'inF2' (in float)
|
||||
0:2 'inI0' (in int)
|
||||
0:? Sequence
|
||||
0:5 Constant:
|
||||
0:5 0.000000
|
||||
0:6 Constant:
|
||||
0:6 0.000000
|
||||
0:7 Constant:
|
||||
0:7 0.000000
|
||||
0:8 Constant:
|
||||
0:8 0.000000
|
||||
0:9 Constant:
|
||||
0:9 0.000000
|
||||
0:10 Constant:
|
||||
0:10 0.000000
|
||||
0:12 Constant:
|
||||
0:12 0.000000
|
||||
0:13 Constant:
|
||||
0:13 0.000000
|
||||
0:14 Constant:
|
||||
0:14 0.000000
|
||||
0:15 Constant:
|
||||
0:15 0.000000
|
||||
0:23 Constant:
|
||||
0:23 0.000000
|
||||
0:24 Constant:
|
||||
0:24 0.000000
|
||||
0:25 Constant:
|
||||
0:25 0.000000
|
||||
0:26 Constant:
|
||||
0:26 0.000000
|
||||
0:27 Constant:
|
||||
0:27 0.000000
|
||||
0:28 Constant:
|
||||
0:28 0.000000
|
||||
0:29 Constant:
|
||||
0:29 0.000000
|
||||
0:30 Constant:
|
||||
0:30 0.000000
|
||||
0:32 Branch: Return with expression
|
||||
0:32 Constant:
|
||||
0:32 0.000000
|
||||
0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
|
||||
0:36 Function Parameters:
|
||||
0:36 'inF0' (in 1-component vector of float)
|
||||
0:36 'inF1' (in 1-component vector of float)
|
||||
0:36 'inF2' (in 1-component vector of float)
|
||||
0:36 'inI0' (in 1-component vector of int)
|
||||
0:? Sequence
|
||||
0:39 Constant:
|
||||
0:39 0.000000
|
||||
0:41 Branch: Return with expression
|
||||
0:41 Constant:
|
||||
0:41 0.000000
|
||||
0:62 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
|
||||
0:45 Function Parameters:
|
||||
0:45 'inF0' (in 2-component vector of float)
|
||||
0:45 'inF1' (in 2-component vector of float)
|
||||
0:45 'inF2' (in 2-component vector of float)
|
||||
0:45 'inI0' (in 2-component vector of int)
|
||||
0:? Sequence
|
||||
0:46 Constant:
|
||||
0:46 0.000000
|
||||
0:47 Constant:
|
||||
0:47 0.000000
|
||||
0:48 Constant:
|
||||
0:48 0.000000
|
||||
0:49 Constant:
|
||||
0:49 0.000000
|
||||
0:50 Constant:
|
||||
0:50 0.000000
|
||||
0:51 Constant:
|
||||
0:51 0.000000
|
||||
0:52 Constant:
|
||||
0:52 0.000000
|
||||
0:53 Constant:
|
||||
0:53 0.000000
|
||||
0:54 Constant:
|
||||
0:54 0.000000
|
||||
0:55 Constant:
|
||||
0:55 0.000000
|
||||
0:56 Constant:
|
||||
0:56 0.000000
|
||||
0:57 Constant:
|
||||
0:57 0.000000
|
||||
0:59 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:79 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
|
||||
0:63 Function Parameters:
|
||||
0:63 'inF0' (in 3-component vector of float)
|
||||
0:63 'inF1' (in 3-component vector of float)
|
||||
0:63 'inF2' (in 3-component vector of float)
|
||||
0:63 'inI0' (in 3-component vector of int)
|
||||
0:? Sequence
|
||||
0:64 Constant:
|
||||
0:64 0.000000
|
||||
0:65 Constant:
|
||||
0:65 0.000000
|
||||
0:66 Constant:
|
||||
0:66 0.000000
|
||||
0:67 Constant:
|
||||
0:67 0.000000
|
||||
0:68 Constant:
|
||||
0:68 0.000000
|
||||
0:69 Constant:
|
||||
0:69 0.000000
|
||||
0:70 Constant:
|
||||
0:70 0.000000
|
||||
0:71 Constant:
|
||||
0:71 0.000000
|
||||
0:72 Constant:
|
||||
0:72 0.000000
|
||||
0:73 Constant:
|
||||
0:73 0.000000
|
||||
0:76 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:115 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
|
||||
0:80 Function Parameters:
|
||||
0:80 'inF0' (in 4-component vector of float)
|
||||
0:80 'inF1' (in 4-component vector of float)
|
||||
0:80 'inF2' (in 4-component vector of float)
|
||||
0:80 'inI0' (in 4-component vector of int)
|
||||
0:? Sequence
|
||||
0:81 Constant:
|
||||
0:81 0.000000
|
||||
0:82 Constant:
|
||||
0:82 0.000000
|
||||
0:83 Constant:
|
||||
0:83 0.000000
|
||||
0:84 Constant:
|
||||
0:84 0.000000
|
||||
0:85 Constant:
|
||||
0:85 0.000000
|
||||
0:86 Constant:
|
||||
0:86 0.000000
|
||||
0:87 Constant:
|
||||
0:87 0.000000
|
||||
0:88 Constant:
|
||||
0:88 0.000000
|
||||
0:89 Constant:
|
||||
0:89 0.000000
|
||||
0:90 Constant:
|
||||
0:90 0.000000
|
||||
0:92 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:? 4.000000
|
||||
0:123 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
|
||||
0:116 Function Parameters:
|
||||
0:116 'inF0' (in 2X2 matrix of float)
|
||||
0:116 'inF1' (in 2X2 matrix of float)
|
||||
0:116 'inF2' (in 2X2 matrix of float)
|
||||
0:? Sequence
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:120 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 2.000000
|
||||
0:? 2.000000
|
||||
0:? 2.000000
|
||||
0:? 2.000000
|
||||
0:131 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float)
|
||||
0:124 Function Parameters:
|
||||
0:124 'inF0' (in 3X3 matrix of float)
|
||||
0:124 'inF1' (in 3X3 matrix of float)
|
||||
0:124 'inF2' (in 3X3 matrix of float)
|
||||
0:? Sequence
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:128 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 3.000000
|
||||
0:? 3.000000
|
||||
0:? 3.000000
|
||||
0:? 3.000000
|
||||
0:? 3.000000
|
||||
0:? 3.000000
|
||||
0:? 3.000000
|
||||
0:? 3.000000
|
||||
0:? 3.000000
|
||||
0:138 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float)
|
||||
0:132 Function Parameters:
|
||||
0:132 'inF0' (in 4X4 matrix of float)
|
||||
0:132 'inF1' (in 4X4 matrix of float)
|
||||
0:132 'inF2' (in 4X4 matrix of float)
|
||||
0:? Sequence
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:136 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? Linker Objects
|
||||
|
||||
SPIR-V is not generated for failed compile or link
|
||||
1424
Test/baseResults/hlsl.intrinsics.negative.vert.out
Normal file
1424
Test/baseResults/hlsl.intrinsics.negative.vert.out
Normal file
File diff suppressed because it is too large
Load Diff
2927
Test/baseResults/hlsl.intrinsics.vert.out
Normal file
2927
Test/baseResults/hlsl.intrinsics.vert.out
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
hlsl.matType.frag
|
||||
Shader version: 100
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:1 move second child to first child (temp 1-component vector of float)
|
||||
@ -8,8 +8,8 @@ gl_FragCoord origin is upper left
|
||||
0:1 1.000000
|
||||
0:11 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
|
||||
0:9 Function Parameters:
|
||||
0:9 'inFloat1' (temp 1-component vector of float)
|
||||
0:9 'inScalar' (temp float)
|
||||
0:9 'inFloat1' (in 1-component vector of float)
|
||||
0:9 'inScalar' (in float)
|
||||
0:? Linker Objects
|
||||
0:? 'f1' (temp 1-component vector of float)
|
||||
0:? 'fmat11' (temp 1X1 matrix of float)
|
||||
@ -22,7 +22,7 @@ gl_FragCoord origin is upper left
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 100
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:1 move second child to first child (temp 1-component vector of float)
|
||||
@ -31,8 +31,8 @@ gl_FragCoord origin is upper left
|
||||
0:1 1.000000
|
||||
0:11 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
|
||||
0:9 Function Parameters:
|
||||
0:9 'inFloat1' (temp 1-component vector of float)
|
||||
0:9 'inScalar' (temp float)
|
||||
0:9 'inFloat1' (in 1-component vector of float)
|
||||
0:9 'inScalar' (in float)
|
||||
0:? Linker Objects
|
||||
0:? 'f1' (temp 1-component vector of float)
|
||||
0:? 'fmat11' (temp 1X1 matrix of float)
|
||||
@ -51,7 +51,7 @@ gl_FragCoord origin is upper left
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction"
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 100
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 11 "ShaderFunction(vf1;f1;"
|
||||
Name 9 "inFloat1"
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
hlsl.max.frag
|
||||
Shader version: 100
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:5 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input1' (temp 4-component vector of float)
|
||||
0:2 'input2' (temp 4-component vector of float)
|
||||
0:2 'input1' (in 4-component vector of float)
|
||||
0:2 'input2' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:3 Branch: Return with expression
|
||||
0:3 max (global 4-component vector of float)
|
||||
0:3 'input1' (temp 4-component vector of float)
|
||||
0:3 'input2' (temp 4-component vector of float)
|
||||
0:3 'input1' (in 4-component vector of float)
|
||||
0:3 'input2' (in 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 100
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:5 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input1' (temp 4-component vector of float)
|
||||
0:2 'input2' (temp 4-component vector of float)
|
||||
0:2 'input1' (in 4-component vector of float)
|
||||
0:2 'input2' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:3 Branch: Return with expression
|
||||
0:3 max (global 4-component vector of float)
|
||||
0:3 'input1' (temp 4-component vector of float)
|
||||
0:3 'input2' (temp 4-component vector of float)
|
||||
0:3 'input1' (in 4-component vector of float)
|
||||
0:3 'input2' (in 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
|
||||
// Module Version 10000
|
||||
@ -38,9 +38,9 @@ gl_FragCoord origin is upper left
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction"
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 9 11
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 100
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 9 "input1"
|
||||
Name 11 "input2"
|
||||
@ -48,11 +48,11 @@ gl_FragCoord origin is upper left
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Function 7(fvec4)
|
||||
8: TypePointer Input 7(fvec4)
|
||||
9(input1): 8(ptr) Variable Input
|
||||
11(input2): 8(ptr) Variable Input
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
9(input1): 8(ptr) Variable Function
|
||||
11(input2): 8(ptr) Variable Function
|
||||
10: 7(fvec4) Load 9(input1)
|
||||
12: 7(fvec4) Load 11(input2)
|
||||
13: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 10 12
|
||||
|
||||
@ -1,46 +1,46 @@
|
||||
hlsl.precedence.frag
|
||||
Shader version: 100
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float)
|
||||
0:7 Function Parameters:
|
||||
0:7 'a1' (temp 4-component vector of float)
|
||||
0:7 'a2' (temp 4-component vector of float)
|
||||
0:7 'a3' (temp 4-component vector of float)
|
||||
0:7 'a4' (temp 4-component vector of float)
|
||||
0:7 'a1' (in 4-component vector of float)
|
||||
0:7 'a2' (in 4-component vector of float)
|
||||
0:7 'a3' (in 4-component vector of float)
|
||||
0:7 'a4' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:8 Branch: Return with expression
|
||||
0:8 add (temp 4-component vector of float)
|
||||
0:8 add (temp 4-component vector of float)
|
||||
0:8 'a1' (temp 4-component vector of float)
|
||||
0:8 'a1' (in 4-component vector of float)
|
||||
0:8 component-wise multiply (temp 4-component vector of float)
|
||||
0:8 'a2' (temp 4-component vector of float)
|
||||
0:8 'a3' (temp 4-component vector of float)
|
||||
0:8 'a4' (temp 4-component vector of float)
|
||||
0:8 'a2' (in 4-component vector of float)
|
||||
0:8 'a3' (in 4-component vector of float)
|
||||
0:8 'a4' (in 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 100
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float)
|
||||
0:7 Function Parameters:
|
||||
0:7 'a1' (temp 4-component vector of float)
|
||||
0:7 'a2' (temp 4-component vector of float)
|
||||
0:7 'a3' (temp 4-component vector of float)
|
||||
0:7 'a4' (temp 4-component vector of float)
|
||||
0:7 'a1' (in 4-component vector of float)
|
||||
0:7 'a2' (in 4-component vector of float)
|
||||
0:7 'a3' (in 4-component vector of float)
|
||||
0:7 'a4' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:8 Branch: Return with expression
|
||||
0:8 add (temp 4-component vector of float)
|
||||
0:8 add (temp 4-component vector of float)
|
||||
0:8 'a1' (temp 4-component vector of float)
|
||||
0:8 'a1' (in 4-component vector of float)
|
||||
0:8 component-wise multiply (temp 4-component vector of float)
|
||||
0:8 'a2' (temp 4-component vector of float)
|
||||
0:8 'a3' (temp 4-component vector of float)
|
||||
0:8 'a4' (temp 4-component vector of float)
|
||||
0:8 'a2' (in 4-component vector of float)
|
||||
0:8 'a3' (in 4-component vector of float)
|
||||
0:8 'a4' (in 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
|
||||
// Module Version 10000
|
||||
@ -50,9 +50,9 @@ gl_FragCoord origin is upper left
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction"
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 9 11 13 17
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 100
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 9 "a1"
|
||||
Name 11 "a2"
|
||||
@ -62,13 +62,13 @@ gl_FragCoord origin is upper left
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Function 7(fvec4)
|
||||
8: TypePointer Input 7(fvec4)
|
||||
9(a1): 8(ptr) Variable Input
|
||||
11(a2): 8(ptr) Variable Input
|
||||
13(a3): 8(ptr) Variable Input
|
||||
17(a4): 8(ptr) Variable Input
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
9(a1): 8(ptr) Variable Function
|
||||
11(a2): 8(ptr) Variable Function
|
||||
13(a3): 8(ptr) Variable Function
|
||||
17(a4): 8(ptr) Variable Function
|
||||
10: 7(fvec4) Load 9(a1)
|
||||
12: 7(fvec4) Load 11(a2)
|
||||
14: 7(fvec4) Load 13(a3)
|
||||
|
||||
@ -1,62 +1,62 @@
|
||||
hlsl.precedence2.frag
|
||||
Shader version: 100
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int)
|
||||
0:7 Function Parameters:
|
||||
0:7 'a1' (temp int)
|
||||
0:7 'a2' (temp int)
|
||||
0:7 'a3' (temp int)
|
||||
0:7 'a4' (temp int)
|
||||
0:7 'a1' (in int)
|
||||
0:7 'a2' (in int)
|
||||
0:7 'a3' (in int)
|
||||
0:7 'a4' (in int)
|
||||
0:? Sequence
|
||||
0:8 Branch: Return with expression
|
||||
0:8 add (temp int)
|
||||
0:8 left-shift (temp int)
|
||||
0:8 add (temp int)
|
||||
0:8 component-wise multiply (temp int)
|
||||
0:8 'a1' (temp int)
|
||||
0:8 'a2' (temp int)
|
||||
0:8 'a3' (temp int)
|
||||
0:8 'a4' (temp int)
|
||||
0:8 'a1' (in int)
|
||||
0:8 'a2' (in int)
|
||||
0:8 'a3' (in int)
|
||||
0:8 'a4' (in int)
|
||||
0:8 left-shift (temp int)
|
||||
0:8 'a1' (temp int)
|
||||
0:8 'a1' (in int)
|
||||
0:8 add (temp int)
|
||||
0:8 'a2' (temp int)
|
||||
0:8 'a2' (in int)
|
||||
0:8 component-wise multiply (temp int)
|
||||
0:8 'a3' (temp int)
|
||||
0:8 'a4' (temp int)
|
||||
0:8 'a3' (in int)
|
||||
0:8 'a4' (in int)
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 100
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int)
|
||||
0:7 Function Parameters:
|
||||
0:7 'a1' (temp int)
|
||||
0:7 'a2' (temp int)
|
||||
0:7 'a3' (temp int)
|
||||
0:7 'a4' (temp int)
|
||||
0:7 'a1' (in int)
|
||||
0:7 'a2' (in int)
|
||||
0:7 'a3' (in int)
|
||||
0:7 'a4' (in int)
|
||||
0:? Sequence
|
||||
0:8 Branch: Return with expression
|
||||
0:8 add (temp int)
|
||||
0:8 left-shift (temp int)
|
||||
0:8 add (temp int)
|
||||
0:8 component-wise multiply (temp int)
|
||||
0:8 'a1' (temp int)
|
||||
0:8 'a2' (temp int)
|
||||
0:8 'a3' (temp int)
|
||||
0:8 'a4' (temp int)
|
||||
0:8 'a1' (in int)
|
||||
0:8 'a2' (in int)
|
||||
0:8 'a3' (in int)
|
||||
0:8 'a4' (in int)
|
||||
0:8 left-shift (temp int)
|
||||
0:8 'a1' (temp int)
|
||||
0:8 'a1' (in int)
|
||||
0:8 add (temp int)
|
||||
0:8 'a2' (temp int)
|
||||
0:8 'a2' (in int)
|
||||
0:8 component-wise multiply (temp int)
|
||||
0:8 'a3' (temp int)
|
||||
0:8 'a4' (temp int)
|
||||
0:8 'a3' (in int)
|
||||
0:8 'a4' (in int)
|
||||
0:? Linker Objects
|
||||
|
||||
// Module Version 10000
|
||||
@ -66,9 +66,9 @@ gl_FragCoord origin is upper left
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction"
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 8 10 13 16
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 100
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 8 "a1"
|
||||
Name 10 "a2"
|
||||
@ -77,13 +77,13 @@ gl_FragCoord origin is upper left
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypePointer Function 6(int)
|
||||
7: TypePointer Input 6(int)
|
||||
8(a1): 7(ptr) Variable Input
|
||||
10(a2): 7(ptr) Variable Input
|
||||
13(a3): 7(ptr) Variable Input
|
||||
16(a4): 7(ptr) Variable Input
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
8(a1): 7(ptr) Variable Function
|
||||
10(a2): 7(ptr) Variable Function
|
||||
13(a3): 7(ptr) Variable Function
|
||||
16(a4): 7(ptr) Variable Function
|
||||
9: 6(int) Load 8(a1)
|
||||
11: 6(int) Load 10(a2)
|
||||
12: 6(int) IMul 9 11
|
||||
|
||||
150
Test/baseResults/hlsl.scope.frag.out
Executable file
150
Test/baseResults/hlsl.scope.frag.out
Executable file
@ -0,0 +1,150 @@
|
||||
hlsl.scope.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:31 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:4 'x' (temp int)
|
||||
0:? Sequence
|
||||
0:7 'x' (temp float)
|
||||
0:? Sequence
|
||||
0:10 'x' (temp bool)
|
||||
0:? Sequence
|
||||
0:13 'x' (temp 3-component vector of float)
|
||||
0:15 'x' (temp bool)
|
||||
0:17 'x' (temp float)
|
||||
0:19 'x' (temp int)
|
||||
0:21 Test condition and select (temp void)
|
||||
0:21 Condition
|
||||
0:21 Compare Greater Than (temp bool)
|
||||
0:21 'x' (temp int)
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 true case is null
|
||||
0:24 Loop with condition tested first
|
||||
0:24 Loop Condition
|
||||
0:24 Compare Greater Than (temp bool)
|
||||
0:24 'x' (temp int)
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 No loop body
|
||||
0:27 Loop with condition not tested first
|
||||
0:27 Loop Condition
|
||||
0:29 Compare Greater Than (temp bool)
|
||||
0:29 'x' (temp int)
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:27 No loop body
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:31 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:4 'x' (temp int)
|
||||
0:? Sequence
|
||||
0:7 'x' (temp float)
|
||||
0:? Sequence
|
||||
0:10 'x' (temp bool)
|
||||
0:? Sequence
|
||||
0:13 'x' (temp 3-component vector of float)
|
||||
0:15 'x' (temp bool)
|
||||
0:17 'x' (temp float)
|
||||
0:19 'x' (temp int)
|
||||
0:21 Test condition and select (temp void)
|
||||
0:21 Condition
|
||||
0:21 Compare Greater Than (temp bool)
|
||||
0:21 'x' (temp int)
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:21 true case is null
|
||||
0:24 Loop with condition tested first
|
||||
0:24 Loop Condition
|
||||
0:24 Compare Greater Than (temp bool)
|
||||
0:24 'x' (temp int)
|
||||
0:24 Constant:
|
||||
0:24 0 (const int)
|
||||
0:24 No loop body
|
||||
0:27 Loop with condition not tested first
|
||||
0:27 Loop Condition
|
||||
0:29 Compare Greater Than (temp bool)
|
||||
0:29 'x' (temp int)
|
||||
0:29 Constant:
|
||||
0:29 0 (const int)
|
||||
0:27 No loop body
|
||||
0:? Linker Objects
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 36
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction"
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 8 "x"
|
||||
Name 11 "x"
|
||||
Name 14 "x"
|
||||
Name 17 "x"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypePointer Function 6(int)
|
||||
9: TypeFloat 32
|
||||
10: TypePointer Function 9(float)
|
||||
12: TypeBool
|
||||
13: TypePointer Function 12(bool)
|
||||
15: TypeVector 9(float) 3
|
||||
16: TypePointer Function 15(fvec3)
|
||||
19: 6(int) Constant 0
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
8(x): 7(ptr) Variable Function
|
||||
11(x): 10(ptr) Variable Function
|
||||
14(x): 13(ptr) Variable Function
|
||||
17(x): 16(ptr) Variable Function
|
||||
18: 6(int) Load 8(x)
|
||||
20: 12(bool) SGreaterThan 18 19
|
||||
SelectionMerge 22 None
|
||||
BranchConditional 20 21 22
|
||||
21: Label
|
||||
Branch 22
|
||||
22: Label
|
||||
Branch 23
|
||||
23: Label
|
||||
LoopMerge 25 26 None
|
||||
Branch 27
|
||||
27: Label
|
||||
28: 6(int) Load 8(x)
|
||||
29: 12(bool) SGreaterThan 28 19
|
||||
BranchConditional 29 24 25
|
||||
24: Label
|
||||
Branch 26
|
||||
26: Label
|
||||
Branch 23
|
||||
25: Label
|
||||
Branch 30
|
||||
30: Label
|
||||
LoopMerge 32 33 None
|
||||
Branch 31
|
||||
31: Label
|
||||
Branch 33
|
||||
33: Label
|
||||
34: 6(int) Load 8(x)
|
||||
35: 12(bool) SGreaterThan 34 19
|
||||
BranchConditional 35 30 32
|
||||
32: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
@ -1,30 +1,30 @@
|
||||
hlsl.sin.frag
|
||||
Shader version: 100
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (temp 4-component vector of float)
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:3 Branch: Return with expression
|
||||
0:3 sine (global 4-component vector of float)
|
||||
0:3 'input' (temp 4-component vector of float)
|
||||
0:3 'input' (in 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 100
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (temp 4-component vector of float)
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:3 Branch: Return with expression
|
||||
0:3 sine (global 4-component vector of float)
|
||||
0:3 'input' (temp 4-component vector of float)
|
||||
0:3 'input' (in 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
|
||||
// Module Version 10000
|
||||
@ -34,19 +34,19 @@ gl_FragCoord origin is upper left
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction"
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 9
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 100
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 9 "input"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Function 7(fvec4)
|
||||
8: TypePointer Input 7(fvec4)
|
||||
9(input): 8(ptr) Variable Input
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
9(input): 8(ptr) Variable Function
|
||||
10: 7(fvec4) Load 9(input)
|
||||
11: 7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 10
|
||||
ReturnValue 11
|
||||
|
||||
133
Test/baseResults/hlsl.struct.frag.out
Executable file
133
Test/baseResults/hlsl.struct.frag.out
Executable file
@ -0,0 +1,133 @@
|
||||
hlsl.struct.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:40 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:31 Function Parameters:
|
||||
0:31 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:36 Compare Equal (temp bool)
|
||||
0:36 's3' (temp structure{temp 3-component vector of bool b3})
|
||||
0:36 's3' (temp structure{temp 3-component vector of bool b3})
|
||||
0:37 move second child to first child (temp 4-component vector of float)
|
||||
0:37 i: direct index for structure (temp 4-component vector of float)
|
||||
0:37 's2' (temp structure{temp 4-component vector of float i})
|
||||
0:37 Constant:
|
||||
0:37 0 (const int)
|
||||
0:37 ff4: direct index for structure (temp 4-component vector of float FragCoord)
|
||||
0:37 's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
|
||||
0:37 Constant:
|
||||
0:37 7 (const int)
|
||||
0:39 Branch: Return with expression
|
||||
0:39 'input' (in 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 's1' (temp structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d})
|
||||
0:? 's2' (temp structure{temp 4-component vector of float i})
|
||||
0:? 's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:40 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:31 Function Parameters:
|
||||
0:31 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:36 Compare Equal (temp bool)
|
||||
0:36 's3' (temp structure{temp 3-component vector of bool b3})
|
||||
0:36 's3' (temp structure{temp 3-component vector of bool b3})
|
||||
0:37 move second child to first child (temp 4-component vector of float)
|
||||
0:37 i: direct index for structure (temp 4-component vector of float)
|
||||
0:37 's2' (temp structure{temp 4-component vector of float i})
|
||||
0:37 Constant:
|
||||
0:37 0 (const int)
|
||||
0:37 ff4: direct index for structure (temp 4-component vector of float FragCoord)
|
||||
0:37 's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
|
||||
0:37 Constant:
|
||||
0:37 7 (const int)
|
||||
0:39 Branch: Return with expression
|
||||
0:39 'input' (in 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 's1' (temp structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d})
|
||||
0:? 's2' (temp structure{temp 4-component vector of float i})
|
||||
0:? 's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 40
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 34
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 8 "FS"
|
||||
MemberName 8(FS) 0 "b3"
|
||||
Name 10 "s3"
|
||||
Name 19 ""
|
||||
MemberName 19 0 "i"
|
||||
Name 21 "s2"
|
||||
Name 25 ""
|
||||
MemberName 25 0 "a"
|
||||
MemberName 25 1 "b"
|
||||
MemberName 25 2 "c"
|
||||
MemberName 25 3 "d"
|
||||
MemberName 25 4 "ff1"
|
||||
MemberName 25 5 "ff2"
|
||||
MemberName 25 6 "ff3"
|
||||
MemberName 25 7 "ff4"
|
||||
Name 27 "s4"
|
||||
Name 34 "input"
|
||||
Name 37 "myS"
|
||||
MemberName 37(myS) 0 "b"
|
||||
MemberName 37(myS) 1 "c"
|
||||
MemberName 37(myS) 2 "a"
|
||||
MemberName 37(myS) 3 "d"
|
||||
Name 39 "s1"
|
||||
MemberDecorate 25 4 BuiltIn FrontFacing
|
||||
MemberDecorate 25 7 BuiltIn FragCoord
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeBool
|
||||
7: TypeVector 6(bool) 3
|
||||
8(FS): TypeStruct 7(bvec3)
|
||||
9: TypePointer Function 8(FS)
|
||||
17: TypeFloat 32
|
||||
18: TypeVector 17(float) 4
|
||||
19: TypeStruct 18(fvec4)
|
||||
20: TypePointer Function 19(struct)
|
||||
22: TypeInt 32 1
|
||||
23: 22(int) Constant 0
|
||||
24: TypeVector 17(float) 2
|
||||
25: TypeStruct 18(fvec4) 6(bool) 17(float) 24(fvec2) 6(bool) 6(bool) 6(bool) 18(fvec4)
|
||||
26: TypePointer Function 25(struct)
|
||||
28: 22(int) Constant 7
|
||||
29: TypePointer Function 18(fvec4)
|
||||
33: TypePointer Input 18(fvec4)
|
||||
34(input): 33(ptr) Variable Input
|
||||
37(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4)
|
||||
38: TypePointer Function 37(myS)
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
10(s3): 9(ptr) Variable Function
|
||||
21(s2): 20(ptr) Variable Function
|
||||
27(s4): 26(ptr) Variable Function
|
||||
39(s1): 38(ptr) Variable Function
|
||||
11: 8(FS) Load 10(s3)
|
||||
12: 8(FS) Load 10(s3)
|
||||
13: 7(bvec3) CompositeExtract 11 0
|
||||
14: 7(bvec3) CompositeExtract 12 0
|
||||
15: 7(bvec3) LogicalEqual 13 14
|
||||
16: 6(bool) All 15
|
||||
30: 29(ptr) AccessChain 27(s4) 28
|
||||
31: 18(fvec4) Load 30
|
||||
32: 29(ptr) AccessChain 21(s2) 23
|
||||
Store 32 31
|
||||
35: 18(fvec4) Load 34(input)
|
||||
ReturnValue 35
|
||||
FunctionEnd
|
||||
113
Test/baseResults/hlsl.swizzle.frag.out
Executable file
113
Test/baseResults/hlsl.swizzle.frag.out
Executable file
@ -0,0 +1,113 @@
|
||||
hlsl.swizzle.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:1 move second child to first child (temp 4-component vector of float)
|
||||
0:1 'AmbientColor' (temp 4-component vector of float)
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 0.500000
|
||||
0:? 0.000000
|
||||
0:? 1.000000
|
||||
0:7 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:4 Function Parameters:
|
||||
0:4 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:5 Branch: Return with expression
|
||||
0:5 component-wise multiply (temp 4-component vector of float)
|
||||
0:5 vector swizzle (temp 4-component vector of float)
|
||||
0:5 'input' (in 4-component vector of float)
|
||||
0:5 Sequence
|
||||
0:5 Constant:
|
||||
0:5 3 (const int)
|
||||
0:5 Constant:
|
||||
0:5 3 (const int)
|
||||
0:5 Constant:
|
||||
0:5 1 (const int)
|
||||
0:5 Constant:
|
||||
0:5 0 (const int)
|
||||
0:5 Construct vec4 (temp 4-component vector of float)
|
||||
0:5 direct index (temp float)
|
||||
0:5 'AmbientColor' (temp 4-component vector of float)
|
||||
0:5 Constant:
|
||||
0:5 2 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'AmbientColor' (temp 4-component vector of float)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:1 move second child to first child (temp 4-component vector of float)
|
||||
0:1 'AmbientColor' (temp 4-component vector of float)
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 0.500000
|
||||
0:? 0.000000
|
||||
0:? 1.000000
|
||||
0:7 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:4 Function Parameters:
|
||||
0:4 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:5 Branch: Return with expression
|
||||
0:5 component-wise multiply (temp 4-component vector of float)
|
||||
0:5 vector swizzle (temp 4-component vector of float)
|
||||
0:5 'input' (in 4-component vector of float)
|
||||
0:5 Sequence
|
||||
0:5 Constant:
|
||||
0:5 3 (const int)
|
||||
0:5 Constant:
|
||||
0:5 3 (const int)
|
||||
0:5 Constant:
|
||||
0:5 1 (const int)
|
||||
0:5 Constant:
|
||||
0:5 0 (const int)
|
||||
0:5 Construct vec4 (temp 4-component vector of float)
|
||||
0:5 direct index (temp float)
|
||||
0:5 'AmbientColor' (temp 4-component vector of float)
|
||||
0:5 Constant:
|
||||
0:5 2 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'AmbientColor' (temp 4-component vector of float)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 25
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction"
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 11 "ShaderFunction(vf4;"
|
||||
Name 10 "input"
|
||||
Name 15 "AmbientColor"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Function 7(fvec4)
|
||||
9: TypeFunction 7(fvec4) 8(ptr)
|
||||
16: TypeInt 32 0
|
||||
17: 16(int) Constant 2
|
||||
18: TypePointer Function 6(float)
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
FunctionEnd
|
||||
11(ShaderFunction(vf4;): 7(fvec4) Function None 9
|
||||
10(input): 8(ptr) FunctionParameter
|
||||
12: Label
|
||||
15(AmbientColor): 8(ptr) Variable Function
|
||||
13: 7(fvec4) Load 10(input)
|
||||
14: 7(fvec4) VectorShuffle 13 13 3 3 1 0
|
||||
19: 18(ptr) AccessChain 15(AmbientColor) 17
|
||||
20: 6(float) Load 19
|
||||
21: 7(fvec4) CompositeConstruct 20 20 20 20
|
||||
22: 7(fvec4) FMul 14 21
|
||||
ReturnValue 22
|
||||
FunctionEnd
|
||||
64
Test/baseResults/hlsl.void.frag.out
Executable file
64
Test/baseResults/hlsl.void.frag.out
Executable file
@ -0,0 +1,64 @@
|
||||
hlsl.void.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:2 Function Definition: foo1( (temp void)
|
||||
0:1 Function Parameters:
|
||||
0:4 Function Definition: foo2( (temp void)
|
||||
0:2 Function Parameters:
|
||||
0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:5 Function Parameters:
|
||||
0:5 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 Function Call: foo1( (temp void)
|
||||
0:7 Function Call: foo2( (temp void)
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:2 Function Definition: foo1( (temp void)
|
||||
0:1 Function Parameters:
|
||||
0:4 Function Definition: foo2( (temp void)
|
||||
0:2 Function Parameters:
|
||||
0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:5 Function Parameters:
|
||||
0:5 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 Function Call: foo1( (temp void)
|
||||
0:7 Function Call: foo2( (temp void)
|
||||
0:? Linker Objects
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 12
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction"
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 6 "foo1("
|
||||
Name 8 "foo2("
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
10: 2 FunctionCall 6(foo1()
|
||||
11: 2 FunctionCall 8(foo2()
|
||||
Return
|
||||
FunctionEnd
|
||||
6(foo1(): 2 Function None 3
|
||||
7: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
8(foo2(): 2 Function None 3
|
||||
9: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
145
Test/baseResults/hlsl.whileLoop.frag.out
Executable file
145
Test/baseResults/hlsl.whileLoop.frag.out
Executable file
@ -0,0 +1,145 @@
|
||||
hlsl.whileLoop.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:3 Loop with condition tested first
|
||||
0:3 Loop Condition
|
||||
0:3 Compare Not Equal (temp bool)
|
||||
0:3 'input' (in 4-component vector of float)
|
||||
0:3 'input' (in 4-component vector of float)
|
||||
0:3 Loop Body
|
||||
0:? Sequence
|
||||
0:3 Branch: Return with expression
|
||||
0:3 'input' (in 4-component vector of float)
|
||||
0:4 Loop with condition tested first
|
||||
0:4 Loop Condition
|
||||
0:4 Constant:
|
||||
0:4 false (const bool)
|
||||
0:4 No loop body
|
||||
0:5 Loop with condition tested first
|
||||
0:5 Loop Condition
|
||||
0:5 Constant:
|
||||
0:5 false (const bool)
|
||||
0:5 No loop body
|
||||
0:6 Loop with condition tested first
|
||||
0:6 Loop Condition
|
||||
0:6 Constant:
|
||||
0:6 false (const bool)
|
||||
0:6 No loop body
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:3 Loop with condition tested first
|
||||
0:3 Loop Condition
|
||||
0:3 Compare Not Equal (temp bool)
|
||||
0:3 'input' (in 4-component vector of float)
|
||||
0:3 'input' (in 4-component vector of float)
|
||||
0:3 Loop Body
|
||||
0:? Sequence
|
||||
0:3 Branch: Return with expression
|
||||
0:3 'input' (in 4-component vector of float)
|
||||
0:4 Loop with condition tested first
|
||||
0:4 Loop Condition
|
||||
0:4 Constant:
|
||||
0:4 false (const bool)
|
||||
0:4 No loop body
|
||||
0:5 Loop with condition tested first
|
||||
0:5 Loop Condition
|
||||
0:5 Constant:
|
||||
0:5 false (const bool)
|
||||
0:5 No loop body
|
||||
0:6 Loop with condition tested first
|
||||
0:6 Loop Condition
|
||||
0:6 Constant:
|
||||
0:6 false (const bool)
|
||||
0:6 No loop body
|
||||
0:? Linker Objects
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 39
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 14
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 14 "input"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
11: TypeFloat 32
|
||||
12: TypeVector 11(float) 4
|
||||
13: TypePointer Input 12(fvec4)
|
||||
14(input): 13(ptr) Variable Input
|
||||
17: TypeBool
|
||||
18: TypeVector 17(bool) 4
|
||||
28: 17(bool) ConstantFalse
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
Branch 6
|
||||
6: Label
|
||||
LoopMerge 8 9 None
|
||||
Branch 10
|
||||
10: Label
|
||||
15: 12(fvec4) Load 14(input)
|
||||
16: 12(fvec4) Load 14(input)
|
||||
19: 18(bvec4) FOrdNotEqual 15 16
|
||||
20: 17(bool) Any 19
|
||||
BranchConditional 20 7 8
|
||||
7: Label
|
||||
21: 12(fvec4) Load 14(input)
|
||||
ReturnValue 21
|
||||
9: Label
|
||||
Branch 6
|
||||
8: Label
|
||||
Branch 23
|
||||
23: Label
|
||||
LoopMerge 25 26 None
|
||||
Branch 27
|
||||
27: Label
|
||||
BranchConditional 28 24 25
|
||||
24: Label
|
||||
Branch 26
|
||||
26: Label
|
||||
Branch 23
|
||||
25: Label
|
||||
Branch 29
|
||||
29: Label
|
||||
LoopMerge 31 32 None
|
||||
Branch 33
|
||||
33: Label
|
||||
BranchConditional 28 30 31
|
||||
30: Label
|
||||
Branch 32
|
||||
32: Label
|
||||
Branch 29
|
||||
31: Label
|
||||
Branch 34
|
||||
34: Label
|
||||
LoopMerge 36 37 None
|
||||
Branch 38
|
||||
38: Label
|
||||
BranchConditional 28 35 36
|
||||
35: Label
|
||||
Branch 37
|
||||
37: Label
|
||||
Branch 34
|
||||
36: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
234
Test/baseResults/spv.310.bitcast.frag.out
Executable file
234
Test/baseResults/spv.310.bitcast.frag.out
Executable file
@ -0,0 +1,234 @@
|
||||
spv.310.bitcast.frag
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 153
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 14 26 37 48 89 98 107 116 122 130 139 148
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source ESSL 310
|
||||
Name 4 "main"
|
||||
Name 9 "idata"
|
||||
Name 14 "f1"
|
||||
Name 26 "f2"
|
||||
Name 37 "f3"
|
||||
Name 48 "f4"
|
||||
Name 55 "udata"
|
||||
Name 85 "fdata"
|
||||
Name 89 "i1"
|
||||
Name 98 "i2"
|
||||
Name 107 "i3"
|
||||
Name 116 "i4"
|
||||
Name 122 "u1"
|
||||
Name 130 "u2"
|
||||
Name 139 "u3"
|
||||
Name 148 "u4"
|
||||
Decorate 14(f1) RelaxedPrecision
|
||||
Decorate 15 RelaxedPrecision
|
||||
Decorate 26(f2) RelaxedPrecision
|
||||
Decorate 27 RelaxedPrecision
|
||||
Decorate 37(f3) RelaxedPrecision
|
||||
Decorate 38 RelaxedPrecision
|
||||
Decorate 57 RelaxedPrecision
|
||||
Decorate 64 RelaxedPrecision
|
||||
Decorate 72 RelaxedPrecision
|
||||
Decorate 89(i1) RelaxedPrecision
|
||||
Decorate 89(i1) Flat
|
||||
Decorate 90 RelaxedPrecision
|
||||
Decorate 98(i2) RelaxedPrecision
|
||||
Decorate 98(i2) Flat
|
||||
Decorate 99 RelaxedPrecision
|
||||
Decorate 107(i3) RelaxedPrecision
|
||||
Decorate 107(i3) Flat
|
||||
Decorate 108 RelaxedPrecision
|
||||
Decorate 116(i4) Flat
|
||||
Decorate 122(u1) RelaxedPrecision
|
||||
Decorate 122(u1) Flat
|
||||
Decorate 123 RelaxedPrecision
|
||||
Decorate 130(u2) RelaxedPrecision
|
||||
Decorate 130(u2) Flat
|
||||
Decorate 131 RelaxedPrecision
|
||||
Decorate 139(u3) RelaxedPrecision
|
||||
Decorate 139(u3) Flat
|
||||
Decorate 140 RelaxedPrecision
|
||||
Decorate 148(u4) Flat
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypeVector 6(int) 4
|
||||
8: TypePointer Function 7(ivec4)
|
||||
10: 6(int) Constant 0
|
||||
11: 7(ivec4) ConstantComposite 10 10 10 10
|
||||
12: TypeFloat 32
|
||||
13: TypePointer Input 12(float)
|
||||
14(f1): 13(ptr) Variable Input
|
||||
17: TypeInt 32 0
|
||||
18: 17(int) Constant 0
|
||||
19: TypePointer Function 6(int)
|
||||
24: TypeVector 12(float) 2
|
||||
25: TypePointer Input 24(fvec2)
|
||||
26(f2): 25(ptr) Variable Input
|
||||
28: TypeVector 6(int) 2
|
||||
35: TypeVector 12(float) 3
|
||||
36: TypePointer Input 35(fvec3)
|
||||
37(f3): 36(ptr) Variable Input
|
||||
39: TypeVector 6(int) 3
|
||||
46: TypeVector 12(float) 4
|
||||
47: TypePointer Input 46(fvec4)
|
||||
48(f4): 47(ptr) Variable Input
|
||||
53: TypeVector 17(int) 4
|
||||
54: TypePointer Function 53(ivec4)
|
||||
56: 53(ivec4) ConstantComposite 18 18 18 18
|
||||
59: TypePointer Function 17(int)
|
||||
65: TypeVector 17(int) 2
|
||||
73: TypeVector 17(int) 3
|
||||
84: TypePointer Function 46(fvec4)
|
||||
86: 12(float) Constant 0
|
||||
87: 46(fvec4) ConstantComposite 86 86 86 86
|
||||
88: TypePointer Input 6(int)
|
||||
89(i1): 88(ptr) Variable Input
|
||||
92: TypePointer Function 12(float)
|
||||
97: TypePointer Input 28(ivec2)
|
||||
98(i2): 97(ptr) Variable Input
|
||||
106: TypePointer Input 39(ivec3)
|
||||
107(i3): 106(ptr) Variable Input
|
||||
115: TypePointer Input 7(ivec4)
|
||||
116(i4): 115(ptr) Variable Input
|
||||
121: TypePointer Input 17(int)
|
||||
122(u1): 121(ptr) Variable Input
|
||||
129: TypePointer Input 65(ivec2)
|
||||
130(u2): 129(ptr) Variable Input
|
||||
138: TypePointer Input 73(ivec3)
|
||||
139(u3): 138(ptr) Variable Input
|
||||
147: TypePointer Input 53(ivec4)
|
||||
148(u4): 147(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(idata): 8(ptr) Variable Function
|
||||
55(udata): 54(ptr) Variable Function
|
||||
85(fdata): 84(ptr) Variable Function
|
||||
Store 9(idata) 11
|
||||
15: 12(float) Load 14(f1)
|
||||
16: 6(int) Bitcast 15
|
||||
20: 19(ptr) AccessChain 9(idata) 18
|
||||
21: 6(int) Load 20
|
||||
22: 6(int) IAdd 21 16
|
||||
23: 19(ptr) AccessChain 9(idata) 18
|
||||
Store 23 22
|
||||
27: 24(fvec2) Load 26(f2)
|
||||
29: 28(ivec2) Bitcast 27
|
||||
30: 7(ivec4) Load 9(idata)
|
||||
31: 28(ivec2) VectorShuffle 30 30 0 1
|
||||
32: 28(ivec2) IAdd 31 29
|
||||
33: 7(ivec4) Load 9(idata)
|
||||
34: 7(ivec4) VectorShuffle 33 32 4 5 2 3
|
||||
Store 9(idata) 34
|
||||
38: 35(fvec3) Load 37(f3)
|
||||
40: 39(ivec3) Bitcast 38
|
||||
41: 7(ivec4) Load 9(idata)
|
||||
42: 39(ivec3) VectorShuffle 41 41 0 1 2
|
||||
43: 39(ivec3) IAdd 42 40
|
||||
44: 7(ivec4) Load 9(idata)
|
||||
45: 7(ivec4) VectorShuffle 44 43 4 5 6 3
|
||||
Store 9(idata) 45
|
||||
49: 46(fvec4) Load 48(f4)
|
||||
50: 7(ivec4) Bitcast 49
|
||||
51: 7(ivec4) Load 9(idata)
|
||||
52: 7(ivec4) IAdd 51 50
|
||||
Store 9(idata) 52
|
||||
Store 55(udata) 56
|
||||
57: 12(float) Load 14(f1)
|
||||
58: 17(int) Bitcast 57
|
||||
60: 59(ptr) AccessChain 55(udata) 18
|
||||
61: 17(int) Load 60
|
||||
62: 17(int) IAdd 61 58
|
||||
63: 59(ptr) AccessChain 55(udata) 18
|
||||
Store 63 62
|
||||
64: 24(fvec2) Load 26(f2)
|
||||
66: 65(ivec2) Bitcast 64
|
||||
67: 53(ivec4) Load 55(udata)
|
||||
68: 65(ivec2) VectorShuffle 67 67 0 1
|
||||
69: 65(ivec2) IAdd 68 66
|
||||
70: 53(ivec4) Load 55(udata)
|
||||
71: 53(ivec4) VectorShuffle 70 69 4 5 2 3
|
||||
Store 55(udata) 71
|
||||
72: 35(fvec3) Load 37(f3)
|
||||
74: 73(ivec3) Bitcast 72
|
||||
75: 53(ivec4) Load 55(udata)
|
||||
76: 73(ivec3) VectorShuffle 75 75 0 1 2
|
||||
77: 73(ivec3) IAdd 76 74
|
||||
78: 53(ivec4) Load 55(udata)
|
||||
79: 53(ivec4) VectorShuffle 78 77 4 5 6 3
|
||||
Store 55(udata) 79
|
||||
80: 46(fvec4) Load 48(f4)
|
||||
81: 53(ivec4) Bitcast 80
|
||||
82: 53(ivec4) Load 55(udata)
|
||||
83: 53(ivec4) IAdd 82 81
|
||||
Store 55(udata) 83
|
||||
Store 85(fdata) 87
|
||||
90: 6(int) Load 89(i1)
|
||||
91: 12(float) Bitcast 90
|
||||
93: 92(ptr) AccessChain 85(fdata) 18
|
||||
94: 12(float) Load 93
|
||||
95: 12(float) FAdd 94 91
|
||||
96: 92(ptr) AccessChain 85(fdata) 18
|
||||
Store 96 95
|
||||
99: 28(ivec2) Load 98(i2)
|
||||
100: 24(fvec2) Bitcast 99
|
||||
101: 46(fvec4) Load 85(fdata)
|
||||
102: 24(fvec2) VectorShuffle 101 101 0 1
|
||||
103: 24(fvec2) FAdd 102 100
|
||||
104: 46(fvec4) Load 85(fdata)
|
||||
105: 46(fvec4) VectorShuffle 104 103 4 5 2 3
|
||||
Store 85(fdata) 105
|
||||
108: 39(ivec3) Load 107(i3)
|
||||
109: 35(fvec3) Bitcast 108
|
||||
110: 46(fvec4) Load 85(fdata)
|
||||
111: 35(fvec3) VectorShuffle 110 110 0 1 2
|
||||
112: 35(fvec3) FAdd 111 109
|
||||
113: 46(fvec4) Load 85(fdata)
|
||||
114: 46(fvec4) VectorShuffle 113 112 4 5 6 3
|
||||
Store 85(fdata) 114
|
||||
117: 7(ivec4) Load 116(i4)
|
||||
118: 46(fvec4) Bitcast 117
|
||||
119: 46(fvec4) Load 85(fdata)
|
||||
120: 46(fvec4) FAdd 119 118
|
||||
Store 85(fdata) 120
|
||||
123: 17(int) Load 122(u1)
|
||||
124: 12(float) Bitcast 123
|
||||
125: 92(ptr) AccessChain 85(fdata) 18
|
||||
126: 12(float) Load 125
|
||||
127: 12(float) FAdd 126 124
|
||||
128: 92(ptr) AccessChain 85(fdata) 18
|
||||
Store 128 127
|
||||
131: 65(ivec2) Load 130(u2)
|
||||
132: 24(fvec2) Bitcast 131
|
||||
133: 46(fvec4) Load 85(fdata)
|
||||
134: 24(fvec2) VectorShuffle 133 133 0 1
|
||||
135: 24(fvec2) FAdd 134 132
|
||||
136: 46(fvec4) Load 85(fdata)
|
||||
137: 46(fvec4) VectorShuffle 136 135 4 5 2 3
|
||||
Store 85(fdata) 137
|
||||
140: 73(ivec3) Load 139(u3)
|
||||
141: 35(fvec3) Bitcast 140
|
||||
142: 46(fvec4) Load 85(fdata)
|
||||
143: 35(fvec3) VectorShuffle 142 142 0 1 2
|
||||
144: 35(fvec3) FAdd 143 141
|
||||
145: 46(fvec4) Load 85(fdata)
|
||||
146: 46(fvec4) VectorShuffle 145 144 4 5 6 3
|
||||
Store 85(fdata) 146
|
||||
149: 53(ivec4) Load 148(u4)
|
||||
150: 46(fvec4) Bitcast 149
|
||||
151: 46(fvec4) Load 85(fdata)
|
||||
152: 46(fvec4) FAdd 151 150
|
||||
Store 85(fdata) 152
|
||||
Return
|
||||
FunctionEnd
|
||||
File diff suppressed because it is too large
Load Diff
@ -7,173 +7,171 @@ Linked tessellation control stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 94
|
||||
// Id's are bound by 93
|
||||
|
||||
Capability Tessellation
|
||||
Capability TessellationPointSize
|
||||
Capability ClipDistance
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint TessellationControl 4 "main" 24 41 44 47 55 69 74 80 84 85 88 89 92 93
|
||||
EntryPoint TessellationControl 4 "main" 23 40 43 46 54 68 73 79 83 84 87 88 91 92
|
||||
ExecutionMode 4 OutputVertices 4
|
||||
Source GLSL 400
|
||||
SourceExtension "GL_ARB_separate_shader_objects"
|
||||
Name 4 "main"
|
||||
Name 12 "a"
|
||||
Name 17 "p"
|
||||
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 24 "gl_in"
|
||||
Name 31 "ps"
|
||||
Name 35 "cd"
|
||||
Name 39 "pvi"
|
||||
Name 41 "gl_PatchVerticesIn"
|
||||
Name 43 "pid"
|
||||
Name 44 "gl_PrimitiveID"
|
||||
Name 46 "iid"
|
||||
Name 47 "gl_InvocationID"
|
||||
Name 51 "gl_PerVertex"
|
||||
MemberName 51(gl_PerVertex) 0 "gl_Position"
|
||||
MemberName 51(gl_PerVertex) 1 "gl_PointSize"
|
||||
MemberName 51(gl_PerVertex) 2 "gl_ClipDistance"
|
||||
Name 55 "gl_out"
|
||||
Name 69 "gl_TessLevelOuter"
|
||||
Name 74 "gl_TessLevelInner"
|
||||
Name 79 "outa"
|
||||
Name 80 "patchOut"
|
||||
Name 84 "inb"
|
||||
Name 85 "ind"
|
||||
Name 88 "ivla"
|
||||
Name 89 "ivlb"
|
||||
Name 92 "ovla"
|
||||
Name 93 "ovlb"
|
||||
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 41(gl_PatchVerticesIn) BuiltIn PatchVertices
|
||||
Decorate 44(gl_PrimitiveID) BuiltIn PrimitiveId
|
||||
Decorate 47(gl_InvocationID) BuiltIn InvocationId
|
||||
MemberDecorate 51(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 51(gl_PerVertex) 1 BuiltIn PointSize
|
||||
MemberDecorate 51(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||
Decorate 51(gl_PerVertex) Block
|
||||
Decorate 69(gl_TessLevelOuter) Patch
|
||||
Decorate 69(gl_TessLevelOuter) BuiltIn TessLevelOuter
|
||||
Decorate 74(gl_TessLevelInner) Patch
|
||||
Decorate 74(gl_TessLevelInner) BuiltIn TessLevelInner
|
||||
Decorate 80(patchOut) Patch
|
||||
Decorate 88(ivla) Location 3
|
||||
Decorate 89(ivlb) Location 4
|
||||
Decorate 92(ovla) Location 3
|
||||
Decorate 93(ovlb) Location 4
|
||||
Name 11 "a"
|
||||
Name 16 "p"
|
||||
Name 19 "gl_PerVertex"
|
||||
MemberName 19(gl_PerVertex) 0 "gl_Position"
|
||||
MemberName 19(gl_PerVertex) 1 "gl_PointSize"
|
||||
MemberName 19(gl_PerVertex) 2 "gl_ClipDistance"
|
||||
Name 23 "gl_in"
|
||||
Name 30 "ps"
|
||||
Name 34 "cd"
|
||||
Name 38 "pvi"
|
||||
Name 40 "gl_PatchVerticesIn"
|
||||
Name 42 "pid"
|
||||
Name 43 "gl_PrimitiveID"
|
||||
Name 45 "iid"
|
||||
Name 46 "gl_InvocationID"
|
||||
Name 50 "gl_PerVertex"
|
||||
MemberName 50(gl_PerVertex) 0 "gl_Position"
|
||||
MemberName 50(gl_PerVertex) 1 "gl_PointSize"
|
||||
MemberName 50(gl_PerVertex) 2 "gl_ClipDistance"
|
||||
Name 54 "gl_out"
|
||||
Name 68 "gl_TessLevelOuter"
|
||||
Name 73 "gl_TessLevelInner"
|
||||
Name 78 "outa"
|
||||
Name 79 "patchOut"
|
||||
Name 83 "inb"
|
||||
Name 84 "ind"
|
||||
Name 87 "ivla"
|
||||
Name 88 "ivlb"
|
||||
Name 91 "ovla"
|
||||
Name 92 "ovlb"
|
||||
MemberDecorate 19(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 19(gl_PerVertex) 1 BuiltIn PointSize
|
||||
MemberDecorate 19(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||
Decorate 19(gl_PerVertex) Block
|
||||
Decorate 40(gl_PatchVerticesIn) BuiltIn PatchVertices
|
||||
Decorate 43(gl_PrimitiveID) BuiltIn PrimitiveId
|
||||
Decorate 46(gl_InvocationID) BuiltIn InvocationId
|
||||
MemberDecorate 50(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 50(gl_PerVertex) 1 BuiltIn PointSize
|
||||
MemberDecorate 50(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||
Decorate 50(gl_PerVertex) Block
|
||||
Decorate 68(gl_TessLevelOuter) Patch
|
||||
Decorate 68(gl_TessLevelOuter) BuiltIn TessLevelOuter
|
||||
Decorate 73(gl_TessLevelInner) Patch
|
||||
Decorate 73(gl_TessLevelInner) BuiltIn TessLevelInner
|
||||
Decorate 79(patchOut) Patch
|
||||
Decorate 87(ivla) Location 3
|
||||
Decorate 88(ivlb) Location 4
|
||||
Decorate 91(ovla) Location 3
|
||||
Decorate 92(ovlb) Location 4
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
7: 6(int) Constant 1
|
||||
8: 6(int) Constant 4062
|
||||
9: 6(int) Constant 0
|
||||
10: TypeInt 32 1
|
||||
11: TypePointer Function 10(int)
|
||||
13: 10(int) Constant 5392
|
||||
14: TypeFloat 32
|
||||
15: TypeVector 14(float) 4
|
||||
16: TypePointer Function 15(fvec4)
|
||||
18: 6(int) Constant 3
|
||||
19: TypeArray 14(float) 18
|
||||
20(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 19
|
||||
21: 6(int) Constant 32
|
||||
22: TypeArray 20(gl_PerVertex) 21
|
||||
23: TypePointer Input 22
|
||||
24(gl_in): 23(ptr) Variable Input
|
||||
25: 10(int) Constant 1
|
||||
26: 10(int) Constant 0
|
||||
27: TypePointer Input 15(fvec4)
|
||||
30: TypePointer Function 14(float)
|
||||
32: TypePointer Input 14(float)
|
||||
36: 10(int) Constant 2
|
||||
40: TypePointer Input 10(int)
|
||||
41(gl_PatchVerticesIn): 40(ptr) Variable Input
|
||||
44(gl_PrimitiveID): 40(ptr) Variable Input
|
||||
47(gl_InvocationID): 40(ptr) Variable Input
|
||||
49: 6(int) Constant 2
|
||||
50: TypeArray 14(float) 49
|
||||
51(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 50
|
||||
52: 6(int) Constant 4
|
||||
53: TypeArray 51(gl_PerVertex) 52
|
||||
54: TypePointer Output 53
|
||||
55(gl_out): 54(ptr) Variable Output
|
||||
58: TypePointer Output 15(fvec4)
|
||||
62: TypePointer Output 14(float)
|
||||
67: TypeArray 14(float) 52
|
||||
68: TypePointer Output 67
|
||||
69(gl_TessLevelOuter): 68(ptr) Variable Output
|
||||
70: 10(int) Constant 3
|
||||
71: 14(float) Constant 1078774989
|
||||
73: TypePointer Output 50
|
||||
74(gl_TessLevelInner): 73(ptr) Variable Output
|
||||
75: 14(float) Constant 1067869798
|
||||
77: TypeArray 10(int) 52
|
||||
78: TypePointer Private 77
|
||||
79(outa): 78(ptr) Variable Private
|
||||
80(patchOut): 58(ptr) Variable Output
|
||||
81: TypeVector 14(float) 2
|
||||
82: TypeArray 81(fvec2) 21
|
||||
83: TypePointer Input 82
|
||||
84(inb): 83(ptr) Variable Input
|
||||
85(ind): 83(ptr) Variable Input
|
||||
86: TypeArray 15(fvec4) 21
|
||||
87: TypePointer Input 86
|
||||
88(ivla): 87(ptr) Variable Input
|
||||
89(ivlb): 87(ptr) Variable Input
|
||||
90: TypeArray 15(fvec4) 52
|
||||
91: TypePointer Output 90
|
||||
92(ovla): 91(ptr) Variable Output
|
||||
93(ovlb): 91(ptr) Variable Output
|
||||
8: 6(int) Constant 0
|
||||
9: TypeInt 32 1
|
||||
10: TypePointer Function 9(int)
|
||||
12: 9(int) Constant 5392
|
||||
13: TypeFloat 32
|
||||
14: TypeVector 13(float) 4
|
||||
15: TypePointer Function 14(fvec4)
|
||||
17: 6(int) Constant 3
|
||||
18: TypeArray 13(float) 17
|
||||
19(gl_PerVertex): TypeStruct 14(fvec4) 13(float) 18
|
||||
20: 6(int) Constant 32
|
||||
21: TypeArray 19(gl_PerVertex) 20
|
||||
22: TypePointer Input 21
|
||||
23(gl_in): 22(ptr) Variable Input
|
||||
24: 9(int) Constant 1
|
||||
25: 9(int) Constant 0
|
||||
26: TypePointer Input 14(fvec4)
|
||||
29: TypePointer Function 13(float)
|
||||
31: TypePointer Input 13(float)
|
||||
35: 9(int) Constant 2
|
||||
39: TypePointer Input 9(int)
|
||||
40(gl_PatchVerticesIn): 39(ptr) Variable Input
|
||||
43(gl_PrimitiveID): 39(ptr) Variable Input
|
||||
46(gl_InvocationID): 39(ptr) Variable Input
|
||||
48: 6(int) Constant 2
|
||||
49: TypeArray 13(float) 48
|
||||
50(gl_PerVertex): TypeStruct 14(fvec4) 13(float) 49
|
||||
51: 6(int) Constant 4
|
||||
52: TypeArray 50(gl_PerVertex) 51
|
||||
53: TypePointer Output 52
|
||||
54(gl_out): 53(ptr) Variable Output
|
||||
57: TypePointer Output 14(fvec4)
|
||||
61: TypePointer Output 13(float)
|
||||
66: TypeArray 13(float) 51
|
||||
67: TypePointer Output 66
|
||||
68(gl_TessLevelOuter): 67(ptr) Variable Output
|
||||
69: 9(int) Constant 3
|
||||
70: 13(float) Constant 1078774989
|
||||
72: TypePointer Output 49
|
||||
73(gl_TessLevelInner): 72(ptr) Variable Output
|
||||
74: 13(float) Constant 1067869798
|
||||
76: TypeArray 9(int) 51
|
||||
77: TypePointer Private 76
|
||||
78(outa): 77(ptr) Variable Private
|
||||
79(patchOut): 57(ptr) Variable Output
|
||||
80: TypeVector 13(float) 2
|
||||
81: TypeArray 80(fvec2) 20
|
||||
82: TypePointer Input 81
|
||||
83(inb): 82(ptr) Variable Input
|
||||
84(ind): 82(ptr) Variable Input
|
||||
85: TypeArray 14(fvec4) 20
|
||||
86: TypePointer Input 85
|
||||
87(ivla): 86(ptr) Variable Input
|
||||
88(ivlb): 86(ptr) Variable Input
|
||||
89: TypeArray 14(fvec4) 51
|
||||
90: TypePointer Output 89
|
||||
91(ovla): 90(ptr) Variable Output
|
||||
92(ovlb): 90(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
12(a): 11(ptr) Variable Function
|
||||
17(p): 16(ptr) Variable Function
|
||||
31(ps): 30(ptr) Variable Function
|
||||
35(cd): 30(ptr) Variable Function
|
||||
39(pvi): 11(ptr) Variable Function
|
||||
43(pid): 11(ptr) Variable Function
|
||||
46(iid): 11(ptr) Variable Function
|
||||
MemoryBarrier 7 8
|
||||
ControlBarrier 7 7 9
|
||||
Store 12(a) 13
|
||||
28: 27(ptr) AccessChain 24(gl_in) 25 26
|
||||
29: 15(fvec4) Load 28
|
||||
Store 17(p) 29
|
||||
33: 32(ptr) AccessChain 24(gl_in) 25 25
|
||||
34: 14(float) Load 33
|
||||
Store 31(ps) 34
|
||||
37: 32(ptr) AccessChain 24(gl_in) 25 36 36
|
||||
38: 14(float) Load 37
|
||||
Store 35(cd) 38
|
||||
42: 10(int) Load 41(gl_PatchVerticesIn)
|
||||
Store 39(pvi) 42
|
||||
45: 10(int) Load 44(gl_PrimitiveID)
|
||||
Store 43(pid) 45
|
||||
48: 10(int) Load 47(gl_InvocationID)
|
||||
Store 46(iid) 48
|
||||
56: 10(int) Load 47(gl_InvocationID)
|
||||
57: 15(fvec4) Load 17(p)
|
||||
59: 58(ptr) AccessChain 55(gl_out) 56 26
|
||||
Store 59 57
|
||||
60: 10(int) Load 47(gl_InvocationID)
|
||||
61: 14(float) Load 31(ps)
|
||||
63: 62(ptr) AccessChain 55(gl_out) 60 25
|
||||
Store 63 61
|
||||
64: 10(int) Load 47(gl_InvocationID)
|
||||
65: 14(float) Load 35(cd)
|
||||
66: 62(ptr) AccessChain 55(gl_out) 64 36 25
|
||||
Store 66 65
|
||||
72: 62(ptr) AccessChain 69(gl_TessLevelOuter) 70
|
||||
Store 72 71
|
||||
76: 62(ptr) AccessChain 74(gl_TessLevelInner) 25
|
||||
Store 76 75
|
||||
11(a): 10(ptr) Variable Function
|
||||
16(p): 15(ptr) Variable Function
|
||||
30(ps): 29(ptr) Variable Function
|
||||
34(cd): 29(ptr) Variable Function
|
||||
38(pvi): 10(ptr) Variable Function
|
||||
42(pid): 10(ptr) Variable Function
|
||||
45(iid): 10(ptr) Variable Function
|
||||
ControlBarrier 7 7 8
|
||||
Store 11(a) 12
|
||||
27: 26(ptr) AccessChain 23(gl_in) 24 25
|
||||
28: 14(fvec4) Load 27
|
||||
Store 16(p) 28
|
||||
32: 31(ptr) AccessChain 23(gl_in) 24 24
|
||||
33: 13(float) Load 32
|
||||
Store 30(ps) 33
|
||||
36: 31(ptr) AccessChain 23(gl_in) 24 35 35
|
||||
37: 13(float) Load 36
|
||||
Store 34(cd) 37
|
||||
41: 9(int) Load 40(gl_PatchVerticesIn)
|
||||
Store 38(pvi) 41
|
||||
44: 9(int) Load 43(gl_PrimitiveID)
|
||||
Store 42(pid) 44
|
||||
47: 9(int) Load 46(gl_InvocationID)
|
||||
Store 45(iid) 47
|
||||
55: 9(int) Load 46(gl_InvocationID)
|
||||
56: 14(fvec4) Load 16(p)
|
||||
58: 57(ptr) AccessChain 54(gl_out) 55 25
|
||||
Store 58 56
|
||||
59: 9(int) Load 46(gl_InvocationID)
|
||||
60: 13(float) Load 30(ps)
|
||||
62: 61(ptr) AccessChain 54(gl_out) 59 24
|
||||
Store 62 60
|
||||
63: 9(int) Load 46(gl_InvocationID)
|
||||
64: 13(float) Load 34(cd)
|
||||
65: 61(ptr) AccessChain 54(gl_out) 63 35 24
|
||||
Store 65 64
|
||||
71: 61(ptr) AccessChain 68(gl_TessLevelOuter) 69
|
||||
Store 71 70
|
||||
75: 61(ptr) AccessChain 73(gl_TessLevelInner) 24
|
||||
Store 75 74
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@ -10,6 +10,7 @@ Linked vertex stage:
|
||||
// Id's are bound by 66
|
||||
|
||||
Capability Shader
|
||||
Capability ClipDistance
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 12 23 34 38 41 42 62 65
|
||||
@ -62,9 +63,6 @@ Linked vertex stage:
|
||||
Decorate 55(sampb2) Binding 5
|
||||
Decorate 56(sampb4) DescriptorSet 0
|
||||
Decorate 56(sampb4) Binding 31
|
||||
MemberDecorate 60(SS) 0 Flat
|
||||
MemberDecorate 60(SS) 1 Flat
|
||||
MemberDecorate 60(SS) 2 Flat
|
||||
Decorate 62(var) Location 0
|
||||
MemberDecorate 63(MS) 0 Location 17
|
||||
Decorate 63(MS) Block
|
||||
|
||||
@ -2,7 +2,6 @@ spv.atomic.comp
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
Shader version: 310
|
||||
Requested GL_ARB_gl_spirv
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:14 Function Definition: func(au1; (global highp uint)
|
||||
@ -105,7 +104,6 @@ Linked compute stage:
|
||||
|
||||
|
||||
Shader version: 310
|
||||
Requested GL_ARB_gl_spirv
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:14 Function Definition: func(au1; (global highp uint)
|
||||
|
||||
@ -7,12 +7,12 @@ Linked vertex stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 67
|
||||
// Id's are bound by 66
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 63 66
|
||||
EntryPoint Vertex 4 "main" 62 65
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 14 "S"
|
||||
@ -82,16 +82,12 @@ Linked vertex stage:
|
||||
MemberName 58(bBt3) 0 "ntcol"
|
||||
MemberName 58(bBt3) 1 "ntrow"
|
||||
Name 60 "bBtn3"
|
||||
Name 61 "S"
|
||||
MemberName 61(S) 0 "a"
|
||||
MemberName 61(S) 1 "b"
|
||||
MemberName 61(S) 2 "c"
|
||||
Name 63 "sout"
|
||||
Name 64 "S"
|
||||
MemberName 64(S) 0 "a"
|
||||
MemberName 64(S) 1 "b"
|
||||
MemberName 64(S) 2 "c"
|
||||
Name 66 "soutinv"
|
||||
Name 62 "sout"
|
||||
Name 63 "S"
|
||||
MemberName 63(S) 0 "a"
|
||||
MemberName 63(S) 1 "b"
|
||||
MemberName 63(S) 2 "c"
|
||||
Name 65 "soutinv"
|
||||
Decorate 13 ArrayStride 32
|
||||
MemberDecorate 14(S) 0 Offset 0
|
||||
MemberDecorate 14(S) 1 ColMajor
|
||||
@ -166,13 +162,10 @@ Linked vertex stage:
|
||||
Decorate 58(bBt3) BufferBlock
|
||||
Decorate 60(bBtn3) DescriptorSet 1
|
||||
Decorate 60(bBtn3) Binding 0
|
||||
MemberDecorate 61(S) 0 Flat
|
||||
MemberDecorate 61(S) 1 Flat
|
||||
MemberDecorate 61(S) 2 Flat
|
||||
MemberDecorate 64(S) 0 Invariant
|
||||
MemberDecorate 64(S) 1 Invariant
|
||||
MemberDecorate 64(S) 2 Invariant
|
||||
Decorate 66(soutinv) Invariant
|
||||
MemberDecorate 63(S) 0 Invariant
|
||||
MemberDecorate 63(S) 1 Invariant
|
||||
MemberDecorate 63(S) 2 Invariant
|
||||
Decorate 65(soutinv) Invariant
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
@ -230,12 +223,11 @@ Linked vertex stage:
|
||||
58(bBt3): TypeStruct 49(Nestor) 54(Nestor)
|
||||
59: TypePointer Uniform 58(bBt3)
|
||||
60(bBtn3): 59(ptr) Variable Uniform
|
||||
61(S): TypeStruct 8(ivec3) 13 7(int)
|
||||
62: TypePointer Output 61(S)
|
||||
63(sout): 62(ptr) Variable Output
|
||||
64(S): TypeStruct 8(ivec3) 13 7(int)
|
||||
65: TypePointer Output 64(S)
|
||||
66(soutinv): 65(ptr) Variable Output
|
||||
61: TypePointer Output 29(S)
|
||||
62(sout): 61(ptr) Variable Output
|
||||
63(S): TypeStruct 8(ivec3) 13 7(int)
|
||||
64: TypePointer Output 63(S)
|
||||
65(soutinv): 64(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
Return
|
||||
|
||||
@ -7,12 +7,12 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 143
|
||||
// Id's are bound by 136
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 18 43 93 101 111 138 142
|
||||
EntryPoint Fragment 4 "main" 15 40 90 98 108 134 135
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 400
|
||||
Name 4 "main"
|
||||
@ -25,59 +25,27 @@ Linked fragment stage:
|
||||
MemberName 10(s2) 2 "s1_1"
|
||||
MemberName 10(s2) 3 "bleh"
|
||||
Name 12 "locals2"
|
||||
Name 13 "s1"
|
||||
MemberName 13(s1) 0 "i"
|
||||
MemberName 13(s1) 1 "f"
|
||||
Name 14 "s2"
|
||||
MemberName 14(s2) 0 "i"
|
||||
MemberName 14(s2) 1 "f"
|
||||
MemberName 14(s2) 2 "s1_1"
|
||||
MemberName 14(s2) 3 "bleh"
|
||||
Name 15 "s1"
|
||||
MemberName 15(s1) 0 "i"
|
||||
MemberName 15(s1) 1 "f"
|
||||
Name 16 "s3"
|
||||
MemberName 16(s3) 0 "s2_1"
|
||||
MemberName 16(s3) 1 "i"
|
||||
MemberName 16(s3) 2 "f"
|
||||
MemberName 16(s3) 3 "s1_1"
|
||||
Name 18 "foo3"
|
||||
Name 39 "localFArray"
|
||||
Name 43 "coord"
|
||||
Name 52 "localIArray"
|
||||
Name 71 "x"
|
||||
Name 73 "localArray"
|
||||
Name 78 "i"
|
||||
Name 87 "a"
|
||||
Name 93 "condition"
|
||||
Name 101 "color"
|
||||
Name 111 "gl_FragColor"
|
||||
Name 131 "samp2D"
|
||||
Name 136 "s1"
|
||||
MemberName 136(s1) 0 "i"
|
||||
MemberName 136(s1) 1 "f"
|
||||
Name 138 "foo"
|
||||
Name 139 "s1"
|
||||
MemberName 139(s1) 0 "i"
|
||||
MemberName 139(s1) 1 "f"
|
||||
Name 140 "s2"
|
||||
MemberName 140(s2) 0 "i"
|
||||
MemberName 140(s2) 1 "f"
|
||||
MemberName 140(s2) 2 "s1_1"
|
||||
MemberName 140(s2) 3 "bleh"
|
||||
Name 142 "foo2"
|
||||
MemberDecorate 16(s3) 0 Flat
|
||||
MemberDecorate 16(s3) 1 Flat
|
||||
MemberDecorate 16(s3) 2 Flat
|
||||
MemberDecorate 16(s3) 3 Flat
|
||||
Decorate 93(condition) Flat
|
||||
Decorate 131(samp2D) DescriptorSet 0
|
||||
MemberDecorate 136(s1) 0 Flat
|
||||
MemberDecorate 136(s1) 1 Flat
|
||||
MemberDecorate 140(s2) 0 Flat
|
||||
MemberDecorate 140(s2) 1 Flat
|
||||
MemberDecorate 140(s2) 2 Flat
|
||||
MemberDecorate 140(s2) 3 Flat
|
||||
Name 13 "s3"
|
||||
MemberName 13(s3) 0 "s2_1"
|
||||
MemberName 13(s3) 1 "i"
|
||||
MemberName 13(s3) 2 "f"
|
||||
MemberName 13(s3) 3 "s1_1"
|
||||
Name 15 "foo3"
|
||||
Name 36 "localFArray"
|
||||
Name 40 "coord"
|
||||
Name 49 "localIArray"
|
||||
Name 68 "x"
|
||||
Name 70 "localArray"
|
||||
Name 75 "i"
|
||||
Name 84 "a"
|
||||
Name 90 "condition"
|
||||
Name 98 "color"
|
||||
Name 108 "gl_FragColor"
|
||||
Name 128 "samp2D"
|
||||
Name 134 "foo"
|
||||
Name 135 "foo2"
|
||||
Decorate 90(condition) Flat
|
||||
Decorate 128(samp2D) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
@ -86,171 +54,164 @@ Linked fragment stage:
|
||||
9: TypeVector 7(float) 4
|
||||
10(s2): TypeStruct 6(int) 7(float) 8(s1) 9(fvec4)
|
||||
11: TypePointer Function 10(s2)
|
||||
13(s1): TypeStruct 6(int) 7(float)
|
||||
14(s2): TypeStruct 6(int) 7(float) 13(s1) 9(fvec4)
|
||||
15(s1): TypeStruct 6(int) 7(float)
|
||||
16(s3): TypeStruct 14(s2) 6(int) 7(float) 15(s1)
|
||||
17: TypePointer Input 16(s3)
|
||||
18(foo3): 17(ptr) Variable Input
|
||||
19: 6(int) Constant 0
|
||||
20: TypePointer Input 14(s2)
|
||||
23: TypePointer Input 6(int)
|
||||
26: TypeBool
|
||||
30: 6(int) Constant 2
|
||||
31: 6(int) Constant 1
|
||||
32: 7(float) Constant 1065353216
|
||||
33: TypePointer Function 7(float)
|
||||
35: TypeInt 32 0
|
||||
36: 35(int) Constant 16
|
||||
37: TypeArray 7(float) 36
|
||||
38: TypePointer Function 37
|
||||
40: 6(int) Constant 4
|
||||
41: TypeVector 7(float) 2
|
||||
42: TypePointer Input 41(fvec2)
|
||||
43(coord): 42(ptr) Variable Input
|
||||
44: 35(int) Constant 0
|
||||
45: TypePointer Input 7(float)
|
||||
49: 35(int) Constant 8
|
||||
50: TypeArray 6(int) 49
|
||||
51: TypePointer Function 50
|
||||
55: TypePointer Function 6(int)
|
||||
72: 6(int) Constant 5
|
||||
85: 6(int) Constant 16
|
||||
89: 7(float) Constant 0
|
||||
93(condition): 23(ptr) Variable Input
|
||||
99: 6(int) Constant 3
|
||||
100: TypePointer Input 9(fvec4)
|
||||
101(color): 100(ptr) Variable Input
|
||||
103: TypePointer Function 9(fvec4)
|
||||
105: 35(int) Constant 1
|
||||
108: 35(int) Constant 2
|
||||
110: TypePointer Output 9(fvec4)
|
||||
111(gl_FragColor): 110(ptr) Variable Output
|
||||
128: TypeImage 7(float) 2D sampled format:Unknown
|
||||
129: TypeSampledImage 128
|
||||
130: TypePointer UniformConstant 129
|
||||
131(samp2D): 130(ptr) Variable UniformConstant
|
||||
136(s1): TypeStruct 6(int) 7(float)
|
||||
137: TypePointer Input 136(s1)
|
||||
138(foo): 137(ptr) Variable Input
|
||||
139(s1): TypeStruct 6(int) 7(float)
|
||||
140(s2): TypeStruct 6(int) 7(float) 139(s1) 9(fvec4)
|
||||
141: TypePointer Input 140(s2)
|
||||
142(foo2): 141(ptr) Variable Input
|
||||
13(s3): TypeStruct 10(s2) 6(int) 7(float) 8(s1)
|
||||
14: TypePointer Input 13(s3)
|
||||
15(foo3): 14(ptr) Variable Input
|
||||
16: 6(int) Constant 0
|
||||
17: TypePointer Input 10(s2)
|
||||
20: TypePointer Input 6(int)
|
||||
23: TypeBool
|
||||
27: 6(int) Constant 2
|
||||
28: 6(int) Constant 1
|
||||
29: 7(float) Constant 1065353216
|
||||
30: TypePointer Function 7(float)
|
||||
32: TypeInt 32 0
|
||||
33: 32(int) Constant 16
|
||||
34: TypeArray 7(float) 33
|
||||
35: TypePointer Function 34
|
||||
37: 6(int) Constant 4
|
||||
38: TypeVector 7(float) 2
|
||||
39: TypePointer Input 38(fvec2)
|
||||
40(coord): 39(ptr) Variable Input
|
||||
41: 32(int) Constant 0
|
||||
42: TypePointer Input 7(float)
|
||||
46: 32(int) Constant 8
|
||||
47: TypeArray 6(int) 46
|
||||
48: TypePointer Function 47
|
||||
52: TypePointer Function 6(int)
|
||||
69: 6(int) Constant 5
|
||||
82: 6(int) Constant 16
|
||||
86: 7(float) Constant 0
|
||||
90(condition): 20(ptr) Variable Input
|
||||
96: 6(int) Constant 3
|
||||
97: TypePointer Input 9(fvec4)
|
||||
98(color): 97(ptr) Variable Input
|
||||
100: TypePointer Function 9(fvec4)
|
||||
102: 32(int) Constant 1
|
||||
105: 32(int) Constant 2
|
||||
107: TypePointer Output 9(fvec4)
|
||||
108(gl_FragColor): 107(ptr) Variable Output
|
||||
125: TypeImage 7(float) 2D sampled format:Unknown
|
||||
126: TypeSampledImage 125
|
||||
127: TypePointer UniformConstant 126
|
||||
128(samp2D): 127(ptr) Variable UniformConstant
|
||||
133: TypePointer Input 8(s1)
|
||||
134(foo): 133(ptr) Variable Input
|
||||
135(foo2): 17(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
12(locals2): 11(ptr) Variable Function
|
||||
39(localFArray): 38(ptr) Variable Function
|
||||
52(localIArray): 51(ptr) Variable Function
|
||||
71(x): 55(ptr) Variable Function
|
||||
73(localArray): 38(ptr) Variable Function
|
||||
78(i): 55(ptr) Variable Function
|
||||
87(a): 38(ptr) Variable Function
|
||||
21: 20(ptr) AccessChain 18(foo3) 19
|
||||
22: 14(s2) Load 21
|
||||
Store 12(locals2) 22
|
||||
24: 23(ptr) AccessChain 18(foo3) 19 19
|
||||
25: 6(int) Load 24
|
||||
27: 26(bool) SGreaterThan 25 19
|
||||
SelectionMerge 29 None
|
||||
BranchConditional 27 28 57
|
||||
28: Label
|
||||
34: 33(ptr) AccessChain 12(locals2) 30 31
|
||||
Store 34 32
|
||||
46: 45(ptr) AccessChain 43(coord) 44
|
||||
47: 7(float) Load 46
|
||||
48: 33(ptr) AccessChain 39(localFArray) 40
|
||||
Store 48 47
|
||||
53: 23(ptr) AccessChain 18(foo3) 19 19
|
||||
54: 6(int) Load 53
|
||||
56: 55(ptr) AccessChain 52(localIArray) 30
|
||||
Store 56 54
|
||||
Branch 29
|
||||
57: Label
|
||||
58: 45(ptr) AccessChain 43(coord) 44
|
||||
59: 7(float) Load 58
|
||||
60: 33(ptr) AccessChain 12(locals2) 30 31
|
||||
Store 60 59
|
||||
61: 33(ptr) AccessChain 39(localFArray) 40
|
||||
Store 61 32
|
||||
62: 55(ptr) AccessChain 52(localIArray) 30
|
||||
Store 62 19
|
||||
Branch 29
|
||||
29: Label
|
||||
63: 55(ptr) AccessChain 52(localIArray) 30
|
||||
64: 6(int) Load 63
|
||||
65: 26(bool) IEqual 64 19
|
||||
SelectionMerge 67 None
|
||||
BranchConditional 65 66 67
|
||||
66: Label
|
||||
68: 33(ptr) AccessChain 39(localFArray) 40
|
||||
69: 7(float) Load 68
|
||||
70: 7(float) FAdd 69 32
|
||||
Store 68 70
|
||||
Branch 67
|
||||
67: Label
|
||||
Store 71(x) 72
|
||||
74: 6(int) Load 71(x)
|
||||
75: 45(ptr) AccessChain 43(coord) 44
|
||||
76: 7(float) Load 75
|
||||
77: 33(ptr) AccessChain 73(localArray) 74
|
||||
Store 77 76
|
||||
Store 78(i) 19
|
||||
Branch 79
|
||||
79: Label
|
||||
LoopMerge 81 82 None
|
||||
Branch 83
|
||||
83: Label
|
||||
84: 6(int) Load 78(i)
|
||||
86: 26(bool) SLessThan 84 85
|
||||
BranchConditional 86 80 81
|
||||
80: Label
|
||||
88: 6(int) Load 78(i)
|
||||
90: 33(ptr) AccessChain 87(a) 88
|
||||
Store 90 89
|
||||
Branch 82
|
||||
82: Label
|
||||
91: 6(int) Load 78(i)
|
||||
92: 6(int) IAdd 91 31
|
||||
Store 78(i) 92
|
||||
36(localFArray): 35(ptr) Variable Function
|
||||
49(localIArray): 48(ptr) Variable Function
|
||||
68(x): 52(ptr) Variable Function
|
||||
70(localArray): 35(ptr) Variable Function
|
||||
75(i): 52(ptr) Variable Function
|
||||
84(a): 35(ptr) Variable Function
|
||||
18: 17(ptr) AccessChain 15(foo3) 16
|
||||
19: 10(s2) Load 18
|
||||
Store 12(locals2) 19
|
||||
21: 20(ptr) AccessChain 15(foo3) 16 16
|
||||
22: 6(int) Load 21
|
||||
24: 23(bool) SGreaterThan 22 16
|
||||
SelectionMerge 26 None
|
||||
BranchConditional 24 25 54
|
||||
25: Label
|
||||
31: 30(ptr) AccessChain 12(locals2) 27 28
|
||||
Store 31 29
|
||||
43: 42(ptr) AccessChain 40(coord) 41
|
||||
44: 7(float) Load 43
|
||||
45: 30(ptr) AccessChain 36(localFArray) 37
|
||||
Store 45 44
|
||||
50: 20(ptr) AccessChain 15(foo3) 16 16
|
||||
51: 6(int) Load 50
|
||||
53: 52(ptr) AccessChain 49(localIArray) 27
|
||||
Store 53 51
|
||||
Branch 26
|
||||
54: Label
|
||||
55: 42(ptr) AccessChain 40(coord) 41
|
||||
56: 7(float) Load 55
|
||||
57: 30(ptr) AccessChain 12(locals2) 27 28
|
||||
Store 57 56
|
||||
58: 30(ptr) AccessChain 36(localFArray) 37
|
||||
Store 58 29
|
||||
59: 52(ptr) AccessChain 49(localIArray) 27
|
||||
Store 59 16
|
||||
Branch 26
|
||||
26: Label
|
||||
60: 52(ptr) AccessChain 49(localIArray) 27
|
||||
61: 6(int) Load 60
|
||||
62: 23(bool) IEqual 61 16
|
||||
SelectionMerge 64 None
|
||||
BranchConditional 62 63 64
|
||||
63: Label
|
||||
65: 30(ptr) AccessChain 36(localFArray) 37
|
||||
66: 7(float) Load 65
|
||||
67: 7(float) FAdd 66 29
|
||||
Store 65 67
|
||||
Branch 64
|
||||
64: Label
|
||||
Store 68(x) 69
|
||||
71: 6(int) Load 68(x)
|
||||
72: 42(ptr) AccessChain 40(coord) 41
|
||||
73: 7(float) Load 72
|
||||
74: 30(ptr) AccessChain 70(localArray) 71
|
||||
Store 74 73
|
||||
Store 75(i) 16
|
||||
Branch 76
|
||||
76: Label
|
||||
LoopMerge 78 79 None
|
||||
Branch 80
|
||||
80: Label
|
||||
81: 6(int) Load 75(i)
|
||||
83: 23(bool) SLessThan 81 82
|
||||
BranchConditional 83 77 78
|
||||
77: Label
|
||||
85: 6(int) Load 75(i)
|
||||
87: 30(ptr) AccessChain 84(a) 85
|
||||
Store 87 86
|
||||
Branch 79
|
||||
81: Label
|
||||
94: 6(int) Load 93(condition)
|
||||
95: 26(bool) IEqual 94 31
|
||||
SelectionMerge 97 None
|
||||
BranchConditional 95 96 97
|
||||
96: Label
|
||||
98: 37 Load 73(localArray)
|
||||
Store 87(a) 98
|
||||
Branch 97
|
||||
97: Label
|
||||
102: 9(fvec4) Load 101(color)
|
||||
104: 103(ptr) AccessChain 12(locals2) 99
|
||||
Store 104 102
|
||||
106: 45(ptr) AccessChain 43(coord) 105
|
||||
107: 7(float) Load 106
|
||||
109: 33(ptr) AccessChain 12(locals2) 99 108
|
||||
Store 109 107
|
||||
112: 103(ptr) AccessChain 12(locals2) 99
|
||||
113: 9(fvec4) Load 112
|
||||
114: 33(ptr) AccessChain 39(localFArray) 40
|
||||
115: 7(float) Load 114
|
||||
116: 33(ptr) AccessChain 12(locals2) 30 31
|
||||
117: 7(float) Load 116
|
||||
118: 7(float) FAdd 115 117
|
||||
119: 6(int) Load 71(x)
|
||||
120: 33(ptr) AccessChain 73(localArray) 119
|
||||
121: 7(float) Load 120
|
||||
122: 7(float) FAdd 118 121
|
||||
123: 6(int) Load 71(x)
|
||||
124: 33(ptr) AccessChain 87(a) 123
|
||||
125: 7(float) Load 124
|
||||
126: 7(float) FAdd 122 125
|
||||
127: 9(fvec4) VectorTimesScalar 113 126
|
||||
132: 129 Load 131(samp2D)
|
||||
133: 41(fvec2) Load 43(coord)
|
||||
134: 9(fvec4) ImageSampleImplicitLod 132 133
|
||||
135: 9(fvec4) FMul 127 134
|
||||
Store 111(gl_FragColor) 135
|
||||
79: Label
|
||||
88: 6(int) Load 75(i)
|
||||
89: 6(int) IAdd 88 28
|
||||
Store 75(i) 89
|
||||
Branch 76
|
||||
78: Label
|
||||
91: 6(int) Load 90(condition)
|
||||
92: 23(bool) IEqual 91 28
|
||||
SelectionMerge 94 None
|
||||
BranchConditional 92 93 94
|
||||
93: Label
|
||||
95: 34 Load 70(localArray)
|
||||
Store 84(a) 95
|
||||
Branch 94
|
||||
94: Label
|
||||
99: 9(fvec4) Load 98(color)
|
||||
101: 100(ptr) AccessChain 12(locals2) 96
|
||||
Store 101 99
|
||||
103: 42(ptr) AccessChain 40(coord) 102
|
||||
104: 7(float) Load 103
|
||||
106: 30(ptr) AccessChain 12(locals2) 96 105
|
||||
Store 106 104
|
||||
109: 100(ptr) AccessChain 12(locals2) 96
|
||||
110: 9(fvec4) Load 109
|
||||
111: 30(ptr) AccessChain 36(localFArray) 37
|
||||
112: 7(float) Load 111
|
||||
113: 30(ptr) AccessChain 12(locals2) 27 28
|
||||
114: 7(float) Load 113
|
||||
115: 7(float) FAdd 112 114
|
||||
116: 6(int) Load 68(x)
|
||||
117: 30(ptr) AccessChain 70(localArray) 116
|
||||
118: 7(float) Load 117
|
||||
119: 7(float) FAdd 115 118
|
||||
120: 6(int) Load 68(x)
|
||||
121: 30(ptr) AccessChain 84(a) 120
|
||||
122: 7(float) Load 121
|
||||
123: 7(float) FAdd 119 122
|
||||
124: 9(fvec4) VectorTimesScalar 110 123
|
||||
129: 126 Load 128(samp2D)
|
||||
130: 38(fvec2) Load 40(coord)
|
||||
131: 9(fvec4) ImageSampleImplicitLod 129 130
|
||||
132: 9(fvec4) FMul 124 131
|
||||
Store 108(gl_FragColor) 132
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@ -7,7 +7,7 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 278
|
||||
// Id's are bound by 284
|
||||
|
||||
Capability Shader
|
||||
Capability SampledRect
|
||||
@ -15,7 +15,7 @@ Linked fragment stage:
|
||||
Capability ImageQuery
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 17 26 29 55 81 84 91 247 277
|
||||
EntryPoint Fragment 4 "main" 17 26 29 55 81 84 92 253 283
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 430
|
||||
Name 4 "main"
|
||||
@ -31,24 +31,24 @@ Linked fragment stage:
|
||||
Name 64 "s2DShadow"
|
||||
Name 81 "ic3D"
|
||||
Name 84 "ic1D"
|
||||
Name 91 "ic2D"
|
||||
Name 100 "sr"
|
||||
Name 125 "sCube"
|
||||
Name 136 "s2DArrayShadow"
|
||||
Name 164 "iv"
|
||||
Name 168 "is2D"
|
||||
Name 203 "is3D"
|
||||
Name 215 "isCube"
|
||||
Name 227 "is2DArray"
|
||||
Name 237 "iv2"
|
||||
Name 241 "sCubeShadow"
|
||||
Name 247 "FragData"
|
||||
Name 259 "is2Dms"
|
||||
Name 263 "us2D"
|
||||
Name 267 "us3D"
|
||||
Name 271 "usCube"
|
||||
Name 275 "us2DArray"
|
||||
Name 277 "ic4D"
|
||||
Name 92 "ic2D"
|
||||
Name 102 "sr"
|
||||
Name 128 "sCube"
|
||||
Name 139 "s2DArrayShadow"
|
||||
Name 167 "iv"
|
||||
Name 171 "is2D"
|
||||
Name 208 "is3D"
|
||||
Name 220 "isCube"
|
||||
Name 232 "is2DArray"
|
||||
Name 243 "iv2"
|
||||
Name 247 "sCubeShadow"
|
||||
Name 253 "FragData"
|
||||
Name 265 "is2Dms"
|
||||
Name 269 "us2D"
|
||||
Name 273 "us3D"
|
||||
Name 277 "usCube"
|
||||
Name 281 "us2DArray"
|
||||
Name 283 "ic4D"
|
||||
Decorate 13(s2D) DescriptorSet 0
|
||||
Decorate 23(sCubeArrayShadow) DescriptorSet 0
|
||||
Decorate 42(s3D) DescriptorSet 0
|
||||
@ -56,21 +56,21 @@ Linked fragment stage:
|
||||
Decorate 64(s2DShadow) DescriptorSet 0
|
||||
Decorate 81(ic3D) Flat
|
||||
Decorate 84(ic1D) Flat
|
||||
Decorate 91(ic2D) Flat
|
||||
Decorate 100(sr) DescriptorSet 0
|
||||
Decorate 125(sCube) DescriptorSet 0
|
||||
Decorate 136(s2DArrayShadow) DescriptorSet 0
|
||||
Decorate 168(is2D) DescriptorSet 0
|
||||
Decorate 203(is3D) DescriptorSet 0
|
||||
Decorate 215(isCube) DescriptorSet 0
|
||||
Decorate 227(is2DArray) DescriptorSet 0
|
||||
Decorate 241(sCubeShadow) DescriptorSet 0
|
||||
Decorate 259(is2Dms) DescriptorSet 0
|
||||
Decorate 263(us2D) DescriptorSet 0
|
||||
Decorate 267(us3D) DescriptorSet 0
|
||||
Decorate 271(usCube) DescriptorSet 0
|
||||
Decorate 275(us2DArray) DescriptorSet 0
|
||||
Decorate 277(ic4D) Flat
|
||||
Decorate 92(ic2D) Flat
|
||||
Decorate 102(sr) DescriptorSet 0
|
||||
Decorate 128(sCube) DescriptorSet 0
|
||||
Decorate 139(s2DArrayShadow) DescriptorSet 0
|
||||
Decorate 171(is2D) DescriptorSet 0
|
||||
Decorate 208(is3D) DescriptorSet 0
|
||||
Decorate 220(isCube) DescriptorSet 0
|
||||
Decorate 232(is2DArray) DescriptorSet 0
|
||||
Decorate 247(sCubeShadow) DescriptorSet 0
|
||||
Decorate 265(is2Dms) DescriptorSet 0
|
||||
Decorate 269(us2D) DescriptorSet 0
|
||||
Decorate 273(us3D) DescriptorSet 0
|
||||
Decorate 277(usCube) DescriptorSet 0
|
||||
Decorate 281(us2DArray) DescriptorSet 0
|
||||
Decorate 283(ic4D) Flat
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@ -119,78 +119,78 @@ Linked fragment stage:
|
||||
81(ic3D): 80(ptr) Variable Input
|
||||
83: TypePointer Input 67(int)
|
||||
84(ic1D): 83(ptr) Variable Input
|
||||
90: TypePointer Input 68(ivec2)
|
||||
91(ic2D): 90(ptr) Variable Input
|
||||
93: 67(int) Constant 4
|
||||
97: TypeImage 6(float) Rect sampled format:Unknown
|
||||
98: TypeSampledImage 97
|
||||
99: TypePointer UniformConstant 98
|
||||
100(sr): 99(ptr) Variable UniformConstant
|
||||
103: 68(ivec2) ConstantComposite 93 93
|
||||
122: TypeImage 6(float) Cube sampled format:Unknown
|
||||
123: TypeSampledImage 122
|
||||
124: TypePointer UniformConstant 123
|
||||
125(sCube): 124(ptr) Variable UniformConstant
|
||||
133: TypeImage 6(float) 2D depth array sampled format:Unknown
|
||||
134: TypeSampledImage 133
|
||||
135: TypePointer UniformConstant 134
|
||||
136(s2DArrayShadow): 135(ptr) Variable UniformConstant
|
||||
143: 32(int) Constant 0
|
||||
162: TypeVector 67(int) 4
|
||||
163: TypePointer Function 162(ivec4)
|
||||
165: TypeImage 67(int) 2D sampled format:Unknown
|
||||
166: TypeSampledImage 165
|
||||
167: TypePointer UniformConstant 166
|
||||
168(is2D): 167(ptr) Variable UniformConstant
|
||||
200: TypeImage 67(int) 3D sampled format:Unknown
|
||||
201: TypeSampledImage 200
|
||||
202: TypePointer UniformConstant 201
|
||||
203(is3D): 202(ptr) Variable UniformConstant
|
||||
206: 6(float) Constant 1082549862
|
||||
212: TypeImage 67(int) Cube sampled format:Unknown
|
||||
213: TypeSampledImage 212
|
||||
214: TypePointer UniformConstant 213
|
||||
215(isCube): 214(ptr) Variable UniformConstant
|
||||
224: TypeImage 67(int) 2D array sampled format:Unknown
|
||||
225: TypeSampledImage 224
|
||||
226: TypePointer UniformConstant 225
|
||||
227(is2DArray): 226(ptr) Variable UniformConstant
|
||||
236: TypePointer Function 68(ivec2)
|
||||
238: TypeImage 6(float) Cube depth sampled format:Unknown
|
||||
239: TypeSampledImage 238
|
||||
240: TypePointer UniformConstant 239
|
||||
241(sCubeShadow): 240(ptr) Variable UniformConstant
|
||||
243: 67(int) Constant 2
|
||||
246: TypePointer Output 7(fvec4)
|
||||
247(FragData): 246(ptr) Variable Output
|
||||
251: 6(float) Constant 0
|
||||
256: TypeImage 67(int) 2D multi-sampled sampled format:Unknown
|
||||
257: TypeSampledImage 256
|
||||
258: TypePointer UniformConstant 257
|
||||
259(is2Dms): 258(ptr) Variable UniformConstant
|
||||
260: TypeImage 32(int) 2D sampled format:Unknown
|
||||
261: TypeSampledImage 260
|
||||
262: TypePointer UniformConstant 261
|
||||
263(us2D): 262(ptr) Variable UniformConstant
|
||||
264: TypeImage 32(int) 3D sampled format:Unknown
|
||||
265: TypeSampledImage 264
|
||||
266: TypePointer UniformConstant 265
|
||||
267(us3D): 266(ptr) Variable UniformConstant
|
||||
268: TypeImage 32(int) Cube sampled format:Unknown
|
||||
269: TypeSampledImage 268
|
||||
270: TypePointer UniformConstant 269
|
||||
271(usCube): 270(ptr) Variable UniformConstant
|
||||
272: TypeImage 32(int) 2D array sampled format:Unknown
|
||||
273: TypeSampledImage 272
|
||||
274: TypePointer UniformConstant 273
|
||||
275(us2DArray): 274(ptr) Variable UniformConstant
|
||||
276: TypePointer Input 162(ivec4)
|
||||
277(ic4D): 276(ptr) Variable Input
|
||||
91: TypePointer Input 68(ivec2)
|
||||
92(ic2D): 91(ptr) Variable Input
|
||||
94: 67(int) Constant 4
|
||||
99: TypeImage 6(float) Rect sampled format:Unknown
|
||||
100: TypeSampledImage 99
|
||||
101: TypePointer UniformConstant 100
|
||||
102(sr): 101(ptr) Variable UniformConstant
|
||||
105: 68(ivec2) ConstantComposite 94 94
|
||||
125: TypeImage 6(float) Cube sampled format:Unknown
|
||||
126: TypeSampledImage 125
|
||||
127: TypePointer UniformConstant 126
|
||||
128(sCube): 127(ptr) Variable UniformConstant
|
||||
136: TypeImage 6(float) 2D depth array sampled format:Unknown
|
||||
137: TypeSampledImage 136
|
||||
138: TypePointer UniformConstant 137
|
||||
139(s2DArrayShadow): 138(ptr) Variable UniformConstant
|
||||
146: 32(int) Constant 0
|
||||
165: TypeVector 67(int) 4
|
||||
166: TypePointer Function 165(ivec4)
|
||||
168: TypeImage 67(int) 2D sampled format:Unknown
|
||||
169: TypeSampledImage 168
|
||||
170: TypePointer UniformConstant 169
|
||||
171(is2D): 170(ptr) Variable UniformConstant
|
||||
205: TypeImage 67(int) 3D sampled format:Unknown
|
||||
206: TypeSampledImage 205
|
||||
207: TypePointer UniformConstant 206
|
||||
208(is3D): 207(ptr) Variable UniformConstant
|
||||
211: 6(float) Constant 1082549862
|
||||
217: TypeImage 67(int) Cube sampled format:Unknown
|
||||
218: TypeSampledImage 217
|
||||
219: TypePointer UniformConstant 218
|
||||
220(isCube): 219(ptr) Variable UniformConstant
|
||||
229: TypeImage 67(int) 2D array sampled format:Unknown
|
||||
230: TypeSampledImage 229
|
||||
231: TypePointer UniformConstant 230
|
||||
232(is2DArray): 231(ptr) Variable UniformConstant
|
||||
242: TypePointer Function 68(ivec2)
|
||||
244: TypeImage 6(float) Cube depth sampled format:Unknown
|
||||
245: TypeSampledImage 244
|
||||
246: TypePointer UniformConstant 245
|
||||
247(sCubeShadow): 246(ptr) Variable UniformConstant
|
||||
249: 67(int) Constant 2
|
||||
252: TypePointer Output 7(fvec4)
|
||||
253(FragData): 252(ptr) Variable Output
|
||||
257: 6(float) Constant 0
|
||||
262: TypeImage 67(int) 2D multi-sampled sampled format:Unknown
|
||||
263: TypeSampledImage 262
|
||||
264: TypePointer UniformConstant 263
|
||||
265(is2Dms): 264(ptr) Variable UniformConstant
|
||||
266: TypeImage 32(int) 2D sampled format:Unknown
|
||||
267: TypeSampledImage 266
|
||||
268: TypePointer UniformConstant 267
|
||||
269(us2D): 268(ptr) Variable UniformConstant
|
||||
270: TypeImage 32(int) 3D sampled format:Unknown
|
||||
271: TypeSampledImage 270
|
||||
272: TypePointer UniformConstant 271
|
||||
273(us3D): 272(ptr) Variable UniformConstant
|
||||
274: TypeImage 32(int) Cube sampled format:Unknown
|
||||
275: TypeSampledImage 274
|
||||
276: TypePointer UniformConstant 275
|
||||
277(usCube): 276(ptr) Variable UniformConstant
|
||||
278: TypeImage 32(int) 2D array sampled format:Unknown
|
||||
279: TypeSampledImage 278
|
||||
280: TypePointer UniformConstant 279
|
||||
281(us2DArray): 280(ptr) Variable UniformConstant
|
||||
282: TypePointer Input 165(ivec4)
|
||||
283(ic4D): 282(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(v): 8(ptr) Variable Function
|
||||
164(iv): 163(ptr) Variable Function
|
||||
237(iv2): 236(ptr) Variable Function
|
||||
167(iv): 166(ptr) Variable Function
|
||||
243(iv2): 242(ptr) Variable Function
|
||||
14: 11 Load 13(s2D)
|
||||
18: 15(fvec2) Load 17(c2D)
|
||||
19: 7(fvec4) ImageSampleImplicitLod 14 18
|
||||
@ -229,153 +229,159 @@ Linked fragment stage:
|
||||
78: 40 Load 42(s3D)
|
||||
82: 79(ivec3) Load 81(ic3D)
|
||||
85: 67(int) Load 84(ic1D)
|
||||
86: 7(fvec4) ImageFetch 78 82 Lod 85
|
||||
87: 7(fvec4) Load 9(v)
|
||||
88: 7(fvec4) FAdd 87 86
|
||||
Store 9(v) 88
|
||||
89: 11 Load 13(s2D)
|
||||
92: 68(ivec2) Load 91(ic2D)
|
||||
94: 7(fvec4) ImageFetch 89 92 Lod ConstOffset 93 70
|
||||
95: 7(fvec4) Load 9(v)
|
||||
96: 7(fvec4) FAdd 95 94
|
||||
Store 9(v) 96
|
||||
101: 98 Load 100(sr)
|
||||
102: 68(ivec2) Load 91(ic2D)
|
||||
104: 7(fvec4) ImageFetch 101 102 ConstOffset 103
|
||||
105: 7(fvec4) Load 9(v)
|
||||
106: 7(fvec4) FAdd 105 104
|
||||
Store 9(v) 106
|
||||
107: 62 Load 64(s2DShadow)
|
||||
108: 53(fvec3) Load 55(c3D)
|
||||
109: 6(float) Load 29(c1D)
|
||||
110: 6(float) CompositeExtract 108 2
|
||||
111: 6(float) ImageSampleDrefExplicitLod 107 108 110 Lod ConstOffset 109 70
|
||||
112: 34(ptr) AccessChain 9(v) 33
|
||||
113: 6(float) Load 112
|
||||
114: 6(float) FAdd 113 111
|
||||
86: 39 Image 78
|
||||
87: 7(fvec4) ImageFetch 86 82 Lod 85
|
||||
88: 7(fvec4) Load 9(v)
|
||||
89: 7(fvec4) FAdd 88 87
|
||||
Store 9(v) 89
|
||||
90: 11 Load 13(s2D)
|
||||
93: 68(ivec2) Load 92(ic2D)
|
||||
95: 10 Image 90
|
||||
96: 7(fvec4) ImageFetch 95 93 Lod ConstOffset 94 70
|
||||
97: 7(fvec4) Load 9(v)
|
||||
98: 7(fvec4) FAdd 97 96
|
||||
Store 9(v) 98
|
||||
103: 100 Load 102(sr)
|
||||
104: 68(ivec2) Load 92(ic2D)
|
||||
106: 99 Image 103
|
||||
107: 7(fvec4) ImageFetch 106 104 ConstOffset 105
|
||||
108: 7(fvec4) Load 9(v)
|
||||
109: 7(fvec4) FAdd 108 107
|
||||
Store 9(v) 109
|
||||
110: 62 Load 64(s2DShadow)
|
||||
111: 53(fvec3) Load 55(c3D)
|
||||
112: 6(float) Load 29(c1D)
|
||||
113: 6(float) CompositeExtract 111 2
|
||||
114: 6(float) ImageSampleDrefExplicitLod 110 111 113 Lod ConstOffset 112 70
|
||||
115: 34(ptr) AccessChain 9(v) 33
|
||||
Store 115 114
|
||||
116: 11 Load 13(s2D)
|
||||
117: 53(fvec3) Load 55(c3D)
|
||||
118: 6(float) Load 29(c1D)
|
||||
119: 7(fvec4) ImageSampleProjExplicitLod 116 117 Lod ConstOffset 118 70
|
||||
120: 7(fvec4) Load 9(v)
|
||||
121: 7(fvec4) FAdd 120 119
|
||||
Store 9(v) 121
|
||||
126: 123 Load 125(sCube)
|
||||
127: 53(fvec3) Load 55(c3D)
|
||||
128: 53(fvec3) Load 55(c3D)
|
||||
129: 53(fvec3) Load 55(c3D)
|
||||
130: 7(fvec4) ImageSampleExplicitLod 126 127 Grad 128 129
|
||||
131: 7(fvec4) Load 9(v)
|
||||
132: 7(fvec4) FAdd 131 130
|
||||
Store 9(v) 132
|
||||
137: 134 Load 136(s2DArrayShadow)
|
||||
138: 7(fvec4) Load 26(c4D)
|
||||
139: 15(fvec2) Load 17(c2D)
|
||||
140: 15(fvec2) Load 17(c2D)
|
||||
141: 6(float) CompositeExtract 138 3
|
||||
142: 6(float) ImageSampleDrefExplicitLod 137 138 141 Grad ConstOffset 139 140 70
|
||||
144: 34(ptr) AccessChain 9(v) 143
|
||||
145: 6(float) Load 144
|
||||
146: 6(float) FAdd 145 142
|
||||
147: 34(ptr) AccessChain 9(v) 143
|
||||
Store 147 146
|
||||
148: 40 Load 42(s3D)
|
||||
149: 7(fvec4) Load 26(c4D)
|
||||
150: 53(fvec3) Load 55(c3D)
|
||||
151: 53(fvec3) Load 55(c3D)
|
||||
152: 7(fvec4) ImageSampleProjExplicitLod 148 149 Grad 150 151
|
||||
153: 7(fvec4) Load 9(v)
|
||||
154: 7(fvec4) FAdd 153 152
|
||||
Store 9(v) 154
|
||||
155: 11 Load 13(s2D)
|
||||
156: 53(fvec3) Load 55(c3D)
|
||||
157: 15(fvec2) Load 17(c2D)
|
||||
158: 15(fvec2) Load 17(c2D)
|
||||
159: 7(fvec4) ImageSampleProjExplicitLod 155 156 Grad ConstOffset 157 158 70
|
||||
160: 7(fvec4) Load 9(v)
|
||||
161: 7(fvec4) FAdd 160 159
|
||||
Store 9(v) 161
|
||||
169: 166 Load 168(is2D)
|
||||
170: 15(fvec2) Load 17(c2D)
|
||||
171: 162(ivec4) ImageSampleImplicitLod 169 170
|
||||
Store 164(iv) 171
|
||||
172: 162(ivec4) Load 164(iv)
|
||||
173: 7(fvec4) ConvertSToF 172
|
||||
174: 7(fvec4) Load 9(v)
|
||||
175: 7(fvec4) FAdd 174 173
|
||||
Store 9(v) 175
|
||||
176: 166 Load 168(is2D)
|
||||
177: 7(fvec4) Load 26(c4D)
|
||||
178: 162(ivec4) ImageSampleProjImplicitLod 176 177 ConstOffset 70
|
||||
Store 164(iv) 178
|
||||
179: 162(ivec4) Load 164(iv)
|
||||
180: 7(fvec4) ConvertSToF 179
|
||||
181: 7(fvec4) Load 9(v)
|
||||
182: 7(fvec4) FAdd 181 180
|
||||
Store 9(v) 182
|
||||
183: 166 Load 168(is2D)
|
||||
184: 53(fvec3) Load 55(c3D)
|
||||
185: 6(float) Load 29(c1D)
|
||||
186: 162(ivec4) ImageSampleProjExplicitLod 183 184 Lod 185
|
||||
Store 164(iv) 186
|
||||
187: 162(ivec4) Load 164(iv)
|
||||
188: 7(fvec4) ConvertSToF 187
|
||||
189: 7(fvec4) Load 9(v)
|
||||
190: 7(fvec4) FAdd 189 188
|
||||
Store 9(v) 190
|
||||
191: 166 Load 168(is2D)
|
||||
192: 53(fvec3) Load 55(c3D)
|
||||
193: 15(fvec2) Load 17(c2D)
|
||||
194: 15(fvec2) Load 17(c2D)
|
||||
195: 162(ivec4) ImageSampleProjExplicitLod 191 192 Grad 193 194
|
||||
Store 164(iv) 195
|
||||
196: 162(ivec4) Load 164(iv)
|
||||
197: 7(fvec4) ConvertSToF 196
|
||||
198: 7(fvec4) Load 9(v)
|
||||
199: 7(fvec4) FAdd 198 197
|
||||
Store 9(v) 199
|
||||
204: 201 Load 203(is3D)
|
||||
205: 53(fvec3) Load 55(c3D)
|
||||
207: 162(ivec4) ImageSampleImplicitLod 204 205 Bias 206
|
||||
Store 164(iv) 207
|
||||
208: 162(ivec4) Load 164(iv)
|
||||
209: 7(fvec4) ConvertSToF 208
|
||||
210: 7(fvec4) Load 9(v)
|
||||
211: 7(fvec4) FAdd 210 209
|
||||
Store 9(v) 211
|
||||
216: 213 Load 215(isCube)
|
||||
217: 53(fvec3) Load 55(c3D)
|
||||
218: 6(float) Load 29(c1D)
|
||||
219: 162(ivec4) ImageSampleExplicitLod 216 217 Lod 218
|
||||
Store 164(iv) 219
|
||||
220: 162(ivec4) Load 164(iv)
|
||||
221: 7(fvec4) ConvertSToF 220
|
||||
222: 7(fvec4) Load 9(v)
|
||||
223: 7(fvec4) FAdd 222 221
|
||||
Store 9(v) 223
|
||||
228: 225 Load 227(is2DArray)
|
||||
229: 79(ivec3) Load 81(ic3D)
|
||||
230: 67(int) Load 84(ic1D)
|
||||
231: 162(ivec4) ImageFetch 228 229 Lod 230
|
||||
Store 164(iv) 231
|
||||
232: 162(ivec4) Load 164(iv)
|
||||
233: 7(fvec4) ConvertSToF 232
|
||||
234: 7(fvec4) Load 9(v)
|
||||
235: 7(fvec4) FAdd 234 233
|
||||
Store 9(v) 235
|
||||
242: 239 Load 241(sCubeShadow)
|
||||
244: 238 Image 242
|
||||
245: 68(ivec2) ImageQuerySizeLod 244 243
|
||||
Store 237(iv2) 245
|
||||
248: 7(fvec4) Load 9(v)
|
||||
249: 68(ivec2) Load 237(iv2)
|
||||
250: 15(fvec2) ConvertSToF 249
|
||||
252: 6(float) CompositeExtract 250 0
|
||||
253: 6(float) CompositeExtract 250 1
|
||||
254: 7(fvec4) CompositeConstruct 252 253 251 251
|
||||
255: 7(fvec4) FAdd 248 254
|
||||
Store 247(FragData) 255
|
||||
116: 6(float) Load 115
|
||||
117: 6(float) FAdd 116 114
|
||||
118: 34(ptr) AccessChain 9(v) 33
|
||||
Store 118 117
|
||||
119: 11 Load 13(s2D)
|
||||
120: 53(fvec3) Load 55(c3D)
|
||||
121: 6(float) Load 29(c1D)
|
||||
122: 7(fvec4) ImageSampleProjExplicitLod 119 120 Lod ConstOffset 121 70
|
||||
123: 7(fvec4) Load 9(v)
|
||||
124: 7(fvec4) FAdd 123 122
|
||||
Store 9(v) 124
|
||||
129: 126 Load 128(sCube)
|
||||
130: 53(fvec3) Load 55(c3D)
|
||||
131: 53(fvec3) Load 55(c3D)
|
||||
132: 53(fvec3) Load 55(c3D)
|
||||
133: 7(fvec4) ImageSampleExplicitLod 129 130 Grad 131 132
|
||||
134: 7(fvec4) Load 9(v)
|
||||
135: 7(fvec4) FAdd 134 133
|
||||
Store 9(v) 135
|
||||
140: 137 Load 139(s2DArrayShadow)
|
||||
141: 7(fvec4) Load 26(c4D)
|
||||
142: 15(fvec2) Load 17(c2D)
|
||||
143: 15(fvec2) Load 17(c2D)
|
||||
144: 6(float) CompositeExtract 141 3
|
||||
145: 6(float) ImageSampleDrefExplicitLod 140 141 144 Grad ConstOffset 142 143 70
|
||||
147: 34(ptr) AccessChain 9(v) 146
|
||||
148: 6(float) Load 147
|
||||
149: 6(float) FAdd 148 145
|
||||
150: 34(ptr) AccessChain 9(v) 146
|
||||
Store 150 149
|
||||
151: 40 Load 42(s3D)
|
||||
152: 7(fvec4) Load 26(c4D)
|
||||
153: 53(fvec3) Load 55(c3D)
|
||||
154: 53(fvec3) Load 55(c3D)
|
||||
155: 7(fvec4) ImageSampleProjExplicitLod 151 152 Grad 153 154
|
||||
156: 7(fvec4) Load 9(v)
|
||||
157: 7(fvec4) FAdd 156 155
|
||||
Store 9(v) 157
|
||||
158: 11 Load 13(s2D)
|
||||
159: 53(fvec3) Load 55(c3D)
|
||||
160: 15(fvec2) Load 17(c2D)
|
||||
161: 15(fvec2) Load 17(c2D)
|
||||
162: 7(fvec4) ImageSampleProjExplicitLod 158 159 Grad ConstOffset 160 161 70
|
||||
163: 7(fvec4) Load 9(v)
|
||||
164: 7(fvec4) FAdd 163 162
|
||||
Store 9(v) 164
|
||||
172: 169 Load 171(is2D)
|
||||
173: 15(fvec2) Load 17(c2D)
|
||||
174: 165(ivec4) ImageSampleImplicitLod 172 173
|
||||
Store 167(iv) 174
|
||||
175: 165(ivec4) Load 167(iv)
|
||||
176: 7(fvec4) ConvertSToF 175
|
||||
177: 7(fvec4) Load 9(v)
|
||||
178: 7(fvec4) FAdd 177 176
|
||||
Store 9(v) 178
|
||||
179: 169 Load 171(is2D)
|
||||
180: 7(fvec4) Load 26(c4D)
|
||||
181: 6(float) CompositeExtract 180 3
|
||||
182: 7(fvec4) CompositeInsert 181 180 2
|
||||
183: 165(ivec4) ImageSampleProjImplicitLod 179 182 ConstOffset 70
|
||||
Store 167(iv) 183
|
||||
184: 165(ivec4) Load 167(iv)
|
||||
185: 7(fvec4) ConvertSToF 184
|
||||
186: 7(fvec4) Load 9(v)
|
||||
187: 7(fvec4) FAdd 186 185
|
||||
Store 9(v) 187
|
||||
188: 169 Load 171(is2D)
|
||||
189: 53(fvec3) Load 55(c3D)
|
||||
190: 6(float) Load 29(c1D)
|
||||
191: 165(ivec4) ImageSampleProjExplicitLod 188 189 Lod 190
|
||||
Store 167(iv) 191
|
||||
192: 165(ivec4) Load 167(iv)
|
||||
193: 7(fvec4) ConvertSToF 192
|
||||
194: 7(fvec4) Load 9(v)
|
||||
195: 7(fvec4) FAdd 194 193
|
||||
Store 9(v) 195
|
||||
196: 169 Load 171(is2D)
|
||||
197: 53(fvec3) Load 55(c3D)
|
||||
198: 15(fvec2) Load 17(c2D)
|
||||
199: 15(fvec2) Load 17(c2D)
|
||||
200: 165(ivec4) ImageSampleProjExplicitLod 196 197 Grad 198 199
|
||||
Store 167(iv) 200
|
||||
201: 165(ivec4) Load 167(iv)
|
||||
202: 7(fvec4) ConvertSToF 201
|
||||
203: 7(fvec4) Load 9(v)
|
||||
204: 7(fvec4) FAdd 203 202
|
||||
Store 9(v) 204
|
||||
209: 206 Load 208(is3D)
|
||||
210: 53(fvec3) Load 55(c3D)
|
||||
212: 165(ivec4) ImageSampleImplicitLod 209 210 Bias 211
|
||||
Store 167(iv) 212
|
||||
213: 165(ivec4) Load 167(iv)
|
||||
214: 7(fvec4) ConvertSToF 213
|
||||
215: 7(fvec4) Load 9(v)
|
||||
216: 7(fvec4) FAdd 215 214
|
||||
Store 9(v) 216
|
||||
221: 218 Load 220(isCube)
|
||||
222: 53(fvec3) Load 55(c3D)
|
||||
223: 6(float) Load 29(c1D)
|
||||
224: 165(ivec4) ImageSampleExplicitLod 221 222 Lod 223
|
||||
Store 167(iv) 224
|
||||
225: 165(ivec4) Load 167(iv)
|
||||
226: 7(fvec4) ConvertSToF 225
|
||||
227: 7(fvec4) Load 9(v)
|
||||
228: 7(fvec4) FAdd 227 226
|
||||
Store 9(v) 228
|
||||
233: 230 Load 232(is2DArray)
|
||||
234: 79(ivec3) Load 81(ic3D)
|
||||
235: 67(int) Load 84(ic1D)
|
||||
236: 229 Image 233
|
||||
237: 165(ivec4) ImageFetch 236 234 Lod 235
|
||||
Store 167(iv) 237
|
||||
238: 165(ivec4) Load 167(iv)
|
||||
239: 7(fvec4) ConvertSToF 238
|
||||
240: 7(fvec4) Load 9(v)
|
||||
241: 7(fvec4) FAdd 240 239
|
||||
Store 9(v) 241
|
||||
248: 245 Load 247(sCubeShadow)
|
||||
250: 244 Image 248
|
||||
251: 68(ivec2) ImageQuerySizeLod 250 249
|
||||
Store 243(iv2) 251
|
||||
254: 7(fvec4) Load 9(v)
|
||||
255: 68(ivec2) Load 243(iv2)
|
||||
256: 15(fvec2) ConvertSToF 255
|
||||
258: 6(float) CompositeExtract 256 0
|
||||
259: 6(float) CompositeExtract 256 1
|
||||
260: 7(fvec4) CompositeConstruct 258 259 257 257
|
||||
261: 7(fvec4) FAdd 254 260
|
||||
Store 253(FragData) 261
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@ -10,7 +10,6 @@ Linked tessellation evaluation stage:
|
||||
// Id's are bound by 119
|
||||
|
||||
Capability Tessellation
|
||||
Capability TessellationPointSize
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint TessellationEvaluation 4 "main" 12 21 62 112
|
||||
|
||||
@ -7,7 +7,7 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 433
|
||||
// Id's are bound by 438
|
||||
|
||||
Capability Shader
|
||||
Capability SampledRect
|
||||
@ -15,7 +15,7 @@ Linked fragment stage:
|
||||
Capability SampledCubeArray
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 33 48 89 360 388 400 418
|
||||
EntryPoint Fragment 4 "main" 33 48 89 365 393 405 423
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 450
|
||||
SourceExtension "GL_ARB_sparse_texture2"
|
||||
@ -39,17 +39,17 @@ Linked fragment stage:
|
||||
Name 111 "ResType"
|
||||
Name 140 "us2DRect"
|
||||
Name 154 "s2DArrayShadow"
|
||||
Name 186 "s2DMS"
|
||||
Name 223 "is2DArray"
|
||||
Name 256 "sCubeShadow"
|
||||
Name 289 "s2DRectShadow"
|
||||
Name 360 "offsets"
|
||||
Name 385 "i2D"
|
||||
Name 388 "ic2"
|
||||
Name 397 "ii3D"
|
||||
Name 400 "ic3"
|
||||
Name 409 "i2DMS"
|
||||
Name 418 "outColor"
|
||||
Name 188 "s2DMS"
|
||||
Name 228 "is2DArray"
|
||||
Name 261 "sCubeShadow"
|
||||
Name 294 "s2DRectShadow"
|
||||
Name 365 "offsets"
|
||||
Name 390 "i2D"
|
||||
Name 393 "ic2"
|
||||
Name 402 "ii3D"
|
||||
Name 405 "ic3"
|
||||
Name 414 "i2DMS"
|
||||
Name 423 "outColor"
|
||||
Decorate 29(s2D) DescriptorSet 0
|
||||
Decorate 44(s3D) DescriptorSet 0
|
||||
Decorate 59(isCube) DescriptorSet 0
|
||||
@ -58,16 +58,16 @@ Linked fragment stage:
|
||||
Decorate 108(usCubeArray) DescriptorSet 0
|
||||
Decorate 140(us2DRect) DescriptorSet 0
|
||||
Decorate 154(s2DArrayShadow) DescriptorSet 0
|
||||
Decorate 186(s2DMS) DescriptorSet 0
|
||||
Decorate 223(is2DArray) DescriptorSet 0
|
||||
Decorate 256(sCubeShadow) DescriptorSet 0
|
||||
Decorate 289(s2DRectShadow) DescriptorSet 0
|
||||
Decorate 360(offsets) Flat
|
||||
Decorate 385(i2D) DescriptorSet 0
|
||||
Decorate 388(ic2) Flat
|
||||
Decorate 397(ii3D) DescriptorSet 0
|
||||
Decorate 400(ic3) Flat
|
||||
Decorate 409(i2DMS) DescriptorSet 0
|
||||
Decorate 188(s2DMS) DescriptorSet 0
|
||||
Decorate 228(is2DArray) DescriptorSet 0
|
||||
Decorate 261(sCubeShadow) DescriptorSet 0
|
||||
Decorate 294(s2DRectShadow) DescriptorSet 0
|
||||
Decorate 365(offsets) Flat
|
||||
Decorate 390(i2D) DescriptorSet 0
|
||||
Decorate 393(ic2) Flat
|
||||
Decorate 402(ii3D) DescriptorSet 0
|
||||
Decorate 405(ic3) Flat
|
||||
Decorate 414(i2DMS) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
@ -143,58 +143,58 @@ Linked fragment stage:
|
||||
157: 6(int) Constant 5
|
||||
158: 143(ivec2) ConstantComposite 157 157
|
||||
159: 20(int) Constant 2
|
||||
183: TypeImage 10(float) 2D multi-sampled sampled format:Unknown
|
||||
184: TypeSampledImage 183
|
||||
185: TypePointer UniformConstant 184
|
||||
186(s2DMS): 185(ptr) Variable UniformConstant
|
||||
190: 6(int) Constant 4
|
||||
199: 129(ivec3) ConstantComposite 190 190 190
|
||||
220: TypeImage 6(int) 2D array sampled format:Unknown
|
||||
221: TypeSampledImage 220
|
||||
222: TypePointer UniformConstant 221
|
||||
223(is2DArray): 222(ptr) Variable UniformConstant
|
||||
226: 6(int) Constant 6
|
||||
227: 143(ivec2) ConstantComposite 226 226
|
||||
235: 6(int) Constant 7
|
||||
236: 143(ivec2) ConstantComposite 235 235
|
||||
253: TypeImage 10(float) Cube depth sampled format:Unknown
|
||||
254: TypeSampledImage 253
|
||||
255: TypePointer UniformConstant 254
|
||||
256(sCubeShadow): 255(ptr) Variable UniformConstant
|
||||
286: TypeImage 10(float) Rect depth sampled format:Unknown
|
||||
287: TypeSampledImage 286
|
||||
288: TypePointer UniformConstant 287
|
||||
289(s2DRectShadow): 288(ptr) Variable UniformConstant
|
||||
294: 20(int) Constant 3
|
||||
306: 143(ivec2) ConstantComposite 130 130
|
||||
335: 143(ivec2) ConstantComposite 190 190
|
||||
357: 20(int) Constant 4
|
||||
358: TypeArray 143(ivec2) 357
|
||||
359: TypePointer Input 358
|
||||
360(offsets): 359(ptr) Variable Input
|
||||
383: TypeImage 10(float) 2D nonsampled format:Rgba32f
|
||||
384: TypePointer UniformConstant 383
|
||||
385(i2D): 384(ptr) Variable UniformConstant
|
||||
387: TypePointer Input 143(ivec2)
|
||||
388(ic2): 387(ptr) Variable Input
|
||||
395: TypeImage 6(int) 3D nonsampled format:Rgba32i
|
||||
396: TypePointer UniformConstant 395
|
||||
397(ii3D): 396(ptr) Variable UniformConstant
|
||||
399: TypePointer Input 129(ivec3)
|
||||
400(ic3): 399(ptr) Variable Input
|
||||
407: TypeImage 10(float) 2D multi-sampled nonsampled format:Rgba32f
|
||||
408: TypePointer UniformConstant 407
|
||||
409(i2DMS): 408(ptr) Variable UniformConstant
|
||||
417: TypePointer Output 11(fvec4)
|
||||
418(outColor): 417(ptr) Variable Output
|
||||
421: TypeBool
|
||||
185: TypeImage 10(float) 2D multi-sampled sampled format:Unknown
|
||||
186: TypeSampledImage 185
|
||||
187: TypePointer UniformConstant 186
|
||||
188(s2DMS): 187(ptr) Variable UniformConstant
|
||||
192: 6(int) Constant 4
|
||||
202: 129(ivec3) ConstantComposite 192 192 192
|
||||
225: TypeImage 6(int) 2D array sampled format:Unknown
|
||||
226: TypeSampledImage 225
|
||||
227: TypePointer UniformConstant 226
|
||||
228(is2DArray): 227(ptr) Variable UniformConstant
|
||||
231: 6(int) Constant 6
|
||||
232: 143(ivec2) ConstantComposite 231 231
|
||||
240: 6(int) Constant 7
|
||||
241: 143(ivec2) ConstantComposite 240 240
|
||||
258: TypeImage 10(float) Cube depth sampled format:Unknown
|
||||
259: TypeSampledImage 258
|
||||
260: TypePointer UniformConstant 259
|
||||
261(sCubeShadow): 260(ptr) Variable UniformConstant
|
||||
291: TypeImage 10(float) Rect depth sampled format:Unknown
|
||||
292: TypeSampledImage 291
|
||||
293: TypePointer UniformConstant 292
|
||||
294(s2DRectShadow): 293(ptr) Variable UniformConstant
|
||||
299: 20(int) Constant 3
|
||||
311: 143(ivec2) ConstantComposite 130 130
|
||||
340: 143(ivec2) ConstantComposite 192 192
|
||||
362: 20(int) Constant 4
|
||||
363: TypeArray 143(ivec2) 362
|
||||
364: TypePointer Input 363
|
||||
365(offsets): 364(ptr) Variable Input
|
||||
388: TypeImage 10(float) 2D nonsampled format:Rgba32f
|
||||
389: TypePointer UniformConstant 388
|
||||
390(i2D): 389(ptr) Variable UniformConstant
|
||||
392: TypePointer Input 143(ivec2)
|
||||
393(ic2): 392(ptr) Variable Input
|
||||
400: TypeImage 6(int) 3D nonsampled format:Rgba32i
|
||||
401: TypePointer UniformConstant 400
|
||||
402(ii3D): 401(ptr) Variable UniformConstant
|
||||
404: TypePointer Input 129(ivec3)
|
||||
405(ic3): 404(ptr) Variable Input
|
||||
412: TypeImage 10(float) 2D multi-sampled nonsampled format:Rgba32f
|
||||
413: TypePointer UniformConstant 412
|
||||
414(i2DMS): 413(ptr) Variable UniformConstant
|
||||
422: TypePointer Output 11(fvec4)
|
||||
423(outColor): 422(ptr) Variable Output
|
||||
426: TypeBool
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(resident): 7(ptr) Variable Function
|
||||
13(texel): 12(ptr) Variable Function
|
||||
18(itexel): 17(ptr) Variable Function
|
||||
23(utexel): 22(ptr) Variable Function
|
||||
419: 12(ptr) Variable Function
|
||||
424: 12(ptr) Variable Function
|
||||
Store 8(resident) 9
|
||||
Store 13(texel) 15
|
||||
Store 18(itexel) 19
|
||||
@ -308,281 +308,286 @@ Linked fragment stage:
|
||||
167: 27 Load 29(s2D)
|
||||
168: 31(fvec2) Load 33(c2)
|
||||
169: 143(ivec2) ConvertFToS 168
|
||||
170: 35(ResType) ImageSparseFetch 167 169 Lod 130
|
||||
171: 11(fvec4) CompositeExtract 170 1
|
||||
Store 13(texel) 171
|
||||
172: 6(int) CompositeExtract 170 0
|
||||
173: 6(int) Load 8(resident)
|
||||
174: 6(int) BitwiseOr 173 172
|
||||
Store 8(resident) 174
|
||||
175: 138 Load 140(us2DRect)
|
||||
176: 31(fvec2) Load 33(c2)
|
||||
177: 143(ivec2) ConvertFToS 176
|
||||
178:111(ResType) ImageSparseFetch 175 177
|
||||
179: 21(ivec4) CompositeExtract 178 1
|
||||
Store 23(utexel) 179
|
||||
180: 6(int) CompositeExtract 178 0
|
||||
181: 6(int) Load 8(resident)
|
||||
182: 6(int) BitwiseOr 181 180
|
||||
Store 8(resident) 182
|
||||
187: 184 Load 186(s2DMS)
|
||||
188: 31(fvec2) Load 33(c2)
|
||||
189: 143(ivec2) ConvertFToS 188
|
||||
191: 35(ResType) ImageSparseFetch 187 189 Sample 190
|
||||
192: 11(fvec4) CompositeExtract 191 1
|
||||
Store 13(texel) 192
|
||||
193: 6(int) CompositeExtract 191 0
|
||||
194: 6(int) Load 8(resident)
|
||||
195: 6(int) BitwiseOr 194 193
|
||||
Store 8(resident) 195
|
||||
196: 42 Load 44(s3D)
|
||||
197: 46(fvec3) Load 48(c3)
|
||||
198: 129(ivec3) ConvertFToS 197
|
||||
200: 35(ResType) ImageSparseFetch 196 198 Lod ConstOffset 130 199
|
||||
201: 11(fvec4) CompositeExtract 200 1
|
||||
Store 13(texel) 201
|
||||
202: 6(int) CompositeExtract 200 0
|
||||
203: 6(int) Load 8(resident)
|
||||
204: 6(int) BitwiseOr 203 202
|
||||
Store 8(resident) 204
|
||||
205: 138 Load 140(us2DRect)
|
||||
206: 31(fvec2) Load 33(c2)
|
||||
207: 143(ivec2) ConvertFToS 206
|
||||
208:111(ResType) ImageSparseFetch 205 207 ConstOffset 145
|
||||
209: 21(ivec4) CompositeExtract 208 1
|
||||
Store 23(utexel) 209
|
||||
210: 6(int) CompositeExtract 208 0
|
||||
211: 6(int) Load 8(resident)
|
||||
212: 6(int) BitwiseOr 211 210
|
||||
Store 8(resident) 212
|
||||
213: 27 Load 29(s2D)
|
||||
214: 31(fvec2) Load 33(c2)
|
||||
215: 35(ResType) ImageSparseSampleExplicitLod 213 214 Lod ConstOffset 50 158
|
||||
216: 11(fvec4) CompositeExtract 215 1
|
||||
Store 13(texel) 216
|
||||
217: 6(int) CompositeExtract 215 0
|
||||
218: 6(int) Load 8(resident)
|
||||
219: 6(int) BitwiseOr 218 217
|
||||
Store 8(resident) 219
|
||||
224: 221 Load 223(is2DArray)
|
||||
225: 46(fvec3) Load 48(c3)
|
||||
228: 62(ResType) ImageSparseSampleExplicitLod 224 225 Lod ConstOffset 50 227
|
||||
229: 16(ivec4) CompositeExtract 228 1
|
||||
Store 18(itexel) 229
|
||||
230: 6(int) CompositeExtract 228 0
|
||||
231: 6(int) Load 8(resident)
|
||||
232: 6(int) BitwiseOr 231 230
|
||||
Store 8(resident) 232
|
||||
233: 69 Load 71(s2DShadow)
|
||||
234: 46(fvec3) Load 48(c3)
|
||||
237: 74(ptr) AccessChain 13(texel) 159
|
||||
238: 10(float) CompositeExtract 234 2
|
||||
239: 77(ResType) ImageSparseSampleDrefExplicitLod 233 234 238 Lod ConstOffset 50 236
|
||||
240: 10(float) CompositeExtract 239 1
|
||||
Store 237 240
|
||||
241: 6(int) CompositeExtract 239 0
|
||||
242: 6(int) Load 8(resident)
|
||||
243: 6(int) BitwiseOr 242 241
|
||||
Store 8(resident) 243
|
||||
244: 42 Load 44(s3D)
|
||||
245: 46(fvec3) Load 48(c3)
|
||||
246: 46(fvec3) Load 48(c3)
|
||||
247: 46(fvec3) Load 48(c3)
|
||||
248: 35(ResType) ImageSparseSampleExplicitLod 244 245 Grad 246 247
|
||||
249: 11(fvec4) CompositeExtract 248 1
|
||||
Store 13(texel) 249
|
||||
250: 6(int) CompositeExtract 248 0
|
||||
251: 6(int) Load 8(resident)
|
||||
252: 6(int) BitwiseOr 251 250
|
||||
Store 8(resident) 252
|
||||
257: 254 Load 256(sCubeShadow)
|
||||
258: 11(fvec4) Load 89(c4)
|
||||
259: 46(fvec3) Load 48(c3)
|
||||
260: 46(fvec3) Load 48(c3)
|
||||
261: 74(ptr) AccessChain 13(texel) 119
|
||||
262: 10(float) CompositeExtract 258 3
|
||||
263: 77(ResType) ImageSparseSampleDrefExplicitLod 257 258 262 Grad 259 260
|
||||
264: 10(float) CompositeExtract 263 1
|
||||
Store 261 264
|
||||
265: 6(int) CompositeExtract 263 0
|
||||
266: 6(int) Load 8(resident)
|
||||
267: 6(int) BitwiseOr 266 265
|
||||
Store 8(resident) 267
|
||||
268: 106 Load 108(usCubeArray)
|
||||
269: 11(fvec4) Load 89(c4)
|
||||
270: 46(fvec3) Load 48(c3)
|
||||
271: 46(fvec3) Load 48(c3)
|
||||
272:111(ResType) ImageSparseSampleExplicitLod 268 269 Grad 270 271
|
||||
273: 21(ivec4) CompositeExtract 272 1
|
||||
Store 23(utexel) 273
|
||||
274: 6(int) CompositeExtract 272 0
|
||||
275: 6(int) Load 8(resident)
|
||||
276: 6(int) BitwiseOr 275 274
|
||||
Store 8(resident) 276
|
||||
277: 27 Load 29(s2D)
|
||||
278: 31(fvec2) Load 33(c2)
|
||||
279: 31(fvec2) Load 33(c2)
|
||||
280: 31(fvec2) Load 33(c2)
|
||||
281: 35(ResType) ImageSparseSampleExplicitLod 277 278 Grad ConstOffset 279 280 158
|
||||
282: 11(fvec4) CompositeExtract 281 1
|
||||
Store 13(texel) 282
|
||||
283: 6(int) CompositeExtract 281 0
|
||||
284: 6(int) Load 8(resident)
|
||||
285: 6(int) BitwiseOr 284 283
|
||||
Store 8(resident) 285
|
||||
290: 287 Load 289(s2DRectShadow)
|
||||
291: 46(fvec3) Load 48(c3)
|
||||
292: 31(fvec2) Load 33(c2)
|
||||
293: 31(fvec2) Load 33(c2)
|
||||
295: 74(ptr) AccessChain 13(texel) 294
|
||||
296: 10(float) CompositeExtract 291 2
|
||||
297: 77(ResType) ImageSparseSampleDrefExplicitLod 290 291 296 Grad ConstOffset 292 293 227
|
||||
298: 10(float) CompositeExtract 297 1
|
||||
Store 295 298
|
||||
299: 6(int) CompositeExtract 297 0
|
||||
300: 6(int) Load 8(resident)
|
||||
301: 6(int) BitwiseOr 300 299
|
||||
Store 8(resident) 301
|
||||
302: 221 Load 223(is2DArray)
|
||||
303: 46(fvec3) Load 48(c3)
|
||||
304: 31(fvec2) Load 33(c2)
|
||||
305: 31(fvec2) Load 33(c2)
|
||||
307: 62(ResType) ImageSparseSampleExplicitLod 302 303 Grad ConstOffset 304 305 306
|
||||
308: 16(ivec4) CompositeExtract 307 1
|
||||
Store 18(itexel) 308
|
||||
309: 6(int) CompositeExtract 307 0
|
||||
310: 6(int) Load 8(resident)
|
||||
311: 6(int) BitwiseOr 310 309
|
||||
Store 8(resident) 311
|
||||
312: 27 Load 29(s2D)
|
||||
313: 31(fvec2) Load 33(c2)
|
||||
314: 35(ResType) ImageSparseGather 312 313 9
|
||||
315: 11(fvec4) CompositeExtract 314 1
|
||||
Store 13(texel) 315
|
||||
316: 6(int) CompositeExtract 314 0
|
||||
317: 6(int) Load 8(resident)
|
||||
318: 6(int) BitwiseOr 317 316
|
||||
Store 8(resident) 318
|
||||
319: 221 Load 223(is2DArray)
|
||||
320: 46(fvec3) Load 48(c3)
|
||||
321: 62(ResType) ImageSparseGather 319 320 130
|
||||
322: 16(ivec4) CompositeExtract 321 1
|
||||
Store 18(itexel) 322
|
||||
323: 6(int) CompositeExtract 321 0
|
||||
324: 6(int) Load 8(resident)
|
||||
325: 6(int) BitwiseOr 324 323
|
||||
Store 8(resident) 325
|
||||
326: 152 Load 154(s2DArrayShadow)
|
||||
327: 46(fvec3) Load 48(c3)
|
||||
328: 35(ResType) ImageSparseDrefGather 326 327 50
|
||||
329: 11(fvec4) CompositeExtract 328 1
|
||||
Store 13(texel) 329
|
||||
330: 6(int) CompositeExtract 328 0
|
||||
331: 6(int) Load 8(resident)
|
||||
332: 6(int) BitwiseOr 331 330
|
||||
Store 8(resident) 332
|
||||
333: 27 Load 29(s2D)
|
||||
334: 31(fvec2) Load 33(c2)
|
||||
336: 35(ResType) ImageSparseGather 333 334 9 ConstOffset 335
|
||||
337: 11(fvec4) CompositeExtract 336 1
|
||||
Store 13(texel) 337
|
||||
338: 6(int) CompositeExtract 336 0
|
||||
339: 6(int) Load 8(resident)
|
||||
340: 6(int) BitwiseOr 339 338
|
||||
Store 8(resident) 340
|
||||
341: 221 Load 223(is2DArray)
|
||||
342: 46(fvec3) Load 48(c3)
|
||||
343: 62(ResType) ImageSparseGather 341 342 130 ConstOffset 158
|
||||
344: 16(ivec4) CompositeExtract 343 1
|
||||
Store 18(itexel) 344
|
||||
345: 6(int) CompositeExtract 343 0
|
||||
346: 6(int) Load 8(resident)
|
||||
347: 6(int) BitwiseOr 346 345
|
||||
Store 8(resident) 347
|
||||
348: 287 Load 289(s2DRectShadow)
|
||||
349: 31(fvec2) Load 33(c2)
|
||||
350: 35(ResType) ImageSparseDrefGather 348 349 50 ConstOffset 236
|
||||
351: 11(fvec4) CompositeExtract 350 1
|
||||
Store 13(texel) 351
|
||||
352: 6(int) CompositeExtract 350 0
|
||||
353: 6(int) Load 8(resident)
|
||||
354: 6(int) BitwiseOr 353 352
|
||||
Store 8(resident) 354
|
||||
355: 27 Load 29(s2D)
|
||||
356: 31(fvec2) Load 33(c2)
|
||||
361: 358 Load 360(offsets)
|
||||
362: 35(ResType) ImageSparseGather 355 356 9 ConstOffsets 361
|
||||
363: 11(fvec4) CompositeExtract 362 1
|
||||
Store 13(texel) 363
|
||||
364: 6(int) CompositeExtract 362 0
|
||||
365: 6(int) Load 8(resident)
|
||||
366: 6(int) BitwiseOr 365 364
|
||||
Store 8(resident) 366
|
||||
367: 221 Load 223(is2DArray)
|
||||
368: 46(fvec3) Load 48(c3)
|
||||
369: 358 Load 360(offsets)
|
||||
370: 62(ResType) ImageSparseGather 367 368 130 ConstOffsets 369
|
||||
371: 16(ivec4) CompositeExtract 370 1
|
||||
Store 18(itexel) 371
|
||||
372: 6(int) CompositeExtract 370 0
|
||||
373: 6(int) Load 8(resident)
|
||||
374: 6(int) BitwiseOr 373 372
|
||||
Store 8(resident) 374
|
||||
375: 287 Load 289(s2DRectShadow)
|
||||
376: 31(fvec2) Load 33(c2)
|
||||
377: 358 Load 360(offsets)
|
||||
378: 35(ResType) ImageSparseDrefGather 375 376 50 ConstOffsets 377
|
||||
379: 11(fvec4) CompositeExtract 378 1
|
||||
Store 13(texel) 379
|
||||
380: 6(int) CompositeExtract 378 0
|
||||
381: 6(int) Load 8(resident)
|
||||
382: 6(int) BitwiseOr 381 380
|
||||
Store 8(resident) 382
|
||||
386: 383 Load 385(i2D)
|
||||
389: 143(ivec2) Load 388(ic2)
|
||||
390: 35(ResType) ImageSparseRead 386 389
|
||||
391: 11(fvec4) CompositeExtract 390 1
|
||||
Store 13(texel) 391
|
||||
392: 6(int) CompositeExtract 390 0
|
||||
393: 6(int) Load 8(resident)
|
||||
394: 6(int) BitwiseOr 393 392
|
||||
Store 8(resident) 394
|
||||
398: 395 Load 397(ii3D)
|
||||
401: 129(ivec3) Load 400(ic3)
|
||||
402: 62(ResType) ImageSparseRead 398 401
|
||||
403: 16(ivec4) CompositeExtract 402 1
|
||||
Store 18(itexel) 403
|
||||
404: 6(int) CompositeExtract 402 0
|
||||
405: 6(int) Load 8(resident)
|
||||
406: 6(int) BitwiseOr 405 404
|
||||
Store 8(resident) 406
|
||||
410: 407 Load 409(i2DMS)
|
||||
411: 143(ivec2) Load 388(ic2)
|
||||
412: 35(ResType) ImageSparseRead 410 411 Sample 144
|
||||
413: 11(fvec4) CompositeExtract 412 1
|
||||
Store 13(texel) 413
|
||||
414: 6(int) CompositeExtract 412 0
|
||||
415: 6(int) Load 8(resident)
|
||||
416: 6(int) BitwiseOr 415 414
|
||||
Store 8(resident) 416
|
||||
170: 26 Image 167
|
||||
171: 35(ResType) ImageSparseFetch 170 169 Lod 130
|
||||
172: 11(fvec4) CompositeExtract 171 1
|
||||
Store 13(texel) 172
|
||||
173: 6(int) CompositeExtract 171 0
|
||||
174: 6(int) Load 8(resident)
|
||||
175: 6(int) BitwiseOr 174 173
|
||||
Store 8(resident) 175
|
||||
176: 138 Load 140(us2DRect)
|
||||
177: 31(fvec2) Load 33(c2)
|
||||
178: 143(ivec2) ConvertFToS 177
|
||||
179: 137 Image 176
|
||||
180:111(ResType) ImageSparseFetch 179 178
|
||||
181: 21(ivec4) CompositeExtract 180 1
|
||||
Store 23(utexel) 181
|
||||
182: 6(int) CompositeExtract 180 0
|
||||
183: 6(int) Load 8(resident)
|
||||
184: 6(int) BitwiseOr 183 182
|
||||
Store 8(resident) 184
|
||||
189: 186 Load 188(s2DMS)
|
||||
190: 31(fvec2) Load 33(c2)
|
||||
191: 143(ivec2) ConvertFToS 190
|
||||
193: 185 Image 189
|
||||
194: 35(ResType) ImageSparseFetch 193 191 Sample 192
|
||||
195: 11(fvec4) CompositeExtract 194 1
|
||||
Store 13(texel) 195
|
||||
196: 6(int) CompositeExtract 194 0
|
||||
197: 6(int) Load 8(resident)
|
||||
198: 6(int) BitwiseOr 197 196
|
||||
Store 8(resident) 198
|
||||
199: 42 Load 44(s3D)
|
||||
200: 46(fvec3) Load 48(c3)
|
||||
201: 129(ivec3) ConvertFToS 200
|
||||
203: 41 Image 199
|
||||
204: 35(ResType) ImageSparseFetch 203 201 Lod ConstOffset 130 202
|
||||
205: 11(fvec4) CompositeExtract 204 1
|
||||
Store 13(texel) 205
|
||||
206: 6(int) CompositeExtract 204 0
|
||||
207: 6(int) Load 8(resident)
|
||||
208: 6(int) BitwiseOr 207 206
|
||||
Store 8(resident) 208
|
||||
209: 138 Load 140(us2DRect)
|
||||
210: 31(fvec2) Load 33(c2)
|
||||
211: 143(ivec2) ConvertFToS 210
|
||||
212: 137 Image 209
|
||||
213:111(ResType) ImageSparseFetch 212 211 ConstOffset 145
|
||||
214: 21(ivec4) CompositeExtract 213 1
|
||||
Store 23(utexel) 214
|
||||
215: 6(int) CompositeExtract 213 0
|
||||
216: 6(int) Load 8(resident)
|
||||
217: 6(int) BitwiseOr 216 215
|
||||
Store 8(resident) 217
|
||||
218: 27 Load 29(s2D)
|
||||
219: 31(fvec2) Load 33(c2)
|
||||
220: 35(ResType) ImageSparseSampleExplicitLod 218 219 Lod ConstOffset 50 158
|
||||
221: 11(fvec4) CompositeExtract 220 1
|
||||
Store 13(texel) 221
|
||||
222: 6(int) CompositeExtract 220 0
|
||||
223: 6(int) Load 8(resident)
|
||||
224: 6(int) BitwiseOr 223 222
|
||||
Store 8(resident) 224
|
||||
229: 226 Load 228(is2DArray)
|
||||
230: 46(fvec3) Load 48(c3)
|
||||
233: 62(ResType) ImageSparseSampleExplicitLod 229 230 Lod ConstOffset 50 232
|
||||
234: 16(ivec4) CompositeExtract 233 1
|
||||
Store 18(itexel) 234
|
||||
235: 6(int) CompositeExtract 233 0
|
||||
236: 6(int) Load 8(resident)
|
||||
237: 6(int) BitwiseOr 236 235
|
||||
Store 8(resident) 237
|
||||
238: 69 Load 71(s2DShadow)
|
||||
239: 46(fvec3) Load 48(c3)
|
||||
242: 74(ptr) AccessChain 13(texel) 159
|
||||
243: 10(float) CompositeExtract 239 2
|
||||
244: 77(ResType) ImageSparseSampleDrefExplicitLod 238 239 243 Lod ConstOffset 50 241
|
||||
245: 10(float) CompositeExtract 244 1
|
||||
Store 242 245
|
||||
246: 6(int) CompositeExtract 244 0
|
||||
247: 6(int) Load 8(resident)
|
||||
248: 6(int) BitwiseOr 247 246
|
||||
Store 8(resident) 248
|
||||
249: 42 Load 44(s3D)
|
||||
250: 46(fvec3) Load 48(c3)
|
||||
251: 46(fvec3) Load 48(c3)
|
||||
252: 46(fvec3) Load 48(c3)
|
||||
253: 35(ResType) ImageSparseSampleExplicitLod 249 250 Grad 251 252
|
||||
254: 11(fvec4) CompositeExtract 253 1
|
||||
Store 13(texel) 254
|
||||
255: 6(int) CompositeExtract 253 0
|
||||
256: 6(int) Load 8(resident)
|
||||
257: 6(int) BitwiseOr 256 255
|
||||
Store 8(resident) 257
|
||||
262: 259 Load 261(sCubeShadow)
|
||||
263: 11(fvec4) Load 89(c4)
|
||||
264: 46(fvec3) Load 48(c3)
|
||||
265: 46(fvec3) Load 48(c3)
|
||||
266: 74(ptr) AccessChain 13(texel) 119
|
||||
267: 10(float) CompositeExtract 263 3
|
||||
268: 77(ResType) ImageSparseSampleDrefExplicitLod 262 263 267 Grad 264 265
|
||||
269: 10(float) CompositeExtract 268 1
|
||||
Store 266 269
|
||||
270: 6(int) CompositeExtract 268 0
|
||||
271: 6(int) Load 8(resident)
|
||||
272: 6(int) BitwiseOr 271 270
|
||||
Store 8(resident) 272
|
||||
273: 106 Load 108(usCubeArray)
|
||||
274: 11(fvec4) Load 89(c4)
|
||||
275: 46(fvec3) Load 48(c3)
|
||||
276: 46(fvec3) Load 48(c3)
|
||||
277:111(ResType) ImageSparseSampleExplicitLod 273 274 Grad 275 276
|
||||
278: 21(ivec4) CompositeExtract 277 1
|
||||
Store 23(utexel) 278
|
||||
279: 6(int) CompositeExtract 277 0
|
||||
280: 6(int) Load 8(resident)
|
||||
281: 6(int) BitwiseOr 280 279
|
||||
Store 8(resident) 281
|
||||
282: 27 Load 29(s2D)
|
||||
283: 31(fvec2) Load 33(c2)
|
||||
284: 31(fvec2) Load 33(c2)
|
||||
285: 31(fvec2) Load 33(c2)
|
||||
286: 35(ResType) ImageSparseSampleExplicitLod 282 283 Grad ConstOffset 284 285 158
|
||||
287: 11(fvec4) CompositeExtract 286 1
|
||||
Store 13(texel) 287
|
||||
288: 6(int) CompositeExtract 286 0
|
||||
289: 6(int) Load 8(resident)
|
||||
290: 6(int) BitwiseOr 289 288
|
||||
Store 8(resident) 290
|
||||
295: 292 Load 294(s2DRectShadow)
|
||||
296: 46(fvec3) Load 48(c3)
|
||||
297: 31(fvec2) Load 33(c2)
|
||||
298: 31(fvec2) Load 33(c2)
|
||||
300: 74(ptr) AccessChain 13(texel) 299
|
||||
301: 10(float) CompositeExtract 296 2
|
||||
302: 77(ResType) ImageSparseSampleDrefExplicitLod 295 296 301 Grad ConstOffset 297 298 232
|
||||
303: 10(float) CompositeExtract 302 1
|
||||
Store 300 303
|
||||
304: 6(int) CompositeExtract 302 0
|
||||
305: 6(int) Load 8(resident)
|
||||
306: 6(int) BitwiseOr 305 304
|
||||
Store 8(resident) 306
|
||||
307: 226 Load 228(is2DArray)
|
||||
308: 46(fvec3) Load 48(c3)
|
||||
309: 31(fvec2) Load 33(c2)
|
||||
310: 31(fvec2) Load 33(c2)
|
||||
312: 62(ResType) ImageSparseSampleExplicitLod 307 308 Grad ConstOffset 309 310 311
|
||||
313: 16(ivec4) CompositeExtract 312 1
|
||||
Store 18(itexel) 313
|
||||
314: 6(int) CompositeExtract 312 0
|
||||
315: 6(int) Load 8(resident)
|
||||
316: 6(int) BitwiseOr 315 314
|
||||
Store 8(resident) 316
|
||||
317: 27 Load 29(s2D)
|
||||
318: 31(fvec2) Load 33(c2)
|
||||
319: 35(ResType) ImageSparseGather 317 318 9
|
||||
320: 11(fvec4) CompositeExtract 319 1
|
||||
Store 13(texel) 320
|
||||
321: 6(int) CompositeExtract 319 0
|
||||
322: 6(int) Load 8(resident)
|
||||
323: 6(int) BitwiseOr 322 321
|
||||
Store 8(resident) 323
|
||||
324: 226 Load 228(is2DArray)
|
||||
325: 46(fvec3) Load 48(c3)
|
||||
326: 62(ResType) ImageSparseGather 324 325 130
|
||||
327: 16(ivec4) CompositeExtract 326 1
|
||||
Store 18(itexel) 327
|
||||
328: 6(int) CompositeExtract 326 0
|
||||
329: 6(int) Load 8(resident)
|
||||
330: 6(int) BitwiseOr 329 328
|
||||
Store 8(resident) 330
|
||||
331: 152 Load 154(s2DArrayShadow)
|
||||
332: 46(fvec3) Load 48(c3)
|
||||
333: 35(ResType) ImageSparseDrefGather 331 332 50
|
||||
334: 11(fvec4) CompositeExtract 333 1
|
||||
Store 13(texel) 334
|
||||
335: 6(int) CompositeExtract 333 0
|
||||
336: 6(int) Load 8(resident)
|
||||
337: 6(int) BitwiseOr 336 335
|
||||
Store 8(resident) 337
|
||||
338: 27 Load 29(s2D)
|
||||
339: 31(fvec2) Load 33(c2)
|
||||
341: 35(ResType) ImageSparseGather 338 339 9 ConstOffset 340
|
||||
342: 11(fvec4) CompositeExtract 341 1
|
||||
Store 13(texel) 342
|
||||
343: 6(int) CompositeExtract 341 0
|
||||
344: 6(int) Load 8(resident)
|
||||
345: 6(int) BitwiseOr 344 343
|
||||
Store 8(resident) 345
|
||||
346: 226 Load 228(is2DArray)
|
||||
347: 46(fvec3) Load 48(c3)
|
||||
348: 62(ResType) ImageSparseGather 346 347 130 ConstOffset 158
|
||||
349: 16(ivec4) CompositeExtract 348 1
|
||||
Store 18(itexel) 349
|
||||
350: 6(int) CompositeExtract 348 0
|
||||
351: 6(int) Load 8(resident)
|
||||
352: 6(int) BitwiseOr 351 350
|
||||
Store 8(resident) 352
|
||||
353: 292 Load 294(s2DRectShadow)
|
||||
354: 31(fvec2) Load 33(c2)
|
||||
355: 35(ResType) ImageSparseDrefGather 353 354 50 ConstOffset 241
|
||||
356: 11(fvec4) CompositeExtract 355 1
|
||||
Store 13(texel) 356
|
||||
357: 6(int) CompositeExtract 355 0
|
||||
358: 6(int) Load 8(resident)
|
||||
359: 6(int) BitwiseOr 358 357
|
||||
Store 8(resident) 359
|
||||
360: 27 Load 29(s2D)
|
||||
361: 31(fvec2) Load 33(c2)
|
||||
366: 363 Load 365(offsets)
|
||||
367: 35(ResType) ImageSparseGather 360 361 9 ConstOffsets 366
|
||||
368: 11(fvec4) CompositeExtract 367 1
|
||||
Store 13(texel) 368
|
||||
369: 6(int) CompositeExtract 367 0
|
||||
370: 6(int) Load 8(resident)
|
||||
371: 6(int) BitwiseOr 370 369
|
||||
Store 8(resident) 371
|
||||
372: 226 Load 228(is2DArray)
|
||||
373: 46(fvec3) Load 48(c3)
|
||||
374: 363 Load 365(offsets)
|
||||
375: 62(ResType) ImageSparseGather 372 373 130 ConstOffsets 374
|
||||
376: 16(ivec4) CompositeExtract 375 1
|
||||
Store 18(itexel) 376
|
||||
377: 6(int) CompositeExtract 375 0
|
||||
378: 6(int) Load 8(resident)
|
||||
379: 6(int) BitwiseOr 378 377
|
||||
Store 8(resident) 379
|
||||
380: 292 Load 294(s2DRectShadow)
|
||||
381: 31(fvec2) Load 33(c2)
|
||||
382: 363 Load 365(offsets)
|
||||
383: 35(ResType) ImageSparseDrefGather 380 381 50 ConstOffsets 382
|
||||
384: 11(fvec4) CompositeExtract 383 1
|
||||
Store 13(texel) 384
|
||||
385: 6(int) CompositeExtract 383 0
|
||||
386: 6(int) Load 8(resident)
|
||||
387: 6(int) BitwiseOr 386 385
|
||||
Store 8(resident) 387
|
||||
391: 388 Load 390(i2D)
|
||||
394: 143(ivec2) Load 393(ic2)
|
||||
395: 35(ResType) ImageSparseRead 391 394
|
||||
396: 11(fvec4) CompositeExtract 395 1
|
||||
Store 13(texel) 396
|
||||
397: 6(int) CompositeExtract 395 0
|
||||
398: 6(int) Load 8(resident)
|
||||
399: 6(int) BitwiseOr 398 397
|
||||
Store 8(resident) 399
|
||||
403: 400 Load 402(ii3D)
|
||||
406: 129(ivec3) Load 405(ic3)
|
||||
407: 62(ResType) ImageSparseRead 403 406
|
||||
408: 16(ivec4) CompositeExtract 407 1
|
||||
Store 18(itexel) 408
|
||||
409: 6(int) CompositeExtract 407 0
|
||||
410: 6(int) Load 8(resident)
|
||||
411: 6(int) BitwiseOr 410 409
|
||||
Store 8(resident) 411
|
||||
415: 412 Load 414(i2DMS)
|
||||
416: 143(ivec2) Load 393(ic2)
|
||||
417: 35(ResType) ImageSparseRead 415 416 Sample 144
|
||||
418: 11(fvec4) CompositeExtract 417 1
|
||||
Store 13(texel) 418
|
||||
419: 6(int) CompositeExtract 417 0
|
||||
420: 6(int) Load 8(resident)
|
||||
422: 421(bool) ImageSparseTexelsResident 420
|
||||
SelectionMerge 424 None
|
||||
BranchConditional 422 423 426
|
||||
423: Label
|
||||
425: 11(fvec4) Load 13(texel)
|
||||
Store 419 425
|
||||
Branch 424
|
||||
426: Label
|
||||
427: 16(ivec4) Load 18(itexel)
|
||||
428: 11(fvec4) ConvertSToF 427
|
||||
429: 21(ivec4) Load 23(utexel)
|
||||
430: 11(fvec4) ConvertUToF 429
|
||||
431: 11(fvec4) FAdd 428 430
|
||||
Store 419 431
|
||||
Branch 424
|
||||
424: Label
|
||||
432: 11(fvec4) Load 419
|
||||
Store 418(outColor) 432
|
||||
421: 6(int) BitwiseOr 420 419
|
||||
Store 8(resident) 421
|
||||
425: 6(int) Load 8(resident)
|
||||
427: 426(bool) ImageSparseTexelsResident 425
|
||||
SelectionMerge 429 None
|
||||
BranchConditional 427 428 431
|
||||
428: Label
|
||||
430: 11(fvec4) Load 13(texel)
|
||||
Store 424 430
|
||||
Branch 429
|
||||
431: Label
|
||||
432: 16(ivec4) Load 18(itexel)
|
||||
433: 11(fvec4) ConvertSToF 432
|
||||
434: 21(ivec4) Load 23(utexel)
|
||||
435: 11(fvec4) ConvertUToF 434
|
||||
436: 11(fvec4) FAdd 433 435
|
||||
Store 424 436
|
||||
Branch 429
|
||||
429: Label
|
||||
437: 11(fvec4) Load 424
|
||||
Store 423(outColor) 437
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@ -7,13 +7,13 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 68
|
||||
// Id's are bound by 67
|
||||
|
||||
Capability Shader
|
||||
Capability InputAttachment
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 15 27 54
|
||||
EntryPoint Fragment 4 "main" 15 27 53
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 400
|
||||
Name 4 "main"
|
||||
@ -24,27 +24,27 @@ Linked fragment stage:
|
||||
Name 30 "sub"
|
||||
Name 35 "subMS"
|
||||
Name 42 "isub"
|
||||
Name 46 "isubMS"
|
||||
Name 54 "ucolor"
|
||||
Name 57 "usub"
|
||||
Name 62 "usubMS"
|
||||
Name 45 "isubMS"
|
||||
Name 53 "ucolor"
|
||||
Name 56 "usub"
|
||||
Name 61 "usubMS"
|
||||
Decorate 30(sub) DescriptorSet 0
|
||||
Decorate 30(sub) InputAttachmentIndex 1
|
||||
Decorate 35(subMS) DescriptorSet 0
|
||||
Decorate 35(subMS) InputAttachmentIndex 2
|
||||
Decorate 42(isub) DescriptorSet 0
|
||||
Decorate 42(isub) InputAttachmentIndex 3
|
||||
Decorate 46(isubMS) DescriptorSet 0
|
||||
Decorate 46(isubMS) InputAttachmentIndex 4
|
||||
Decorate 57(usub) DescriptorSet 0
|
||||
Decorate 57(usub) InputAttachmentIndex 5
|
||||
Decorate 62(usubMS) DescriptorSet 0
|
||||
Decorate 62(usubMS) InputAttachmentIndex 6
|
||||
Decorate 45(isubMS) DescriptorSet 0
|
||||
Decorate 45(isubMS) InputAttachmentIndex 4
|
||||
Decorate 56(usub) DescriptorSet 0
|
||||
Decorate 56(usub) InputAttachmentIndex 5
|
||||
Decorate 61(usubMS) DescriptorSet 0
|
||||
Decorate 61(usubMS) InputAttachmentIndex 6
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypeImage 6(int) SubpassData multi-sampled nonsampled format:Unknown
|
||||
8: TypePointer Function 7
|
||||
8: TypePointer UniformConstant 7
|
||||
9: TypeFunction 2 8(ptr)
|
||||
13: TypeVector 6(int) 4
|
||||
14: TypePointer Output 13(ivec4)
|
||||
@ -66,18 +66,17 @@ Linked fragment stage:
|
||||
40: TypeImage 6(int) SubpassData nonsampled format:Unknown
|
||||
41: TypePointer UniformConstant 40
|
||||
42(isub): 41(ptr) Variable UniformConstant
|
||||
45: TypePointer UniformConstant 7
|
||||
46(isubMS): 45(ptr) Variable UniformConstant
|
||||
51: TypeInt 32 0
|
||||
52: TypeVector 51(int) 4
|
||||
53: TypePointer Output 52(ivec4)
|
||||
54(ucolor): 53(ptr) Variable Output
|
||||
55: TypeImage 51(int) SubpassData nonsampled format:Unknown
|
||||
56: TypePointer UniformConstant 55
|
||||
57(usub): 56(ptr) Variable UniformConstant
|
||||
60: TypeImage 51(int) SubpassData multi-sampled nonsampled format:Unknown
|
||||
61: TypePointer UniformConstant 60
|
||||
62(usubMS): 61(ptr) Variable UniformConstant
|
||||
45(isubMS): 8(ptr) Variable UniformConstant
|
||||
50: TypeInt 32 0
|
||||
51: TypeVector 50(int) 4
|
||||
52: TypePointer Output 51(ivec4)
|
||||
53(ucolor): 52(ptr) Variable Output
|
||||
54: TypeImage 50(int) SubpassData nonsampled format:Unknown
|
||||
55: TypePointer UniformConstant 54
|
||||
56(usub): 55(ptr) Variable UniformConstant
|
||||
59: TypeImage 50(int) SubpassData multi-sampled nonsampled format:Unknown
|
||||
60: TypePointer UniformConstant 59
|
||||
61(usubMS): 60(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
31: 28 Load 30(sub)
|
||||
@ -91,20 +90,20 @@ Linked fragment stage:
|
||||
43: 40 Load 42(isub)
|
||||
44: 13(ivec4) ImageRead 43 20
|
||||
Store 15(icolor) 44
|
||||
47: 7 Load 46(isubMS)
|
||||
48: 13(ivec4) ImageRead 47 20 Sample 17
|
||||
49: 13(ivec4) Load 15(icolor)
|
||||
50: 13(ivec4) IAdd 49 48
|
||||
Store 15(icolor) 50
|
||||
58: 55 Load 57(usub)
|
||||
59: 52(ivec4) ImageRead 58 20
|
||||
Store 54(ucolor) 59
|
||||
63: 60 Load 62(usubMS)
|
||||
64: 52(ivec4) ImageRead 63 20 Sample 17
|
||||
65: 52(ivec4) Load 54(ucolor)
|
||||
66: 52(ivec4) IAdd 65 64
|
||||
Store 54(ucolor) 66
|
||||
67: 2 FunctionCall 11(foo(iIPM1;) 46(isubMS)
|
||||
46: 7 Load 45(isubMS)
|
||||
47: 13(ivec4) ImageRead 46 20 Sample 17
|
||||
48: 13(ivec4) Load 15(icolor)
|
||||
49: 13(ivec4) IAdd 48 47
|
||||
Store 15(icolor) 49
|
||||
57: 54 Load 56(usub)
|
||||
58: 51(ivec4) ImageRead 57 20
|
||||
Store 53(ucolor) 58
|
||||
62: 59 Load 61(usubMS)
|
||||
63: 51(ivec4) ImageRead 62 20 Sample 17
|
||||
64: 51(ivec4) Load 53(ucolor)
|
||||
65: 51(ivec4) IAdd 64 63
|
||||
Store 53(ucolor) 65
|
||||
66: 2 FunctionCall 11(foo(iIPM1;) 45(isubMS)
|
||||
Return
|
||||
FunctionEnd
|
||||
11(foo(iIPM1;): 2 Function None 9
|
||||
|
||||
@ -9,13 +9,13 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 290
|
||||
// Id's are bound by 305
|
||||
|
||||
Capability Shader
|
||||
Capability Sampled1D
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 47 276 279 282 288 289
|
||||
EntryPoint Fragment 4 "main" 47 291 294 297 303 304
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
@ -29,26 +29,26 @@ Linked fragment stage:
|
||||
Name 26 "color"
|
||||
Name 32 "texSampler1D"
|
||||
Name 47 "coords2D"
|
||||
Name 72 "texSampler2D"
|
||||
Name 98 "texSampler3D"
|
||||
Name 124 "texSamplerCube"
|
||||
Name 139 "shadowSampler1D"
|
||||
Name 158 "shadowSampler2D"
|
||||
Name 207 "iCoords2D"
|
||||
Name 212 "iLod"
|
||||
Name 221 "gradX"
|
||||
Name 224 "gradY"
|
||||
Name 276 "gl_FragColor"
|
||||
Name 279 "u"
|
||||
Name 282 "blend"
|
||||
Name 288 "scale"
|
||||
Name 289 "t"
|
||||
Name 76 "texSampler2D"
|
||||
Name 104 "texSampler3D"
|
||||
Name 130 "texSamplerCube"
|
||||
Name 145 "shadowSampler1D"
|
||||
Name 164 "shadowSampler2D"
|
||||
Name 221 "iCoords2D"
|
||||
Name 226 "iLod"
|
||||
Name 236 "gradX"
|
||||
Name 239 "gradY"
|
||||
Name 291 "gl_FragColor"
|
||||
Name 294 "u"
|
||||
Name 297 "blend"
|
||||
Name 303 "scale"
|
||||
Name 304 "t"
|
||||
Decorate 32(texSampler1D) DescriptorSet 0
|
||||
Decorate 72(texSampler2D) DescriptorSet 0
|
||||
Decorate 98(texSampler3D) DescriptorSet 0
|
||||
Decorate 124(texSamplerCube) DescriptorSet 0
|
||||
Decorate 139(shadowSampler1D) DescriptorSet 0
|
||||
Decorate 158(shadowSampler2D) DescriptorSet 0
|
||||
Decorate 76(texSampler2D) DescriptorSet 0
|
||||
Decorate 104(texSampler3D) DescriptorSet 0
|
||||
Decorate 130(texSamplerCube) DescriptorSet 0
|
||||
Decorate 145(shadowSampler1D) DescriptorSet 0
|
||||
Decorate 164(shadowSampler2D) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@ -73,46 +73,46 @@ Linked fragment stage:
|
||||
45: TypeVector 6(float) 2
|
||||
46: TypePointer Input 45(fvec2)
|
||||
47(coords2D): 46(ptr) Variable Input
|
||||
69: TypeImage 6(float) 2D sampled format:Unknown
|
||||
70: TypeSampledImage 69
|
||||
71: TypePointer UniformConstant 70
|
||||
72(texSampler2D): 71(ptr) Variable UniformConstant
|
||||
95: TypeImage 6(float) 3D sampled format:Unknown
|
||||
96: TypeSampledImage 95
|
||||
97: TypePointer UniformConstant 96
|
||||
98(texSampler3D): 97(ptr) Variable UniformConstant
|
||||
121: TypeImage 6(float) Cube sampled format:Unknown
|
||||
122: TypeSampledImage 121
|
||||
123: TypePointer UniformConstant 122
|
||||
124(texSamplerCube): 123(ptr) Variable UniformConstant
|
||||
136: TypeImage 6(float) 1D depth sampled format:Unknown
|
||||
137: TypeSampledImage 136
|
||||
138: TypePointer UniformConstant 137
|
||||
139(shadowSampler1D): 138(ptr) Variable UniformConstant
|
||||
155: TypeImage 6(float) 2D depth sampled format:Unknown
|
||||
156: TypeSampledImage 155
|
||||
157: TypePointer UniformConstant 156
|
||||
158(shadowSampler2D): 157(ptr) Variable UniformConstant
|
||||
204: TypeInt 32 1
|
||||
205: TypeVector 204(int) 2
|
||||
206: TypePointer Function 205(ivec2)
|
||||
208: 204(int) Constant 0
|
||||
209: 204(int) Constant 5
|
||||
210: 205(ivec2) ConstantComposite 208 209
|
||||
211: TypePointer Function 204(int)
|
||||
213: 204(int) Constant 1
|
||||
220: TypePointer Function 45(fvec2)
|
||||
249: 204(int) Constant 3
|
||||
250: 204(int) Constant 4294967289
|
||||
251: 205(ivec2) ConstantComposite 249 250
|
||||
275: TypePointer Output 22(fvec4)
|
||||
276(gl_FragColor): 275(ptr) Variable Output
|
||||
278: TypePointer Input 22(fvec4)
|
||||
279(u): 278(ptr) Variable Input
|
||||
281: TypePointer Input 6(float)
|
||||
282(blend): 281(ptr) Variable Input
|
||||
288(scale): 46(ptr) Variable Input
|
||||
289(t): 46(ptr) Variable Input
|
||||
73: TypeImage 6(float) 2D sampled format:Unknown
|
||||
74: TypeSampledImage 73
|
||||
75: TypePointer UniformConstant 74
|
||||
76(texSampler2D): 75(ptr) Variable UniformConstant
|
||||
101: TypeImage 6(float) 3D sampled format:Unknown
|
||||
102: TypeSampledImage 101
|
||||
103: TypePointer UniformConstant 102
|
||||
104(texSampler3D): 103(ptr) Variable UniformConstant
|
||||
127: TypeImage 6(float) Cube sampled format:Unknown
|
||||
128: TypeSampledImage 127
|
||||
129: TypePointer UniformConstant 128
|
||||
130(texSamplerCube): 129(ptr) Variable UniformConstant
|
||||
142: TypeImage 6(float) 1D depth sampled format:Unknown
|
||||
143: TypeSampledImage 142
|
||||
144: TypePointer UniformConstant 143
|
||||
145(shadowSampler1D): 144(ptr) Variable UniformConstant
|
||||
161: TypeImage 6(float) 2D depth sampled format:Unknown
|
||||
162: TypeSampledImage 161
|
||||
163: TypePointer UniformConstant 162
|
||||
164(shadowSampler2D): 163(ptr) Variable UniformConstant
|
||||
218: TypeInt 32 1
|
||||
219: TypeVector 218(int) 2
|
||||
220: TypePointer Function 219(ivec2)
|
||||
222: 218(int) Constant 0
|
||||
223: 218(int) Constant 5
|
||||
224: 219(ivec2) ConstantComposite 222 223
|
||||
225: TypePointer Function 218(int)
|
||||
227: 218(int) Constant 1
|
||||
235: TypePointer Function 45(fvec2)
|
||||
264: 218(int) Constant 3
|
||||
265: 218(int) Constant 4294967289
|
||||
266: 219(ivec2) ConstantComposite 264 265
|
||||
290: TypePointer Output 22(fvec4)
|
||||
291(gl_FragColor): 290(ptr) Variable Output
|
||||
293: TypePointer Input 22(fvec4)
|
||||
294(u): 293(ptr) Variable Input
|
||||
296: TypePointer Input 6(float)
|
||||
297(blend): 296(ptr) Variable Input
|
||||
303(scale): 46(ptr) Variable Input
|
||||
304(t): 46(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(blendscale): 7(ptr) Variable Function
|
||||
@ -123,10 +123,10 @@ Linked fragment stage:
|
||||
18(coords3D): 17(ptr) Variable Function
|
||||
24(coords4D): 23(ptr) Variable Function
|
||||
26(color): 23(ptr) Variable Function
|
||||
207(iCoords2D): 206(ptr) Variable Function
|
||||
212(iLod): 211(ptr) Variable Function
|
||||
221(gradX): 220(ptr) Variable Function
|
||||
224(gradY): 220(ptr) Variable Function
|
||||
221(iCoords2D): 220(ptr) Variable Function
|
||||
226(iLod): 225(ptr) Variable Function
|
||||
236(gradX): 235(ptr) Variable Function
|
||||
239(gradY): 235(ptr) Variable Function
|
||||
Store 8(blendscale) 9
|
||||
Store 10(bias) 11
|
||||
Store 12(lod) 13
|
||||
@ -156,229 +156,244 @@ Linked fragment stage:
|
||||
Store 26(color) 51
|
||||
52: 30 Load 32(texSampler1D)
|
||||
53: 22(fvec4) Load 24(coords4D)
|
||||
54: 22(fvec4) ImageSampleProjImplicitLod 52 53
|
||||
55: 22(fvec4) Load 26(color)
|
||||
56: 22(fvec4) FAdd 55 54
|
||||
Store 26(color) 56
|
||||
57: 30 Load 32(texSampler1D)
|
||||
58: 45(fvec2) Load 47(coords2D)
|
||||
59: 6(float) Load 10(bias)
|
||||
60: 22(fvec4) ImageSampleProjImplicitLod 57 58 Bias 59
|
||||
61: 22(fvec4) Load 26(color)
|
||||
62: 22(fvec4) FAdd 61 60
|
||||
Store 26(color) 62
|
||||
63: 30 Load 32(texSampler1D)
|
||||
64: 22(fvec4) Load 24(coords4D)
|
||||
65: 6(float) Load 10(bias)
|
||||
66: 22(fvec4) ImageSampleProjImplicitLod 63 64 Bias 65
|
||||
67: 22(fvec4) Load 26(color)
|
||||
68: 22(fvec4) FAdd 67 66
|
||||
Store 26(color) 68
|
||||
73: 70 Load 72(texSampler2D)
|
||||
74: 45(fvec2) Load 47(coords2D)
|
||||
75: 22(fvec4) ImageSampleImplicitLod 73 74
|
||||
76: 22(fvec4) Load 26(color)
|
||||
77: 22(fvec4) FAdd 76 75
|
||||
Store 26(color) 77
|
||||
78: 70 Load 72(texSampler2D)
|
||||
79: 45(fvec2) Load 47(coords2D)
|
||||
80: 6(float) Load 10(bias)
|
||||
81: 22(fvec4) ImageSampleImplicitLod 78 79 Bias 80
|
||||
82: 22(fvec4) Load 26(color)
|
||||
83: 22(fvec4) FAdd 82 81
|
||||
Store 26(color) 83
|
||||
84: 70 Load 72(texSampler2D)
|
||||
85: 16(fvec3) Load 18(coords3D)
|
||||
86: 22(fvec4) ImageSampleProjImplicitLod 84 85
|
||||
87: 22(fvec4) Load 26(color)
|
||||
88: 22(fvec4) FAdd 87 86
|
||||
Store 26(color) 88
|
||||
89: 70 Load 72(texSampler2D)
|
||||
90: 22(fvec4) Load 24(coords4D)
|
||||
91: 6(float) Load 10(bias)
|
||||
92: 22(fvec4) ImageSampleProjImplicitLod 89 90 Bias 91
|
||||
93: 22(fvec4) Load 26(color)
|
||||
94: 22(fvec4) FAdd 93 92
|
||||
Store 26(color) 94
|
||||
99: 96 Load 98(texSampler3D)
|
||||
100: 16(fvec3) Load 18(coords3D)
|
||||
101: 22(fvec4) ImageSampleImplicitLod 99 100
|
||||
102: 22(fvec4) Load 26(color)
|
||||
103: 22(fvec4) FAdd 102 101
|
||||
Store 26(color) 103
|
||||
104: 96 Load 98(texSampler3D)
|
||||
105: 16(fvec3) Load 18(coords3D)
|
||||
106: 6(float) Load 10(bias)
|
||||
107: 22(fvec4) ImageSampleImplicitLod 104 105 Bias 106
|
||||
54: 6(float) CompositeExtract 53 3
|
||||
55: 22(fvec4) CompositeInsert 54 53 1
|
||||
56: 22(fvec4) ImageSampleProjImplicitLod 52 55
|
||||
57: 22(fvec4) Load 26(color)
|
||||
58: 22(fvec4) FAdd 57 56
|
||||
Store 26(color) 58
|
||||
59: 30 Load 32(texSampler1D)
|
||||
60: 45(fvec2) Load 47(coords2D)
|
||||
61: 6(float) Load 10(bias)
|
||||
62: 22(fvec4) ImageSampleProjImplicitLod 59 60 Bias 61
|
||||
63: 22(fvec4) Load 26(color)
|
||||
64: 22(fvec4) FAdd 63 62
|
||||
Store 26(color) 64
|
||||
65: 30 Load 32(texSampler1D)
|
||||
66: 22(fvec4) Load 24(coords4D)
|
||||
67: 6(float) Load 10(bias)
|
||||
68: 6(float) CompositeExtract 66 3
|
||||
69: 22(fvec4) CompositeInsert 68 66 1
|
||||
70: 22(fvec4) ImageSampleProjImplicitLod 65 69 Bias 67
|
||||
71: 22(fvec4) Load 26(color)
|
||||
72: 22(fvec4) FAdd 71 70
|
||||
Store 26(color) 72
|
||||
77: 74 Load 76(texSampler2D)
|
||||
78: 45(fvec2) Load 47(coords2D)
|
||||
79: 22(fvec4) ImageSampleImplicitLod 77 78
|
||||
80: 22(fvec4) Load 26(color)
|
||||
81: 22(fvec4) FAdd 80 79
|
||||
Store 26(color) 81
|
||||
82: 74 Load 76(texSampler2D)
|
||||
83: 45(fvec2) Load 47(coords2D)
|
||||
84: 6(float) Load 10(bias)
|
||||
85: 22(fvec4) ImageSampleImplicitLod 82 83 Bias 84
|
||||
86: 22(fvec4) Load 26(color)
|
||||
87: 22(fvec4) FAdd 86 85
|
||||
Store 26(color) 87
|
||||
88: 74 Load 76(texSampler2D)
|
||||
89: 16(fvec3) Load 18(coords3D)
|
||||
90: 22(fvec4) ImageSampleProjImplicitLod 88 89
|
||||
91: 22(fvec4) Load 26(color)
|
||||
92: 22(fvec4) FAdd 91 90
|
||||
Store 26(color) 92
|
||||
93: 74 Load 76(texSampler2D)
|
||||
94: 22(fvec4) Load 24(coords4D)
|
||||
95: 6(float) Load 10(bias)
|
||||
96: 6(float) CompositeExtract 94 3
|
||||
97: 22(fvec4) CompositeInsert 96 94 2
|
||||
98: 22(fvec4) ImageSampleProjImplicitLod 93 97 Bias 95
|
||||
99: 22(fvec4) Load 26(color)
|
||||
100: 22(fvec4) FAdd 99 98
|
||||
Store 26(color) 100
|
||||
105: 102 Load 104(texSampler3D)
|
||||
106: 16(fvec3) Load 18(coords3D)
|
||||
107: 22(fvec4) ImageSampleImplicitLod 105 106
|
||||
108: 22(fvec4) Load 26(color)
|
||||
109: 22(fvec4) FAdd 108 107
|
||||
Store 26(color) 109
|
||||
110: 96 Load 98(texSampler3D)
|
||||
111: 22(fvec4) Load 24(coords4D)
|
||||
112: 22(fvec4) ImageSampleProjImplicitLod 110 111
|
||||
113: 22(fvec4) Load 26(color)
|
||||
114: 22(fvec4) FAdd 113 112
|
||||
Store 26(color) 114
|
||||
115: 96 Load 98(texSampler3D)
|
||||
116: 22(fvec4) Load 24(coords4D)
|
||||
117: 6(float) Load 10(bias)
|
||||
118: 22(fvec4) ImageSampleProjImplicitLod 115 116 Bias 117
|
||||
110: 102 Load 104(texSampler3D)
|
||||
111: 16(fvec3) Load 18(coords3D)
|
||||
112: 6(float) Load 10(bias)
|
||||
113: 22(fvec4) ImageSampleImplicitLod 110 111 Bias 112
|
||||
114: 22(fvec4) Load 26(color)
|
||||
115: 22(fvec4) FAdd 114 113
|
||||
Store 26(color) 115
|
||||
116: 102 Load 104(texSampler3D)
|
||||
117: 22(fvec4) Load 24(coords4D)
|
||||
118: 22(fvec4) ImageSampleProjImplicitLod 116 117
|
||||
119: 22(fvec4) Load 26(color)
|
||||
120: 22(fvec4) FAdd 119 118
|
||||
Store 26(color) 120
|
||||
125: 122 Load 124(texSamplerCube)
|
||||
126: 16(fvec3) Load 18(coords3D)
|
||||
127: 22(fvec4) ImageSampleImplicitLod 125 126
|
||||
128: 22(fvec4) Load 26(color)
|
||||
129: 22(fvec4) FAdd 128 127
|
||||
Store 26(color) 129
|
||||
130: 122 Load 124(texSamplerCube)
|
||||
131: 16(fvec3) Load 18(coords3D)
|
||||
132: 6(float) Load 10(bias)
|
||||
133: 22(fvec4) ImageSampleImplicitLod 130 131 Bias 132
|
||||
121: 102 Load 104(texSampler3D)
|
||||
122: 22(fvec4) Load 24(coords4D)
|
||||
123: 6(float) Load 10(bias)
|
||||
124: 22(fvec4) ImageSampleProjImplicitLod 121 122 Bias 123
|
||||
125: 22(fvec4) Load 26(color)
|
||||
126: 22(fvec4) FAdd 125 124
|
||||
Store 26(color) 126
|
||||
131: 128 Load 130(texSamplerCube)
|
||||
132: 16(fvec3) Load 18(coords3D)
|
||||
133: 22(fvec4) ImageSampleImplicitLod 131 132
|
||||
134: 22(fvec4) Load 26(color)
|
||||
135: 22(fvec4) FAdd 134 133
|
||||
Store 26(color) 135
|
||||
140: 137 Load 139(shadowSampler1D)
|
||||
141: 16(fvec3) Load 18(coords3D)
|
||||
142: 6(float) CompositeExtract 141 2
|
||||
143: 6(float) ImageSampleDrefImplicitLod 140 141 142
|
||||
144: 22(fvec4) Load 26(color)
|
||||
145: 22(fvec4) CompositeConstruct 143 143 143 143
|
||||
146: 22(fvec4) FAdd 144 145
|
||||
Store 26(color) 146
|
||||
147: 137 Load 139(shadowSampler1D)
|
||||
148: 16(fvec3) Load 18(coords3D)
|
||||
149: 6(float) Load 10(bias)
|
||||
150: 6(float) CompositeExtract 148 2
|
||||
151: 6(float) ImageSampleDrefImplicitLod 147 148 150 Bias 149
|
||||
152: 22(fvec4) Load 26(color)
|
||||
153: 22(fvec4) CompositeConstruct 151 151 151 151
|
||||
154: 22(fvec4) FAdd 152 153
|
||||
Store 26(color) 154
|
||||
159: 156 Load 158(shadowSampler2D)
|
||||
160: 16(fvec3) Load 18(coords3D)
|
||||
161: 6(float) CompositeExtract 160 2
|
||||
162: 6(float) ImageSampleDrefImplicitLod 159 160 161
|
||||
163: 22(fvec4) Load 26(color)
|
||||
164: 22(fvec4) CompositeConstruct 162 162 162 162
|
||||
165: 22(fvec4) FAdd 163 164
|
||||
Store 26(color) 165
|
||||
166: 156 Load 158(shadowSampler2D)
|
||||
167: 16(fvec3) Load 18(coords3D)
|
||||
168: 6(float) Load 10(bias)
|
||||
169: 6(float) CompositeExtract 167 2
|
||||
170: 6(float) ImageSampleDrefImplicitLod 166 167 169 Bias 168
|
||||
171: 22(fvec4) Load 26(color)
|
||||
172: 22(fvec4) CompositeConstruct 170 170 170 170
|
||||
173: 22(fvec4) FAdd 171 172
|
||||
Store 26(color) 173
|
||||
174: 137 Load 139(shadowSampler1D)
|
||||
175: 22(fvec4) Load 24(coords4D)
|
||||
176: 6(float) CompositeExtract 175 2
|
||||
177: 6(float) ImageSampleProjDrefImplicitLod 174 175 176
|
||||
178: 22(fvec4) Load 26(color)
|
||||
179: 22(fvec4) CompositeConstruct 177 177 177 177
|
||||
180: 22(fvec4) FAdd 178 179
|
||||
Store 26(color) 180
|
||||
181: 137 Load 139(shadowSampler1D)
|
||||
182: 22(fvec4) Load 24(coords4D)
|
||||
183: 6(float) Load 10(bias)
|
||||
184: 6(float) CompositeExtract 182 2
|
||||
185: 6(float) ImageSampleProjDrefImplicitLod 181 182 184 Bias 183
|
||||
136: 128 Load 130(texSamplerCube)
|
||||
137: 16(fvec3) Load 18(coords3D)
|
||||
138: 6(float) Load 10(bias)
|
||||
139: 22(fvec4) ImageSampleImplicitLod 136 137 Bias 138
|
||||
140: 22(fvec4) Load 26(color)
|
||||
141: 22(fvec4) FAdd 140 139
|
||||
Store 26(color) 141
|
||||
146: 143 Load 145(shadowSampler1D)
|
||||
147: 16(fvec3) Load 18(coords3D)
|
||||
148: 6(float) CompositeExtract 147 2
|
||||
149: 6(float) ImageSampleDrefImplicitLod 146 147 148
|
||||
150: 22(fvec4) Load 26(color)
|
||||
151: 22(fvec4) CompositeConstruct 149 149 149 149
|
||||
152: 22(fvec4) FAdd 150 151
|
||||
Store 26(color) 152
|
||||
153: 143 Load 145(shadowSampler1D)
|
||||
154: 16(fvec3) Load 18(coords3D)
|
||||
155: 6(float) Load 10(bias)
|
||||
156: 6(float) CompositeExtract 154 2
|
||||
157: 6(float) ImageSampleDrefImplicitLod 153 154 156 Bias 155
|
||||
158: 22(fvec4) Load 26(color)
|
||||
159: 22(fvec4) CompositeConstruct 157 157 157 157
|
||||
160: 22(fvec4) FAdd 158 159
|
||||
Store 26(color) 160
|
||||
165: 162 Load 164(shadowSampler2D)
|
||||
166: 16(fvec3) Load 18(coords3D)
|
||||
167: 6(float) CompositeExtract 166 2
|
||||
168: 6(float) ImageSampleDrefImplicitLod 165 166 167
|
||||
169: 22(fvec4) Load 26(color)
|
||||
170: 22(fvec4) CompositeConstruct 168 168 168 168
|
||||
171: 22(fvec4) FAdd 169 170
|
||||
Store 26(color) 171
|
||||
172: 162 Load 164(shadowSampler2D)
|
||||
173: 16(fvec3) Load 18(coords3D)
|
||||
174: 6(float) Load 10(bias)
|
||||
175: 6(float) CompositeExtract 173 2
|
||||
176: 6(float) ImageSampleDrefImplicitLod 172 173 175 Bias 174
|
||||
177: 22(fvec4) Load 26(color)
|
||||
178: 22(fvec4) CompositeConstruct 176 176 176 176
|
||||
179: 22(fvec4) FAdd 177 178
|
||||
Store 26(color) 179
|
||||
180: 143 Load 145(shadowSampler1D)
|
||||
181: 22(fvec4) Load 24(coords4D)
|
||||
182: 6(float) CompositeExtract 181 2
|
||||
183: 6(float) CompositeExtract 181 3
|
||||
184: 22(fvec4) CompositeInsert 183 181 1
|
||||
185: 6(float) ImageSampleProjDrefImplicitLod 180 184 182
|
||||
186: 22(fvec4) Load 26(color)
|
||||
187: 22(fvec4) CompositeConstruct 185 185 185 185
|
||||
188: 22(fvec4) FAdd 186 187
|
||||
Store 26(color) 188
|
||||
189: 156 Load 158(shadowSampler2D)
|
||||
189: 143 Load 145(shadowSampler1D)
|
||||
190: 22(fvec4) Load 24(coords4D)
|
||||
191: 6(float) CompositeExtract 190 2
|
||||
192: 6(float) ImageSampleProjDrefImplicitLod 189 190 191
|
||||
193: 22(fvec4) Load 26(color)
|
||||
194: 22(fvec4) CompositeConstruct 192 192 192 192
|
||||
195: 22(fvec4) FAdd 193 194
|
||||
Store 26(color) 195
|
||||
196: 156 Load 158(shadowSampler2D)
|
||||
197: 22(fvec4) Load 24(coords4D)
|
||||
198: 6(float) Load 10(bias)
|
||||
199: 6(float) CompositeExtract 197 2
|
||||
200: 6(float) ImageSampleProjDrefImplicitLod 196 197 199 Bias 198
|
||||
201: 22(fvec4) Load 26(color)
|
||||
202: 22(fvec4) CompositeConstruct 200 200 200 200
|
||||
203: 22(fvec4) FAdd 201 202
|
||||
Store 26(color) 203
|
||||
Store 207(iCoords2D) 210
|
||||
Store 212(iLod) 213
|
||||
214: 70 Load 72(texSampler2D)
|
||||
215: 205(ivec2) Load 207(iCoords2D)
|
||||
216: 204(int) Load 212(iLod)
|
||||
217: 22(fvec4) ImageFetch 214 215 Lod 216
|
||||
218: 22(fvec4) Load 26(color)
|
||||
219: 22(fvec4) FAdd 218 217
|
||||
Store 26(color) 219
|
||||
222: 45(fvec2) Load 47(coords2D)
|
||||
223: 45(fvec2) DPdx 222
|
||||
Store 221(gradX) 223
|
||||
225: 45(fvec2) Load 47(coords2D)
|
||||
226: 45(fvec2) DPdy 225
|
||||
Store 224(gradY) 226
|
||||
227: 70 Load 72(texSampler2D)
|
||||
228: 45(fvec2) Load 47(coords2D)
|
||||
229: 45(fvec2) Load 221(gradX)
|
||||
230: 45(fvec2) Load 224(gradY)
|
||||
231: 22(fvec4) ImageSampleExplicitLod 227 228 Grad 229 230
|
||||
232: 22(fvec4) Load 26(color)
|
||||
233: 22(fvec4) FAdd 232 231
|
||||
Store 26(color) 233
|
||||
234: 70 Load 72(texSampler2D)
|
||||
235: 45(fvec2) Load 47(coords2D)
|
||||
236: 6(float) Load 14(proj)
|
||||
237: 6(float) CompositeExtract 235 0
|
||||
238: 6(float) CompositeExtract 235 1
|
||||
239: 16(fvec3) CompositeConstruct 237 238 236
|
||||
240: 45(fvec2) Load 221(gradX)
|
||||
241: 45(fvec2) Load 224(gradY)
|
||||
242: 22(fvec4) ImageSampleProjExplicitLod 234 239 Grad 240 241
|
||||
243: 22(fvec4) Load 26(color)
|
||||
244: 22(fvec4) FAdd 243 242
|
||||
Store 26(color) 244
|
||||
245: 70 Load 72(texSampler2D)
|
||||
246: 45(fvec2) Load 47(coords2D)
|
||||
247: 45(fvec2) Load 221(gradX)
|
||||
248: 45(fvec2) Load 224(gradY)
|
||||
252: 22(fvec4) ImageSampleExplicitLod 245 246 Grad ConstOffset 247 248 251
|
||||
253: 22(fvec4) Load 26(color)
|
||||
254: 22(fvec4) FAdd 253 252
|
||||
Store 26(color) 254
|
||||
255: 70 Load 72(texSampler2D)
|
||||
256: 16(fvec3) Load 18(coords3D)
|
||||
257: 45(fvec2) Load 221(gradX)
|
||||
258: 45(fvec2) Load 224(gradY)
|
||||
259: 22(fvec4) ImageSampleProjExplicitLod 255 256 Grad ConstOffset 257 258 251
|
||||
260: 22(fvec4) Load 26(color)
|
||||
261: 22(fvec4) FAdd 260 259
|
||||
Store 26(color) 261
|
||||
262: 156 Load 158(shadowSampler2D)
|
||||
263: 45(fvec2) Load 47(coords2D)
|
||||
264: 6(float) Load 12(lod)
|
||||
265: 6(float) CompositeExtract 263 0
|
||||
266: 6(float) CompositeExtract 263 1
|
||||
267: 16(fvec3) CompositeConstruct 265 266 264
|
||||
268: 45(fvec2) Load 221(gradX)
|
||||
269: 45(fvec2) Load 224(gradY)
|
||||
270: 6(float) CompositeExtract 267 2
|
||||
271: 6(float) ImageSampleDrefExplicitLod 262 267 270 Grad 268 269
|
||||
272: 22(fvec4) Load 26(color)
|
||||
273: 22(fvec4) CompositeConstruct 271 271 271 271
|
||||
274: 22(fvec4) FAdd 272 273
|
||||
Store 26(color) 274
|
||||
277: 22(fvec4) Load 26(color)
|
||||
280: 22(fvec4) Load 279(u)
|
||||
283: 6(float) Load 282(blend)
|
||||
284: 6(float) Load 8(blendscale)
|
||||
285: 6(float) FMul 283 284
|
||||
286: 22(fvec4) CompositeConstruct 285 285 285 285
|
||||
287: 22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 277 280 286
|
||||
Store 276(gl_FragColor) 287
|
||||
191: 6(float) Load 10(bias)
|
||||
192: 6(float) CompositeExtract 190 2
|
||||
193: 6(float) CompositeExtract 190 3
|
||||
194: 22(fvec4) CompositeInsert 193 190 1
|
||||
195: 6(float) ImageSampleProjDrefImplicitLod 189 194 192 Bias 191
|
||||
196: 22(fvec4) Load 26(color)
|
||||
197: 22(fvec4) CompositeConstruct 195 195 195 195
|
||||
198: 22(fvec4) FAdd 196 197
|
||||
Store 26(color) 198
|
||||
199: 162 Load 164(shadowSampler2D)
|
||||
200: 22(fvec4) Load 24(coords4D)
|
||||
201: 6(float) CompositeExtract 200 2
|
||||
202: 6(float) CompositeExtract 200 3
|
||||
203: 22(fvec4) CompositeInsert 202 200 2
|
||||
204: 6(float) ImageSampleProjDrefImplicitLod 199 203 201
|
||||
205: 22(fvec4) Load 26(color)
|
||||
206: 22(fvec4) CompositeConstruct 204 204 204 204
|
||||
207: 22(fvec4) FAdd 205 206
|
||||
Store 26(color) 207
|
||||
208: 162 Load 164(shadowSampler2D)
|
||||
209: 22(fvec4) Load 24(coords4D)
|
||||
210: 6(float) Load 10(bias)
|
||||
211: 6(float) CompositeExtract 209 2
|
||||
212: 6(float) CompositeExtract 209 3
|
||||
213: 22(fvec4) CompositeInsert 212 209 2
|
||||
214: 6(float) ImageSampleProjDrefImplicitLod 208 213 211 Bias 210
|
||||
215: 22(fvec4) Load 26(color)
|
||||
216: 22(fvec4) CompositeConstruct 214 214 214 214
|
||||
217: 22(fvec4) FAdd 215 216
|
||||
Store 26(color) 217
|
||||
Store 221(iCoords2D) 224
|
||||
Store 226(iLod) 227
|
||||
228: 74 Load 76(texSampler2D)
|
||||
229: 219(ivec2) Load 221(iCoords2D)
|
||||
230: 218(int) Load 226(iLod)
|
||||
231: 73 Image 228
|
||||
232: 22(fvec4) ImageFetch 231 229 Lod 230
|
||||
233: 22(fvec4) Load 26(color)
|
||||
234: 22(fvec4) FAdd 233 232
|
||||
Store 26(color) 234
|
||||
237: 45(fvec2) Load 47(coords2D)
|
||||
238: 45(fvec2) DPdx 237
|
||||
Store 236(gradX) 238
|
||||
240: 45(fvec2) Load 47(coords2D)
|
||||
241: 45(fvec2) DPdy 240
|
||||
Store 239(gradY) 241
|
||||
242: 74 Load 76(texSampler2D)
|
||||
243: 45(fvec2) Load 47(coords2D)
|
||||
244: 45(fvec2) Load 236(gradX)
|
||||
245: 45(fvec2) Load 239(gradY)
|
||||
246: 22(fvec4) ImageSampleExplicitLod 242 243 Grad 244 245
|
||||
247: 22(fvec4) Load 26(color)
|
||||
248: 22(fvec4) FAdd 247 246
|
||||
Store 26(color) 248
|
||||
249: 74 Load 76(texSampler2D)
|
||||
250: 45(fvec2) Load 47(coords2D)
|
||||
251: 6(float) Load 14(proj)
|
||||
252: 6(float) CompositeExtract 250 0
|
||||
253: 6(float) CompositeExtract 250 1
|
||||
254: 16(fvec3) CompositeConstruct 252 253 251
|
||||
255: 45(fvec2) Load 236(gradX)
|
||||
256: 45(fvec2) Load 239(gradY)
|
||||
257: 22(fvec4) ImageSampleProjExplicitLod 249 254 Grad 255 256
|
||||
258: 22(fvec4) Load 26(color)
|
||||
259: 22(fvec4) FAdd 258 257
|
||||
Store 26(color) 259
|
||||
260: 74 Load 76(texSampler2D)
|
||||
261: 45(fvec2) Load 47(coords2D)
|
||||
262: 45(fvec2) Load 236(gradX)
|
||||
263: 45(fvec2) Load 239(gradY)
|
||||
267: 22(fvec4) ImageSampleExplicitLod 260 261 Grad ConstOffset 262 263 266
|
||||
268: 22(fvec4) Load 26(color)
|
||||
269: 22(fvec4) FAdd 268 267
|
||||
Store 26(color) 269
|
||||
270: 74 Load 76(texSampler2D)
|
||||
271: 16(fvec3) Load 18(coords3D)
|
||||
272: 45(fvec2) Load 236(gradX)
|
||||
273: 45(fvec2) Load 239(gradY)
|
||||
274: 22(fvec4) ImageSampleProjExplicitLod 270 271 Grad ConstOffset 272 273 266
|
||||
275: 22(fvec4) Load 26(color)
|
||||
276: 22(fvec4) FAdd 275 274
|
||||
Store 26(color) 276
|
||||
277: 162 Load 164(shadowSampler2D)
|
||||
278: 45(fvec2) Load 47(coords2D)
|
||||
279: 6(float) Load 12(lod)
|
||||
280: 6(float) CompositeExtract 278 0
|
||||
281: 6(float) CompositeExtract 278 1
|
||||
282: 16(fvec3) CompositeConstruct 280 281 279
|
||||
283: 45(fvec2) Load 236(gradX)
|
||||
284: 45(fvec2) Load 239(gradY)
|
||||
285: 6(float) CompositeExtract 282 2
|
||||
286: 6(float) ImageSampleDrefExplicitLod 277 282 285 Grad 283 284
|
||||
287: 22(fvec4) Load 26(color)
|
||||
288: 22(fvec4) CompositeConstruct 286 286 286 286
|
||||
289: 22(fvec4) FAdd 287 288
|
||||
Store 26(color) 289
|
||||
292: 22(fvec4) Load 26(color)
|
||||
295: 22(fvec4) Load 294(u)
|
||||
298: 6(float) Load 297(blend)
|
||||
299: 6(float) Load 8(blendscale)
|
||||
300: 6(float) FMul 298 299
|
||||
301: 22(fvec4) CompositeConstruct 300 300 300 300
|
||||
302: 22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 292 295 301
|
||||
Store 291(gl_FragColor) 302
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@ -5,13 +5,13 @@ Linked vertex stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 142
|
||||
// Id's are bound by 150
|
||||
|
||||
Capability Shader
|
||||
Capability Sampled1D
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 39 140
|
||||
EntryPoint Vertex 4 "main" 39 148
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
Name 8 "lod"
|
||||
@ -21,19 +21,19 @@ Linked vertex stage:
|
||||
Name 23 "color"
|
||||
Name 29 "texSampler1D"
|
||||
Name 39 "coords2D"
|
||||
Name 54 "texSampler2D"
|
||||
Name 76 "texSampler3D"
|
||||
Name 92 "texSamplerCube"
|
||||
Name 102 "shadowSampler1D"
|
||||
Name 114 "shadowSampler2D"
|
||||
Name 140 "gl_Position"
|
||||
Name 56 "texSampler2D"
|
||||
Name 80 "texSampler3D"
|
||||
Name 96 "texSamplerCube"
|
||||
Name 106 "shadowSampler1D"
|
||||
Name 118 "shadowSampler2D"
|
||||
Name 148 "gl_Position"
|
||||
Decorate 29(texSampler1D) DescriptorSet 0
|
||||
Decorate 54(texSampler2D) DescriptorSet 0
|
||||
Decorate 76(texSampler3D) DescriptorSet 0
|
||||
Decorate 92(texSamplerCube) DescriptorSet 0
|
||||
Decorate 102(shadowSampler1D) DescriptorSet 0
|
||||
Decorate 114(shadowSampler2D) DescriptorSet 0
|
||||
Decorate 140(gl_Position) BuiltIn Position
|
||||
Decorate 56(texSampler2D) DescriptorSet 0
|
||||
Decorate 80(texSampler3D) DescriptorSet 0
|
||||
Decorate 96(texSamplerCube) DescriptorSet 0
|
||||
Decorate 106(shadowSampler1D) DescriptorSet 0
|
||||
Decorate 118(shadowSampler2D) DescriptorSet 0
|
||||
Decorate 148(gl_Position) BuiltIn Position
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@ -58,28 +58,28 @@ Linked vertex stage:
|
||||
37: TypeVector 6(float) 2
|
||||
38: TypePointer Input 37(fvec2)
|
||||
39(coords2D): 38(ptr) Variable Input
|
||||
51: TypeImage 6(float) 2D sampled format:Unknown
|
||||
52: TypeSampledImage 51
|
||||
53: TypePointer UniformConstant 52
|
||||
54(texSampler2D): 53(ptr) Variable UniformConstant
|
||||
73: TypeImage 6(float) 3D sampled format:Unknown
|
||||
74: TypeSampledImage 73
|
||||
75: TypePointer UniformConstant 74
|
||||
76(texSampler3D): 75(ptr) Variable UniformConstant
|
||||
89: TypeImage 6(float) Cube sampled format:Unknown
|
||||
90: TypeSampledImage 89
|
||||
91: TypePointer UniformConstant 90
|
||||
92(texSamplerCube): 91(ptr) Variable UniformConstant
|
||||
99: TypeImage 6(float) 1D depth sampled format:Unknown
|
||||
100: TypeSampledImage 99
|
||||
101: TypePointer UniformConstant 100
|
||||
102(shadowSampler1D): 101(ptr) Variable UniformConstant
|
||||
111: TypeImage 6(float) 2D depth sampled format:Unknown
|
||||
112: TypeSampledImage 111
|
||||
113: TypePointer UniformConstant 112
|
||||
114(shadowSampler2D): 113(ptr) Variable UniformConstant
|
||||
139: TypePointer Output 18(fvec4)
|
||||
140(gl_Position): 139(ptr) Variable Output
|
||||
53: TypeImage 6(float) 2D sampled format:Unknown
|
||||
54: TypeSampledImage 53
|
||||
55: TypePointer UniformConstant 54
|
||||
56(texSampler2D): 55(ptr) Variable UniformConstant
|
||||
77: TypeImage 6(float) 3D sampled format:Unknown
|
||||
78: TypeSampledImage 77
|
||||
79: TypePointer UniformConstant 78
|
||||
80(texSampler3D): 79(ptr) Variable UniformConstant
|
||||
93: TypeImage 6(float) Cube sampled format:Unknown
|
||||
94: TypeSampledImage 93
|
||||
95: TypePointer UniformConstant 94
|
||||
96(texSamplerCube): 95(ptr) Variable UniformConstant
|
||||
103: TypeImage 6(float) 1D depth sampled format:Unknown
|
||||
104: TypeSampledImage 103
|
||||
105: TypePointer UniformConstant 104
|
||||
106(shadowSampler1D): 105(ptr) Variable UniformConstant
|
||||
115: TypeImage 6(float) 2D depth sampled format:Unknown
|
||||
116: TypeSampledImage 115
|
||||
117: TypePointer UniformConstant 116
|
||||
118(shadowSampler2D): 117(ptr) Variable UniformConstant
|
||||
147: TypePointer Output 18(fvec4)
|
||||
148(gl_Position): 147(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(lod): 7(ptr) Variable Function
|
||||
@ -109,89 +109,97 @@ Linked vertex stage:
|
||||
45: 27 Load 29(texSampler1D)
|
||||
46: 18(fvec4) Load 20(coords4D)
|
||||
47: 6(float) Load 8(lod)
|
||||
48: 18(fvec4) ImageSampleProjExplicitLod 45 46 Lod 47
|
||||
49: 18(fvec4) Load 23(color)
|
||||
50: 18(fvec4) FAdd 49 48
|
||||
Store 23(color) 50
|
||||
55: 52 Load 54(texSampler2D)
|
||||
56: 37(fvec2) Load 39(coords2D)
|
||||
57: 6(float) Load 8(lod)
|
||||
58: 18(fvec4) ImageSampleExplicitLod 55 56 Lod 57
|
||||
59: 18(fvec4) Load 23(color)
|
||||
60: 18(fvec4) FAdd 59 58
|
||||
Store 23(color) 60
|
||||
61: 52 Load 54(texSampler2D)
|
||||
62: 12(fvec3) Load 14(coords3D)
|
||||
63: 6(float) Load 8(lod)
|
||||
64: 18(fvec4) ImageSampleProjExplicitLod 61 62 Lod 63
|
||||
65: 18(fvec4) Load 23(color)
|
||||
66: 18(fvec4) FAdd 65 64
|
||||
Store 23(color) 66
|
||||
67: 52 Load 54(texSampler2D)
|
||||
68: 18(fvec4) Load 20(coords4D)
|
||||
69: 6(float) Load 8(lod)
|
||||
70: 18(fvec4) ImageSampleProjExplicitLod 67 68 Lod 69
|
||||
71: 18(fvec4) Load 23(color)
|
||||
72: 18(fvec4) FAdd 71 70
|
||||
Store 23(color) 72
|
||||
77: 74 Load 76(texSampler3D)
|
||||
78: 12(fvec3) Load 14(coords3D)
|
||||
79: 6(float) Load 8(lod)
|
||||
80: 18(fvec4) ImageSampleExplicitLod 77 78 Lod 79
|
||||
81: 18(fvec4) Load 23(color)
|
||||
82: 18(fvec4) FAdd 81 80
|
||||
Store 23(color) 82
|
||||
83: 74 Load 76(texSampler3D)
|
||||
84: 18(fvec4) Load 20(coords4D)
|
||||
85: 6(float) Load 8(lod)
|
||||
86: 18(fvec4) ImageSampleProjExplicitLod 83 84 Lod 85
|
||||
87: 18(fvec4) Load 23(color)
|
||||
88: 18(fvec4) FAdd 87 86
|
||||
Store 23(color) 88
|
||||
93: 90 Load 92(texSamplerCube)
|
||||
94: 12(fvec3) Load 14(coords3D)
|
||||
95: 6(float) Load 8(lod)
|
||||
96: 18(fvec4) ImageSampleExplicitLod 93 94 Lod 95
|
||||
97: 18(fvec4) Load 23(color)
|
||||
98: 18(fvec4) FAdd 97 96
|
||||
Store 23(color) 98
|
||||
103: 100 Load 102(shadowSampler1D)
|
||||
104: 12(fvec3) Load 14(coords3D)
|
||||
105: 6(float) Load 8(lod)
|
||||
106: 6(float) CompositeExtract 104 2
|
||||
107: 6(float) ImageSampleDrefExplicitLod 103 104 106 Lod 105
|
||||
108: 18(fvec4) Load 23(color)
|
||||
109: 18(fvec4) CompositeConstruct 107 107 107 107
|
||||
110: 18(fvec4) FAdd 108 109
|
||||
Store 23(color) 110
|
||||
115: 112 Load 114(shadowSampler2D)
|
||||
116: 12(fvec3) Load 14(coords3D)
|
||||
117: 6(float) Load 8(lod)
|
||||
118: 6(float) CompositeExtract 116 2
|
||||
119: 6(float) ImageSampleDrefExplicitLod 115 116 118 Lod 117
|
||||
120: 18(fvec4) Load 23(color)
|
||||
121: 18(fvec4) CompositeConstruct 119 119 119 119
|
||||
122: 18(fvec4) FAdd 120 121
|
||||
Store 23(color) 122
|
||||
123: 100 Load 102(shadowSampler1D)
|
||||
124: 18(fvec4) Load 20(coords4D)
|
||||
125: 6(float) Load 8(lod)
|
||||
126: 6(float) CompositeExtract 124 2
|
||||
127: 6(float) ImageSampleProjDrefExplicitLod 123 124 126 Lod 125
|
||||
128: 18(fvec4) Load 23(color)
|
||||
129: 18(fvec4) CompositeConstruct 127 127 127 127
|
||||
130: 18(fvec4) FAdd 128 129
|
||||
Store 23(color) 130
|
||||
131: 112 Load 114(shadowSampler2D)
|
||||
132: 18(fvec4) Load 20(coords4D)
|
||||
133: 6(float) Load 8(lod)
|
||||
134: 6(float) CompositeExtract 132 2
|
||||
135: 6(float) ImageSampleProjDrefExplicitLod 131 132 134 Lod 133
|
||||
136: 18(fvec4) Load 23(color)
|
||||
137: 18(fvec4) CompositeConstruct 135 135 135 135
|
||||
138: 18(fvec4) FAdd 136 137
|
||||
Store 23(color) 138
|
||||
141: 18(fvec4) Load 23(color)
|
||||
Store 140(gl_Position) 141
|
||||
48: 6(float) CompositeExtract 46 3
|
||||
49: 18(fvec4) CompositeInsert 48 46 1
|
||||
50: 18(fvec4) ImageSampleProjExplicitLod 45 49 Lod 47
|
||||
51: 18(fvec4) Load 23(color)
|
||||
52: 18(fvec4) FAdd 51 50
|
||||
Store 23(color) 52
|
||||
57: 54 Load 56(texSampler2D)
|
||||
58: 37(fvec2) Load 39(coords2D)
|
||||
59: 6(float) Load 8(lod)
|
||||
60: 18(fvec4) ImageSampleExplicitLod 57 58 Lod 59
|
||||
61: 18(fvec4) Load 23(color)
|
||||
62: 18(fvec4) FAdd 61 60
|
||||
Store 23(color) 62
|
||||
63: 54 Load 56(texSampler2D)
|
||||
64: 12(fvec3) Load 14(coords3D)
|
||||
65: 6(float) Load 8(lod)
|
||||
66: 18(fvec4) ImageSampleProjExplicitLod 63 64 Lod 65
|
||||
67: 18(fvec4) Load 23(color)
|
||||
68: 18(fvec4) FAdd 67 66
|
||||
Store 23(color) 68
|
||||
69: 54 Load 56(texSampler2D)
|
||||
70: 18(fvec4) Load 20(coords4D)
|
||||
71: 6(float) Load 8(lod)
|
||||
72: 6(float) CompositeExtract 70 3
|
||||
73: 18(fvec4) CompositeInsert 72 70 2
|
||||
74: 18(fvec4) ImageSampleProjExplicitLod 69 73 Lod 71
|
||||
75: 18(fvec4) Load 23(color)
|
||||
76: 18(fvec4) FAdd 75 74
|
||||
Store 23(color) 76
|
||||
81: 78 Load 80(texSampler3D)
|
||||
82: 12(fvec3) Load 14(coords3D)
|
||||
83: 6(float) Load 8(lod)
|
||||
84: 18(fvec4) ImageSampleExplicitLod 81 82 Lod 83
|
||||
85: 18(fvec4) Load 23(color)
|
||||
86: 18(fvec4) FAdd 85 84
|
||||
Store 23(color) 86
|
||||
87: 78 Load 80(texSampler3D)
|
||||
88: 18(fvec4) Load 20(coords4D)
|
||||
89: 6(float) Load 8(lod)
|
||||
90: 18(fvec4) ImageSampleProjExplicitLod 87 88 Lod 89
|
||||
91: 18(fvec4) Load 23(color)
|
||||
92: 18(fvec4) FAdd 91 90
|
||||
Store 23(color) 92
|
||||
97: 94 Load 96(texSamplerCube)
|
||||
98: 12(fvec3) Load 14(coords3D)
|
||||
99: 6(float) Load 8(lod)
|
||||
100: 18(fvec4) ImageSampleExplicitLod 97 98 Lod 99
|
||||
101: 18(fvec4) Load 23(color)
|
||||
102: 18(fvec4) FAdd 101 100
|
||||
Store 23(color) 102
|
||||
107: 104 Load 106(shadowSampler1D)
|
||||
108: 12(fvec3) Load 14(coords3D)
|
||||
109: 6(float) Load 8(lod)
|
||||
110: 6(float) CompositeExtract 108 2
|
||||
111: 6(float) ImageSampleDrefExplicitLod 107 108 110 Lod 109
|
||||
112: 18(fvec4) Load 23(color)
|
||||
113: 18(fvec4) CompositeConstruct 111 111 111 111
|
||||
114: 18(fvec4) FAdd 112 113
|
||||
Store 23(color) 114
|
||||
119: 116 Load 118(shadowSampler2D)
|
||||
120: 12(fvec3) Load 14(coords3D)
|
||||
121: 6(float) Load 8(lod)
|
||||
122: 6(float) CompositeExtract 120 2
|
||||
123: 6(float) ImageSampleDrefExplicitLod 119 120 122 Lod 121
|
||||
124: 18(fvec4) Load 23(color)
|
||||
125: 18(fvec4) CompositeConstruct 123 123 123 123
|
||||
126: 18(fvec4) FAdd 124 125
|
||||
Store 23(color) 126
|
||||
127: 104 Load 106(shadowSampler1D)
|
||||
128: 18(fvec4) Load 20(coords4D)
|
||||
129: 6(float) Load 8(lod)
|
||||
130: 6(float) CompositeExtract 128 2
|
||||
131: 6(float) CompositeExtract 128 3
|
||||
132: 18(fvec4) CompositeInsert 131 128 1
|
||||
133: 6(float) ImageSampleProjDrefExplicitLod 127 132 130 Lod 129
|
||||
134: 18(fvec4) Load 23(color)
|
||||
135: 18(fvec4) CompositeConstruct 133 133 133 133
|
||||
136: 18(fvec4) FAdd 134 135
|
||||
Store 23(color) 136
|
||||
137: 116 Load 118(shadowSampler2D)
|
||||
138: 18(fvec4) Load 20(coords4D)
|
||||
139: 6(float) Load 8(lod)
|
||||
140: 6(float) CompositeExtract 138 2
|
||||
141: 6(float) CompositeExtract 138 3
|
||||
142: 18(fvec4) CompositeInsert 141 138 2
|
||||
143: 6(float) ImageSampleProjDrefExplicitLod 137 142 140 Lod 139
|
||||
144: 18(fvec4) Load 23(color)
|
||||
145: 18(fvec4) CompositeConstruct 143 143 143 143
|
||||
146: 18(fvec4) FAdd 144 145
|
||||
Store 23(color) 146
|
||||
149: 18(fvec4) Load 23(color)
|
||||
Store 148(gl_Position) 149
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@ -7,12 +7,12 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 97
|
||||
// Id's are bound by 93
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 10 21 37 40 58 67
|
||||
EntryPoint Fragment 4 "main" 10 20 34 36 54 63
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 400
|
||||
Name 4 "main"
|
||||
@ -25,43 +25,21 @@ Linked fragment stage:
|
||||
MemberName 14(lunarStruct2) 0 "i"
|
||||
MemberName 14(lunarStruct2) 1 "f"
|
||||
MemberName 14(lunarStruct2) 2 "s1_1"
|
||||
Name 18 "lunarStruct1"
|
||||
MemberName 18(lunarStruct1) 0 "i"
|
||||
MemberName 18(lunarStruct1) 1 "f"
|
||||
Name 19 "lunarStruct3"
|
||||
MemberName 19(lunarStruct3) 0 "s2_1"
|
||||
MemberName 19(lunarStruct3) 1 "i"
|
||||
MemberName 19(lunarStruct3) 2 "f"
|
||||
MemberName 19(lunarStruct3) 3 "s1_1"
|
||||
Name 21 "foo3"
|
||||
Name 31 "scale"
|
||||
Name 32 "lunarStruct1"
|
||||
MemberName 32(lunarStruct1) 0 "i"
|
||||
MemberName 32(lunarStruct1) 1 "f"
|
||||
Name 33 "lunarStruct2"
|
||||
MemberName 33(lunarStruct2) 0 "i"
|
||||
MemberName 33(lunarStruct2) 1 "f"
|
||||
MemberName 33(lunarStruct2) 2 "s1_1"
|
||||
Name 37 "foo2"
|
||||
Name 38 "lunarStruct1"
|
||||
MemberName 38(lunarStruct1) 0 "i"
|
||||
MemberName 38(lunarStruct1) 1 "f"
|
||||
Name 40 "foo"
|
||||
Name 58 "gl_FragColor"
|
||||
Name 63 "samp2D"
|
||||
Name 67 "coord"
|
||||
Name 73 "constructed"
|
||||
Name 18 "lunarStruct3"
|
||||
MemberName 18(lunarStruct3) 0 "s2_1"
|
||||
MemberName 18(lunarStruct3) 1 "i"
|
||||
MemberName 18(lunarStruct3) 2 "f"
|
||||
MemberName 18(lunarStruct3) 3 "s1_1"
|
||||
Name 20 "foo3"
|
||||
Name 30 "scale"
|
||||
Name 34 "foo2"
|
||||
Name 36 "foo"
|
||||
Name 54 "gl_FragColor"
|
||||
Name 59 "samp2D"
|
||||
Name 63 "coord"
|
||||
Name 69 "constructed"
|
||||
Decorate 10(Count) Flat
|
||||
MemberDecorate 19(lunarStruct3) 0 Flat
|
||||
MemberDecorate 19(lunarStruct3) 1 Flat
|
||||
MemberDecorate 19(lunarStruct3) 2 Flat
|
||||
MemberDecorate 19(lunarStruct3) 3 Flat
|
||||
MemberDecorate 33(lunarStruct2) 0 Flat
|
||||
MemberDecorate 33(lunarStruct2) 1 Flat
|
||||
MemberDecorate 33(lunarStruct2) 2 Flat
|
||||
MemberDecorate 38(lunarStruct1) 0 Flat
|
||||
MemberDecorate 38(lunarStruct1) 1 Flat
|
||||
Decorate 63(samp2D) DescriptorSet 0
|
||||
Decorate 59(samp2D) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
@ -74,99 +52,95 @@ Linked fragment stage:
|
||||
15: TypeInt 32 0
|
||||
16: 15(int) Constant 3
|
||||
17: TypeArray 14(lunarStruct2) 16
|
||||
18(lunarStruct1): TypeStruct 6(int) 12(float)
|
||||
19(lunarStruct3): TypeStruct 17 6(int) 12(float) 18(lunarStruct1)
|
||||
20: TypePointer Input 19(lunarStruct3)
|
||||
21(foo3): 20(ptr) Variable Input
|
||||
22: 6(int) Constant 0
|
||||
23: 6(int) Constant 1
|
||||
26: TypeBool
|
||||
30: TypePointer Function 12(float)
|
||||
32(lunarStruct1): TypeStruct 6(int) 12(float)
|
||||
33(lunarStruct2): TypeStruct 6(int) 12(float) 32(lunarStruct1)
|
||||
34: 15(int) Constant 5
|
||||
35: TypeArray 33(lunarStruct2) 34
|
||||
36: TypePointer Input 35
|
||||
37(foo2): 36(ptr) Variable Input
|
||||
38(lunarStruct1): TypeStruct 6(int) 12(float)
|
||||
39: TypePointer Input 38(lunarStruct1)
|
||||
40(foo): 39(ptr) Variable Input
|
||||
45: 6(int) Constant 2
|
||||
50: TypePointer Input 12(float)
|
||||
56: TypeVector 12(float) 4
|
||||
57: TypePointer Output 56(fvec4)
|
||||
58(gl_FragColor): 57(ptr) Variable Output
|
||||
60: TypeImage 12(float) 2D sampled format:Unknown
|
||||
61: TypeSampledImage 60
|
||||
62: TypePointer UniformConstant 61
|
||||
63(samp2D): 62(ptr) Variable UniformConstant
|
||||
65: TypeVector 12(float) 2
|
||||
66: TypePointer Input 65(fvec2)
|
||||
67(coord): 66(ptr) Variable Input
|
||||
71: TypeArray 65(fvec2) 16
|
||||
72: TypePointer Function 71
|
||||
77: 12(float) Constant 1065353216
|
||||
78: 12(float) Constant 1073741824
|
||||
79: 65(fvec2) ConstantComposite 77 78
|
||||
83: TypePointer Function 65(fvec2)
|
||||
18(lunarStruct3): TypeStruct 17 6(int) 12(float) 13(lunarStruct1)
|
||||
19: TypePointer Input 18(lunarStruct3)
|
||||
20(foo3): 19(ptr) Variable Input
|
||||
21: 6(int) Constant 0
|
||||
22: 6(int) Constant 1
|
||||
25: TypeBool
|
||||
29: TypePointer Function 12(float)
|
||||
31: 15(int) Constant 5
|
||||
32: TypeArray 14(lunarStruct2) 31
|
||||
33: TypePointer Input 32
|
||||
34(foo2): 33(ptr) Variable Input
|
||||
35: TypePointer Input 13(lunarStruct1)
|
||||
36(foo): 35(ptr) Variable Input
|
||||
41: 6(int) Constant 2
|
||||
46: TypePointer Input 12(float)
|
||||
52: TypeVector 12(float) 4
|
||||
53: TypePointer Output 52(fvec4)
|
||||
54(gl_FragColor): 53(ptr) Variable Output
|
||||
56: TypeImage 12(float) 2D sampled format:Unknown
|
||||
57: TypeSampledImage 56
|
||||
58: TypePointer UniformConstant 57
|
||||
59(samp2D): 58(ptr) Variable UniformConstant
|
||||
61: TypeVector 12(float) 2
|
||||
62: TypePointer Input 61(fvec2)
|
||||
63(coord): 62(ptr) Variable Input
|
||||
67: TypeArray 61(fvec2) 16
|
||||
68: TypePointer Function 67
|
||||
73: 12(float) Constant 1065353216
|
||||
74: 12(float) Constant 1073741824
|
||||
75: 61(fvec2) ConstantComposite 73 74
|
||||
79: TypePointer Function 61(fvec2)
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(iLocal): 7(ptr) Variable Function
|
||||
31(scale): 30(ptr) Variable Function
|
||||
73(constructed): 72(ptr) Variable Function
|
||||
30(scale): 29(ptr) Variable Function
|
||||
69(constructed): 68(ptr) Variable Function
|
||||
11: 6(int) Load 10(Count)
|
||||
Store 8(iLocal) 11
|
||||
24: 9(ptr) AccessChain 21(foo3) 22 23 22
|
||||
25: 6(int) Load 24
|
||||
27: 26(bool) SGreaterThan 25 22
|
||||
SelectionMerge 29 None
|
||||
BranchConditional 27 28 53
|
||||
28: Label
|
||||
41: 9(ptr) AccessChain 40(foo) 22
|
||||
42: 6(int) Load 41
|
||||
43: 9(ptr) AccessChain 21(foo3) 22 42 22
|
||||
44: 6(int) Load 43
|
||||
46: 6(int) IAdd 44 45
|
||||
47: 6(int) Load 8(iLocal)
|
||||
48: 6(int) IAdd 47 23
|
||||
Store 8(iLocal) 48
|
||||
49: 6(int) IAdd 46 48
|
||||
51: 50(ptr) AccessChain 37(foo2) 49 45 23
|
||||
52: 12(float) Load 51
|
||||
Store 31(scale) 52
|
||||
Branch 29
|
||||
53: Label
|
||||
54: 50(ptr) AccessChain 21(foo3) 22 22 45 23
|
||||
55: 12(float) Load 54
|
||||
Store 31(scale) 55
|
||||
Branch 29
|
||||
29: Label
|
||||
59: 12(float) Load 31(scale)
|
||||
64: 61 Load 63(samp2D)
|
||||
68: 65(fvec2) Load 67(coord)
|
||||
69: 56(fvec4) ImageSampleImplicitLod 64 68
|
||||
70: 56(fvec4) VectorTimesScalar 69 59
|
||||
Store 58(gl_FragColor) 70
|
||||
74: 65(fvec2) Load 67(coord)
|
||||
75: 12(float) Load 31(scale)
|
||||
76: 65(fvec2) CompositeConstruct 75 75
|
||||
80: 71 CompositeConstruct 74 76 79
|
||||
Store 73(constructed) 80
|
||||
81: 9(ptr) AccessChain 40(foo) 22
|
||||
82: 6(int) Load 81
|
||||
84: 83(ptr) AccessChain 73(constructed) 82
|
||||
85: 65(fvec2) Load 84
|
||||
86: 9(ptr) AccessChain 40(foo) 22
|
||||
87: 6(int) Load 86
|
||||
88: 83(ptr) AccessChain 73(constructed) 87
|
||||
89: 65(fvec2) Load 88
|
||||
90: 12(float) CompositeExtract 85 0
|
||||
91: 12(float) CompositeExtract 85 1
|
||||
92: 12(float) CompositeExtract 89 0
|
||||
93: 12(float) CompositeExtract 89 1
|
||||
94: 56(fvec4) CompositeConstruct 90 91 92 93
|
||||
95: 56(fvec4) Load 58(gl_FragColor)
|
||||
96: 56(fvec4) FAdd 95 94
|
||||
Store 58(gl_FragColor) 96
|
||||
23: 9(ptr) AccessChain 20(foo3) 21 22 21
|
||||
24: 6(int) Load 23
|
||||
26: 25(bool) SGreaterThan 24 21
|
||||
SelectionMerge 28 None
|
||||
BranchConditional 26 27 49
|
||||
27: Label
|
||||
37: 9(ptr) AccessChain 36(foo) 21
|
||||
38: 6(int) Load 37
|
||||
39: 9(ptr) AccessChain 20(foo3) 21 38 21
|
||||
40: 6(int) Load 39
|
||||
42: 6(int) IAdd 40 41
|
||||
43: 6(int) Load 8(iLocal)
|
||||
44: 6(int) IAdd 43 22
|
||||
Store 8(iLocal) 44
|
||||
45: 6(int) IAdd 42 44
|
||||
47: 46(ptr) AccessChain 34(foo2) 45 41 22
|
||||
48: 12(float) Load 47
|
||||
Store 30(scale) 48
|
||||
Branch 28
|
||||
49: Label
|
||||
50: 46(ptr) AccessChain 20(foo3) 21 21 41 22
|
||||
51: 12(float) Load 50
|
||||
Store 30(scale) 51
|
||||
Branch 28
|
||||
28: Label
|
||||
55: 12(float) Load 30(scale)
|
||||
60: 57 Load 59(samp2D)
|
||||
64: 61(fvec2) Load 63(coord)
|
||||
65: 52(fvec4) ImageSampleImplicitLod 60 64
|
||||
66: 52(fvec4) VectorTimesScalar 65 55
|
||||
Store 54(gl_FragColor) 66
|
||||
70: 61(fvec2) Load 63(coord)
|
||||
71: 12(float) Load 30(scale)
|
||||
72: 61(fvec2) CompositeConstruct 71 71
|
||||
76: 67 CompositeConstruct 70 72 75
|
||||
Store 69(constructed) 76
|
||||
77: 9(ptr) AccessChain 36(foo) 21
|
||||
78: 6(int) Load 77
|
||||
80: 79(ptr) AccessChain 69(constructed) 78
|
||||
81: 61(fvec2) Load 80
|
||||
82: 9(ptr) AccessChain 36(foo) 21
|
||||
83: 6(int) Load 82
|
||||
84: 79(ptr) AccessChain 69(constructed) 83
|
||||
85: 61(fvec2) Load 84
|
||||
86: 12(float) CompositeExtract 81 0
|
||||
87: 12(float) CompositeExtract 81 1
|
||||
88: 12(float) CompositeExtract 85 0
|
||||
89: 12(float) CompositeExtract 85 1
|
||||
90: 52(fvec4) CompositeConstruct 86 87 88 89
|
||||
91: 52(fvec4) Load 54(gl_FragColor)
|
||||
92: 52(fvec4) FAdd 91 90
|
||||
Store 54(gl_FragColor) 92
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@ -17,8 +17,8 @@ ERROR: 0:16: 'constant_id' : cannot declare a default, can only be used on a sca
|
||||
ERROR: 0:20: 'subpassLoad' : no matching overloaded function found
|
||||
ERROR: 0:20: 'assign' : cannot convert from 'const float' to 'smooth out 4-component vector of float'
|
||||
ERROR: 0:23: 'atomic counter types' : not allowed when using GLSL for Vulkan
|
||||
ERROR: 0:24: 'shared' : not allowed when using GLSL for Vulkan
|
||||
ERROR: 0:25: 'packed' : not allowed when using GLSL for Vulkan
|
||||
ERROR: 0:24: 'shared' : not allowed when generating SPIR-V
|
||||
ERROR: 0:25: 'packed' : not allowed when generating SPIR-V
|
||||
ERROR: 0:32: 'initializer' : can't use with types containing arrays sized with a specialization constant
|
||||
ERROR: 0:34: '=' : can't use with types containing arrays sized with a specialization constant
|
||||
ERROR: 0:35: '==' : can't use with types containing arrays sized with a specialization constant
|
||||
|
||||
11
Test/hlsl.array.frag
Normal file
11
Test/hlsl.array.frag
Normal file
@ -0,0 +1,11 @@
|
||||
float4 a[4];
|
||||
|
||||
struct {
|
||||
float4 m[7];
|
||||
} s[11];
|
||||
|
||||
float4 PixelShaderFunction(int i, float4 input[3]) : COLOR0
|
||||
{
|
||||
float4 b[10];
|
||||
return a[1] + a[i] + input[2] + input[i] + b[5] + b[i] + s[i].m[i];
|
||||
}
|
||||
13
Test/hlsl.attribute.frag
Normal file
13
Test/hlsl.attribute.frag
Normal file
@ -0,0 +1,13 @@
|
||||
float4 PixelShaderFunction(float4 input) : COLOR0
|
||||
{
|
||||
[unroll];
|
||||
[];
|
||||
[][][];
|
||||
[unroll(4)];
|
||||
[allow_uav_condition];
|
||||
[unroll(4)] [allow_uav_condition];
|
||||
[ loop ];
|
||||
[fastopt];
|
||||
[branch] if (0);
|
||||
[flatten];
|
||||
}
|
||||
4
Test/hlsl.cast.frag
Normal file
4
Test/hlsl.cast.frag
Normal file
@ -0,0 +1,4 @@
|
||||
float4 PixelShaderFunction(float4 input) : COLOR0
|
||||
{
|
||||
return (float4)input + (int4)input + (float4)1.198;
|
||||
}
|
||||
6
Test/hlsl.doLoop.frag
Normal file
6
Test/hlsl.doLoop.frag
Normal file
@ -0,0 +1,6 @@
|
||||
float4 PixelShaderFunction(float4 input) : COLOR0
|
||||
{
|
||||
[unroll] do {} while (false);
|
||||
[unroll] do {;} while (false);
|
||||
do { return input; } while (input == input);
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
float1 f1 = float1(1.0);
|
||||
float scalar = 2.0;
|
||||
|
||||
float1 ShaderFunction(float1 inFloat1, float inScalar) : COLOR0
|
||||
float1 ShaderFunction(float1 inFloat1 : COLOR, float inScalar) : COLOR0
|
||||
{
|
||||
return f1 * scalar + inFloat1 * inScalar;
|
||||
}
|
||||
|
||||
@ -1,5 +1,10 @@
|
||||
float4 AmbientColor = float4(1, 0.5, 0, 1);
|
||||
|
||||
bool ff1 : SV_IsFrontFace;
|
||||
float4 ff2 : packoffset(c0.y);
|
||||
float4 ff3 : packoffset(c0.y) : register(ps_5_0, s[0]) ;
|
||||
float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s[0]) <int bambam=30;> ;
|
||||
|
||||
float4 ShaderFunction(float4 input) : COLOR0
|
||||
{
|
||||
return input * AmbientColor;
|
||||
|
||||
8
Test/hlsl.forLoop.frag
Normal file
8
Test/hlsl.forLoop.frag
Normal file
@ -0,0 +1,8 @@
|
||||
float4 PixelShaderFunction(float4 input) : COLOR0
|
||||
{
|
||||
for (;;) ;
|
||||
for (++input; ; ) ;
|
||||
[unroll] for (; input != input; ) {}
|
||||
for (; input != input; ) { return -input; }
|
||||
for (--input; input != input; input += 2) { return -input; }
|
||||
}
|
||||
28
Test/hlsl.if.frag
Normal file
28
Test/hlsl.if.frag
Normal file
@ -0,0 +1,28 @@
|
||||
float4 PixelShaderFunction(float4 input) : COLOR0
|
||||
{
|
||||
if (input == input)
|
||||
return input;
|
||||
|
||||
if (input == input)
|
||||
return input;
|
||||
else
|
||||
return -input;
|
||||
|
||||
if (input == input)
|
||||
;
|
||||
|
||||
if (input == input)
|
||||
;
|
||||
else
|
||||
;
|
||||
|
||||
[flatten] if (input == input) {
|
||||
return input;
|
||||
}
|
||||
|
||||
if (input == input) {
|
||||
return input;
|
||||
} else {
|
||||
return -input;
|
||||
}
|
||||
}
|
||||
13
Test/hlsl.intrinsics.barriers.comp
Normal file
13
Test/hlsl.intrinsics.barriers.comp
Normal file
@ -0,0 +1,13 @@
|
||||
|
||||
float ComputeShaderFunction()
|
||||
{
|
||||
AllMemoryBarrier();
|
||||
AllMemoryBarrierWithGroupSync();
|
||||
DeviceMemoryBarrier();
|
||||
DeviceMemoryBarrierWithGroupSync();
|
||||
GroupMemoryBarrier();
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
129
Test/hlsl.intrinsics.comp
Normal file
129
Test/hlsl.intrinsics.comp
Normal file
@ -0,0 +1,129 @@
|
||||
|
||||
#define gs // TODO: define as groupshared when available in the grammar
|
||||
gs uint gs_ua;
|
||||
gs uint gs_ub;
|
||||
gs uint gs_uc;
|
||||
gs uint2 gs_ua2;
|
||||
gs uint2 gs_ub2;
|
||||
gs uint2 gs_uc2;
|
||||
gs uint3 gs_ua3;
|
||||
gs uint3 gs_ub3;
|
||||
gs uint3 gs_uc3;
|
||||
gs uint4 gs_ua4;
|
||||
gs uint4 gs_ub4;
|
||||
gs uint4 gs_uc4;
|
||||
|
||||
float ComputeShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint inU1)
|
||||
{
|
||||
uint out_u1;
|
||||
|
||||
// Don't repeat all the pixel/vertex fns - just one for sanity.
|
||||
all(inF0);
|
||||
|
||||
// Test atomics
|
||||
InterlockedAdd(gs_ua, gs_ub);
|
||||
InterlockedAdd(gs_ua, gs_ub, out_u1);
|
||||
InterlockedAnd(gs_ua, gs_ub);
|
||||
InterlockedAnd(gs_ua, gs_ub, out_u1);
|
||||
InterlockedCompareExchange(gs_ua, gs_ub, gs_uc, out_u1);
|
||||
InterlockedExchange(gs_ua, gs_ub, out_u1);
|
||||
InterlockedMax(gs_ua, gs_ub);
|
||||
InterlockedMax(gs_ua, gs_ub, out_u1);
|
||||
InterlockedMin(gs_ua, gs_ub);
|
||||
InterlockedMin(gs_ua, gs_ub, out_u1);
|
||||
InterlockedOr(gs_ua, gs_ub);
|
||||
InterlockedOr(gs_ua, gs_ub, out_u1);
|
||||
InterlockedXor(gs_ua, gs_ub);
|
||||
InterlockedXor(gs_ua, gs_ub, out_u1);
|
||||
|
||||
// CheckAccessFullyMapped(3); // TODO: ...
|
||||
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
float1 ComputeShaderFunction(float1 inF0, float1 inF1, float1 inF2)
|
||||
{
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
float2 ComputeShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1)
|
||||
{
|
||||
uint2 out_u2;
|
||||
|
||||
// Don't repeat all the pixel/vertex fns - just one for sanity.
|
||||
all(inF0);
|
||||
|
||||
// Test atomics
|
||||
InterlockedAdd(gs_ua2, gs_ub2);
|
||||
InterlockedAdd(gs_ua2, gs_ub2, out_u2);
|
||||
InterlockedAnd(gs_ua2, gs_ub2);
|
||||
InterlockedAnd(gs_ua2, gs_ub2, out_u2);
|
||||
InterlockedCompareExchange(gs_ua2, gs_ub2, gs_uc2, out_u2);
|
||||
InterlockedExchange(gs_ua2, gs_ub2, out_u2);
|
||||
InterlockedMax(gs_ua2, gs_ub2);
|
||||
InterlockedMax(gs_ua2, gs_ub2, out_u2);
|
||||
InterlockedMin(gs_ua2, gs_ub2);
|
||||
InterlockedMin(gs_ua2, gs_ub2, out_u2);
|
||||
InterlockedOr(gs_ua2, gs_ub2);
|
||||
InterlockedOr(gs_ua2, gs_ub2, out_u2);
|
||||
InterlockedXor(gs_ua2, gs_ub2);
|
||||
InterlockedXor(gs_ua2, gs_ub2, out_u2);
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float2(1,2);
|
||||
}
|
||||
|
||||
float3 ComputeShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1)
|
||||
{
|
||||
uint3 out_u3;
|
||||
|
||||
// Don't repeat all the pixel/vertex fns - just one for sanity.
|
||||
all(inF0);
|
||||
|
||||
// Test atomics
|
||||
InterlockedAdd(gs_ua3, gs_ub3);
|
||||
InterlockedAdd(gs_ua3, gs_ub3, out_u3);
|
||||
InterlockedAnd(gs_ua3, gs_ub3);
|
||||
InterlockedAnd(gs_ua3, gs_ub3, out_u3);
|
||||
InterlockedCompareExchange(gs_ua3, gs_ub3, gs_uc3, out_u3);
|
||||
InterlockedExchange(gs_ua3, gs_ub3, out_u3);
|
||||
InterlockedMax(gs_ua3, gs_ub3);
|
||||
InterlockedMax(gs_ua3, gs_ub3, out_u3);
|
||||
InterlockedMin(gs_ua3, gs_ub3);
|
||||
InterlockedMin(gs_ua3, gs_ub3, out_u3);
|
||||
InterlockedOr(gs_ua3, gs_ub3);
|
||||
InterlockedOr(gs_ua3, gs_ub3, out_u3);
|
||||
InterlockedXor(gs_ua3, gs_ub3);
|
||||
InterlockedXor(gs_ua3, gs_ub3, out_u3);
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float3(1,2,3);
|
||||
}
|
||||
|
||||
float4 ComputeShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, uint4 inU1)
|
||||
{
|
||||
uint4 out_u4;
|
||||
|
||||
// Don't repeat all the pixel/vertex fns - just one for sanity.
|
||||
all(inF0);
|
||||
|
||||
// Test atomics
|
||||
InterlockedAdd(gs_ua4, gs_ub4);
|
||||
InterlockedAdd(gs_ua4, gs_ub4, out_u4);
|
||||
InterlockedAnd(gs_ua4, gs_ub4);
|
||||
InterlockedAnd(gs_ua4, gs_ub4, out_u4);
|
||||
InterlockedCompareExchange(gs_ua4, gs_ub4, gs_uc4, out_u4);
|
||||
InterlockedExchange(gs_ua4, gs_ub4, out_u4);
|
||||
InterlockedMax(gs_ua4, gs_ub4);
|
||||
InterlockedMax(gs_ua4, gs_ub4, out_u4);
|
||||
InterlockedMin(gs_ua4, gs_ub4);
|
||||
InterlockedMin(gs_ua4, gs_ub4, out_u4);
|
||||
InterlockedOr(gs_ua4, gs_ub4);
|
||||
InterlockedOr(gs_ua4, gs_ub4, out_u4);
|
||||
InterlockedXor(gs_ua4, gs_ub4);
|
||||
InterlockedXor(gs_ua4, gs_ub4, out_u4);
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float4(1,2,3,4);
|
||||
}
|
||||
10
Test/hlsl.intrinsics.evalfns.frag
Normal file
10
Test/hlsl.intrinsics.evalfns.frag
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
void main(float inF1, float2 inF2, float3 inF3, float4 inF4, int2 inI2) : COLOR
|
||||
{
|
||||
EvaluateAttributeSnapped(inF1, int2(8,15));
|
||||
EvaluateAttributeSnapped(inF2, int2(0,1));
|
||||
EvaluateAttributeSnapped(inF3, int2(3,10));
|
||||
EvaluateAttributeSnapped(inF4, int2(7,8));
|
||||
|
||||
EvaluateAttributeSnapped(inF1, inI2);
|
||||
}
|
||||
34
Test/hlsl.intrinsics.f1632.frag
Normal file
34
Test/hlsl.intrinsics.f1632.frag
Normal file
@ -0,0 +1,34 @@
|
||||
float PixelShaderFunction(float inF0)
|
||||
{
|
||||
f32tof16(inF0);
|
||||
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
float1 PixelShaderFunction(float1 inF0)
|
||||
{
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
float2 PixelShaderFunction(float2 inF0)
|
||||
{
|
||||
f32tof16(inF0);
|
||||
|
||||
return float2(1,2);
|
||||
}
|
||||
|
||||
float3 PixelShaderFunction(float3 inF0)
|
||||
{
|
||||
f32tof16(inF0);
|
||||
|
||||
return float3(1,2,3);
|
||||
}
|
||||
|
||||
float4 PixelShaderFunction(float4 inF0)
|
||||
{
|
||||
f32tof16(inF0);
|
||||
|
||||
return float4(1,2,3,4);
|
||||
}
|
||||
|
||||
451
Test/hlsl.intrinsics.frag
Normal file
451
Test/hlsl.intrinsics.frag
Normal file
@ -0,0 +1,451 @@
|
||||
|
||||
#define gs // TODO: define as groupshared when available in the grammar
|
||||
gs uint gs_ua;
|
||||
gs uint gs_ub;
|
||||
gs uint gs_uc;
|
||||
gs uint2 gs_ua2;
|
||||
gs uint2 gs_ub2;
|
||||
gs uint2 gs_uc2;
|
||||
gs uint3 gs_ua3;
|
||||
gs uint3 gs_ub3;
|
||||
gs uint3 gs_uc3;
|
||||
gs uint4 gs_ua4;
|
||||
gs uint4 gs_ub4;
|
||||
gs uint4 gs_uc4;
|
||||
|
||||
float PixelShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint inU1)
|
||||
{
|
||||
uint out_u1;
|
||||
|
||||
all(inF0);
|
||||
abs(inF0);
|
||||
acos(inF0);
|
||||
any(inF0);
|
||||
asin(inF0);
|
||||
asint(inF0);
|
||||
asuint(inF0);
|
||||
asfloat(inU0);
|
||||
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
||||
atan(inF0);
|
||||
atan2(inF0, inF1);
|
||||
ceil(inF0);
|
||||
clamp(inF0, inF1, inF2);
|
||||
clip(inF0);
|
||||
cos(inF0);
|
||||
cosh(inF0);
|
||||
countbits(7);
|
||||
ddx(inF0);
|
||||
ddx_coarse(inF0);
|
||||
ddx_fine(inF0);
|
||||
ddy(inF0);
|
||||
ddy_coarse(inF0);
|
||||
ddy_fine(inF0);
|
||||
degrees(inF0);
|
||||
// EvaluateAttributeAtCentroid(inF0);
|
||||
// EvaluateAttributeAtSample(inF0, 0);
|
||||
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
||||
exp(inF0);
|
||||
exp2(inF0);
|
||||
firstbithigh(7);
|
||||
firstbitlow(7);
|
||||
floor(inF0);
|
||||
// TODO: fma(inD0, inD1, inD2);
|
||||
fmod(inF0, inF1);
|
||||
frac(inF0);
|
||||
frexp(inF0, inF1);
|
||||
fwidth(inF0);
|
||||
isinf(inF0);
|
||||
isnan(inF0);
|
||||
ldexp(inF0, inF1);
|
||||
log(inF0);
|
||||
log10(inF0);
|
||||
log2(inF0);
|
||||
max(inF0, inF1);
|
||||
min(inF0, inF1);
|
||||
pow(inF0, inF1);
|
||||
radians(inF0);
|
||||
rcp(inF0);
|
||||
reversebits(2);
|
||||
round(inF0);
|
||||
rsqrt(inF0);
|
||||
saturate(inF0);
|
||||
sign(inF0);
|
||||
sin(inF0);
|
||||
sincos(inF0, inF1, inF2);
|
||||
sinh(inF0);
|
||||
smoothstep(inF0, inF1, inF2);
|
||||
sqrt(inF0);
|
||||
step(inF0, inF1);
|
||||
tan(inF0);
|
||||
tanh(inF0);
|
||||
// TODO: sampler intrinsics, when we can declare the types.
|
||||
trunc(inF0);
|
||||
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
float1 PixelShaderFunction(float1 inF0, float1 inF1, float1 inF2)
|
||||
{
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
float2 PixelShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1)
|
||||
{
|
||||
uint2 out_u2;
|
||||
|
||||
all(inF0);
|
||||
abs(inF0);
|
||||
acos(inF0);
|
||||
any(inF0);
|
||||
asin(inF0);
|
||||
asint(inF0);
|
||||
asuint(inF0);
|
||||
asfloat(inU0);
|
||||
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
||||
atan(inF0);
|
||||
atan2(inF0, inF1);
|
||||
ceil(inF0);
|
||||
clamp(inF0, inF1, inF2);
|
||||
clip(inF0);
|
||||
cos(inF0);
|
||||
cosh(inF0);
|
||||
countbits(int2(7,3));
|
||||
ddx(inF0);
|
||||
ddx_coarse(inF0);
|
||||
ddx_fine(inF0);
|
||||
ddy(inF0);
|
||||
ddy_coarse(inF0);
|
||||
ddy_fine(inF0);
|
||||
degrees(inF0);
|
||||
distance(inF0, inF1);
|
||||
dot(inF0, inF1);
|
||||
// EvaluateAttributeAtCentroid(inF0);
|
||||
// EvaluateAttributeAtSample(inF0, 0);
|
||||
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
||||
exp(inF0);
|
||||
exp2(inF0);
|
||||
faceforward(inF0, inF1, inF2);
|
||||
firstbithigh(7);
|
||||
firstbitlow(7);
|
||||
floor(inF0);
|
||||
// TODO: fma(inD0, inD1, inD2);
|
||||
fmod(inF0, inF1);
|
||||
frac(inF0);
|
||||
frexp(inF0, inF1);
|
||||
fwidth(inF0);
|
||||
isinf(inF0);
|
||||
isnan(inF0);
|
||||
ldexp(inF0, inF1);
|
||||
length(inF0);
|
||||
log(inF0);
|
||||
log10(inF0);
|
||||
log2(inF0);
|
||||
max(inF0, inF1);
|
||||
min(inF0, inF1);
|
||||
normalize(inF0);
|
||||
pow(inF0, inF1);
|
||||
radians(inF0);
|
||||
rcp(inF0);
|
||||
reflect(inF0, inF1);
|
||||
refract(inF0, inF1, 2.0);
|
||||
reversebits(int2(1,2));
|
||||
round(inF0);
|
||||
rsqrt(inF0);
|
||||
saturate(inF0);
|
||||
sign(inF0);
|
||||
sin(inF0);
|
||||
sincos(inF0, inF1, inF2);
|
||||
sinh(inF0);
|
||||
smoothstep(inF0, inF1, inF2);
|
||||
sqrt(inF0);
|
||||
step(inF0, inF1);
|
||||
tan(inF0);
|
||||
tanh(inF0);
|
||||
// TODO: sampler intrinsics, when we can declare the types.
|
||||
trunc(inF0);
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float2(1,2);
|
||||
}
|
||||
|
||||
float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1)
|
||||
{
|
||||
uint3 out_u3;
|
||||
|
||||
all(inF0);
|
||||
abs(inF0);
|
||||
acos(inF0);
|
||||
any(inF0);
|
||||
asin(inF0);
|
||||
asint(inF0);
|
||||
asuint(inF0);
|
||||
asfloat(inU0);
|
||||
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
||||
atan(inF0);
|
||||
atan2(inF0, inF1);
|
||||
ceil(inF0);
|
||||
clamp(inF0, inF1, inF2);
|
||||
clip(inF0);
|
||||
cos(inF0);
|
||||
cosh(inF0);
|
||||
countbits(int3(7,3,5));
|
||||
cross(inF0, inF1);
|
||||
ddx(inF0);
|
||||
ddx_coarse(inF0);
|
||||
ddx_fine(inF0);
|
||||
ddy(inF0);
|
||||
ddy_coarse(inF0);
|
||||
ddy_fine(inF0);
|
||||
degrees(inF0);
|
||||
distance(inF0, inF1);
|
||||
dot(inF0, inF1);
|
||||
// EvaluateAttributeAtCentroid(inF0);
|
||||
// EvaluateAttributeAtSample(inF0, 0);
|
||||
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
||||
exp(inF0);
|
||||
exp2(inF0);
|
||||
faceforward(inF0, inF1, inF2);
|
||||
firstbithigh(7);
|
||||
firstbitlow(7);
|
||||
floor(inF0);
|
||||
// TODO: fma(inD0, inD1, inD2);
|
||||
fmod(inF0, inF1);
|
||||
frac(inF0);
|
||||
frexp(inF0, inF1);
|
||||
fwidth(inF0);
|
||||
isinf(inF0);
|
||||
isnan(inF0);
|
||||
ldexp(inF0, inF1);
|
||||
length(inF0);
|
||||
log(inF0);
|
||||
log10(inF0);
|
||||
log2(inF0);
|
||||
max(inF0, inF1);
|
||||
min(inF0, inF1);
|
||||
normalize(inF0);
|
||||
pow(inF0, inF1);
|
||||
radians(inF0);
|
||||
rcp(inF0);
|
||||
reflect(inF0, inF1);
|
||||
refract(inF0, inF1, 2.0);
|
||||
reversebits(int3(1,2,3));
|
||||
round(inF0);
|
||||
rsqrt(inF0);
|
||||
saturate(inF0);
|
||||
sign(inF0);
|
||||
sin(inF0);
|
||||
sincos(inF0, inF1, inF2);
|
||||
sinh(inF0);
|
||||
smoothstep(inF0, inF1, inF2);
|
||||
sqrt(inF0);
|
||||
step(inF0, inF1);
|
||||
tan(inF0);
|
||||
tanh(inF0);
|
||||
// TODO: sampler intrinsics, when we can declare the types.
|
||||
trunc(inF0);
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float3(1,2,3);
|
||||
}
|
||||
|
||||
float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, uint4 inU1)
|
||||
{
|
||||
uint4 out_u4;
|
||||
|
||||
all(inF0);
|
||||
abs(inF0);
|
||||
acos(inF0);
|
||||
any(inF0);
|
||||
asin(inF0);
|
||||
asint(inF0);
|
||||
asuint(inF0);
|
||||
asfloat(inU0);
|
||||
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
||||
atan(inF0);
|
||||
atan2(inF0, inF1);
|
||||
ceil(inF0);
|
||||
clamp(inF0, inF1, inF2);
|
||||
clip(inF0);
|
||||
cos(inF0);
|
||||
cosh(inF0);
|
||||
countbits(int4(7,3,5,2));
|
||||
ddx(inF0);
|
||||
ddx_coarse(inF0);
|
||||
ddx_fine(inF0);
|
||||
ddy(inF0);
|
||||
ddy_coarse(inF0);
|
||||
ddy_fine(inF0);
|
||||
degrees(inF0);
|
||||
distance(inF0, inF1);
|
||||
dot(inF0, inF1);
|
||||
dst(inF0, inF1);
|
||||
// EvaluateAttributeAtCentroid(inF0);
|
||||
// EvaluateAttributeAtSample(inF0, 0);
|
||||
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
||||
exp(inF0);
|
||||
exp2(inF0);
|
||||
faceforward(inF0, inF1, inF2);
|
||||
firstbithigh(7);
|
||||
firstbitlow(7);
|
||||
floor(inF0);
|
||||
// TODO: fma(inD0, inD1, inD2);
|
||||
fmod(inF0, inF1);
|
||||
frac(inF0);
|
||||
frexp(inF0, inF1);
|
||||
fwidth(inF0);
|
||||
isinf(inF0);
|
||||
isnan(inF0);
|
||||
ldexp(inF0, inF1);
|
||||
length(inF0);
|
||||
log(inF0);
|
||||
log10(inF0);
|
||||
log2(inF0);
|
||||
max(inF0, inF1);
|
||||
min(inF0, inF1);
|
||||
normalize(inF0);
|
||||
pow(inF0, inF1);
|
||||
radians(inF0);
|
||||
rcp(inF0);
|
||||
reflect(inF0, inF1);
|
||||
refract(inF0, inF1, 2.0);
|
||||
reversebits(int4(1,2,3,4));
|
||||
round(inF0);
|
||||
rsqrt(inF0);
|
||||
saturate(inF0);
|
||||
sign(inF0);
|
||||
sin(inF0);
|
||||
sincos(inF0, inF1, inF2);
|
||||
sinh(inF0);
|
||||
smoothstep(inF0, inF1, inF2);
|
||||
sqrt(inF0);
|
||||
step(inF0, inF1);
|
||||
tan(inF0);
|
||||
tanh(inF0);
|
||||
// TODO: sampler intrinsics, when we can declare the types.
|
||||
trunc(inF0);
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float4(1,2,3,4);
|
||||
}
|
||||
|
||||
// TODO: for mats:
|
||||
// asfloat(inU0); \
|
||||
// asint(inF0); \
|
||||
// asuint(inF0); \
|
||||
|
||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||
#define MATFNS() \
|
||||
all(inF0); \
|
||||
abs(inF0); \
|
||||
acos(inF0); \
|
||||
any(inF0); \
|
||||
asin(inF0); \
|
||||
atan(inF0); \
|
||||
atan2(inF0, inF1); \
|
||||
ceil(inF0); \
|
||||
clip(inF0); \
|
||||
clamp(inF0, inF1, inF2); \
|
||||
cos(inF0); \
|
||||
cosh(inF0); \
|
||||
ddx(inF0); \
|
||||
ddx_coarse(inF0); \
|
||||
ddx_fine(inF0); \
|
||||
ddy(inF0); \
|
||||
ddy_coarse(inF0); \
|
||||
ddy_fine(inF0); \
|
||||
degrees(inF0); \
|
||||
determinant(inF0); \
|
||||
exp(inF0); \
|
||||
exp2(inF0); \
|
||||
firstbithigh(7); \
|
||||
firstbitlow(7); \
|
||||
floor(inF0); \
|
||||
fmod(inF0, inF1); \
|
||||
frac(inF0); \
|
||||
frexp(inF0, inF1); \
|
||||
fwidth(inF0); \
|
||||
ldexp(inF0, inF1); \
|
||||
log(inF0); \
|
||||
log10(inF0); \
|
||||
log2(inF0); \
|
||||
max(inF0, inF1); \
|
||||
min(inF0, inF1); \
|
||||
pow(inF0, inF1); \
|
||||
radians(inF0); \
|
||||
round(inF0); \
|
||||
rsqrt(inF0); \
|
||||
saturate(inF0); \
|
||||
sign(inF0); \
|
||||
sin(inF0); \
|
||||
sincos(inF0, inF1, inF2); \
|
||||
sinh(inF0); \
|
||||
smoothstep(inF0, inF1, inF2); \
|
||||
sqrt(inF0); \
|
||||
step(inF0, inF1); \
|
||||
tan(inF0); \
|
||||
tanh(inF0); \
|
||||
transpose(inF0); \
|
||||
trunc(inF0);
|
||||
|
||||
// TODO: turn on non-square matrix tests when protos are available.
|
||||
|
||||
float2x2 PixelShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
|
||||
{
|
||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||
MATFNS()
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float2x2(2,2,2,2);
|
||||
}
|
||||
|
||||
float3x3 PixelShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
|
||||
{
|
||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||
MATFNS()
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float3x3(3,3,3,3,3,3,3,3,3);
|
||||
}
|
||||
|
||||
float4x4 PixelShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
|
||||
{
|
||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||
MATFNS()
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
|
||||
}
|
||||
|
||||
#define TESTGENMUL(ST, VT, MT) \
|
||||
ST r0 = mul(inF0, inF1); \
|
||||
VT r1 = mul(inFV0, inF0); \
|
||||
VT r2 = mul(inF0, inFV0); \
|
||||
ST r3 = mul(inFV0, inFV1); \
|
||||
VT r4 = mul(inFM0, inFV0); \
|
||||
VT r5 = mul(inFV0, inFM0); \
|
||||
MT r6 = mul(inFM0, inF0); \
|
||||
MT r7 = mul(inF0, inFM0); \
|
||||
MT r8 = mul(inFM0, inFM1);
|
||||
|
||||
|
||||
void TestGenMul(float inF0, float inF1,
|
||||
float2 inFV0, float2 inFV1,
|
||||
float2x2 inFM0, float2x2 inFM1)
|
||||
{
|
||||
TESTGENMUL(float, float2, float2x2);
|
||||
}
|
||||
|
||||
void TestGenMul(float inF0, float inF1,
|
||||
float3 inFV0, float3 inFV1,
|
||||
float3x3 inFM0, float3x3 inFM1)
|
||||
{
|
||||
TESTGENMUL(float, float3, float3x3);
|
||||
}
|
||||
|
||||
void TestGenMul(float inF0, float inF1,
|
||||
float4 inFV0, float4 inFV1,
|
||||
float4x4 inFM0, float4x4 inFM1)
|
||||
{
|
||||
TESTGENMUL(float, float4, float4x4);
|
||||
}
|
||||
4
Test/hlsl.intrinsics.lit.frag
Normal file
4
Test/hlsl.intrinsics.lit.frag
Normal file
@ -0,0 +1,4 @@
|
||||
void PixelShaderFunction(float n_dot_l, float n_dot_h, float m)
|
||||
{
|
||||
float4 r0 = lit(n_dot_l, n_dot_h, m);
|
||||
}
|
||||
201
Test/hlsl.intrinsics.negative.comp
Normal file
201
Test/hlsl.intrinsics.negative.comp
Normal file
@ -0,0 +1,201 @@
|
||||
float ComputeShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
||||
{
|
||||
uint out_u1;
|
||||
|
||||
// AllMemoryBarrier(); // invalid in fragment stage TODO: parser currently crashes on empty arg list
|
||||
// AllMemoryBarrierWithGroupSync(); // invalid in fragment stage TODO: parser currently crashes on empty arg list
|
||||
asdouble(inF0, inF1); // expected error: only integer inputs
|
||||
CheckAccessFullyMapped(3.0); // expected error: only valid on integers
|
||||
clip(inF0); // expected error: only valid in pixel stage
|
||||
countbits(inF0); // expected error: only integer inputs
|
||||
cross(inF0, inF1); // expected error: only on float3 inputs
|
||||
D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
|
||||
ddx(inF0); // expected error: only valid in pixel stage
|
||||
ddx_coarse(inF0); // expected error: only valid in pixel stage
|
||||
ddx_fine(inF0); // expected error: only valid in pixel stage
|
||||
ddy(inF0); // expected error: only valid in pixel stage
|
||||
ddy_coarse(inF0); // expected error: only valid in pixel stage
|
||||
ddy_fine(inF0); // expected error: only valid in pixel stage
|
||||
determinant(inF0); // expected error: only valid on mats
|
||||
EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage
|
||||
EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage
|
||||
EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
fwidth(inF0); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua, gs_ub); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
||||
InterlockedAnd(gs_ua, gs_ub); // expected error: only valid in pixel stage
|
||||
InterlockedAnd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
||||
InterlockedCompareExchange(gs_ua, gs_ub, gs_uc, out_u1); // expected error: only valid in pixel stage
|
||||
InterlockedExchange(gs_ua, gs_ub, out_u1);// expected error: only valid in pixel stage
|
||||
InterlockedMax(gs_ua, gs_ub); // expected error: only valid in pixel stage
|
||||
InterlockedMax(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
||||
InterlockedMin(gs_ua, gs_ub); // expected error: only valid in pixel stage
|
||||
InterlockedMin(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
||||
InterlockedOr(gs_ua, gs_ub); // expected error: only valid in pixel stage
|
||||
InterlockedOr(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
||||
InterlockedXor(gs_ua, gs_ub); // expected error: only valid in pixel stage
|
||||
InterlockedXor(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
||||
length(inF0); // expect error: invalid on scalars
|
||||
msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs
|
||||
normalize(inF0); // expect error: invalid on scalars
|
||||
reflect(inF0, inF1); // expect error: invalid on scalars
|
||||
refract(inF0, inF1, inF2); // expect error: invalid on scalars
|
||||
refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar
|
||||
reversebits(inF0); // expected error: only integer inputs
|
||||
transpose(inF0); // expect error: only valid on mats
|
||||
|
||||
// TODO: texture intrinsics, when we can declare samplers.
|
||||
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
float1 ComputeShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0)
|
||||
{
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
|
||||
GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs
|
||||
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
float2 ComputeShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
|
||||
{
|
||||
uint2 out_u2;
|
||||
|
||||
asdouble(inF0, inF1); // expected error: only integer inputs
|
||||
CheckAccessFullyMapped(inF0); // expect error: only valid on scalars
|
||||
countbits(inF0); // expected error: only integer inputs
|
||||
cross(inF0, inF1); // expected error: only on float3 inputs
|
||||
D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
|
||||
ddx(inF0); // only valid in pixel stage
|
||||
ddx_coarse(inF0); // only valid in pixel stage
|
||||
ddx_fine(inF0); // only valid in pixel stage
|
||||
ddy(inF0); // only valid in pixel stage
|
||||
ddy_coarse(inF0); // only valid in pixel stage
|
||||
ddy_fine(inF0); // only valid in pixel stage
|
||||
determinant(inF0); // expect error: only valid on mats
|
||||
EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage
|
||||
EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage
|
||||
EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
fwidth(inF0); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
||||
InterlockedAnd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
|
||||
InterlockedAnd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
||||
InterlockedCompareExchange(gs_ua2, gs_ub2, gs_uc2, out_u2); // expected error: only valid in pixel stage
|
||||
InterlockedExchange(gs_ua2, gs_ub2, out_u2);// expected error: only valid in pixel stage
|
||||
InterlockedMax(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
|
||||
InterlockedMax(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
||||
InterlockedMin(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
|
||||
InterlockedMin(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
||||
InterlockedOr(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
|
||||
InterlockedOr(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
||||
InterlockedXor(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
|
||||
InterlockedXor(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
||||
noise(inF0); // expected error: only valid in pixel stage
|
||||
reversebits(inF0); // expected error: only integer inputs
|
||||
transpose(inF0); // expect error: only valid on mats
|
||||
|
||||
// TODO: texture intrinsics, when we can declare samplers.
|
||||
|
||||
return float2(1,2);
|
||||
}
|
||||
|
||||
float3 ComputeShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0)
|
||||
{
|
||||
uint3 out_u3;
|
||||
|
||||
CheckAccessFullyMapped(inF0); // expect error: only valid on scalars
|
||||
countbits(inF0); // expected error: only integer inputs
|
||||
ddx(inF0); // only valid in pixel stage
|
||||
ddx_coarse(inF0); // only valid in pixel stage
|
||||
ddx_fine(inF0); // only valid in pixel stage
|
||||
ddy(inF0); // only valid in pixel stage
|
||||
ddy_coarse(inF0); // only valid in pixel stage
|
||||
ddy_fine(inF0); // only valid in pixel stage
|
||||
D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
|
||||
determinant(inF0); // expect error: only valid on mats
|
||||
EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage
|
||||
EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage
|
||||
EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
fwidth(inF0); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
||||
InterlockedAnd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
|
||||
InterlockedAnd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
||||
InterlockedCompareExchange(gs_ua3, gs_ub3, gs_uc3, out_u3); // expected error: only valid in pixel stage
|
||||
InterlockedExchange(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
||||
InterlockedMax(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
|
||||
InterlockedMax(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
||||
InterlockedMin(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
|
||||
InterlockedMin(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
||||
InterlockedOr(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
|
||||
InterlockedOr(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
||||
InterlockedXor(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
|
||||
InterlockedXor(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
||||
noise(inF0); // expected error: only valid in pixel stage
|
||||
reversebits(inF0); // expected error: only integer inputs
|
||||
transpose(inF0); // expect error: only valid on mats
|
||||
|
||||
// TODO: texture intrinsics, when we can declare samplers.
|
||||
|
||||
return float3(1,2,3);
|
||||
}
|
||||
|
||||
float4 ComputeShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0)
|
||||
{
|
||||
uint4 out_u4;
|
||||
|
||||
CheckAccessFullyMapped(inF0); // expect error: only valid on scalars
|
||||
countbits(inF0); // expected error: only integer inputs
|
||||
cross(inF0, inF1); // expected error: only on float3 inputs
|
||||
determinant(inF0); // expect error: only valid on mats
|
||||
ddx(inF0); // only valid in pixel stage
|
||||
ddx_coarse(inF0); // only valid in pixel stage
|
||||
ddx_fine(inF0); // only valid in pixel stage
|
||||
ddy(inF0); // only valid in pixel stage
|
||||
ddy_coarse(inF0); // only valid in pixel stage
|
||||
ddy_fine(inF0); // only valid in pixel stage
|
||||
EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage
|
||||
EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage
|
||||
EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
fwidth(inF0); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
||||
InterlockedAnd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
|
||||
InterlockedAnd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
||||
InterlockedCompareExchange(gs_ua4, gs_ub4, gs_uc4, out_u4); // expected error: only valid in pixel stage
|
||||
InterlockedExchange(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
||||
InterlockedMax(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
|
||||
InterlockedMax(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
||||
InterlockedMin(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
|
||||
InterlockedMin(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
||||
InterlockedOr(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
|
||||
InterlockedOr(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
||||
InterlockedXor(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
|
||||
InterlockedXor(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
||||
noise(inF0); // expected error: only valid in pixel stage
|
||||
reversebits(inF0); // expected error: only integer inputs
|
||||
transpose(inF0); // expect error: only valid on mats
|
||||
|
||||
// TODO: texture intrinsics, when we can declare samplers.
|
||||
|
||||
return float4(1,2,3,4);
|
||||
}
|
||||
|
||||
137
Test/hlsl.intrinsics.negative.frag
Normal file
137
Test/hlsl.intrinsics.negative.frag
Normal file
@ -0,0 +1,137 @@
|
||||
float PixelShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
||||
{
|
||||
// AllMemoryBarrier(); // TODO: expected error: invalid in fragment stage
|
||||
// AllMemoryBarrierWithGroupSync(); // TODO: expected error: invalid in fragment stage
|
||||
asdouble(inF0, inF1); // expected error: only integer inputs
|
||||
CheckAccessFullyMapped(3.0); // expected error: only valid on integers
|
||||
countbits(inF0); // expected error: only integer inputs
|
||||
cross(inF0, inF1); // expected error: only on float3 inputs
|
||||
D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
|
||||
determinant(inF0); // expected error: only valid on mats
|
||||
// DeviceMemoryBarrierWithGroupSync(); // TODO: expected error: only valid in compute stage
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
// InterlockedAdd(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator
|
||||
// InterlockedAnd(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out i // InterlockedMax(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator
|
||||
// InterlockedMin(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator
|
||||
// InterlockedOor(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator
|
||||
// InterlockedXor(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator
|
||||
// GroupMemoryBarrier(); // TODO: expected error: invalid in fragment stage
|
||||
// GroupMemoryBarrierWithGroupSync(); // TODO: expected error: invalid in fragment stage
|
||||
length(inF0); // expected error: invalid on scalars
|
||||
msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs
|
||||
normalize(inF0); // expected error: invalid on scalars
|
||||
reflect(inF0, inF1); // expected error: invalid on scalars
|
||||
refract(inF0, inF1, inF2); // expected error: invalid on scalars
|
||||
refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar
|
||||
reversebits(inF0); // expected error: only integer inputs
|
||||
transpose(inF0); // expected error: only valid on mats
|
||||
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
float1 PixelShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0)
|
||||
{
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
|
||||
GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs
|
||||
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
float2 PixelShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
|
||||
{
|
||||
asdouble(inF0, inF1); // expected error: only integer inputs
|
||||
CheckAccessFullyMapped(inF0); // expected error: only valid on scalars
|
||||
countbits(inF0); // expected error: only integer inputs
|
||||
cross(inF0, inF1); // expected error: only on float3 inputs
|
||||
D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
|
||||
determinant(inF0); // expected error: only valid on mats
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
reversebits(inF0); // expected error: only integer inputs
|
||||
transpose(inF0); // expected error: only valid on mats
|
||||
|
||||
return float2(1,2);
|
||||
}
|
||||
|
||||
float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0)
|
||||
{
|
||||
CheckAccessFullyMapped(inF0); // expected error: only valid on scalars
|
||||
countbits(inF0); // expected error: only integer inputs
|
||||
D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
|
||||
determinant(inF0); // expected error: only valid on mats
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
reversebits(inF0); // expected error: only integer inputs
|
||||
transpose(inF0); // expected error: only valid on mats
|
||||
|
||||
|
||||
return float3(1,2,3);
|
||||
}
|
||||
|
||||
float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0)
|
||||
{
|
||||
CheckAccessFullyMapped(inF0); // expected error: only valid on scalars
|
||||
countbits(inF0); // expected error: only integer inputs
|
||||
cross(inF0, inF1); // expected error: only on float3 inputs
|
||||
determinant(inF0); // expected error: only valid on mats
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
reversebits(inF0); // expected error: only integer inputs
|
||||
transpose(inF0); // expected error: only valid on mats
|
||||
|
||||
return float4(1,2,3,4);
|
||||
}
|
||||
|
||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||
#define MATFNS() \
|
||||
countbits(inF0); \
|
||||
D3DCOLORtoUBYTE4(inF0); \
|
||||
cross(inF0, inF1); \
|
||||
f16tof32(inF0); \
|
||||
firstbithigh(inF0); \
|
||||
firstbitlow(inF0); \
|
||||
fma(inF0, inF1, inF2); \
|
||||
reversebits(inF0); \
|
||||
length(inF0); \
|
||||
noise(inF0); \
|
||||
normalize(inF0); \
|
||||
reflect(inF0, inF1); \
|
||||
refract(inF0, inF1, 1.0); \
|
||||
reversebits(inF0); \
|
||||
|
||||
|
||||
// TODO: turn on non-square matrix tests when protos are available.
|
||||
|
||||
float2x2 PixelShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
|
||||
{
|
||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||
MATFNS()
|
||||
|
||||
return float2x2(2,2,2,2);
|
||||
}
|
||||
|
||||
float3x3 PixelShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
|
||||
{
|
||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||
MATFNS()
|
||||
|
||||
return float3x3(3,3,3,3,3,3,3,3,3);
|
||||
}
|
||||
|
||||
float4x4 PixelShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
|
||||
{
|
||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||
MATFNS()
|
||||
|
||||
return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
|
||||
}
|
||||
273
Test/hlsl.intrinsics.negative.vert
Normal file
273
Test/hlsl.intrinsics.negative.vert
Normal file
@ -0,0 +1,273 @@
|
||||
uint gs_ua;
|
||||
uint gs_ub;
|
||||
uint gs_uc;
|
||||
uint2 gs_ua2;
|
||||
uint2 gs_ub2;
|
||||
uint2 gs_uc2;
|
||||
uint3 gs_ua3;
|
||||
uint3 gs_ub3;
|
||||
uint3 gs_uc3;
|
||||
uint4 gs_ua4;
|
||||
uint4 gs_ub4;
|
||||
uint4 gs_uc4;
|
||||
|
||||
float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
||||
{
|
||||
uint out_u1;
|
||||
|
||||
AllMemoryBarrier(); // expected error: only valid in compute stage
|
||||
AllMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage
|
||||
asdouble(inF0, inF1); // expected error: only integer inputs
|
||||
CheckAccessFullyMapped(3.0); // expected error: only valid on integers
|
||||
CheckAccessFullyMapped(3); // expected error: only valid in pixel & compute stages
|
||||
clip(inF0); // expected error: only valid in pixel stage
|
||||
countbits(inF0); // expected error: only integer inputs
|
||||
cross(inF0, inF1); // expected error: only on float3 inputs
|
||||
D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
|
||||
DeviceMemoryBarrier(); // expected error: only valid in pixel & compute stages
|
||||
DeviceMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage
|
||||
ddx(inF0); // expected error: only valid in pixel stage
|
||||
ddx_coarse(inF0); // expected error: only valid in pixel stage
|
||||
ddx_fine(inF0); // expected error: only valid in pixel stage
|
||||
ddy(inF0); // expected error: only valid in pixel stage
|
||||
ddy_coarse(inF0); // expected error: only valid in pixel stage
|
||||
ddy_fine(inF0); // expected error: only valid in pixel stage
|
||||
determinant(inF0); // expected error: only valid on mats
|
||||
EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage
|
||||
EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage
|
||||
EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
fwidth(inF0); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua, gs_ub); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
||||
InterlockedAnd(gs_ua, gs_ub); // expected error: only valid in pixel stage
|
||||
InterlockedAnd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
||||
InterlockedCompareExchange(gs_ua, gs_ub, gs_uc, out_u1); // expected error: only valid in pixel stage
|
||||
InterlockedExchange(gs_ua, gs_ub, out_u1);// expected error: only valid in pixel stage
|
||||
InterlockedMax(gs_ua, gs_ub); // expected error: only valid in pixel stage
|
||||
InterlockedMax(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
||||
InterlockedMin(gs_ua, gs_ub); // expected error: only valid in pixel stage
|
||||
InterlockedMin(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
||||
InterlockedOr(gs_ua, gs_ub); // expected error: only valid in pixel stage
|
||||
InterlockedOr(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
||||
InterlockedXor(gs_ua, gs_ub); // expected error: only valid in pixel stage
|
||||
InterlockedXor(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
||||
GroupMemoryBarrier(); // expected error: only valid in compute stage
|
||||
GroupMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage
|
||||
length(inF0); // expect error: invalid on scalars
|
||||
msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs
|
||||
normalize(inF0); // expect error: invalid on scalars
|
||||
reflect(inF0, inF1); // expect error: invalid on scalars
|
||||
refract(inF0, inF1, inF2); // expect error: invalid on scalars
|
||||
refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar
|
||||
reversebits(inF0); // expected error: only integer inputs
|
||||
transpose(inF0); // expect error: only valid on mats
|
||||
|
||||
// TODO: texture intrinsics, when we can declare samplers.
|
||||
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
float1 VertexShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0)
|
||||
{
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
|
||||
GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs
|
||||
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
|
||||
{
|
||||
uint2 out_u2;
|
||||
|
||||
asdouble(inF0, inF1); // expected error: only integer inputs
|
||||
CheckAccessFullyMapped(inF0); // expect error: only valid on scalars
|
||||
countbits(inF0); // expected error: only integer inputs
|
||||
cross(inF0, inF1); // expected error: only on float3 inputs
|
||||
D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
|
||||
ddx(inF0); // only valid in pixel stage
|
||||
ddx_coarse(inF0); // only valid in pixel stage
|
||||
ddx_fine(inF0); // only valid in pixel stage
|
||||
ddy(inF0); // only valid in pixel stage
|
||||
ddy_coarse(inF0); // only valid in pixel stage
|
||||
ddy_fine(inF0); // only valid in pixel stage
|
||||
determinant(inF0); // expect error: only valid on mats
|
||||
EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage
|
||||
EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage
|
||||
EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
fwidth(inF0); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
||||
InterlockedAnd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
|
||||
InterlockedAnd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
||||
InterlockedCompareExchange(gs_ua2, gs_ub2, gs_uc2, out_u2); // expected error: only valid in pixel stage
|
||||
InterlockedExchange(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
||||
InterlockedMax(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
|
||||
InterlockedMax(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
||||
InterlockedMin(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
|
||||
InterlockedMin(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
||||
InterlockedOr(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
|
||||
InterlockedOr(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
||||
InterlockedXor(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
|
||||
InterlockedXor(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
||||
noise(inF0); // expected error: only valid in pixel stage
|
||||
reversebits(inF0); // expected error: only integer inputs
|
||||
transpose(inF0); // expect error: only valid on mats
|
||||
|
||||
// TODO: texture intrinsics, when we can declare samplers.
|
||||
|
||||
return float2(1,2);
|
||||
}
|
||||
|
||||
float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0)
|
||||
{
|
||||
uint3 out_u3;
|
||||
|
||||
CheckAccessFullyMapped(inF0); // expect error: only valid on scalars
|
||||
countbits(inF0); // expected error: only integer inputs
|
||||
ddx(inF0); // only valid in pixel stage
|
||||
ddx_coarse(inF0); // only valid in pixel stage
|
||||
ddx_fine(inF0); // only valid in pixel stage
|
||||
ddy(inF0); // only valid in pixel stage
|
||||
ddy_coarse(inF0); // only valid in pixel stage
|
||||
ddy_fine(inF0); // only valid in pixel stage
|
||||
D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
|
||||
determinant(inF0); // expect error: only valid on mats
|
||||
EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage
|
||||
EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage
|
||||
EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
fwidth(inF0); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
||||
InterlockedAnd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
|
||||
InterlockedAnd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
||||
InterlockedCompareExchange(gs_ua3, gs_ub3, gs_uc3, out_u3); // expected error: only valid in pixel stage
|
||||
InterlockedExchange(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
||||
InterlockedMax(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
|
||||
InterlockedMax(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
||||
InterlockedMin(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
|
||||
InterlockedMin(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
||||
InterlockedOr(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
|
||||
InterlockedOr(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
||||
InterlockedXor(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
|
||||
InterlockedXor(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
||||
noise(inF0); // expected error: only valid in pixel stage
|
||||
reversebits(inF0); // expected error: only integer inputs
|
||||
transpose(inF0); // expect error: only valid on mats
|
||||
|
||||
// TODO: texture intrinsics, when we can declare samplers.
|
||||
|
||||
return float3(1,2,3);
|
||||
}
|
||||
|
||||
float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0)
|
||||
{
|
||||
uint4 out_u4;
|
||||
|
||||
CheckAccessFullyMapped(inF0); // expect error: only valid on scalars
|
||||
countbits(inF0); // expected error: only integer inputs
|
||||
cross(inF0, inF1); // expected error: only on float3 inputs
|
||||
determinant(inF0); // expect error: only valid on mats
|
||||
ddx(inF0); // only valid in pixel stage
|
||||
ddx_coarse(inF0); // only valid in pixel stage
|
||||
ddx_fine(inF0); // only valid in pixel stage
|
||||
ddy(inF0); // only valid in pixel stage
|
||||
ddy_coarse(inF0); // only valid in pixel stage
|
||||
ddy_fine(inF0); // only valid in pixel stage
|
||||
EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage
|
||||
EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage
|
||||
EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
fwidth(inF0); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
||||
InterlockedAnd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
|
||||
InterlockedAnd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
||||
InterlockedCompareExchange(gs_ua4, gs_ub4, gs_uc4, out_u4); // expected error: only valid in pixel stage
|
||||
InterlockedExchange(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
||||
InterlockedMax(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
|
||||
InterlockedMax(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
||||
InterlockedMin(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
|
||||
InterlockedMin(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
||||
InterlockedOr(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
|
||||
InterlockedOr(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
||||
InterlockedXor(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
|
||||
InterlockedXor(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
||||
noise(inF0); // expected error: only valid in pixel stage
|
||||
reversebits(inF0); // expected error: only integer inputs
|
||||
transpose(inF0); // expect error: only valid on mats
|
||||
|
||||
// TODO: texture intrinsics, when we can declare samplers.
|
||||
|
||||
return float4(1,2,3,4);
|
||||
}
|
||||
|
||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||
#define MATFNS() \
|
||||
countbits(inF0); \
|
||||
cross(inF0, inF1); \
|
||||
D3DCOLORtoUBYTE4(inF0); \
|
||||
ddx(inF0); \
|
||||
ddx_coarse(inF0); \
|
||||
ddx_fine(inF0); \
|
||||
ddy(inF0); \
|
||||
ddy_coarse(inF0); \
|
||||
ddy_fine(inF0); \
|
||||
EvaluateAttributeAtCentroid(inF0); \
|
||||
EvaluateAttributeAtSample(inF0, 2); \
|
||||
EvaluateAttributeSnapped(inF0, int2(2)); \
|
||||
f16tof32(inF0); \
|
||||
firstbithigh(inF0); \
|
||||
firstbitlow(inF0); \
|
||||
fma(inF0, inF1, inF2); \
|
||||
fwidth(inF0); \
|
||||
noise(inF0); \
|
||||
reversebits(inF0); \
|
||||
length(inF0); \
|
||||
noise(inF0); \
|
||||
normalize(inF0); \
|
||||
reflect(inF0, inF1); \
|
||||
refract(inF0, inF1, 1.0); \
|
||||
reversebits(inF0); \
|
||||
|
||||
|
||||
// TODO: turn on non-square matrix tests when protos are available.
|
||||
|
||||
float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
|
||||
{
|
||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||
MATFNS()
|
||||
|
||||
return float2x2(2,2,2,2);
|
||||
}
|
||||
|
||||
float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
|
||||
{
|
||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||
MATFNS()
|
||||
|
||||
return float3x3(3,3,3,3,3,3,3,3,3);
|
||||
}
|
||||
|
||||
float4x4 VertexShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
|
||||
{
|
||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||
MATFNS()
|
||||
|
||||
return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
|
||||
}
|
||||
388
Test/hlsl.intrinsics.vert
Normal file
388
Test/hlsl.intrinsics.vert
Normal file
@ -0,0 +1,388 @@
|
||||
float VertexShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint inU1)
|
||||
{
|
||||
all(inF0);
|
||||
abs(inF0);
|
||||
acos(inF0);
|
||||
any(inF0);
|
||||
asin(inF0);
|
||||
asint(inF0);
|
||||
asuint(inF0);
|
||||
asfloat(inU0);
|
||||
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
||||
atan(inF0);
|
||||
atan2(inF0, inF1);
|
||||
ceil(inF0);
|
||||
clamp(inF0, inF1, inF2);
|
||||
cos(inF0);
|
||||
cosh(inF0);
|
||||
countbits(7);
|
||||
degrees(inF0);
|
||||
// EvaluateAttributeAtCentroid(inF0);
|
||||
// EvaluateAttributeAtSample(inF0, 0);
|
||||
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
||||
exp(inF0);
|
||||
exp2(inF0);
|
||||
firstbithigh(7);
|
||||
firstbitlow(7);
|
||||
floor(inF0);
|
||||
// TODO: fma(inD0, inD1, inD2);
|
||||
fmod(inF0, inF1);
|
||||
frac(inF0);
|
||||
frexp(inF0, inF1);
|
||||
isinf(inF0);
|
||||
isnan(inF0);
|
||||
ldexp(inF0, inF1);
|
||||
log(inF0);
|
||||
log10(inF0);
|
||||
log2(inF0);
|
||||
max(inF0, inF1);
|
||||
min(inF0, inF1);
|
||||
// TODO: mul(inF0, inF1);
|
||||
pow(inF0, inF1);
|
||||
radians(inF0);
|
||||
reversebits(2);
|
||||
round(inF0);
|
||||
rsqrt(inF0);
|
||||
saturate(inF0);
|
||||
sign(inF0);
|
||||
sin(inF0);
|
||||
sincos(inF0, inF1, inF2);
|
||||
sinh(inF0);
|
||||
smoothstep(inF0, inF1, inF2);
|
||||
sqrt(inF0);
|
||||
step(inF0, inF1);
|
||||
tan(inF0);
|
||||
tanh(inF0);
|
||||
// TODO: sampler intrinsics, when we can declare the types.
|
||||
trunc(inF0);
|
||||
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
float1 VertexShaderFunction(float1 inF0, float1 inF1, float1 inF2)
|
||||
{
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1)
|
||||
{
|
||||
all(inF0);
|
||||
abs(inF0);
|
||||
acos(inF0);
|
||||
any(inF0);
|
||||
asin(inF0);
|
||||
asint(inF0);
|
||||
asuint(inF0);
|
||||
asfloat(inU0);
|
||||
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
||||
atan(inF0);
|
||||
atan2(inF0, inF1);
|
||||
ceil(inF0);
|
||||
clamp(inF0, inF1, inF2);
|
||||
cos(inF0);
|
||||
cosh(inF0);
|
||||
countbits(int2(7,3));
|
||||
degrees(inF0);
|
||||
distance(inF0, inF1);
|
||||
dot(inF0, inF1);
|
||||
// EvaluateAttributeAtCentroid(inF0);
|
||||
// EvaluateAttributeAtSample(inF0, 0);
|
||||
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
||||
exp(inF0);
|
||||
exp2(inF0);
|
||||
faceforward(inF0, inF1, inF2);
|
||||
firstbithigh(7);
|
||||
firstbitlow(7);
|
||||
floor(inF0);
|
||||
// TODO: fma(inD0, inD1, inD2);
|
||||
fmod(inF0, inF1);
|
||||
frac(inF0);
|
||||
frexp(inF0, inF1);
|
||||
isinf(inF0);
|
||||
isnan(inF0);
|
||||
ldexp(inF0, inF1);
|
||||
length(inF0);
|
||||
log(inF0);
|
||||
log10(inF0);
|
||||
log2(inF0);
|
||||
max(inF0, inF1);
|
||||
min(inF0, inF1);
|
||||
// TODO: mul(inF0, inF1);
|
||||
normalize(inF0);
|
||||
pow(inF0, inF1);
|
||||
radians(inF0);
|
||||
reflect(inF0, inF1);
|
||||
refract(inF0, inF1, 2.0);
|
||||
reversebits(int2(1,2));
|
||||
round(inF0);
|
||||
rsqrt(inF0);
|
||||
saturate(inF0);
|
||||
sign(inF0);
|
||||
sin(inF0);
|
||||
sincos(inF0, inF1, inF2);
|
||||
sinh(inF0);
|
||||
smoothstep(inF0, inF1, inF2);
|
||||
sqrt(inF0);
|
||||
step(inF0, inF1);
|
||||
tan(inF0);
|
||||
tanh(inF0);
|
||||
// TODO: sampler intrinsics, when we can declare the types.
|
||||
trunc(inF0);
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float2(1,2);
|
||||
}
|
||||
|
||||
float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1)
|
||||
{
|
||||
all(inF0);
|
||||
abs(inF0);
|
||||
acos(inF0);
|
||||
any(inF0);
|
||||
asin(inF0);
|
||||
asint(inF0);
|
||||
asuint(inF0);
|
||||
asfloat(inU0);
|
||||
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
||||
atan(inF0);
|
||||
atan2(inF0, inF1);
|
||||
ceil(inF0);
|
||||
clamp(inF0, inF1, inF2);
|
||||
cos(inF0);
|
||||
cosh(inF0);
|
||||
countbits(int3(7,3,5));
|
||||
cross(inF0, inF1);
|
||||
degrees(inF0);
|
||||
distance(inF0, inF1);
|
||||
dot(inF0, inF1);
|
||||
// EvaluateAttributeAtCentroid(inF0);
|
||||
// EvaluateAttributeAtSample(inF0, 0);
|
||||
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
||||
exp(inF0);
|
||||
exp2(inF0);
|
||||
faceforward(inF0, inF1, inF2);
|
||||
firstbithigh(7);
|
||||
firstbitlow(7);
|
||||
floor(inF0);
|
||||
// TODO: fma(inD0, inD1, inD2);
|
||||
fmod(inF0, inF1);
|
||||
frac(inF0);
|
||||
frexp(inF0, inF1);
|
||||
isinf(inF0);
|
||||
isnan(inF0);
|
||||
ldexp(inF0, inF1);
|
||||
length(inF0);
|
||||
log(inF0);
|
||||
log10(inF0);
|
||||
log2(inF0);
|
||||
max(inF0, inF1);
|
||||
min(inF0, inF1);
|
||||
// TODO: mul(inF0, inF1);
|
||||
normalize(inF0);
|
||||
pow(inF0, inF1);
|
||||
radians(inF0);
|
||||
reflect(inF0, inF1);
|
||||
refract(inF0, inF1, 2.0);
|
||||
reversebits(int3(1,2,3));
|
||||
round(inF0);
|
||||
rsqrt(inF0);
|
||||
saturate(inF0);
|
||||
sign(inF0);
|
||||
sin(inF0);
|
||||
sincos(inF0, inF1, inF2);
|
||||
sinh(inF0);
|
||||
smoothstep(inF0, inF1, inF2);
|
||||
sqrt(inF0);
|
||||
step(inF0, inF1);
|
||||
tan(inF0);
|
||||
tanh(inF0);
|
||||
// TODO: sampler intrinsics, when we can declare the types.
|
||||
trunc(inF0);
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float3(1,2,3);
|
||||
}
|
||||
|
||||
float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, uint4 inU1)
|
||||
{
|
||||
all(inF0);
|
||||
abs(inF0);
|
||||
acos(inF0);
|
||||
any(inF0);
|
||||
asin(inF0);
|
||||
asint(inF0);
|
||||
asuint(inF0);
|
||||
asfloat(inU0);
|
||||
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
||||
atan(inF0);
|
||||
atan2(inF0, inF1);
|
||||
ceil(inF0);
|
||||
clamp(inF0, inF1, inF2);
|
||||
cos(inF0);
|
||||
cosh(inF0);
|
||||
countbits(int4(7,3,5,2));
|
||||
degrees(inF0);
|
||||
distance(inF0, inF1);
|
||||
dot(inF0, inF1);
|
||||
dst(inF0, inF1);
|
||||
// EvaluateAttributeAtCentroid(inF0);
|
||||
// EvaluateAttributeAtSample(inF0, 0);
|
||||
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
||||
exp(inF0);
|
||||
exp2(inF0);
|
||||
faceforward(inF0, inF1, inF2);
|
||||
firstbithigh(7);
|
||||
firstbitlow(7);
|
||||
floor(inF0);
|
||||
// TODO: fma(inD0, inD1, inD2);
|
||||
fmod(inF0, inF1);
|
||||
frac(inF0);
|
||||
frexp(inF0, inF1);
|
||||
isinf(inF0);
|
||||
isnan(inF0);
|
||||
ldexp(inF0, inF1);
|
||||
length(inF0);
|
||||
log(inF0);
|
||||
log10(inF0);
|
||||
log2(inF0);
|
||||
max(inF0, inF1);
|
||||
min(inF0, inF1);
|
||||
// TODO: mul(inF0, inF1);
|
||||
normalize(inF0);
|
||||
pow(inF0, inF1);
|
||||
radians(inF0);
|
||||
reflect(inF0, inF1);
|
||||
refract(inF0, inF1, 2.0);
|
||||
reversebits(int4(1,2,3,4));
|
||||
round(inF0);
|
||||
rsqrt(inF0);
|
||||
saturate(inF0);
|
||||
sign(inF0);
|
||||
sin(inF0);
|
||||
sincos(inF0, inF1, inF2);
|
||||
sinh(inF0);
|
||||
smoothstep(inF0, inF1, inF2);
|
||||
sqrt(inF0);
|
||||
step(inF0, inF1);
|
||||
tan(inF0);
|
||||
tanh(inF0);
|
||||
// TODO: sampler intrinsics, when we can declare the types.
|
||||
trunc(inF0);
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float4(1,2,3,4);
|
||||
}
|
||||
|
||||
// TODO: for mats:
|
||||
// asfloat(inU0); \
|
||||
// asint(inF0); \
|
||||
// asuint(inF0); \
|
||||
|
||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||
#define MATFNS() \
|
||||
all(inF0); \
|
||||
abs(inF0); \
|
||||
acos(inF0); \
|
||||
any(inF0); \
|
||||
asin(inF0); \
|
||||
atan(inF0); \
|
||||
atan2(inF0, inF1); \
|
||||
ceil(inF0); \
|
||||
clamp(inF0, inF1, inF2); \
|
||||
cos(inF0); \
|
||||
cosh(inF0); \
|
||||
degrees(inF0); \
|
||||
determinant(inF0); \
|
||||
exp(inF0); \
|
||||
exp2(inF0); \
|
||||
firstbithigh(7); \
|
||||
firstbitlow(7); \
|
||||
floor(inF0); \
|
||||
fmod(inF0, inF1); \
|
||||
frac(inF0); \
|
||||
frexp(inF0, inF1); \
|
||||
ldexp(inF0, inF1); \
|
||||
log(inF0); \
|
||||
log10(inF0); \
|
||||
log2(inF0); \
|
||||
max(inF0, inF1); \
|
||||
min(inF0, inF1); \
|
||||
pow(inF0, inF1); \
|
||||
radians(inF0); \
|
||||
round(inF0); \
|
||||
rsqrt(inF0); \
|
||||
saturate(inF0); \
|
||||
sign(inF0); \
|
||||
sin(inF0); \
|
||||
sincos(inF0, inF1, inF2); \
|
||||
sinh(inF0); \
|
||||
smoothstep(inF0, inF1, inF2); \
|
||||
sqrt(inF0); \
|
||||
step(inF0, inF1); \
|
||||
tan(inF0); \
|
||||
tanh(inF0); \
|
||||
transpose(inF0); \
|
||||
trunc(inF0);
|
||||
|
||||
// TODO: turn on non-square matrix tests when protos are available.
|
||||
|
||||
float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
|
||||
{
|
||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||
MATFNS();
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float2x2(2,2,2,2);
|
||||
}
|
||||
|
||||
float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
|
||||
{
|
||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||
MATFNS();
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float3x3(3,3,3,3,3,3,3,3,3);
|
||||
}
|
||||
|
||||
float4x4 VertexShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
|
||||
{
|
||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||
MATFNS();
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
|
||||
}
|
||||
|
||||
#define TESTGENMUL(ST, VT, MT) \
|
||||
ST r0 = mul(inF0, inF1); \
|
||||
VT r1 = mul(inFV0, inF0); \
|
||||
VT r2 = mul(inF0, inFV0); \
|
||||
ST r3 = mul(inFV0, inFV1); \
|
||||
VT r4 = mul(inFM0, inFV0); \
|
||||
VT r5 = mul(inFV0, inFM0); \
|
||||
MT r6 = mul(inFM0, inF0); \
|
||||
MT r7 = mul(inF0, inFM0); \
|
||||
MT r8 = mul(inFM0, inFM1);
|
||||
|
||||
|
||||
void TestGenMul(float inF0, float inF1,
|
||||
float2 inFV0, float2 inFV1,
|
||||
float2x2 inFM0, float2x2 inFM1)
|
||||
{
|
||||
TESTGENMUL(float, float2, float2x2);
|
||||
}
|
||||
|
||||
void TestGenMul(float inF0, float inF1,
|
||||
float3 inFV0, float3 inFV1,
|
||||
float3x3 inFM0, float3x3 inFM1)
|
||||
{
|
||||
TESTGENMUL(float, float3, float3x3);
|
||||
}
|
||||
|
||||
void TestGenMul(float inF0, float inF1,
|
||||
float4 inFV0, float4 inFV1,
|
||||
float4x4 inFM0, float4x4 inFM1)
|
||||
{
|
||||
TESTGENMUL(float, float4, float4x4);
|
||||
}
|
||||
30
Test/hlsl.scope.frag
Normal file
30
Test/hlsl.scope.frag
Normal file
@ -0,0 +1,30 @@
|
||||
float4 PixelShaderFunction(float4 input) : COLOR0
|
||||
{
|
||||
int x;
|
||||
x;
|
||||
{
|
||||
float x;
|
||||
x;
|
||||
{
|
||||
bool x;
|
||||
x;
|
||||
{
|
||||
float3 x;
|
||||
x;
|
||||
}
|
||||
x;
|
||||
}
|
||||
x;
|
||||
}
|
||||
x;
|
||||
|
||||
if (x > 0)
|
||||
bool x;
|
||||
|
||||
while (x > 0)
|
||||
bool x;
|
||||
|
||||
do {
|
||||
bool x;
|
||||
} while (x > 0);
|
||||
}
|
||||
40
Test/hlsl.struct.frag
Normal file
40
Test/hlsl.struct.frag
Normal file
@ -0,0 +1,40 @@
|
||||
struct {
|
||||
};
|
||||
|
||||
struct {
|
||||
bool b;
|
||||
};
|
||||
|
||||
struct myS {
|
||||
bool b, c;
|
||||
float4 a, d;
|
||||
};
|
||||
|
||||
myS s1;
|
||||
|
||||
struct {
|
||||
float4 i;
|
||||
} s2;
|
||||
|
||||
struct {
|
||||
linear float4 a;
|
||||
nointerpolation bool b;
|
||||
noperspective centroid float1 c;
|
||||
sample centroid float2 d;
|
||||
bool ff1 : SV_IsFrontFace;
|
||||
bool ff2 : packoffset(c0.y);
|
||||
bool ff3 : packoffset(c0.y) : register(ps_5_0, s[0]) ;
|
||||
float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s[0]) <int bambam=30;> ;
|
||||
} s4;
|
||||
|
||||
float4 PixelShaderFunction(float4 input) : COLOR0
|
||||
{
|
||||
struct FS {
|
||||
bool3 b3;
|
||||
} s3;
|
||||
|
||||
s3 == s3;
|
||||
s2.i = s4.ff4;
|
||||
|
||||
return input;
|
||||
}
|
||||
6
Test/hlsl.swizzle.frag
Normal file
6
Test/hlsl.swizzle.frag
Normal file
@ -0,0 +1,6 @@
|
||||
float4 AmbientColor = float4(1, 0.5, 0, 1);
|
||||
|
||||
float4 ShaderFunction(float4 input) : COLOR0
|
||||
{
|
||||
return input.wwyx * float4(AmbientColor.z);
|
||||
}
|
||||
8
Test/hlsl.void.frag
Normal file
8
Test/hlsl.void.frag
Normal file
@ -0,0 +1,8 @@
|
||||
void foo1() {}
|
||||
void foo2(void) {}
|
||||
|
||||
float4 PixelShaderFunction(float4 input) : COLOR0
|
||||
{
|
||||
foo1();
|
||||
foo2();
|
||||
}
|
||||
7
Test/hlsl.whileLoop.frag
Normal file
7
Test/hlsl.whileLoop.frag
Normal file
@ -0,0 +1,7 @@
|
||||
float4 PixelShaderFunction(float4 input) : COLOR0
|
||||
{
|
||||
while (input != input) { return input; }
|
||||
while (false) ;
|
||||
[unroll] while (false) { }
|
||||
while ((false)) { }
|
||||
}
|
||||
41
Test/spv.310.bitcast.frag
Normal file
41
Test/spv.310.bitcast.frag
Normal file
@ -0,0 +1,41 @@
|
||||
#version 310 es
|
||||
|
||||
flat in mediump int i1;
|
||||
flat in lowp ivec2 i2;
|
||||
flat in mediump ivec3 i3;
|
||||
flat in highp ivec4 i4;
|
||||
|
||||
flat in mediump uint u1;
|
||||
flat in lowp uvec2 u2;
|
||||
flat in mediump uvec3 u3;
|
||||
flat in highp uvec4 u4;
|
||||
|
||||
mediump in float f1;
|
||||
lowp in vec2 f2;
|
||||
mediump in vec3 f3;
|
||||
highp in vec4 f4;
|
||||
|
||||
void main()
|
||||
{
|
||||
highp ivec4 idata = ivec4(0);
|
||||
idata.x += floatBitsToInt(f1);
|
||||
idata.xy += floatBitsToInt(f2);
|
||||
idata.xyz += floatBitsToInt(f3);
|
||||
idata += floatBitsToInt(f4);
|
||||
|
||||
highp uvec4 udata = uvec4(0);
|
||||
udata.x += floatBitsToUint(f1);
|
||||
udata.xy += floatBitsToUint(f2);
|
||||
udata.xyz += floatBitsToUint(f3);
|
||||
udata += floatBitsToUint(f4);
|
||||
|
||||
highp vec4 fdata = vec4(0.0);
|
||||
fdata.x += intBitsToFloat(i1);
|
||||
fdata.xy += intBitsToFloat(i2);
|
||||
fdata.xyz += intBitsToFloat(i3);
|
||||
fdata += intBitsToFloat(i4);
|
||||
fdata.x += uintBitsToFloat(u1);
|
||||
fdata.xy += uintBitsToFloat(u2);
|
||||
fdata.xyz += uintBitsToFloat(u3);
|
||||
fdata += uintBitsToFloat(u4);
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
#version 310 es
|
||||
|
||||
#extension GL_ARB_gl_spirv : enable
|
||||
|
||||
|
||||
layout(binding = 0) uniform atomic_uint counter;
|
||||
|
||||
|
||||
@ -175,7 +175,7 @@ template <class T> class TList : public std::list<T, pool_allocator<T> > {
|
||||
};
|
||||
|
||||
template <class K, class D, class CMP = std::less<K> >
|
||||
class TMap : public std::map<K, D, CMP, pool_allocator<std::pair<K, D> > > {
|
||||
class TMap : public std::map<K, D, CMP, pool_allocator<std::pair<K const, D> > > {
|
||||
};
|
||||
|
||||
template <class K, class D, class HASH = std::hash<K>, class PRED = std::equal_to<K> >
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
//
|
||||
//Copyright (C) 2002-2005 3Dlabs Inc. Ltd.
|
||||
//Copyright (C) 2012-2015 LunarG, Inc.
|
||||
//Copyright (C) 2012-2016 LunarG, Inc.
|
||||
//Copyright (C) 2015-2016 Google, Inc.
|
||||
//
|
||||
//All rights reserved.
|
||||
@ -1043,8 +1043,9 @@ public:
|
||||
POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator())
|
||||
|
||||
// for "empty" type (no args) or simple scalar/vector/matrix
|
||||
explicit TType(TBasicType t = EbtVoid, TStorageQualifier q = EvqTemporary, int vs = 1, int mc = 0, int mr = 0) :
|
||||
basicType(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), vector1(false),
|
||||
explicit TType(TBasicType t = EbtVoid, TStorageQualifier q = EvqTemporary, int vs = 1, int mc = 0, int mr = 0,
|
||||
bool isVector = false) :
|
||||
basicType(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), vector1(isVector && vs == 1),
|
||||
arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr)
|
||||
{
|
||||
sampler.clear();
|
||||
@ -1052,8 +1053,9 @@ public:
|
||||
qualifier.storage = q;
|
||||
}
|
||||
// for explicit precision qualifier
|
||||
TType(TBasicType t, TStorageQualifier q, TPrecisionQualifier p, int vs = 1, int mc = 0, int mr = 0) :
|
||||
basicType(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), vector1(false),
|
||||
TType(TBasicType t, TStorageQualifier q, TPrecisionQualifier p, int vs = 1, int mc = 0, int mr = 0,
|
||||
bool isVector = false) :
|
||||
basicType(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), vector1(isVector && vs == 1),
|
||||
arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr)
|
||||
{
|
||||
sampler.clear();
|
||||
@ -1255,6 +1257,8 @@ public:
|
||||
virtual bool isStruct() const { return structure != nullptr; }
|
||||
virtual bool isFloatingDomain() const { return basicType == EbtFloat || basicType == EbtDouble; }
|
||||
|
||||
virtual bool isOpaque() const { return basicType == EbtSampler || basicType == EbtAtomicUint; }
|
||||
|
||||
// "Image" is a superset of "Subpass"
|
||||
virtual bool isImage() const { return basicType == EbtSampler && getSampler().isImage(); }
|
||||
virtual bool isSubpass() const { return basicType == EbtSampler && getSampler().isSubpass(); }
|
||||
@ -1315,7 +1319,7 @@ public:
|
||||
|
||||
virtual bool containsOpaque() const
|
||||
{
|
||||
if (basicType == EbtSampler || basicType == EbtAtomicUint)
|
||||
if (isOpaque())
|
||||
return true;
|
||||
if (! structure)
|
||||
return false;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
//
|
||||
//Copyright (C) 2002-2005 3Dlabs Inc. Ltd.
|
||||
//Copyright (C) 2012-2013 LunarG, Inc.
|
||||
//Copyright (C) 2012-2016 LunarG, Inc.
|
||||
//
|
||||
//All rights reserved.
|
||||
//
|
||||
@ -493,6 +493,36 @@ enum TOperator {
|
||||
EOpBitCount,
|
||||
EOpFindLSB,
|
||||
EOpFindMSB,
|
||||
|
||||
//
|
||||
// HLSL operations
|
||||
//
|
||||
|
||||
EOpClip, // discard if input value < 0
|
||||
EOpIsFinite,
|
||||
EOpLog10, // base 10 log
|
||||
EOpRcp, // 1/x
|
||||
EOpSaturate, // clamp from 0 to 1
|
||||
EOpSinCos, // sin and cos in out parameters
|
||||
EOpGenMul, // mul(x,y) on any of mat/vec/scalars
|
||||
EOpDst, // x = 1, y=src0.y * src1.y, z=src0.z, w=src1.w
|
||||
EOpInterlockedAdd, // atomic ops, but uses [optional] out arg instead of return
|
||||
EOpInterlockedAnd, // ...
|
||||
EOpInterlockedCompareExchange, // ...
|
||||
EOpInterlockedCompareStore, // ...
|
||||
EOpInterlockedExchange, // ...
|
||||
EOpInterlockedMax, // ...
|
||||
EOpInterlockedMin, // ...
|
||||
EOpInterlockedOr, // ...
|
||||
EOpInterlockedXor, // ...
|
||||
EOpAllMemoryBarrierWithGroupSync, // memory barriers without non-hlsl AST equivalents
|
||||
EOpGroupMemoryBarrierWithGroupSync, // ...
|
||||
EOpWorkgroupMemoryBarrier, // ...
|
||||
EOpWorkgroupMemoryBarrierWithGroupSync, // ...
|
||||
EOpEvaluateAttributeSnapped, // InterpolateAtOffset with int position on 16x16 grid
|
||||
EOpF32tof16, // HLSL conversion: half of a PackHalf2x16
|
||||
EOpF16tof32, // HLSL conversion: half of an UnpackHalf2x16
|
||||
EOpLit, // HLSL lighting coefficient vector
|
||||
};
|
||||
|
||||
class TIntermTraverser;
|
||||
|
||||
@ -63,9 +63,9 @@ const bool ForwardCompatibility = false;
|
||||
// Using PureOperatorBuiltins=false is deprecated.
|
||||
bool PureOperatorBuiltins = true;
|
||||
|
||||
inline bool IncludeLegacy(int version, EProfile profile, int spv)
|
||||
inline bool IncludeLegacy(int version, EProfile profile, const SpvVersion& spvVersion)
|
||||
{
|
||||
return profile != EEsProfile && (version <= 130 || (spv == 0 && ARBCompatibility) || profile == ECompatibilityProfile);
|
||||
return profile != EEsProfile && (version <= 130 || (spvVersion.spv == 0 && ARBCompatibility) || profile == ECompatibilityProfile);
|
||||
}
|
||||
|
||||
// Construct TBuiltInParseables base class. This can be used for language-common constructs.
|
||||
@ -114,7 +114,7 @@ TBuiltIns::~TBuiltIns()
|
||||
// Most built-ins variables can be added as simple text strings. Some need to
|
||||
// be added programmatically, which is done later in IdentifyBuiltIns() below.
|
||||
//
|
||||
void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvVersion)
|
||||
{
|
||||
//============================================================================
|
||||
//
|
||||
@ -859,26 +859,26 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
if ((profile == EEsProfile && version >= 300) ||
|
||||
(profile != EEsProfile && version >= 330)) {
|
||||
commonBuiltins.append(
|
||||
"int floatBitsToInt(float value);"
|
||||
"ivec2 floatBitsToInt(vec2 value);"
|
||||
"ivec3 floatBitsToInt(vec3 value);"
|
||||
"ivec4 floatBitsToInt(vec4 value);"
|
||||
"highp int floatBitsToInt(highp float value);"
|
||||
"highp ivec2 floatBitsToInt(highp vec2 value);"
|
||||
"highp ivec3 floatBitsToInt(highp vec3 value);"
|
||||
"highp ivec4 floatBitsToInt(highp vec4 value);"
|
||||
|
||||
"uint floatBitsToUint(float value);"
|
||||
"uvec2 floatBitsToUint(vec2 value);"
|
||||
"uvec3 floatBitsToUint(vec3 value);"
|
||||
"uvec4 floatBitsToUint(vec4 value);"
|
||||
|
||||
"float intBitsToFloat(int value);"
|
||||
"vec2 intBitsToFloat(ivec2 value);"
|
||||
"vec3 intBitsToFloat(ivec3 value);"
|
||||
"vec4 intBitsToFloat(ivec4 value);"
|
||||
|
||||
"float uintBitsToFloat(uint value);"
|
||||
"vec2 uintBitsToFloat(uvec2 value);"
|
||||
"vec3 uintBitsToFloat(uvec3 value);"
|
||||
"vec4 uintBitsToFloat(uvec4 value);"
|
||||
|
||||
"highp uint floatBitsToUint(highp float value);"
|
||||
"highp uvec2 floatBitsToUint(highp vec2 value);"
|
||||
"highp uvec3 floatBitsToUint(highp vec3 value);"
|
||||
"highp uvec4 floatBitsToUint(highp vec4 value);"
|
||||
|
||||
"highp float intBitsToFloat(highp int value);"
|
||||
"highp vec2 intBitsToFloat(highp ivec2 value);"
|
||||
"highp vec3 intBitsToFloat(highp ivec3 value);"
|
||||
"highp vec4 intBitsToFloat(highp ivec4 value);"
|
||||
|
||||
"highp float uintBitsToFloat(highp uint value);"
|
||||
"highp vec2 uintBitsToFloat(highp uvec2 value);"
|
||||
"highp vec3 uintBitsToFloat(highp uvec3 value);"
|
||||
"highp vec4 uintBitsToFloat(highp uvec4 value);"
|
||||
|
||||
"\n");
|
||||
}
|
||||
|
||||
@ -1174,7 +1174,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
profile == ECompatibilityProfile ||
|
||||
(profile == ECoreProfile && version < 420) ||
|
||||
profile == ENoProfile) {
|
||||
if (spv == 0) {
|
||||
if (spvVersion.spv == 0) {
|
||||
commonBuiltins.append(
|
||||
"vec4 texture2D(sampler2D, vec2);"
|
||||
|
||||
@ -1193,7 +1193,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
if ( profile == ECompatibilityProfile ||
|
||||
(profile == ECoreProfile && version < 420) ||
|
||||
profile == ENoProfile) {
|
||||
if (spv == 0) {
|
||||
if (spvVersion.spv == 0) {
|
||||
commonBuiltins.append(
|
||||
"vec4 texture1D(sampler1D, float);"
|
||||
|
||||
@ -1216,7 +1216,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
}
|
||||
|
||||
if (profile == EEsProfile) {
|
||||
if (spv == 0) {
|
||||
if (spvVersion.spv == 0) {
|
||||
commonBuiltins.append(
|
||||
"vec4 texture2D(samplerExternalOES, vec2 coord);" // GL_OES_EGL_image_external, caught by keyword check
|
||||
"vec4 texture2DProj(samplerExternalOES, vec3);" // GL_OES_EGL_image_external, caught by keyword check
|
||||
@ -1258,7 +1258,8 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
"\n");
|
||||
}
|
||||
|
||||
if (vulkan == 0) {
|
||||
if (spvVersion.vulkan == 0) {
|
||||
// gl_spirv TODO
|
||||
//
|
||||
// Atomic counter functions.
|
||||
//
|
||||
@ -1479,7 +1480,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
//
|
||||
// Geometric Functions.
|
||||
//
|
||||
if (IncludeLegacy(version, profile, spv))
|
||||
if (IncludeLegacy(version, profile, spvVersion))
|
||||
stageBuiltins[EShLangVertex].append("vec4 ftransform();");
|
||||
|
||||
//
|
||||
@ -1494,7 +1495,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
profile == ECompatibilityProfile ||
|
||||
(profile == ECoreProfile && version < 420) ||
|
||||
profile == ENoProfile) {
|
||||
if (spv == 0) {
|
||||
if (spvVersion.spv == 0) {
|
||||
s->append(
|
||||
"vec4 texture2DLod(sampler2D, vec2, float);" // GL_ARB_shader_texture_lod
|
||||
"vec4 texture2DProjLod(sampler2D, vec3, float);" // GL_ARB_shader_texture_lod
|
||||
@ -1509,7 +1510,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
if ( profile == ECompatibilityProfile ||
|
||||
(profile == ECoreProfile && version < 420) ||
|
||||
profile == ENoProfile) {
|
||||
if (spv == 0) {
|
||||
if (spvVersion.spv == 0) {
|
||||
s->append(
|
||||
"vec4 texture1DLod(sampler1D, float, float);" // GL_ARB_shader_texture_lod
|
||||
"vec4 texture1DProjLod(sampler1D, vec2, float);" // GL_ARB_shader_texture_lod
|
||||
@ -1572,7 +1573,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
stageBuiltins[EShLangTessControl].append(
|
||||
"void barrier();"
|
||||
);
|
||||
if ((profile != EEsProfile && version >= 430) || esBarrier)
|
||||
if ((profile != EEsProfile && version >= 420) || esBarrier)
|
||||
stageBuiltins[EShLangCompute].append(
|
||||
"void barrier();"
|
||||
);
|
||||
@ -1580,7 +1581,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
commonBuiltins.append(
|
||||
"void memoryBarrier();"
|
||||
);
|
||||
if ((profile != EEsProfile && version >= 430) || esBarrier) {
|
||||
if ((profile != EEsProfile && version >= 420) || esBarrier) {
|
||||
commonBuiltins.append(
|
||||
"void memoryBarrierAtomicCounter();"
|
||||
"void memoryBarrierBuffer();"
|
||||
@ -1601,7 +1602,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
//
|
||||
// Original-style texture Functions with bias.
|
||||
//
|
||||
if (spv == 0 && (profile != EEsProfile || version == 100)) {
|
||||
if (spvVersion.spv == 0 && (profile != EEsProfile || version == 100)) {
|
||||
stageBuiltins[EShLangFragment].append(
|
||||
"vec4 texture2D(sampler2D, vec2, float);"
|
||||
"vec4 texture2DProj(sampler2D, vec3, float);"
|
||||
@ -1612,7 +1613,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
|
||||
"\n");
|
||||
}
|
||||
if (spv == 0 && (profile != EEsProfile && version > 100)) {
|
||||
if (spvVersion.spv == 0 && (profile != EEsProfile && version > 100)) {
|
||||
stageBuiltins[EShLangFragment].append(
|
||||
"vec4 texture1D(sampler1D, float, float);"
|
||||
"vec4 texture1DProj(sampler1D, vec2, float);"
|
||||
@ -1624,7 +1625,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
|
||||
"\n");
|
||||
}
|
||||
if (spv == 0 && profile == EEsProfile) {
|
||||
if (spvVersion.spv == 0 && profile == EEsProfile) {
|
||||
stageBuiltins[EShLangFragment].append(
|
||||
"vec4 texture2DLodEXT(sampler2D, vec2, float);" // GL_EXT_shader_texture_lod
|
||||
"vec4 texture2DProjLodEXT(sampler2D, vec3, float);" // GL_EXT_shader_texture_lod
|
||||
@ -1722,7 +1723,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
//
|
||||
// Depth range in window coordinates, p. 33
|
||||
//
|
||||
if (vulkan == 0) {
|
||||
if (spvVersion.spv == 0) {
|
||||
commonBuiltins.append(
|
||||
"struct gl_DepthRangeParameters {"
|
||||
);
|
||||
@ -1746,7 +1747,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
"\n");
|
||||
}
|
||||
|
||||
if (vulkan == 0 && IncludeLegacy(version, profile, spv)) {
|
||||
if (spvVersion.spv == 0 && IncludeLegacy(version, profile, spvVersion)) {
|
||||
//
|
||||
// Matrix state. p. 31, 32, 37, 39, 40.
|
||||
//
|
||||
@ -1871,7 +1872,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
//
|
||||
//============================================================================
|
||||
|
||||
if ((profile != EEsProfile && version >= 430) ||
|
||||
if ((profile != EEsProfile && version >= 420) ||
|
||||
(profile == EEsProfile && version >= 310)) {
|
||||
stageBuiltins[EShLangCompute].append(
|
||||
"in highp uvec3 gl_NumWorkGroups;"
|
||||
@ -1909,7 +1910,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
"attribute vec4 gl_MultiTexCoord7;"
|
||||
"attribute float gl_FogCoord;"
|
||||
"\n");
|
||||
} else if (IncludeLegacy(version, profile, spv)) {
|
||||
} else if (IncludeLegacy(version, profile, spvVersion)) {
|
||||
stageBuiltins[EShLangVertex].append(
|
||||
"in vec4 gl_Color;"
|
||||
"in vec4 gl_SecondaryColor;"
|
||||
@ -1938,7 +1939,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
"varying vec4 gl_TexCoord[];"
|
||||
"varying float gl_FogFragCoord;"
|
||||
"\n");
|
||||
} else if (IncludeLegacy(version, profile, spv)) {
|
||||
} else if (IncludeLegacy(version, profile, spvVersion)) {
|
||||
stageBuiltins[EShLangVertex].append(
|
||||
" vec4 gl_ClipVertex;" // needs qualifier fixed later
|
||||
"out vec4 gl_FrontColor;"
|
||||
@ -1966,7 +1967,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
"float gl_PointSize;" // needs qualifier fixed later
|
||||
"float gl_ClipDistance[];"
|
||||
);
|
||||
if (IncludeLegacy(version, profile, spv))
|
||||
if (IncludeLegacy(version, profile, spvVersion))
|
||||
stageBuiltins[EShLangVertex].append(
|
||||
"vec4 gl_ClipVertex;" // needs qualifier fixed later
|
||||
"vec4 gl_FrontColor;"
|
||||
@ -1984,15 +1985,18 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
"};"
|
||||
"\n");
|
||||
}
|
||||
if (version >= 130 && vulkan == 0)
|
||||
if (version >= 130 && spvVersion.vulkan == 0)
|
||||
// gl_spirv TODO
|
||||
stageBuiltins[EShLangVertex].append(
|
||||
"int gl_VertexID;" // needs qualifier fixed later
|
||||
);
|
||||
if (version >= 140 && vulkan == 0)
|
||||
if (version >= 140 && spvVersion.vulkan == 0)
|
||||
// gl_spirv TODO
|
||||
stageBuiltins[EShLangVertex].append(
|
||||
"int gl_InstanceID;" // needs qualifier fixed later
|
||||
);
|
||||
if (vulkan > 0 && version >= 140)
|
||||
if (spvVersion.vulkan >= 100 && version >= 140)
|
||||
// gl_spirv TODO
|
||||
stageBuiltins[EShLangVertex].append(
|
||||
"in int gl_VertexIndex;"
|
||||
"in int gl_InstanceIndex;"
|
||||
@ -2012,12 +2016,14 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
"mediump float gl_PointSize;" // needs qualifier fixed later
|
||||
);
|
||||
} else {
|
||||
if (vulkan == 0)
|
||||
if (spvVersion.vulkan == 0)
|
||||
// gl_spirv TODO
|
||||
stageBuiltins[EShLangVertex].append(
|
||||
"in highp int gl_VertexID;" // needs qualifier fixed later
|
||||
"in highp int gl_InstanceID;" // needs qualifier fixed later
|
||||
);
|
||||
if (vulkan > 0)
|
||||
if (spvVersion.vulkan >= 100)
|
||||
// gl_spirv TODO
|
||||
stageBuiltins[EShLangVertex].append(
|
||||
"in highp int gl_VertexIndex;"
|
||||
"in highp int gl_InstanceIndex;"
|
||||
@ -2270,7 +2276,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
stageBuiltins[EShLangFragment].append(
|
||||
"vec2 gl_PointCoord;" // needs qualifier fixed later
|
||||
);
|
||||
if (IncludeLegacy(version, profile, spv) || (! ForwardCompatibility && version < 420))
|
||||
if (IncludeLegacy(version, profile, spvVersion) || (! ForwardCompatibility && version < 420))
|
||||
stageBuiltins[EShLangFragment].append(
|
||||
"vec4 gl_FragColor;" // needs qualifier fixed later
|
||||
);
|
||||
@ -2287,7 +2293,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
"in float gl_ClipDistance[];"
|
||||
);
|
||||
|
||||
if (IncludeLegacy(version, profile, spv)) {
|
||||
if (IncludeLegacy(version, profile, spvVersion)) {
|
||||
if (version < 150)
|
||||
stageBuiltins[EShLangFragment].append(
|
||||
"in float gl_FogFragCoord;"
|
||||
@ -2373,7 +2379,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
stageBuiltins[EShLangFragment].append("\n");
|
||||
|
||||
if (version >= 130)
|
||||
add2ndGenerationSamplingImaging(version, profile, spv, vulkan);
|
||||
add2ndGenerationSamplingImaging(version, profile, spvVersion);
|
||||
|
||||
// GL_ARB_shader_ballot
|
||||
if (profile != EEsProfile && version >= 450) {
|
||||
@ -2398,7 +2404,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
|
||||
// Helper function for initialize(), to add the second set of names for texturing,
|
||||
// when adding context-independent built-in functions.
|
||||
//
|
||||
void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, int /*spv*/, int vulkan)
|
||||
void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, const SpvVersion& spvVersion)
|
||||
{
|
||||
//
|
||||
// In this function proper, enumerate the types, then calls the next set of functions
|
||||
@ -2425,7 +2431,7 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, i
|
||||
|
||||
for (int arrayed = 0; arrayed <= 1; ++arrayed) { // loop over "bool" arrayed or not
|
||||
for (int dim = Esd1D; dim < EsdNumDims; ++dim) { // 1D, 2D, ..., buffer
|
||||
if (dim == EsdSubpass && vulkan == 0)
|
||||
if (dim == EsdSubpass && spvVersion.vulkan == 0)
|
||||
continue;
|
||||
if (dim == EsdSubpass && (image || shadow || arrayed))
|
||||
continue;
|
||||
@ -3029,7 +3035,7 @@ void TBuiltIns::addGatherFunctions(TSampler sampler, TString& typeName, int vers
|
||||
// add stage-specific entries to the commonBuiltins, and only if that stage
|
||||
// was requested.
|
||||
//
|
||||
void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProfile profile, int spv, int vulkan, EShLanguage language)
|
||||
void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language)
|
||||
{
|
||||
//
|
||||
// Initialize the context-dependent (resource-dependent) built-in strings for parsing.
|
||||
@ -3192,7 +3198,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf
|
||||
snprintf(builtInConstant, maxSize, "const int gl_MaxFragmentUniformComponents = %d;", resources.maxFragmentUniformComponents);
|
||||
s.append(builtInConstant);
|
||||
|
||||
if (vulkan == 0 && IncludeLegacy(version, profile, spv)) {
|
||||
if (spvVersion.spv == 0 && IncludeLegacy(version, profile, spvVersion)) {
|
||||
//
|
||||
// OpenGL'uniform' state. Page numbers are in reference to version
|
||||
// 1.4 of the OpenGL specification.
|
||||
@ -3421,7 +3427,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf
|
||||
|
||||
|
||||
// compute
|
||||
if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 430)) {
|
||||
if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 420)) {
|
||||
snprintf(builtInConstant, maxSize, "const ivec3 gl_MaxComputeWorkGroupCount = ivec3(%d,%d,%d);", resources.maxComputeWorkGroupCountX,
|
||||
resources.maxComputeWorkGroupCountY,
|
||||
resources.maxComputeWorkGroupCountZ);
|
||||
@ -3536,7 +3542,7 @@ static void BuiltInVariable(const char* blockName, const char* name, TBuiltInVar
|
||||
// 3) Tag extension-related symbols added to their base version with their extensions, so
|
||||
// that if an early version has the extension turned off, there is an error reported on use.
|
||||
//
|
||||
void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vulkan, EShLanguage language, TSymbolTable& symbolTable)
|
||||
void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable)
|
||||
{
|
||||
//
|
||||
// Tag built-in variables and functions with additional qualifier and extension information
|
||||
@ -3589,7 +3595,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul
|
||||
}
|
||||
|
||||
// Compatibility variables, vertex only
|
||||
if (spv == 0) {
|
||||
if (spvVersion.spv == 0) {
|
||||
BuiltInVariable("gl_Color", EbvColor, symbolTable);
|
||||
BuiltInVariable("gl_SecondaryColor", EbvSecondaryColor, symbolTable);
|
||||
BuiltInVariable("gl_Normal", EbvNormal, symbolTable);
|
||||
@ -3606,7 +3612,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul
|
||||
}
|
||||
|
||||
if (profile == EEsProfile) {
|
||||
if (spv == 0) {
|
||||
if (spvVersion.spv == 0) {
|
||||
symbolTable.setFunctionExtensions("texture2DGradEXT", 1, &E_GL_EXT_shader_texture_lod);
|
||||
symbolTable.setFunctionExtensions("texture2DProjGradEXT", 1, &E_GL_EXT_shader_texture_lod);
|
||||
symbolTable.setFunctionExtensions("textureCubeGradEXT", 1, &E_GL_EXT_shader_texture_lod);
|
||||
@ -3627,7 +3633,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul
|
||||
symbolTable.setFunctionExtensions("imageAtomicCompSwap", 1, &E_GL_OES_shader_image_atomic);
|
||||
}
|
||||
|
||||
if (vulkan == 0) {
|
||||
if (spvVersion.vulkan == 0) {
|
||||
// gl_spirv TODO
|
||||
SpecialQualifier("gl_VertexID", EvqVertexId, EbvVertexId, symbolTable);
|
||||
SpecialQualifier("gl_InstanceID", EvqInstanceId, EbvInstanceId, symbolTable);
|
||||
}
|
||||
@ -3762,7 +3769,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul
|
||||
// built-in functions
|
||||
|
||||
if (profile == EEsProfile) {
|
||||
if (spv == 0) {
|
||||
if (spvVersion.spv == 0) {
|
||||
symbolTable.setFunctionExtensions("texture2DLodEXT", 1, &E_GL_EXT_shader_texture_lod);
|
||||
symbolTable.setFunctionExtensions("texture2DProjLodEXT", 1, &E_GL_EXT_shader_texture_lod);
|
||||
symbolTable.setFunctionExtensions("textureCubeLodEXT", 1, &E_GL_EXT_shader_texture_lod);
|
||||
@ -3783,7 +3790,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul
|
||||
symbolTable.setFunctionExtensions("interpolateAtOffset", 1, &E_GL_OES_shader_multisample_interpolation);
|
||||
}
|
||||
} else if (version < 130) {
|
||||
if (spv == 0) {
|
||||
if (spvVersion.spv == 0) {
|
||||
symbolTable.setFunctionExtensions("texture1DLod", 1, &E_GL_ARB_shader_texture_lod);
|
||||
symbolTable.setFunctionExtensions("texture2DLod", 1, &E_GL_ARB_shader_texture_lod);
|
||||
symbolTable.setFunctionExtensions("texture3DLod", 1, &E_GL_ARB_shader_texture_lod);
|
||||
@ -3799,7 +3806,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul
|
||||
}
|
||||
|
||||
// E_GL_ARB_shader_texture_lod functions usable only with the extension enabled
|
||||
if (profile != EEsProfile && spv == 0) {
|
||||
if (profile != EEsProfile && spvVersion.spv == 0) {
|
||||
symbolTable.setFunctionExtensions("texture1DGradARB", 1, &E_GL_ARB_shader_texture_lod);
|
||||
symbolTable.setFunctionExtensions("texture1DProjGradARB", 1, &E_GL_ARB_shader_texture_lod);
|
||||
symbolTable.setFunctionExtensions("texture2DGradARB", 1, &E_GL_ARB_shader_texture_lod);
|
||||
@ -3896,6 +3903,30 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul
|
||||
BuiltInVariable("gl_LocalInvocationID", EbvLocalInvocationId, symbolTable);
|
||||
BuiltInVariable("gl_GlobalInvocationID", EbvGlobalInvocationId, symbolTable);
|
||||
BuiltInVariable("gl_LocalInvocationIndex", EbvLocalInvocationIndex, symbolTable);
|
||||
|
||||
if (profile != EEsProfile && version < 430) {
|
||||
symbolTable.setVariableExtensions("gl_NumWorkGroups", 1, &E_GL_ARB_compute_shader);
|
||||
symbolTable.setVariableExtensions("gl_WorkGroupSize", 1, &E_GL_ARB_compute_shader);
|
||||
symbolTable.setVariableExtensions("gl_WorkGroupID", 1, &E_GL_ARB_compute_shader);
|
||||
symbolTable.setVariableExtensions("gl_LocalInvocationID", 1, &E_GL_ARB_compute_shader);
|
||||
symbolTable.setVariableExtensions("gl_GlobalInvocationID", 1, &E_GL_ARB_compute_shader);
|
||||
symbolTable.setVariableExtensions("gl_LocalInvocationIndex", 1, &E_GL_ARB_compute_shader);
|
||||
|
||||
symbolTable.setVariableExtensions("gl_MaxComputeWorkGroupCount", 1, &E_GL_ARB_compute_shader);
|
||||
symbolTable.setVariableExtensions("gl_MaxComputeWorkGroupSize", 1, &E_GL_ARB_compute_shader);
|
||||
symbolTable.setVariableExtensions("gl_MaxComputeUniformComponents", 1, &E_GL_ARB_compute_shader);
|
||||
symbolTable.setVariableExtensions("gl_MaxComputeTextureImageUnits", 1, &E_GL_ARB_compute_shader);
|
||||
symbolTable.setVariableExtensions("gl_MaxComputeImageUniforms", 1, &E_GL_ARB_compute_shader);
|
||||
symbolTable.setVariableExtensions("gl_MaxComputeAtomicCounters", 1, &E_GL_ARB_compute_shader);
|
||||
symbolTable.setVariableExtensions("gl_MaxComputeAtomicCounterBuffers", 1, &E_GL_ARB_compute_shader);
|
||||
|
||||
symbolTable.setFunctionExtensions("barrier", 1, &E_GL_ARB_compute_shader);
|
||||
symbolTable.setFunctionExtensions("memoryBarrierAtomicCounter", 1, &E_GL_ARB_compute_shader);
|
||||
symbolTable.setFunctionExtensions("memoryBarrierBuffer", 1, &E_GL_ARB_compute_shader);
|
||||
symbolTable.setFunctionExtensions("memoryBarrierImage", 1, &E_GL_ARB_compute_shader);
|
||||
symbolTable.setFunctionExtensions("memoryBarrierShared", 1, &E_GL_ARB_compute_shader);
|
||||
symbolTable.setFunctionExtensions("groupMemoryBarrier", 1, &E_GL_ARB_compute_shader);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -4092,7 +4123,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul
|
||||
symbolTable.relateToOperator("noise3", EOpNoise);
|
||||
symbolTable.relateToOperator("noise4", EOpNoise);
|
||||
|
||||
if (spv == 0 && (IncludeLegacy(version, profile, spv) || (profile == EEsProfile && version == 100))) {
|
||||
if (spvVersion.spv == 0 && (IncludeLegacy(version, profile, spvVersion) ||
|
||||
(profile == EEsProfile && version == 100))) {
|
||||
symbolTable.relateToOperator("ftransform", EOpFtransform);
|
||||
|
||||
symbolTable.relateToOperator("texture1D", EOpTexture);
|
||||
@ -4232,7 +4264,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul
|
||||
// 2) Tag extension-related symbols added to their base version with their extensions, so
|
||||
// that if an early version has the extension turned off, there is an error reported on use.
|
||||
//
|
||||
void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int /*vulkan*/, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources)
|
||||
void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources)
|
||||
{
|
||||
if (profile != EEsProfile && version >= 430 && version < 440) {
|
||||
symbolTable.setVariableExtensions("gl_MaxTransformFeedbackBuffers", 1, &E_GL_ARB_enhanced_layouts);
|
||||
@ -4248,7 +4280,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int /*v
|
||||
switch(language) {
|
||||
case EShLangFragment:
|
||||
// Set up gl_FragData based on current array size.
|
||||
if (version == 100 || IncludeLegacy(version, profile, spv) || (! ForwardCompatibility && profile != EEsProfile && version < 420)) {
|
||||
if (version == 100 || IncludeLegacy(version, profile, spvVersion) || (! ForwardCompatibility && profile != EEsProfile && version < 420)) {
|
||||
TPrecisionQualifier pq = profile == EEsProfile ? EpqMedium : EpqNone;
|
||||
TType fragData(EbtFloat, EvqFragColor, pq, 4);
|
||||
TArraySizes& arraySizes = *new TArraySizes;
|
||||
|
||||
@ -61,14 +61,14 @@ public:
|
||||
POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator())
|
||||
TBuiltInParseables();
|
||||
virtual ~TBuiltInParseables();
|
||||
virtual void initialize(int version, EProfile, int spv, int vulkan) = 0;
|
||||
virtual void initialize(const TBuiltInResource& resources, int version, EProfile, int spv, int vulkan, EShLanguage) = 0;
|
||||
virtual void initialize(int version, EProfile, const SpvVersion& spvVersion) = 0;
|
||||
virtual void initialize(const TBuiltInResource& resources, int version, EProfile, const SpvVersion& spvVersion, EShLanguage) = 0;
|
||||
virtual const TString& getCommonString() const { return commonBuiltins; }
|
||||
virtual const TString& getStageString(EShLanguage language) const { return stageBuiltins[language]; }
|
||||
|
||||
virtual void identifyBuiltIns(int version, EProfile profile, int spv, int vulkan, EShLanguage language, TSymbolTable& symbolTable) = 0;
|
||||
virtual void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable) = 0;
|
||||
|
||||
virtual void identifyBuiltIns(int version, EProfile profile, int spv, int /*vulkan*/, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources) = 0;
|
||||
virtual void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources) = 0;
|
||||
|
||||
protected:
|
||||
TString commonBuiltins;
|
||||
@ -85,15 +85,15 @@ public:
|
||||
POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator())
|
||||
TBuiltIns();
|
||||
virtual ~TBuiltIns();
|
||||
void initialize(int version, EProfile, int spv, int vulkan);
|
||||
void initialize(const TBuiltInResource& resources, int version, EProfile, int spv, int vulkan, EShLanguage);
|
||||
void initialize(int version, EProfile, const SpvVersion& spvVersion);
|
||||
void initialize(const TBuiltInResource& resources, int version, EProfile, const SpvVersion& spvVersion, EShLanguage);
|
||||
|
||||
void identifyBuiltIns(int version, EProfile profile, int spv, int vulkan, EShLanguage language, TSymbolTable& symbolTable);
|
||||
void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable);
|
||||
|
||||
void identifyBuiltIns(int version, EProfile profile, int spv, int /*vulkan*/, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources);
|
||||
void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources);
|
||||
|
||||
protected:
|
||||
void add2ndGenerationSamplingImaging(int version, EProfile profile, int spv, int vulkan);
|
||||
void add2ndGenerationSamplingImaging(int version, EProfile profile, const SpvVersion& spvVersion);
|
||||
void addSubpassSampling(TSampler, TString& typeName, int version, EProfile profile);
|
||||
void addQueryFunctions(TSampler, TString& typeName, int version, EProfile profile);
|
||||
void addImageFunctions(TSampler, TString& typeName, int version, EProfile profile);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user