Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
e07c703867
@ -23,7 +23,7 @@ There are two components:
|
|||||||
How to add a feature protected by a version/extension/stage/profile: See the
|
How to add a feature protected by a version/extension/stage/profile: See the
|
||||||
comment in `glslang/MachineIndependent/Versions.cpp`.
|
comment in `glslang/MachineIndependent/Versions.cpp`.
|
||||||
|
|
||||||
Things left to do: See `Todo.txt`
|
Tasks waiting to be done are documented as GitHub issues.
|
||||||
|
|
||||||
Execution of Standalone Wrapper
|
Execution of Standalone Wrapper
|
||||||
-------------------------------
|
-------------------------------
|
||||||
@ -177,15 +177,11 @@ For more information, please check `gtests/` directory's
|
|||||||
|
|
||||||
For the `runtests` script, it will generate current results in the
|
For the `runtests` script, it will generate current results in the
|
||||||
`localResults/` directory and `diff` them against the `baseResults/`.
|
`localResults/` directory and `diff` them against the `baseResults/`.
|
||||||
The integration tests to run via the `runtests` script is registered
|
|
||||||
via various `Test/test-*` text files and `Test/testlist`.
|
|
||||||
When you want to update the tracked test results, they need to be
|
When you want to update the tracked test results, they need to be
|
||||||
copied from `localResults/` to `baseResults/`. This can be done by
|
copied from `localResults/` to `baseResults/`. This can be done by
|
||||||
the `bump` shell script.
|
the `bump` shell script.
|
||||||
|
|
||||||
The list of files tested comes from `testlist`, and lists input shaders
|
You can add your own private list of tests, not tracked publicly, by using
|
||||||
in this directory, which must all be public for this to work. However,
|
|
||||||
you can add your own private list of tests, not tracked here, by using
|
|
||||||
`localtestlist` to list non-tracked tests. This is automatically read
|
`localtestlist` to list non-tracked tests. This is automatically read
|
||||||
by `runtests` and included in the `diff` and `bump` process.
|
by `runtests` and included in the `diff` and `bump` process.
|
||||||
|
|
||||||
|
@ -117,6 +117,10 @@ protected:
|
|||||||
spv::Id getSampledType(const glslang::TSampler&);
|
spv::Id getSampledType(const glslang::TSampler&);
|
||||||
spv::Id convertGlslangToSpvType(const glslang::TType& type);
|
spv::Id convertGlslangToSpvType(const glslang::TType& type);
|
||||||
spv::Id convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking, const glslang::TQualifier&);
|
spv::Id convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking, const glslang::TQualifier&);
|
||||||
|
spv::Id convertGlslangStructToSpvType(const glslang::TType&, const glslang::TTypeList* glslangStruct,
|
||||||
|
glslang::TLayoutPacking, const glslang::TQualifier&);
|
||||||
|
void decorateStructType(const glslang::TType&, const glslang::TTypeList* glslangStruct, glslang::TLayoutPacking,
|
||||||
|
const glslang::TQualifier&, spv::Id);
|
||||||
spv::Id makeArraySizeId(const glslang::TArraySizes&, int dim);
|
spv::Id makeArraySizeId(const glslang::TArraySizes&, int dim);
|
||||||
spv::Id accessChainLoad(const glslang::TType& type);
|
spv::Id accessChainLoad(const glslang::TType& type);
|
||||||
void accessChainStore(const glslang::TType& type, spv::Id rvalue);
|
void accessChainStore(const glslang::TType& type, spv::Id rvalue);
|
||||||
@ -414,19 +418,19 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
|||||||
{
|
{
|
||||||
switch (builtIn) {
|
switch (builtIn) {
|
||||||
case glslang::EbvPointSize:
|
case glslang::EbvPointSize:
|
||||||
// Defer adding the capability until the built-in is actually used.
|
// Defer adding the capability until the built-in is actually used.
|
||||||
if (!memberDeclaration) {
|
if (! memberDeclaration) {
|
||||||
switch (glslangIntermediate->getStage()) {
|
switch (glslangIntermediate->getStage()) {
|
||||||
case EShLangGeometry:
|
case EShLangGeometry:
|
||||||
builder.addCapability(spv::CapabilityGeometryPointSize);
|
builder.addCapability(spv::CapabilityGeometryPointSize);
|
||||||
break;
|
break;
|
||||||
case EShLangTessControl:
|
case EShLangTessControl:
|
||||||
case EShLangTessEvaluation:
|
case EShLangTessEvaluation:
|
||||||
builder.addCapability(spv::CapabilityTessellationPointSize);
|
builder.addCapability(spv::CapabilityTessellationPointSize);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return spv::BuiltInPointSize;
|
return spv::BuiltInPointSize;
|
||||||
|
|
||||||
@ -438,12 +442,12 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
|||||||
//
|
//
|
||||||
case glslang::EbvClipDistance:
|
case glslang::EbvClipDistance:
|
||||||
if (!memberDeclaration)
|
if (!memberDeclaration)
|
||||||
builder.addCapability(spv::CapabilityClipDistance);
|
builder.addCapability(spv::CapabilityClipDistance);
|
||||||
return spv::BuiltInClipDistance;
|
return spv::BuiltInClipDistance;
|
||||||
|
|
||||||
case glslang::EbvCullDistance:
|
case glslang::EbvCullDistance:
|
||||||
if (!memberDeclaration)
|
if (!memberDeclaration)
|
||||||
builder.addCapability(spv::CapabilityCullDistance);
|
builder.addCapability(spv::CapabilityCullDistance);
|
||||||
return spv::BuiltInCullDistance;
|
return spv::BuiltInCullDistance;
|
||||||
|
|
||||||
case glslang::EbvViewportIndex:
|
case glslang::EbvViewportIndex:
|
||||||
@ -462,6 +466,10 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
|||||||
builder.addCapability(spv::CapabilitySampleRateShading);
|
builder.addCapability(spv::CapabilitySampleRateShading);
|
||||||
return spv::BuiltInSampleMask;
|
return spv::BuiltInSampleMask;
|
||||||
|
|
||||||
|
case glslang::EbvLayer:
|
||||||
|
builder.addCapability(spv::CapabilityGeometry);
|
||||||
|
return spv::BuiltInLayer;
|
||||||
|
|
||||||
case glslang::EbvPosition: return spv::BuiltInPosition;
|
case glslang::EbvPosition: return spv::BuiltInPosition;
|
||||||
case glslang::EbvVertexId: return spv::BuiltInVertexId;
|
case glslang::EbvVertexId: return spv::BuiltInVertexId;
|
||||||
case glslang::EbvInstanceId: return spv::BuiltInInstanceId;
|
case glslang::EbvInstanceId: return spv::BuiltInInstanceId;
|
||||||
@ -475,7 +483,6 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
|||||||
return (spv::BuiltIn)spv::BadValue;
|
return (spv::BuiltIn)spv::BadValue;
|
||||||
case glslang::EbvPrimitiveId: return spv::BuiltInPrimitiveId;
|
case glslang::EbvPrimitiveId: return spv::BuiltInPrimitiveId;
|
||||||
case glslang::EbvInvocationId: return spv::BuiltInInvocationId;
|
case glslang::EbvInvocationId: return spv::BuiltInInvocationId;
|
||||||
case glslang::EbvLayer: return spv::BuiltInLayer;
|
|
||||||
case glslang::EbvTessLevelInner: return spv::BuiltInTessLevelInner;
|
case glslang::EbvTessLevelInner: return spv::BuiltInTessLevelInner;
|
||||||
case glslang::EbvTessLevelOuter: return spv::BuiltInTessLevelOuter;
|
case glslang::EbvTessLevelOuter: return spv::BuiltInTessLevelOuter;
|
||||||
case glslang::EbvTessCoord: return spv::BuiltInTessCoord;
|
case glslang::EbvTessCoord: return spv::BuiltInTessCoord;
|
||||||
@ -1791,6 +1798,7 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
|||||||
|
|
||||||
// Do full recursive conversion of an arbitrary glslang type to a SPIR-V Id.
|
// Do full recursive conversion of an arbitrary glslang type to a SPIR-V Id.
|
||||||
// explicitLayout can be kept the same throughout the hierarchical recursive walk.
|
// explicitLayout can be kept the same throughout the hierarchical recursive walk.
|
||||||
|
// Mutually recursive with convertGlslangStructToSpvType().
|
||||||
spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking explicitLayout, const glslang::TQualifier& qualifier)
|
spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking explicitLayout, const glslang::TQualifier& qualifier)
|
||||||
{
|
{
|
||||||
spv::Id spvType = spv::NoResult;
|
spv::Id spvType = spv::NoResult;
|
||||||
@ -1829,7 +1837,7 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
|||||||
spvType = builder.makeUintType(64);
|
spvType = builder.makeUintType(64);
|
||||||
break;
|
break;
|
||||||
case glslang::EbtAtomicUint:
|
case glslang::EbtAtomicUint:
|
||||||
logger->tbdFunctionality("Is atomic_uint an opaque handle in the uniform storage class, or an addresses in the atomic storage class?");
|
builder.addCapability(spv::CapabilityAtomicStorage);
|
||||||
spvType = builder.makeUintType(32);
|
spvType = builder.makeUintType(32);
|
||||||
break;
|
break;
|
||||||
case glslang::EbtSampler:
|
case glslang::EbtSampler:
|
||||||
@ -1853,144 +1861,19 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
|||||||
case glslang::EbtBlock:
|
case glslang::EbtBlock:
|
||||||
{
|
{
|
||||||
// If we've seen this struct type, return it
|
// If we've seen this struct type, return it
|
||||||
const glslang::TTypeList* glslangStruct = type.getStruct();
|
const glslang::TTypeList* glslangMembers = type.getStruct();
|
||||||
std::vector<spv::Id> structFields;
|
|
||||||
|
|
||||||
// Try to share structs for different layouts, but not yet for other
|
// Try to share structs for different layouts, but not yet for other
|
||||||
// kinds of qualification (primarily not yet including interpolant qualification).
|
// kinds of qualification (primarily not yet including interpolant qualification).
|
||||||
if (! HasNonLayoutQualifiers(qualifier))
|
if (! HasNonLayoutQualifiers(qualifier))
|
||||||
spvType = structMap[explicitLayout][qualifier.layoutMatrix][glslangStruct];
|
spvType = structMap[explicitLayout][qualifier.layoutMatrix][glslangMembers];
|
||||||
if (spvType != spv::NoResult)
|
if (spvType != spv::NoResult)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// else, we haven't seen it...
|
// else, we haven't seen it...
|
||||||
|
|
||||||
// Create a vector of struct types for SPIR-V to consume
|
|
||||||
int memberDelta = 0; // how much the member's index changes from glslang to SPIR-V, normally 0, except sometimes for blocks
|
|
||||||
if (type.getBasicType() == glslang::EbtBlock)
|
if (type.getBasicType() == glslang::EbtBlock)
|
||||||
memberRemapper[glslangStruct].resize(glslangStruct->size());
|
memberRemapper[glslangMembers].resize(glslangMembers->size());
|
||||||
int locationOffset = 0; // for use across struct members, when they are called recursively
|
spvType = convertGlslangStructToSpvType(type, glslangMembers, explicitLayout, qualifier);
|
||||||
for (int i = 0; i < (int)glslangStruct->size(); i++) {
|
|
||||||
glslang::TType& glslangType = *(*glslangStruct)[i].type;
|
|
||||||
if (glslangType.hiddenMember()) {
|
|
||||||
++memberDelta;
|
|
||||||
if (type.getBasicType() == glslang::EbtBlock)
|
|
||||||
memberRemapper[glslangStruct][i] = -1;
|
|
||||||
} else {
|
|
||||||
if (type.getBasicType() == glslang::EbtBlock)
|
|
||||||
memberRemapper[glslangStruct][i] = i - memberDelta;
|
|
||||||
// modify just this child's view of the qualifier
|
|
||||||
glslang::TQualifier subQualifier = glslangType.getQualifier();
|
|
||||||
InheritQualifiers(subQualifier, qualifier);
|
|
||||||
|
|
||||||
// manually inherit location; it's more complex
|
|
||||||
if (! subQualifier.hasLocation() && qualifier.hasLocation())
|
|
||||||
subQualifier.layoutLocation = qualifier.layoutLocation + locationOffset;
|
|
||||||
if (qualifier.hasLocation())
|
|
||||||
locationOffset += glslangIntermediate->computeTypeLocationSize(glslangType);
|
|
||||||
|
|
||||||
// recurse
|
|
||||||
structFields.push_back(convertGlslangToSpvType(glslangType, explicitLayout, subQualifier));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make the SPIR-V type
|
|
||||||
spvType = builder.makeStructType(structFields, type.getTypeName().c_str());
|
|
||||||
if (! HasNonLayoutQualifiers(qualifier))
|
|
||||||
structMap[explicitLayout][qualifier.layoutMatrix][glslangStruct] = spvType;
|
|
||||||
|
|
||||||
// Name and decorate the non-hidden members
|
|
||||||
int offset = -1;
|
|
||||||
locationOffset = 0; // for use within the members of this struct, right now
|
|
||||||
for (int i = 0; i < (int)glslangStruct->size(); i++) {
|
|
||||||
glslang::TType& glslangType = *(*glslangStruct)[i].type;
|
|
||||||
int member = i;
|
|
||||||
if (type.getBasicType() == glslang::EbtBlock)
|
|
||||||
member = memberRemapper[glslangStruct][i];
|
|
||||||
|
|
||||||
// modify just this child's view of the qualifier
|
|
||||||
glslang::TQualifier subQualifier = glslangType.getQualifier();
|
|
||||||
InheritQualifiers(subQualifier, qualifier);
|
|
||||||
|
|
||||||
// using -1 above to indicate a hidden member
|
|
||||||
if (member >= 0) {
|
|
||||||
builder.addMemberName(spvType, member, glslangType.getFieldName().c_str());
|
|
||||||
addMemberDecoration(spvType, member, TranslateLayoutDecoration(glslangType, subQualifier.layoutMatrix));
|
|
||||||
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) {
|
|
||||||
if (type.getBasicType() == glslang::EbtBlock) {
|
|
||||||
addMemberDecoration(spvType, member, TranslateInterpolationDecoration(subQualifier));
|
|
||||||
addMemberDecoration(spvType, member, TranslateAuxiliaryStorageDecoration(subQualifier));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
addMemberDecoration(spvType, member, TranslateInvariantDecoration(subQualifier));
|
|
||||||
|
|
||||||
if (qualifier.storage == glslang::EvqBuffer) {
|
|
||||||
std::vector<spv::Decoration> memory;
|
|
||||||
TranslateMemoryDecoration(subQualifier, memory);
|
|
||||||
for (unsigned int i = 0; i < memory.size(); ++i)
|
|
||||||
addMemberDecoration(spvType, member, memory[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// compute location decoration; tricky based on whether inheritance is at play
|
|
||||||
// TODO: This algorithm (and it's cousin above doing almost the same thing) should
|
|
||||||
// probably move to the linker stage of the front end proper, and just have the
|
|
||||||
// answer sitting already distributed throughout the individual member locations.
|
|
||||||
int location = -1; // will only decorate if present or inherited
|
|
||||||
if (subQualifier.hasLocation()) { // no inheritance, or override of inheritance
|
|
||||||
// struct members should not have explicit locations
|
|
||||||
assert(type.getBasicType() != glslang::EbtStruct);
|
|
||||||
location = subQualifier.layoutLocation;
|
|
||||||
} else if (type.getBasicType() != glslang::EbtBlock) {
|
|
||||||
// If it is a not a Block, (...) Its members are assigned consecutive locations (...)
|
|
||||||
// The members, and their nested types, must not themselves have Location decorations.
|
|
||||||
}
|
|
||||||
else if (qualifier.hasLocation()) // inheritance
|
|
||||||
location = qualifier.layoutLocation + locationOffset;
|
|
||||||
if (qualifier.hasLocation()) // track for upcoming inheritance
|
|
||||||
locationOffset += glslangIntermediate->computeTypeLocationSize(glslangType);
|
|
||||||
if (location >= 0)
|
|
||||||
builder.addMemberDecoration(spvType, member, spv::DecorationLocation, location);
|
|
||||||
|
|
||||||
// component, XFB, others
|
|
||||||
if (glslangType.getQualifier().hasComponent())
|
|
||||||
builder.addMemberDecoration(spvType, member, spv::DecorationComponent, glslangType.getQualifier().layoutComponent);
|
|
||||||
if (glslangType.getQualifier().hasXfbOffset())
|
|
||||||
builder.addMemberDecoration(spvType, member, spv::DecorationOffset, glslangType.getQualifier().layoutXfbOffset);
|
|
||||||
else if (explicitLayout != glslang::ElpNone) {
|
|
||||||
// figure out what to do with offset, which is accumulating
|
|
||||||
int nextOffset;
|
|
||||||
updateMemberOffset(type, glslangType, offset, nextOffset, explicitLayout, subQualifier.layoutMatrix);
|
|
||||||
if (offset >= 0)
|
|
||||||
builder.addMemberDecoration(spvType, member, spv::DecorationOffset, offset);
|
|
||||||
offset = nextOffset;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (glslangType.isMatrix() && explicitLayout != glslang::ElpNone)
|
|
||||||
builder.addMemberDecoration(spvType, member, spv::DecorationMatrixStride, getMatrixStride(glslangType, explicitLayout, subQualifier.layoutMatrix));
|
|
||||||
|
|
||||||
// built-in variable decorations
|
|
||||||
spv::BuiltIn builtIn = TranslateBuiltInDecoration(glslangType.getQualifier().builtIn, true);
|
|
||||||
if (builtIn != spv::BadValue)
|
|
||||||
addMemberDecoration(spvType, member, spv::DecorationBuiltIn, (int)builtIn);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Decorate the structure
|
|
||||||
addDecoration(spvType, TranslateLayoutDecoration(type, qualifier.layoutMatrix));
|
|
||||||
addDecoration(spvType, TranslateBlockDecoration(type));
|
|
||||||
if (type.getQualifier().hasStream() && glslangIntermediate->isMultiStream()) {
|
|
||||||
builder.addCapability(spv::CapabilityGeometryStreams);
|
|
||||||
builder.addDecoration(spvType, spv::DecorationStream, type.getQualifier().layoutStream);
|
|
||||||
}
|
|
||||||
if (glslangIntermediate->getXfbMode()) {
|
|
||||||
builder.addCapability(spv::CapabilityTransformFeedback);
|
|
||||||
if (type.getQualifier().hasXfbStride())
|
|
||||||
builder.addDecoration(spvType, spv::DecorationXfbStride, type.getQualifier().layoutXfbStride);
|
|
||||||
if (type.getQualifier().hasXfbBuffer())
|
|
||||||
builder.addDecoration(spvType, spv::DecorationXfbBuffer, type.getQualifier().layoutXfbBuffer);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -2053,6 +1936,161 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
|||||||
return spvType;
|
return spvType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Do full recursive conversion of a glslang structure (or block) type to a SPIR-V Id.
|
||||||
|
// explicitLayout can be kept the same throughout the hierarchical recursive walk.
|
||||||
|
// Mutually recursive with convertGlslangToSpvType().
|
||||||
|
spv::Id TGlslangToSpvTraverser::convertGlslangStructToSpvType(const glslang::TType& type,
|
||||||
|
const glslang::TTypeList* glslangMembers,
|
||||||
|
glslang::TLayoutPacking explicitLayout,
|
||||||
|
const glslang::TQualifier& qualifier)
|
||||||
|
{
|
||||||
|
// Create a vector of struct types for SPIR-V to consume
|
||||||
|
std::vector<spv::Id> spvMembers;
|
||||||
|
int memberDelta = 0; // how much the member's index changes from glslang to SPIR-V, normally 0, except sometimes for blocks
|
||||||
|
int locationOffset = 0; // for use across struct members, when they are called recursively
|
||||||
|
for (int i = 0; i < (int)glslangMembers->size(); i++) {
|
||||||
|
glslang::TType& glslangMember = *(*glslangMembers)[i].type;
|
||||||
|
if (glslangMember.hiddenMember()) {
|
||||||
|
++memberDelta;
|
||||||
|
if (type.getBasicType() == glslang::EbtBlock)
|
||||||
|
memberRemapper[glslangMembers][i] = -1;
|
||||||
|
} else {
|
||||||
|
if (type.getBasicType() == glslang::EbtBlock)
|
||||||
|
memberRemapper[glslangMembers][i] = i - memberDelta;
|
||||||
|
// modify just this child's view of the qualifier
|
||||||
|
glslang::TQualifier memberQualifier = glslangMember.getQualifier();
|
||||||
|
InheritQualifiers(memberQualifier, qualifier);
|
||||||
|
|
||||||
|
// manually inherit location; it's more complex
|
||||||
|
if (! memberQualifier.hasLocation() && qualifier.hasLocation())
|
||||||
|
memberQualifier.layoutLocation = qualifier.layoutLocation + locationOffset;
|
||||||
|
if (qualifier.hasLocation())
|
||||||
|
locationOffset += glslangIntermediate->computeTypeLocationSize(glslangMember);
|
||||||
|
|
||||||
|
// recurse
|
||||||
|
spvMembers.push_back(convertGlslangToSpvType(glslangMember, explicitLayout, memberQualifier));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make the SPIR-V type
|
||||||
|
spv::Id spvType = builder.makeStructType(spvMembers, type.getTypeName().c_str());
|
||||||
|
if (! HasNonLayoutQualifiers(qualifier))
|
||||||
|
structMap[explicitLayout][qualifier.layoutMatrix][glslangMembers] = spvType;
|
||||||
|
|
||||||
|
// Decorate it
|
||||||
|
decorateStructType(type, glslangMembers, explicitLayout, qualifier, spvType);
|
||||||
|
|
||||||
|
return spvType;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TGlslangToSpvTraverser::decorateStructType(const glslang::TType& type,
|
||||||
|
const glslang::TTypeList* glslangMembers,
|
||||||
|
glslang::TLayoutPacking explicitLayout,
|
||||||
|
const glslang::TQualifier& qualifier,
|
||||||
|
spv::Id spvType)
|
||||||
|
{
|
||||||
|
// Name and decorate the non-hidden members
|
||||||
|
int offset = -1;
|
||||||
|
int locationOffset = 0; // for use within the members of this struct
|
||||||
|
for (int i = 0; i < (int)glslangMembers->size(); i++) {
|
||||||
|
glslang::TType& glslangMember = *(*glslangMembers)[i].type;
|
||||||
|
int member = i;
|
||||||
|
if (type.getBasicType() == glslang::EbtBlock)
|
||||||
|
member = memberRemapper[glslangMembers][i];
|
||||||
|
|
||||||
|
// modify just this child's view of the qualifier
|
||||||
|
glslang::TQualifier memberQualifier = glslangMember.getQualifier();
|
||||||
|
InheritQualifiers(memberQualifier, qualifier);
|
||||||
|
|
||||||
|
// using -1 above to indicate a hidden member
|
||||||
|
if (member >= 0) {
|
||||||
|
builder.addMemberName(spvType, member, glslangMember.getFieldName().c_str());
|
||||||
|
addMemberDecoration(spvType, member, TranslateLayoutDecoration(glslangMember, memberQualifier.layoutMatrix));
|
||||||
|
addMemberDecoration(spvType, member, TranslatePrecisionDecoration(glslangMember));
|
||||||
|
// 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) {
|
||||||
|
if (type.getBasicType() == glslang::EbtBlock) {
|
||||||
|
addMemberDecoration(spvType, member, TranslateInterpolationDecoration(memberQualifier));
|
||||||
|
addMemberDecoration(spvType, member, TranslateAuxiliaryStorageDecoration(memberQualifier));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
addMemberDecoration(spvType, member, TranslateInvariantDecoration(memberQualifier));
|
||||||
|
|
||||||
|
if (qualifier.storage == glslang::EvqBuffer) {
|
||||||
|
std::vector<spv::Decoration> memory;
|
||||||
|
TranslateMemoryDecoration(memberQualifier, memory);
|
||||||
|
for (unsigned int i = 0; i < memory.size(); ++i)
|
||||||
|
addMemberDecoration(spvType, member, memory[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Compute location decoration; tricky based on whether inheritance is at play and
|
||||||
|
// what kind of container we have, etc.
|
||||||
|
// TODO: This algorithm (and it's cousin above doing almost the same thing) should
|
||||||
|
// probably move to the linker stage of the front end proper, and just have the
|
||||||
|
// answer sitting already distributed throughout the individual member locations.
|
||||||
|
int location = -1; // will only decorate if present or inherited
|
||||||
|
// Ignore member locations if the container is an array, as that's
|
||||||
|
// ill-specified and decisions have been made to not allow this anyway.
|
||||||
|
// The object itself must have a location, and that comes out from decorating the object,
|
||||||
|
// not the type (this code decorates types).
|
||||||
|
if (! type.isArray()) {
|
||||||
|
if (memberQualifier.hasLocation()) { // no inheritance, or override of inheritance
|
||||||
|
// struct members should not have explicit locations
|
||||||
|
assert(type.getBasicType() != glslang::EbtStruct);
|
||||||
|
location = memberQualifier.layoutLocation;
|
||||||
|
} else if (type.getBasicType() != glslang::EbtBlock) {
|
||||||
|
// If it is a not a Block, (...) Its members are assigned consecutive locations (...)
|
||||||
|
// The members, and their nested types, must not themselves have Location decorations.
|
||||||
|
} else if (qualifier.hasLocation()) // inheritance
|
||||||
|
location = qualifier.layoutLocation + locationOffset;
|
||||||
|
}
|
||||||
|
if (location >= 0)
|
||||||
|
builder.addMemberDecoration(spvType, member, spv::DecorationLocation, location);
|
||||||
|
|
||||||
|
if (qualifier.hasLocation()) // track for upcoming inheritance
|
||||||
|
locationOffset += glslangIntermediate->computeTypeLocationSize(glslangMember);
|
||||||
|
|
||||||
|
// component, XFB, others
|
||||||
|
if (glslangMember.getQualifier().hasComponent())
|
||||||
|
builder.addMemberDecoration(spvType, member, spv::DecorationComponent, glslangMember.getQualifier().layoutComponent);
|
||||||
|
if (glslangMember.getQualifier().hasXfbOffset())
|
||||||
|
builder.addMemberDecoration(spvType, member, spv::DecorationOffset, glslangMember.getQualifier().layoutXfbOffset);
|
||||||
|
else if (explicitLayout != glslang::ElpNone) {
|
||||||
|
// figure out what to do with offset, which is accumulating
|
||||||
|
int nextOffset;
|
||||||
|
updateMemberOffset(type, glslangMember, offset, nextOffset, explicitLayout, memberQualifier.layoutMatrix);
|
||||||
|
if (offset >= 0)
|
||||||
|
builder.addMemberDecoration(spvType, member, spv::DecorationOffset, offset);
|
||||||
|
offset = nextOffset;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (glslangMember.isMatrix() && explicitLayout != glslang::ElpNone)
|
||||||
|
builder.addMemberDecoration(spvType, member, spv::DecorationMatrixStride, getMatrixStride(glslangMember, explicitLayout, memberQualifier.layoutMatrix));
|
||||||
|
|
||||||
|
// built-in variable decorations
|
||||||
|
spv::BuiltIn builtIn = TranslateBuiltInDecoration(glslangMember.getQualifier().builtIn, true);
|
||||||
|
if (builtIn != spv::BadValue)
|
||||||
|
addMemberDecoration(spvType, member, spv::DecorationBuiltIn, (int)builtIn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Decorate the structure
|
||||||
|
addDecoration(spvType, TranslateLayoutDecoration(type, qualifier.layoutMatrix));
|
||||||
|
addDecoration(spvType, TranslateBlockDecoration(type));
|
||||||
|
if (type.getQualifier().hasStream() && glslangIntermediate->isMultiStream()) {
|
||||||
|
builder.addCapability(spv::CapabilityGeometryStreams);
|
||||||
|
builder.addDecoration(spvType, spv::DecorationStream, type.getQualifier().layoutStream);
|
||||||
|
}
|
||||||
|
if (glslangIntermediate->getXfbMode()) {
|
||||||
|
builder.addCapability(spv::CapabilityTransformFeedback);
|
||||||
|
if (type.getQualifier().hasXfbStride())
|
||||||
|
builder.addDecoration(spvType, spv::DecorationXfbStride, type.getQualifier().layoutXfbStride);
|
||||||
|
if (type.getQualifier().hasXfbBuffer())
|
||||||
|
builder.addDecoration(spvType, spv::DecorationXfbBuffer, type.getQualifier().layoutXfbBuffer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Turn the expression forming the array size into an id.
|
// Turn the expression forming the array size into an id.
|
||||||
// This is not quite trivial, because of specialization constants.
|
// This is not quite trivial, because of specialization constants.
|
||||||
// Sometimes, a raw constant is turned into an Id, and sometimes
|
// Sometimes, a raw constant is turned into an Id, and sometimes
|
||||||
@ -4026,7 +4064,7 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
|
|||||||
id = createSpvVariable(symbol);
|
id = createSpvVariable(symbol);
|
||||||
symbolValues[symbol->getId()] = id;
|
symbolValues[symbol->getId()] = id;
|
||||||
|
|
||||||
if (! symbol->getType().isStruct()) {
|
if (symbol->getBasicType() != glslang::EbtBlock) {
|
||||||
addDecoration(id, TranslatePrecisionDecoration(symbol->getType()));
|
addDecoration(id, TranslatePrecisionDecoration(symbol->getType()));
|
||||||
addDecoration(id, TranslateInterpolationDecoration(symbol->getType().getQualifier()));
|
addDecoration(id, TranslateInterpolationDecoration(symbol->getType().getQualifier()));
|
||||||
addDecoration(id, TranslateAuxiliaryStorageDecoration(symbol->getType().getQualifier()));
|
addDecoration(id, TranslateAuxiliaryStorageDecoration(symbol->getType().getQualifier()));
|
||||||
@ -4045,6 +4083,9 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
|
|||||||
if (symbol->getQualifier().hasXfbOffset())
|
if (symbol->getQualifier().hasXfbOffset())
|
||||||
builder.addDecoration(id, spv::DecorationOffset, symbol->getQualifier().layoutXfbOffset);
|
builder.addDecoration(id, spv::DecorationOffset, symbol->getQualifier().layoutXfbOffset);
|
||||||
}
|
}
|
||||||
|
// atomic counters use this:
|
||||||
|
if (symbol->getQualifier().hasOffset())
|
||||||
|
builder.addDecoration(id, spv::DecorationOffset, symbol->getQualifier().layoutOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (symbol->getQualifier().hasLocation())
|
if (symbol->getQualifier().hasLocation())
|
||||||
|
@ -2045,8 +2045,15 @@ Block& Builder::makeNewBlock()
|
|||||||
|
|
||||||
Builder::LoopBlocks& Builder::makeNewLoop()
|
Builder::LoopBlocks& Builder::makeNewLoop()
|
||||||
{
|
{
|
||||||
// Older MSVC versions don't allow inlining of blocks below.
|
// This verbosity is needed to simultaneously get the same behavior
|
||||||
LoopBlocks blocks = {makeNewBlock(), makeNewBlock(), makeNewBlock(), makeNewBlock()};
|
// everywhere (id's in the same order), have a syntax that works
|
||||||
|
// across lots of versions of C++, have no warnings from pedantic
|
||||||
|
// compilation modes, and leave the rest of the code alone.
|
||||||
|
Block& head = makeNewBlock();
|
||||||
|
Block& body = makeNewBlock();
|
||||||
|
Block& merge = makeNewBlock();
|
||||||
|
Block& continue_target = makeNewBlock();
|
||||||
|
LoopBlocks blocks(head, body, merge, continue_target);
|
||||||
loops.push(blocks);
|
loops.push(blocks);
|
||||||
return loops.top();
|
return loops.top();
|
||||||
}
|
}
|
||||||
|
@ -397,7 +397,12 @@ public:
|
|||||||
void endSwitch(std::vector<Block*>& segmentBB);
|
void endSwitch(std::vector<Block*>& segmentBB);
|
||||||
|
|
||||||
struct LoopBlocks {
|
struct LoopBlocks {
|
||||||
|
LoopBlocks(Block& head, Block& body, Block& merge, Block& continue_target) :
|
||||||
|
head(head), body(body), merge(merge), continue_target(continue_target) { }
|
||||||
Block &head, &body, &merge, &continue_target;
|
Block &head, &body, &merge, &continue_target;
|
||||||
|
private:
|
||||||
|
LoopBlocks();
|
||||||
|
LoopBlocks& operator=(const LoopBlocks&);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Start a new loop and prepare the builder to generate code for it. Until
|
// Start a new loop and prepare the builder to generate code for it. Until
|
||||||
|
@ -238,7 +238,8 @@ std::string GetDefaultTBuiltInResourceString()
|
|||||||
return ostream.str();
|
return ostream.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DecodeResourceLimits(TBuiltInResource* resources, char* config) {
|
void DecodeResourceLimits(TBuiltInResource* resources, char* config)
|
||||||
|
{
|
||||||
const char* delims = " \t\n\r";
|
const char* delims = " \t\n\r";
|
||||||
const char* token = strtok(config, delims);
|
const char* token = strtok(config, delims);
|
||||||
while (token) {
|
while (token) {
|
||||||
|
@ -58,25 +58,26 @@ extern "C" {
|
|||||||
|
|
||||||
// Command-line options
|
// Command-line options
|
||||||
enum TOptions {
|
enum TOptions {
|
||||||
EOptionNone = 0x0000,
|
EOptionNone = 0,
|
||||||
EOptionIntermediate = 0x0001,
|
EOptionIntermediate = (1 << 0),
|
||||||
EOptionSuppressInfolog = 0x0002,
|
EOptionSuppressInfolog = (1 << 1),
|
||||||
EOptionMemoryLeakMode = 0x0004,
|
EOptionMemoryLeakMode = (1 << 2),
|
||||||
EOptionRelaxedErrors = 0x0008,
|
EOptionRelaxedErrors = (1 << 3),
|
||||||
EOptionGiveWarnings = 0x0010,
|
EOptionGiveWarnings = (1 << 4),
|
||||||
EOptionLinkProgram = 0x0020,
|
EOptionLinkProgram = (1 << 5),
|
||||||
EOptionMultiThreaded = 0x0040,
|
EOptionMultiThreaded = (1 << 6),
|
||||||
EOptionDumpConfig = 0x0080,
|
EOptionDumpConfig = (1 << 7),
|
||||||
EOptionDumpReflection = 0x0100,
|
EOptionDumpReflection = (1 << 8),
|
||||||
EOptionSuppressWarnings = 0x0200,
|
EOptionSuppressWarnings = (1 << 9),
|
||||||
EOptionDumpVersions = 0x0400,
|
EOptionDumpVersions = (1 << 10),
|
||||||
EOptionSpv = 0x0800,
|
EOptionSpv = (1 << 11),
|
||||||
EOptionHumanReadableSpv = 0x1000,
|
EOptionHumanReadableSpv = (1 << 12),
|
||||||
EOptionVulkanRules = 0x2000,
|
EOptionVulkanRules = (1 << 13),
|
||||||
EOptionDefaultDesktop = 0x4000,
|
EOptionDefaultDesktop = (1 << 14),
|
||||||
EOptionOutputPreprocessed = 0x8000,
|
EOptionOutputPreprocessed = (1 << 15),
|
||||||
EOptionOutputHexadecimal = 0x10000,
|
EOptionOutputHexadecimal = (1 << 16),
|
||||||
EOptionReadHlsl = 0x20000,
|
EOptionReadHlsl = (1 << 17),
|
||||||
|
EOptionCascadingErrors = (1 << 18),
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -223,7 +224,13 @@ void ProcessArguments(int argc, char* argv[])
|
|||||||
switch (argv[0][1]) {
|
switch (argv[0][1]) {
|
||||||
case 'H':
|
case 'H':
|
||||||
Options |= EOptionHumanReadableSpv;
|
Options |= EOptionHumanReadableSpv;
|
||||||
// fall through to -V
|
if ((Options & EOptionSpv) == 0) {
|
||||||
|
// default to Vulkan
|
||||||
|
Options |= EOptionSpv;
|
||||||
|
Options |= EOptionVulkanRules;
|
||||||
|
Options |= EOptionLinkProgram;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 'V':
|
case 'V':
|
||||||
Options |= EOptionSpv;
|
Options |= EOptionSpv;
|
||||||
Options |= EOptionVulkanRules;
|
Options |= EOptionVulkanRules;
|
||||||
@ -232,6 +239,8 @@ void ProcessArguments(int argc, char* argv[])
|
|||||||
case 'G':
|
case 'G':
|
||||||
Options |= EOptionSpv;
|
Options |= EOptionSpv;
|
||||||
Options |= EOptionLinkProgram;
|
Options |= EOptionLinkProgram;
|
||||||
|
// undo a -H default to Vulkan
|
||||||
|
Options &= ~EOptionVulkanRules;
|
||||||
break;
|
break;
|
||||||
case 'E':
|
case 'E':
|
||||||
Options |= EOptionOutputPreprocessed;
|
Options |= EOptionOutputPreprocessed;
|
||||||
@ -239,6 +248,9 @@ void ProcessArguments(int argc, char* argv[])
|
|||||||
case 'c':
|
case 'c':
|
||||||
Options |= EOptionDumpConfig;
|
Options |= EOptionDumpConfig;
|
||||||
break;
|
break;
|
||||||
|
case 'C':
|
||||||
|
Options |= EOptionCascadingErrors;
|
||||||
|
break;
|
||||||
case 'd':
|
case 'd':
|
||||||
Options |= EOptionDefaultDesktop;
|
Options |= EOptionDefaultDesktop;
|
||||||
break;
|
break;
|
||||||
@ -339,6 +351,8 @@ void SetMessageOptions(EShMessages& messages)
|
|||||||
messages = (EShMessages)(messages | EShMsgOnlyPreprocessor);
|
messages = (EShMessages)(messages | EShMsgOnlyPreprocessor);
|
||||||
if (Options & EOptionReadHlsl)
|
if (Options & EOptionReadHlsl)
|
||||||
messages = (EShMessages)(messages | EShMsgReadHlsl);
|
messages = (EShMessages)(messages | EShMsgReadHlsl);
|
||||||
|
if (Options & EOptionCascadingErrors)
|
||||||
|
messages = (EShMessages)(messages | EShMsgCascadingErrors);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -764,6 +778,7 @@ void usage()
|
|||||||
" errors will appear on stderr.\n"
|
" errors will appear on stderr.\n"
|
||||||
" -c configuration dump;\n"
|
" -c configuration dump;\n"
|
||||||
" creates the default configuration file (redirect to a .conf file)\n"
|
" creates the default configuration file (redirect to a .conf file)\n"
|
||||||
|
" -C cascading errors; risks crashes from accumulation of error recoveries\n"
|
||||||
" -d default to desktop (#version 110) when there is no shader #version\n"
|
" -d default to desktop (#version 110) when there is no shader #version\n"
|
||||||
" (default is ES version 100)\n"
|
" (default is ES version 100)\n"
|
||||||
" -D input is HLSL\n"
|
" -D input is HLSL\n"
|
||||||
|
@ -44,7 +44,7 @@ ERROR: 0:107: 'overloadE' : no matching overloaded function found
|
|||||||
ERROR: 0:108: 'overloadE' : no matching overloaded function found
|
ERROR: 0:108: 'overloadE' : no matching overloaded function found
|
||||||
ERROR: 0:111: 'overloadE' : no matching overloaded function found
|
ERROR: 0:111: 'overloadE' : no matching overloaded function found
|
||||||
ERROR: 0:117: 'overloadF' : no matching overloaded function found
|
ERROR: 0:117: 'overloadF' : no matching overloaded function found
|
||||||
ERROR: 0:121: 'gl_TexCoord array size' : must be less than gl_MaxTextureCoords (32)
|
ERROR: 0:121: 'gl_TexCoord array size' : must be less than or equal to gl_MaxTextureCoords (32)
|
||||||
ERROR: 0:165: 'switch' : Reserved word.
|
ERROR: 0:165: 'switch' : Reserved word.
|
||||||
ERROR: 0:171: 'default' : Reserved word.
|
ERROR: 0:171: 'default' : Reserved word.
|
||||||
ERROR: 0:165: 'switch statements' : not supported for this version or the enabled extensions
|
ERROR: 0:165: 'switch statements' : not supported for this version or the enabled extensions
|
||||||
|
@ -161,9 +161,9 @@ ERROR: node is still EOpNull!
|
|||||||
0:62 packSnorm2x16 (global highp uint)
|
0:62 packSnorm2x16 (global highp uint)
|
||||||
0:62 'v2a' (global mediump 2-component vector of float)
|
0:62 'v2a' (global mediump 2-component vector of float)
|
||||||
0:63 Sequence
|
0:63 Sequence
|
||||||
0:63 move second child to first child (temp highp 2-component vector of float)
|
0:63 move second child to first child (temp mediump 2-component vector of float)
|
||||||
0:63 'v20' (temp mediump 2-component vector of float)
|
0:63 'v20' (temp mediump 2-component vector of float)
|
||||||
0:63 unpackSnorm2x16 (global highp 2-component vector of float)
|
0:63 unpackSnorm2x16 (global mediump 2-component vector of float)
|
||||||
0:63 'uy' (global mediump uint)
|
0:63 'uy' (global mediump uint)
|
||||||
0:64 Sequence
|
0:64 Sequence
|
||||||
0:64 move second child to first child (temp highp uint)
|
0:64 move second child to first child (temp highp uint)
|
||||||
@ -368,9 +368,9 @@ ERROR: node is still EOpNull!
|
|||||||
0:62 packSnorm2x16 (global highp uint)
|
0:62 packSnorm2x16 (global highp uint)
|
||||||
0:62 'v2a' (global mediump 2-component vector of float)
|
0:62 'v2a' (global mediump 2-component vector of float)
|
||||||
0:63 Sequence
|
0:63 Sequence
|
||||||
0:63 move second child to first child (temp highp 2-component vector of float)
|
0:63 move second child to first child (temp mediump 2-component vector of float)
|
||||||
0:63 'v20' (temp mediump 2-component vector of float)
|
0:63 'v20' (temp mediump 2-component vector of float)
|
||||||
0:63 unpackSnorm2x16 (global highp 2-component vector of float)
|
0:63 unpackSnorm2x16 (global mediump 2-component vector of float)
|
||||||
0:63 'uy' (global mediump uint)
|
0:63 'uy' (global mediump uint)
|
||||||
0:64 Sequence
|
0:64 Sequence
|
||||||
0:64 move second child to first child (temp highp uint)
|
0:64 move second child to first child (temp highp uint)
|
||||||
|
@ -179,27 +179,27 @@ ERROR: node is still EOpNull!
|
|||||||
0:31 'u4' (temp highp 4-component vector of uint)
|
0:31 'u4' (temp highp 4-component vector of uint)
|
||||||
0:32 move second child to first child (temp highp int)
|
0:32 move second child to first child (temp highp int)
|
||||||
0:32 'i1' (temp highp int)
|
0:32 'i1' (temp highp int)
|
||||||
0:32 bitCount (global lowp int)
|
0:32 bitCount (global highp int)
|
||||||
0:32 'i1' (temp highp int)
|
0:32 'i1' (temp highp int)
|
||||||
0:33 move second child to first child (temp highp 3-component vector of int)
|
0:33 move second child to first child (temp highp 3-component vector of int)
|
||||||
0:33 'i3' (temp highp 3-component vector of int)
|
0:33 'i3' (temp highp 3-component vector of int)
|
||||||
0:33 bitCount (global lowp 3-component vector of int)
|
0:33 bitCount (global highp 3-component vector of int)
|
||||||
0:33 'u3' (temp highp 3-component vector of uint)
|
0:33 'u3' (temp highp 3-component vector of uint)
|
||||||
0:34 move second child to first child (temp highp 2-component vector of int)
|
0:34 move second child to first child (temp highp 2-component vector of int)
|
||||||
0:34 'i2' (temp highp 2-component vector of int)
|
0:34 'i2' (temp highp 2-component vector of int)
|
||||||
0:34 findLSB (global lowp 2-component vector of int)
|
0:34 findLSB (global highp 2-component vector of int)
|
||||||
0:34 'i2' (temp highp 2-component vector of int)
|
0:34 'i2' (temp highp 2-component vector of int)
|
||||||
0:35 move second child to first child (temp highp 4-component vector of int)
|
0:35 move second child to first child (temp highp 4-component vector of int)
|
||||||
0:35 'i4' (temp highp 4-component vector of int)
|
0:35 'i4' (temp highp 4-component vector of int)
|
||||||
0:35 findLSB (global lowp 4-component vector of int)
|
0:35 findLSB (global highp 4-component vector of int)
|
||||||
0:35 'u4' (temp highp 4-component vector of uint)
|
0:35 'u4' (temp highp 4-component vector of uint)
|
||||||
0:36 move second child to first child (temp highp int)
|
0:36 move second child to first child (temp highp int)
|
||||||
0:36 'i1' (temp highp int)
|
0:36 'i1' (temp highp int)
|
||||||
0:36 findMSB (global lowp int)
|
0:36 findMSB (global highp int)
|
||||||
0:36 'i1' (temp highp int)
|
0:36 'i1' (temp highp int)
|
||||||
0:37 move second child to first child (temp highp 2-component vector of int)
|
0:37 move second child to first child (temp highp 2-component vector of int)
|
||||||
0:37 'i2' (temp highp 2-component vector of int)
|
0:37 'i2' (temp highp 2-component vector of int)
|
||||||
0:37 findMSB (global lowp 2-component vector of int)
|
0:37 findMSB (global highp 2-component vector of int)
|
||||||
0:37 'u2' (temp highp 2-component vector of uint)
|
0:37 'u2' (temp highp 2-component vector of uint)
|
||||||
0:40 move second child to first child (temp highp 3-component vector of float)
|
0:40 move second child to first child (temp highp 3-component vector of float)
|
||||||
0:40 'v3' (temp highp 3-component vector of float)
|
0:40 'v3' (temp highp 3-component vector of float)
|
||||||
@ -219,13 +219,13 @@ ERROR: node is still EOpNull!
|
|||||||
0:46 'u1' (temp highp uint)
|
0:46 'u1' (temp highp uint)
|
||||||
0:46 PackSnorm4x8 (global highp uint)
|
0:46 PackSnorm4x8 (global highp uint)
|
||||||
0:46 'v4' (temp mediump 4-component vector of float)
|
0:46 'v4' (temp mediump 4-component vector of float)
|
||||||
0:47 move second child to first child (temp mediump 4-component vector of float)
|
0:47 move second child to first child (temp highp 4-component vector of float)
|
||||||
0:47 'v4' (temp mediump 4-component vector of float)
|
0:47 'v4' (temp mediump 4-component vector of float)
|
||||||
0:47 UnpackUnorm4x8 (global mediump 4-component vector of float)
|
0:47 UnpackUnorm4x8 (global highp 4-component vector of float)
|
||||||
0:47 'u1' (temp highp uint)
|
0:47 'u1' (temp highp uint)
|
||||||
0:48 move second child to first child (temp mediump 4-component vector of float)
|
0:48 move second child to first child (temp highp 4-component vector of float)
|
||||||
0:48 'v4' (temp mediump 4-component vector of float)
|
0:48 'v4' (temp mediump 4-component vector of float)
|
||||||
0:48 UnpackSnorm4x8 (global mediump 4-component vector of float)
|
0:48 UnpackSnorm4x8 (global highp 4-component vector of float)
|
||||||
0:48 'u1' (temp highp uint)
|
0:48 'u1' (temp highp uint)
|
||||||
0:60 Function Definition: foo( (global void)
|
0:60 Function Definition: foo( (global void)
|
||||||
0:60 Function Parameters:
|
0:60 Function Parameters:
|
||||||
@ -1110,27 +1110,27 @@ ERROR: node is still EOpNull!
|
|||||||
0:31 'u4' (temp highp 4-component vector of uint)
|
0:31 'u4' (temp highp 4-component vector of uint)
|
||||||
0:32 move second child to first child (temp highp int)
|
0:32 move second child to first child (temp highp int)
|
||||||
0:32 'i1' (temp highp int)
|
0:32 'i1' (temp highp int)
|
||||||
0:32 bitCount (global lowp int)
|
0:32 bitCount (global highp int)
|
||||||
0:32 'i1' (temp highp int)
|
0:32 'i1' (temp highp int)
|
||||||
0:33 move second child to first child (temp highp 3-component vector of int)
|
0:33 move second child to first child (temp highp 3-component vector of int)
|
||||||
0:33 'i3' (temp highp 3-component vector of int)
|
0:33 'i3' (temp highp 3-component vector of int)
|
||||||
0:33 bitCount (global lowp 3-component vector of int)
|
0:33 bitCount (global highp 3-component vector of int)
|
||||||
0:33 'u3' (temp highp 3-component vector of uint)
|
0:33 'u3' (temp highp 3-component vector of uint)
|
||||||
0:34 move second child to first child (temp highp 2-component vector of int)
|
0:34 move second child to first child (temp highp 2-component vector of int)
|
||||||
0:34 'i2' (temp highp 2-component vector of int)
|
0:34 'i2' (temp highp 2-component vector of int)
|
||||||
0:34 findLSB (global lowp 2-component vector of int)
|
0:34 findLSB (global highp 2-component vector of int)
|
||||||
0:34 'i2' (temp highp 2-component vector of int)
|
0:34 'i2' (temp highp 2-component vector of int)
|
||||||
0:35 move second child to first child (temp highp 4-component vector of int)
|
0:35 move second child to first child (temp highp 4-component vector of int)
|
||||||
0:35 'i4' (temp highp 4-component vector of int)
|
0:35 'i4' (temp highp 4-component vector of int)
|
||||||
0:35 findLSB (global lowp 4-component vector of int)
|
0:35 findLSB (global highp 4-component vector of int)
|
||||||
0:35 'u4' (temp highp 4-component vector of uint)
|
0:35 'u4' (temp highp 4-component vector of uint)
|
||||||
0:36 move second child to first child (temp highp int)
|
0:36 move second child to first child (temp highp int)
|
||||||
0:36 'i1' (temp highp int)
|
0:36 'i1' (temp highp int)
|
||||||
0:36 findMSB (global lowp int)
|
0:36 findMSB (global highp int)
|
||||||
0:36 'i1' (temp highp int)
|
0:36 'i1' (temp highp int)
|
||||||
0:37 move second child to first child (temp highp 2-component vector of int)
|
0:37 move second child to first child (temp highp 2-component vector of int)
|
||||||
0:37 'i2' (temp highp 2-component vector of int)
|
0:37 'i2' (temp highp 2-component vector of int)
|
||||||
0:37 findMSB (global lowp 2-component vector of int)
|
0:37 findMSB (global highp 2-component vector of int)
|
||||||
0:37 'u2' (temp highp 2-component vector of uint)
|
0:37 'u2' (temp highp 2-component vector of uint)
|
||||||
0:40 move second child to first child (temp highp 3-component vector of float)
|
0:40 move second child to first child (temp highp 3-component vector of float)
|
||||||
0:40 'v3' (temp highp 3-component vector of float)
|
0:40 'v3' (temp highp 3-component vector of float)
|
||||||
@ -1150,13 +1150,13 @@ ERROR: node is still EOpNull!
|
|||||||
0:46 'u1' (temp highp uint)
|
0:46 'u1' (temp highp uint)
|
||||||
0:46 PackSnorm4x8 (global highp uint)
|
0:46 PackSnorm4x8 (global highp uint)
|
||||||
0:46 'v4' (temp mediump 4-component vector of float)
|
0:46 'v4' (temp mediump 4-component vector of float)
|
||||||
0:47 move second child to first child (temp mediump 4-component vector of float)
|
0:47 move second child to first child (temp highp 4-component vector of float)
|
||||||
0:47 'v4' (temp mediump 4-component vector of float)
|
0:47 'v4' (temp mediump 4-component vector of float)
|
||||||
0:47 UnpackUnorm4x8 (global mediump 4-component vector of float)
|
0:47 UnpackUnorm4x8 (global highp 4-component vector of float)
|
||||||
0:47 'u1' (temp highp uint)
|
0:47 'u1' (temp highp uint)
|
||||||
0:48 move second child to first child (temp mediump 4-component vector of float)
|
0:48 move second child to first child (temp highp 4-component vector of float)
|
||||||
0:48 'v4' (temp mediump 4-component vector of float)
|
0:48 'v4' (temp mediump 4-component vector of float)
|
||||||
0:48 UnpackSnorm4x8 (global mediump 4-component vector of float)
|
0:48 UnpackSnorm4x8 (global highp 4-component vector of float)
|
||||||
0:48 'u1' (temp highp uint)
|
0:48 'u1' (temp highp uint)
|
||||||
0:60 Function Definition: foo( (global void)
|
0:60 Function Definition: foo( (global void)
|
||||||
0:60 Function Parameters:
|
0:60 Function Parameters:
|
||||||
|
@ -14,7 +14,7 @@ ERROR: 0:28: '' : cannot use invariant qualifier on a function parameter
|
|||||||
ERROR: 0:30: '' : cannot use layout qualifiers on a function parameter
|
ERROR: 0:30: '' : cannot use layout qualifiers on a function parameter
|
||||||
ERROR: 0:31: '' : cannot use auxiliary or interpolation qualifiers on a function parameter
|
ERROR: 0:31: '' : cannot use auxiliary or interpolation qualifiers on a function parameter
|
||||||
ERROR: 0:42: 'location' : overlapping use of location 53
|
ERROR: 0:42: 'location' : overlapping use of location 53
|
||||||
ERROR: 0:47: 'gl_ClipDistance array size' : must be less than gl_MaxClipDistances (8)
|
ERROR: 0:47: 'gl_ClipDistance array size' : must be less than or equal to gl_MaxClipDistances (8)
|
||||||
ERROR: 0:51: 'start' : undeclared identifier
|
ERROR: 0:51: 'start' : undeclared identifier
|
||||||
ERROR: 0:51: '' : constant expression required
|
ERROR: 0:51: '' : constant expression required
|
||||||
ERROR: 0:51: 'layout-id value' : scalar integer expression required
|
ERROR: 0:51: 'layout-id value' : scalar integer expression required
|
||||||
|
@ -64,7 +64,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:47 3.000000
|
0:47 3.000000
|
||||||
0:49 move second child to first child (temp 4-component vector of float)
|
0:49 move second child to first child (temp 4-component vector of float)
|
||||||
0:49 gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position)
|
0:49 gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position)
|
||||||
0:49 'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
|
0:49 'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, ...})
|
||||||
0:49 Constant:
|
0:49 Constant:
|
||||||
0:49 0 (const uint)
|
0:49 0 (const uint)
|
||||||
0:49 Construct vec4 (temp 4-component vector of float)
|
0:49 Construct vec4 (temp 4-component vector of float)
|
||||||
|
@ -374,6 +374,18 @@ ERROR: node is still EOpNull!
|
|||||||
0:? 1 (const int)
|
0:? 1 (const int)
|
||||||
0:? 9.000000
|
0:? 9.000000
|
||||||
0:? false (const bool)
|
0:? false (const bool)
|
||||||
|
0:? 'cval1' (const bool)
|
||||||
|
0:? true (const bool)
|
||||||
|
0:? 'cval2' (const bool)
|
||||||
|
0:? false (const bool)
|
||||||
|
0:? 'cval3' (const bool)
|
||||||
|
0:? false (const bool)
|
||||||
|
0:? 'cval4' (const bool)
|
||||||
|
0:? true (const bool)
|
||||||
|
0:? 'cval5' (const bool)
|
||||||
|
0:? false (const bool)
|
||||||
|
0:? 'cval6' (const bool)
|
||||||
|
0:? true (const bool)
|
||||||
|
|
||||||
|
|
||||||
Linked fragment stage:
|
Linked fragment stage:
|
||||||
@ -744,4 +756,16 @@ ERROR: node is still EOpNull!
|
|||||||
0:? 1 (const int)
|
0:? 1 (const int)
|
||||||
0:? 9.000000
|
0:? 9.000000
|
||||||
0:? false (const bool)
|
0:? false (const bool)
|
||||||
|
0:? 'cval1' (const bool)
|
||||||
|
0:? true (const bool)
|
||||||
|
0:? 'cval2' (const bool)
|
||||||
|
0:? false (const bool)
|
||||||
|
0:? 'cval3' (const bool)
|
||||||
|
0:? false (const bool)
|
||||||
|
0:? 'cval4' (const bool)
|
||||||
|
0:? true (const bool)
|
||||||
|
0:? 'cval5' (const bool)
|
||||||
|
0:? false (const bool)
|
||||||
|
0:? 'cval6' (const bool)
|
||||||
|
0:? true (const bool)
|
||||||
|
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
functionSemantics.frag
|
functionSemantics.frag
|
||||||
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
|
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
|
||||||
|
ERROR: 0:74: 'return' : cannot convert return value to function return type
|
||||||
|
WARNING: 0:74: 'return' : type conversion on return values was not explicitly allowed until version 420
|
||||||
|
ERROR: 1 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 400
|
Shader version: 400
|
||||||
0:? Sequence
|
ERROR: node is still EOpNull!
|
||||||
0:5 Function Definition: foo(i1;i1;i1;i1;i1;i1; (global int)
|
0:5 Function Definition: foo(i1;i1;i1;i1;i1;i1; (global int)
|
||||||
0:5 Function Parameters:
|
0:5 Function Parameters:
|
||||||
0:5 'a' (in int)
|
0:5 'a' (in int)
|
||||||
@ -195,6 +199,11 @@ Shader version: 400
|
|||||||
0:69 Construct ivec2 (temp 2-component vector of int)
|
0:69 Construct ivec2 (temp 2-component vector of int)
|
||||||
0:69 Convert float to int (temp int)
|
0:69 Convert float to int (temp int)
|
||||||
0:69 'F' (temp float)
|
0:69 'F' (temp float)
|
||||||
|
0:72 Function Definition: badConv( (global 4-component vector of float)
|
||||||
|
0:72 Function Parameters:
|
||||||
|
0:74 Sequence
|
||||||
|
0:74 Branch: Return with expression
|
||||||
|
0:74 'u' (uniform float)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'u' (uniform float)
|
0:? 'u' (uniform float)
|
||||||
|
|
||||||
@ -203,7 +212,7 @@ Linked fragment stage:
|
|||||||
|
|
||||||
|
|
||||||
Shader version: 400
|
Shader version: 400
|
||||||
0:? Sequence
|
ERROR: node is still EOpNull!
|
||||||
0:5 Function Definition: foo(i1;i1;i1;i1;i1;i1; (global int)
|
0:5 Function Definition: foo(i1;i1;i1;i1;i1;i1; (global int)
|
||||||
0:5 Function Parameters:
|
0:5 Function Parameters:
|
||||||
0:5 'a' (in int)
|
0:5 'a' (in int)
|
||||||
@ -396,6 +405,11 @@ Shader version: 400
|
|||||||
0:69 Construct ivec2 (temp 2-component vector of int)
|
0:69 Construct ivec2 (temp 2-component vector of int)
|
||||||
0:69 Convert float to int (temp int)
|
0:69 Convert float to int (temp int)
|
||||||
0:69 'F' (temp float)
|
0:69 'F' (temp float)
|
||||||
|
0:72 Function Definition: badConv( (global 4-component vector of float)
|
||||||
|
0:72 Function Parameters:
|
||||||
|
0:74 Sequence
|
||||||
|
0:74 Branch: Return with expression
|
||||||
|
0:74 'u' (uniform float)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'u' (uniform float)
|
0:? 'u' (uniform float)
|
||||||
|
|
||||||
|
11
Test/baseResults/glspv.esversion.vert.out
Executable file
11
Test/baseResults/glspv.esversion.vert.out
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
glspv.esversion.vert
|
||||||
|
ERROR: #version: ES shaders for OpenGL SPIR-V are not supported
|
||||||
|
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||||
|
ERROR: 1 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Linked vertex stage:
|
||||||
|
|
||||||
|
|
||||||
|
SPIR-V is not generated for failed compile or link
|
13
Test/baseResults/glspv.frag.out
Executable file
13
Test/baseResults/glspv.frag.out
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
glspv.frag
|
||||||
|
ERROR: 0:4: '#error' : GL_SPIRV is set ( correct , not an error )
|
||||||
|
ERROR: 0:6: '#error' : GL_SPIR is 100
|
||||||
|
ERROR: 0:14: 'input_attachment_index' : only allowed when using GLSL for Vulkan
|
||||||
|
ERROR: 0:14: '' : syntax error
|
||||||
|
ERROR: 4 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Linked fragment stage:
|
||||||
|
|
||||||
|
|
||||||
|
SPIR-V is not generated for failed compile or link
|
24
Test/baseResults/glspv.version.frag.out
Executable file
24
Test/baseResults/glspv.version.frag.out
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
glspv.version.frag
|
||||||
|
ERROR: #version: compilation for SPIR-V does not support the compatibility profile
|
||||||
|
|
||||||
|
|
||||||
|
Linked fragment stage:
|
||||||
|
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 6
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
|
Source GLSL 330
|
||||||
|
Name 4 "main"
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
10
Test/baseResults/glspv.version.vert.out
Executable file
10
Test/baseResults/glspv.version.vert.out
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
glspv.version.vert
|
||||||
|
ERROR: #version: Desktop shaders for OpenGL SPIR-V require version 330 or higher
|
||||||
|
ERROR: 1 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Linked vertex stage:
|
||||||
|
|
||||||
|
|
||||||
|
SPIR-V is not generated for failed compile or link
|
18
Test/baseResults/glspv.vert.out
Executable file
18
Test/baseResults/glspv.vert.out
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
glspv.vert
|
||||||
|
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||||
|
ERROR: 0:3: 'push_constant' : only allowed when using GLSL for Vulkan
|
||||||
|
ERROR: 0:6: 'descriptor set' : only allowed when using GLSL for Vulkan
|
||||||
|
ERROR: 0:8: 'shared' : not allowed when generating SPIR-V
|
||||||
|
ERROR: 0:9: 'packed' : not allowed when generating SPIR-V
|
||||||
|
ERROR: 0:13: 'gl_VertexIndex' : undeclared identifier
|
||||||
|
ERROR: 0:14: 'gl_InstanceIndex' : undeclared identifier
|
||||||
|
ERROR: 0:17: 'gl_DepthRangeParameters' : undeclared identifier
|
||||||
|
ERROR: 0:20: '' : syntax error
|
||||||
|
ERROR: 8 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Linked vertex stage:
|
||||||
|
|
||||||
|
|
||||||
|
SPIR-V is not generated for failed compile or link
|
@ -2,7 +2,7 @@ hlsl.array.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float)
|
0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float)
|
||||||
0:8 Function Parameters:
|
0:8 Function Parameters:
|
||||||
0:8 'i' (in int)
|
0:8 'i' (in int)
|
||||||
0:8 'input' (in 3-element array of 4-component vector of float)
|
0:8 'input' (in 3-element array of 4-component vector of float)
|
||||||
@ -12,11 +12,11 @@ gl_FragCoord origin is upper left
|
|||||||
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 add (temp 4-component vector of float)
|
||||||
0:10 direct index (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 'a' (global 4-element array of 4-component vector of float)
|
||||||
0:10 Constant:
|
0:10 Constant:
|
||||||
0:10 1 (const int)
|
0:10 1 (const int)
|
||||||
0:10 indirect index (temp 4-component vector of float)
|
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 'a' (global 4-element array of 4-component vector of float)
|
||||||
0:10 'i' (in int)
|
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 direct index (temp 4-component vector of float)
|
||||||
@ -38,14 +38,14 @@ gl_FragCoord origin is upper left
|
|||||||
0:10 indirect index (temp 4-component vector of float)
|
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 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 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 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
|
||||||
0:10 'i' (in int)
|
0:10 'i' (in int)
|
||||||
0:10 Constant:
|
0:10 Constant:
|
||||||
0:10 0 (const int)
|
0:10 0 (const int)
|
||||||
0:10 'i' (in int)
|
0:10 'i' (in int)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'a' (temp 4-element array of 4-component vector of float)
|
0:? 'a' (global 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})
|
0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
|
||||||
|
|
||||||
|
|
||||||
Linked fragment stage:
|
Linked fragment stage:
|
||||||
@ -54,7 +54,7 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float)
|
0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float)
|
||||||
0:8 Function Parameters:
|
0:8 Function Parameters:
|
||||||
0:8 'i' (in int)
|
0:8 'i' (in int)
|
||||||
0:8 'input' (in 3-element array of 4-component vector of float)
|
0:8 'input' (in 3-element array of 4-component vector of float)
|
||||||
@ -64,11 +64,11 @@ gl_FragCoord origin is upper left
|
|||||||
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 add (temp 4-component vector of float)
|
||||||
0:10 direct index (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 'a' (global 4-element array of 4-component vector of float)
|
||||||
0:10 Constant:
|
0:10 Constant:
|
||||||
0:10 1 (const int)
|
0:10 1 (const int)
|
||||||
0:10 indirect index (temp 4-component vector of float)
|
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 'a' (global 4-element array of 4-component vector of float)
|
||||||
0:10 'i' (in int)
|
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 direct index (temp 4-component vector of float)
|
||||||
@ -90,18 +90,18 @@ gl_FragCoord origin is upper left
|
|||||||
0:10 indirect index (temp 4-component vector of float)
|
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 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 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 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
|
||||||
0:10 'i' (in int)
|
0:10 'i' (in int)
|
||||||
0:10 Constant:
|
0:10 Constant:
|
||||||
0:10 0 (const int)
|
0:10 0 (const int)
|
||||||
0:10 'i' (in int)
|
0:10 'i' (in int)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'a' (temp 4-element array of 4-component vector of float)
|
0:? 'a' (global 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})
|
0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
|
||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 63
|
// Id's are bound by 64
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
@ -114,9 +114,9 @@ gl_FragCoord origin is upper left
|
|||||||
Name 19 "i"
|
Name 19 "i"
|
||||||
Name 27 "input"
|
Name 27 "input"
|
||||||
Name 40 "b"
|
Name 40 "b"
|
||||||
Name 50 ""
|
Name 51 ""
|
||||||
MemberName 50 0 "m"
|
MemberName 51 0 "m"
|
||||||
Name 54 "s"
|
Name 55 "s"
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
@ -124,10 +124,11 @@ gl_FragCoord origin is upper left
|
|||||||
8: TypeInt 32 0
|
8: TypeInt 32 0
|
||||||
9: 8(int) Constant 4
|
9: 8(int) Constant 4
|
||||||
10: TypeArray 7(fvec4) 9
|
10: TypeArray 7(fvec4) 9
|
||||||
11: TypePointer Function 10
|
11: TypePointer Private 10
|
||||||
|
12(a): 11(ptr) Variable Private
|
||||||
13: TypeInt 32 1
|
13: TypeInt 32 1
|
||||||
14: 13(int) Constant 1
|
14: 13(int) Constant 1
|
||||||
15: TypePointer Function 7(fvec4)
|
15: TypePointer Private 7(fvec4)
|
||||||
18: TypePointer Input 13(int)
|
18: TypePointer Input 13(int)
|
||||||
19(i): 18(ptr) Variable Input
|
19(i): 18(ptr) Variable Input
|
||||||
24: 8(int) Constant 3
|
24: 8(int) Constant 3
|
||||||
@ -140,18 +141,18 @@ gl_FragCoord origin is upper left
|
|||||||
38: TypeArray 7(fvec4) 37
|
38: TypeArray 7(fvec4) 37
|
||||||
39: TypePointer Function 38
|
39: TypePointer Function 38
|
||||||
41: 13(int) Constant 5
|
41: 13(int) Constant 5
|
||||||
48: 8(int) Constant 7
|
42: TypePointer Function 7(fvec4)
|
||||||
49: TypeArray 7(fvec4) 48
|
49: 8(int) Constant 7
|
||||||
50: TypeStruct 49
|
50: TypeArray 7(fvec4) 49
|
||||||
51: 8(int) Constant 11
|
51: TypeStruct 50
|
||||||
52: TypeArray 50(struct) 51
|
52: 8(int) Constant 11
|
||||||
53: TypePointer Function 52
|
53: TypeArray 51(struct) 52
|
||||||
56: 13(int) Constant 0
|
54: TypePointer Private 53
|
||||||
|
55(s): 54(ptr) Variable Private
|
||||||
|
57: 13(int) Constant 0
|
||||||
4(PixelShaderFunction): 2 Function None 3
|
4(PixelShaderFunction): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
12(a): 11(ptr) Variable Function
|
|
||||||
40(b): 39(ptr) Variable Function
|
40(b): 39(ptr) Variable Function
|
||||||
54(s): 53(ptr) Variable Function
|
|
||||||
16: 15(ptr) AccessChain 12(a) 14
|
16: 15(ptr) AccessChain 12(a) 14
|
||||||
17: 7(fvec4) Load 16
|
17: 7(fvec4) Load 16
|
||||||
20: 13(int) Load 19(i)
|
20: 13(int) Load 19(i)
|
||||||
@ -165,17 +166,17 @@ gl_FragCoord origin is upper left
|
|||||||
34: 7(fvec4) Load 33
|
34: 7(fvec4) Load 33
|
||||||
35: 7(fvec4) FAdd 31 34
|
35: 7(fvec4) FAdd 31 34
|
||||||
36: 7(fvec4) FAdd 23 35
|
36: 7(fvec4) FAdd 23 35
|
||||||
42: 15(ptr) AccessChain 40(b) 41
|
43: 42(ptr) AccessChain 40(b) 41
|
||||||
43: 7(fvec4) Load 42
|
44: 7(fvec4) Load 43
|
||||||
44: 13(int) Load 19(i)
|
45: 13(int) Load 19(i)
|
||||||
45: 15(ptr) AccessChain 40(b) 44
|
46: 42(ptr) AccessChain 40(b) 45
|
||||||
46: 7(fvec4) Load 45
|
47: 7(fvec4) Load 46
|
||||||
47: 7(fvec4) FAdd 43 46
|
48: 7(fvec4) FAdd 44 47
|
||||||
55: 13(int) Load 19(i)
|
56: 13(int) Load 19(i)
|
||||||
57: 13(int) Load 19(i)
|
58: 13(int) Load 19(i)
|
||||||
58: 15(ptr) AccessChain 54(s) 55 56 57
|
59: 15(ptr) AccessChain 55(s) 56 57 58
|
||||||
59: 7(fvec4) Load 58
|
60: 7(fvec4) Load 59
|
||||||
60: 7(fvec4) FAdd 47 59
|
61: 7(fvec4) FAdd 48 60
|
||||||
61: 7(fvec4) FAdd 36 60
|
62: 7(fvec4) FAdd 36 61
|
||||||
ReturnValue 61
|
ReturnValue 62
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -2,7 +2,7 @@ hlsl.assoc.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float)
|
0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float)
|
||||||
0:8 Function Parameters:
|
0:8 Function Parameters:
|
||||||
0:8 'a1' (in 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 'a2' (in 4-component vector of float)
|
||||||
@ -38,7 +38,7 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float)
|
0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float)
|
||||||
0:8 Function Parameters:
|
0:8 Function Parameters:
|
||||||
0:8 'a1' (in 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 'a2' (in 4-component vector of float)
|
||||||
|
@ -2,7 +2,7 @@ hlsl.attribute.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:14 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'input' (in 4-component vector of float)
|
0:2 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -20,7 +20,7 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:14 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'input' (in 4-component vector of float)
|
0:2 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
|
@ -2,7 +2,7 @@ hlsl.cast.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'input' (in 4-component vector of float)
|
0:2 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -28,7 +28,7 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'input' (in 4-component vector of float)
|
0:2 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
|
151
Test/baseResults/hlsl.discard.frag.out
Executable file
151
Test/baseResults/hlsl.discard.frag.out
Executable file
@ -0,0 +1,151 @@
|
|||||||
|
hlsl.discard.frag
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:7 Function Definition: foo(f1; (global void)
|
||||||
|
0:2 Function Parameters:
|
||||||
|
0:2 'f' (in float)
|
||||||
|
0:? Sequence
|
||||||
|
0:3 Test condition and select (temp void)
|
||||||
|
0:3 Condition
|
||||||
|
0:3 Compare Less Than (temp bool)
|
||||||
|
0:3 'f' (in float)
|
||||||
|
0:3 Constant:
|
||||||
|
0:3 1.000000
|
||||||
|
0:3 true case
|
||||||
|
0:4 Branch: Kill
|
||||||
|
0:15 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
|
0:8 Function Parameters:
|
||||||
|
0:8 'input' (in 4-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:9 Function Call: foo(f1; (global void)
|
||||||
|
0:9 direct index (temp float)
|
||||||
|
0:9 'input' (in 4-component vector of float)
|
||||||
|
0:9 Constant:
|
||||||
|
0:9 2 (const int)
|
||||||
|
0:10 Test condition and select (temp void)
|
||||||
|
0:10 Condition
|
||||||
|
0:10 direct index (temp float)
|
||||||
|
0:10 'input' (in 4-component vector of float)
|
||||||
|
0:10 Constant:
|
||||||
|
0:10 0 (const int)
|
||||||
|
0:10 true case
|
||||||
|
0:11 Branch: Kill
|
||||||
|
0:12 Sequence
|
||||||
|
0:12 move second child to first child (temp float)
|
||||||
|
0:12 'f' (temp float)
|
||||||
|
0:12 direct index (temp float)
|
||||||
|
0:12 'input' (in 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:13 Branch: Kill
|
||||||
|
0:? Linker Objects
|
||||||
|
|
||||||
|
|
||||||
|
Linked fragment stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:7 Function Definition: foo(f1; (global void)
|
||||||
|
0:2 Function Parameters:
|
||||||
|
0:2 'f' (in float)
|
||||||
|
0:? Sequence
|
||||||
|
0:3 Test condition and select (temp void)
|
||||||
|
0:3 Condition
|
||||||
|
0:3 Compare Less Than (temp bool)
|
||||||
|
0:3 'f' (in float)
|
||||||
|
0:3 Constant:
|
||||||
|
0:3 1.000000
|
||||||
|
0:3 true case
|
||||||
|
0:4 Branch: Kill
|
||||||
|
0:15 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
|
0:8 Function Parameters:
|
||||||
|
0:8 'input' (in 4-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:9 Function Call: foo(f1; (global void)
|
||||||
|
0:9 direct index (temp float)
|
||||||
|
0:9 'input' (in 4-component vector of float)
|
||||||
|
0:9 Constant:
|
||||||
|
0:9 2 (const int)
|
||||||
|
0:10 Test condition and select (temp void)
|
||||||
|
0:10 Condition
|
||||||
|
0:10 direct index (temp float)
|
||||||
|
0:10 'input' (in 4-component vector of float)
|
||||||
|
0:10 Constant:
|
||||||
|
0:10 0 (const int)
|
||||||
|
0:10 true case
|
||||||
|
0:11 Branch: Kill
|
||||||
|
0:12 Sequence
|
||||||
|
0:12 move second child to first child (temp float)
|
||||||
|
0:12 'f' (temp float)
|
||||||
|
0:12 direct index (temp float)
|
||||||
|
0:12 'input' (in 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:13 Branch: Kill
|
||||||
|
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" 21
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source HLSL 450
|
||||||
|
Name 4 "PixelShaderFunction"
|
||||||
|
Name 10 "foo(f1;"
|
||||||
|
Name 9 "f"
|
||||||
|
Name 21 "input"
|
||||||
|
Name 22 "param"
|
||||||
|
Name 35 "f"
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypePointer Function 6(float)
|
||||||
|
8: TypeFunction 2 7(ptr)
|
||||||
|
13: 6(float) Constant 1065353216
|
||||||
|
14: TypeBool
|
||||||
|
19: TypeVector 6(float) 4
|
||||||
|
20: TypePointer Input 19(fvec4)
|
||||||
|
21(input): 20(ptr) Variable Input
|
||||||
|
23: TypeInt 32 0
|
||||||
|
24: 23(int) Constant 2
|
||||||
|
25: TypePointer Input 6(float)
|
||||||
|
29: 23(int) Constant 0
|
||||||
|
4(PixelShaderFunction): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
22(param): 7(ptr) Variable Function
|
||||||
|
35(f): 7(ptr) Variable Function
|
||||||
|
26: 25(ptr) AccessChain 21(input) 24
|
||||||
|
27: 6(float) Load 26
|
||||||
|
Store 22(param) 27
|
||||||
|
28: 2 FunctionCall 10(foo(f1;) 22(param)
|
||||||
|
30: 25(ptr) AccessChain 21(input) 29
|
||||||
|
31: 6(float) Load 30
|
||||||
|
SelectionMerge 33 None
|
||||||
|
BranchConditional 31 32 33
|
||||||
|
32: Label
|
||||||
|
Kill
|
||||||
|
33: Label
|
||||||
|
36: 25(ptr) AccessChain 21(input) 29
|
||||||
|
37: 6(float) Load 36
|
||||||
|
Store 35(f) 37
|
||||||
|
Kill
|
||||||
|
FunctionEnd
|
||||||
|
10(foo(f1;): 2 Function None 8
|
||||||
|
9(f): 7(ptr) FunctionParameter
|
||||||
|
11: Label
|
||||||
|
12: 6(float) Load 9(f)
|
||||||
|
15: 14(bool) FOrdLessThan 12 13
|
||||||
|
SelectionMerge 17 None
|
||||||
|
BranchConditional 15 16 17
|
||||||
|
16: Label
|
||||||
|
Kill
|
||||||
|
17: Label
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
@ -2,7 +2,7 @@ hlsl.doLoop.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:7 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:7 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'input' (in 4-component vector of float)
|
0:2 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -33,7 +33,7 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:7 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:7 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'input' (in 4-component vector of float)
|
0:2 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
|
@ -2,15 +2,17 @@ hlsl.float1.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:1 move second child to first child (temp 1-component vector of float)
|
0:1 Sequence
|
||||||
0:1 'f1' (temp 1-component vector of float)
|
0:1 move second child to first child (temp 1-component vector of float)
|
||||||
0:1 Constant:
|
0:1 'f1' (global 1-component vector of float)
|
||||||
0:1 1.000000
|
0:1 Constant:
|
||||||
0:2 move second child to first child (temp float)
|
0:1 1.000000
|
||||||
0:2 'scalar' (temp float)
|
0:2 Sequence
|
||||||
0:2 Constant:
|
0:2 move second child to first child (temp float)
|
||||||
0:2 2.000000
|
0:2 'scalar' (global float)
|
||||||
0:8 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
|
0:2 Constant:
|
||||||
|
0:2 2.000000
|
||||||
|
0:8 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
|
||||||
0:5 Function Parameters:
|
0:5 Function Parameters:
|
||||||
0:5 'inFloat1' (in 1-component vector of float)
|
0:5 'inFloat1' (in 1-component vector of float)
|
||||||
0:5 'inScalar' (in float)
|
0:5 'inScalar' (in float)
|
||||||
@ -18,14 +20,14 @@ gl_FragCoord origin is upper left
|
|||||||
0:6 Branch: Return with expression
|
0:6 Branch: Return with expression
|
||||||
0:6 add (temp 1-component vector of float)
|
0:6 add (temp 1-component vector of float)
|
||||||
0:6 vector-scale (temp 1-component vector of float)
|
0:6 vector-scale (temp 1-component vector of float)
|
||||||
0:6 'f1' (temp 1-component vector of float)
|
0:6 'f1' (global 1-component vector of float)
|
||||||
0:6 'scalar' (temp float)
|
0:6 'scalar' (global float)
|
||||||
0:6 vector-scale (temp 1-component vector of float)
|
0:6 vector-scale (temp 1-component vector of float)
|
||||||
0:6 'inFloat1' (in 1-component vector of float)
|
0:6 'inFloat1' (in 1-component vector of float)
|
||||||
0:6 'inScalar' (in float)
|
0:6 'inScalar' (in float)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'f1' (temp 1-component vector of float)
|
0:? 'f1' (global 1-component vector of float)
|
||||||
0:? 'scalar' (temp float)
|
0:? 'scalar' (global float)
|
||||||
|
|
||||||
|
|
||||||
Linked fragment stage:
|
Linked fragment stage:
|
||||||
@ -34,15 +36,17 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:1 move second child to first child (temp 1-component vector of float)
|
0:1 Sequence
|
||||||
0:1 'f1' (temp 1-component vector of float)
|
0:1 move second child to first child (temp 1-component vector of float)
|
||||||
0:1 Constant:
|
0:1 'f1' (global 1-component vector of float)
|
||||||
0:1 1.000000
|
0:1 Constant:
|
||||||
0:2 move second child to first child (temp float)
|
0:1 1.000000
|
||||||
0:2 'scalar' (temp float)
|
0:2 Sequence
|
||||||
0:2 Constant:
|
0:2 move second child to first child (temp float)
|
||||||
0:2 2.000000
|
0:2 'scalar' (global float)
|
||||||
0:8 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
|
0:2 Constant:
|
||||||
|
0:2 2.000000
|
||||||
|
0:8 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
|
||||||
0:5 Function Parameters:
|
0:5 Function Parameters:
|
||||||
0:5 'inFloat1' (in 1-component vector of float)
|
0:5 'inFloat1' (in 1-component vector of float)
|
||||||
0:5 'inScalar' (in float)
|
0:5 'inScalar' (in float)
|
||||||
@ -50,18 +54,18 @@ gl_FragCoord origin is upper left
|
|||||||
0:6 Branch: Return with expression
|
0:6 Branch: Return with expression
|
||||||
0:6 add (temp 1-component vector of float)
|
0:6 add (temp 1-component vector of float)
|
||||||
0:6 vector-scale (temp 1-component vector of float)
|
0:6 vector-scale (temp 1-component vector of float)
|
||||||
0:6 'f1' (temp 1-component vector of float)
|
0:6 'f1' (global 1-component vector of float)
|
||||||
0:6 'scalar' (temp float)
|
0:6 'scalar' (global float)
|
||||||
0:6 vector-scale (temp 1-component vector of float)
|
0:6 vector-scale (temp 1-component vector of float)
|
||||||
0:6 'inFloat1' (in 1-component vector of float)
|
0:6 'inFloat1' (in 1-component vector of float)
|
||||||
0:6 'inScalar' (in float)
|
0:6 'inScalar' (in float)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'f1' (temp 1-component vector of float)
|
0:? 'f1' (global 1-component vector of float)
|
||||||
0:? 'scalar' (temp float)
|
0:? 'scalar' (global float)
|
||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 24
|
// Id's are bound by 27
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
@ -73,28 +77,33 @@ gl_FragCoord origin is upper left
|
|||||||
Name 11 "ShaderFunction(vf1;f1;"
|
Name 11 "ShaderFunction(vf1;f1;"
|
||||||
Name 9 "inFloat1"
|
Name 9 "inFloat1"
|
||||||
Name 10 "inScalar"
|
Name 10 "inScalar"
|
||||||
Name 13 "f1"
|
Name 14 "f1"
|
||||||
Name 15 "scalar"
|
Name 16 "scalar"
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
7: TypePointer Function 6(float)
|
7: TypePointer Function 6(float)
|
||||||
8: TypeFunction 6(float) 7(ptr) 7(ptr)
|
8: TypeFunction 6(float) 7(ptr) 7(ptr)
|
||||||
|
13: TypePointer Private 6(float)
|
||||||
|
14(f1): 13(ptr) Variable Private
|
||||||
|
15: 6(float) Constant 1065353216
|
||||||
|
16(scalar): 13(ptr) Variable Private
|
||||||
|
17: 6(float) Constant 1073741824
|
||||||
4(PixelShaderFunction): 2 Function None 3
|
4(PixelShaderFunction): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
|
Store 14(f1) 15
|
||||||
|
Store 16(scalar) 17
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
11(ShaderFunction(vf1;f1;): 6(float) Function None 8
|
11(ShaderFunction(vf1;f1;): 6(float) Function None 8
|
||||||
9(inFloat1): 7(ptr) FunctionParameter
|
9(inFloat1): 7(ptr) FunctionParameter
|
||||||
10(inScalar): 7(ptr) FunctionParameter
|
10(inScalar): 7(ptr) FunctionParameter
|
||||||
12: Label
|
12: Label
|
||||||
13(f1): 7(ptr) Variable Function
|
18: 6(float) Load 14(f1)
|
||||||
15(scalar): 7(ptr) Variable Function
|
19: 6(float) Load 16(scalar)
|
||||||
14: 6(float) Load 13(f1)
|
|
||||||
16: 6(float) Load 15(scalar)
|
|
||||||
17: 6(float) IMul 14 16
|
|
||||||
18: 6(float) Load 9(inFloat1)
|
|
||||||
19: 6(float) Load 10(inScalar)
|
|
||||||
20: 6(float) IMul 18 19
|
20: 6(float) IMul 18 19
|
||||||
21: 6(float) FAdd 17 20
|
21: 6(float) Load 9(inFloat1)
|
||||||
ReturnValue 21
|
22: 6(float) Load 10(inScalar)
|
||||||
|
23: 6(float) IMul 21 22
|
||||||
|
24: 6(float) FAdd 20 23
|
||||||
|
ReturnValue 24
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -2,27 +2,28 @@ hlsl.float4.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:1 move second child to first child (temp 4-component vector of float)
|
0:1 Sequence
|
||||||
0:1 'AmbientColor' (temp 4-component vector of float)
|
0:1 move second child to first child (temp 4-component vector of float)
|
||||||
0:? Constant:
|
0:1 'AmbientColor' (global 4-component vector of float)
|
||||||
0:? 1.000000
|
0:? Constant:
|
||||||
0:? 0.500000
|
0:? 1.000000
|
||||||
0:? 0.000000
|
0:? 0.500000
|
||||||
0:? 1.000000
|
0:? 0.000000
|
||||||
0:12 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
|
0:? 1.000000
|
||||||
|
0:12 Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:9 Function Parameters:
|
0:9 Function Parameters:
|
||||||
0:9 'input' (in 4-component vector of float)
|
0:9 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:10 Branch: Return with expression
|
0:10 Branch: Return with expression
|
||||||
0:10 component-wise multiply (temp 4-component vector of float)
|
0:10 component-wise multiply (temp 4-component vector of float)
|
||||||
0:10 'input' (in 4-component vector of float)
|
0:10 'input' (in 4-component vector of float)
|
||||||
0:10 'AmbientColor' (temp 4-component vector of float)
|
0:10 'AmbientColor' (global 4-component vector of float)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'AmbientColor' (temp 4-component vector of float)
|
0:? 'AmbientColor' (global 4-component vector of float)
|
||||||
0:? 'ff1' (temp bool Face)
|
0:? 'ff1' (global bool Face)
|
||||||
0:? 'ff2' (temp 4-component vector of float)
|
0:? 'ff2' (global 4-component vector of float)
|
||||||
0:? 'ff3' (temp 4-component vector of float)
|
0:? 'ff3' (global 4-component vector of float)
|
||||||
0:? 'ff4' (temp 4-component vector of float FragCoord)
|
0:? 'ff4' (global 4-component vector of float FragCoord)
|
||||||
|
|
||||||
|
|
||||||
Linked fragment stage:
|
Linked fragment stage:
|
||||||
@ -31,31 +32,32 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:1 move second child to first child (temp 4-component vector of float)
|
0:1 Sequence
|
||||||
0:1 'AmbientColor' (temp 4-component vector of float)
|
0:1 move second child to first child (temp 4-component vector of float)
|
||||||
0:? Constant:
|
0:1 'AmbientColor' (global 4-component vector of float)
|
||||||
0:? 1.000000
|
0:? Constant:
|
||||||
0:? 0.500000
|
0:? 1.000000
|
||||||
0:? 0.000000
|
0:? 0.500000
|
||||||
0:? 1.000000
|
0:? 0.000000
|
||||||
0:12 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
|
0:? 1.000000
|
||||||
|
0:12 Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:9 Function Parameters:
|
0:9 Function Parameters:
|
||||||
0:9 'input' (in 4-component vector of float)
|
0:9 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:10 Branch: Return with expression
|
0:10 Branch: Return with expression
|
||||||
0:10 component-wise multiply (temp 4-component vector of float)
|
0:10 component-wise multiply (temp 4-component vector of float)
|
||||||
0:10 'input' (in 4-component vector of float)
|
0:10 'input' (in 4-component vector of float)
|
||||||
0:10 'AmbientColor' (temp 4-component vector of float)
|
0:10 'AmbientColor' (global 4-component vector of float)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'AmbientColor' (temp 4-component vector of float)
|
0:? 'AmbientColor' (global 4-component vector of float)
|
||||||
0:? 'ff1' (temp bool Face)
|
0:? 'ff1' (global bool Face)
|
||||||
0:? 'ff2' (temp 4-component vector of float)
|
0:? 'ff2' (global 4-component vector of float)
|
||||||
0:? 'ff3' (temp 4-component vector of float)
|
0:? 'ff3' (global 4-component vector of float)
|
||||||
0:? 'ff4' (temp 4-component vector of float FragCoord)
|
0:? 'ff4' (global 4-component vector of float FragCoord)
|
||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 25
|
// Id's are bound by 30
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
@ -67,33 +69,39 @@ gl_FragCoord origin is upper left
|
|||||||
Name 11 "ShaderFunction(vf4;"
|
Name 11 "ShaderFunction(vf4;"
|
||||||
Name 10 "input"
|
Name 10 "input"
|
||||||
Name 14 "AmbientColor"
|
Name 14 "AmbientColor"
|
||||||
Name 21 "ff1"
|
Name 26 "ff1"
|
||||||
Name 22 "ff2"
|
Name 27 "ff2"
|
||||||
Name 23 "ff3"
|
Name 28 "ff3"
|
||||||
Name 24 "ff4"
|
Name 29 "ff4"
|
||||||
Decorate 21(ff1) BuiltIn FrontFacing
|
Decorate 26(ff1) BuiltIn FrontFacing
|
||||||
Decorate 24(ff4) BuiltIn FragCoord
|
Decorate 29(ff4) BuiltIn FragCoord
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
7: TypeVector 6(float) 4
|
7: TypeVector 6(float) 4
|
||||||
8: TypePointer Function 7(fvec4)
|
8: TypePointer Function 7(fvec4)
|
||||||
9: TypeFunction 7(fvec4) 8(ptr)
|
9: TypeFunction 7(fvec4) 8(ptr)
|
||||||
19: TypeBool
|
13: TypePointer Private 7(fvec4)
|
||||||
20: TypePointer Function 19(bool)
|
14(AmbientColor): 13(ptr) Variable Private
|
||||||
|
15: 6(float) Constant 1065353216
|
||||||
|
16: 6(float) Constant 1056964608
|
||||||
|
17: 6(float) Constant 0
|
||||||
|
18: 7(fvec4) ConstantComposite 15 16 17 15
|
||||||
|
24: TypeBool
|
||||||
|
25: TypePointer Private 24(bool)
|
||||||
|
26(ff1): 25(ptr) Variable Private
|
||||||
|
27(ff2): 13(ptr) Variable Private
|
||||||
|
28(ff3): 13(ptr) Variable Private
|
||||||
|
29(ff4): 13(ptr) Variable Private
|
||||||
4(PixelShaderFunction): 2 Function None 3
|
4(PixelShaderFunction): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
|
Store 14(AmbientColor) 18
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
11(ShaderFunction(vf4;): 7(fvec4) Function None 9
|
11(ShaderFunction(vf4;): 7(fvec4) Function None 9
|
||||||
10(input): 8(ptr) FunctionParameter
|
10(input): 8(ptr) FunctionParameter
|
||||||
12: Label
|
12: Label
|
||||||
14(AmbientColor): 8(ptr) Variable Function
|
19: 7(fvec4) Load 10(input)
|
||||||
21(ff1): 20(ptr) Variable Function
|
20: 7(fvec4) Load 14(AmbientColor)
|
||||||
22(ff2): 8(ptr) Variable Function
|
21: 7(fvec4) FMul 19 20
|
||||||
23(ff3): 8(ptr) Variable Function
|
ReturnValue 21
|
||||||
24(ff4): 8(ptr) Variable Function
|
|
||||||
13: 7(fvec4) Load 10(input)
|
|
||||||
15: 7(fvec4) Load 14(AmbientColor)
|
|
||||||
16: 7(fvec4) FMul 13 15
|
|
||||||
ReturnValue 16
|
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -2,7 +2,7 @@ hlsl.forLoop.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:9 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'input' (in 4-component vector of float)
|
0:2 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -52,6 +52,61 @@ gl_FragCoord origin is upper left
|
|||||||
0:7 'input' (in 4-component vector of float)
|
0:7 'input' (in 4-component vector of float)
|
||||||
0:7 Constant:
|
0:7 Constant:
|
||||||
0:7 2.000000
|
0:7 2.000000
|
||||||
|
0:? Sequence
|
||||||
|
0:8 Loop with condition tested first
|
||||||
|
0:8 No loop condition
|
||||||
|
0:8 Loop Body
|
||||||
|
0:8 Test condition and select (temp void)
|
||||||
|
0:8 Condition
|
||||||
|
0:8 Compare Greater Than (temp bool)
|
||||||
|
0:8 direct index (temp float)
|
||||||
|
0:8 'input' (in 4-component vector of float)
|
||||||
|
0:8 Constant:
|
||||||
|
0:8 0 (const int)
|
||||||
|
0:8 Constant:
|
||||||
|
0:8 2.000000
|
||||||
|
0:8 true case
|
||||||
|
0:8 Branch: Break
|
||||||
|
0:? Sequence
|
||||||
|
0:9 Loop with condition tested first
|
||||||
|
0:9 No loop condition
|
||||||
|
0:9 Loop Body
|
||||||
|
0:9 Test condition and select (temp void)
|
||||||
|
0:9 Condition
|
||||||
|
0:9 Compare Greater Than (temp bool)
|
||||||
|
0:9 direct index (temp float)
|
||||||
|
0:9 'input' (in 4-component vector of float)
|
||||||
|
0:9 Constant:
|
||||||
|
0:9 0 (const int)
|
||||||
|
0:9 Constant:
|
||||||
|
0:9 2.000000
|
||||||
|
0:9 true case
|
||||||
|
0:9 Branch: Continue
|
||||||
|
0:11 Sequence
|
||||||
|
0:11 move second child to first child (temp int)
|
||||||
|
0:11 'ii' (temp int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 -1 (const int)
|
||||||
|
0:11 Loop with condition tested first
|
||||||
|
0:11 Loop Condition
|
||||||
|
0:11 Compare Less Than (temp bool)
|
||||||
|
0:11 'ii' (temp int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
|
0:11 Loop Body
|
||||||
|
0:11 Test condition and select (temp void)
|
||||||
|
0:11 Condition
|
||||||
|
0:11 Compare Equal (temp bool)
|
||||||
|
0:11 'ii' (temp int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 true case
|
||||||
|
0:11 Branch: Continue
|
||||||
|
0:11 Loop Terminal Expression
|
||||||
|
0:11 Pre-Increment (temp int)
|
||||||
|
0:11 'ii' (temp int)
|
||||||
|
0:12 Pre-Decrement (temp float)
|
||||||
|
0:12 'ii' (temp float)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
|
|
||||||
|
|
||||||
@ -61,7 +116,7 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:9 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'input' (in 4-component vector of float)
|
0:2 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -111,11 +166,66 @@ gl_FragCoord origin is upper left
|
|||||||
0:7 'input' (in 4-component vector of float)
|
0:7 'input' (in 4-component vector of float)
|
||||||
0:7 Constant:
|
0:7 Constant:
|
||||||
0:7 2.000000
|
0:7 2.000000
|
||||||
|
0:? Sequence
|
||||||
|
0:8 Loop with condition tested first
|
||||||
|
0:8 No loop condition
|
||||||
|
0:8 Loop Body
|
||||||
|
0:8 Test condition and select (temp void)
|
||||||
|
0:8 Condition
|
||||||
|
0:8 Compare Greater Than (temp bool)
|
||||||
|
0:8 direct index (temp float)
|
||||||
|
0:8 'input' (in 4-component vector of float)
|
||||||
|
0:8 Constant:
|
||||||
|
0:8 0 (const int)
|
||||||
|
0:8 Constant:
|
||||||
|
0:8 2.000000
|
||||||
|
0:8 true case
|
||||||
|
0:8 Branch: Break
|
||||||
|
0:? Sequence
|
||||||
|
0:9 Loop with condition tested first
|
||||||
|
0:9 No loop condition
|
||||||
|
0:9 Loop Body
|
||||||
|
0:9 Test condition and select (temp void)
|
||||||
|
0:9 Condition
|
||||||
|
0:9 Compare Greater Than (temp bool)
|
||||||
|
0:9 direct index (temp float)
|
||||||
|
0:9 'input' (in 4-component vector of float)
|
||||||
|
0:9 Constant:
|
||||||
|
0:9 0 (const int)
|
||||||
|
0:9 Constant:
|
||||||
|
0:9 2.000000
|
||||||
|
0:9 true case
|
||||||
|
0:9 Branch: Continue
|
||||||
|
0:11 Sequence
|
||||||
|
0:11 move second child to first child (temp int)
|
||||||
|
0:11 'ii' (temp int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 -1 (const int)
|
||||||
|
0:11 Loop with condition tested first
|
||||||
|
0:11 Loop Condition
|
||||||
|
0:11 Compare Less Than (temp bool)
|
||||||
|
0:11 'ii' (temp int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
|
0:11 Loop Body
|
||||||
|
0:11 Test condition and select (temp void)
|
||||||
|
0:11 Condition
|
||||||
|
0:11 Compare Equal (temp bool)
|
||||||
|
0:11 'ii' (temp int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 true case
|
||||||
|
0:11 Branch: Continue
|
||||||
|
0:11 Loop Terminal Expression
|
||||||
|
0:11 Pre-Increment (temp int)
|
||||||
|
0:11 'ii' (temp int)
|
||||||
|
0:12 Pre-Decrement (temp float)
|
||||||
|
0:12 'ii' (temp float)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 64
|
// Id's are bound by 112
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
@ -125,6 +235,8 @@ gl_FragCoord origin is upper left
|
|||||||
Source HLSL 450
|
Source HLSL 450
|
||||||
Name 4 "PixelShaderFunction"
|
Name 4 "PixelShaderFunction"
|
||||||
Name 13 "input"
|
Name 13 "input"
|
||||||
|
Name 89 "ii"
|
||||||
|
Name 109 "ii"
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
10: TypeFloat 32
|
10: TypeFloat 32
|
||||||
@ -135,8 +247,20 @@ gl_FragCoord origin is upper left
|
|||||||
29: TypeBool
|
29: TypeBool
|
||||||
30: TypeVector 29(bool) 4
|
30: TypeVector 29(bool) 4
|
||||||
60: 10(float) Constant 1073741824
|
60: 10(float) Constant 1073741824
|
||||||
|
68: TypeInt 32 0
|
||||||
|
69: 68(int) Constant 0
|
||||||
|
70: TypePointer Input 10(float)
|
||||||
|
87: TypeInt 32 1
|
||||||
|
88: TypePointer Function 87(int)
|
||||||
|
90: 87(int) Constant 4294967295
|
||||||
|
97: 87(int) Constant 3
|
||||||
|
100: 87(int) Constant 2
|
||||||
|
106: 87(int) Constant 1
|
||||||
|
108: TypePointer Function 10(float)
|
||||||
4(PixelShaderFunction): 2 Function None 3
|
4(PixelShaderFunction): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
|
89(ii): 88(ptr) Variable Function
|
||||||
|
109(ii): 108(ptr) Variable Function
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
LoopMerge 8 9 None
|
LoopMerge 8 9 None
|
||||||
@ -216,5 +340,66 @@ gl_FragCoord origin is upper left
|
|||||||
Store 13(input) 63
|
Store 13(input) 63
|
||||||
Branch 48
|
Branch 48
|
||||||
50: Label
|
50: Label
|
||||||
|
Branch 64
|
||||||
|
64: Label
|
||||||
|
LoopMerge 66 67 None
|
||||||
|
Branch 65
|
||||||
|
65: Label
|
||||||
|
71: 70(ptr) AccessChain 13(input) 69
|
||||||
|
72: 10(float) Load 71
|
||||||
|
73: 29(bool) FOrdGreaterThan 72 60
|
||||||
|
SelectionMerge 75 None
|
||||||
|
BranchConditional 73 74 75
|
||||||
|
74: Label
|
||||||
|
Branch 66
|
||||||
|
75: Label
|
||||||
|
Branch 67
|
||||||
|
67: Label
|
||||||
|
Branch 64
|
||||||
|
66: Label
|
||||||
|
Branch 77
|
||||||
|
77: Label
|
||||||
|
LoopMerge 79 80 None
|
||||||
|
Branch 78
|
||||||
|
78: Label
|
||||||
|
81: 70(ptr) AccessChain 13(input) 69
|
||||||
|
82: 10(float) Load 81
|
||||||
|
83: 29(bool) FOrdGreaterThan 82 60
|
||||||
|
SelectionMerge 85 None
|
||||||
|
BranchConditional 83 84 85
|
||||||
|
84: Label
|
||||||
|
Branch 80
|
||||||
|
85: Label
|
||||||
|
Branch 80
|
||||||
|
80: Label
|
||||||
|
Branch 77
|
||||||
|
79: Label
|
||||||
|
Store 89(ii) 90
|
||||||
|
Branch 91
|
||||||
|
91: Label
|
||||||
|
LoopMerge 93 94 None
|
||||||
|
Branch 95
|
||||||
|
95: Label
|
||||||
|
96: 87(int) Load 89(ii)
|
||||||
|
98: 29(bool) SLessThan 96 97
|
||||||
|
BranchConditional 98 92 93
|
||||||
|
92: Label
|
||||||
|
99: 87(int) Load 89(ii)
|
||||||
|
101: 29(bool) IEqual 99 100
|
||||||
|
SelectionMerge 103 None
|
||||||
|
BranchConditional 101 102 103
|
||||||
|
102: Label
|
||||||
|
Branch 94
|
||||||
|
103: Label
|
||||||
|
Branch 94
|
||||||
|
94: Label
|
||||||
|
105: 87(int) Load 89(ii)
|
||||||
|
107: 87(int) IAdd 105 106
|
||||||
|
Store 89(ii) 107
|
||||||
|
Branch 91
|
||||||
|
93: Label
|
||||||
|
110: 10(float) Load 109(ii)
|
||||||
|
111: 10(float) FSub 110 15
|
||||||
|
Store 109(ii) 111
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -2,7 +2,7 @@ hlsl.if.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:34 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'input' (in 4-component vector of float)
|
0:2 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -61,6 +61,19 @@ gl_FragCoord origin is upper left
|
|||||||
0:26 Branch: Return with expression
|
0:26 Branch: Return with expression
|
||||||
0:26 Negate value (temp 4-component vector of float)
|
0:26 Negate value (temp 4-component vector of float)
|
||||||
0:26 'input' (in 4-component vector of float)
|
0:26 'input' (in 4-component vector of float)
|
||||||
|
0:30 Test condition and select (temp void)
|
||||||
|
0:30 Condition
|
||||||
|
0:30 move second child to first child (temp float)
|
||||||
|
0:30 'ii' (temp float)
|
||||||
|
0:30 direct index (temp float)
|
||||||
|
0:30 'input' (in 4-component vector of float)
|
||||||
|
0:30 Constant:
|
||||||
|
0:30 2 (const int)
|
||||||
|
0:30 true case
|
||||||
|
0:31 Pre-Increment (temp float)
|
||||||
|
0:31 'ii' (temp float)
|
||||||
|
0:32 Pre-Increment (temp int)
|
||||||
|
0:32 'ii' (temp int)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
|
|
||||||
|
|
||||||
@ -70,7 +83,7 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:34 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'input' (in 4-component vector of float)
|
0:2 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -129,11 +142,24 @@ gl_FragCoord origin is upper left
|
|||||||
0:26 Branch: Return with expression
|
0:26 Branch: Return with expression
|
||||||
0:26 Negate value (temp 4-component vector of float)
|
0:26 Negate value (temp 4-component vector of float)
|
||||||
0:26 'input' (in 4-component vector of float)
|
0:26 'input' (in 4-component vector of float)
|
||||||
|
0:30 Test condition and select (temp void)
|
||||||
|
0:30 Condition
|
||||||
|
0:30 move second child to first child (temp float)
|
||||||
|
0:30 'ii' (temp float)
|
||||||
|
0:30 direct index (temp float)
|
||||||
|
0:30 'input' (in 4-component vector of float)
|
||||||
|
0:30 Constant:
|
||||||
|
0:30 2 (const int)
|
||||||
|
0:30 true case
|
||||||
|
0:31 Pre-Increment (temp float)
|
||||||
|
0:31 'ii' (temp float)
|
||||||
|
0:32 Pre-Increment (temp int)
|
||||||
|
0:32 'ii' (temp int)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 64
|
// Id's are bound by 82
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
@ -143,6 +169,8 @@ gl_FragCoord origin is upper left
|
|||||||
Source HLSL 450
|
Source HLSL 450
|
||||||
Name 4 "PixelShaderFunction"
|
Name 4 "PixelShaderFunction"
|
||||||
Name 9 "input"
|
Name 9 "input"
|
||||||
|
Name 65 "ii"
|
||||||
|
Name 78 "ii"
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
@ -151,8 +179,18 @@ gl_FragCoord origin is upper left
|
|||||||
9(input): 8(ptr) Variable Input
|
9(input): 8(ptr) Variable Input
|
||||||
12: TypeBool
|
12: TypeBool
|
||||||
13: TypeVector 12(bool) 4
|
13: TypeVector 12(bool) 4
|
||||||
|
64: TypePointer Function 6(float)
|
||||||
|
66: TypeInt 32 0
|
||||||
|
67: 66(int) Constant 2
|
||||||
|
68: TypePointer Input 6(float)
|
||||||
|
74: 6(float) Constant 1065353216
|
||||||
|
76: TypeInt 32 1
|
||||||
|
77: TypePointer Function 76(int)
|
||||||
|
80: 76(int) Constant 1
|
||||||
4(PixelShaderFunction): 2 Function None 3
|
4(PixelShaderFunction): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
|
65(ii): 64(ptr) Variable Function
|
||||||
|
78(ii): 77(ptr) Variable Function
|
||||||
10: 7(fvec4) Load 9(input)
|
10: 7(fvec4) Load 9(input)
|
||||||
11: 7(fvec4) Load 9(input)
|
11: 7(fvec4) Load 9(input)
|
||||||
14: 13(bvec4) FOrdEqual 10 11
|
14: 13(bvec4) FOrdEqual 10 11
|
||||||
@ -219,5 +257,19 @@ gl_FragCoord origin is upper left
|
|||||||
62: 7(fvec4) FNegate 61
|
62: 7(fvec4) FNegate 61
|
||||||
ReturnValue 62
|
ReturnValue 62
|
||||||
57: Label
|
57: Label
|
||||||
|
69: 68(ptr) AccessChain 9(input) 67
|
||||||
|
70: 6(float) Load 69
|
||||||
|
Store 65(ii) 70
|
||||||
|
SelectionMerge 72 None
|
||||||
|
BranchConditional 70 71 72
|
||||||
|
71: Label
|
||||||
|
73: 6(float) Load 65(ii)
|
||||||
|
75: 6(float) FAdd 73 74
|
||||||
|
Store 65(ii) 75
|
||||||
|
Branch 72
|
||||||
|
72: Label
|
||||||
|
79: 76(int) Load 78(ii)
|
||||||
|
81: 76(int) IAdd 79 80
|
||||||
|
Store 78(ii) 81
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
369
Test/baseResults/hlsl.init.frag.out
Executable file
369
Test/baseResults/hlsl.init.frag.out
Executable file
@ -0,0 +1,369 @@
|
|||||||
|
hlsl.init.frag
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:1 Sequence
|
||||||
|
0:1 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:1 'a1' (global 4-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 0.500000
|
||||||
|
0:? 0.000000
|
||||||
|
0:? 1.000000
|
||||||
|
0:1 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:1 'b1' (global 4-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 2.500000
|
||||||
|
0:? 2.100000
|
||||||
|
0:? 2.200000
|
||||||
|
0:2 Sequence
|
||||||
|
0:2 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:2 'a1i' (global 4-component vector of float)
|
||||||
|
0:2 Constant:
|
||||||
|
0:2 1.000000
|
||||||
|
0:2 0.500000
|
||||||
|
0:2 0.000000
|
||||||
|
0:2 1.000000
|
||||||
|
0:2 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:2 'b1i' (global 4-component vector of float)
|
||||||
|
0:2 Constant:
|
||||||
|
0:2 2.000000
|
||||||
|
0:2 2.500000
|
||||||
|
0:2 2.100000
|
||||||
|
0:2 2.200000
|
||||||
|
0:3 Sequence
|
||||||
|
0:3 move second child to first child (temp float)
|
||||||
|
0:3 'a2' (global float)
|
||||||
|
0:3 Constant:
|
||||||
|
0:3 0.200000
|
||||||
|
0:4 Sequence
|
||||||
|
0:4 move second child to first child (temp float)
|
||||||
|
0:4 'b3' (global float)
|
||||||
|
0:4 Constant:
|
||||||
|
0:4 0.300000
|
||||||
|
0:5 Sequence
|
||||||
|
0:5 move second child to first child (temp float)
|
||||||
|
0:5 'b4' (global float)
|
||||||
|
0:5 Constant:
|
||||||
|
0:5 0.400000
|
||||||
|
0:6 Sequence
|
||||||
|
0:6 move second child to first child (temp float)
|
||||||
|
0:6 'a5' (global float)
|
||||||
|
0:6 Constant:
|
||||||
|
0:6 0.500000
|
||||||
|
0:6 move second child to first child (temp float)
|
||||||
|
0:6 'c5' (global float)
|
||||||
|
0:6 Constant:
|
||||||
|
0:6 1.500000
|
||||||
|
0:25 Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
|
||||||
|
0:9 Function Parameters:
|
||||||
|
0:9 'input' (in 4-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:10 Sequence
|
||||||
|
0:10 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:10 'a2' (temp 4-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.200000
|
||||||
|
0:? 0.300000
|
||||||
|
0:? 0.400000
|
||||||
|
0:? 0.500000
|
||||||
|
0:20 Sequence
|
||||||
|
0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
|
||||||
|
0:20 's2i' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
|
||||||
|
0:20 Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 9 (const int)
|
||||||
|
0:20 'a5' (global float)
|
||||||
|
0:20 Construct structure (temp structure{temp float f, temp int i})
|
||||||
|
0:20 Comma (temp float)
|
||||||
|
0:20 'a3' (global float)
|
||||||
|
0:20 'a4' (global float)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 12 (const int)
|
||||||
|
0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
|
||||||
|
0:20 's2' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
|
||||||
|
0:? Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 9 (const int)
|
||||||
|
0:20 'a5' (global float)
|
||||||
|
0:? Construct structure (temp structure{temp float f, temp int i})
|
||||||
|
0:20 Comma (temp float)
|
||||||
|
0:20 'a3' (global float)
|
||||||
|
0:20 'a4' (global float)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 12 (const int)
|
||||||
|
0:21 Sequence
|
||||||
|
0:21 move second child to first child (temp float)
|
||||||
|
0:21 'a8' (temp float)
|
||||||
|
0:21 Comma (temp float)
|
||||||
|
0:21 'a2' (temp 4-component vector of float)
|
||||||
|
0:21 'b2' (global float)
|
||||||
|
0:21 move second child to first child (temp float)
|
||||||
|
0:21 'a9' (temp float)
|
||||||
|
0:21 'a5' (global float)
|
||||||
|
0:23 Branch: Return with expression
|
||||||
|
0:23 component-wise multiply (temp 4-component vector of float)
|
||||||
|
0:23 'input' (in 4-component vector of float)
|
||||||
|
0:23 'a1' (global 4-component vector of float)
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'a1' (global 4-component vector of float)
|
||||||
|
0:? 'b1' (global 4-component vector of float)
|
||||||
|
0:? 'a1i' (global 4-component vector of float)
|
||||||
|
0:? 'b1i' (global 4-component vector of float)
|
||||||
|
0:? 'a2' (global float)
|
||||||
|
0:? 'b2' (global float)
|
||||||
|
0:? 'a3' (global float)
|
||||||
|
0:? 'b3' (global float)
|
||||||
|
0:? 'a4' (global float)
|
||||||
|
0:? 'b4' (global float)
|
||||||
|
0:? 'c4' (global float)
|
||||||
|
0:? 'a5' (global float)
|
||||||
|
0:? 'b5' (global float)
|
||||||
|
0:? 'c5' (global float)
|
||||||
|
|
||||||
|
|
||||||
|
Linked fragment stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:1 Sequence
|
||||||
|
0:1 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:1 'a1' (global 4-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 0.500000
|
||||||
|
0:? 0.000000
|
||||||
|
0:? 1.000000
|
||||||
|
0:1 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:1 'b1' (global 4-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 2.500000
|
||||||
|
0:? 2.100000
|
||||||
|
0:? 2.200000
|
||||||
|
0:2 Sequence
|
||||||
|
0:2 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:2 'a1i' (global 4-component vector of float)
|
||||||
|
0:2 Constant:
|
||||||
|
0:2 1.000000
|
||||||
|
0:2 0.500000
|
||||||
|
0:2 0.000000
|
||||||
|
0:2 1.000000
|
||||||
|
0:2 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:2 'b1i' (global 4-component vector of float)
|
||||||
|
0:2 Constant:
|
||||||
|
0:2 2.000000
|
||||||
|
0:2 2.500000
|
||||||
|
0:2 2.100000
|
||||||
|
0:2 2.200000
|
||||||
|
0:3 Sequence
|
||||||
|
0:3 move second child to first child (temp float)
|
||||||
|
0:3 'a2' (global float)
|
||||||
|
0:3 Constant:
|
||||||
|
0:3 0.200000
|
||||||
|
0:4 Sequence
|
||||||
|
0:4 move second child to first child (temp float)
|
||||||
|
0:4 'b3' (global float)
|
||||||
|
0:4 Constant:
|
||||||
|
0:4 0.300000
|
||||||
|
0:5 Sequence
|
||||||
|
0:5 move second child to first child (temp float)
|
||||||
|
0:5 'b4' (global float)
|
||||||
|
0:5 Constant:
|
||||||
|
0:5 0.400000
|
||||||
|
0:6 Sequence
|
||||||
|
0:6 move second child to first child (temp float)
|
||||||
|
0:6 'a5' (global float)
|
||||||
|
0:6 Constant:
|
||||||
|
0:6 0.500000
|
||||||
|
0:6 move second child to first child (temp float)
|
||||||
|
0:6 'c5' (global float)
|
||||||
|
0:6 Constant:
|
||||||
|
0:6 1.500000
|
||||||
|
0:25 Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
|
||||||
|
0:9 Function Parameters:
|
||||||
|
0:9 'input' (in 4-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:10 Sequence
|
||||||
|
0:10 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:10 'a2' (temp 4-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.200000
|
||||||
|
0:? 0.300000
|
||||||
|
0:? 0.400000
|
||||||
|
0:? 0.500000
|
||||||
|
0:20 Sequence
|
||||||
|
0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
|
||||||
|
0:20 's2i' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
|
||||||
|
0:20 Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 9 (const int)
|
||||||
|
0:20 'a5' (global float)
|
||||||
|
0:20 Construct structure (temp structure{temp float f, temp int i})
|
||||||
|
0:20 Comma (temp float)
|
||||||
|
0:20 'a3' (global float)
|
||||||
|
0:20 'a4' (global float)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 12 (const int)
|
||||||
|
0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
|
||||||
|
0:20 's2' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
|
||||||
|
0:? Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 9 (const int)
|
||||||
|
0:20 'a5' (global float)
|
||||||
|
0:? Construct structure (temp structure{temp float f, temp int i})
|
||||||
|
0:20 Comma (temp float)
|
||||||
|
0:20 'a3' (global float)
|
||||||
|
0:20 'a4' (global float)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 12 (const int)
|
||||||
|
0:21 Sequence
|
||||||
|
0:21 move second child to first child (temp float)
|
||||||
|
0:21 'a8' (temp float)
|
||||||
|
0:21 Comma (temp float)
|
||||||
|
0:21 'a2' (temp 4-component vector of float)
|
||||||
|
0:21 'b2' (global float)
|
||||||
|
0:21 move second child to first child (temp float)
|
||||||
|
0:21 'a9' (temp float)
|
||||||
|
0:21 'a5' (global float)
|
||||||
|
0:23 Branch: Return with expression
|
||||||
|
0:23 component-wise multiply (temp 4-component vector of float)
|
||||||
|
0:23 'input' (in 4-component vector of float)
|
||||||
|
0:23 'a1' (global 4-component vector of float)
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'a1' (global 4-component vector of float)
|
||||||
|
0:? 'b1' (global 4-component vector of float)
|
||||||
|
0:? 'a1i' (global 4-component vector of float)
|
||||||
|
0:? 'b1i' (global 4-component vector of float)
|
||||||
|
0:? 'a2' (global float)
|
||||||
|
0:? 'b2' (global float)
|
||||||
|
0:? 'a3' (global float)
|
||||||
|
0:? 'b3' (global float)
|
||||||
|
0:? 'a4' (global float)
|
||||||
|
0:? 'b4' (global float)
|
||||||
|
0:? 'c4' (global float)
|
||||||
|
0:? 'a5' (global float)
|
||||||
|
0:? 'b5' (global float)
|
||||||
|
0:? 'c5' (global float)
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 67
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "ShaderFunction" 60
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source HLSL 450
|
||||||
|
Name 4 "ShaderFunction"
|
||||||
|
Name 9 "a1"
|
||||||
|
Name 14 "b1"
|
||||||
|
Name 20 "a1i"
|
||||||
|
Name 21 "b1i"
|
||||||
|
Name 23 "a2"
|
||||||
|
Name 25 "b3"
|
||||||
|
Name 27 "b4"
|
||||||
|
Name 29 "a5"
|
||||||
|
Name 30 "c5"
|
||||||
|
Name 33 "a2"
|
||||||
|
Name 36 "S1"
|
||||||
|
MemberName 36(S1) 0 "f"
|
||||||
|
MemberName 36(S1) 1 "i"
|
||||||
|
Name 37 "S2"
|
||||||
|
MemberName 37(S2) 0 "j"
|
||||||
|
MemberName 37(S2) 1 "g"
|
||||||
|
MemberName 37(S2) 2 "s1"
|
||||||
|
Name 39 "s2i"
|
||||||
|
Name 42 "a3"
|
||||||
|
Name 43 "a4"
|
||||||
|
Name 48 "s2"
|
||||||
|
Name 54 "a8"
|
||||||
|
Name 55 "b2"
|
||||||
|
Name 57 "a9"
|
||||||
|
Name 60 "input"
|
||||||
|
Name 65 "c4"
|
||||||
|
Name 66 "b5"
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypePointer Private 7(fvec4)
|
||||||
|
9(a1): 8(ptr) Variable Private
|
||||||
|
10: 6(float) Constant 1065353216
|
||||||
|
11: 6(float) Constant 1056964608
|
||||||
|
12: 6(float) Constant 0
|
||||||
|
13: 7(fvec4) ConstantComposite 10 11 12 10
|
||||||
|
14(b1): 8(ptr) Variable Private
|
||||||
|
15: 6(float) Constant 1073741824
|
||||||
|
16: 6(float) Constant 1075838976
|
||||||
|
17: 6(float) Constant 1074161254
|
||||||
|
18: 6(float) Constant 1074580685
|
||||||
|
19: 7(fvec4) ConstantComposite 15 16 17 18
|
||||||
|
20(a1i): 8(ptr) Variable Private
|
||||||
|
21(b1i): 8(ptr) Variable Private
|
||||||
|
22: TypePointer Private 6(float)
|
||||||
|
23(a2): 22(ptr) Variable Private
|
||||||
|
24: 6(float) Constant 1045220557
|
||||||
|
25(b3): 22(ptr) Variable Private
|
||||||
|
26: 6(float) Constant 1050253722
|
||||||
|
27(b4): 22(ptr) Variable Private
|
||||||
|
28: 6(float) Constant 1053609165
|
||||||
|
29(a5): 22(ptr) Variable Private
|
||||||
|
30(c5): 22(ptr) Variable Private
|
||||||
|
31: 6(float) Constant 1069547520
|
||||||
|
32: TypePointer Function 7(fvec4)
|
||||||
|
34: 7(fvec4) ConstantComposite 24 26 28 11
|
||||||
|
35: TypeInt 32 1
|
||||||
|
36(S1): TypeStruct 6(float) 35(int)
|
||||||
|
37(S2): TypeStruct 35(int) 6(float) 36(S1)
|
||||||
|
38: TypePointer Function 37(S2)
|
||||||
|
40: 35(int) Constant 9
|
||||||
|
42(a3): 22(ptr) Variable Private
|
||||||
|
43(a4): 22(ptr) Variable Private
|
||||||
|
45: 35(int) Constant 12
|
||||||
|
53: TypePointer Function 6(float)
|
||||||
|
55(b2): 22(ptr) Variable Private
|
||||||
|
59: TypePointer Input 7(fvec4)
|
||||||
|
60(input): 59(ptr) Variable Input
|
||||||
|
65(c4): 22(ptr) Variable Private
|
||||||
|
66(b5): 22(ptr) Variable Private
|
||||||
|
4(ShaderFunction): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
33(a2): 32(ptr) Variable Function
|
||||||
|
39(s2i): 38(ptr) Variable Function
|
||||||
|
48(s2): 38(ptr) Variable Function
|
||||||
|
54(a8): 53(ptr) Variable Function
|
||||||
|
57(a9): 53(ptr) Variable Function
|
||||||
|
Store 9(a1) 13
|
||||||
|
Store 14(b1) 19
|
||||||
|
Store 20(a1i) 13
|
||||||
|
Store 21(b1i) 19
|
||||||
|
Store 23(a2) 24
|
||||||
|
Store 25(b3) 26
|
||||||
|
Store 27(b4) 28
|
||||||
|
Store 29(a5) 11
|
||||||
|
Store 30(c5) 31
|
||||||
|
Store 33(a2) 34
|
||||||
|
41: 6(float) Load 29(a5)
|
||||||
|
44: 6(float) Load 43(a4)
|
||||||
|
46: 36(S1) CompositeConstruct 44 45
|
||||||
|
47: 37(S2) CompositeConstruct 40 41 46
|
||||||
|
Store 39(s2i) 47
|
||||||
|
49: 6(float) Load 29(a5)
|
||||||
|
50: 6(float) Load 43(a4)
|
||||||
|
51: 36(S1) CompositeConstruct 50 45
|
||||||
|
52: 37(S2) CompositeConstruct 40 49 51
|
||||||
|
Store 48(s2) 52
|
||||||
|
56: 6(float) Load 55(b2)
|
||||||
|
Store 54(a8) 56
|
||||||
|
58: 6(float) Load 29(a5)
|
||||||
|
Store 57(a9) 58
|
||||||
|
61: 7(fvec4) Load 60(input)
|
||||||
|
62: 7(fvec4) Load 9(a1)
|
||||||
|
63: 7(fvec4) FMul 61 62
|
||||||
|
ReturnValue 63
|
||||||
|
FunctionEnd
|
@ -2,7 +2,7 @@ hlsl.intrinsics.barriers.comp
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
local_size = (1, 1, 1)
|
local_size = (1, 1, 1)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:14 Function Definition: ComputeShaderFunction( (temp float)
|
0:14 Function Definition: ComputeShaderFunction( (global float)
|
||||||
0:3 Function Parameters:
|
0:3 Function Parameters:
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:4 MemoryBarrier (global void)
|
0:4 MemoryBarrier (global void)
|
||||||
@ -23,7 +23,7 @@ Linked compute stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
local_size = (1, 1, 1)
|
local_size = (1, 1, 1)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:14 Function Definition: ComputeShaderFunction( (temp float)
|
0:14 Function Definition: ComputeShaderFunction( (global float)
|
||||||
0:3 Function Parameters:
|
0:3 Function Parameters:
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:4 MemoryBarrier (global void)
|
0:4 MemoryBarrier (global void)
|
||||||
|
File diff suppressed because it is too large
Load Diff
121
Test/baseResults/hlsl.intrinsics.double.frag.out
Normal file
121
Test/baseResults/hlsl.intrinsics.double.frag.out
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
hlsl.intrinsics.double.frag
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:12 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float)
|
||||||
|
0:5 Function Parameters:
|
||||||
|
0:5 'inDV1a' (in double)
|
||||||
|
0:5 'inDV1b' (in double)
|
||||||
|
0:5 'inDV1c' (in double)
|
||||||
|
0:5 'inDV2' (in 2-component vector of double)
|
||||||
|
0:5 'inDV3' (in 3-component vector of double)
|
||||||
|
0:5 'inDV4' (in 4-component vector of double)
|
||||||
|
0:5 'inU1a' (in uint)
|
||||||
|
0:5 'inU1b' (in uint)
|
||||||
|
0:? Sequence
|
||||||
|
0:6 Sequence
|
||||||
|
0:6 move second child to first child (temp double)
|
||||||
|
0:6 'r00' (temp double)
|
||||||
|
0:6 fma (global double)
|
||||||
|
0:6 'inDV1a' (in double)
|
||||||
|
0:6 'inDV1b' (in double)
|
||||||
|
0:6 'inDV1c' (in double)
|
||||||
|
0:7 Sequence
|
||||||
|
0:7 move second child to first child (temp double)
|
||||||
|
0:7 'r01' (temp double)
|
||||||
|
0:7 uint64BitsToDouble (temp double)
|
||||||
|
0:7 Construct uvec2 (temp 2-component vector of uint)
|
||||||
|
0:7 'inU1a' (in uint)
|
||||||
|
0:7 'inU1b' (in uint)
|
||||||
|
0:9 Branch: Return with expression
|
||||||
|
0:9 Constant:
|
||||||
|
0:9 0.000000
|
||||||
|
0:? Linker Objects
|
||||||
|
|
||||||
|
|
||||||
|
Linked fragment stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:12 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float)
|
||||||
|
0:5 Function Parameters:
|
||||||
|
0:5 'inDV1a' (in double)
|
||||||
|
0:5 'inDV1b' (in double)
|
||||||
|
0:5 'inDV1c' (in double)
|
||||||
|
0:5 'inDV2' (in 2-component vector of double)
|
||||||
|
0:5 'inDV3' (in 3-component vector of double)
|
||||||
|
0:5 'inDV4' (in 4-component vector of double)
|
||||||
|
0:5 'inU1a' (in uint)
|
||||||
|
0:5 'inU1b' (in uint)
|
||||||
|
0:? Sequence
|
||||||
|
0:6 Sequence
|
||||||
|
0:6 move second child to first child (temp double)
|
||||||
|
0:6 'r00' (temp double)
|
||||||
|
0:6 fma (global double)
|
||||||
|
0:6 'inDV1a' (in double)
|
||||||
|
0:6 'inDV1b' (in double)
|
||||||
|
0:6 'inDV1c' (in double)
|
||||||
|
0:7 Sequence
|
||||||
|
0:7 move second child to first child (temp double)
|
||||||
|
0:7 'r01' (temp double)
|
||||||
|
0:7 uint64BitsToDouble (temp double)
|
||||||
|
0:7 Construct uvec2 (temp 2-component vector of uint)
|
||||||
|
0:7 'inU1a' (in uint)
|
||||||
|
0:7 'inU1b' (in uint)
|
||||||
|
0:9 Branch: Return with expression
|
||||||
|
0:9 Constant:
|
||||||
|
0:9 0.000000
|
||||||
|
0:? Linker Objects
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 30
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability Float64
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "PixelShaderFunction" 10 12 14 20 22
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source HLSL 450
|
||||||
|
Name 4 "PixelShaderFunction"
|
||||||
|
Name 8 "r00"
|
||||||
|
Name 10 "inDV1a"
|
||||||
|
Name 12 "inDV1b"
|
||||||
|
Name 14 "inDV1c"
|
||||||
|
Name 17 "r01"
|
||||||
|
Name 20 "inU1a"
|
||||||
|
Name 22 "inU1b"
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 64
|
||||||
|
7: TypePointer Function 6(float)
|
||||||
|
9: TypePointer Input 6(float)
|
||||||
|
10(inDV1a): 9(ptr) Variable Input
|
||||||
|
12(inDV1b): 9(ptr) Variable Input
|
||||||
|
14(inDV1c): 9(ptr) Variable Input
|
||||||
|
18: TypeInt 32 0
|
||||||
|
19: TypePointer Input 18(int)
|
||||||
|
20(inU1a): 19(ptr) Variable Input
|
||||||
|
22(inU1b): 19(ptr) Variable Input
|
||||||
|
24: TypeVector 18(int) 2
|
||||||
|
27: TypeFloat 32
|
||||||
|
28: 27(float) Constant 0
|
||||||
|
4(PixelShaderFunction): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
8(r00): 7(ptr) Variable Function
|
||||||
|
17(r01): 7(ptr) Variable Function
|
||||||
|
11: 6(float) Load 10(inDV1a)
|
||||||
|
13: 6(float) Load 12(inDV1b)
|
||||||
|
15: 6(float) Load 14(inDV1c)
|
||||||
|
16: 6(float) ExtInst 1(GLSL.std.450) 50(Fma) 11 13 15
|
||||||
|
Store 8(r00) 16
|
||||||
|
21: 18(int) Load 20(inU1a)
|
||||||
|
23: 18(int) Load 22(inU1b)
|
||||||
|
25: 24(ivec2) CompositeConstruct 21 23
|
||||||
|
26: 6(float) Bitcast 25
|
||||||
|
Store 17(r01) 26
|
||||||
|
ReturnValue 28
|
||||||
|
FunctionEnd
|
@ -2,7 +2,7 @@ hlsl.intrinsics.evalfns.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (temp void)
|
0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void)
|
||||||
0:3 Function Parameters:
|
0:3 Function Parameters:
|
||||||
0:3 'inF1' (in float)
|
0:3 'inF1' (in float)
|
||||||
0:3 'inF2' (in 2-component vector of float)
|
0:3 'inF2' (in 2-component vector of float)
|
||||||
@ -52,7 +52,7 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (temp void)
|
0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void)
|
||||||
0:3 Function Parameters:
|
0:3 Function Parameters:
|
||||||
0:3 'inF1' (in float)
|
0:3 'inF1' (in float)
|
||||||
0:3 'inF2' (in 2-component vector of float)
|
0:3 'inF2' (in 2-component vector of float)
|
||||||
|
@ -9,7 +9,7 @@ ERROR: 4 compilation errors. No code generated.
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:8 Function Definition: PixelShaderFunction(f1; (temp float)
|
0:8 Function Definition: PixelShaderFunctionS(f1; (global float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'inF0' (in float)
|
0:2 'inF0' (in float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -19,14 +19,14 @@ ERROR: node is still EOpNull!
|
|||||||
0:5 Branch: Return with expression
|
0:5 Branch: Return with expression
|
||||||
0:5 Constant:
|
0:5 Constant:
|
||||||
0:5 0.000000
|
0:5 0.000000
|
||||||
0:14 Function Definition: PixelShaderFunction(vf1; (temp 1-component vector of float)
|
0:14 Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float)
|
||||||
0:9 Function Parameters:
|
0:9 Function Parameters:
|
||||||
0:9 'inF0' (in 1-component vector of float)
|
0:9 'inF0' (in 1-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:11 Branch: Return with expression
|
0:11 Branch: Return with expression
|
||||||
0:11 Constant:
|
0:11 Constant:
|
||||||
0:11 0.000000
|
0:11 0.000000
|
||||||
0:21 Function Definition: PixelShaderFunction(vf2; (temp 2-component vector of float)
|
0:21 Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float)
|
||||||
0:15 Function Parameters:
|
0:15 Function Parameters:
|
||||||
0:15 'inF0' (in 2-component vector of float)
|
0:15 'inF0' (in 2-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -37,7 +37,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 1.000000
|
0:? 1.000000
|
||||||
0:? 2.000000
|
0:? 2.000000
|
||||||
0:28 Function Definition: PixelShaderFunction(vf3; (temp 3-component vector of float)
|
0:28 Function Definition: PixelShaderFunction3(vf3; (global 3-component vector of float)
|
||||||
0:22 Function Parameters:
|
0:22 Function Parameters:
|
||||||
0:22 'inF0' (in 3-component vector of float)
|
0:22 'inF0' (in 3-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -49,7 +49,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:? 1.000000
|
0:? 1.000000
|
||||||
0:? 2.000000
|
0:? 2.000000
|
||||||
0:? 3.000000
|
0:? 3.000000
|
||||||
0:35 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:35 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:29 Function Parameters:
|
0:29 Function Parameters:
|
||||||
0:29 'inF0' (in 4-component vector of float)
|
0:29 'inF0' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -71,7 +71,7 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:8 Function Definition: PixelShaderFunction(f1; (temp float)
|
0:8 Function Definition: PixelShaderFunctionS(f1; (global float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'inF0' (in float)
|
0:2 'inF0' (in float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -81,14 +81,14 @@ ERROR: node is still EOpNull!
|
|||||||
0:5 Branch: Return with expression
|
0:5 Branch: Return with expression
|
||||||
0:5 Constant:
|
0:5 Constant:
|
||||||
0:5 0.000000
|
0:5 0.000000
|
||||||
0:14 Function Definition: PixelShaderFunction(vf1; (temp 1-component vector of float)
|
0:14 Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float)
|
||||||
0:9 Function Parameters:
|
0:9 Function Parameters:
|
||||||
0:9 'inF0' (in 1-component vector of float)
|
0:9 'inF0' (in 1-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:11 Branch: Return with expression
|
0:11 Branch: Return with expression
|
||||||
0:11 Constant:
|
0:11 Constant:
|
||||||
0:11 0.000000
|
0:11 0.000000
|
||||||
0:21 Function Definition: PixelShaderFunction(vf2; (temp 2-component vector of float)
|
0:21 Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float)
|
||||||
0:15 Function Parameters:
|
0:15 Function Parameters:
|
||||||
0:15 'inF0' (in 2-component vector of float)
|
0:15 'inF0' (in 2-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -99,7 +99,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 1.000000
|
0:? 1.000000
|
||||||
0:? 2.000000
|
0:? 2.000000
|
||||||
0:28 Function Definition: PixelShaderFunction(vf3; (temp 3-component vector of float)
|
0:28 Function Definition: PixelShaderFunction3(vf3; (global 3-component vector of float)
|
||||||
0:22 Function Parameters:
|
0:22 Function Parameters:
|
||||||
0:22 'inF0' (in 3-component vector of float)
|
0:22 'inF0' (in 3-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -111,7 +111,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:? 1.000000
|
0:? 1.000000
|
||||||
0:? 2.000000
|
0:? 2.000000
|
||||||
0:? 3.000000
|
0:? 3.000000
|
||||||
0:35 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:35 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:29 Function Parameters:
|
0:29 Function Parameters:
|
||||||
0:29 'inF0' (in 4-component vector of float)
|
0:29 'inF0' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -2,38 +2,39 @@ hlsl.intrinsics.lit.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (temp void)
|
0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (global void)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'n_dot_l' (in float)
|
0:2 'n_dot_l' (in float)
|
||||||
0:2 'n_dot_h' (in float)
|
0:2 'n_dot_h' (in float)
|
||||||
0:2 'm' (in float)
|
0:2 'm' (in float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:3 move second child to first child (temp 4-component vector of float)
|
0:3 Sequence
|
||||||
0:3 'r0' (temp 4-component vector of float)
|
0:3 move second child to first child (temp 4-component vector of float)
|
||||||
0:3 Construct vec4 (temp 4-component vector of float)
|
0:3 'r0' (temp 4-component vector of float)
|
||||||
0:3 Constant:
|
0:3 Construct vec4 (temp 4-component vector of float)
|
||||||
0:3 1.000000
|
|
||||||
0:3 max (temp float)
|
|
||||||
0:3 'n_dot_l' (in float)
|
|
||||||
0:3 Constant:
|
0:3 Constant:
|
||||||
0:3 0.000000
|
0:3 1.000000
|
||||||
0:3 Test condition and select (temp float)
|
0:3 max (temp float)
|
||||||
0:3 Condition
|
0:3 'n_dot_l' (in float)
|
||||||
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 Constant:
|
||||||
0:3 0.000000
|
0:3 0.000000
|
||||||
0:3 true case
|
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 Constant:
|
||||||
0:3 0.000000
|
0:3 1.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
|
0:? Linker Objects
|
||||||
|
|
||||||
|
|
||||||
@ -43,38 +44,39 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (temp void)
|
0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (global void)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'n_dot_l' (in float)
|
0:2 'n_dot_l' (in float)
|
||||||
0:2 'n_dot_h' (in float)
|
0:2 'n_dot_h' (in float)
|
||||||
0:2 'm' (in float)
|
0:2 'm' (in float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:3 move second child to first child (temp 4-component vector of float)
|
0:3 Sequence
|
||||||
0:3 'r0' (temp 4-component vector of float)
|
0:3 move second child to first child (temp 4-component vector of float)
|
||||||
0:3 Construct vec4 (temp 4-component vector of float)
|
0:3 'r0' (temp 4-component vector of float)
|
||||||
0:3 Constant:
|
0:3 Construct vec4 (temp 4-component vector of float)
|
||||||
0:3 1.000000
|
|
||||||
0:3 max (temp float)
|
|
||||||
0:3 'n_dot_l' (in float)
|
|
||||||
0:3 Constant:
|
0:3 Constant:
|
||||||
0:3 0.000000
|
0:3 1.000000
|
||||||
0:3 Test condition and select (temp float)
|
0:3 max (temp float)
|
||||||
0:3 Condition
|
0:3 'n_dot_l' (in float)
|
||||||
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 Constant:
|
||||||
0:3 0.000000
|
0:3 0.000000
|
||||||
0:3 true case
|
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 Constant:
|
||||||
0:3 0.000000
|
0:3 1.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
|
0:? Linker Objects
|
||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
|
@ -18,7 +18,6 @@ ERROR: 0:22: 'EvaluateAttributeSnapped' : no matching overloaded function found
|
|||||||
ERROR: 0:23: 'f16tof32' : 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:24: 'firstbithigh' : no matching overloaded function found
|
||||||
ERROR: 0:25: 'firstbitlow' : 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:27: 'fwidth' : no matching overloaded function found
|
||||||
ERROR: 0:28: 'InterlockedAdd' : 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:29: 'InterlockedAdd' : no matching overloaded function found
|
||||||
@ -61,7 +60,6 @@ ERROR: 0:83: 'EvaluateAttributeSnapped' : no matching overloaded function found
|
|||||||
ERROR: 0:84: 'f16tof32' : 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:85: 'firstbithigh' : no matching overloaded function found
|
||||||
ERROR: 0:86: 'firstbitlow' : 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:88: 'fwidth' : no matching overloaded function found
|
||||||
ERROR: 0:89: 'InterlockedAdd' : 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:90: 'InterlockedAdd' : no matching overloaded function found
|
||||||
@ -96,7 +94,6 @@ ERROR: 0:128: 'EvaluateAttributeSnapped' : no matching overloaded function found
|
|||||||
ERROR: 0:129: 'f16tof32' : 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:130: 'firstbithigh' : no matching overloaded function found
|
||||||
ERROR: 0:131: 'firstbitlow' : 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:133: 'fwidth' : no matching overloaded function found
|
||||||
ERROR: 0:134: 'InterlockedAdd' : 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:135: 'InterlockedAdd' : no matching overloaded function found
|
||||||
@ -131,7 +128,6 @@ ERROR: 0:173: 'EvaluateAttributeSnapped' : no matching overloaded function found
|
|||||||
ERROR: 0:174: 'f16tof32' : 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:175: 'firstbithigh' : no matching overloaded function found
|
||||||
ERROR: 0:176: 'firstbitlow' : 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:178: 'fwidth' : no matching overloaded function found
|
||||||
ERROR: 0:179: 'InterlockedAdd' : 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:180: 'InterlockedAdd' : no matching overloaded function found
|
||||||
@ -150,13 +146,13 @@ ERROR: 0:192: 'InterlockedXor' : no matching overloaded function found
|
|||||||
ERROR: 0:193: 'noise' : 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:194: 'reversebits' : no matching overloaded function found
|
||||||
ERROR: 0:195: 'transpose' : no matching overloaded function found
|
ERROR: 0:195: 'transpose' : no matching overloaded function found
|
||||||
ERROR: 151 compilation errors. No code generated.
|
ERROR: 147 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 450
|
Shader version: 450
|
||||||
local_size = (1, 1, 1)
|
local_size = (1, 1, 1)
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:56 Function Definition: ComputeShaderFunction(f1;f1;f1;i1; (temp float)
|
0:56 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'inF0' (in float)
|
0:2 'inF0' (in float)
|
||||||
0:2 'inF1' (in float)
|
0:2 'inF1' (in float)
|
||||||
@ -201,8 +197,6 @@ ERROR: node is still EOpNull!
|
|||||||
0:24 0.000000
|
0:24 0.000000
|
||||||
0:25 Constant:
|
0:25 Constant:
|
||||||
0:25 0.000000
|
0:25 0.000000
|
||||||
0:26 Constant:
|
|
||||||
0:26 0.000000
|
|
||||||
0:27 Constant:
|
0:27 Constant:
|
||||||
0:27 0.000000
|
0:27 0.000000
|
||||||
0:28 Constant:
|
0:28 Constant:
|
||||||
@ -252,7 +246,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:53 Branch: Return with expression
|
0:53 Branch: Return with expression
|
||||||
0:53 Constant:
|
0:53 Constant:
|
||||||
0:53 0.000000
|
0:53 0.000000
|
||||||
0:65 Function Definition: ComputeShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
|
0:65 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
|
||||||
0:57 Function Parameters:
|
0:57 Function Parameters:
|
||||||
0:57 'inF0' (in 1-component vector of float)
|
0:57 'inF0' (in 1-component vector of float)
|
||||||
0:57 'inF1' (in 1-component vector of float)
|
0:57 'inF1' (in 1-component vector of float)
|
||||||
@ -264,7 +258,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:62 Branch: Return with expression
|
0:62 Branch: Return with expression
|
||||||
0:62 Constant:
|
0:62 Constant:
|
||||||
0:62 0.000000
|
0:62 0.000000
|
||||||
0:112 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
|
0:112 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
|
||||||
0:66 Function Parameters:
|
0:66 Function Parameters:
|
||||||
0:66 'inF0' (in 2-component vector of float)
|
0:66 'inF0' (in 2-component vector of float)
|
||||||
0:66 'inF1' (in 2-component vector of float)
|
0:66 'inF1' (in 2-component vector of float)
|
||||||
@ -307,8 +301,6 @@ ERROR: node is still EOpNull!
|
|||||||
0:85 0.000000
|
0:85 0.000000
|
||||||
0:86 Constant:
|
0:86 Constant:
|
||||||
0:86 0.000000
|
0:86 0.000000
|
||||||
0:87 Constant:
|
|
||||||
0:87 0.000000
|
|
||||||
0:88 Constant:
|
0:88 Constant:
|
||||||
0:88 0.000000
|
0:88 0.000000
|
||||||
0:89 Constant:
|
0:89 Constant:
|
||||||
@ -349,7 +341,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 1.000000
|
0:? 1.000000
|
||||||
0:? 2.000000
|
0:? 2.000000
|
||||||
0:157 Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
|
0:157 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
|
||||||
0:113 Function Parameters:
|
0:113 Function Parameters:
|
||||||
0:113 'inF0' (in 3-component vector of float)
|
0:113 'inF0' (in 3-component vector of float)
|
||||||
0:113 'inF1' (in 3-component vector of float)
|
0:113 'inF1' (in 3-component vector of float)
|
||||||
@ -388,8 +380,6 @@ ERROR: node is still EOpNull!
|
|||||||
0:130 0.000000
|
0:130 0.000000
|
||||||
0:131 Constant:
|
0:131 Constant:
|
||||||
0:131 0.000000
|
0:131 0.000000
|
||||||
0:132 Constant:
|
|
||||||
0:132 0.000000
|
|
||||||
0:133 Constant:
|
0:133 Constant:
|
||||||
0:133 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:134 Constant:
|
||||||
@ -431,7 +421,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:? 1.000000
|
0:? 1.000000
|
||||||
0:? 2.000000
|
0:? 2.000000
|
||||||
0:? 3.000000
|
0:? 3.000000
|
||||||
0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
|
0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
|
||||||
0:158 Function Parameters:
|
0:158 Function Parameters:
|
||||||
0:158 'inF0' (in 4-component vector of float)
|
0:158 'inF0' (in 4-component vector of float)
|
||||||
0:158 'inF1' (in 4-component vector of float)
|
0:158 'inF1' (in 4-component vector of float)
|
||||||
@ -470,8 +460,6 @@ ERROR: node is still EOpNull!
|
|||||||
0:175 0.000000
|
0:175 0.000000
|
||||||
0:176 Constant:
|
0:176 Constant:
|
||||||
0:176 0.000000
|
0:176 0.000000
|
||||||
0:177 Constant:
|
|
||||||
0:177 0.000000
|
|
||||||
0:178 Constant:
|
0:178 Constant:
|
||||||
0:178 0.000000
|
0:178 0.000000
|
||||||
0:179 Constant:
|
0:179 Constant:
|
||||||
@ -523,7 +511,7 @@ Linked compute stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
local_size = (1, 1, 1)
|
local_size = (1, 1, 1)
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:56 Function Definition: ComputeShaderFunction(f1;f1;f1;i1; (temp float)
|
0:56 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'inF0' (in float)
|
0:2 'inF0' (in float)
|
||||||
0:2 'inF1' (in float)
|
0:2 'inF1' (in float)
|
||||||
@ -568,8 +556,6 @@ ERROR: node is still EOpNull!
|
|||||||
0:24 0.000000
|
0:24 0.000000
|
||||||
0:25 Constant:
|
0:25 Constant:
|
||||||
0:25 0.000000
|
0:25 0.000000
|
||||||
0:26 Constant:
|
|
||||||
0:26 0.000000
|
|
||||||
0:27 Constant:
|
0:27 Constant:
|
||||||
0:27 0.000000
|
0:27 0.000000
|
||||||
0:28 Constant:
|
0:28 Constant:
|
||||||
@ -619,7 +605,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:53 Branch: Return with expression
|
0:53 Branch: Return with expression
|
||||||
0:53 Constant:
|
0:53 Constant:
|
||||||
0:53 0.000000
|
0:53 0.000000
|
||||||
0:65 Function Definition: ComputeShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
|
0:65 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
|
||||||
0:57 Function Parameters:
|
0:57 Function Parameters:
|
||||||
0:57 'inF0' (in 1-component vector of float)
|
0:57 'inF0' (in 1-component vector of float)
|
||||||
0:57 'inF1' (in 1-component vector of float)
|
0:57 'inF1' (in 1-component vector of float)
|
||||||
@ -631,7 +617,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:62 Branch: Return with expression
|
0:62 Branch: Return with expression
|
||||||
0:62 Constant:
|
0:62 Constant:
|
||||||
0:62 0.000000
|
0:62 0.000000
|
||||||
0:112 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
|
0:112 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
|
||||||
0:66 Function Parameters:
|
0:66 Function Parameters:
|
||||||
0:66 'inF0' (in 2-component vector of float)
|
0:66 'inF0' (in 2-component vector of float)
|
||||||
0:66 'inF1' (in 2-component vector of float)
|
0:66 'inF1' (in 2-component vector of float)
|
||||||
@ -674,8 +660,6 @@ ERROR: node is still EOpNull!
|
|||||||
0:85 0.000000
|
0:85 0.000000
|
||||||
0:86 Constant:
|
0:86 Constant:
|
||||||
0:86 0.000000
|
0:86 0.000000
|
||||||
0:87 Constant:
|
|
||||||
0:87 0.000000
|
|
||||||
0:88 Constant:
|
0:88 Constant:
|
||||||
0:88 0.000000
|
0:88 0.000000
|
||||||
0:89 Constant:
|
0:89 Constant:
|
||||||
@ -716,7 +700,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 1.000000
|
0:? 1.000000
|
||||||
0:? 2.000000
|
0:? 2.000000
|
||||||
0:157 Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
|
0:157 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
|
||||||
0:113 Function Parameters:
|
0:113 Function Parameters:
|
||||||
0:113 'inF0' (in 3-component vector of float)
|
0:113 'inF0' (in 3-component vector of float)
|
||||||
0:113 'inF1' (in 3-component vector of float)
|
0:113 'inF1' (in 3-component vector of float)
|
||||||
@ -755,8 +739,6 @@ ERROR: node is still EOpNull!
|
|||||||
0:130 0.000000
|
0:130 0.000000
|
||||||
0:131 Constant:
|
0:131 Constant:
|
||||||
0:131 0.000000
|
0:131 0.000000
|
||||||
0:132 Constant:
|
|
||||||
0:132 0.000000
|
|
||||||
0:133 Constant:
|
0:133 Constant:
|
||||||
0:133 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:134 Constant:
|
||||||
@ -798,7 +780,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:? 1.000000
|
0:? 1.000000
|
||||||
0:? 2.000000
|
0:? 2.000000
|
||||||
0:? 3.000000
|
0:? 3.000000
|
||||||
0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
|
0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
|
||||||
0:158 Function Parameters:
|
0:158 Function Parameters:
|
||||||
0:158 'inF0' (in 4-component vector of float)
|
0:158 'inF0' (in 4-component vector of float)
|
||||||
0:158 'inF1' (in 4-component vector of float)
|
0:158 'inF1' (in 4-component vector of float)
|
||||||
@ -837,8 +819,6 @@ ERROR: node is still EOpNull!
|
|||||||
0:175 0.000000
|
0:175 0.000000
|
||||||
0:176 Constant:
|
0:176 Constant:
|
||||||
0:176 0.000000
|
0:176 0.000000
|
||||||
0:177 Constant:
|
|
||||||
0:177 0.000000
|
|
||||||
0:178 Constant:
|
0:178 Constant:
|
||||||
0:178 0.000000
|
0:178 0.000000
|
||||||
0:179 Constant:
|
0:179 Constant:
|
||||||
|
@ -8,7 +8,6 @@ ERROR: 0:10: 'determinant' : no matching overloaded function found
|
|||||||
ERROR: 0:12: 'f16tof32' : 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:13: 'firstbithigh' : no matching overloaded function found
|
||||||
ERROR: 0:14: 'firstbitlow' : 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:23: 'length' : no matching overloaded function found
|
||||||
ERROR: 0:24: 'msad4' : 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:25: 'normalize' : no matching overloaded function found
|
||||||
@ -27,7 +26,6 @@ ERROR: 0:51: 'determinant' : no matching overloaded function found
|
|||||||
ERROR: 0:52: 'f16tof32' : 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:53: 'firstbithigh' : no matching overloaded function found
|
||||||
ERROR: 0:54: 'firstbitlow' : 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:56: 'reversebits' : no matching overloaded function found
|
||||||
ERROR: 0:57: 'transpose' : 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:64: 'CheckAccessFullyMapped' : no matching overloaded function found
|
||||||
@ -37,7 +35,6 @@ ERROR: 0:67: 'determinant' : no matching overloaded function found
|
|||||||
ERROR: 0:68: 'f16tof32' : 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:69: 'firstbithigh' : no matching overloaded function found
|
||||||
ERROR: 0:70: 'firstbitlow' : 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:72: 'reversebits' : no matching overloaded function found
|
||||||
ERROR: 0:73: 'transpose' : 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:81: 'CheckAccessFullyMapped' : no matching overloaded function found
|
||||||
@ -47,58 +44,54 @@ ERROR: 0:84: 'determinant' : no matching overloaded function found
|
|||||||
ERROR: 0:85: 'f16tof32' : 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:86: 'firstbithigh' : no matching overloaded function found
|
||||||
ERROR: 0:87: 'firstbitlow' : 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:89: 'reversebits' : no matching overloaded function found
|
||||||
ERROR: 0:90: 'transpose' : 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:117: 'countbits' : no matching overloaded function found
|
||||||
ERROR: 0:118: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
ERROR: 0:117: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||||
ERROR: 0:118: 'cross' : no matching overloaded function found
|
ERROR: 0:117: 'cross' : no matching overloaded function found
|
||||||
ERROR: 0:118: 'f16tof32' : no matching overloaded function found
|
ERROR: 0:117: 'f16tof32' : no matching overloaded function found
|
||||||
ERROR: 0:118: 'firstbithigh' : no matching overloaded function found
|
ERROR: 0:117: 'firstbithigh' : no matching overloaded function found
|
||||||
ERROR: 0:118: 'firstbitlow' : no matching overloaded function found
|
ERROR: 0:117: 'firstbitlow' : no matching overloaded function found
|
||||||
ERROR: 0:118: 'fma' : no matching overloaded function found
|
ERROR: 0:117: 'reversebits' : no matching overloaded function found
|
||||||
ERROR: 0:118: 'reversebits' : no matching overloaded function found
|
ERROR: 0:117: 'length' : no matching overloaded function found
|
||||||
ERROR: 0:118: 'length' : no matching overloaded function found
|
ERROR: 0:117: 'noise' : no matching overloaded function found
|
||||||
ERROR: 0:118: 'noise' : no matching overloaded function found
|
ERROR: 0:117: 'normalize' : no matching overloaded function found
|
||||||
ERROR: 0:118: 'normalize' : no matching overloaded function found
|
ERROR: 0:117: 'reflect' : no matching overloaded function found
|
||||||
ERROR: 0:118: 'reflect' : no matching overloaded function found
|
ERROR: 0:117: 'refract' : no matching overloaded function found
|
||||||
ERROR: 0:118: 'refract' : no matching overloaded function found
|
ERROR: 0:117: 'reversebits' : no matching overloaded function found
|
||||||
ERROR: 0:118: 'reversebits' : no matching overloaded function found
|
ERROR: 0:125: 'countbits' : no matching overloaded function found
|
||||||
ERROR: 0:126: 'countbits' : no matching overloaded function found
|
ERROR: 0:125: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||||
ERROR: 0:126: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
ERROR: 0:125: 'cross' : no matching overloaded function found
|
||||||
ERROR: 0:126: 'cross' : no matching overloaded function found
|
ERROR: 0:125: 'f16tof32' : no matching overloaded function found
|
||||||
ERROR: 0:126: 'f16tof32' : no matching overloaded function found
|
ERROR: 0:125: 'firstbithigh' : no matching overloaded function found
|
||||||
ERROR: 0:126: 'firstbithigh' : no matching overloaded function found
|
ERROR: 0:125: 'firstbitlow' : no matching overloaded function found
|
||||||
ERROR: 0:126: 'firstbitlow' : no matching overloaded function found
|
ERROR: 0:125: 'reversebits' : no matching overloaded function found
|
||||||
ERROR: 0:126: 'fma' : no matching overloaded function found
|
ERROR: 0:125: 'length' : no matching overloaded function found
|
||||||
ERROR: 0:126: 'reversebits' : no matching overloaded function found
|
ERROR: 0:125: 'noise' : no matching overloaded function found
|
||||||
ERROR: 0:126: 'length' : no matching overloaded function found
|
ERROR: 0:125: 'normalize' : no matching overloaded function found
|
||||||
ERROR: 0:126: 'noise' : no matching overloaded function found
|
ERROR: 0:125: 'reflect' : no matching overloaded function found
|
||||||
ERROR: 0:126: 'normalize' : no matching overloaded function found
|
ERROR: 0:125: 'refract' : no matching overloaded function found
|
||||||
ERROR: 0:126: 'reflect' : no matching overloaded function found
|
ERROR: 0:125: 'reversebits' : no matching overloaded function found
|
||||||
ERROR: 0:126: 'refract' : no matching overloaded function found
|
ERROR: 0:133: 'countbits' : no matching overloaded function found
|
||||||
ERROR: 0:126: 'reversebits' : no matching overloaded function found
|
ERROR: 0:133: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||||
ERROR: 0:134: 'countbits' : no matching overloaded function found
|
ERROR: 0:133: 'cross' : no matching overloaded function found
|
||||||
ERROR: 0:134: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
ERROR: 0:133: 'f16tof32' : no matching overloaded function found
|
||||||
ERROR: 0:134: 'cross' : no matching overloaded function found
|
ERROR: 0:133: 'firstbithigh' : no matching overloaded function found
|
||||||
ERROR: 0:134: 'f16tof32' : no matching overloaded function found
|
ERROR: 0:133: 'firstbitlow' : no matching overloaded function found
|
||||||
ERROR: 0:134: 'firstbithigh' : no matching overloaded function found
|
ERROR: 0:133: 'reversebits' : no matching overloaded function found
|
||||||
ERROR: 0:134: 'firstbitlow' : no matching overloaded function found
|
ERROR: 0:133: 'length' : no matching overloaded function found
|
||||||
ERROR: 0:134: 'fma' : no matching overloaded function found
|
ERROR: 0:133: 'noise' : no matching overloaded function found
|
||||||
ERROR: 0:134: 'reversebits' : no matching overloaded function found
|
ERROR: 0:133: 'normalize' : no matching overloaded function found
|
||||||
ERROR: 0:134: 'length' : no matching overloaded function found
|
ERROR: 0:133: 'reflect' : no matching overloaded function found
|
||||||
ERROR: 0:134: 'noise' : no matching overloaded function found
|
ERROR: 0:133: 'refract' : no matching overloaded function found
|
||||||
ERROR: 0:134: 'normalize' : no matching overloaded function found
|
ERROR: 0:133: 'reversebits' : no matching overloaded function found
|
||||||
ERROR: 0:134: 'reflect' : no matching overloaded function found
|
ERROR: 86 compilation errors. No code generated.
|
||||||
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
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:35 Function Definition: PixelShaderFunction(f1;f1;f1;i1; (temp float)
|
0:35 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'inF0' (in float)
|
0:2 'inF0' (in float)
|
||||||
0:2 'inF1' (in float)
|
0:2 'inF1' (in float)
|
||||||
@ -123,8 +116,6 @@ ERROR: node is still EOpNull!
|
|||||||
0:13 0.000000
|
0:13 0.000000
|
||||||
0:14 Constant:
|
0:14 Constant:
|
||||||
0:14 0.000000
|
0:14 0.000000
|
||||||
0:15 Constant:
|
|
||||||
0:15 0.000000
|
|
||||||
0:23 Constant:
|
0:23 Constant:
|
||||||
0:23 0.000000
|
0:23 0.000000
|
||||||
0:24 Constant:
|
0:24 Constant:
|
||||||
@ -144,7 +135,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:32 Branch: Return with expression
|
0:32 Branch: Return with expression
|
||||||
0:32 Constant:
|
0:32 Constant:
|
||||||
0:32 0.000000
|
0:32 0.000000
|
||||||
0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
|
0:44 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
|
||||||
0:36 Function Parameters:
|
0:36 Function Parameters:
|
||||||
0:36 'inF0' (in 1-component vector of float)
|
0:36 'inF0' (in 1-component vector of float)
|
||||||
0:36 'inF1' (in 1-component vector of float)
|
0:36 'inF1' (in 1-component vector of float)
|
||||||
@ -156,7 +147,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:41 Branch: Return with expression
|
0:41 Branch: Return with expression
|
||||||
0:41 Constant:
|
0:41 Constant:
|
||||||
0:41 0.000000
|
0:41 0.000000
|
||||||
0:62 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
|
0:62 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
|
||||||
0:45 Function Parameters:
|
0:45 Function Parameters:
|
||||||
0:45 'inF0' (in 2-component vector of float)
|
0:45 'inF0' (in 2-component vector of float)
|
||||||
0:45 'inF1' (in 2-component vector of float)
|
0:45 'inF1' (in 2-component vector of float)
|
||||||
@ -181,8 +172,6 @@ ERROR: node is still EOpNull!
|
|||||||
0:53 0.000000
|
0:53 0.000000
|
||||||
0:54 Constant:
|
0:54 Constant:
|
||||||
0:54 0.000000
|
0:54 0.000000
|
||||||
0:55 Constant:
|
|
||||||
0:55 0.000000
|
|
||||||
0:56 Constant:
|
0:56 Constant:
|
||||||
0:56 0.000000
|
0:56 0.000000
|
||||||
0:57 Constant:
|
0:57 Constant:
|
||||||
@ -191,7 +180,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 1.000000
|
0:? 1.000000
|
||||||
0:? 2.000000
|
0:? 2.000000
|
||||||
0:79 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
|
0:79 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
|
||||||
0:63 Function Parameters:
|
0:63 Function Parameters:
|
||||||
0:63 'inF0' (in 3-component vector of float)
|
0:63 'inF0' (in 3-component vector of float)
|
||||||
0:63 'inF1' (in 3-component vector of float)
|
0:63 'inF1' (in 3-component vector of float)
|
||||||
@ -212,8 +201,6 @@ ERROR: node is still EOpNull!
|
|||||||
0:69 0.000000
|
0:69 0.000000
|
||||||
0:70 Constant:
|
0:70 Constant:
|
||||||
0:70 0.000000
|
0:70 0.000000
|
||||||
0:71 Constant:
|
|
||||||
0:71 0.000000
|
|
||||||
0:72 Constant:
|
0:72 Constant:
|
||||||
0:72 0.000000
|
0:72 0.000000
|
||||||
0:73 Constant:
|
0:73 Constant:
|
||||||
@ -223,7 +210,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:? 1.000000
|
0:? 1.000000
|
||||||
0:? 2.000000
|
0:? 2.000000
|
||||||
0:? 3.000000
|
0:? 3.000000
|
||||||
0:115 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
|
0:114 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
|
||||||
0:80 Function Parameters:
|
0:80 Function Parameters:
|
||||||
0:80 'inF0' (in 4-component vector of float)
|
0:80 'inF0' (in 4-component vector of float)
|
||||||
0:80 'inF1' (in 4-component vector of float)
|
0:80 'inF1' (in 4-component vector of float)
|
||||||
@ -244,8 +231,6 @@ ERROR: node is still EOpNull!
|
|||||||
0:86 0.000000
|
0:86 0.000000
|
||||||
0:87 Constant:
|
0:87 Constant:
|
||||||
0:87 0.000000
|
0:87 0.000000
|
||||||
0:88 Constant:
|
|
||||||
0:88 0.000000
|
|
||||||
0:89 Constant:
|
0:89 Constant:
|
||||||
0:89 0.000000
|
0:89 0.000000
|
||||||
0:90 Constant:
|
0:90 Constant:
|
||||||
@ -256,81 +241,77 @@ ERROR: node is still EOpNull!
|
|||||||
0:? 2.000000
|
0:? 2.000000
|
||||||
0:? 3.000000
|
0:? 3.000000
|
||||||
0:? 4.000000
|
0:? 4.000000
|
||||||
0:123 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
|
0:122 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
|
||||||
0:116 Function Parameters:
|
0:115 Function Parameters:
|
||||||
0:116 'inF0' (in 2X2 matrix of float)
|
0:115 'inF0' (in 2X2 matrix of float)
|
||||||
0:116 'inF1' (in 2X2 matrix of float)
|
0:115 'inF1' (in 2X2 matrix of float)
|
||||||
0:116 'inF2' (in 2X2 matrix of float)
|
0:115 'inF2' (in 2X2 matrix of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:119 Branch: Return with expression
|
||||||
0:118 0.000000
|
|
||||||
0:120 Branch: Return with expression
|
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 2.000000
|
0:? 2.000000
|
||||||
0:? 2.000000
|
0:? 2.000000
|
||||||
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:130 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
|
||||||
0:124 Function Parameters:
|
0:123 Function Parameters:
|
||||||
0:124 'inF0' (in 3X3 matrix of float)
|
0:123 'inF0' (in 3X3 matrix of float)
|
||||||
0:124 'inF1' (in 3X3 matrix of float)
|
0:123 'inF1' (in 3X3 matrix of float)
|
||||||
0:124 'inF2' (in 3X3 matrix of float)
|
0:123 'inF2' (in 3X3 matrix of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:127 Branch: Return with expression
|
||||||
0:126 0.000000
|
|
||||||
0:128 Branch: Return with expression
|
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 3.000000
|
0:? 3.000000
|
||||||
0:? 3.000000
|
0:? 3.000000
|
||||||
@ -341,41 +322,39 @@ ERROR: node is still EOpNull!
|
|||||||
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:137 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
|
||||||
0:132 Function Parameters:
|
0:131 Function Parameters:
|
||||||
0:132 'inF0' (in 4X4 matrix of float)
|
0:131 'inF0' (in 4X4 matrix of float)
|
||||||
0:132 'inF1' (in 4X4 matrix of float)
|
0:131 'inF1' (in 4X4 matrix of float)
|
||||||
0:132 'inF2' (in 4X4 matrix of float)
|
0:131 'inF2' (in 4X4 matrix of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:135 Branch: Return with expression
|
||||||
0:134 0.000000
|
|
||||||
0:136 Branch: Return with expression
|
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 4.000000
|
0:? 4.000000
|
||||||
0:? 4.000000
|
0:? 4.000000
|
||||||
@ -402,7 +381,7 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
ERROR: node is still EOpNull!
|
ERROR: node is still EOpNull!
|
||||||
0:35 Function Definition: PixelShaderFunction(f1;f1;f1;i1; (temp float)
|
0:35 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'inF0' (in float)
|
0:2 'inF0' (in float)
|
||||||
0:2 'inF1' (in float)
|
0:2 'inF1' (in float)
|
||||||
@ -427,8 +406,6 @@ ERROR: node is still EOpNull!
|
|||||||
0:13 0.000000
|
0:13 0.000000
|
||||||
0:14 Constant:
|
0:14 Constant:
|
||||||
0:14 0.000000
|
0:14 0.000000
|
||||||
0:15 Constant:
|
|
||||||
0:15 0.000000
|
|
||||||
0:23 Constant:
|
0:23 Constant:
|
||||||
0:23 0.000000
|
0:23 0.000000
|
||||||
0:24 Constant:
|
0:24 Constant:
|
||||||
@ -448,7 +425,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:32 Branch: Return with expression
|
0:32 Branch: Return with expression
|
||||||
0:32 Constant:
|
0:32 Constant:
|
||||||
0:32 0.000000
|
0:32 0.000000
|
||||||
0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
|
0:44 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
|
||||||
0:36 Function Parameters:
|
0:36 Function Parameters:
|
||||||
0:36 'inF0' (in 1-component vector of float)
|
0:36 'inF0' (in 1-component vector of float)
|
||||||
0:36 'inF1' (in 1-component vector of float)
|
0:36 'inF1' (in 1-component vector of float)
|
||||||
@ -460,7 +437,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:41 Branch: Return with expression
|
0:41 Branch: Return with expression
|
||||||
0:41 Constant:
|
0:41 Constant:
|
||||||
0:41 0.000000
|
0:41 0.000000
|
||||||
0:62 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
|
0:62 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
|
||||||
0:45 Function Parameters:
|
0:45 Function Parameters:
|
||||||
0:45 'inF0' (in 2-component vector of float)
|
0:45 'inF0' (in 2-component vector of float)
|
||||||
0:45 'inF1' (in 2-component vector of float)
|
0:45 'inF1' (in 2-component vector of float)
|
||||||
@ -485,8 +462,6 @@ ERROR: node is still EOpNull!
|
|||||||
0:53 0.000000
|
0:53 0.000000
|
||||||
0:54 Constant:
|
0:54 Constant:
|
||||||
0:54 0.000000
|
0:54 0.000000
|
||||||
0:55 Constant:
|
|
||||||
0:55 0.000000
|
|
||||||
0:56 Constant:
|
0:56 Constant:
|
||||||
0:56 0.000000
|
0:56 0.000000
|
||||||
0:57 Constant:
|
0:57 Constant:
|
||||||
@ -495,7 +470,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 1.000000
|
0:? 1.000000
|
||||||
0:? 2.000000
|
0:? 2.000000
|
||||||
0:79 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
|
0:79 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
|
||||||
0:63 Function Parameters:
|
0:63 Function Parameters:
|
||||||
0:63 'inF0' (in 3-component vector of float)
|
0:63 'inF0' (in 3-component vector of float)
|
||||||
0:63 'inF1' (in 3-component vector of float)
|
0:63 'inF1' (in 3-component vector of float)
|
||||||
@ -516,8 +491,6 @@ ERROR: node is still EOpNull!
|
|||||||
0:69 0.000000
|
0:69 0.000000
|
||||||
0:70 Constant:
|
0:70 Constant:
|
||||||
0:70 0.000000
|
0:70 0.000000
|
||||||
0:71 Constant:
|
|
||||||
0:71 0.000000
|
|
||||||
0:72 Constant:
|
0:72 Constant:
|
||||||
0:72 0.000000
|
0:72 0.000000
|
||||||
0:73 Constant:
|
0:73 Constant:
|
||||||
@ -527,7 +500,7 @@ ERROR: node is still EOpNull!
|
|||||||
0:? 1.000000
|
0:? 1.000000
|
||||||
0:? 2.000000
|
0:? 2.000000
|
||||||
0:? 3.000000
|
0:? 3.000000
|
||||||
0:115 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
|
0:114 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
|
||||||
0:80 Function Parameters:
|
0:80 Function Parameters:
|
||||||
0:80 'inF0' (in 4-component vector of float)
|
0:80 'inF0' (in 4-component vector of float)
|
||||||
0:80 'inF1' (in 4-component vector of float)
|
0:80 'inF1' (in 4-component vector of float)
|
||||||
@ -548,8 +521,6 @@ ERROR: node is still EOpNull!
|
|||||||
0:86 0.000000
|
0:86 0.000000
|
||||||
0:87 Constant:
|
0:87 Constant:
|
||||||
0:87 0.000000
|
0:87 0.000000
|
||||||
0:88 Constant:
|
|
||||||
0:88 0.000000
|
|
||||||
0:89 Constant:
|
0:89 Constant:
|
||||||
0:89 0.000000
|
0:89 0.000000
|
||||||
0:90 Constant:
|
0:90 Constant:
|
||||||
@ -560,81 +531,77 @@ ERROR: node is still EOpNull!
|
|||||||
0:? 2.000000
|
0:? 2.000000
|
||||||
0:? 3.000000
|
0:? 3.000000
|
||||||
0:? 4.000000
|
0:? 4.000000
|
||||||
0:123 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
|
0:122 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
|
||||||
0:116 Function Parameters:
|
0:115 Function Parameters:
|
||||||
0:116 'inF0' (in 2X2 matrix of float)
|
0:115 'inF0' (in 2X2 matrix of float)
|
||||||
0:116 'inF1' (in 2X2 matrix of float)
|
0:115 'inF1' (in 2X2 matrix of float)
|
||||||
0:116 'inF2' (in 2X2 matrix of float)
|
0:115 'inF2' (in 2X2 matrix of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:117 Constant:
|
||||||
0:118 0.000000
|
0:117 0.000000
|
||||||
0:118 Constant:
|
0:119 Branch: Return with expression
|
||||||
0:118 0.000000
|
|
||||||
0:120 Branch: Return with expression
|
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 2.000000
|
0:? 2.000000
|
||||||
0:? 2.000000
|
0:? 2.000000
|
||||||
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:130 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
|
||||||
0:124 Function Parameters:
|
0:123 Function Parameters:
|
||||||
0:124 'inF0' (in 3X3 matrix of float)
|
0:123 'inF0' (in 3X3 matrix of float)
|
||||||
0:124 'inF1' (in 3X3 matrix of float)
|
0:123 'inF1' (in 3X3 matrix of float)
|
||||||
0:124 'inF2' (in 3X3 matrix of float)
|
0:123 'inF2' (in 3X3 matrix of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:125 Constant:
|
||||||
0:126 0.000000
|
0:125 0.000000
|
||||||
0:126 Constant:
|
0:127 Branch: Return with expression
|
||||||
0:126 0.000000
|
|
||||||
0:128 Branch: Return with expression
|
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 3.000000
|
0:? 3.000000
|
||||||
0:? 3.000000
|
0:? 3.000000
|
||||||
@ -645,41 +612,39 @@ ERROR: node is still EOpNull!
|
|||||||
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:137 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
|
||||||
0:132 Function Parameters:
|
0:131 Function Parameters:
|
||||||
0:132 'inF0' (in 4X4 matrix of float)
|
0:131 'inF0' (in 4X4 matrix of float)
|
||||||
0:132 'inF1' (in 4X4 matrix of float)
|
0:131 'inF1' (in 4X4 matrix of float)
|
||||||
0:132 'inF2' (in 4X4 matrix of float)
|
0:131 'inF2' (in 4X4 matrix of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:133 Constant:
|
||||||
0:134 0.000000
|
0:133 0.000000
|
||||||
0:134 Constant:
|
0:135 Branch: Return with expression
|
||||||
0:134 0.000000
|
|
||||||
0:136 Branch: Return with expression
|
|
||||||
0:? Constant:
|
0:? Constant:
|
||||||
0:? 4.000000
|
0:? 4.000000
|
||||||
0:? 4.000000
|
0:? 4.000000
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -2,21 +2,22 @@ hlsl.matType.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:1 move second child to first child (temp 1-component vector of float)
|
0:1 Sequence
|
||||||
0:1 'f1' (temp 1-component vector of float)
|
0:1 move second child to first child (temp 1-component vector of float)
|
||||||
0:1 Constant:
|
0:1 'f1' (global 1-component vector of float)
|
||||||
0:1 1.000000
|
0:1 Constant:
|
||||||
0:11 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
|
0:1 1.000000
|
||||||
|
0:11 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
|
||||||
0:9 Function Parameters:
|
0:9 Function Parameters:
|
||||||
0:9 'inFloat1' (in 1-component vector of float)
|
0:9 'inFloat1' (in 1-component vector of float)
|
||||||
0:9 'inScalar' (in float)
|
0:9 'inScalar' (in float)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'f1' (temp 1-component vector of float)
|
0:? 'f1' (global 1-component vector of float)
|
||||||
0:? 'fmat11' (temp 1X1 matrix of float)
|
0:? 'fmat11' (global 1X1 matrix of float)
|
||||||
0:? 'fmat41' (temp 1X4 matrix of float)
|
0:? 'fmat41' (global 1X4 matrix of float)
|
||||||
0:? 'fmat12' (temp 2X1 matrix of float)
|
0:? 'fmat12' (global 2X1 matrix of float)
|
||||||
0:? 'dmat23' (temp 3X2 matrix of double)
|
0:? 'dmat23' (global 3X2 matrix of double)
|
||||||
0:? 'int44' (temp 4X4 matrix of int)
|
0:? 'int44' (global 4X4 matrix of int)
|
||||||
|
|
||||||
|
|
||||||
Linked fragment stage:
|
Linked fragment stage:
|
||||||
@ -25,25 +26,26 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:1 move second child to first child (temp 1-component vector of float)
|
0:1 Sequence
|
||||||
0:1 'f1' (temp 1-component vector of float)
|
0:1 move second child to first child (temp 1-component vector of float)
|
||||||
0:1 Constant:
|
0:1 'f1' (global 1-component vector of float)
|
||||||
0:1 1.000000
|
0:1 Constant:
|
||||||
0:11 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
|
0:1 1.000000
|
||||||
|
0:11 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
|
||||||
0:9 Function Parameters:
|
0:9 Function Parameters:
|
||||||
0:9 'inFloat1' (in 1-component vector of float)
|
0:9 'inFloat1' (in 1-component vector of float)
|
||||||
0:9 'inScalar' (in float)
|
0:9 'inScalar' (in float)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'f1' (temp 1-component vector of float)
|
0:? 'f1' (global 1-component vector of float)
|
||||||
0:? 'fmat11' (temp 1X1 matrix of float)
|
0:? 'fmat11' (global 1X1 matrix of float)
|
||||||
0:? 'fmat41' (temp 1X4 matrix of float)
|
0:? 'fmat41' (global 1X4 matrix of float)
|
||||||
0:? 'fmat12' (temp 2X1 matrix of float)
|
0:? 'fmat12' (global 2X1 matrix of float)
|
||||||
0:? 'dmat23' (temp 3X2 matrix of double)
|
0:? 'dmat23' (global 3X2 matrix of double)
|
||||||
0:? 'int44' (temp 4X4 matrix of int)
|
0:? 'int44' (global 4X4 matrix of int)
|
||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 36
|
// Id's are bound by 38
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
Capability Float64
|
Capability Float64
|
||||||
@ -57,45 +59,48 @@ gl_FragCoord origin is upper left
|
|||||||
Name 9 "inFloat1"
|
Name 9 "inFloat1"
|
||||||
Name 10 "inScalar"
|
Name 10 "inScalar"
|
||||||
Name 14 "f1"
|
Name 14 "f1"
|
||||||
Name 18 "fmat11"
|
Name 20 "fmat11"
|
||||||
Name 22 "fmat41"
|
Name 24 "fmat41"
|
||||||
Name 25 "fmat12"
|
Name 27 "fmat12"
|
||||||
Name 30 "dmat23"
|
Name 32 "dmat23"
|
||||||
Name 35 "int44"
|
Name 37 "int44"
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
7: TypePointer Function 6(float)
|
7: TypePointer Function 6(float)
|
||||||
8: TypeFunction 6(float) 7(ptr) 7(ptr)
|
8: TypeFunction 6(float) 7(ptr) 7(ptr)
|
||||||
15: TypeVector 6(float) 1
|
13: TypePointer Private 6(float)
|
||||||
16: TypeMatrix 15(fvec) 1
|
14(f1): 13(ptr) Variable Private
|
||||||
17: TypePointer Function 16
|
15: 6(float) Constant 1065353216
|
||||||
19: TypeVector 6(float) 4
|
17: TypeVector 6(float) 1
|
||||||
20: TypeMatrix 19(fvec4) 1
|
18: TypeMatrix 17(fvec) 1
|
||||||
21: TypePointer Function 20
|
19: TypePointer Private 18
|
||||||
23: TypeMatrix 15(fvec) 2
|
20(fmat11): 19(ptr) Variable Private
|
||||||
24: TypePointer Function 23
|
21: TypeVector 6(float) 4
|
||||||
26: TypeFloat 64
|
22: TypeMatrix 21(fvec4) 1
|
||||||
27: TypeVector 26(float) 2
|
23: TypePointer Private 22
|
||||||
28: TypeMatrix 27(fvec2) 3
|
24(fmat41): 23(ptr) Variable Private
|
||||||
29: TypePointer Function 28
|
25: TypeMatrix 17(fvec) 2
|
||||||
31: TypeInt 32 1
|
26: TypePointer Private 25
|
||||||
32: TypeVector 31(int) 4
|
27(fmat12): 26(ptr) Variable Private
|
||||||
33: TypeMatrix 32(ivec4) 4
|
28: TypeFloat 64
|
||||||
34: TypePointer Function 33
|
29: TypeVector 28(float) 2
|
||||||
|
30: TypeMatrix 29(fvec2) 3
|
||||||
|
31: TypePointer Private 30
|
||||||
|
32(dmat23): 31(ptr) Variable Private
|
||||||
|
33: TypeInt 32 1
|
||||||
|
34: TypeVector 33(int) 4
|
||||||
|
35: TypeMatrix 34(ivec4) 4
|
||||||
|
36: TypePointer Private 35
|
||||||
|
37(int44): 36(ptr) Variable Private
|
||||||
4(PixelShaderFunction): 2 Function None 3
|
4(PixelShaderFunction): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
|
Store 14(f1) 15
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
11(ShaderFunction(vf1;f1;): 6(float) Function None 8
|
11(ShaderFunction(vf1;f1;): 6(float) Function None 8
|
||||||
9(inFloat1): 7(ptr) FunctionParameter
|
9(inFloat1): 7(ptr) FunctionParameter
|
||||||
10(inScalar): 7(ptr) FunctionParameter
|
10(inScalar): 7(ptr) FunctionParameter
|
||||||
12: Label
|
12: Label
|
||||||
14(f1): 7(ptr) Variable Function
|
16: 6(float) Undef
|
||||||
18(fmat11): 17(ptr) Variable Function
|
ReturnValue 16
|
||||||
22(fmat41): 21(ptr) Variable Function
|
|
||||||
25(fmat12): 24(ptr) Variable Function
|
|
||||||
30(dmat23): 29(ptr) Variable Function
|
|
||||||
35(int44): 34(ptr) Variable Function
|
|
||||||
13: 6(float) Undef
|
|
||||||
ReturnValue 13
|
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -2,7 +2,7 @@ hlsl.max.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:5 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float)
|
0:5 Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'input1' (in 4-component vector of float)
|
0:2 'input1' (in 4-component vector of float)
|
||||||
0:2 'input2' (in 4-component vector of float)
|
0:2 'input2' (in 4-component vector of float)
|
||||||
@ -20,7 +20,7 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:5 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float)
|
0:5 Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'input1' (in 4-component vector of float)
|
0:2 'input1' (in 4-component vector of float)
|
||||||
0:2 'input2' (in 4-component vector of float)
|
0:2 'input2' (in 4-component vector of float)
|
||||||
|
@ -2,7 +2,7 @@ hlsl.precedence.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float)
|
0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float)
|
||||||
0:7 Function Parameters:
|
0:7 Function Parameters:
|
||||||
0:7 'a1' (in 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 'a2' (in 4-component vector of float)
|
||||||
@ -26,7 +26,7 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float)
|
0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float)
|
||||||
0:7 Function Parameters:
|
0:7 Function Parameters:
|
||||||
0:7 'a1' (in 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 'a2' (in 4-component vector of float)
|
||||||
|
@ -2,7 +2,7 @@ hlsl.precedence2.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int)
|
0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int)
|
||||||
0:7 Function Parameters:
|
0:7 Function Parameters:
|
||||||
0:7 'a1' (in int)
|
0:7 'a1' (in int)
|
||||||
0:7 'a2' (in int)
|
0:7 'a2' (in int)
|
||||||
@ -34,7 +34,7 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int)
|
0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int)
|
||||||
0:7 Function Parameters:
|
0:7 Function Parameters:
|
||||||
0:7 'a1' (in int)
|
0:7 'a1' (in int)
|
||||||
0:7 'a2' (in int)
|
0:7 'a2' (in int)
|
||||||
|
@ -2,7 +2,7 @@ hlsl.scope.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:31 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:31 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'input' (in 4-component vector of float)
|
0:2 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -46,7 +46,7 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:31 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:31 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'input' (in 4-component vector of float)
|
0:2 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
|
@ -2,7 +2,7 @@ hlsl.sin.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'input' (in 4-component vector of float)
|
0:2 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -18,7 +18,7 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'input' (in 4-component vector of float)
|
0:2 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
|
@ -2,7 +2,7 @@ hlsl.struct.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:40 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:40 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:31 Function Parameters:
|
0:31 Function Parameters:
|
||||||
0:31 'input' (in 4-component vector of float)
|
0:31 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -11,19 +11,19 @@ gl_FragCoord origin is upper left
|
|||||||
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 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 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 's2' (global structure{temp 4-component vector of float i})
|
||||||
0:37 Constant:
|
0:37 Constant:
|
||||||
0:37 0 (const int)
|
0:37 0 (const int)
|
||||||
0:37 ff4: direct index for structure (temp 4-component vector of float FragCoord)
|
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 's4' (global 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 Constant:
|
||||||
0:37 7 (const int)
|
0:37 7 (const int)
|
||||||
0:39 Branch: Return with expression
|
0:39 Branch: Return with expression
|
||||||
0:39 'input' (in 4-component vector of float)
|
0:39 'input' (in 4-component vector of float)
|
||||||
0:? Linker Objects
|
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:? 's1' (global 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:? 's2' (global 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})
|
0:? 's4' (global 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:
|
Linked fragment stage:
|
||||||
@ -32,7 +32,7 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:40 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:40 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:31 Function Parameters:
|
0:31 Function Parameters:
|
||||||
0:31 'input' (in 4-component vector of float)
|
0:31 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -41,19 +41,19 @@ gl_FragCoord origin is upper left
|
|||||||
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 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 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 's2' (global structure{temp 4-component vector of float i})
|
||||||
0:37 Constant:
|
0:37 Constant:
|
||||||
0:37 0 (const int)
|
0:37 0 (const int)
|
||||||
0:37 ff4: direct index for structure (temp 4-component vector of float FragCoord)
|
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 's4' (global 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 Constant:
|
||||||
0:37 7 (const int)
|
0:37 7 (const int)
|
||||||
0:39 Branch: Return with expression
|
0:39 Branch: Return with expression
|
||||||
0:39 'input' (in 4-component vector of float)
|
0:39 'input' (in 4-component vector of float)
|
||||||
0:? Linker Objects
|
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:? 's1' (global 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:? 's2' (global 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})
|
0:? 's4' (global 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
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
@ -100,24 +100,24 @@ gl_FragCoord origin is upper left
|
|||||||
17: TypeFloat 32
|
17: TypeFloat 32
|
||||||
18: TypeVector 17(float) 4
|
18: TypeVector 17(float) 4
|
||||||
19: TypeStruct 18(fvec4)
|
19: TypeStruct 18(fvec4)
|
||||||
20: TypePointer Function 19(struct)
|
20: TypePointer Private 19(struct)
|
||||||
|
21(s2): 20(ptr) Variable Private
|
||||||
22: TypeInt 32 1
|
22: TypeInt 32 1
|
||||||
23: 22(int) Constant 0
|
23: 22(int) Constant 0
|
||||||
24: TypeVector 17(float) 2
|
24: TypeVector 17(float) 2
|
||||||
25: TypeStruct 18(fvec4) 6(bool) 17(float) 24(fvec2) 6(bool) 6(bool) 6(bool) 18(fvec4)
|
25: TypeStruct 18(fvec4) 6(bool) 17(float) 24(fvec2) 6(bool) 6(bool) 6(bool) 18(fvec4)
|
||||||
26: TypePointer Function 25(struct)
|
26: TypePointer Private 25(struct)
|
||||||
|
27(s4): 26(ptr) Variable Private
|
||||||
28: 22(int) Constant 7
|
28: 22(int) Constant 7
|
||||||
29: TypePointer Function 18(fvec4)
|
29: TypePointer Private 18(fvec4)
|
||||||
33: TypePointer Input 18(fvec4)
|
33: TypePointer Input 18(fvec4)
|
||||||
34(input): 33(ptr) Variable Input
|
34(input): 33(ptr) Variable Input
|
||||||
37(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4)
|
37(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4)
|
||||||
38: TypePointer Function 37(myS)
|
38: TypePointer Private 37(myS)
|
||||||
|
39(s1): 38(ptr) Variable Private
|
||||||
4(PixelShaderFunction): 2 Function None 3
|
4(PixelShaderFunction): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
10(s3): 9(ptr) Variable Function
|
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)
|
11: 8(FS) Load 10(s3)
|
||||||
12: 8(FS) Load 10(s3)
|
12: 8(FS) Load 10(s3)
|
||||||
13: 7(bvec3) CompositeExtract 11 0
|
13: 7(bvec3) CompositeExtract 11 0
|
||||||
|
376
Test/baseResults/hlsl.switch.frag.out
Executable file
376
Test/baseResults/hlsl.switch.frag.out
Executable file
@ -0,0 +1,376 @@
|
|||||||
|
hlsl.switch.frag
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:56 Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float)
|
||||||
|
0:2 Function Parameters:
|
||||||
|
0:2 'input' (in 4-component vector of float)
|
||||||
|
0:2 'c' (in int)
|
||||||
|
0:2 'd' (in int)
|
||||||
|
0:? Sequence
|
||||||
|
0:3 'c' (in int)
|
||||||
|
0:7 switch
|
||||||
|
0:7 condition
|
||||||
|
0:7 'c' (in int)
|
||||||
|
0:7 body
|
||||||
|
0:7 Sequence
|
||||||
|
0:9 default:
|
||||||
|
0:7 Sequence
|
||||||
|
0:7 Branch: Break
|
||||||
|
0:12 switch
|
||||||
|
0:12 condition
|
||||||
|
0:12 'c' (in int)
|
||||||
|
0:12 body
|
||||||
|
0:12 Sequence
|
||||||
|
0:13 case: with expression
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:14 Pre-Increment (temp 4-component vector of float)
|
||||||
|
0:14 'input' (in 4-component vector of float)
|
||||||
|
0:15 Branch: Break
|
||||||
|
0:16 case: with expression
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 2 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:17 Pre-Decrement (temp 4-component vector of float)
|
||||||
|
0:17 'input' (in 4-component vector of float)
|
||||||
|
0:18 Branch: Break
|
||||||
|
0:21 switch
|
||||||
|
0:21 condition
|
||||||
|
0:21 'c' (in int)
|
||||||
|
0:21 body
|
||||||
|
0:21 Sequence
|
||||||
|
0:22 case: with expression
|
||||||
|
0:22 Constant:
|
||||||
|
0:22 1 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:23 Pre-Increment (temp 4-component vector of float)
|
||||||
|
0:23 'input' (in 4-component vector of float)
|
||||||
|
0:24 Branch: Break
|
||||||
|
0:25 case: with expression
|
||||||
|
0:25 Constant:
|
||||||
|
0:25 2 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:26 switch
|
||||||
|
0:26 condition
|
||||||
|
0:26 'd' (in int)
|
||||||
|
0:26 body
|
||||||
|
0:26 Sequence
|
||||||
|
0:27 case: with expression
|
||||||
|
0:27 Constant:
|
||||||
|
0:27 2 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:28 add second child into first child (temp 4-component vector of float)
|
||||||
|
0:28 'input' (in 4-component vector of float)
|
||||||
|
0:28 Constant:
|
||||||
|
0:28 2.000000
|
||||||
|
0:29 Branch: Break
|
||||||
|
0:30 case: with expression
|
||||||
|
0:30 Constant:
|
||||||
|
0:30 3 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:31 add second child into first child (temp 4-component vector of float)
|
||||||
|
0:31 'input' (in 4-component vector of float)
|
||||||
|
0:31 Constant:
|
||||||
|
0:31 3.000000
|
||||||
|
0:32 Branch: Break
|
||||||
|
0:34 Branch: Break
|
||||||
|
0:35 default:
|
||||||
|
0:? Sequence
|
||||||
|
0:36 add second child into first child (temp 4-component vector of float)
|
||||||
|
0:36 'input' (in 4-component vector of float)
|
||||||
|
0:36 Constant:
|
||||||
|
0:36 4.000000
|
||||||
|
0:39 switch
|
||||||
|
0:39 condition
|
||||||
|
0:39 'c' (in int)
|
||||||
|
0:39 body
|
||||||
|
0:39 Sequence
|
||||||
|
0:40 case: with expression
|
||||||
|
0:40 Constant:
|
||||||
|
0:40 1 (const int)
|
||||||
|
0:39 Sequence
|
||||||
|
0:39 Branch: Break
|
||||||
|
0:43 switch
|
||||||
|
0:43 condition
|
||||||
|
0:43 'c' (in int)
|
||||||
|
0:43 body
|
||||||
|
0:43 Sequence
|
||||||
|
0:44 case: with expression
|
||||||
|
0:44 Constant:
|
||||||
|
0:44 1 (const int)
|
||||||
|
0:45 case: with expression
|
||||||
|
0:45 Constant:
|
||||||
|
0:45 2 (const int)
|
||||||
|
0:46 case: with expression
|
||||||
|
0:46 Constant:
|
||||||
|
0:46 3 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:47 Pre-Increment (temp 4-component vector of float)
|
||||||
|
0:47 'input' (in 4-component vector of float)
|
||||||
|
0:48 Branch: Break
|
||||||
|
0:49 case: with expression
|
||||||
|
0:49 Constant:
|
||||||
|
0:49 4 (const int)
|
||||||
|
0:50 case: with expression
|
||||||
|
0:50 Constant:
|
||||||
|
0:50 5 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:51 Pre-Decrement (temp 4-component vector of float)
|
||||||
|
0:51 'input' (in 4-component vector of float)
|
||||||
|
0:54 Branch: Return with expression
|
||||||
|
0:54 '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:56 Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float)
|
||||||
|
0:2 Function Parameters:
|
||||||
|
0:2 'input' (in 4-component vector of float)
|
||||||
|
0:2 'c' (in int)
|
||||||
|
0:2 'd' (in int)
|
||||||
|
0:? Sequence
|
||||||
|
0:3 'c' (in int)
|
||||||
|
0:7 switch
|
||||||
|
0:7 condition
|
||||||
|
0:7 'c' (in int)
|
||||||
|
0:7 body
|
||||||
|
0:7 Sequence
|
||||||
|
0:9 default:
|
||||||
|
0:7 Sequence
|
||||||
|
0:7 Branch: Break
|
||||||
|
0:12 switch
|
||||||
|
0:12 condition
|
||||||
|
0:12 'c' (in int)
|
||||||
|
0:12 body
|
||||||
|
0:12 Sequence
|
||||||
|
0:13 case: with expression
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:14 Pre-Increment (temp 4-component vector of float)
|
||||||
|
0:14 'input' (in 4-component vector of float)
|
||||||
|
0:15 Branch: Break
|
||||||
|
0:16 case: with expression
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 2 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:17 Pre-Decrement (temp 4-component vector of float)
|
||||||
|
0:17 'input' (in 4-component vector of float)
|
||||||
|
0:18 Branch: Break
|
||||||
|
0:21 switch
|
||||||
|
0:21 condition
|
||||||
|
0:21 'c' (in int)
|
||||||
|
0:21 body
|
||||||
|
0:21 Sequence
|
||||||
|
0:22 case: with expression
|
||||||
|
0:22 Constant:
|
||||||
|
0:22 1 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:23 Pre-Increment (temp 4-component vector of float)
|
||||||
|
0:23 'input' (in 4-component vector of float)
|
||||||
|
0:24 Branch: Break
|
||||||
|
0:25 case: with expression
|
||||||
|
0:25 Constant:
|
||||||
|
0:25 2 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:26 switch
|
||||||
|
0:26 condition
|
||||||
|
0:26 'd' (in int)
|
||||||
|
0:26 body
|
||||||
|
0:26 Sequence
|
||||||
|
0:27 case: with expression
|
||||||
|
0:27 Constant:
|
||||||
|
0:27 2 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:28 add second child into first child (temp 4-component vector of float)
|
||||||
|
0:28 'input' (in 4-component vector of float)
|
||||||
|
0:28 Constant:
|
||||||
|
0:28 2.000000
|
||||||
|
0:29 Branch: Break
|
||||||
|
0:30 case: with expression
|
||||||
|
0:30 Constant:
|
||||||
|
0:30 3 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:31 add second child into first child (temp 4-component vector of float)
|
||||||
|
0:31 'input' (in 4-component vector of float)
|
||||||
|
0:31 Constant:
|
||||||
|
0:31 3.000000
|
||||||
|
0:32 Branch: Break
|
||||||
|
0:34 Branch: Break
|
||||||
|
0:35 default:
|
||||||
|
0:? Sequence
|
||||||
|
0:36 add second child into first child (temp 4-component vector of float)
|
||||||
|
0:36 'input' (in 4-component vector of float)
|
||||||
|
0:36 Constant:
|
||||||
|
0:36 4.000000
|
||||||
|
0:39 switch
|
||||||
|
0:39 condition
|
||||||
|
0:39 'c' (in int)
|
||||||
|
0:39 body
|
||||||
|
0:39 Sequence
|
||||||
|
0:40 case: with expression
|
||||||
|
0:40 Constant:
|
||||||
|
0:40 1 (const int)
|
||||||
|
0:39 Sequence
|
||||||
|
0:39 Branch: Break
|
||||||
|
0:43 switch
|
||||||
|
0:43 condition
|
||||||
|
0:43 'c' (in int)
|
||||||
|
0:43 body
|
||||||
|
0:43 Sequence
|
||||||
|
0:44 case: with expression
|
||||||
|
0:44 Constant:
|
||||||
|
0:44 1 (const int)
|
||||||
|
0:45 case: with expression
|
||||||
|
0:45 Constant:
|
||||||
|
0:45 2 (const int)
|
||||||
|
0:46 case: with expression
|
||||||
|
0:46 Constant:
|
||||||
|
0:46 3 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:47 Pre-Increment (temp 4-component vector of float)
|
||||||
|
0:47 'input' (in 4-component vector of float)
|
||||||
|
0:48 Branch: Break
|
||||||
|
0:49 case: with expression
|
||||||
|
0:49 Constant:
|
||||||
|
0:49 4 (const int)
|
||||||
|
0:50 case: with expression
|
||||||
|
0:50 Constant:
|
||||||
|
0:50 5 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:51 Pre-Decrement (temp 4-component vector of float)
|
||||||
|
0:51 'input' (in 4-component vector of float)
|
||||||
|
0:54 Branch: Return with expression
|
||||||
|
0:54 'input' (in 4-component vector of float)
|
||||||
|
0:? Linker Objects
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 82
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "PixelShaderFunction" 8 21 41
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source HLSL 450
|
||||||
|
Name 4 "PixelShaderFunction"
|
||||||
|
Name 8 "c"
|
||||||
|
Name 21 "input"
|
||||||
|
Name 41 "d"
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeInt 32 1
|
||||||
|
7: TypePointer Input 6(int)
|
||||||
|
8(c): 7(ptr) Variable Input
|
||||||
|
18: TypeFloat 32
|
||||||
|
19: TypeVector 18(float) 4
|
||||||
|
20: TypePointer Input 19(fvec4)
|
||||||
|
21(input): 20(ptr) Variable Input
|
||||||
|
23: 18(float) Constant 1065353216
|
||||||
|
41(d): 7(ptr) Variable Input
|
||||||
|
46: 18(float) Constant 1073741824
|
||||||
|
51: 18(float) Constant 1077936128
|
||||||
|
58: 18(float) Constant 1082130432
|
||||||
|
4(PixelShaderFunction): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
9: 6(int) Load 8(c)
|
||||||
|
SelectionMerge 11 None
|
||||||
|
Switch 9 10
|
||||||
|
10: Label
|
||||||
|
Branch 11
|
||||||
|
11: Label
|
||||||
|
14: 6(int) Load 8(c)
|
||||||
|
SelectionMerge 17 None
|
||||||
|
Switch 14 17
|
||||||
|
case 1: 15
|
||||||
|
case 2: 16
|
||||||
|
15: Label
|
||||||
|
22: 19(fvec4) Load 21(input)
|
||||||
|
24: 19(fvec4) CompositeConstruct 23 23 23 23
|
||||||
|
25: 19(fvec4) FAdd 22 24
|
||||||
|
Store 21(input) 25
|
||||||
|
Branch 17
|
||||||
|
16: Label
|
||||||
|
27: 19(fvec4) Load 21(input)
|
||||||
|
28: 19(fvec4) CompositeConstruct 23 23 23 23
|
||||||
|
29: 19(fvec4) FSub 27 28
|
||||||
|
Store 21(input) 29
|
||||||
|
Branch 17
|
||||||
|
17: Label
|
||||||
|
32: 6(int) Load 8(c)
|
||||||
|
SelectionMerge 36 None
|
||||||
|
Switch 32 35
|
||||||
|
case 1: 33
|
||||||
|
case 2: 34
|
||||||
|
35: Label
|
||||||
|
59: 19(fvec4) Load 21(input)
|
||||||
|
60: 19(fvec4) CompositeConstruct 58 58 58 58
|
||||||
|
61: 19(fvec4) FAdd 59 60
|
||||||
|
Store 21(input) 61
|
||||||
|
Branch 36
|
||||||
|
33: Label
|
||||||
|
37: 19(fvec4) Load 21(input)
|
||||||
|
38: 19(fvec4) CompositeConstruct 23 23 23 23
|
||||||
|
39: 19(fvec4) FAdd 37 38
|
||||||
|
Store 21(input) 39
|
||||||
|
Branch 36
|
||||||
|
34: Label
|
||||||
|
42: 6(int) Load 41(d)
|
||||||
|
SelectionMerge 45 None
|
||||||
|
Switch 42 45
|
||||||
|
case 2: 43
|
||||||
|
case 3: 44
|
||||||
|
43: Label
|
||||||
|
47: 19(fvec4) Load 21(input)
|
||||||
|
48: 19(fvec4) CompositeConstruct 46 46 46 46
|
||||||
|
49: 19(fvec4) FAdd 47 48
|
||||||
|
Store 21(input) 49
|
||||||
|
Branch 45
|
||||||
|
44: Label
|
||||||
|
52: 19(fvec4) Load 21(input)
|
||||||
|
53: 19(fvec4) CompositeConstruct 51 51 51 51
|
||||||
|
54: 19(fvec4) FAdd 52 53
|
||||||
|
Store 21(input) 54
|
||||||
|
Branch 45
|
||||||
|
45: Label
|
||||||
|
Branch 36
|
||||||
|
36: Label
|
||||||
|
63: 6(int) Load 8(c)
|
||||||
|
SelectionMerge 65 None
|
||||||
|
Switch 63 65
|
||||||
|
case 1: 64
|
||||||
|
64: Label
|
||||||
|
Branch 65
|
||||||
|
65: Label
|
||||||
|
68: 6(int) Load 8(c)
|
||||||
|
SelectionMerge 71 None
|
||||||
|
Switch 68 71
|
||||||
|
case 1: 69
|
||||||
|
case 2: 69
|
||||||
|
case 3: 69
|
||||||
|
case 4: 70
|
||||||
|
case 5: 70
|
||||||
|
69: Label
|
||||||
|
72: 19(fvec4) Load 21(input)
|
||||||
|
73: 19(fvec4) CompositeConstruct 23 23 23 23
|
||||||
|
74: 19(fvec4) FAdd 72 73
|
||||||
|
Store 21(input) 74
|
||||||
|
Branch 71
|
||||||
|
70: Label
|
||||||
|
76: 19(fvec4) Load 21(input)
|
||||||
|
77: 19(fvec4) CompositeConstruct 23 23 23 23
|
||||||
|
78: 19(fvec4) FSub 76 77
|
||||||
|
Store 21(input) 78
|
||||||
|
Branch 71
|
||||||
|
71: Label
|
||||||
|
80: 19(fvec4) Load 21(input)
|
||||||
|
ReturnValue 80
|
||||||
|
FunctionEnd
|
@ -2,14 +2,15 @@ hlsl.swizzle.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:1 move second child to first child (temp 4-component vector of float)
|
0:1 Sequence
|
||||||
0:1 'AmbientColor' (temp 4-component vector of float)
|
0:1 move second child to first child (temp 4-component vector of float)
|
||||||
0:? Constant:
|
0:1 'AmbientColor' (global 4-component vector of float)
|
||||||
0:? 1.000000
|
0:? Constant:
|
||||||
0:? 0.500000
|
0:? 1.000000
|
||||||
0:? 0.000000
|
0:? 0.500000
|
||||||
0:? 1.000000
|
0:? 0.000000
|
||||||
0:7 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
|
0:? 1.000000
|
||||||
|
0:7 Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:4 Function Parameters:
|
0:4 Function Parameters:
|
||||||
0:4 'input' (in 4-component vector of float)
|
0:4 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -28,11 +29,11 @@ gl_FragCoord origin is upper left
|
|||||||
0:5 0 (const int)
|
0:5 0 (const int)
|
||||||
0:5 Construct vec4 (temp 4-component vector of float)
|
0:5 Construct vec4 (temp 4-component vector of float)
|
||||||
0:5 direct index (temp float)
|
0:5 direct index (temp float)
|
||||||
0:5 'AmbientColor' (temp 4-component vector of float)
|
0:5 'AmbientColor' (global 4-component vector of float)
|
||||||
0:5 Constant:
|
0:5 Constant:
|
||||||
0:5 2 (const int)
|
0:5 2 (const int)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'AmbientColor' (temp 4-component vector of float)
|
0:? 'AmbientColor' (global 4-component vector of float)
|
||||||
|
|
||||||
|
|
||||||
Linked fragment stage:
|
Linked fragment stage:
|
||||||
@ -41,14 +42,15 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:1 move second child to first child (temp 4-component vector of float)
|
0:1 Sequence
|
||||||
0:1 'AmbientColor' (temp 4-component vector of float)
|
0:1 move second child to first child (temp 4-component vector of float)
|
||||||
0:? Constant:
|
0:1 'AmbientColor' (global 4-component vector of float)
|
||||||
0:? 1.000000
|
0:? Constant:
|
||||||
0:? 0.500000
|
0:? 1.000000
|
||||||
0:? 0.000000
|
0:? 0.500000
|
||||||
0:? 1.000000
|
0:? 0.000000
|
||||||
0:7 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
|
0:? 1.000000
|
||||||
|
0:7 Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:4 Function Parameters:
|
0:4 Function Parameters:
|
||||||
0:4 'input' (in 4-component vector of float)
|
0:4 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -67,15 +69,15 @@ gl_FragCoord origin is upper left
|
|||||||
0:5 0 (const int)
|
0:5 0 (const int)
|
||||||
0:5 Construct vec4 (temp 4-component vector of float)
|
0:5 Construct vec4 (temp 4-component vector of float)
|
||||||
0:5 direct index (temp float)
|
0:5 direct index (temp float)
|
||||||
0:5 'AmbientColor' (temp 4-component vector of float)
|
0:5 'AmbientColor' (global 4-component vector of float)
|
||||||
0:5 Constant:
|
0:5 Constant:
|
||||||
0:5 2 (const int)
|
0:5 2 (const int)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'AmbientColor' (temp 4-component vector of float)
|
0:? 'AmbientColor' (global 4-component vector of float)
|
||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 25
|
// Id's are bound by 30
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
@ -86,28 +88,34 @@ gl_FragCoord origin is upper left
|
|||||||
Name 4 "PixelShaderFunction"
|
Name 4 "PixelShaderFunction"
|
||||||
Name 11 "ShaderFunction(vf4;"
|
Name 11 "ShaderFunction(vf4;"
|
||||||
Name 10 "input"
|
Name 10 "input"
|
||||||
Name 15 "AmbientColor"
|
Name 14 "AmbientColor"
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
7: TypeVector 6(float) 4
|
7: TypeVector 6(float) 4
|
||||||
8: TypePointer Function 7(fvec4)
|
8: TypePointer Function 7(fvec4)
|
||||||
9: TypeFunction 7(fvec4) 8(ptr)
|
9: TypeFunction 7(fvec4) 8(ptr)
|
||||||
16: TypeInt 32 0
|
13: TypePointer Private 7(fvec4)
|
||||||
17: 16(int) Constant 2
|
14(AmbientColor): 13(ptr) Variable Private
|
||||||
18: TypePointer Function 6(float)
|
15: 6(float) Constant 1065353216
|
||||||
|
16: 6(float) Constant 1056964608
|
||||||
|
17: 6(float) Constant 0
|
||||||
|
18: 7(fvec4) ConstantComposite 15 16 17 15
|
||||||
|
21: TypeInt 32 0
|
||||||
|
22: 21(int) Constant 2
|
||||||
|
23: TypePointer Private 6(float)
|
||||||
4(PixelShaderFunction): 2 Function None 3
|
4(PixelShaderFunction): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
|
Store 14(AmbientColor) 18
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
11(ShaderFunction(vf4;): 7(fvec4) Function None 9
|
11(ShaderFunction(vf4;): 7(fvec4) Function None 9
|
||||||
10(input): 8(ptr) FunctionParameter
|
10(input): 8(ptr) FunctionParameter
|
||||||
12: Label
|
12: Label
|
||||||
15(AmbientColor): 8(ptr) Variable Function
|
19: 7(fvec4) Load 10(input)
|
||||||
13: 7(fvec4) Load 10(input)
|
20: 7(fvec4) VectorShuffle 19 19 3 3 1 0
|
||||||
14: 7(fvec4) VectorShuffle 13 13 3 3 1 0
|
24: 23(ptr) AccessChain 14(AmbientColor) 22
|
||||||
19: 18(ptr) AccessChain 15(AmbientColor) 17
|
25: 6(float) Load 24
|
||||||
20: 6(float) Load 19
|
26: 7(fvec4) CompositeConstruct 25 25 25 25
|
||||||
21: 7(fvec4) CompositeConstruct 20 20 20 20
|
27: 7(fvec4) FMul 20 26
|
||||||
22: 7(fvec4) FMul 14 21
|
ReturnValue 27
|
||||||
ReturnValue 22
|
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
707
Test/baseResults/hlsl.templatetypes.frag.out
Normal file
707
Test/baseResults/hlsl.templatetypes.frag.out
Normal file
@ -0,0 +1,707 @@
|
|||||||
|
hlsl.templatetypes.frag
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:48 Function Definition: PixelShaderFunction( (global float)
|
||||||
|
0:3 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:4 Sequence
|
||||||
|
0:4 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:4 'r00' (temp 4-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:5 Sequence
|
||||||
|
0:5 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:5 'r01' (temp 4-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:? 5.000000
|
||||||
|
0:7 Sequence
|
||||||
|
0:7 move second child to first child (temp 1-component vector of bool)
|
||||||
|
0:7 'r12' (temp 1-component vector of bool)
|
||||||
|
0:7 Constant:
|
||||||
|
0:7 false (const bool)
|
||||||
|
0:8 Sequence
|
||||||
|
0:8 move second child to first child (temp 1-component vector of int)
|
||||||
|
0:8 'r13' (temp 1-component vector of int)
|
||||||
|
0:8 Constant:
|
||||||
|
0:8 1 (const int)
|
||||||
|
0:9 Sequence
|
||||||
|
0:9 move second child to first child (temp 1-component vector of float)
|
||||||
|
0:9 'r14' (temp 1-component vector of float)
|
||||||
|
0:9 Constant:
|
||||||
|
0:9 1.000000
|
||||||
|
0:10 Sequence
|
||||||
|
0:10 move second child to first child (temp 1-component vector of double)
|
||||||
|
0:10 'r15' (temp 1-component vector of double)
|
||||||
|
0:10 Constant:
|
||||||
|
0:10 1.000000
|
||||||
|
0:11 Sequence
|
||||||
|
0:11 move second child to first child (temp 1-component vector of uint)
|
||||||
|
0:11 'r16' (temp 1-component vector of uint)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const uint)
|
||||||
|
0:13 Sequence
|
||||||
|
0:13 move second child to first child (temp 2-component vector of bool)
|
||||||
|
0:13 'r20' (temp 2-component vector of bool)
|
||||||
|
0:? Constant:
|
||||||
|
0:? false (const bool)
|
||||||
|
0:? true (const bool)
|
||||||
|
0:14 Sequence
|
||||||
|
0:14 move second child to first child (temp 2-component vector of int)
|
||||||
|
0:14 'r21' (temp 2-component vector of int)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:? 2 (const int)
|
||||||
|
0:15 Sequence
|
||||||
|
0:15 move second child to first child (temp 2-component vector of float)
|
||||||
|
0:15 'r22' (temp 2-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:16 Sequence
|
||||||
|
0:16 move second child to first child (temp 2-component vector of double)
|
||||||
|
0:16 'r23' (temp 2-component vector of double)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:17 Sequence
|
||||||
|
0:17 move second child to first child (temp 2-component vector of uint)
|
||||||
|
0:17 'r24' (temp 2-component vector of uint)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const uint)
|
||||||
|
0:? 2 (const uint)
|
||||||
|
0:19 Sequence
|
||||||
|
0:19 move second child to first child (temp 3-component vector of bool)
|
||||||
|
0:19 'r30' (temp 3-component vector of bool)
|
||||||
|
0:? Constant:
|
||||||
|
0:? false (const bool)
|
||||||
|
0:? true (const bool)
|
||||||
|
0:? true (const bool)
|
||||||
|
0:20 Sequence
|
||||||
|
0:20 move second child to first child (temp 3-component vector of int)
|
||||||
|
0:20 'r31' (temp 3-component vector of int)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:? 2 (const int)
|
||||||
|
0:? 3 (const int)
|
||||||
|
0:21 Sequence
|
||||||
|
0:21 move second child to first child (temp 3-component vector of float)
|
||||||
|
0:21 'r32' (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:22 Sequence
|
||||||
|
0:22 move second child to first child (temp 3-component vector of double)
|
||||||
|
0:22 'r33' (temp 3-component vector of double)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:23 Sequence
|
||||||
|
0:23 move second child to first child (temp 3-component vector of uint)
|
||||||
|
0:23 'r34' (temp 3-component vector of uint)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const uint)
|
||||||
|
0:? 2 (const uint)
|
||||||
|
0:? 3 (const uint)
|
||||||
|
0:25 Sequence
|
||||||
|
0:25 move second child to first child (temp 4-component vector of bool)
|
||||||
|
0:25 'r40' (temp 4-component vector of bool)
|
||||||
|
0:? Constant:
|
||||||
|
0:? false (const bool)
|
||||||
|
0:? true (const bool)
|
||||||
|
0:? true (const bool)
|
||||||
|
0:? false (const bool)
|
||||||
|
0:26 Sequence
|
||||||
|
0:26 move second child to first child (temp 4-component vector of int)
|
||||||
|
0:26 'r41' (temp 4-component vector of int)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:? 2 (const int)
|
||||||
|
0:? 3 (const int)
|
||||||
|
0:? 4 (const int)
|
||||||
|
0:27 Sequence
|
||||||
|
0:27 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:27 'r42' (temp 4-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:28 Sequence
|
||||||
|
0:28 move second child to first child (temp 4-component vector of double)
|
||||||
|
0:28 'r43' (temp 4-component vector of double)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:29 Sequence
|
||||||
|
0:29 move second child to first child (temp 4-component vector of uint)
|
||||||
|
0:29 'r44' (temp 4-component vector of uint)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const uint)
|
||||||
|
0:? 2 (const uint)
|
||||||
|
0:? 3 (const uint)
|
||||||
|
0:? 4 (const uint)
|
||||||
|
0:31 Sequence
|
||||||
|
0:31 move second child to first child (temp 4X4 matrix of float)
|
||||||
|
0:31 'r50' (temp 4X4 matrix of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.000000
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:? 5.000000
|
||||||
|
0:? 6.000000
|
||||||
|
0:? 7.000000
|
||||||
|
0:? 8.000000
|
||||||
|
0:? 9.000000
|
||||||
|
0:? 10.000000
|
||||||
|
0:? 11.000000
|
||||||
|
0:? 12.000000
|
||||||
|
0:? 13.000000
|
||||||
|
0:? 14.000000
|
||||||
|
0:? 15.000000
|
||||||
|
0:32 Sequence
|
||||||
|
0:32 move second child to first child (temp 4X4 matrix of float)
|
||||||
|
0:32 'r51' (temp 4X4 matrix of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.000000
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:? 5.000000
|
||||||
|
0:? 6.000000
|
||||||
|
0:? 7.000000
|
||||||
|
0:? 8.000000
|
||||||
|
0:? 9.000000
|
||||||
|
0:? 10.000000
|
||||||
|
0:? 11.000000
|
||||||
|
0:? 12.000000
|
||||||
|
0:? 13.000000
|
||||||
|
0:? 14.000000
|
||||||
|
0:? 15.000000
|
||||||
|
0:35 Sequence
|
||||||
|
0:35 move second child to first child (temp 3X2 matrix of float)
|
||||||
|
0:35 'r61' (temp 3X2 matrix of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:? 5.000000
|
||||||
|
0:? 6.000000
|
||||||
|
0:36 Sequence
|
||||||
|
0:36 move second child to first child (temp 2X3 matrix of float)
|
||||||
|
0:36 'r62' (temp 2X3 matrix of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:? 5.000000
|
||||||
|
0:? 6.000000
|
||||||
|
0:39 Sequence
|
||||||
|
0:39 move second child to first child (temp 2X4 matrix of float)
|
||||||
|
0:39 'r65' (temp 2X4 matrix of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:? 5.000000
|
||||||
|
0:? 6.000000
|
||||||
|
0:? 7.000000
|
||||||
|
0:? 8.000000
|
||||||
|
0:40 Sequence
|
||||||
|
0:40 move second child to first child (temp 3X4 matrix of float)
|
||||||
|
0:40 'r66' (temp 3X4 matrix of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:? 5.000000
|
||||||
|
0:? 6.000000
|
||||||
|
0:? 7.000000
|
||||||
|
0:? 8.000000
|
||||||
|
0:? 9.000000
|
||||||
|
0:? 10.000000
|
||||||
|
0:? 11.000000
|
||||||
|
0:? 12.000000
|
||||||
|
0:45 Branch: Return with expression
|
||||||
|
0:45 Constant:
|
||||||
|
0:45 0.000000
|
||||||
|
0:? Linker Objects
|
||||||
|
|
||||||
|
|
||||||
|
Linked fragment stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:48 Function Definition: PixelShaderFunction( (global float)
|
||||||
|
0:3 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:4 Sequence
|
||||||
|
0:4 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:4 'r00' (temp 4-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:5 Sequence
|
||||||
|
0:5 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:5 'r01' (temp 4-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:? 5.000000
|
||||||
|
0:7 Sequence
|
||||||
|
0:7 move second child to first child (temp 1-component vector of bool)
|
||||||
|
0:7 'r12' (temp 1-component vector of bool)
|
||||||
|
0:7 Constant:
|
||||||
|
0:7 false (const bool)
|
||||||
|
0:8 Sequence
|
||||||
|
0:8 move second child to first child (temp 1-component vector of int)
|
||||||
|
0:8 'r13' (temp 1-component vector of int)
|
||||||
|
0:8 Constant:
|
||||||
|
0:8 1 (const int)
|
||||||
|
0:9 Sequence
|
||||||
|
0:9 move second child to first child (temp 1-component vector of float)
|
||||||
|
0:9 'r14' (temp 1-component vector of float)
|
||||||
|
0:9 Constant:
|
||||||
|
0:9 1.000000
|
||||||
|
0:10 Sequence
|
||||||
|
0:10 move second child to first child (temp 1-component vector of double)
|
||||||
|
0:10 'r15' (temp 1-component vector of double)
|
||||||
|
0:10 Constant:
|
||||||
|
0:10 1.000000
|
||||||
|
0:11 Sequence
|
||||||
|
0:11 move second child to first child (temp 1-component vector of uint)
|
||||||
|
0:11 'r16' (temp 1-component vector of uint)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const uint)
|
||||||
|
0:13 Sequence
|
||||||
|
0:13 move second child to first child (temp 2-component vector of bool)
|
||||||
|
0:13 'r20' (temp 2-component vector of bool)
|
||||||
|
0:? Constant:
|
||||||
|
0:? false (const bool)
|
||||||
|
0:? true (const bool)
|
||||||
|
0:14 Sequence
|
||||||
|
0:14 move second child to first child (temp 2-component vector of int)
|
||||||
|
0:14 'r21' (temp 2-component vector of int)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:? 2 (const int)
|
||||||
|
0:15 Sequence
|
||||||
|
0:15 move second child to first child (temp 2-component vector of float)
|
||||||
|
0:15 'r22' (temp 2-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:16 Sequence
|
||||||
|
0:16 move second child to first child (temp 2-component vector of double)
|
||||||
|
0:16 'r23' (temp 2-component vector of double)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:17 Sequence
|
||||||
|
0:17 move second child to first child (temp 2-component vector of uint)
|
||||||
|
0:17 'r24' (temp 2-component vector of uint)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const uint)
|
||||||
|
0:? 2 (const uint)
|
||||||
|
0:19 Sequence
|
||||||
|
0:19 move second child to first child (temp 3-component vector of bool)
|
||||||
|
0:19 'r30' (temp 3-component vector of bool)
|
||||||
|
0:? Constant:
|
||||||
|
0:? false (const bool)
|
||||||
|
0:? true (const bool)
|
||||||
|
0:? true (const bool)
|
||||||
|
0:20 Sequence
|
||||||
|
0:20 move second child to first child (temp 3-component vector of int)
|
||||||
|
0:20 'r31' (temp 3-component vector of int)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:? 2 (const int)
|
||||||
|
0:? 3 (const int)
|
||||||
|
0:21 Sequence
|
||||||
|
0:21 move second child to first child (temp 3-component vector of float)
|
||||||
|
0:21 'r32' (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:22 Sequence
|
||||||
|
0:22 move second child to first child (temp 3-component vector of double)
|
||||||
|
0:22 'r33' (temp 3-component vector of double)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:23 Sequence
|
||||||
|
0:23 move second child to first child (temp 3-component vector of uint)
|
||||||
|
0:23 'r34' (temp 3-component vector of uint)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const uint)
|
||||||
|
0:? 2 (const uint)
|
||||||
|
0:? 3 (const uint)
|
||||||
|
0:25 Sequence
|
||||||
|
0:25 move second child to first child (temp 4-component vector of bool)
|
||||||
|
0:25 'r40' (temp 4-component vector of bool)
|
||||||
|
0:? Constant:
|
||||||
|
0:? false (const bool)
|
||||||
|
0:? true (const bool)
|
||||||
|
0:? true (const bool)
|
||||||
|
0:? false (const bool)
|
||||||
|
0:26 Sequence
|
||||||
|
0:26 move second child to first child (temp 4-component vector of int)
|
||||||
|
0:26 'r41' (temp 4-component vector of int)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const int)
|
||||||
|
0:? 2 (const int)
|
||||||
|
0:? 3 (const int)
|
||||||
|
0:? 4 (const int)
|
||||||
|
0:27 Sequence
|
||||||
|
0:27 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:27 'r42' (temp 4-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:28 Sequence
|
||||||
|
0:28 move second child to first child (temp 4-component vector of double)
|
||||||
|
0:28 'r43' (temp 4-component vector of double)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:29 Sequence
|
||||||
|
0:29 move second child to first child (temp 4-component vector of uint)
|
||||||
|
0:29 'r44' (temp 4-component vector of uint)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1 (const uint)
|
||||||
|
0:? 2 (const uint)
|
||||||
|
0:? 3 (const uint)
|
||||||
|
0:? 4 (const uint)
|
||||||
|
0:31 Sequence
|
||||||
|
0:31 move second child to first child (temp 4X4 matrix of float)
|
||||||
|
0:31 'r50' (temp 4X4 matrix of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.000000
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:? 5.000000
|
||||||
|
0:? 6.000000
|
||||||
|
0:? 7.000000
|
||||||
|
0:? 8.000000
|
||||||
|
0:? 9.000000
|
||||||
|
0:? 10.000000
|
||||||
|
0:? 11.000000
|
||||||
|
0:? 12.000000
|
||||||
|
0:? 13.000000
|
||||||
|
0:? 14.000000
|
||||||
|
0:? 15.000000
|
||||||
|
0:32 Sequence
|
||||||
|
0:32 move second child to first child (temp 4X4 matrix of float)
|
||||||
|
0:32 'r51' (temp 4X4 matrix of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.000000
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:? 5.000000
|
||||||
|
0:? 6.000000
|
||||||
|
0:? 7.000000
|
||||||
|
0:? 8.000000
|
||||||
|
0:? 9.000000
|
||||||
|
0:? 10.000000
|
||||||
|
0:? 11.000000
|
||||||
|
0:? 12.000000
|
||||||
|
0:? 13.000000
|
||||||
|
0:? 14.000000
|
||||||
|
0:? 15.000000
|
||||||
|
0:35 Sequence
|
||||||
|
0:35 move second child to first child (temp 3X2 matrix of float)
|
||||||
|
0:35 'r61' (temp 3X2 matrix of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:? 5.000000
|
||||||
|
0:? 6.000000
|
||||||
|
0:36 Sequence
|
||||||
|
0:36 move second child to first child (temp 2X3 matrix of float)
|
||||||
|
0:36 'r62' (temp 2X3 matrix of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:? 5.000000
|
||||||
|
0:? 6.000000
|
||||||
|
0:39 Sequence
|
||||||
|
0:39 move second child to first child (temp 2X4 matrix of float)
|
||||||
|
0:39 'r65' (temp 2X4 matrix of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:? 5.000000
|
||||||
|
0:? 6.000000
|
||||||
|
0:? 7.000000
|
||||||
|
0:? 8.000000
|
||||||
|
0:40 Sequence
|
||||||
|
0:40 move second child to first child (temp 3X4 matrix of float)
|
||||||
|
0:40 'r66' (temp 3X4 matrix of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:? 5.000000
|
||||||
|
0:? 6.000000
|
||||||
|
0:? 7.000000
|
||||||
|
0:? 8.000000
|
||||||
|
0:? 9.000000
|
||||||
|
0:? 10.000000
|
||||||
|
0:? 11.000000
|
||||||
|
0:? 12.000000
|
||||||
|
0:45 Branch: Return with expression
|
||||||
|
0:45 Constant:
|
||||||
|
0:45 0.000000
|
||||||
|
0:? Linker Objects
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 145
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability Float64
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "PixelShaderFunction"
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source HLSL 450
|
||||||
|
Name 4 "PixelShaderFunction"
|
||||||
|
Name 9 "r00"
|
||||||
|
Name 15 "r01"
|
||||||
|
Name 20 "r12"
|
||||||
|
Name 24 "r13"
|
||||||
|
Name 27 "r14"
|
||||||
|
Name 30 "r15"
|
||||||
|
Name 34 "r16"
|
||||||
|
Name 38 "r20"
|
||||||
|
Name 43 "r21"
|
||||||
|
Name 48 "r22"
|
||||||
|
Name 52 "r23"
|
||||||
|
Name 57 "r24"
|
||||||
|
Name 62 "r30"
|
||||||
|
Name 66 "r31"
|
||||||
|
Name 71 "r32"
|
||||||
|
Name 75 "r33"
|
||||||
|
Name 80 "r34"
|
||||||
|
Name 85 "r40"
|
||||||
|
Name 89 "r41"
|
||||||
|
Name 92 "r42"
|
||||||
|
Name 95 "r43"
|
||||||
|
Name 100 "r44"
|
||||||
|
Name 105 "r50"
|
||||||
|
Name 122 "r51"
|
||||||
|
Name 125 "r61"
|
||||||
|
Name 131 "r62"
|
||||||
|
Name 136 "r65"
|
||||||
|
Name 141 "r66"
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypePointer Function 7(fvec4)
|
||||||
|
10: 6(float) Constant 1065353216
|
||||||
|
11: 6(float) Constant 1073741824
|
||||||
|
12: 6(float) Constant 1077936128
|
||||||
|
13: 6(float) Constant 1082130432
|
||||||
|
14: 7(fvec4) ConstantComposite 10 11 12 13
|
||||||
|
16: 6(float) Constant 1084227584
|
||||||
|
17: 7(fvec4) ConstantComposite 11 12 13 16
|
||||||
|
18: TypeBool
|
||||||
|
19: TypePointer Function 18(bool)
|
||||||
|
21: 18(bool) ConstantFalse
|
||||||
|
22: TypeInt 32 1
|
||||||
|
23: TypePointer Function 22(int)
|
||||||
|
25: 22(int) Constant 1
|
||||||
|
26: TypePointer Function 6(float)
|
||||||
|
28: TypeFloat 64
|
||||||
|
29: TypePointer Function 28(float)
|
||||||
|
31: 28(float) Constant 0 1072693248
|
||||||
|
32: TypeInt 32 0
|
||||||
|
33: TypePointer Function 32(int)
|
||||||
|
35: 32(int) Constant 1
|
||||||
|
36: TypeVector 18(bool) 2
|
||||||
|
37: TypePointer Function 36(bvec2)
|
||||||
|
39: 18(bool) ConstantTrue
|
||||||
|
40: 36(bvec2) ConstantComposite 21 39
|
||||||
|
41: TypeVector 22(int) 2
|
||||||
|
42: TypePointer Function 41(ivec2)
|
||||||
|
44: 22(int) Constant 2
|
||||||
|
45: 41(ivec2) ConstantComposite 25 44
|
||||||
|
46: TypeVector 6(float) 2
|
||||||
|
47: TypePointer Function 46(fvec2)
|
||||||
|
49: 46(fvec2) ConstantComposite 10 11
|
||||||
|
50: TypeVector 28(float) 2
|
||||||
|
51: TypePointer Function 50(fvec2)
|
||||||
|
53: 28(float) Constant 0 1073741824
|
||||||
|
54: 50(fvec2) ConstantComposite 31 53
|
||||||
|
55: TypeVector 32(int) 2
|
||||||
|
56: TypePointer Function 55(ivec2)
|
||||||
|
58: 32(int) Constant 2
|
||||||
|
59: 55(ivec2) ConstantComposite 35 58
|
||||||
|
60: TypeVector 18(bool) 3
|
||||||
|
61: TypePointer Function 60(bvec3)
|
||||||
|
63: 60(bvec3) ConstantComposite 21 39 39
|
||||||
|
64: TypeVector 22(int) 3
|
||||||
|
65: TypePointer Function 64(ivec3)
|
||||||
|
67: 22(int) Constant 3
|
||||||
|
68: 64(ivec3) ConstantComposite 25 44 67
|
||||||
|
69: TypeVector 6(float) 3
|
||||||
|
70: TypePointer Function 69(fvec3)
|
||||||
|
72: 69(fvec3) ConstantComposite 10 11 12
|
||||||
|
73: TypeVector 28(float) 3
|
||||||
|
74: TypePointer Function 73(fvec3)
|
||||||
|
76: 28(float) Constant 0 1074266112
|
||||||
|
77: 73(fvec3) ConstantComposite 31 53 76
|
||||||
|
78: TypeVector 32(int) 3
|
||||||
|
79: TypePointer Function 78(ivec3)
|
||||||
|
81: 32(int) Constant 3
|
||||||
|
82: 78(ivec3) ConstantComposite 35 58 81
|
||||||
|
83: TypeVector 18(bool) 4
|
||||||
|
84: TypePointer Function 83(bvec4)
|
||||||
|
86: 83(bvec4) ConstantComposite 21 39 39 21
|
||||||
|
87: TypeVector 22(int) 4
|
||||||
|
88: TypePointer Function 87(ivec4)
|
||||||
|
90: 22(int) Constant 4
|
||||||
|
91: 87(ivec4) ConstantComposite 25 44 67 90
|
||||||
|
93: TypeVector 28(float) 4
|
||||||
|
94: TypePointer Function 93(fvec4)
|
||||||
|
96: 28(float) Constant 0 1074790400
|
||||||
|
97: 93(fvec4) ConstantComposite 31 53 76 96
|
||||||
|
98: TypeVector 32(int) 4
|
||||||
|
99: TypePointer Function 98(ivec4)
|
||||||
|
101: 32(int) Constant 4
|
||||||
|
102: 98(ivec4) ConstantComposite 35 58 81 101
|
||||||
|
103: TypeMatrix 7(fvec4) 4
|
||||||
|
104: TypePointer Function 103
|
||||||
|
106: 6(float) Constant 0
|
||||||
|
107: 7(fvec4) ConstantComposite 106 10 11 12
|
||||||
|
108: 6(float) Constant 1086324736
|
||||||
|
109: 6(float) Constant 1088421888
|
||||||
|
110: 7(fvec4) ConstantComposite 13 16 108 109
|
||||||
|
111: 6(float) Constant 1090519040
|
||||||
|
112: 6(float) Constant 1091567616
|
||||||
|
113: 6(float) Constant 1092616192
|
||||||
|
114: 6(float) Constant 1093664768
|
||||||
|
115: 7(fvec4) ConstantComposite 111 112 113 114
|
||||||
|
116: 6(float) Constant 1094713344
|
||||||
|
117: 6(float) Constant 1095761920
|
||||||
|
118: 6(float) Constant 1096810496
|
||||||
|
119: 6(float) Constant 1097859072
|
||||||
|
120: 7(fvec4) ConstantComposite 116 117 118 119
|
||||||
|
121: 103 ConstantComposite 107 110 115 120
|
||||||
|
123: TypeMatrix 46(fvec2) 3
|
||||||
|
124: TypePointer Function 123
|
||||||
|
126: 46(fvec2) ConstantComposite 12 13
|
||||||
|
127: 46(fvec2) ConstantComposite 16 108
|
||||||
|
128: 123 ConstantComposite 49 126 127
|
||||||
|
129: TypeMatrix 69(fvec3) 2
|
||||||
|
130: TypePointer Function 129
|
||||||
|
132: 69(fvec3) ConstantComposite 13 16 108
|
||||||
|
133: 129 ConstantComposite 72 132
|
||||||
|
134: TypeMatrix 7(fvec4) 2
|
||||||
|
135: TypePointer Function 134
|
||||||
|
137: 7(fvec4) ConstantComposite 16 108 109 111
|
||||||
|
138: 134 ConstantComposite 14 137
|
||||||
|
139: TypeMatrix 7(fvec4) 3
|
||||||
|
140: TypePointer Function 139
|
||||||
|
142: 7(fvec4) ConstantComposite 112 113 114 116
|
||||||
|
143: 139 ConstantComposite 14 137 142
|
||||||
|
4(PixelShaderFunction): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
9(r00): 8(ptr) Variable Function
|
||||||
|
15(r01): 8(ptr) Variable Function
|
||||||
|
20(r12): 19(ptr) Variable Function
|
||||||
|
24(r13): 23(ptr) Variable Function
|
||||||
|
27(r14): 26(ptr) Variable Function
|
||||||
|
30(r15): 29(ptr) Variable Function
|
||||||
|
34(r16): 33(ptr) Variable Function
|
||||||
|
38(r20): 37(ptr) Variable Function
|
||||||
|
43(r21): 42(ptr) Variable Function
|
||||||
|
48(r22): 47(ptr) Variable Function
|
||||||
|
52(r23): 51(ptr) Variable Function
|
||||||
|
57(r24): 56(ptr) Variable Function
|
||||||
|
62(r30): 61(ptr) Variable Function
|
||||||
|
66(r31): 65(ptr) Variable Function
|
||||||
|
71(r32): 70(ptr) Variable Function
|
||||||
|
75(r33): 74(ptr) Variable Function
|
||||||
|
80(r34): 79(ptr) Variable Function
|
||||||
|
85(r40): 84(ptr) Variable Function
|
||||||
|
89(r41): 88(ptr) Variable Function
|
||||||
|
92(r42): 8(ptr) Variable Function
|
||||||
|
95(r43): 94(ptr) Variable Function
|
||||||
|
100(r44): 99(ptr) Variable Function
|
||||||
|
105(r50): 104(ptr) Variable Function
|
||||||
|
122(r51): 104(ptr) Variable Function
|
||||||
|
125(r61): 124(ptr) Variable Function
|
||||||
|
131(r62): 130(ptr) Variable Function
|
||||||
|
136(r65): 135(ptr) Variable Function
|
||||||
|
141(r66): 140(ptr) Variable Function
|
||||||
|
Store 9(r00) 14
|
||||||
|
Store 15(r01) 17
|
||||||
|
Store 20(r12) 21
|
||||||
|
Store 24(r13) 25
|
||||||
|
Store 27(r14) 10
|
||||||
|
Store 30(r15) 31
|
||||||
|
Store 34(r16) 35
|
||||||
|
Store 38(r20) 40
|
||||||
|
Store 43(r21) 45
|
||||||
|
Store 48(r22) 49
|
||||||
|
Store 52(r23) 54
|
||||||
|
Store 57(r24) 59
|
||||||
|
Store 62(r30) 63
|
||||||
|
Store 66(r31) 68
|
||||||
|
Store 71(r32) 72
|
||||||
|
Store 75(r33) 77
|
||||||
|
Store 80(r34) 82
|
||||||
|
Store 85(r40) 86
|
||||||
|
Store 89(r41) 91
|
||||||
|
Store 92(r42) 14
|
||||||
|
Store 95(r43) 97
|
||||||
|
Store 100(r44) 102
|
||||||
|
Store 105(r50) 121
|
||||||
|
Store 122(r51) 121
|
||||||
|
Store 125(r61) 128
|
||||||
|
Store 131(r62) 133
|
||||||
|
Store 136(r65) 138
|
||||||
|
Store 141(r66) 143
|
||||||
|
ReturnValue 106
|
||||||
|
FunctionEnd
|
132
Test/baseResults/hlsl.typedef.frag.out
Executable file
132
Test/baseResults/hlsl.typedef.frag.out
Executable file
@ -0,0 +1,132 @@
|
|||||||
|
hlsl.typedef.frag
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:12 Function Definition: ShaderFunction(vf4;i1; (global 4-component vector of float)
|
||||||
|
0:4 Function Parameters:
|
||||||
|
0:4 'input' (in 4-component vector of float)
|
||||||
|
0:4 'ii' (in int)
|
||||||
|
0:? Sequence
|
||||||
|
0:6 Sequence
|
||||||
|
0:6 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:6 'a1' (temp 4-component vector of float)
|
||||||
|
0:6 Constant:
|
||||||
|
0:6 1.000000
|
||||||
|
0:6 1.000000
|
||||||
|
0:6 1.000000
|
||||||
|
0:6 1.000000
|
||||||
|
0:7 Sequence
|
||||||
|
0:7 move second child to first child (temp int)
|
||||||
|
0:7 'i' (temp int)
|
||||||
|
0:7 Constant:
|
||||||
|
0:7 2 (const int)
|
||||||
|
0:9 Sequence
|
||||||
|
0:9 move second child to first child (temp int)
|
||||||
|
0:9 'j' (temp int)
|
||||||
|
0:9 'ii' (in int)
|
||||||
|
0:10 Branch: Return with expression
|
||||||
|
0:10 add (temp 4-component vector of float)
|
||||||
|
0:10 component-wise multiply (temp 4-component vector of float)
|
||||||
|
0:10 'input' (in 4-component vector of float)
|
||||||
|
0:10 'a1' (temp 4-component vector of float)
|
||||||
|
0:10 Construct vec4 (global 4-component vector of float)
|
||||||
|
0:10 Convert int to float (temp float)
|
||||||
|
0:10 add (temp int)
|
||||||
|
0:10 'i' (temp int)
|
||||||
|
0:10 'j' (temp int)
|
||||||
|
0:? Linker Objects
|
||||||
|
|
||||||
|
|
||||||
|
Linked fragment stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:12 Function Definition: ShaderFunction(vf4;i1; (global 4-component vector of float)
|
||||||
|
0:4 Function Parameters:
|
||||||
|
0:4 'input' (in 4-component vector of float)
|
||||||
|
0:4 'ii' (in int)
|
||||||
|
0:? Sequence
|
||||||
|
0:6 Sequence
|
||||||
|
0:6 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:6 'a1' (temp 4-component vector of float)
|
||||||
|
0:6 Constant:
|
||||||
|
0:6 1.000000
|
||||||
|
0:6 1.000000
|
||||||
|
0:6 1.000000
|
||||||
|
0:6 1.000000
|
||||||
|
0:7 Sequence
|
||||||
|
0:7 move second child to first child (temp int)
|
||||||
|
0:7 'i' (temp int)
|
||||||
|
0:7 Constant:
|
||||||
|
0:7 2 (const int)
|
||||||
|
0:9 Sequence
|
||||||
|
0:9 move second child to first child (temp int)
|
||||||
|
0:9 'j' (temp int)
|
||||||
|
0:9 'ii' (in int)
|
||||||
|
0:10 Branch: Return with expression
|
||||||
|
0:10 add (temp 4-component vector of float)
|
||||||
|
0:10 component-wise multiply (temp 4-component vector of float)
|
||||||
|
0:10 'input' (in 4-component vector of float)
|
||||||
|
0:10 'a1' (temp 4-component vector of float)
|
||||||
|
0:10 Construct vec4 (global 4-component vector of float)
|
||||||
|
0:10 Convert int to float (temp float)
|
||||||
|
0:10 add (temp int)
|
||||||
|
0:10 'i' (temp int)
|
||||||
|
0:10 'j' (temp int)
|
||||||
|
0:? Linker Objects
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 34
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "PixelShaderFunction"
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source HLSL 450
|
||||||
|
Name 4 "PixelShaderFunction"
|
||||||
|
Name 14 "ShaderFunction(vf4;i1;"
|
||||||
|
Name 12 "input"
|
||||||
|
Name 13 "ii"
|
||||||
|
Name 16 "a1"
|
||||||
|
Name 19 "i"
|
||||||
|
Name 21 "j"
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypePointer Function 7(fvec4)
|
||||||
|
9: TypeInt 32 1
|
||||||
|
10: TypePointer Function 9(int)
|
||||||
|
11: TypeFunction 7(fvec4) 8(ptr) 10(ptr)
|
||||||
|
17: 6(float) Constant 1065353216
|
||||||
|
18: 7(fvec4) ConstantComposite 17 17 17 17
|
||||||
|
20: 9(int) Constant 2
|
||||||
|
4(PixelShaderFunction): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
FunctionEnd
|
||||||
|
14(ShaderFunction(vf4;i1;): 7(fvec4) Function None 11
|
||||||
|
12(input): 8(ptr) FunctionParameter
|
||||||
|
13(ii): 10(ptr) FunctionParameter
|
||||||
|
15: Label
|
||||||
|
16(a1): 8(ptr) Variable Function
|
||||||
|
19(i): 10(ptr) Variable Function
|
||||||
|
21(j): 10(ptr) Variable Function
|
||||||
|
Store 16(a1) 18
|
||||||
|
Store 19(i) 20
|
||||||
|
22: 9(int) Load 13(ii)
|
||||||
|
Store 21(j) 22
|
||||||
|
23: 7(fvec4) Load 12(input)
|
||||||
|
24: 7(fvec4) Load 16(a1)
|
||||||
|
25: 7(fvec4) FMul 23 24
|
||||||
|
26: 9(int) Load 19(i)
|
||||||
|
27: 9(int) Load 21(j)
|
||||||
|
28: 9(int) IAdd 26 27
|
||||||
|
29: 6(float) ConvertSToF 28
|
||||||
|
30: 7(fvec4) CompositeConstruct 29 29 29 29
|
||||||
|
31: 7(fvec4) FAdd 25 30
|
||||||
|
ReturnValue 31
|
||||||
|
FunctionEnd
|
@ -2,16 +2,16 @@ hlsl.void.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:2 Function Definition: foo1( (temp void)
|
0:2 Function Definition: foo1( (global void)
|
||||||
0:1 Function Parameters:
|
0:1 Function Parameters:
|
||||||
0:4 Function Definition: foo2( (temp void)
|
0:4 Function Definition: foo2( (global void)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:5 Function Parameters:
|
0:5 Function Parameters:
|
||||||
0:5 'input' (in 4-component vector of float)
|
0:5 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:6 Function Call: foo1( (temp void)
|
0:6 Function Call: foo1( (global void)
|
||||||
0:7 Function Call: foo2( (temp void)
|
0:7 Function Call: foo2( (global void)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
|
|
||||||
|
|
||||||
@ -21,16 +21,16 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:2 Function Definition: foo1( (temp void)
|
0:2 Function Definition: foo1( (global void)
|
||||||
0:1 Function Parameters:
|
0:1 Function Parameters:
|
||||||
0:4 Function Definition: foo2( (temp void)
|
0:4 Function Definition: foo2( (global void)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:5 Function Parameters:
|
0:5 Function Parameters:
|
||||||
0:5 'input' (in 4-component vector of float)
|
0:5 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:6 Function Call: foo1( (temp void)
|
0:6 Function Call: foo1( (global void)
|
||||||
0:7 Function Call: foo2( (temp void)
|
0:7 Function Call: foo2( (global void)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
|
@ -2,7 +2,7 @@ hlsl.whileLoop.frag
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'input' (in 4-component vector of float)
|
0:2 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -39,7 +39,7 @@ Linked fragment stage:
|
|||||||
Shader version: 450
|
Shader version: 450
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||||
0:2 Function Parameters:
|
0:2 Function Parameters:
|
||||||
0:2 'input' (in 4-component vector of float)
|
0:2 'input' (in 4-component vector of float)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
|
23
Test/baseResults/maxClipDistances.vert.out
Normal file
23
Test/baseResults/maxClipDistances.vert.out
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
maxClipDistances.vert
|
||||||
|
Shader version: 130
|
||||||
|
0:? Sequence
|
||||||
|
0:5 Function Definition: main( (global void)
|
||||||
|
0:5 Function Parameters:
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'gl_ClipDistance' (smooth out 8-element array of float ClipDistance)
|
||||||
|
0:? 'gl_ClipDistance' (smooth out 8-element array of float ClipDistance)
|
||||||
|
0:? 'gl_VertexID' (gl_VertexId int VertexId)
|
||||||
|
|
||||||
|
|
||||||
|
Linked vertex stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 130
|
||||||
|
0:? Sequence
|
||||||
|
0:5 Function Definition: main( (global void)
|
||||||
|
0:5 Function Parameters:
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'gl_ClipDistance' (smooth out 8-element array of float ClipDistance)
|
||||||
|
0:? 'gl_ClipDistance' (smooth out 8-element array of float ClipDistance)
|
||||||
|
0:? 'gl_VertexID' (gl_VertexId int VertexId)
|
||||||
|
|
@ -297,8 +297,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:? 'b2' (layout(binding=2 ) uniform atomic_uint)
|
0:? 'b2' (layout(binding=2 ) uniform atomic_uint)
|
||||||
0:? 'c2' (layout(binding=3 ) uniform atomic_uint)
|
0:? 'c2' (layout(binding=3 ) uniform atomic_uint)
|
||||||
0:? 'd2' (layout(binding=2 ) uniform atomic_uint)
|
0:? 'd2' (layout(binding=2 ) uniform atomic_uint)
|
||||||
0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
|
0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, ...})
|
||||||
0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
|
0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, ...})
|
||||||
0:? 'ColorInv' (smooth out 3-component vector of float)
|
0:? 'ColorInv' (smooth out 3-component vector of float)
|
||||||
0:? 'Color4' (invariant centroid smooth out 3-component vector of float)
|
0:? 'Color4' (invariant centroid smooth out 3-component vector of float)
|
||||||
0:? 'position' (noContraction smooth out 4-component vector of float)
|
0:? 'position' (noContraction smooth out 4-component vector of float)
|
||||||
|
54
Test/baseResults/spv.430.frag.out
Executable file
54
Test/baseResults/spv.430.frag.out
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
spv.430.frag
|
||||||
|
Warning, version 430 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 24
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability Geometry
|
||||||
|
Capability MultiViewport
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "main" 9 14 19
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source GLSL 430
|
||||||
|
Name 4 "main"
|
||||||
|
Name 9 "color"
|
||||||
|
Name 14 "gl_Layer"
|
||||||
|
Name 19 "gl_ViewportIndex"
|
||||||
|
Decorate 14(gl_Layer) Flat
|
||||||
|
Decorate 14(gl_Layer) BuiltIn Layer
|
||||||
|
Decorate 19(gl_ViewportIndex) Flat
|
||||||
|
Decorate 19(gl_ViewportIndex) BuiltIn ViewportIndex
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypePointer Output 7(fvec4)
|
||||||
|
9(color): 8(ptr) Variable Output
|
||||||
|
10: 6(float) Constant 1065353216
|
||||||
|
11: 7(fvec4) ConstantComposite 10 10 10 10
|
||||||
|
12: TypeInt 32 1
|
||||||
|
13: TypePointer Input 12(int)
|
||||||
|
14(gl_Layer): 13(ptr) Variable Input
|
||||||
|
19(gl_ViewportIndex): 13(ptr) Variable Input
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
Store 9(color) 11
|
||||||
|
15: 12(int) Load 14(gl_Layer)
|
||||||
|
16: 6(float) ConvertSToF 15
|
||||||
|
17: 7(fvec4) Load 9(color)
|
||||||
|
18: 7(fvec4) VectorTimesScalar 17 16
|
||||||
|
Store 9(color) 18
|
||||||
|
20: 12(int) Load 19(gl_ViewportIndex)
|
||||||
|
21: 6(float) ConvertSToF 20
|
||||||
|
22: 7(fvec4) Load 9(color)
|
||||||
|
23: 7(fvec4) VectorTimesScalar 22 21
|
||||||
|
Store 9(color) 23
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
@ -63,6 +63,7 @@ Linked vertex stage:
|
|||||||
Decorate 55(sampb2) Binding 5
|
Decorate 55(sampb2) Binding 5
|
||||||
Decorate 56(sampb4) DescriptorSet 0
|
Decorate 56(sampb4) DescriptorSet 0
|
||||||
Decorate 56(sampb4) Binding 31
|
Decorate 56(sampb4) Binding 31
|
||||||
|
Decorate 62(var) Flat
|
||||||
Decorate 62(var) Location 0
|
Decorate 62(var) Location 0
|
||||||
MemberDecorate 63(MS) 0 Location 17
|
MemberDecorate 63(MS) 0 Location 17
|
||||||
Decorate 63(MS) Block
|
Decorate 63(MS) Block
|
||||||
|
50
Test/baseResults/spv.450.tesc.out
Executable file
50
Test/baseResults/spv.450.tesc.out
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
spv.450.tesc
|
||||||
|
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||||
|
|
||||||
|
|
||||||
|
Linked tessellation control stage:
|
||||||
|
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 17
|
||||||
|
|
||||||
|
Capability Tessellation
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint TessellationControl 4 "main" 9 16
|
||||||
|
ExecutionMode 4 OutputVertices 4
|
||||||
|
Source GLSL 450
|
||||||
|
Name 4 "main"
|
||||||
|
Name 9 "patchOut"
|
||||||
|
Name 10 "S"
|
||||||
|
MemberName 10(S) 0 "sMem1"
|
||||||
|
MemberName 10(S) 1 "sMem2"
|
||||||
|
Name 11 "TheBlock"
|
||||||
|
MemberName 11(TheBlock) 0 "bMem1"
|
||||||
|
MemberName 11(TheBlock) 1 "bMem2"
|
||||||
|
MemberName 11(TheBlock) 2 "s"
|
||||||
|
Name 16 "tcBlock"
|
||||||
|
Decorate 9(patchOut) Patch
|
||||||
|
MemberDecorate 11(TheBlock) 0 Patch
|
||||||
|
MemberDecorate 11(TheBlock) 1 Patch
|
||||||
|
MemberDecorate 11(TheBlock) 2 Patch
|
||||||
|
Decorate 11(TheBlock) Block
|
||||||
|
Decorate 16(tcBlock) Location 12
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypePointer Output 7(fvec4)
|
||||||
|
9(patchOut): 8(ptr) Variable Output
|
||||||
|
10(S): TypeStruct 6(float) 6(float)
|
||||||
|
11(TheBlock): TypeStruct 6(float) 6(float) 10(S)
|
||||||
|
12: TypeInt 32 0
|
||||||
|
13: 12(int) Constant 2
|
||||||
|
14: TypeArray 11(TheBlock) 13
|
||||||
|
15: TypePointer Output 14
|
||||||
|
16(tcBlock): 15(ptr) Variable Output
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
@ -1,203 +1,133 @@
|
|||||||
spv.atomic.comp
|
spv.atomic.comp
|
||||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||||
|
|
||||||
Shader version: 310
|
|
||||||
local_size = (1, 1, 1)
|
|
||||||
0:? Sequence
|
|
||||||
0:14 Function Definition: func(au1; (global highp uint)
|
|
||||||
0:14 Function Parameters:
|
|
||||||
0:14 'c' (in highp atomic_uint)
|
|
||||||
0:16 Sequence
|
|
||||||
0:16 Branch: Return with expression
|
|
||||||
0:16 AtomicCounterIncrement (global highp uint)
|
|
||||||
0:16 'c' (in highp atomic_uint)
|
|
||||||
0:19 Function Definition: main( (global void)
|
|
||||||
0:19 Function Parameters:
|
|
||||||
0:21 Sequence
|
|
||||||
0:21 MemoryBarrierAtomicCounter (global void)
|
|
||||||
0:22 Function Call: func(au1; (global highp uint)
|
|
||||||
0:22 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
|
|
||||||
0:23 Sequence
|
|
||||||
0:23 move second child to first child (temp highp uint)
|
|
||||||
0:23 'val' (temp highp uint)
|
|
||||||
0:23 AtomicCounter (global highp uint)
|
|
||||||
0:23 direct index (layout(binding=0 offset=4 ) temp highp atomic_uint)
|
|
||||||
0:23 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint)
|
|
||||||
0:23 Constant:
|
|
||||||
0:23 2 (const int)
|
|
||||||
0:24 AtomicCounterDecrement (global highp uint)
|
|
||||||
0:24 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
|
|
||||||
0:36 Function Definition: atoms( (global void)
|
|
||||||
0:36 Function Parameters:
|
|
||||||
0:38 Sequence
|
|
||||||
0:38 Sequence
|
|
||||||
0:38 move second child to first child (temp highp int)
|
|
||||||
0:38 'origi' (temp highp int)
|
|
||||||
0:38 AtomicAdd (global highp int)
|
|
||||||
0:38 'atomi' (shared highp int)
|
|
||||||
0:38 Constant:
|
|
||||||
0:38 3 (const int)
|
|
||||||
0:39 Sequence
|
|
||||||
0:39 move second child to first child (temp highp uint)
|
|
||||||
0:39 'origu' (temp highp uint)
|
|
||||||
0:39 AtomicAnd (global highp uint)
|
|
||||||
0:39 'atomu' (shared highp uint)
|
|
||||||
0:39 'value' (shared highp uint)
|
|
||||||
0:40 move second child to first child (temp highp uint)
|
|
||||||
0:40 'origu' (temp highp uint)
|
|
||||||
0:40 AtomicOr (global highp uint)
|
|
||||||
0:40 'atomu' (shared highp uint)
|
|
||||||
0:40 Constant:
|
|
||||||
0:40 7 (const uint)
|
|
||||||
0:41 move second child to first child (temp highp uint)
|
|
||||||
0:41 'origu' (temp highp uint)
|
|
||||||
0:41 AtomicXor (global highp uint)
|
|
||||||
0:41 'atomu' (shared highp uint)
|
|
||||||
0:41 Constant:
|
|
||||||
0:41 7 (const uint)
|
|
||||||
0:42 move second child to first child (temp highp uint)
|
|
||||||
0:42 'origu' (temp highp uint)
|
|
||||||
0:42 AtomicMin (global highp uint)
|
|
||||||
0:42 'atomu' (shared highp uint)
|
|
||||||
0:42 'value' (shared highp uint)
|
|
||||||
0:43 move second child to first child (temp highp int)
|
|
||||||
0:43 'origi' (temp highp int)
|
|
||||||
0:43 AtomicMax (global highp int)
|
|
||||||
0:43 'atomi' (shared highp int)
|
|
||||||
0:43 Constant:
|
|
||||||
0:43 7 (const int)
|
|
||||||
0:44 move second child to first child (temp highp int)
|
|
||||||
0:44 'origi' (temp highp int)
|
|
||||||
0:44 AtomicExchange (global highp int)
|
|
||||||
0:44 'atomi' (shared highp int)
|
|
||||||
0:44 'origi' (temp highp int)
|
|
||||||
0:45 move second child to first child (temp highp uint)
|
|
||||||
0:45 'origu' (temp highp uint)
|
|
||||||
0:45 AtomicCompSwap (global highp uint)
|
|
||||||
0:45 'atomu' (shared highp uint)
|
|
||||||
0:45 Constant:
|
|
||||||
0:45 10 (const uint)
|
|
||||||
0:45 'value' (shared highp uint)
|
|
||||||
0:46 AtomicAdd (global highp int)
|
|
||||||
0:46 direct index (temp highp int)
|
|
||||||
0:46 n_frames_rendered: direct index for structure (layout(column_major std140 offset=16 ) buffer highp 4-component vector of int)
|
|
||||||
0:46 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered})
|
|
||||||
0:46 Constant:
|
|
||||||
0:46 1 (const int)
|
|
||||||
0:46 Constant:
|
|
||||||
0:46 2 (const int)
|
|
||||||
0:46 Constant:
|
|
||||||
0:46 1 (const int)
|
|
||||||
0:? Linker Objects
|
|
||||||
0:? 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
|
|
||||||
0:? 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint)
|
|
||||||
0:? 'value' (shared highp uint)
|
|
||||||
0:? 'arrX' (global 1-element array of highp int)
|
|
||||||
0:? 'arrY' (global 1-element array of highp int)
|
|
||||||
0:? 'arrZ' (global 1-element array of highp int)
|
|
||||||
0:? 'atomi' (shared highp int)
|
|
||||||
0:? 'atomu' (shared highp uint)
|
|
||||||
0:? 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered})
|
|
||||||
|
|
||||||
|
|
||||||
Linked compute stage:
|
Linked compute stage:
|
||||||
|
|
||||||
|
|
||||||
Shader version: 310
|
// Module Version 10000
|
||||||
local_size = (1, 1, 1)
|
// Generated by (magic number): 80001
|
||||||
0:? Sequence
|
// Id's are bound by 73
|
||||||
0:14 Function Definition: func(au1; (global highp uint)
|
|
||||||
0:14 Function Parameters:
|
|
||||||
0:14 'c' (in highp atomic_uint)
|
|
||||||
0:16 Sequence
|
|
||||||
0:16 Branch: Return with expression
|
|
||||||
0:16 AtomicCounterIncrement (global highp uint)
|
|
||||||
0:16 'c' (in highp atomic_uint)
|
|
||||||
0:19 Function Definition: main( (global void)
|
|
||||||
0:19 Function Parameters:
|
|
||||||
0:21 Sequence
|
|
||||||
0:21 MemoryBarrierAtomicCounter (global void)
|
|
||||||
0:22 Function Call: func(au1; (global highp uint)
|
|
||||||
0:22 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
|
|
||||||
0:23 Sequence
|
|
||||||
0:23 move second child to first child (temp highp uint)
|
|
||||||
0:23 'val' (temp highp uint)
|
|
||||||
0:23 AtomicCounter (global highp uint)
|
|
||||||
0:23 direct index (layout(binding=0 offset=4 ) temp highp atomic_uint)
|
|
||||||
0:23 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint)
|
|
||||||
0:23 Constant:
|
|
||||||
0:23 2 (const int)
|
|
||||||
0:24 AtomicCounterDecrement (global highp uint)
|
|
||||||
0:24 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
|
|
||||||
0:36 Function Definition: atoms( (global void)
|
|
||||||
0:36 Function Parameters:
|
|
||||||
0:38 Sequence
|
|
||||||
0:38 Sequence
|
|
||||||
0:38 move second child to first child (temp highp int)
|
|
||||||
0:38 'origi' (temp highp int)
|
|
||||||
0:38 AtomicAdd (global highp int)
|
|
||||||
0:38 'atomi' (shared highp int)
|
|
||||||
0:38 Constant:
|
|
||||||
0:38 3 (const int)
|
|
||||||
0:39 Sequence
|
|
||||||
0:39 move second child to first child (temp highp uint)
|
|
||||||
0:39 'origu' (temp highp uint)
|
|
||||||
0:39 AtomicAnd (global highp uint)
|
|
||||||
0:39 'atomu' (shared highp uint)
|
|
||||||
0:39 'value' (shared highp uint)
|
|
||||||
0:40 move second child to first child (temp highp uint)
|
|
||||||
0:40 'origu' (temp highp uint)
|
|
||||||
0:40 AtomicOr (global highp uint)
|
|
||||||
0:40 'atomu' (shared highp uint)
|
|
||||||
0:40 Constant:
|
|
||||||
0:40 7 (const uint)
|
|
||||||
0:41 move second child to first child (temp highp uint)
|
|
||||||
0:41 'origu' (temp highp uint)
|
|
||||||
0:41 AtomicXor (global highp uint)
|
|
||||||
0:41 'atomu' (shared highp uint)
|
|
||||||
0:41 Constant:
|
|
||||||
0:41 7 (const uint)
|
|
||||||
0:42 move second child to first child (temp highp uint)
|
|
||||||
0:42 'origu' (temp highp uint)
|
|
||||||
0:42 AtomicMin (global highp uint)
|
|
||||||
0:42 'atomu' (shared highp uint)
|
|
||||||
0:42 'value' (shared highp uint)
|
|
||||||
0:43 move second child to first child (temp highp int)
|
|
||||||
0:43 'origi' (temp highp int)
|
|
||||||
0:43 AtomicMax (global highp int)
|
|
||||||
0:43 'atomi' (shared highp int)
|
|
||||||
0:43 Constant:
|
|
||||||
0:43 7 (const int)
|
|
||||||
0:44 move second child to first child (temp highp int)
|
|
||||||
0:44 'origi' (temp highp int)
|
|
||||||
0:44 AtomicExchange (global highp int)
|
|
||||||
0:44 'atomi' (shared highp int)
|
|
||||||
0:44 'origi' (temp highp int)
|
|
||||||
0:45 move second child to first child (temp highp uint)
|
|
||||||
0:45 'origu' (temp highp uint)
|
|
||||||
0:45 AtomicCompSwap (global highp uint)
|
|
||||||
0:45 'atomu' (shared highp uint)
|
|
||||||
0:45 Constant:
|
|
||||||
0:45 10 (const uint)
|
|
||||||
0:45 'value' (shared highp uint)
|
|
||||||
0:46 AtomicAdd (global highp int)
|
|
||||||
0:46 direct index (temp highp int)
|
|
||||||
0:46 n_frames_rendered: direct index for structure (layout(column_major std140 offset=16 ) buffer highp 4-component vector of int)
|
|
||||||
0:46 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered})
|
|
||||||
0:46 Constant:
|
|
||||||
0:46 1 (const int)
|
|
||||||
0:46 Constant:
|
|
||||||
0:46 2 (const int)
|
|
||||||
0:46 Constant:
|
|
||||||
0:46 1 (const int)
|
|
||||||
0:? Linker Objects
|
|
||||||
0:? 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
|
|
||||||
0:? 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint)
|
|
||||||
0:? 'value' (shared highp uint)
|
|
||||||
0:? 'arrX' (global 1-element array of highp int)
|
|
||||||
0:? 'arrY' (global 1-element array of highp int)
|
|
||||||
0:? 'arrZ' (global 1-element array of highp int)
|
|
||||||
0:? 'atomi' (shared highp int)
|
|
||||||
0:? 'atomu' (shared highp uint)
|
|
||||||
0:? 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered})
|
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability AtomicStorage
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint GLCompute 4 "main"
|
||||||
|
ExecutionMode 4 LocalSize 1 1 1
|
||||||
|
Source GLSL 450
|
||||||
|
Name 4 "main"
|
||||||
|
Name 10 "func(au1;"
|
||||||
|
Name 9 "c"
|
||||||
|
Name 12 "atoms("
|
||||||
|
Name 20 "counter"
|
||||||
|
Name 23 "val"
|
||||||
|
Name 27 "countArr"
|
||||||
|
Name 35 "origi"
|
||||||
|
Name 37 "atomi"
|
||||||
|
Name 40 "origu"
|
||||||
|
Name 42 "atomu"
|
||||||
|
Name 43 "value"
|
||||||
|
Name 60 "dataSSB"
|
||||||
|
MemberName 60(dataSSB) 0 "f"
|
||||||
|
MemberName 60(dataSSB) 1 "n_frames_rendered"
|
||||||
|
Name 62 "result"
|
||||||
|
Name 70 "arrX"
|
||||||
|
Name 71 "arrY"
|
||||||
|
Name 72 "arrZ"
|
||||||
|
Decorate 20(counter) Offset 0
|
||||||
|
Decorate 20(counter) Binding 0
|
||||||
|
Decorate 27(countArr) Offset 4
|
||||||
|
Decorate 27(countArr) Binding 0
|
||||||
|
MemberDecorate 60(dataSSB) 0 Restrict
|
||||||
|
MemberDecorate 60(dataSSB) 0 Offset 0
|
||||||
|
MemberDecorate 60(dataSSB) 1 Restrict
|
||||||
|
MemberDecorate 60(dataSSB) 1 Offset 16
|
||||||
|
Decorate 60(dataSSB) BufferBlock
|
||||||
|
Decorate 62(result) DescriptorSet 0
|
||||||
|
Decorate 62(result) Binding 0
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeInt 32 0
|
||||||
|
7: TypePointer AtomicCounter 6(int)
|
||||||
|
8: TypeFunction 6(int) 7(ptr)
|
||||||
|
14: 6(int) Constant 1
|
||||||
|
15: 6(int) Constant 0
|
||||||
|
19: 6(int) Constant 1024
|
||||||
|
20(counter): 7(ptr) Variable AtomicCounter
|
||||||
|
22: TypePointer Function 6(int)
|
||||||
|
24: 6(int) Constant 4
|
||||||
|
25: TypeArray 6(int) 24
|
||||||
|
26: TypePointer AtomicCounter 25
|
||||||
|
27(countArr): 26(ptr) Variable AtomicCounter
|
||||||
|
28: TypeInt 32 1
|
||||||
|
29: 28(int) Constant 2
|
||||||
|
34: TypePointer Function 28(int)
|
||||||
|
36: TypePointer Workgroup 28(int)
|
||||||
|
37(atomi): 36(ptr) Variable Workgroup
|
||||||
|
38: 28(int) Constant 3
|
||||||
|
41: TypePointer Workgroup 6(int)
|
||||||
|
42(atomu): 41(ptr) Variable Workgroup
|
||||||
|
43(value): 41(ptr) Variable Workgroup
|
||||||
|
46: 6(int) Constant 7
|
||||||
|
51: 28(int) Constant 7
|
||||||
|
55: 6(int) Constant 10
|
||||||
|
58: TypeFloat 32
|
||||||
|
59: TypeVector 28(int) 4
|
||||||
|
60(dataSSB): TypeStruct 58(float) 59(ivec4)
|
||||||
|
61: TypePointer Uniform 60(dataSSB)
|
||||||
|
62(result): 61(ptr) Variable Uniform
|
||||||
|
63: 28(int) Constant 1
|
||||||
|
64: 6(int) Constant 2
|
||||||
|
65: TypePointer Uniform 28(int)
|
||||||
|
68: TypeArray 28(int) 14
|
||||||
|
69: TypePointer Private 68
|
||||||
|
70(arrX): 69(ptr) Variable Private
|
||||||
|
71(arrY): 69(ptr) Variable Private
|
||||||
|
72(arrZ): 69(ptr) Variable Private
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
23(val): 22(ptr) Variable Function
|
||||||
|
MemoryBarrier 14 19
|
||||||
|
21: 6(int) FunctionCall 10(func(au1;) 20(counter)
|
||||||
|
30: 7(ptr) AccessChain 27(countArr) 29
|
||||||
|
31: 6(int) AtomicLoad 30 14 15
|
||||||
|
Store 23(val) 31
|
||||||
|
32: 6(int) AtomicIDecrement 20(counter) 14 15
|
||||||
|
33: 6(int) AtomicIIncrement 20(counter) 14 15
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
|
10(func(au1;): 6(int) Function None 8
|
||||||
|
9(c): 7(ptr) FunctionParameter
|
||||||
|
11: Label
|
||||||
|
16: 6(int) AtomicIIncrement 9(c) 14 15
|
||||||
|
ReturnValue 16
|
||||||
|
FunctionEnd
|
||||||
|
12(atoms(): 2 Function None 3
|
||||||
|
13: Label
|
||||||
|
35(origi): 34(ptr) Variable Function
|
||||||
|
40(origu): 22(ptr) Variable Function
|
||||||
|
39: 28(int) AtomicIAdd 37(atomi) 14 15 38
|
||||||
|
Store 35(origi) 39
|
||||||
|
44: 6(int) Load 43(value)
|
||||||
|
45: 6(int) AtomicAnd 42(atomu) 14 15 44
|
||||||
|
Store 40(origu) 45
|
||||||
|
47: 6(int) AtomicOr 42(atomu) 14 15 46
|
||||||
|
Store 40(origu) 47
|
||||||
|
48: 6(int) AtomicXor 42(atomu) 14 15 46
|
||||||
|
Store 40(origu) 48
|
||||||
|
49: 6(int) Load 43(value)
|
||||||
|
50: 6(int) AtomicUMin 42(atomu) 14 15 49
|
||||||
|
Store 40(origu) 50
|
||||||
|
52: 28(int) AtomicSMax 37(atomi) 14 15 51
|
||||||
|
Store 35(origi) 52
|
||||||
|
53: 28(int) Load 35(origi)
|
||||||
|
54: 28(int) AtomicExchange 37(atomi) 14 15 53
|
||||||
|
Store 35(origi) 54
|
||||||
|
56: 6(int) Load 43(value)
|
||||||
|
57: 6(int) AtomicCompareExchange 42(atomu) 14 15 15 56 55
|
||||||
|
Store 40(origu) 57
|
||||||
|
66: 65(ptr) AccessChain 62(result) 63 64
|
||||||
|
67: 28(int) AtomicIAdd 66 14 15 63
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
|
30
Test/baseResults/spv.glFragColor.frag.out
Executable file
30
Test/baseResults/spv.glFragColor.frag.out
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
spv.glFragColor.frag
|
||||||
|
|
||||||
|
Linked fragment stage:
|
||||||
|
|
||||||
|
|
||||||
|
// 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 "main" 9
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
|
Source GLSL 330
|
||||||
|
Name 4 "main"
|
||||||
|
Name 9 "gl_FragColor"
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypePointer Output 7(fvec4)
|
||||||
|
9(gl_FragColor): 8(ptr) Variable Output
|
||||||
|
10: 6(float) Constant 1065353216
|
||||||
|
11: 7(fvec4) ConstantComposite 10 10 10 10
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
Store 9(gl_FragColor) 11
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
@ -44,14 +44,6 @@ Linked vertex stage:
|
|||||||
Name 173 "u3"
|
Name 173 "u3"
|
||||||
Name 182 "i3"
|
Name 182 "i3"
|
||||||
Name 247 "v4"
|
Name 247 "v4"
|
||||||
Decorate 210 RelaxedPrecision
|
|
||||||
Decorate 216 RelaxedPrecision
|
|
||||||
Decorate 223 RelaxedPrecision
|
|
||||||
Decorate 230 RelaxedPrecision
|
|
||||||
Decorate 234 RelaxedPrecision
|
|
||||||
Decorate 240 RelaxedPrecision
|
|
||||||
Decorate 261 RelaxedPrecision
|
|
||||||
Decorate 265 RelaxedPrecision
|
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 1
|
6: TypeInt 32 1
|
||||||
|
@ -162,6 +162,7 @@ Linked vertex stage:
|
|||||||
Decorate 58(bBt3) BufferBlock
|
Decorate 58(bBt3) BufferBlock
|
||||||
Decorate 60(bBtn3) DescriptorSet 1
|
Decorate 60(bBtn3) DescriptorSet 1
|
||||||
Decorate 60(bBtn3) Binding 0
|
Decorate 60(bBtn3) Binding 0
|
||||||
|
Decorate 62(sout) Flat
|
||||||
MemberDecorate 63(S) 0 Invariant
|
MemberDecorate 63(S) 0 Invariant
|
||||||
MemberDecorate 63(S) 1 Invariant
|
MemberDecorate 63(S) 1 Invariant
|
||||||
MemberDecorate 63(S) 2 Invariant
|
MemberDecorate 63(S) 2 Invariant
|
||||||
|
@ -44,8 +44,11 @@ Linked fragment stage:
|
|||||||
Name 128 "samp2D"
|
Name 128 "samp2D"
|
||||||
Name 134 "foo"
|
Name 134 "foo"
|
||||||
Name 135 "foo2"
|
Name 135 "foo2"
|
||||||
|
Decorate 15(foo3) Flat
|
||||||
Decorate 90(condition) Flat
|
Decorate 90(condition) Flat
|
||||||
Decorate 128(samp2D) DescriptorSet 0
|
Decorate 128(samp2D) DescriptorSet 0
|
||||||
|
Decorate 134(foo) Flat
|
||||||
|
Decorate 135(foo2) Flat
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 1
|
6: TypeInt 32 1
|
||||||
|
61
Test/baseResults/spv.specConst.vert.out
Executable file
61
Test/baseResults/spv.specConst.vert.out
Executable file
@ -0,0 +1,61 @@
|
|||||||
|
spv.specConst.vert
|
||||||
|
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||||
|
|
||||||
|
|
||||||
|
Linked vertex stage:
|
||||||
|
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 27
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Vertex 4 "main" 13 25 26
|
||||||
|
Source GLSL 450
|
||||||
|
Name 4 "main"
|
||||||
|
Name 11 "gl_PerVertex"
|
||||||
|
MemberName 11(gl_PerVertex) 0 "gl_Position"
|
||||||
|
MemberName 11(gl_PerVertex) 1 "gl_PointSize"
|
||||||
|
MemberName 11(gl_PerVertex) 2 "gl_ClipDistance"
|
||||||
|
MemberName 11(gl_PerVertex) 3 "gl_CullDistance"
|
||||||
|
Name 13 ""
|
||||||
|
Name 25 "gl_VertexID"
|
||||||
|
Name 26 "gl_InstanceID"
|
||||||
|
MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position
|
||||||
|
MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize
|
||||||
|
MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||||
|
MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance
|
||||||
|
Decorate 11(gl_PerVertex) Block
|
||||||
|
Decorate 18 SpecId 11
|
||||||
|
Decorate 25(gl_VertexID) BuiltIn VertexId
|
||||||
|
Decorate 26(gl_InstanceID) BuiltIn InstanceId
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypeInt 32 0
|
||||||
|
9: 8(int) Constant 1
|
||||||
|
10: TypeArray 6(float) 9
|
||||||
|
11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10
|
||||||
|
12: TypePointer Output 11(gl_PerVertex)
|
||||||
|
13: 12(ptr) Variable Output
|
||||||
|
14: TypeInt 32 1
|
||||||
|
15: 14(int) Constant 0
|
||||||
|
16: 6(float) Constant 1065353216
|
||||||
|
17: 7(fvec4) ConstantComposite 16 16 16 16
|
||||||
|
18: 14(int) SpecConstant 8
|
||||||
|
22: TypePointer Output 7(fvec4)
|
||||||
|
24: TypePointer Input 14(int)
|
||||||
|
25(gl_VertexID): 24(ptr) Variable Input
|
||||||
|
26(gl_InstanceID): 24(ptr) Variable Input
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
19: 6(float) ConvertSToF 18
|
||||||
|
20: 7(fvec4) CompositeConstruct 19 19 19 19
|
||||||
|
21: 7(fvec4) FDiv 17 20
|
||||||
|
23: 22(ptr) AccessChain 13 15
|
||||||
|
Store 23 21
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
@ -39,6 +39,9 @@ Linked fragment stage:
|
|||||||
Name 63 "coord"
|
Name 63 "coord"
|
||||||
Name 69 "constructed"
|
Name 69 "constructed"
|
||||||
Decorate 10(Count) Flat
|
Decorate 10(Count) Flat
|
||||||
|
Decorate 20(foo3) Flat
|
||||||
|
Decorate 34(foo2) Flat
|
||||||
|
Decorate 36(foo) Flat
|
||||||
Decorate 59(samp2D) DescriptorSet 0
|
Decorate 59(samp2D) DescriptorSet 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
|
@ -138,4 +138,11 @@ const cag a0[3] = cag[3](cag(3, 2.0, true), cag(1, 5.0, true), cag(1, 9.0, false
|
|||||||
void foo4()
|
void foo4()
|
||||||
{
|
{
|
||||||
int a = int(a0[2].f);
|
int a = int(a0[2].f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const bool cval1 = all(bvec4(true, true, true, true));
|
||||||
|
const bool cval2 = all(bvec4(false, false, false, false));
|
||||||
|
const bool cval3 = all(bvec4(true, true, false, true));
|
||||||
|
const bool cval4 = any(bvec4(true, true, true, true));
|
||||||
|
const bool cval5 = any(bvec4(false, false, false, false));
|
||||||
|
const bool cval6 = any(bvec4(false, true, false, false));
|
||||||
|
@ -68,3 +68,8 @@ void aggCall()
|
|||||||
float F;
|
float F;
|
||||||
m(ivec2(F)); // test input conversion of single argument that's an aggregate; other function tests in 120.vert
|
m(ivec2(F)); // test input conversion of single argument that's an aggregate; other function tests in 120.vert
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vec4 badConv()
|
||||||
|
{
|
||||||
|
return u; // ERROR, can change scalar to vector
|
||||||
|
}
|
5
Test/glspv.esversion.vert
Normal file
5
Test/glspv.esversion.vert
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#version 310 es
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
}
|
14
Test/glspv.frag
Normal file
14
Test/glspv.frag
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#version 330
|
||||||
|
|
||||||
|
#ifdef GL_SPIRV
|
||||||
|
#error GL_SPIRV is set ( correct, not an error )
|
||||||
|
#if GL_SPIRV == 100
|
||||||
|
#error GL_SPIR is 100
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
layout(input_attachment_index = 1) uniform subpassInput sub; // ERROR, no inputs
|
5
Test/glspv.version.frag
Normal file
5
Test/glspv.version.frag
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#version 330 compatibility
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
}
|
5
Test/glspv.version.vert
Normal file
5
Test/glspv.version.vert
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#version 150
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
}
|
20
Test/glspv.vert
Normal file
20
Test/glspv.vert
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
layout(push_constant) uniform Material { int a; } mat; // ERROR, can't use push_constant
|
||||||
|
|
||||||
|
layout(set = 0, binding = 0, std140) uniform Bt1 { int a; } bt1;
|
||||||
|
layout(set = 1, binding = 0, std140) uniform Bt2 { int a; } bt2; // ERROR, set has to be 0
|
||||||
|
|
||||||
|
layout(shared) uniform Bt3 { int a; } bt3; // ERROR, no shared
|
||||||
|
layout(packed) uniform Bt4 { int a; } bt4; // ERROR, no shared
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
gl_VertexIndex; // ERROR, not preset
|
||||||
|
gl_InstanceIndex; // ERROR, not present
|
||||||
|
gl_VertexID;
|
||||||
|
gl_InstanceID;
|
||||||
|
gl_DepthRangeParameters; // ERROR, not present
|
||||||
|
}
|
||||||
|
|
||||||
|
uniform sampler s; // ERROR, no sampler
|
14
Test/hlsl.discard.frag
Normal file
14
Test/hlsl.discard.frag
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
void foo(float f)
|
||||||
|
{
|
||||||
|
if (f < 1.0)
|
||||||
|
discard;
|
||||||
|
}
|
||||||
|
|
||||||
|
float4 PixelShaderFunction(float4 input) : COLOR0
|
||||||
|
{
|
||||||
|
foo(input.z);
|
||||||
|
if (input.x)
|
||||||
|
discard;
|
||||||
|
float f = input.x;
|
||||||
|
discard;
|
||||||
|
}
|
@ -5,4 +5,9 @@ float4 PixelShaderFunction(float4 input) : COLOR0
|
|||||||
[unroll] for (; input != input; ) {}
|
[unroll] for (; input != input; ) {}
|
||||||
for (; input != input; ) { return -input; }
|
for (; input != input; ) { return -input; }
|
||||||
for (--input; input != input; input += 2) { return -input; }
|
for (--input; input != input; input += 2) { return -input; }
|
||||||
|
for (;;) if (input.x > 2.0) break;
|
||||||
|
for (;;) if (input.x > 2.0) continue;
|
||||||
|
float ii;
|
||||||
|
for (int ii = -1; ii < 3; ++ii) if (ii == 2) continue;
|
||||||
|
--ii;
|
||||||
}
|
}
|
||||||
|
@ -25,4 +25,9 @@ float4 PixelShaderFunction(float4 input) : COLOR0
|
|||||||
} else {
|
} else {
|
||||||
return -input;
|
return -input;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ii;
|
||||||
|
if (float ii = input.z)
|
||||||
|
++ii;
|
||||||
|
++ii;
|
||||||
}
|
}
|
||||||
|
24
Test/hlsl.init.frag
Normal file
24
Test/hlsl.init.frag
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
float4 a1 = float4(1, 0.5, 0, 1), b1 = float4(2.0, 2.5, 2.1, 2.2);
|
||||||
|
float4 a1i = {1, 0.5, 0, 1}, b1i = {2.0, 2.5, 2.1, 2.2};
|
||||||
|
float a2 = 0.2, b2;
|
||||||
|
float a3, b3 = 0.3;
|
||||||
|
float a4, b4 = 0.4, c4;
|
||||||
|
float a5 = 0.5, b5, c5 = 1.5;
|
||||||
|
|
||||||
|
float4 ShaderFunction(float4 input) : COLOR0
|
||||||
|
{
|
||||||
|
float4 a2 = float4(0.2, 0.3, 0.4, 0.5);
|
||||||
|
struct S1 {
|
||||||
|
float f;
|
||||||
|
int i;
|
||||||
|
};
|
||||||
|
struct S2 {
|
||||||
|
int j;
|
||||||
|
float g;
|
||||||
|
S1 s1;
|
||||||
|
};
|
||||||
|
S2 s2i = { 9, a5, { (a3,a4), 12} }, s2 = S2(9, a5, S1((a3,a4), 12));
|
||||||
|
float a8 = (a2, b2), a9 = a5;
|
||||||
|
|
||||||
|
return input * a1;
|
||||||
|
}
|
@ -13,7 +13,7 @@ gs uint4 gs_ua4;
|
|||||||
gs uint4 gs_ub4;
|
gs uint4 gs_ub4;
|
||||||
gs uint4 gs_uc4;
|
gs uint4 gs_uc4;
|
||||||
|
|
||||||
float ComputeShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint inU1)
|
float ComputeShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1)
|
||||||
{
|
{
|
||||||
uint out_u1;
|
uint out_u1;
|
||||||
|
|
||||||
@ -41,13 +41,13 @@ float ComputeShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint
|
|||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
float1 ComputeShaderFunction(float1 inF0, float1 inF1, float1 inF2)
|
float1 ComputeShaderFunction1(float1 inF0, float1 inF1, float1 inF2)
|
||||||
{
|
{
|
||||||
// TODO: ... add when float1 prototypes are generated
|
// TODO: ... add when float1 prototypes are generated
|
||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
float2 ComputeShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1)
|
float2 ComputeShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1)
|
||||||
{
|
{
|
||||||
uint2 out_u2;
|
uint2 out_u2;
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ float2 ComputeShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0,
|
|||||||
return float2(1,2);
|
return float2(1,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
float3 ComputeShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1)
|
float3 ComputeShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1)
|
||||||
{
|
{
|
||||||
uint3 out_u3;
|
uint3 out_u3;
|
||||||
|
|
||||||
|
11
Test/hlsl.intrinsics.double.frag
Normal file
11
Test/hlsl.intrinsics.double.frag
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
|
||||||
|
float PixelShaderFunction(double inDV1a, double inDV1b, double inDV1c,
|
||||||
|
double2 inDV2, double3 inDV3, double4 inDV4,
|
||||||
|
uint inU1a, uint inU1b)
|
||||||
|
{
|
||||||
|
double r00 = fma(inDV1a, inDV1b, inDV1c);
|
||||||
|
double r01 = asdouble(inU1a, inU1b);
|
||||||
|
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
|
@ -1,24 +1,24 @@
|
|||||||
float PixelShaderFunction(float inF0)
|
float PixelShaderFunctionS(float inF0)
|
||||||
{
|
{
|
||||||
f32tof16(inF0);
|
f32tof16(inF0);
|
||||||
|
|
||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
float1 PixelShaderFunction(float1 inF0)
|
float1 PixelShaderFunction1(float1 inF0)
|
||||||
{
|
{
|
||||||
// TODO: ... add when float1 prototypes are generated
|
// TODO: ... add when float1 prototypes are generated
|
||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
float2 PixelShaderFunction(float2 inF0)
|
float2 PixelShaderFunction2(float2 inF0)
|
||||||
{
|
{
|
||||||
f32tof16(inF0);
|
f32tof16(inF0);
|
||||||
|
|
||||||
return float2(1,2);
|
return float2(1,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
float3 PixelShaderFunction(float3 inF0)
|
float3 PixelShaderFunction3(float3 inF0)
|
||||||
{
|
{
|
||||||
f32tof16(inF0);
|
f32tof16(inF0);
|
||||||
|
|
||||||
|
@ -13,237 +13,243 @@ gs uint4 gs_ua4;
|
|||||||
gs uint4 gs_ub4;
|
gs uint4 gs_ub4;
|
||||||
gs uint4 gs_uc4;
|
gs uint4 gs_uc4;
|
||||||
|
|
||||||
float PixelShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint inU1)
|
float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1)
|
||||||
{
|
{
|
||||||
uint out_u1;
|
uint out_u1;
|
||||||
|
|
||||||
all(inF0);
|
bool r000 = all(inF0);
|
||||||
abs(inF0);
|
float r001 = abs(inF0);
|
||||||
acos(inF0);
|
float r002 = acos(inF0);
|
||||||
any(inF0);
|
bool r003 = any(inF0);
|
||||||
asin(inF0);
|
float r004 = asin(inF0);
|
||||||
asint(inF0);
|
int r005 = asint(inF0);
|
||||||
asuint(inF0);
|
uint r006 = asuint(inF0);
|
||||||
asfloat(inU0);
|
float r007 = asfloat(inU0);
|
||||||
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
||||||
atan(inF0);
|
float r009 = atan(inF0);
|
||||||
atan2(inF0, inF1);
|
float r010 = atan2(inF0, inF1);
|
||||||
ceil(inF0);
|
float r011 = ceil(inF0);
|
||||||
clamp(inF0, inF1, inF2);
|
float r012 = clamp(inF0, inF1, inF2);
|
||||||
clip(inF0);
|
clip(inF0);
|
||||||
cos(inF0);
|
float r014 = cos(inF0);
|
||||||
cosh(inF0);
|
float r015 = cosh(inF0);
|
||||||
countbits(7);
|
uint r016 = countbits(7);
|
||||||
ddx(inF0);
|
float r017 = ddx(inF0);
|
||||||
ddx_coarse(inF0);
|
float r018 = ddx_coarse(inF0);
|
||||||
ddx_fine(inF0);
|
float r019 = ddx_fine(inF0);
|
||||||
ddy(inF0);
|
float r020 = ddy(inF0);
|
||||||
ddy_coarse(inF0);
|
float r021 = ddy_coarse(inF0);
|
||||||
ddy_fine(inF0);
|
float r022 = ddy_fine(inF0);
|
||||||
degrees(inF0);
|
float r023 = degrees(inF0);
|
||||||
// EvaluateAttributeAtCentroid(inF0);
|
// EvaluateAttributeAtCentroid(inF0);
|
||||||
// EvaluateAttributeAtSample(inF0, 0);
|
// EvaluateAttributeAtSample(inF0, 0);
|
||||||
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
||||||
exp(inF0);
|
float r027 = exp(inF0);
|
||||||
exp2(inF0);
|
float r028 = exp2(inF0);
|
||||||
firstbithigh(7);
|
uint r029 = firstbithigh(7);
|
||||||
firstbitlow(7);
|
uint r030 = firstbitlow(7);
|
||||||
floor(inF0);
|
float r031 = floor(inF0);
|
||||||
// TODO: fma(inD0, inD1, inD2);
|
// TODO: fma(inD0, inD1, inD2);
|
||||||
fmod(inF0, inF1);
|
float r033 = fmod(inF0, inF1);
|
||||||
frac(inF0);
|
float r034 = frac(inF0);
|
||||||
frexp(inF0, inF1);
|
float r035 = frexp(inF0, inF1);
|
||||||
fwidth(inF0);
|
float r036 = fwidth(inF0);
|
||||||
isinf(inF0);
|
bool r037 = isinf(inF0);
|
||||||
isnan(inF0);
|
bool r038 = isnan(inF0);
|
||||||
ldexp(inF0, inF1);
|
float r039 = ldexp(inF0, inF1);
|
||||||
log(inF0);
|
float r039a = lerp(inF0, inF1, inF2);
|
||||||
log10(inF0);
|
float r040 = log(inF0);
|
||||||
log2(inF0);
|
float r041 = log10(inF0);
|
||||||
max(inF0, inF1);
|
float r042 = log2(inF0);
|
||||||
min(inF0, inF1);
|
float r043 = max(inF0, inF1);
|
||||||
pow(inF0, inF1);
|
float r044 = min(inF0, inF1);
|
||||||
radians(inF0);
|
float r045 = pow(inF0, inF1);
|
||||||
rcp(inF0);
|
float r046 = radians(inF0);
|
||||||
reversebits(2);
|
float r047 = rcp(inF0);
|
||||||
round(inF0);
|
uint r048 = reversebits(2);
|
||||||
rsqrt(inF0);
|
float r049 = round(inF0);
|
||||||
saturate(inF0);
|
float r050 = rsqrt(inF0);
|
||||||
sign(inF0);
|
float r051 = saturate(inF0);
|
||||||
sin(inF0);
|
float r052 = sign(inF0);
|
||||||
|
float r053 = sin(inF0);
|
||||||
sincos(inF0, inF1, inF2);
|
sincos(inF0, inF1, inF2);
|
||||||
sinh(inF0);
|
float r055 = sinh(inF0);
|
||||||
smoothstep(inF0, inF1, inF2);
|
float r056 = smoothstep(inF0, inF1, inF2);
|
||||||
sqrt(inF0);
|
float r057 = sqrt(inF0);
|
||||||
step(inF0, inF1);
|
float r058 = step(inF0, inF1);
|
||||||
tan(inF0);
|
float r059 = tan(inF0);
|
||||||
tanh(inF0);
|
float r060 = tanh(inF0);
|
||||||
// TODO: sampler intrinsics, when we can declare the types.
|
// TODO: sampler intrinsics, when we can declare the types.
|
||||||
trunc(inF0);
|
float r061 = trunc(inF0);
|
||||||
|
|
||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
float1 PixelShaderFunction(float1 inF0, float1 inF1, float1 inF2)
|
float1 PixelShaderFunction1(float1 inF0, float1 inF1, float1 inF2)
|
||||||
{
|
{
|
||||||
// TODO: ... add when float1 prototypes are generated
|
// TODO: ... add when float1 prototypes are generated
|
||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
float2 PixelShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1)
|
float2 PixelShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1)
|
||||||
{
|
{
|
||||||
uint2 out_u2;
|
uint2 out_u2;
|
||||||
|
|
||||||
all(inF0);
|
bool r000 = all(inF0);
|
||||||
abs(inF0);
|
float2 r001 = abs(inF0);
|
||||||
acos(inF0);
|
float2 r002 = acos(inF0);
|
||||||
any(inF0);
|
bool r003 = any(inF0);
|
||||||
asin(inF0);
|
float2 r004 = asin(inF0);
|
||||||
asint(inF0);
|
int2 r005 = asint(inF0);
|
||||||
asuint(inF0);
|
uint2 r006 = asuint(inF0);
|
||||||
asfloat(inU0);
|
float2 r007 = asfloat(inU0);
|
||||||
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
||||||
atan(inF0);
|
float2 r009 = atan(inF0);
|
||||||
atan2(inF0, inF1);
|
float2 r010 = atan2(inF0, inF1);
|
||||||
ceil(inF0);
|
float2 r011 = ceil(inF0);
|
||||||
clamp(inF0, inF1, inF2);
|
float2 r012 = clamp(inF0, inF1, inF2);
|
||||||
clip(inF0);
|
clip(inF0);
|
||||||
cos(inF0);
|
float2 r013 = cos(inF0);
|
||||||
cosh(inF0);
|
float2 r015 = cosh(inF0);
|
||||||
countbits(int2(7,3));
|
uint2 r016 = countbits(int2(7,3));
|
||||||
ddx(inF0);
|
float2 r017 = ddx(inF0);
|
||||||
ddx_coarse(inF0);
|
float2 r018 = ddx_coarse(inF0);
|
||||||
ddx_fine(inF0);
|
float2 r019 = ddx_fine(inF0);
|
||||||
ddy(inF0);
|
float2 r020 = ddy(inF0);
|
||||||
ddy_coarse(inF0);
|
float2 r021 = ddy_coarse(inF0);
|
||||||
ddy_fine(inF0);
|
float2 r022 = ddy_fine(inF0);
|
||||||
degrees(inF0);
|
float2 r023 = degrees(inF0);
|
||||||
distance(inF0, inF1);
|
|
||||||
dot(inF0, inF1);
|
|
||||||
// EvaluateAttributeAtCentroid(inF0);
|
// EvaluateAttributeAtCentroid(inF0);
|
||||||
// EvaluateAttributeAtSample(inF0, 0);
|
// EvaluateAttributeAtSample(inF0, 0);
|
||||||
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
||||||
exp(inF0);
|
float r026 = distance(inF0, inF1);
|
||||||
exp2(inF0);
|
float r027 = dot(inF0, inF1);
|
||||||
faceforward(inF0, inF1, inF2);
|
// EvaluateAttributeAtCentroid(inF0);
|
||||||
firstbithigh(7);
|
// EvaluateAttributeAtSample(inF0, 0);
|
||||||
firstbitlow(7);
|
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
||||||
floor(inF0);
|
float2 r028 = exp(inF0);
|
||||||
|
float2 r029 = exp2(inF0);
|
||||||
|
float2 r030 = faceforward(inF0, inF1, inF2);
|
||||||
|
uint2 r031 = firstbithigh(uint2(7,8));
|
||||||
|
uint2 r032 = firstbitlow(uint2(7,8));
|
||||||
|
float2 r033 = floor(inF0);
|
||||||
// TODO: fma(inD0, inD1, inD2);
|
// TODO: fma(inD0, inD1, inD2);
|
||||||
fmod(inF0, inF1);
|
float2 r035 = fmod(inF0, inF1);
|
||||||
frac(inF0);
|
float2 r036 = frac(inF0);
|
||||||
frexp(inF0, inF1);
|
float2 r037 = frexp(inF0, inF1);
|
||||||
fwidth(inF0);
|
float2 r038 = fwidth(inF0);
|
||||||
isinf(inF0);
|
bool2 r039 = isinf(inF0);
|
||||||
isnan(inF0);
|
bool2 r040 = isnan(inF0);
|
||||||
ldexp(inF0, inF1);
|
float2 r041 = ldexp(inF0, inF1);
|
||||||
length(inF0);
|
float2 r039a = lerp(inF0, inF1, inF2);
|
||||||
log(inF0);
|
float r042 = length(inF0);
|
||||||
log10(inF0);
|
float2 r043 = log(inF0);
|
||||||
log2(inF0);
|
float2 r044 = log10(inF0);
|
||||||
max(inF0, inF1);
|
float2 r045 = log2(inF0);
|
||||||
min(inF0, inF1);
|
float2 r046 = max(inF0, inF1);
|
||||||
normalize(inF0);
|
float2 r047 = min(inF0, inF1);
|
||||||
pow(inF0, inF1);
|
float2 r048 = normalize(inF0);
|
||||||
radians(inF0);
|
float2 r049 = pow(inF0, inF1);
|
||||||
rcp(inF0);
|
float2 r050 = radians(inF0);
|
||||||
reflect(inF0, inF1);
|
float2 r051 = rcp(inF0);
|
||||||
refract(inF0, inF1, 2.0);
|
float2 r052 = reflect(inF0, inF1);
|
||||||
reversebits(int2(1,2));
|
float2 r053 = refract(inF0, inF1, 2.0);
|
||||||
round(inF0);
|
uint2 r054 = reversebits(uint2(1,2));
|
||||||
rsqrt(inF0);
|
float2 r055 = round(inF0);
|
||||||
saturate(inF0);
|
float2 r056 = rsqrt(inF0);
|
||||||
sign(inF0);
|
float2 r057 = saturate(inF0);
|
||||||
sin(inF0);
|
float2 r058 = sign(inF0);
|
||||||
|
float2 r059 = sin(inF0);
|
||||||
sincos(inF0, inF1, inF2);
|
sincos(inF0, inF1, inF2);
|
||||||
sinh(inF0);
|
float2 r060 = sinh(inF0);
|
||||||
smoothstep(inF0, inF1, inF2);
|
float2 r061 = smoothstep(inF0, inF1, inF2);
|
||||||
sqrt(inF0);
|
float2 r062 = sqrt(inF0);
|
||||||
step(inF0, inF1);
|
float2 r063 = step(inF0, inF1);
|
||||||
tan(inF0);
|
float2 r064 = tan(inF0);
|
||||||
tanh(inF0);
|
float2 r065 = tanh(inF0);
|
||||||
// TODO: sampler intrinsics, when we can declare the types.
|
// TODO: sampler intrinsics, when we can declare the types.
|
||||||
trunc(inF0);
|
float2 r066 = trunc(inF0);
|
||||||
|
|
||||||
// TODO: ... add when float1 prototypes are generated
|
// TODO: ... add when float1 prototypes are generated
|
||||||
return float2(1,2);
|
return float2(1,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1)
|
float3 PixelShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1)
|
||||||
{
|
{
|
||||||
uint3 out_u3;
|
uint3 out_u3;
|
||||||
|
|
||||||
all(inF0);
|
bool r000 = all(inF0);
|
||||||
abs(inF0);
|
float3 r001 = abs(inF0);
|
||||||
acos(inF0);
|
float3 r002 = acos(inF0);
|
||||||
any(inF0);
|
bool r003 = any(inF0);
|
||||||
asin(inF0);
|
float3 r004 = asin(inF0);
|
||||||
asint(inF0);
|
int3 r005 = asint(inF0);
|
||||||
asuint(inF0);
|
uint3 r006 = asuint(inF0);
|
||||||
asfloat(inU0);
|
float3 r007 = asfloat(inU0);
|
||||||
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
||||||
atan(inF0);
|
float3 r009 = atan(inF0);
|
||||||
atan2(inF0, inF1);
|
float3 r010 = atan2(inF0, inF1);
|
||||||
ceil(inF0);
|
float3 r011 = ceil(inF0);
|
||||||
clamp(inF0, inF1, inF2);
|
float3 r012 = clamp(inF0, inF1, inF2);
|
||||||
clip(inF0);
|
clip(inF0);
|
||||||
cos(inF0);
|
float3 r013 = cos(inF0);
|
||||||
cosh(inF0);
|
float3 r014 = cosh(inF0);
|
||||||
countbits(int3(7,3,5));
|
uint3 r015 = countbits(uint3(7,3,5));
|
||||||
cross(inF0, inF1);
|
float3 r016 = cross(inF0, inF1);
|
||||||
ddx(inF0);
|
float3 r017 = ddx(inF0);
|
||||||
ddx_coarse(inF0);
|
float3 r018 = ddx_coarse(inF0);
|
||||||
ddx_fine(inF0);
|
float3 r019 = ddx_fine(inF0);
|
||||||
ddy(inF0);
|
float3 r020 = ddy(inF0);
|
||||||
ddy_coarse(inF0);
|
float3 r021 = ddy_coarse(inF0);
|
||||||
ddy_fine(inF0);
|
float3 r022 = ddy_fine(inF0);
|
||||||
degrees(inF0);
|
float3 r023 = degrees(inF0);
|
||||||
distance(inF0, inF1);
|
float r024 = distance(inF0, inF1);
|
||||||
dot(inF0, inF1);
|
float r025 = dot(inF0, inF1);
|
||||||
// EvaluateAttributeAtCentroid(inF0);
|
// EvaluateAttributeAtCentroid(inF0);
|
||||||
// EvaluateAttributeAtSample(inF0, 0);
|
// EvaluateAttributeAtSample(inF0, 0);
|
||||||
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
||||||
exp(inF0);
|
float3 r029 = exp(inF0);
|
||||||
exp2(inF0);
|
float3 r030 = exp2(inF0);
|
||||||
faceforward(inF0, inF1, inF2);
|
float3 r031 = faceforward(inF0, inF1, inF2);
|
||||||
firstbithigh(7);
|
uint3 r032 = firstbithigh(uint3(2,3,4));
|
||||||
firstbitlow(7);
|
uint3 r033 = firstbitlow(uint3(2,3,4));
|
||||||
floor(inF0);
|
float3 r034 = floor(inF0);
|
||||||
// TODO: fma(inD0, inD1, inD2);
|
// TODO: fma(inD0, inD1, inD2);
|
||||||
fmod(inF0, inF1);
|
float3 r036 = fmod(inF0, inF1);
|
||||||
frac(inF0);
|
float3 r037 = frac(inF0);
|
||||||
frexp(inF0, inF1);
|
float3 r038 = frexp(inF0, inF1);
|
||||||
fwidth(inF0);
|
float3 r039 = fwidth(inF0);
|
||||||
isinf(inF0);
|
bool3 r040 = isinf(inF0);
|
||||||
isnan(inF0);
|
bool3 r041 = isnan(inF0);
|
||||||
ldexp(inF0, inF1);
|
float3 r042 = ldexp(inF0, inF1);
|
||||||
length(inF0);
|
float3 r039a = lerp(inF0, inF1, inF2);
|
||||||
log(inF0);
|
float r043 = length(inF0);
|
||||||
log10(inF0);
|
float3 r044 = log(inF0);
|
||||||
log2(inF0);
|
float3 r045 = log10(inF0);
|
||||||
max(inF0, inF1);
|
float3 r046 = log2(inF0);
|
||||||
min(inF0, inF1);
|
float3 r047 = max(inF0, inF1);
|
||||||
normalize(inF0);
|
float3 r048 = min(inF0, inF1);
|
||||||
pow(inF0, inF1);
|
float3 r049 = normalize(inF0);
|
||||||
radians(inF0);
|
float3 r050 = pow(inF0, inF1);
|
||||||
rcp(inF0);
|
float3 r051 = radians(inF0);
|
||||||
reflect(inF0, inF1);
|
float3 r052 = rcp(inF0);
|
||||||
refract(inF0, inF1, 2.0);
|
float3 r053 = reflect(inF0, inF1);
|
||||||
reversebits(int3(1,2,3));
|
float3 r054 = refract(inF0, inF1, 2.0);
|
||||||
round(inF0);
|
uint3 r055 = reversebits(uint3(1,2,3));
|
||||||
rsqrt(inF0);
|
float3 r056 = round(inF0);
|
||||||
saturate(inF0);
|
float3 r057 = rsqrt(inF0);
|
||||||
sign(inF0);
|
float3 r058 = saturate(inF0);
|
||||||
sin(inF0);
|
float3 r059 = sign(inF0);
|
||||||
|
float3 r060 = sin(inF0);
|
||||||
sincos(inF0, inF1, inF2);
|
sincos(inF0, inF1, inF2);
|
||||||
sinh(inF0);
|
float3 r061 = sinh(inF0);
|
||||||
smoothstep(inF0, inF1, inF2);
|
float3 r062 = smoothstep(inF0, inF1, inF2);
|
||||||
sqrt(inF0);
|
float3 r063 = sqrt(inF0);
|
||||||
step(inF0, inF1);
|
float3 r064 = step(inF0, inF1);
|
||||||
tan(inF0);
|
float3 r065 = tan(inF0);
|
||||||
tanh(inF0);
|
float3 r066 = tanh(inF0);
|
||||||
// TODO: sampler intrinsics, when we can declare the types.
|
// TODO: sampler intrinsics, when we can declare the types.
|
||||||
trunc(inF0);
|
float3 r067 = trunc(inF0);
|
||||||
|
|
||||||
// TODO: ... add when float1 prototypes are generated
|
// TODO: ... add when float1 prototypes are generated
|
||||||
return float3(1,2,3);
|
return float3(1,2,3);
|
||||||
@ -253,77 +259,78 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, ui
|
|||||||
{
|
{
|
||||||
uint4 out_u4;
|
uint4 out_u4;
|
||||||
|
|
||||||
all(inF0);
|
bool r000 = all(inF0);
|
||||||
abs(inF0);
|
float4 r001 = abs(inF0);
|
||||||
acos(inF0);
|
float4 r002 = acos(inF0);
|
||||||
any(inF0);
|
bool r003 = any(inF0);
|
||||||
asin(inF0);
|
float4 r004 = asin(inF0);
|
||||||
asint(inF0);
|
int4 r005 = asint(inF0);
|
||||||
asuint(inF0);
|
uint4 r006 = asuint(inF0);
|
||||||
asfloat(inU0);
|
float4 r007 = asfloat(inU0);
|
||||||
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
||||||
atan(inF0);
|
float4 r009 = atan(inF0);
|
||||||
atan2(inF0, inF1);
|
float4 r010 = atan2(inF0, inF1);
|
||||||
ceil(inF0);
|
float4 r011 = ceil(inF0);
|
||||||
clamp(inF0, inF1, inF2);
|
float4 r012 = clamp(inF0, inF1, inF2);
|
||||||
clip(inF0);
|
clip(inF0);
|
||||||
cos(inF0);
|
float4 r013 = cos(inF0);
|
||||||
cosh(inF0);
|
float4 r014 = cosh(inF0);
|
||||||
countbits(int4(7,3,5,2));
|
uint4 r015 = countbits(uint4(7,3,5,2));
|
||||||
ddx(inF0);
|
float4 r016 = ddx(inF0);
|
||||||
ddx_coarse(inF0);
|
float4 r017 = ddx_coarse(inF0);
|
||||||
ddx_fine(inF0);
|
float4 r018 = ddx_fine(inF0);
|
||||||
ddy(inF0);
|
float4 r019 = ddy(inF0);
|
||||||
ddy_coarse(inF0);
|
float4 r020 = ddy_coarse(inF0);
|
||||||
ddy_fine(inF0);
|
float4 r021 = ddy_fine(inF0);
|
||||||
degrees(inF0);
|
float4 r022 = degrees(inF0);
|
||||||
distance(inF0, inF1);
|
float r023 = distance(inF0, inF1);
|
||||||
dot(inF0, inF1);
|
float r024 = dot(inF0, inF1);
|
||||||
dst(inF0, inF1);
|
float4 r025 = dst(inF0, inF1);
|
||||||
// EvaluateAttributeAtCentroid(inF0);
|
// EvaluateAttributeAtCentroid(inF0);
|
||||||
// EvaluateAttributeAtSample(inF0, 0);
|
// EvaluateAttributeAtSample(inF0, 0);
|
||||||
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
||||||
exp(inF0);
|
float4 r029 = exp(inF0);
|
||||||
exp2(inF0);
|
float4 r030 = exp2(inF0);
|
||||||
faceforward(inF0, inF1, inF2);
|
float4 r031 = faceforward(inF0, inF1, inF2);
|
||||||
firstbithigh(7);
|
uint4 r032 = firstbithigh(uint4(7,8,9,10));
|
||||||
firstbitlow(7);
|
uint4 r033 = firstbitlow(uint4(7,8,9,10));
|
||||||
floor(inF0);
|
float4 r034 = floor(inF0);
|
||||||
// TODO: fma(inD0, inD1, inD2);
|
// TODO: fma(inD0, inD1, inD2);
|
||||||
fmod(inF0, inF1);
|
float4 r036 = fmod(inF0, inF1);
|
||||||
frac(inF0);
|
float4 r037 = frac(inF0);
|
||||||
frexp(inF0, inF1);
|
float4 r038 = frexp(inF0, inF1);
|
||||||
fwidth(inF0);
|
float4 r039 = fwidth(inF0);
|
||||||
isinf(inF0);
|
bool4 r040 = isinf(inF0);
|
||||||
isnan(inF0);
|
bool4 r041 = isnan(inF0);
|
||||||
ldexp(inF0, inF1);
|
float4 r042 = ldexp(inF0, inF1);
|
||||||
length(inF0);
|
float4 r039a = lerp(inF0, inF1, inF2);
|
||||||
log(inF0);
|
float r043 = length(inF0);
|
||||||
log10(inF0);
|
float4 r044 = log(inF0);
|
||||||
log2(inF0);
|
float4 r045 = log10(inF0);
|
||||||
max(inF0, inF1);
|
float4 r046 = log2(inF0);
|
||||||
min(inF0, inF1);
|
float4 r047 = max(inF0, inF1);
|
||||||
normalize(inF0);
|
float4 r048 = min(inF0, inF1);
|
||||||
pow(inF0, inF1);
|
float4 r049 = normalize(inF0);
|
||||||
radians(inF0);
|
float4 r050 = pow(inF0, inF1);
|
||||||
rcp(inF0);
|
float4 r051 = radians(inF0);
|
||||||
reflect(inF0, inF1);
|
float4 r052 = rcp(inF0);
|
||||||
refract(inF0, inF1, 2.0);
|
float4 r053 = reflect(inF0, inF1);
|
||||||
reversebits(int4(1,2,3,4));
|
float4 r054 = refract(inF0, inF1, 2.0);
|
||||||
round(inF0);
|
uint4 r055 = reversebits(uint4(1,2,3,4));
|
||||||
rsqrt(inF0);
|
float4 r056 = round(inF0);
|
||||||
saturate(inF0);
|
float4 r057 = rsqrt(inF0);
|
||||||
sign(inF0);
|
float4 r058 = saturate(inF0);
|
||||||
sin(inF0);
|
float4 r059 = sign(inF0);
|
||||||
|
float4 r060 = sin(inF0);
|
||||||
sincos(inF0, inF1, inF2);
|
sincos(inF0, inF1, inF2);
|
||||||
sinh(inF0);
|
float4 r061 = sinh(inF0);
|
||||||
smoothstep(inF0, inF1, inF2);
|
float4 r062 = smoothstep(inF0, inF1, inF2);
|
||||||
sqrt(inF0);
|
float4 r063 = sqrt(inF0);
|
||||||
step(inF0, inF1);
|
float4 r064 = step(inF0, inF1);
|
||||||
tan(inF0);
|
float4 r065 = tan(inF0);
|
||||||
tanh(inF0);
|
float4 r066 = tanh(inF0);
|
||||||
// TODO: sampler intrinsics, when we can declare the types.
|
// TODO: sampler intrinsics, when we can declare the types.
|
||||||
trunc(inF0);
|
float4 r067 = trunc(inF0);
|
||||||
|
|
||||||
// TODO: ... add when float1 prototypes are generated
|
// TODO: ... add when float1 prototypes are generated
|
||||||
return float4(1,2,3,4);
|
return float4(1,2,3,4);
|
||||||
@ -335,83 +342,82 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, ui
|
|||||||
// asuint(inF0); \
|
// asuint(inF0); \
|
||||||
|
|
||||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||||
#define MATFNS() \
|
#define MATFNS(MT) \
|
||||||
all(inF0); \
|
bool r000 = all(inF0); \
|
||||||
abs(inF0); \
|
MT r001 = abs(inF0); \
|
||||||
acos(inF0); \
|
acos(inF0); \
|
||||||
any(inF0); \
|
bool r003 = any(inF0); \
|
||||||
asin(inF0); \
|
MT r004 = asin(inF0); \
|
||||||
atan(inF0); \
|
MT r005 = atan(inF0); \
|
||||||
atan2(inF0, inF1); \
|
MT r006 = atan2(inF0, inF1); \
|
||||||
ceil(inF0); \
|
MT r007 = ceil(inF0); \
|
||||||
clip(inF0); \
|
clip(inF0); \
|
||||||
clamp(inF0, inF1, inF2); \
|
MT r008 = clamp(inF0, inF1, inF2); \
|
||||||
cos(inF0); \
|
MT r009 = cos(inF0); \
|
||||||
cosh(inF0); \
|
MT r010 = cosh(inF0); \
|
||||||
ddx(inF0); \
|
MT r011 = ddx(inF0); \
|
||||||
ddx_coarse(inF0); \
|
MT r012 = ddx_coarse(inF0); \
|
||||||
ddx_fine(inF0); \
|
MT r013 = ddx_fine(inF0); \
|
||||||
ddy(inF0); \
|
MT r014 = ddy(inF0); \
|
||||||
ddy_coarse(inF0); \
|
MT r015 = ddy_coarse(inF0); \
|
||||||
ddy_fine(inF0); \
|
MT r016 = ddy_fine(inF0); \
|
||||||
degrees(inF0); \
|
MT r017 = degrees(inF0); \
|
||||||
determinant(inF0); \
|
float r018 = determinant(inF0); \
|
||||||
exp(inF0); \
|
MT r019 = exp(inF0); \
|
||||||
exp2(inF0); \
|
MT R020 = exp2(inF0); \
|
||||||
firstbithigh(7); \
|
MT r021 = floor(inF0); \
|
||||||
firstbitlow(7); \
|
MT r022 = fmod(inF0, inF1); \
|
||||||
floor(inF0); \
|
MT r023 = frac(inF0); \
|
||||||
fmod(inF0, inF1); \
|
MT r024 = frexp(inF0, inF1); \
|
||||||
frac(inF0); \
|
MT r025 = fwidth(inF0); \
|
||||||
frexp(inF0, inF1); \
|
MT r026 = ldexp(inF0, inF1); \
|
||||||
fwidth(inF0); \
|
MT r026a = lerp(inF0, inF1, inF2); \
|
||||||
ldexp(inF0, inF1); \
|
MT r027 = log(inF0); \
|
||||||
log(inF0); \
|
MT r028 = log10(inF0); \
|
||||||
log10(inF0); \
|
MT r029 = log2(inF0); \
|
||||||
log2(inF0); \
|
MT r030 = max(inF0, inF1); \
|
||||||
max(inF0, inF1); \
|
MT r031 = min(inF0, inF1); \
|
||||||
min(inF0, inF1); \
|
MT r032 = pow(inF0, inF1); \
|
||||||
pow(inF0, inF1); \
|
MT r033 = radians(inF0); \
|
||||||
radians(inF0); \
|
MT r034 = round(inF0); \
|
||||||
round(inF0); \
|
MT r035 = rsqrt(inF0); \
|
||||||
rsqrt(inF0); \
|
MT r036 = saturate(inF0); \
|
||||||
saturate(inF0); \
|
MT r037 = sign(inF0); \
|
||||||
sign(inF0); \
|
MT r038 = sin(inF0); \
|
||||||
sin(inF0); \
|
sincos(inF0, inF1, inF2); \
|
||||||
sincos(inF0, inF1, inF2); \
|
MT r039 = sinh(inF0); \
|
||||||
sinh(inF0); \
|
MT r049 = smoothstep(inF0, inF1, inF2); \
|
||||||
smoothstep(inF0, inF1, inF2); \
|
MT r041 = sqrt(inF0); \
|
||||||
sqrt(inF0); \
|
MT r042 = step(inF0, inF1); \
|
||||||
step(inF0, inF1); \
|
MT r043 = tan(inF0); \
|
||||||
tan(inF0); \
|
MT r044 = tanh(inF0); \
|
||||||
tanh(inF0); \
|
transpose(inF0); \
|
||||||
transpose(inF0); \
|
MT r046 = trunc(inF0);
|
||||||
trunc(inF0);
|
|
||||||
|
|
||||||
// TODO: turn on non-square matrix tests when protos are available.
|
// TODO: turn on non-square matrix tests when protos are available.
|
||||||
|
|
||||||
float2x2 PixelShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
|
float2x2 PixelShaderFunction2x2(float2x2 inF0, float2x2 inF1, float2x2 inF2)
|
||||||
{
|
{
|
||||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||||
MATFNS()
|
MATFNS(float2x2);
|
||||||
|
|
||||||
// TODO: ... add when float1 prototypes are generated
|
// TODO: ... add when float1 prototypes are generated
|
||||||
return float2x2(2,2,2,2);
|
return float2x2(2,2,2,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
float3x3 PixelShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
|
float3x3 PixelShaderFunction3x3(float3x3 inF0, float3x3 inF1, float3x3 inF2)
|
||||||
{
|
{
|
||||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||||
MATFNS()
|
MATFNS(float3x3);
|
||||||
|
|
||||||
// TODO: ... add when float1 prototypes are generated
|
// TODO: ... add when float1 prototypes are generated
|
||||||
return float3x3(3,3,3,3,3,3,3,3,3);
|
return float3x3(3,3,3,3,3,3,3,3,3);
|
||||||
}
|
}
|
||||||
|
|
||||||
float4x4 PixelShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
|
float4x4 PixelShaderFunction4x4(float4x4 inF0, float4x4 inF1, float4x4 inF2)
|
||||||
{
|
{
|
||||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||||
MATFNS()
|
MATFNS(float4x4);
|
||||||
|
|
||||||
// TODO: ... add when float1 prototypes are generated
|
// 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);
|
return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
|
||||||
@ -429,23 +435,49 @@ float4x4 PixelShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
|
|||||||
MT r8 = mul(inFM0, inFM1);
|
MT r8 = mul(inFM0, inFM1);
|
||||||
|
|
||||||
|
|
||||||
void TestGenMul(float inF0, float inF1,
|
void TestGenMul2(float inF0, float inF1,
|
||||||
float2 inFV0, float2 inFV1,
|
float2 inFV0, float2 inFV1,
|
||||||
float2x2 inFM0, float2x2 inFM1)
|
float2x2 inFM0, float2x2 inFM1)
|
||||||
{
|
{
|
||||||
TESTGENMUL(float, float2, float2x2);
|
TESTGENMUL(float, float2, float2x2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestGenMul(float inF0, float inF1,
|
void TestGenMul3(float inF0, float inF1,
|
||||||
float3 inFV0, float3 inFV1,
|
float3 inFV0, float3 inFV1,
|
||||||
float3x3 inFM0, float3x3 inFM1)
|
float3x3 inFM0, float3x3 inFM1)
|
||||||
{
|
{
|
||||||
TESTGENMUL(float, float3, float3x3);
|
TESTGENMUL(float, float3, float3x3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestGenMul(float inF0, float inF1,
|
void TestGenMul4(float inF0, float inF1,
|
||||||
float4 inFV0, float4 inFV1,
|
float4 inFV0, float4 inFV1,
|
||||||
float4x4 inFM0, float4x4 inFM1)
|
float4x4 inFM0, float4x4 inFM1)
|
||||||
{
|
{
|
||||||
TESTGENMUL(float, float4, float4x4);
|
TESTGENMUL(float, float4, float4x4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Test some non-square mats
|
||||||
|
void TestGenMulNxM(float inF0, float inF1,
|
||||||
|
float2 inFV2, float3 inFV3,
|
||||||
|
float2x3 inFM2x3, float3x2 inFM3x2,
|
||||||
|
float3x3 inFM3x3, float3x4 inFM3x4,
|
||||||
|
float2x4 inFM2x4)
|
||||||
|
{
|
||||||
|
float r00 = mul(inF0, inF1); // S=S*S
|
||||||
|
float2 r01 = mul(inFV2, inF0); // V=V*S
|
||||||
|
float3 r02 = mul(inFV3, inF0); // V=V*S
|
||||||
|
float2 r03 = mul(inF0, inFV2); // V=S*V
|
||||||
|
float3 r04 = mul(inF0, inFV3); // V=S*V
|
||||||
|
float r05 = mul(inFV2, inFV2); // S=V*V
|
||||||
|
float r06 = mul(inFV3, inFV3); // S=V*V
|
||||||
|
float3 r07 = mul(inFV2, inFM2x3); // V=V*M (return V dim is Mcols)
|
||||||
|
float2 r08 = mul(inFV3, inFM3x2); // V=V*M (return V dim is Mcols)
|
||||||
|
float2 r09 = mul(inFM2x3, inFV3); // V=M*V (return V dim is Mrows)
|
||||||
|
float3 r10 = mul(inFM3x2, inFV2); // V=M*V (return V dim is Mrows)
|
||||||
|
float2x3 r11 = mul(inFM2x3, inF0);
|
||||||
|
float3x2 r12 = mul(inFM3x2, inF0);
|
||||||
|
float2x2 r13 = mul(inFM2x3, inFM3x2);
|
||||||
|
float2x3 r14 = mul(inFM2x3, inFM3x3);
|
||||||
|
float2x4 r15 = mul(inFM2x3, inFM3x4);
|
||||||
|
float3x4 r16 = mul(inFM3x2, inFM2x4);
|
||||||
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
float ComputeShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
float ComputeShaderFunctionS(float inF0, float inF1, float inF2, int inI0)
|
||||||
{
|
{
|
||||||
uint out_u1;
|
uint out_u1;
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ float ComputeShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
|||||||
f16tof32(inF0); // expected error: only integer inputs
|
f16tof32(inF0); // expected error: only integer inputs
|
||||||
firstbithigh(inF0); // expected error: only integer inputs
|
firstbithigh(inF0); // expected error: only integer inputs
|
||||||
firstbitlow(inF0); // expected error: only integer inputs
|
firstbitlow(inF0); // expected error: only integer inputs
|
||||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||||
fwidth(inF0); // expected error: only valid in pixel stage
|
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); // expected error: only valid in pixel stage
|
||||||
InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
||||||
@ -53,7 +53,7 @@ float ComputeShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
|||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
float1 ComputeShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0)
|
float1 ComputeShaderFunction1(float1 inF0, float1 inF1, float1 inF2, int1 inI0)
|
||||||
{
|
{
|
||||||
// TODO: ... add when float1 prototypes are generated
|
// TODO: ... add when float1 prototypes are generated
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ float1 ComputeShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0)
|
|||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
float2 ComputeShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
|
float2 ComputeShaderFunction2(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
|
||||||
{
|
{
|
||||||
uint2 out_u2;
|
uint2 out_u2;
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ float2 ComputeShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
|
|||||||
f16tof32(inF0); // expected error: only integer inputs
|
f16tof32(inF0); // expected error: only integer inputs
|
||||||
firstbithigh(inF0); // expected error: only integer inputs
|
firstbithigh(inF0); // expected error: only integer inputs
|
||||||
firstbitlow(inF0); // expected error: only integer inputs
|
firstbitlow(inF0); // expected error: only integer inputs
|
||||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||||
fwidth(inF0); // expected error: only valid in pixel stage
|
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); // expected error: only valid in pixel stage
|
||||||
InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
||||||
@ -109,7 +109,7 @@ float2 ComputeShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
|
|||||||
return float2(1,2);
|
return float2(1,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
float3 ComputeShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0)
|
float3 ComputeShaderFunction3(float3 inF0, float3 inF1, float3 inF2, int3 inI0)
|
||||||
{
|
{
|
||||||
uint3 out_u3;
|
uint3 out_u3;
|
||||||
|
|
||||||
@ -129,7 +129,7 @@ float3 ComputeShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0)
|
|||||||
f16tof32(inF0); // expected error: only integer inputs
|
f16tof32(inF0); // expected error: only integer inputs
|
||||||
firstbithigh(inF0); // expected error: only integer inputs
|
firstbithigh(inF0); // expected error: only integer inputs
|
||||||
firstbitlow(inF0); // expected error: only integer inputs
|
firstbitlow(inF0); // expected error: only integer inputs
|
||||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||||
fwidth(inF0); // expected error: only valid in pixel stage
|
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); // expected error: only valid in pixel stage
|
||||||
InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
||||||
@ -174,7 +174,7 @@ float4 ComputeShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0)
|
|||||||
f16tof32(inF0); // expected error: only integer inputs
|
f16tof32(inF0); // expected error: only integer inputs
|
||||||
firstbithigh(inF0); // expected error: only integer inputs
|
firstbithigh(inF0); // expected error: only integer inputs
|
||||||
firstbitlow(inF0); // expected error: only integer inputs
|
firstbitlow(inF0); // expected error: only integer inputs
|
||||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||||
fwidth(inF0); // expected error: only valid in pixel stage
|
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); // expected error: only valid in pixel stage
|
||||||
InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
float PixelShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
float PixelShaderFunctionS(float inF0, float inF1, float inF2, int inI0)
|
||||||
{
|
{
|
||||||
// AllMemoryBarrier(); // TODO: expected error: invalid in fragment stage
|
// AllMemoryBarrier(); // TODO: expected error: invalid in fragment stage
|
||||||
// AllMemoryBarrierWithGroupSync(); // TODO: expected error: invalid in fragment stage
|
// AllMemoryBarrierWithGroupSync(); // TODO: expected error: invalid in fragment stage
|
||||||
@ -12,7 +12,7 @@ float PixelShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
|||||||
f16tof32(inF0); // expected error: only integer inputs
|
f16tof32(inF0); // expected error: only integer inputs
|
||||||
firstbithigh(inF0); // expected error: only integer inputs
|
firstbithigh(inF0); // expected error: only integer inputs
|
||||||
firstbitlow(inF0); // expected error: only integer inputs
|
firstbitlow(inF0); // expected error: only integer inputs
|
||||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||||
// InterlockedAdd(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator
|
// 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
|
// 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
|
// InterlockedMin(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator
|
||||||
@ -32,7 +32,7 @@ float PixelShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
|||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
float1 PixelShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0)
|
float1 PixelShaderFunction1(float1 inF0, float1 inF1, float1 inF2, int1 inI0)
|
||||||
{
|
{
|
||||||
// TODO: ... add when float1 prototypes are generated
|
// TODO: ... add when float1 prototypes are generated
|
||||||
|
|
||||||
@ -41,7 +41,7 @@ float1 PixelShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0)
|
|||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
float2 PixelShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
|
float2 PixelShaderFunction2(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
|
||||||
{
|
{
|
||||||
asdouble(inF0, inF1); // expected error: only integer inputs
|
asdouble(inF0, inF1); // expected error: only integer inputs
|
||||||
CheckAccessFullyMapped(inF0); // expected error: only valid on scalars
|
CheckAccessFullyMapped(inF0); // expected error: only valid on scalars
|
||||||
@ -52,14 +52,14 @@ float2 PixelShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
|
|||||||
f16tof32(inF0); // expected error: only integer inputs
|
f16tof32(inF0); // expected error: only integer inputs
|
||||||
firstbithigh(inF0); // expected error: only integer inputs
|
firstbithigh(inF0); // expected error: only integer inputs
|
||||||
firstbitlow(inF0); // expected error: only integer inputs
|
firstbitlow(inF0); // expected error: only integer inputs
|
||||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||||
reversebits(inF0); // expected error: only integer inputs
|
reversebits(inF0); // expected error: only integer inputs
|
||||||
transpose(inF0); // expected error: only valid on mats
|
transpose(inF0); // expected error: only valid on mats
|
||||||
|
|
||||||
return float2(1,2);
|
return float2(1,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0)
|
float3 PixelShaderFunction3(float3 inF0, float3 inF1, float3 inF2, int3 inI0)
|
||||||
{
|
{
|
||||||
CheckAccessFullyMapped(inF0); // expected error: only valid on scalars
|
CheckAccessFullyMapped(inF0); // expected error: only valid on scalars
|
||||||
countbits(inF0); // expected error: only integer inputs
|
countbits(inF0); // expected error: only integer inputs
|
||||||
@ -68,7 +68,7 @@ float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0)
|
|||||||
f16tof32(inF0); // expected error: only integer inputs
|
f16tof32(inF0); // expected error: only integer inputs
|
||||||
firstbithigh(inF0); // expected error: only integer inputs
|
firstbithigh(inF0); // expected error: only integer inputs
|
||||||
firstbitlow(inF0); // expected error: only integer inputs
|
firstbitlow(inF0); // expected error: only integer inputs
|
||||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||||
reversebits(inF0); // expected error: only integer inputs
|
reversebits(inF0); // expected error: only integer inputs
|
||||||
transpose(inF0); // expected error: only valid on mats
|
transpose(inF0); // expected error: only valid on mats
|
||||||
|
|
||||||
@ -85,7 +85,7 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0)
|
|||||||
f16tof32(inF0); // expected error: only integer inputs
|
f16tof32(inF0); // expected error: only integer inputs
|
||||||
firstbithigh(inF0); // expected error: only integer inputs
|
firstbithigh(inF0); // expected error: only integer inputs
|
||||||
firstbitlow(inF0); // expected error: only integer inputs
|
firstbitlow(inF0); // expected error: only integer inputs
|
||||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||||
reversebits(inF0); // expected error: only integer inputs
|
reversebits(inF0); // expected error: only integer inputs
|
||||||
transpose(inF0); // expected error: only valid on mats
|
transpose(inF0); // expected error: only valid on mats
|
||||||
|
|
||||||
@ -100,7 +100,6 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0)
|
|||||||
f16tof32(inF0); \
|
f16tof32(inF0); \
|
||||||
firstbithigh(inF0); \
|
firstbithigh(inF0); \
|
||||||
firstbitlow(inF0); \
|
firstbitlow(inF0); \
|
||||||
fma(inF0, inF1, inF2); \
|
|
||||||
reversebits(inF0); \
|
reversebits(inF0); \
|
||||||
length(inF0); \
|
length(inF0); \
|
||||||
noise(inF0); \
|
noise(inF0); \
|
||||||
@ -112,7 +111,7 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0)
|
|||||||
|
|
||||||
// TODO: turn on non-square matrix tests when protos are available.
|
// TODO: turn on non-square matrix tests when protos are available.
|
||||||
|
|
||||||
float2x2 PixelShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
|
float2x2 PixelShaderFunction2x2(float2x2 inF0, float2x2 inF1, float2x2 inF2)
|
||||||
{
|
{
|
||||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||||
MATFNS()
|
MATFNS()
|
||||||
@ -120,7 +119,7 @@ float2x2 PixelShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
|
|||||||
return float2x2(2,2,2,2);
|
return float2x2(2,2,2,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
float3x3 PixelShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
|
float3x3 PixelShaderFunction3x3(float3x3 inF0, float3x3 inF1, float3x3 inF2)
|
||||||
{
|
{
|
||||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||||
MATFNS()
|
MATFNS()
|
||||||
@ -128,7 +127,7 @@ float3x3 PixelShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
|
|||||||
return float3x3(3,3,3,3,3,3,3,3,3);
|
return float3x3(3,3,3,3,3,3,3,3,3);
|
||||||
}
|
}
|
||||||
|
|
||||||
float4x4 PixelShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
|
float4x4 PixelShaderFunction4x4(float4x4 inF0, float4x4 inF1, float4x4 inF2)
|
||||||
{
|
{
|
||||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||||
MATFNS()
|
MATFNS()
|
||||||
|
@ -11,7 +11,7 @@ uint4 gs_ua4;
|
|||||||
uint4 gs_ub4;
|
uint4 gs_ub4;
|
||||||
uint4 gs_uc4;
|
uint4 gs_uc4;
|
||||||
|
|
||||||
float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
float VertexShaderFunctionS(float inF0, float inF1, float inF2, int inI0)
|
||||||
{
|
{
|
||||||
uint out_u1;
|
uint out_u1;
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
|||||||
f16tof32(inF0); // expected error: only integer inputs
|
f16tof32(inF0); // expected error: only integer inputs
|
||||||
firstbithigh(inF0); // expected error: only integer inputs
|
firstbithigh(inF0); // expected error: only integer inputs
|
||||||
firstbitlow(inF0); // expected error: only integer inputs
|
firstbitlow(inF0); // expected error: only integer inputs
|
||||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||||
fwidth(inF0); // expected error: only valid in pixel stage
|
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); // expected error: only valid in pixel stage
|
||||||
InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
||||||
@ -71,7 +71,7 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
|||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
float1 VertexShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0)
|
float1 VertexShaderFunction1(float1 inF0, float1 inF1, float1 inF2, int1 inI0)
|
||||||
{
|
{
|
||||||
// TODO: ... add when float1 prototypes are generated
|
// TODO: ... add when float1 prototypes are generated
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ float1 VertexShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0)
|
|||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
|
float2 VertexShaderFunction2(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
|
||||||
{
|
{
|
||||||
uint2 out_u2;
|
uint2 out_u2;
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
|
|||||||
f16tof32(inF0); // expected error: only integer inputs
|
f16tof32(inF0); // expected error: only integer inputs
|
||||||
firstbithigh(inF0); // expected error: only integer inputs
|
firstbithigh(inF0); // expected error: only integer inputs
|
||||||
firstbitlow(inF0); // expected error: only integer inputs
|
firstbitlow(inF0); // expected error: only integer inputs
|
||||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||||
fwidth(inF0); // expected error: only valid in pixel stage
|
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); // expected error: only valid in pixel stage
|
||||||
InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
||||||
@ -127,7 +127,7 @@ float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
|
|||||||
return float2(1,2);
|
return float2(1,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0)
|
float3 VertexShaderFunction3(float3 inF0, float3 inF1, float3 inF2, int3 inI0)
|
||||||
{
|
{
|
||||||
uint3 out_u3;
|
uint3 out_u3;
|
||||||
|
|
||||||
@ -147,7 +147,7 @@ float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0)
|
|||||||
f16tof32(inF0); // expected error: only integer inputs
|
f16tof32(inF0); // expected error: only integer inputs
|
||||||
firstbithigh(inF0); // expected error: only integer inputs
|
firstbithigh(inF0); // expected error: only integer inputs
|
||||||
firstbitlow(inF0); // expected error: only integer inputs
|
firstbitlow(inF0); // expected error: only integer inputs
|
||||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||||
fwidth(inF0); // expected error: only valid in pixel stage
|
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); // expected error: only valid in pixel stage
|
||||||
InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
||||||
@ -192,7 +192,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0)
|
|||||||
f16tof32(inF0); // expected error: only integer inputs
|
f16tof32(inF0); // expected error: only integer inputs
|
||||||
firstbithigh(inF0); // expected error: only integer inputs
|
firstbithigh(inF0); // expected error: only integer inputs
|
||||||
firstbitlow(inF0); // expected error: only integer inputs
|
firstbitlow(inF0); // expected error: only integer inputs
|
||||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||||
fwidth(inF0); // expected error: only valid in pixel stage
|
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); // expected error: only valid in pixel stage
|
||||||
InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
||||||
@ -234,7 +234,6 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0)
|
|||||||
f16tof32(inF0); \
|
f16tof32(inF0); \
|
||||||
firstbithigh(inF0); \
|
firstbithigh(inF0); \
|
||||||
firstbitlow(inF0); \
|
firstbitlow(inF0); \
|
||||||
fma(inF0, inF1, inF2); \
|
|
||||||
fwidth(inF0); \
|
fwidth(inF0); \
|
||||||
noise(inF0); \
|
noise(inF0); \
|
||||||
reversebits(inF0); \
|
reversebits(inF0); \
|
||||||
@ -248,7 +247,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0)
|
|||||||
|
|
||||||
// TODO: turn on non-square matrix tests when protos are available.
|
// TODO: turn on non-square matrix tests when protos are available.
|
||||||
|
|
||||||
float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
|
float2x2 VertexShaderFunction2x2(float2x2 inF0, float2x2 inF1, float2x2 inF2)
|
||||||
{
|
{
|
||||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||||
MATFNS()
|
MATFNS()
|
||||||
@ -256,7 +255,7 @@ float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
|
|||||||
return float2x2(2,2,2,2);
|
return float2x2(2,2,2,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
|
float3x3 VertexShaderFunction3x3(float3x3 inF0, float3x3 inF1, float3x3 inF2)
|
||||||
{
|
{
|
||||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||||
MATFNS()
|
MATFNS()
|
||||||
@ -264,7 +263,7 @@ float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
|
|||||||
return float3x3(3,3,3,3,3,3,3,3,3);
|
return float3x3(3,3,3,3,3,3,3,3,3);
|
||||||
}
|
}
|
||||||
|
|
||||||
float4x4 VertexShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
|
float4x4 VertexShaderFunction4x4(float4x4 inF0, float4x4 inF1, float4x4 inF2)
|
||||||
{
|
{
|
||||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||||
MATFNS()
|
MATFNS()
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
float VertexShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint inU1)
|
float VertexShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1)
|
||||||
{
|
{
|
||||||
all(inF0);
|
all(inF0);
|
||||||
abs(inF0);
|
abs(inF0);
|
||||||
@ -32,6 +32,7 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint i
|
|||||||
isinf(inF0);
|
isinf(inF0);
|
||||||
isnan(inF0);
|
isnan(inF0);
|
||||||
ldexp(inF0, inF1);
|
ldexp(inF0, inF1);
|
||||||
|
lerp(inF0, inF1, inF2);
|
||||||
log(inF0);
|
log(inF0);
|
||||||
log10(inF0);
|
log10(inF0);
|
||||||
log2(inF0);
|
log2(inF0);
|
||||||
@ -59,13 +60,13 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint i
|
|||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
float1 VertexShaderFunction(float1 inF0, float1 inF1, float1 inF2)
|
float1 VertexShaderFunction1(float1 inF0, float1 inF1, float1 inF2)
|
||||||
{
|
{
|
||||||
// TODO: ... add when float1 prototypes are generated
|
// TODO: ... add when float1 prototypes are generated
|
||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1)
|
float2 VertexShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1)
|
||||||
{
|
{
|
||||||
all(inF0);
|
all(inF0);
|
||||||
abs(inF0);
|
abs(inF0);
|
||||||
@ -102,6 +103,7 @@ float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, u
|
|||||||
isinf(inF0);
|
isinf(inF0);
|
||||||
isnan(inF0);
|
isnan(inF0);
|
||||||
ldexp(inF0, inF1);
|
ldexp(inF0, inF1);
|
||||||
|
lerp(inF0, inF1, inF2);
|
||||||
length(inF0);
|
length(inF0);
|
||||||
log(inF0);
|
log(inF0);
|
||||||
log10(inF0);
|
log10(inF0);
|
||||||
@ -134,7 +136,7 @@ float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, u
|
|||||||
return float2(1,2);
|
return float2(1,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1)
|
float3 VertexShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1)
|
||||||
{
|
{
|
||||||
all(inF0);
|
all(inF0);
|
||||||
abs(inF0);
|
abs(inF0);
|
||||||
@ -172,6 +174,7 @@ float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, u
|
|||||||
isinf(inF0);
|
isinf(inF0);
|
||||||
isnan(inF0);
|
isnan(inF0);
|
||||||
ldexp(inF0, inF1);
|
ldexp(inF0, inF1);
|
||||||
|
lerp(inF0, inF1, inF2);
|
||||||
length(inF0);
|
length(inF0);
|
||||||
log(inF0);
|
log(inF0);
|
||||||
log10(inF0);
|
log10(inF0);
|
||||||
@ -204,7 +207,7 @@ float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, u
|
|||||||
return float3(1,2,3);
|
return float3(1,2,3);
|
||||||
}
|
}
|
||||||
|
|
||||||
float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, uint4 inU1)
|
float4 VertexShaderFunction4(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, uint4 inU1)
|
||||||
{
|
{
|
||||||
all(inF0);
|
all(inF0);
|
||||||
abs(inF0);
|
abs(inF0);
|
||||||
@ -242,6 +245,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, u
|
|||||||
isinf(inF0);
|
isinf(inF0);
|
||||||
isnan(inF0);
|
isnan(inF0);
|
||||||
ldexp(inF0, inF1);
|
ldexp(inF0, inF1);
|
||||||
|
lerp(inF0, inF1, inF2);
|
||||||
length(inF0);
|
length(inF0);
|
||||||
log(inF0);
|
log(inF0);
|
||||||
log10(inF0);
|
log10(inF0);
|
||||||
@ -303,6 +307,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, u
|
|||||||
frac(inF0); \
|
frac(inF0); \
|
||||||
frexp(inF0, inF1); \
|
frexp(inF0, inF1); \
|
||||||
ldexp(inF0, inF1); \
|
ldexp(inF0, inF1); \
|
||||||
|
lerp(inF0, inF1, inF2); \
|
||||||
log(inF0); \
|
log(inF0); \
|
||||||
log10(inF0); \
|
log10(inF0); \
|
||||||
log2(inF0); \
|
log2(inF0); \
|
||||||
@ -327,7 +332,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, u
|
|||||||
|
|
||||||
// TODO: turn on non-square matrix tests when protos are available.
|
// TODO: turn on non-square matrix tests when protos are available.
|
||||||
|
|
||||||
float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
|
float2x2 VertexShaderFunction2x2(float2x2 inF0, float2x2 inF1, float2x2 inF2)
|
||||||
{
|
{
|
||||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||||
MATFNS();
|
MATFNS();
|
||||||
@ -336,7 +341,7 @@ float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
|
|||||||
return float2x2(2,2,2,2);
|
return float2x2(2,2,2,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
|
float3x3 VertexShaderFunction3x3(float3x3 inF0, float3x3 inF1, float3x3 inF2)
|
||||||
{
|
{
|
||||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||||
MATFNS();
|
MATFNS();
|
||||||
@ -345,7 +350,7 @@ float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
|
|||||||
return float3x3(3,3,3,3,3,3,3,3,3);
|
return float3x3(3,3,3,3,3,3,3,3,3);
|
||||||
}
|
}
|
||||||
|
|
||||||
float4x4 VertexShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
|
float4x4 VertexShaderFunction4x4(float4x4 inF0, float4x4 inF1, float4x4 inF2)
|
||||||
{
|
{
|
||||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||||
MATFNS();
|
MATFNS();
|
||||||
@ -366,23 +371,49 @@ float4x4 VertexShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
|
|||||||
MT r8 = mul(inFM0, inFM1);
|
MT r8 = mul(inFM0, inFM1);
|
||||||
|
|
||||||
|
|
||||||
void TestGenMul(float inF0, float inF1,
|
void TestGenMul2(float inF0, float inF1,
|
||||||
float2 inFV0, float2 inFV1,
|
float2 inFV0, float2 inFV1,
|
||||||
float2x2 inFM0, float2x2 inFM1)
|
float2x2 inFM0, float2x2 inFM1)
|
||||||
{
|
{
|
||||||
TESTGENMUL(float, float2, float2x2);
|
TESTGENMUL(float, float2, float2x2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestGenMul(float inF0, float inF1,
|
void TestGenMul3(float inF0, float inF1,
|
||||||
float3 inFV0, float3 inFV1,
|
float3 inFV0, float3 inFV1,
|
||||||
float3x3 inFM0, float3x3 inFM1)
|
float3x3 inFM0, float3x3 inFM1)
|
||||||
{
|
{
|
||||||
TESTGENMUL(float, float3, float3x3);
|
TESTGENMUL(float, float3, float3x3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestGenMul(float inF0, float inF1,
|
void TestGenMul4(float inF0, float inF1,
|
||||||
float4 inFV0, float4 inFV1,
|
float4 inFV0, float4 inFV1,
|
||||||
float4x4 inFM0, float4x4 inFM1)
|
float4x4 inFM0, float4x4 inFM1)
|
||||||
{
|
{
|
||||||
TESTGENMUL(float, float4, float4x4);
|
TESTGENMUL(float, float4, float4x4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Test some non-square mats
|
||||||
|
void TestGenMulNxM(float inF0, float inF1,
|
||||||
|
float2 inFV2, float3 inFV3,
|
||||||
|
float2x3 inFM2x3, float3x2 inFM3x2,
|
||||||
|
float3x3 inFM3x3, float3x4 inFM3x4,
|
||||||
|
float2x4 inFM2x4)
|
||||||
|
{
|
||||||
|
float r00 = mul(inF0, inF1); // S=S*S
|
||||||
|
float2 r01 = mul(inFV2, inF0); // V=V*S
|
||||||
|
float3 r02 = mul(inFV3, inF0); // V=V*S
|
||||||
|
float2 r03 = mul(inF0, inFV2); // V=S*V
|
||||||
|
float3 r04 = mul(inF0, inFV3); // V=S*V
|
||||||
|
float r05 = mul(inFV2, inFV2); // S=V*V
|
||||||
|
float r06 = mul(inFV3, inFV3); // S=V*V
|
||||||
|
float3 r07 = mul(inFV2, inFM2x3); // V=V*M (return V dim is Mcols)
|
||||||
|
float2 r08 = mul(inFV3, inFM3x2); // V=V*M (return V dim is Mcols)
|
||||||
|
float2 r09 = mul(inFM2x3, inFV3); // V=M*V (return V dim is Mrows)
|
||||||
|
float3 r10 = mul(inFM3x2, inFV2); // V=M*V (return V dim is Mrows)
|
||||||
|
float2x3 r11 = mul(inFM2x3, inF0);
|
||||||
|
float3x2 r12 = mul(inFM3x2, inF0);
|
||||||
|
float2x2 r13 = mul(inFM2x3, inFM3x2);
|
||||||
|
float2x3 r14 = mul(inFM2x3, inFM3x3);
|
||||||
|
float2x4 r15 = mul(inFM2x3, inFM3x4);
|
||||||
|
float3x4 r16 = mul(inFM3x2, inFM2x4);
|
||||||
|
}
|
||||||
|
55
Test/hlsl.switch.frag
Normal file
55
Test/hlsl.switch.frag
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
float4 PixelShaderFunction(float4 input, int c, int d) : COLOR0
|
||||||
|
{
|
||||||
|
switch(c)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(c)
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (c) {
|
||||||
|
case 1:
|
||||||
|
++input;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
--input;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (c) {
|
||||||
|
case 1:
|
||||||
|
++input;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
switch (d) {
|
||||||
|
case 2:
|
||||||
|
input += 2.0;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
input += 3.0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
input += 4.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (c) {
|
||||||
|
case 1:
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (c) {
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
++input;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
case 5:
|
||||||
|
--input;
|
||||||
|
}
|
||||||
|
|
||||||
|
return input;
|
||||||
|
}
|
47
Test/hlsl.templatetypes.frag
Normal file
47
Test/hlsl.templatetypes.frag
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
|
||||||
|
float PixelShaderFunction()
|
||||||
|
{
|
||||||
|
vector r00 = float4(1,2,3,4); // vector means float4
|
||||||
|
float4 r01 = vector(2,3,4,5); // vector means float4
|
||||||
|
|
||||||
|
vector<bool, 1> r12 = bool1(false);
|
||||||
|
vector<int, 1> r13 = int1(1);
|
||||||
|
vector<float, 1> r14 = float1(1);
|
||||||
|
vector<double, 1> r15 = double1(1);
|
||||||
|
vector<uint, 1> r16 = uint1(1);
|
||||||
|
|
||||||
|
vector<bool, 2> r20 = bool2(false, true);
|
||||||
|
vector<int, 2> r21 = int2(1,2);
|
||||||
|
vector<float, 2> r22 = float2(1,2);
|
||||||
|
vector<double, 2> r23 = double2(1,2);
|
||||||
|
vector<uint, 2> r24 = uint2(1,2);
|
||||||
|
|
||||||
|
vector<bool, 3> r30 = bool3(false, true, true);
|
||||||
|
vector<int, 3> r31 = int3(1,2,3);
|
||||||
|
vector<float, 3> r32 = float3(1,2,3);
|
||||||
|
vector<double, 3> r33 = double3(1,2,3);
|
||||||
|
vector<uint, 3> r34 = uint3(1,2,3);
|
||||||
|
|
||||||
|
vector<bool, 4> r40 = bool4(false, true, true, false);
|
||||||
|
vector<int, 4> r41 = int4(1,2,3,4);
|
||||||
|
vector<float, 4> r42 = float4(1,2,3,4);
|
||||||
|
vector<double, 4> r43 = double4(1,2,3,4);
|
||||||
|
vector<uint, 4> r44 = uint4(1,2,3,4);
|
||||||
|
|
||||||
|
matrix r50 = float4x4(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); // matrix means float4x4
|
||||||
|
float4x4 r51 = matrix(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); // matrix means float4x4
|
||||||
|
|
||||||
|
// matrix<bool, 2, 3> r60 = bool2x3(false, true, false, true, false, true); // TODO:
|
||||||
|
matrix<float, 2, 3> r61 = float2x3(1,2,3,4,5,6);
|
||||||
|
matrix<float, 3, 2> r62 = float3x2(1,2,3,4,5,6);
|
||||||
|
// matrix<float, 4, 1> r63 = float4x1(1,2,3,4); // TODO:
|
||||||
|
// matrix<float, 1, 4> r64 = float1x4(1,2,3,4); // TODO:
|
||||||
|
matrix<float, 4, 2> r65 = float4x2(1,2,3,4,5,6,7,8);
|
||||||
|
matrix<float, 4, 3> r66 = float4x3(1,2,3,4,5,6,7,8,9,10,11,12);
|
||||||
|
|
||||||
|
// TODO: bool mats
|
||||||
|
// TODO: int mats
|
||||||
|
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
|
23
Test/hlsl.templatetypes.negative.frag
Normal file
23
Test/hlsl.templatetypes.negative.frag
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
float PixelShaderFunction()
|
||||||
|
{
|
||||||
|
// TODO: All of the below should fail, although presently the first failure
|
||||||
|
// aborts compilation and the rest are skipped. Having a separate test for
|
||||||
|
// each would be cumbersome.
|
||||||
|
|
||||||
|
vector<void, 2> r00; // cannot declare vectors of voids
|
||||||
|
matrix<void, 2, 3> r01; // cannot declare matrices of voids
|
||||||
|
|
||||||
|
vector<float, 2, 3> r02; // too many parameters to vector
|
||||||
|
matrix<float, 2> r03; // not enough parameters to matrix
|
||||||
|
|
||||||
|
int three = 3;
|
||||||
|
vector<void, three> r04; // size must be a literal constant integer
|
||||||
|
matrix<void, three, three> r05; // size must be a literal constant integer
|
||||||
|
|
||||||
|
vector<vector<int, 3>, 3> r06; // type must be a simple scalar
|
||||||
|
vector<float3, 3> r07; // type must be a simple scalar
|
||||||
|
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
|
11
Test/hlsl.typedef.frag
Normal file
11
Test/hlsl.typedef.frag
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
typedef float4 myVec4;
|
||||||
|
|
||||||
|
float4 ShaderFunction(float4 input, int ii) : COLOR0
|
||||||
|
{
|
||||||
|
typedef int myInt;
|
||||||
|
myVec4 a1 = myVec4(1.0);
|
||||||
|
myInt i = 2;
|
||||||
|
typedef myInt myInt2;
|
||||||
|
myInt2 j = ii;
|
||||||
|
return input * a1 + myVec4(i + j);
|
||||||
|
}
|
7
Test/maxClipDistances.vert
Normal file
7
Test/maxClipDistances.vert
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
out float gl_ClipDistance[8]; // OK, 8 is gl_MaxClipDistances
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
}
|
@ -6,27 +6,6 @@ EXE=../build/install/bin/glslangValidator
|
|||||||
HASERROR=0
|
HASERROR=0
|
||||||
mkdir -p localResults
|
mkdir -p localResults
|
||||||
|
|
||||||
#
|
|
||||||
# configuration file tests
|
|
||||||
#
|
|
||||||
echo running configuration file test
|
|
||||||
$EXE -c > $TARGETDIR/test.conf
|
|
||||||
diff -b $BASEDIR/test.conf $TARGETDIR/test.conf || HASERROR=1
|
|
||||||
$EXE -i -l $TARGETDIR/test.conf specExamples.vert > $TARGETDIR/specExamples.vert.out
|
|
||||||
diff -b $BASEDIR/specExamples.vert.out $TARGETDIR || HASERROR=1
|
|
||||||
$EXE -l 100Limits.vert 100.conf > $TARGETDIR/100LimitsConf.vert.out
|
|
||||||
diff -b $BASEDIR/100LimitsConf.vert.out $TARGETDIR/100LimitsConf.vert.out || HASERROR=1
|
|
||||||
|
|
||||||
#
|
|
||||||
# isolated compilation tests
|
|
||||||
#
|
|
||||||
while read t; do
|
|
||||||
echo Running $t...
|
|
||||||
b=`basename $t`
|
|
||||||
$EXE -i -l $t > $TARGETDIR/$b.out
|
|
||||||
diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1
|
|
||||||
done < testlist
|
|
||||||
|
|
||||||
if [ -a localtestlist ]
|
if [ -a localtestlist ]
|
||||||
then
|
then
|
||||||
while read t; do
|
while read t; do
|
||||||
@ -37,87 +16,21 @@ if [ -a localtestlist ]
|
|||||||
done < localtestlist
|
done < localtestlist
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
|
||||||
# SPIR-V code generation tests
|
|
||||||
#
|
|
||||||
while read t; do
|
|
||||||
case $t in
|
|
||||||
\#*)
|
|
||||||
# Skip comment lines in the test list file.
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo Running SPIR-V $t...
|
|
||||||
b=`basename $t`
|
|
||||||
$EXE -H $t > $TARGETDIR/$b.out
|
|
||||||
diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done < test-spirv-list
|
|
||||||
rm -f comp.spv frag.spv geom.spv tesc.spv tese.spv vert.spv
|
rm -f comp.spv frag.spv geom.spv tesc.spv tese.spv vert.spv
|
||||||
|
|
||||||
#
|
|
||||||
# HLSL -> SPIR-V code generation tests
|
|
||||||
#
|
|
||||||
while read t; do
|
|
||||||
case $t in
|
|
||||||
\#*)
|
|
||||||
# Skip comment lines in the test list file.
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo Running HLSL-to-SPIR-V $t...
|
|
||||||
b=`basename $t`
|
|
||||||
$EXE -D -e PixelShaderFunction -H -i $t > $TARGETDIR/$b.out
|
|
||||||
diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done < test-hlsl-spirv-list
|
|
||||||
rm -f comp.spv frag.spv geom.spv tesc.spv tese.spv vert.spv
|
|
||||||
|
|
||||||
#
|
|
||||||
# Preprocessor tests
|
|
||||||
#
|
|
||||||
while read t; do
|
|
||||||
echo Running Preprocessor $t...
|
|
||||||
b=`basename $t`
|
|
||||||
$EXE -E $t > $TARGETDIR/$b.out 2> $TARGETDIR/$b.err
|
|
||||||
diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1
|
|
||||||
diff -b $BASEDIR/$b.err $TARGETDIR/$b.err || HASERROR=1
|
|
||||||
done < test-preprocessor-list
|
|
||||||
|
|
||||||
#
|
|
||||||
# grouped shaders for bulk (faster) tests
|
|
||||||
#
|
|
||||||
function runBulkTest {
|
|
||||||
echo Running $*...
|
|
||||||
$EXE -i -l -t $* > $TARGETDIR/$1.out
|
|
||||||
diff -b $BASEDIR/$1.out $TARGETDIR/$1.out || HASERROR=1
|
|
||||||
}
|
|
||||||
|
|
||||||
runBulkTest mains1.frag mains2.frag noMain1.geom noMain2.geom
|
|
||||||
runBulkTest noMain.vert mains.frag
|
|
||||||
runBulkTest link1.frag link2.frag link3.frag
|
|
||||||
runBulkTest es-link1.frag es-link2.frag
|
|
||||||
runBulkTest recurse1.vert recurse1.frag recurse2.frag
|
|
||||||
runBulkTest 300link.frag
|
|
||||||
runBulkTest 300link2.frag
|
|
||||||
runBulkTest 300link3.frag
|
|
||||||
runBulkTest empty.frag empty2.frag empty3.frag
|
|
||||||
runBulkTest 150.tesc 150.tese 400.tesc 400.tese 410.tesc 420.tesc 420.tese
|
|
||||||
runBulkTest max_vertices_0.geom
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# reflection tests
|
# reflection tests
|
||||||
#
|
#
|
||||||
echo Running reflection...
|
echo Running reflection...
|
||||||
$EXE -l -q reflection.vert > $TARGETDIR/reflection.vert.out
|
$EXE -l -q -C reflection.vert > $TARGETDIR/reflection.vert.out
|
||||||
diff -b $BASEDIR/reflection.vert.out $TARGETDIR/reflection.vert.out || HASERROR=1
|
diff -b $BASEDIR/reflection.vert.out $TARGETDIR/reflection.vert.out || HASERROR=1
|
||||||
|
|
||||||
#
|
#
|
||||||
# multi-threaded test
|
# multi-threaded test
|
||||||
#
|
#
|
||||||
echo Comparing single thread to multithread for all tests in current directory...
|
echo Comparing single thread to multithread for all tests in current directory...
|
||||||
$EXE -i *.vert *.geom *.frag *.tes* *.comp > singleThread.out
|
$EXE -i -C *.vert *.geom *.frag *.tes* *.comp > singleThread.out
|
||||||
$EXE -i *.vert *.geom *.frag *.tes* *.comp -t > multiThread.out
|
$EXE -i -C *.vert *.geom *.frag *.tes* *.comp -t > multiThread.out
|
||||||
diff singleThread.out multiThread.out || HASERROR=1
|
diff singleThread.out multiThread.out || HASERROR=1
|
||||||
|
|
||||||
if [ $HASERROR -eq 0 ]
|
if [ $HASERROR -eq 0 ]
|
||||||
|
10
Test/spv.430.frag
Normal file
10
Test/spv.430.frag
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#version 430 core
|
||||||
|
|
||||||
|
out vec4 color;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
color = vec4(1.0);
|
||||||
|
color *= gl_Layer;
|
||||||
|
color *= gl_ViewportIndex;
|
||||||
|
}
|
20
Test/spv.450.tesc
Normal file
20
Test/spv.450.tesc
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#version 450 core
|
||||||
|
|
||||||
|
layout(vertices = 4) out;
|
||||||
|
|
||||||
|
patch out vec4 patchOut;
|
||||||
|
|
||||||
|
struct S {
|
||||||
|
float sMem1; // should not see a patch decoration
|
||||||
|
float sMem2; // should not see a patch decoration
|
||||||
|
};
|
||||||
|
|
||||||
|
layout(location = 12) patch out TheBlock {
|
||||||
|
highp float bMem1; // should not see a location decoration
|
||||||
|
highp float bMem2;
|
||||||
|
S s; // should see a patch decoration
|
||||||
|
} tcBlock[2];
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
#version 310 es
|
#version 450
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -22,6 +22,7 @@ void main()
|
|||||||
func(counter);
|
func(counter);
|
||||||
uint val = atomicCounter(countArr[2]);
|
uint val = atomicCounter(countArr[2]);
|
||||||
atomicCounterDecrement(counter);
|
atomicCounterDecrement(counter);
|
||||||
|
atomicCounterIncrement(counter);
|
||||||
}
|
}
|
||||||
|
|
||||||
shared int atomi;
|
shared int atomi;
|
||||||
|
6
Test/spv.glFragColor.frag
Normal file
6
Test/spv.glFragColor.frag
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#version 330
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
gl_FragColor = vec4(1.0);
|
||||||
|
}
|
8
Test/spv.specConst.vert
Normal file
8
Test/spv.specConst.vert
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
layout(constant_id = 11) const int a = 8;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
gl_Position = vec4(1.0) / a;
|
||||||
|
}
|
@ -1,4 +0,0 @@
|
|||||||
# Test looping constructs.
|
|
||||||
# No tests yet for making sure break and continue from a nested loop
|
|
||||||
# goes to the innermost target.
|
|
||||||
hlsl.frag
|
|
@ -1,16 +0,0 @@
|
|||||||
preprocessor.cpp_style_line_directive.vert
|
|
||||||
preprocessor.cpp_style___FILE__.vert
|
|
||||||
preprocessor.edge_cases.vert
|
|
||||||
preprocessor.errors.vert
|
|
||||||
preprocessor.extensions.vert
|
|
||||||
preprocessor.function_macro.vert
|
|
||||||
preprocessor.include.enabled.vert
|
|
||||||
preprocessor.include.disabled.vert
|
|
||||||
preprocessor.line.vert
|
|
||||||
preprocessor.line.frag
|
|
||||||
preprocessor.pragma.vert
|
|
||||||
preprocessor.simple.vert
|
|
||||||
preprocessor.success_if_parse_would_fail.vert
|
|
||||||
preprocessor.defined.vert
|
|
||||||
preprocessor.many.endif.vert
|
|
||||||
preprocessor.eof_missing.vert
|
|
@ -1,115 +0,0 @@
|
|||||||
# Test looping constructs.
|
|
||||||
# No tests yet for making sure break and continue from a nested loop
|
|
||||||
# goes to the innermost target.
|
|
||||||
spv.do-simple.vert
|
|
||||||
spv.do-while-continue-break.vert
|
|
||||||
spv.for-complex-condition.vert
|
|
||||||
spv.for-continue-break.vert
|
|
||||||
spv.for-simple.vert
|
|
||||||
spv.for-notest.vert
|
|
||||||
spv.for-nobody.vert
|
|
||||||
spv.while-continue-break.vert
|
|
||||||
spv.while-simple.vert
|
|
||||||
# vulkan-specific tests
|
|
||||||
spv.set.vert
|
|
||||||
spv.double.comp
|
|
||||||
spv.100ops.frag
|
|
||||||
spv.130.frag
|
|
||||||
spv.140.frag
|
|
||||||
spv.150.geom
|
|
||||||
spv.150.vert
|
|
||||||
spv.300BuiltIns.vert
|
|
||||||
spv.300layout.frag
|
|
||||||
spv.300layout.vert
|
|
||||||
spv.300layoutp.vert
|
|
||||||
spv.310.comp
|
|
||||||
spv.330.geom
|
|
||||||
spv.400.frag
|
|
||||||
spv.400.tesc
|
|
||||||
spv.400.tese
|
|
||||||
spv.420.geom
|
|
||||||
spv.430.vert
|
|
||||||
spv.accessChain.frag
|
|
||||||
spv.aggOps.frag
|
|
||||||
spv.always-discard.frag
|
|
||||||
spv.always-discard2.frag
|
|
||||||
spv.bitCast.frag
|
|
||||||
spv.bool.vert
|
|
||||||
spv.boolInBlock.frag
|
|
||||||
spv.branch-return.vert
|
|
||||||
spv.conditionalDiscard.frag
|
|
||||||
spv.conversion.frag
|
|
||||||
spv.dataOut.frag
|
|
||||||
spv.dataOutIndirect.frag
|
|
||||||
spv.dataOutIndirect.vert
|
|
||||||
spv.deepRvalue.frag
|
|
||||||
spv.depthOut.frag
|
|
||||||
spv.discard-dce.frag
|
|
||||||
spv.doWhileLoop.frag
|
|
||||||
spv.earlyReturnDiscard.frag
|
|
||||||
spv.flowControl.frag
|
|
||||||
spv.forLoop.frag
|
|
||||||
spv.forwardFun.frag
|
|
||||||
spv.functionCall.frag
|
|
||||||
spv.functionSemantics.frag
|
|
||||||
spv.interpOps.frag
|
|
||||||
spv.int64.frag
|
|
||||||
spv.layoutNested.vert
|
|
||||||
spv.length.frag
|
|
||||||
spv.localAggregates.frag
|
|
||||||
spv.loops.frag
|
|
||||||
spv.loopsArtificial.frag
|
|
||||||
spv.matFun.vert
|
|
||||||
spv.matrix.frag
|
|
||||||
spv.matrix2.frag
|
|
||||||
spv.memoryQualifier.frag
|
|
||||||
spv.merge-unreachable.frag
|
|
||||||
spv.newTexture.frag
|
|
||||||
spv.noDeadDecorations.vert
|
|
||||||
spv.nonSquare.vert
|
|
||||||
spv.Operations.frag
|
|
||||||
spv.intOps.vert
|
|
||||||
spv.precision.frag
|
|
||||||
spv.prepost.frag
|
|
||||||
spv.qualifiers.vert
|
|
||||||
spv.shaderBallot.comp
|
|
||||||
spv.shaderGroupVote.comp
|
|
||||||
spv.shiftOps.frag
|
|
||||||
spv.simpleFunctionCall.frag
|
|
||||||
spv.simpleMat.vert
|
|
||||||
spv.sparseTexture.frag
|
|
||||||
spv.sparseTextureClamp.frag
|
|
||||||
spv.structAssignment.frag
|
|
||||||
spv.structDeref.frag
|
|
||||||
spv.structure.frag
|
|
||||||
spv.switch.frag
|
|
||||||
spv.swizzle.frag
|
|
||||||
spv.test.frag
|
|
||||||
spv.test.vert
|
|
||||||
spv.texture.frag
|
|
||||||
spv.texture.vert
|
|
||||||
spv.image.frag
|
|
||||||
spv.types.frag
|
|
||||||
spv.uint.frag
|
|
||||||
spv.uniformArray.frag
|
|
||||||
spv.variableArrayIndex.frag
|
|
||||||
spv.varyingArray.frag
|
|
||||||
spv.varyingArrayIndirect.frag
|
|
||||||
spv.voidFunction.frag
|
|
||||||
spv.whileLoop.frag
|
|
||||||
spv.AofA.frag
|
|
||||||
spv.queryL.frag
|
|
||||||
spv.separate.frag
|
|
||||||
spv.shortCircuit.frag
|
|
||||||
spv.pushConstant.vert
|
|
||||||
spv.subpass.frag
|
|
||||||
spv.specConstant.vert
|
|
||||||
spv.specConstant.comp
|
|
||||||
spv.specConstantComposite.vert
|
|
||||||
spv.specConstantOperations.vert
|
|
||||||
spv.precise.tese
|
|
||||||
spv.precise.tesc
|
|
||||||
# GLSL-level semantics
|
|
||||||
vulkan.frag
|
|
||||||
vulkan.vert
|
|
||||||
vulkan.comp
|
|
134
Test/testlist
134
Test/testlist
@ -1,134 +0,0 @@
|
|||||||
sample.frag
|
|
||||||
sample.vert
|
|
||||||
decls.frag
|
|
||||||
specExamples.frag
|
|
||||||
specExamples.vert
|
|
||||||
versionsClean.frag
|
|
||||||
versionsClean.vert
|
|
||||||
versionsErrors.frag
|
|
||||||
versionsErrors.vert
|
|
||||||
100.frag
|
|
||||||
120.vert
|
|
||||||
120.frag
|
|
||||||
130.vert
|
|
||||||
130.frag
|
|
||||||
140.vert
|
|
||||||
140.frag
|
|
||||||
150.vert
|
|
||||||
150.geom
|
|
||||||
150.frag
|
|
||||||
precision.frag
|
|
||||||
precision.vert
|
|
||||||
nonSquare.vert
|
|
||||||
matrixError.vert
|
|
||||||
cppSimple.vert
|
|
||||||
cppIndent.vert
|
|
||||||
cppNest.vert
|
|
||||||
cppComplexExpr.vert
|
|
||||||
badChars.frag
|
|
||||||
pointCoord.frag
|
|
||||||
array.frag
|
|
||||||
array100.frag
|
|
||||||
comment.frag
|
|
||||||
300.vert
|
|
||||||
300.frag
|
|
||||||
300BuiltIns.frag
|
|
||||||
300layout.vert
|
|
||||||
300layout.frag
|
|
||||||
300operations.frag
|
|
||||||
300block.frag
|
|
||||||
310.comp
|
|
||||||
310.vert
|
|
||||||
310.geom
|
|
||||||
310.frag
|
|
||||||
310.tesc
|
|
||||||
310.tese
|
|
||||||
310implicitSizeArrayError.vert
|
|
||||||
310AofA.vert
|
|
||||||
330.frag
|
|
||||||
330comp.frag
|
|
||||||
constErrors.frag
|
|
||||||
constFold.frag
|
|
||||||
errors.frag
|
|
||||||
forwardRef.frag
|
|
||||||
uint.frag
|
|
||||||
switch.frag
|
|
||||||
tokenLength.vert
|
|
||||||
100Limits.vert
|
|
||||||
100scope.vert
|
|
||||||
110scope.vert
|
|
||||||
300scope.vert
|
|
||||||
400.frag
|
|
||||||
420.frag
|
|
||||||
420.vert
|
|
||||||
420.geom
|
|
||||||
420_size_gl_in.geom
|
|
||||||
430scope.vert
|
|
||||||
lineContinuation100.vert
|
|
||||||
lineContinuation.vert
|
|
||||||
numeral.frag
|
|
||||||
400.geom
|
|
||||||
400.tesc
|
|
||||||
400.tese
|
|
||||||
410.tesc
|
|
||||||
420.tesc
|
|
||||||
420.tese
|
|
||||||
410.geom
|
|
||||||
430.vert
|
|
||||||
430.comp
|
|
||||||
430AofA.frag
|
|
||||||
440.vert
|
|
||||||
440.frag
|
|
||||||
450.vert
|
|
||||||
450.geom
|
|
||||||
450.tesc
|
|
||||||
450.tese
|
|
||||||
450.frag
|
|
||||||
450.comp
|
|
||||||
dce.frag
|
|
||||||
atomic_uint.frag
|
|
||||||
aggOps.frag
|
|
||||||
always-discard.frag
|
|
||||||
always-discard2.frag
|
|
||||||
conditionalDiscard.frag
|
|
||||||
conversion.frag
|
|
||||||
dataOut.frag
|
|
||||||
dataOutIndirect.frag
|
|
||||||
deepRvalue.frag
|
|
||||||
depthOut.frag
|
|
||||||
discard-dce.frag
|
|
||||||
doWhileLoop.frag
|
|
||||||
earlyReturnDiscard.frag
|
|
||||||
flowControl.frag
|
|
||||||
forLoop.frag
|
|
||||||
functionCall.frag
|
|
||||||
functionSemantics.frag
|
|
||||||
length.frag
|
|
||||||
localAggregates.frag
|
|
||||||
loops.frag
|
|
||||||
loopsArtificial.frag
|
|
||||||
matrix.frag
|
|
||||||
matrix2.frag
|
|
||||||
newTexture.frag
|
|
||||||
Operations.frag
|
|
||||||
prepost.frag
|
|
||||||
simpleFunctionCall.frag
|
|
||||||
structAssignment.frag
|
|
||||||
structDeref.frag
|
|
||||||
structure.frag
|
|
||||||
swizzle.frag
|
|
||||||
syntaxError.frag
|
|
||||||
test.frag
|
|
||||||
texture.frag
|
|
||||||
types.frag
|
|
||||||
uniformArray.frag
|
|
||||||
variableArrayIndex.frag
|
|
||||||
varyingArray.frag
|
|
||||||
varyingArrayIndirect.frag
|
|
||||||
voidFunction.frag
|
|
||||||
whileLoop.frag
|
|
||||||
nonVulkan.frag
|
|
||||||
negativeArraySize.comp
|
|
||||||
spv.atomic.comp
|
|
||||||
precise.tesc
|
|
||||||
precise_struct_block.vert
|
|
@ -1553,6 +1553,13 @@ public:
|
|||||||
if (structure) {
|
if (structure) {
|
||||||
s.append("{");
|
s.append("{");
|
||||||
for (size_t i = 0; i < structure->size(); ++i) {
|
for (size_t i = 0; i < structure->size(); ++i) {
|
||||||
|
if (s.size() > 3 * GlslangMaxTypeLength) {
|
||||||
|
// If we are getting too long, cut it short,
|
||||||
|
// just need to draw the line somewhere, as there is no limit to
|
||||||
|
// how large a struct/block type can get.
|
||||||
|
s.append("...");
|
||||||
|
break;
|
||||||
|
}
|
||||||
if (! (*structure)[i].type->hiddenMember()) {
|
if (! (*structure)[i].type->hiddenMember()) {
|
||||||
s.append((*structure)[i].type->getCompleteString());
|
s.append((*structure)[i].type->getCompleteString());
|
||||||
s.append(" ");
|
s.append(" ");
|
||||||
|
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