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
|
||||
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
|
||||
-------------------------------
|
||||
@ -177,15 +177,11 @@ For more information, please check `gtests/` directory's
|
||||
|
||||
For the `runtests` script, it will generate current results in the
|
||||
`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
|
||||
copied from `localResults/` to `baseResults/`. This can be done by
|
||||
the `bump` shell script.
|
||||
|
||||
The list of files tested comes from `testlist`, and lists input shaders
|
||||
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
|
||||
You can add your own private list of tests, not tracked publicly, by using
|
||||
`localtestlist` to list non-tracked tests. This is automatically read
|
||||
by `runtests` and included in the `diff` and `bump` process.
|
||||
|
||||
|
@ -117,6 +117,10 @@ protected:
|
||||
spv::Id getSampledType(const glslang::TSampler&);
|
||||
spv::Id convertGlslangToSpvType(const glslang::TType& type);
|
||||
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 accessChainLoad(const glslang::TType& type);
|
||||
void accessChainStore(const glslang::TType& type, spv::Id rvalue);
|
||||
@ -414,19 +418,19 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
||||
{
|
||||
switch (builtIn) {
|
||||
case glslang::EbvPointSize:
|
||||
// Defer adding the capability until the built-in is actually used.
|
||||
if (!memberDeclaration) {
|
||||
switch (glslangIntermediate->getStage()) {
|
||||
case EShLangGeometry:
|
||||
builder.addCapability(spv::CapabilityGeometryPointSize);
|
||||
break;
|
||||
case EShLangTessControl:
|
||||
case EShLangTessEvaluation:
|
||||
builder.addCapability(spv::CapabilityTessellationPointSize);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
// Defer adding the capability until the built-in is actually used.
|
||||
if (! memberDeclaration) {
|
||||
switch (glslangIntermediate->getStage()) {
|
||||
case EShLangGeometry:
|
||||
builder.addCapability(spv::CapabilityGeometryPointSize);
|
||||
break;
|
||||
case EShLangTessControl:
|
||||
case EShLangTessEvaluation:
|
||||
builder.addCapability(spv::CapabilityTessellationPointSize);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return spv::BuiltInPointSize;
|
||||
|
||||
@ -438,12 +442,12 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
||||
//
|
||||
case glslang::EbvClipDistance:
|
||||
if (!memberDeclaration)
|
||||
builder.addCapability(spv::CapabilityClipDistance);
|
||||
builder.addCapability(spv::CapabilityClipDistance);
|
||||
return spv::BuiltInClipDistance;
|
||||
|
||||
case glslang::EbvCullDistance:
|
||||
if (!memberDeclaration)
|
||||
builder.addCapability(spv::CapabilityCullDistance);
|
||||
builder.addCapability(spv::CapabilityCullDistance);
|
||||
return spv::BuiltInCullDistance;
|
||||
|
||||
case glslang::EbvViewportIndex:
|
||||
@ -462,6 +466,10 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
||||
builder.addCapability(spv::CapabilitySampleRateShading);
|
||||
return spv::BuiltInSampleMask;
|
||||
|
||||
case glslang::EbvLayer:
|
||||
builder.addCapability(spv::CapabilityGeometry);
|
||||
return spv::BuiltInLayer;
|
||||
|
||||
case glslang::EbvPosition: return spv::BuiltInPosition;
|
||||
case glslang::EbvVertexId: return spv::BuiltInVertexId;
|
||||
case glslang::EbvInstanceId: return spv::BuiltInInstanceId;
|
||||
@ -475,7 +483,6 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
||||
return (spv::BuiltIn)spv::BadValue;
|
||||
case glslang::EbvPrimitiveId: return spv::BuiltInPrimitiveId;
|
||||
case glslang::EbvInvocationId: return spv::BuiltInInvocationId;
|
||||
case glslang::EbvLayer: return spv::BuiltInLayer;
|
||||
case glslang::EbvTessLevelInner: return spv::BuiltInTessLevelInner;
|
||||
case glslang::EbvTessLevelOuter: return spv::BuiltInTessLevelOuter;
|
||||
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.
|
||||
// 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 spvType = spv::NoResult;
|
||||
@ -1829,7 +1837,7 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
spvType = builder.makeUintType(64);
|
||||
break;
|
||||
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);
|
||||
break;
|
||||
case glslang::EbtSampler:
|
||||
@ -1853,144 +1861,19 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
case glslang::EbtBlock:
|
||||
{
|
||||
// If we've seen this struct type, return it
|
||||
const glslang::TTypeList* glslangStruct = type.getStruct();
|
||||
std::vector<spv::Id> structFields;
|
||||
const glslang::TTypeList* glslangMembers = type.getStruct();
|
||||
|
||||
// Try to share structs for different layouts, but not yet for other
|
||||
// kinds of qualification (primarily not yet including interpolant qualification).
|
||||
if (! HasNonLayoutQualifiers(qualifier))
|
||||
spvType = structMap[explicitLayout][qualifier.layoutMatrix][glslangStruct];
|
||||
spvType = structMap[explicitLayout][qualifier.layoutMatrix][glslangMembers];
|
||||
if (spvType != spv::NoResult)
|
||||
break;
|
||||
|
||||
// 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)
|
||||
memberRemapper[glslangStruct].resize(glslangStruct->size());
|
||||
int locationOffset = 0; // for use across struct members, when they are called recursively
|
||||
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);
|
||||
}
|
||||
memberRemapper[glslangMembers].resize(glslangMembers->size());
|
||||
spvType = convertGlslangStructToSpvType(type, glslangMembers, explicitLayout, qualifier);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@ -2053,6 +1936,161 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
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.
|
||||
// This is not quite trivial, because of specialization constants.
|
||||
// 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);
|
||||
symbolValues[symbol->getId()] = id;
|
||||
|
||||
if (! symbol->getType().isStruct()) {
|
||||
if (symbol->getBasicType() != glslang::EbtBlock) {
|
||||
addDecoration(id, TranslatePrecisionDecoration(symbol->getType()));
|
||||
addDecoration(id, TranslateInterpolationDecoration(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())
|
||||
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())
|
||||
|
@ -2045,8 +2045,15 @@ Block& Builder::makeNewBlock()
|
||||
|
||||
Builder::LoopBlocks& Builder::makeNewLoop()
|
||||
{
|
||||
// Older MSVC versions don't allow inlining of blocks below.
|
||||
LoopBlocks blocks = {makeNewBlock(), makeNewBlock(), makeNewBlock(), makeNewBlock()};
|
||||
// This verbosity is needed to simultaneously get the same behavior
|
||||
// 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);
|
||||
return loops.top();
|
||||
}
|
||||
|
@ -397,7 +397,12 @@ public:
|
||||
void endSwitch(std::vector<Block*>& segmentBB);
|
||||
|
||||
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;
|
||||
private:
|
||||
LoopBlocks();
|
||||
LoopBlocks& operator=(const LoopBlocks&);
|
||||
};
|
||||
|
||||
// Start a new loop and prepare the builder to generate code for it. Until
|
||||
|
@ -238,7 +238,8 @@ std::string GetDefaultTBuiltInResourceString()
|
||||
return ostream.str();
|
||||
}
|
||||
|
||||
void DecodeResourceLimits(TBuiltInResource* resources, char* config) {
|
||||
void DecodeResourceLimits(TBuiltInResource* resources, char* config)
|
||||
{
|
||||
const char* delims = " \t\n\r";
|
||||
const char* token = strtok(config, delims);
|
||||
while (token) {
|
||||
|
@ -58,25 +58,26 @@ extern "C" {
|
||||
|
||||
// Command-line options
|
||||
enum TOptions {
|
||||
EOptionNone = 0x0000,
|
||||
EOptionIntermediate = 0x0001,
|
||||
EOptionSuppressInfolog = 0x0002,
|
||||
EOptionMemoryLeakMode = 0x0004,
|
||||
EOptionRelaxedErrors = 0x0008,
|
||||
EOptionGiveWarnings = 0x0010,
|
||||
EOptionLinkProgram = 0x0020,
|
||||
EOptionMultiThreaded = 0x0040,
|
||||
EOptionDumpConfig = 0x0080,
|
||||
EOptionDumpReflection = 0x0100,
|
||||
EOptionSuppressWarnings = 0x0200,
|
||||
EOptionDumpVersions = 0x0400,
|
||||
EOptionSpv = 0x0800,
|
||||
EOptionHumanReadableSpv = 0x1000,
|
||||
EOptionVulkanRules = 0x2000,
|
||||
EOptionDefaultDesktop = 0x4000,
|
||||
EOptionOutputPreprocessed = 0x8000,
|
||||
EOptionOutputHexadecimal = 0x10000,
|
||||
EOptionReadHlsl = 0x20000,
|
||||
EOptionNone = 0,
|
||||
EOptionIntermediate = (1 << 0),
|
||||
EOptionSuppressInfolog = (1 << 1),
|
||||
EOptionMemoryLeakMode = (1 << 2),
|
||||
EOptionRelaxedErrors = (1 << 3),
|
||||
EOptionGiveWarnings = (1 << 4),
|
||||
EOptionLinkProgram = (1 << 5),
|
||||
EOptionMultiThreaded = (1 << 6),
|
||||
EOptionDumpConfig = (1 << 7),
|
||||
EOptionDumpReflection = (1 << 8),
|
||||
EOptionSuppressWarnings = (1 << 9),
|
||||
EOptionDumpVersions = (1 << 10),
|
||||
EOptionSpv = (1 << 11),
|
||||
EOptionHumanReadableSpv = (1 << 12),
|
||||
EOptionVulkanRules = (1 << 13),
|
||||
EOptionDefaultDesktop = (1 << 14),
|
||||
EOptionOutputPreprocessed = (1 << 15),
|
||||
EOptionOutputHexadecimal = (1 << 16),
|
||||
EOptionReadHlsl = (1 << 17),
|
||||
EOptionCascadingErrors = (1 << 18),
|
||||
};
|
||||
|
||||
//
|
||||
@ -223,7 +224,13 @@ void ProcessArguments(int argc, char* argv[])
|
||||
switch (argv[0][1]) {
|
||||
case 'H':
|
||||
Options |= EOptionHumanReadableSpv;
|
||||
// fall through to -V
|
||||
if ((Options & EOptionSpv) == 0) {
|
||||
// default to Vulkan
|
||||
Options |= EOptionSpv;
|
||||
Options |= EOptionVulkanRules;
|
||||
Options |= EOptionLinkProgram;
|
||||
}
|
||||
break;
|
||||
case 'V':
|
||||
Options |= EOptionSpv;
|
||||
Options |= EOptionVulkanRules;
|
||||
@ -232,6 +239,8 @@ void ProcessArguments(int argc, char* argv[])
|
||||
case 'G':
|
||||
Options |= EOptionSpv;
|
||||
Options |= EOptionLinkProgram;
|
||||
// undo a -H default to Vulkan
|
||||
Options &= ~EOptionVulkanRules;
|
||||
break;
|
||||
case 'E':
|
||||
Options |= EOptionOutputPreprocessed;
|
||||
@ -239,6 +248,9 @@ void ProcessArguments(int argc, char* argv[])
|
||||
case 'c':
|
||||
Options |= EOptionDumpConfig;
|
||||
break;
|
||||
case 'C':
|
||||
Options |= EOptionCascadingErrors;
|
||||
break;
|
||||
case 'd':
|
||||
Options |= EOptionDefaultDesktop;
|
||||
break;
|
||||
@ -339,6 +351,8 @@ void SetMessageOptions(EShMessages& messages)
|
||||
messages = (EShMessages)(messages | EShMsgOnlyPreprocessor);
|
||||
if (Options & EOptionReadHlsl)
|
||||
messages = (EShMessages)(messages | EShMsgReadHlsl);
|
||||
if (Options & EOptionCascadingErrors)
|
||||
messages = (EShMessages)(messages | EShMsgCascadingErrors);
|
||||
}
|
||||
|
||||
//
|
||||
@ -764,6 +778,7 @@ void usage()
|
||||
" errors will appear on stderr.\n"
|
||||
" -c configuration dump;\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"
|
||||
" (default is ES version 100)\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:111: 'overloadE' : 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:171: 'default' : Reserved word.
|
||||
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 'v2a' (global mediump 2-component vector of float)
|
||||
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 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:64 Sequence
|
||||
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 'v2a' (global mediump 2-component vector of float)
|
||||
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 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:64 Sequence
|
||||
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:32 move second child to first child (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: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 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: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 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: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 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:36 move second child to first child (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: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 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:40 move second child to first child (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 PackSnorm4x8 (global highp uint)
|
||||
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 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: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 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:60 Function Definition: foo( (global void)
|
||||
0:60 Function Parameters:
|
||||
@ -1110,27 +1110,27 @@ ERROR: node is still EOpNull!
|
||||
0:31 'u4' (temp highp 4-component vector of uint)
|
||||
0:32 move second child to first child (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: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 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: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 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: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 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:36 move second child to first child (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: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 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:40 move second child to first child (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 PackSnorm4x8 (global highp uint)
|
||||
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 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: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 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:60 Function Definition: foo( (global void)
|
||||
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:31: '' : cannot use auxiliary or interpolation qualifiers on a function parameter
|
||||
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: '' : constant 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: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 '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 0 (const uint)
|
||||
0:49 Construct vec4 (temp 4-component vector of float)
|
||||
|
@ -374,6 +374,18 @@ ERROR: node is still EOpNull!
|
||||
0:? 1 (const int)
|
||||
0:? 9.000000
|
||||
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:
|
||||
@ -744,4 +756,16 @@ ERROR: node is still EOpNull!
|
||||
0:? 1 (const int)
|
||||
0:? 9.000000
|
||||
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
|
||||
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
|
||||
0:? Sequence
|
||||
ERROR: node is still EOpNull!
|
||||
0:5 Function Definition: foo(i1;i1;i1;i1;i1;i1; (global int)
|
||||
0:5 Function Parameters:
|
||||
0:5 'a' (in int)
|
||||
@ -195,6 +199,11 @@ Shader version: 400
|
||||
0:69 Construct ivec2 (temp 2-component vector of int)
|
||||
0:69 Convert float to int (temp int)
|
||||
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:? 'u' (uniform float)
|
||||
|
||||
@ -203,7 +212,7 @@ Linked fragment stage:
|
||||
|
||||
|
||||
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 Parameters:
|
||||
0:5 'a' (in int)
|
||||
@ -396,6 +405,11 @@ Shader version: 400
|
||||
0:69 Construct ivec2 (temp 2-component vector of int)
|
||||
0:69 Convert float to int (temp int)
|
||||
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:? '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
|
||||
gl_FragCoord origin is upper left
|
||||
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 'i' (in int)
|
||||
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 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 1 (const int)
|
||||
0:10 indirect index (temp 4-component vector of float)
|
||||
0:10 'a' (temp 4-element array of 4-component vector of float)
|
||||
0:10 'a' (global 4-element array of 4-component vector of float)
|
||||
0:10 'i' (in int)
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 direct index (temp 4-component vector of float)
|
||||
@ -38,14 +38,14 @@ gl_FragCoord origin is upper left
|
||||
0:10 indirect index (temp 4-component vector of float)
|
||||
0:10 m: direct index for structure (temp 7-element array of 4-component vector of float)
|
||||
0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m})
|
||||
0:10 's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m})
|
||||
0:10 '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 Constant:
|
||||
0:10 0 (const int)
|
||||
0:10 'i' (in int)
|
||||
0:? Linker Objects
|
||||
0:? 'a' (temp 4-element array of 4-component vector of float)
|
||||
0:? 's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m})
|
||||
0:? 'a' (global 4-element array of 4-component vector of float)
|
||||
0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
@ -54,7 +54,7 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float)
|
||||
0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float)
|
||||
0:8 Function Parameters:
|
||||
0:8 'i' (in int)
|
||||
0:8 'input' (in 3-element array of 4-component vector of float)
|
||||
@ -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 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 1 (const int)
|
||||
0:10 indirect index (temp 4-component vector of float)
|
||||
0:10 'a' (temp 4-element array of 4-component vector of float)
|
||||
0:10 'a' (global 4-element array of 4-component vector of float)
|
||||
0:10 'i' (in int)
|
||||
0:10 add (temp 4-component vector of float)
|
||||
0:10 direct index (temp 4-component vector of float)
|
||||
@ -90,18 +90,18 @@ gl_FragCoord origin is upper left
|
||||
0:10 indirect index (temp 4-component vector of float)
|
||||
0:10 m: direct index for structure (temp 7-element array of 4-component vector of float)
|
||||
0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m})
|
||||
0:10 's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m})
|
||||
0:10 '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 Constant:
|
||||
0:10 0 (const int)
|
||||
0:10 'i' (in int)
|
||||
0:? Linker Objects
|
||||
0:? 'a' (temp 4-element array of 4-component vector of float)
|
||||
0:? 's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m})
|
||||
0:? 'a' (global 4-element array of 4-component vector of float)
|
||||
0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 63
|
||||
// Id's are bound by 64
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
@ -114,9 +114,9 @@ gl_FragCoord origin is upper left
|
||||
Name 19 "i"
|
||||
Name 27 "input"
|
||||
Name 40 "b"
|
||||
Name 50 ""
|
||||
MemberName 50 0 "m"
|
||||
Name 54 "s"
|
||||
Name 51 ""
|
||||
MemberName 51 0 "m"
|
||||
Name 55 "s"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@ -124,10 +124,11 @@ gl_FragCoord origin is upper left
|
||||
8: TypeInt 32 0
|
||||
9: 8(int) Constant 4
|
||||
10: TypeArray 7(fvec4) 9
|
||||
11: TypePointer Function 10
|
||||
11: TypePointer Private 10
|
||||
12(a): 11(ptr) Variable Private
|
||||
13: TypeInt 32 1
|
||||
14: 13(int) Constant 1
|
||||
15: TypePointer Function 7(fvec4)
|
||||
15: TypePointer Private 7(fvec4)
|
||||
18: TypePointer Input 13(int)
|
||||
19(i): 18(ptr) Variable Input
|
||||
24: 8(int) Constant 3
|
||||
@ -140,18 +141,18 @@ gl_FragCoord origin is upper left
|
||||
38: TypeArray 7(fvec4) 37
|
||||
39: TypePointer Function 38
|
||||
41: 13(int) Constant 5
|
||||
48: 8(int) Constant 7
|
||||
49: TypeArray 7(fvec4) 48
|
||||
50: TypeStruct 49
|
||||
51: 8(int) Constant 11
|
||||
52: TypeArray 50(struct) 51
|
||||
53: TypePointer Function 52
|
||||
56: 13(int) Constant 0
|
||||
42: TypePointer Function 7(fvec4)
|
||||
49: 8(int) Constant 7
|
||||
50: TypeArray 7(fvec4) 49
|
||||
51: TypeStruct 50
|
||||
52: 8(int) Constant 11
|
||||
53: TypeArray 51(struct) 52
|
||||
54: TypePointer Private 53
|
||||
55(s): 54(ptr) Variable Private
|
||||
57: 13(int) Constant 0
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
12(a): 11(ptr) Variable Function
|
||||
40(b): 39(ptr) Variable Function
|
||||
54(s): 53(ptr) Variable Function
|
||||
16: 15(ptr) AccessChain 12(a) 14
|
||||
17: 7(fvec4) Load 16
|
||||
20: 13(int) Load 19(i)
|
||||
@ -165,17 +166,17 @@ gl_FragCoord origin is upper left
|
||||
34: 7(fvec4) Load 33
|
||||
35: 7(fvec4) FAdd 31 34
|
||||
36: 7(fvec4) FAdd 23 35
|
||||
42: 15(ptr) AccessChain 40(b) 41
|
||||
43: 7(fvec4) Load 42
|
||||
44: 13(int) Load 19(i)
|
||||
45: 15(ptr) AccessChain 40(b) 44
|
||||
46: 7(fvec4) Load 45
|
||||
47: 7(fvec4) FAdd 43 46
|
||||
55: 13(int) Load 19(i)
|
||||
57: 13(int) Load 19(i)
|
||||
58: 15(ptr) AccessChain 54(s) 55 56 57
|
||||
59: 7(fvec4) Load 58
|
||||
60: 7(fvec4) FAdd 47 59
|
||||
61: 7(fvec4) FAdd 36 60
|
||||
ReturnValue 61
|
||||
43: 42(ptr) AccessChain 40(b) 41
|
||||
44: 7(fvec4) Load 43
|
||||
45: 13(int) Load 19(i)
|
||||
46: 42(ptr) AccessChain 40(b) 45
|
||||
47: 7(fvec4) Load 46
|
||||
48: 7(fvec4) FAdd 44 47
|
||||
56: 13(int) Load 19(i)
|
||||
58: 13(int) Load 19(i)
|
||||
59: 15(ptr) AccessChain 55(s) 56 57 58
|
||||
60: 7(fvec4) Load 59
|
||||
61: 7(fvec4) FAdd 48 60
|
||||
62: 7(fvec4) FAdd 36 61
|
||||
ReturnValue 62
|
||||
FunctionEnd
|
||||
|
@ -2,7 +2,7 @@ hlsl.assoc.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float)
|
||||
0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float)
|
||||
0:8 Function Parameters:
|
||||
0:8 'a1' (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
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float)
|
||||
0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float)
|
||||
0:8 Function Parameters:
|
||||
0:8 'a1' (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
|
||||
gl_FragCoord origin is upper left
|
||||
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 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
@ -20,7 +20,7 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:14 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
|
@ -2,7 +2,7 @@ hlsl.cast.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
@ -28,7 +28,7 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
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
|
||||
gl_FragCoord origin is upper left
|
||||
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 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
@ -33,7 +33,7 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:7 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:7 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
|
@ -2,15 +2,17 @@ hlsl.float1.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:1 move second child to first child (temp 1-component vector of float)
|
||||
0:1 'f1' (temp 1-component vector of float)
|
||||
0:1 Constant:
|
||||
0:1 1.000000
|
||||
0:2 move second child to first child (temp float)
|
||||
0:2 'scalar' (temp float)
|
||||
0:2 Constant:
|
||||
0:2 2.000000
|
||||
0:8 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
|
||||
0:1 Sequence
|
||||
0:1 move second child to first child (temp 1-component vector of float)
|
||||
0:1 'f1' (global 1-component vector of float)
|
||||
0:1 Constant:
|
||||
0:1 1.000000
|
||||
0:2 Sequence
|
||||
0:2 move second child to first child (temp float)
|
||||
0:2 'scalar' (global 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 'inFloat1' (in 1-component vector of float)
|
||||
0:5 'inScalar' (in float)
|
||||
@ -18,14 +20,14 @@ gl_FragCoord origin is upper left
|
||||
0:6 Branch: Return with expression
|
||||
0:6 add (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 'scalar' (temp float)
|
||||
0:6 'f1' (global 1-component vector of float)
|
||||
0:6 'scalar' (global float)
|
||||
0:6 vector-scale (temp 1-component vector of float)
|
||||
0:6 'inFloat1' (in 1-component vector of float)
|
||||
0:6 'inScalar' (in float)
|
||||
0:? Linker Objects
|
||||
0:? 'f1' (temp 1-component vector of float)
|
||||
0:? 'scalar' (temp float)
|
||||
0:? 'f1' (global 1-component vector of float)
|
||||
0:? 'scalar' (global float)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
@ -34,15 +36,17 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:1 move second child to first child (temp 1-component vector of float)
|
||||
0:1 'f1' (temp 1-component vector of float)
|
||||
0:1 Constant:
|
||||
0:1 1.000000
|
||||
0:2 move second child to first child (temp float)
|
||||
0:2 'scalar' (temp float)
|
||||
0:2 Constant:
|
||||
0:2 2.000000
|
||||
0:8 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
|
||||
0:1 Sequence
|
||||
0:1 move second child to first child (temp 1-component vector of float)
|
||||
0:1 'f1' (global 1-component vector of float)
|
||||
0:1 Constant:
|
||||
0:1 1.000000
|
||||
0:2 Sequence
|
||||
0:2 move second child to first child (temp float)
|
||||
0:2 'scalar' (global 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 'inFloat1' (in 1-component vector of float)
|
||||
0:5 'inScalar' (in float)
|
||||
@ -50,18 +54,18 @@ gl_FragCoord origin is upper left
|
||||
0:6 Branch: Return with expression
|
||||
0:6 add (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 'scalar' (temp float)
|
||||
0:6 'f1' (global 1-component vector of float)
|
||||
0:6 'scalar' (global float)
|
||||
0:6 vector-scale (temp 1-component vector of float)
|
||||
0:6 'inFloat1' (in 1-component vector of float)
|
||||
0:6 'inScalar' (in float)
|
||||
0:? Linker Objects
|
||||
0:? 'f1' (temp 1-component vector of float)
|
||||
0:? 'scalar' (temp float)
|
||||
0:? 'f1' (global 1-component vector of float)
|
||||
0:? 'scalar' (global float)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 24
|
||||
// Id's are bound by 27
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
@ -73,28 +77,33 @@ gl_FragCoord origin is upper left
|
||||
Name 11 "ShaderFunction(vf1;f1;"
|
||||
Name 9 "inFloat1"
|
||||
Name 10 "inScalar"
|
||||
Name 13 "f1"
|
||||
Name 15 "scalar"
|
||||
Name 14 "f1"
|
||||
Name 16 "scalar"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypePointer Function 6(float)
|
||||
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
|
||||
5: Label
|
||||
Store 14(f1) 15
|
||||
Store 16(scalar) 17
|
||||
FunctionEnd
|
||||
11(ShaderFunction(vf1;f1;): 6(float) Function None 8
|
||||
9(inFloat1): 7(ptr) FunctionParameter
|
||||
10(inScalar): 7(ptr) FunctionParameter
|
||||
12: Label
|
||||
13(f1): 7(ptr) Variable Function
|
||||
15(scalar): 7(ptr) Variable Function
|
||||
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)
|
||||
18: 6(float) Load 14(f1)
|
||||
19: 6(float) Load 16(scalar)
|
||||
20: 6(float) IMul 18 19
|
||||
21: 6(float) FAdd 17 20
|
||||
ReturnValue 21
|
||||
21: 6(float) Load 9(inFloat1)
|
||||
22: 6(float) Load 10(inScalar)
|
||||
23: 6(float) IMul 21 22
|
||||
24: 6(float) FAdd 20 23
|
||||
ReturnValue 24
|
||||
FunctionEnd
|
||||
|
@ -2,27 +2,28 @@ hlsl.float4.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:1 move second child to first child (temp 4-component vector of float)
|
||||
0:1 'AmbientColor' (temp 4-component vector of float)
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 0.500000
|
||||
0:? 0.000000
|
||||
0:? 1.000000
|
||||
0:12 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:1 Sequence
|
||||
0:1 move second child to first child (temp 4-component vector of float)
|
||||
0:1 'AmbientColor' (global 4-component vector of float)
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 0.500000
|
||||
0:? 0.000000
|
||||
0:? 1.000000
|
||||
0:12 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 Branch: Return with expression
|
||||
0:10 component-wise multiply (temp 4-component vector of float)
|
||||
0:10 'input' (in 4-component vector of float)
|
||||
0:10 'AmbientColor' (temp 4-component vector of float)
|
||||
0:10 'AmbientColor' (global 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'AmbientColor' (temp 4-component vector of float)
|
||||
0:? 'ff1' (temp bool Face)
|
||||
0:? 'ff2' (temp 4-component vector of float)
|
||||
0:? 'ff3' (temp 4-component vector of float)
|
||||
0:? 'ff4' (temp 4-component vector of float FragCoord)
|
||||
0:? 'AmbientColor' (global 4-component vector of float)
|
||||
0:? 'ff1' (global bool Face)
|
||||
0:? 'ff2' (global 4-component vector of float)
|
||||
0:? 'ff3' (global 4-component vector of float)
|
||||
0:? 'ff4' (global 4-component vector of float FragCoord)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
@ -31,31 +32,32 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:1 move second child to first child (temp 4-component vector of float)
|
||||
0:1 'AmbientColor' (temp 4-component vector of float)
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 0.500000
|
||||
0:? 0.000000
|
||||
0:? 1.000000
|
||||
0:12 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:1 Sequence
|
||||
0:1 move second child to first child (temp 4-component vector of float)
|
||||
0:1 'AmbientColor' (global 4-component vector of float)
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 0.500000
|
||||
0:? 0.000000
|
||||
0:? 1.000000
|
||||
0:12 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 Branch: Return with expression
|
||||
0:10 component-wise multiply (temp 4-component vector of float)
|
||||
0:10 'input' (in 4-component vector of float)
|
||||
0:10 'AmbientColor' (temp 4-component vector of float)
|
||||
0:10 'AmbientColor' (global 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'AmbientColor' (temp 4-component vector of float)
|
||||
0:? 'ff1' (temp bool Face)
|
||||
0:? 'ff2' (temp 4-component vector of float)
|
||||
0:? 'ff3' (temp 4-component vector of float)
|
||||
0:? 'ff4' (temp 4-component vector of float FragCoord)
|
||||
0:? 'AmbientColor' (global 4-component vector of float)
|
||||
0:? 'ff1' (global bool Face)
|
||||
0:? 'ff2' (global 4-component vector of float)
|
||||
0:? 'ff3' (global 4-component vector of float)
|
||||
0:? 'ff4' (global 4-component vector of float FragCoord)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 25
|
||||
// Id's are bound by 30
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
@ -67,33 +69,39 @@ gl_FragCoord origin is upper left
|
||||
Name 11 "ShaderFunction(vf4;"
|
||||
Name 10 "input"
|
||||
Name 14 "AmbientColor"
|
||||
Name 21 "ff1"
|
||||
Name 22 "ff2"
|
||||
Name 23 "ff3"
|
||||
Name 24 "ff4"
|
||||
Decorate 21(ff1) BuiltIn FrontFacing
|
||||
Decorate 24(ff4) BuiltIn FragCoord
|
||||
Name 26 "ff1"
|
||||
Name 27 "ff2"
|
||||
Name 28 "ff3"
|
||||
Name 29 "ff4"
|
||||
Decorate 26(ff1) BuiltIn FrontFacing
|
||||
Decorate 29(ff4) BuiltIn FragCoord
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Function 7(fvec4)
|
||||
9: TypeFunction 7(fvec4) 8(ptr)
|
||||
19: TypeBool
|
||||
20: TypePointer Function 19(bool)
|
||||
13: TypePointer Private 7(fvec4)
|
||||
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
|
||||
5: Label
|
||||
Store 14(AmbientColor) 18
|
||||
FunctionEnd
|
||||
11(ShaderFunction(vf4;): 7(fvec4) Function None 9
|
||||
10(input): 8(ptr) FunctionParameter
|
||||
12: Label
|
||||
14(AmbientColor): 8(ptr) Variable Function
|
||||
21(ff1): 20(ptr) Variable Function
|
||||
22(ff2): 8(ptr) Variable Function
|
||||
23(ff3): 8(ptr) Variable Function
|
||||
24(ff4): 8(ptr) Variable Function
|
||||
13: 7(fvec4) Load 10(input)
|
||||
15: 7(fvec4) Load 14(AmbientColor)
|
||||
16: 7(fvec4) FMul 13 15
|
||||
ReturnValue 16
|
||||
19: 7(fvec4) Load 10(input)
|
||||
20: 7(fvec4) Load 14(AmbientColor)
|
||||
21: 7(fvec4) FMul 19 20
|
||||
ReturnValue 21
|
||||
FunctionEnd
|
||||
|
@ -2,7 +2,7 @@ hlsl.forLoop.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:9 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
@ -52,6 +52,61 @@ gl_FragCoord origin is upper left
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:7 Constant:
|
||||
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
|
||||
|
||||
|
||||
@ -61,7 +116,7 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:9 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
@ -111,11 +166,66 @@ gl_FragCoord origin is upper left
|
||||
0:7 'input' (in 4-component vector of float)
|
||||
0:7 Constant:
|
||||
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
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 64
|
||||
// Id's are bound by 112
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
@ -125,6 +235,8 @@ gl_FragCoord origin is upper left
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 13 "input"
|
||||
Name 89 "ii"
|
||||
Name 109 "ii"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
10: TypeFloat 32
|
||||
@ -135,8 +247,20 @@ gl_FragCoord origin is upper left
|
||||
29: TypeBool
|
||||
30: TypeVector 29(bool) 4
|
||||
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
|
||||
5: Label
|
||||
89(ii): 88(ptr) Variable Function
|
||||
109(ii): 108(ptr) Variable Function
|
||||
Branch 6
|
||||
6: Label
|
||||
LoopMerge 8 9 None
|
||||
@ -216,5 +340,66 @@ gl_FragCoord origin is upper left
|
||||
Store 13(input) 63
|
||||
Branch 48
|
||||
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
|
||||
FunctionEnd
|
||||
|
@ -2,7 +2,7 @@ hlsl.if.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:34 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
@ -61,6 +61,19 @@ gl_FragCoord origin is upper left
|
||||
0:26 Branch: Return with expression
|
||||
0:26 Negate value (temp 4-component vector of float)
|
||||
0:26 'input' (in 4-component vector of float)
|
||||
0: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
|
||||
|
||||
|
||||
@ -70,7 +83,7 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:34 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
@ -129,11 +142,24 @@ gl_FragCoord origin is upper left
|
||||
0:26 Branch: Return with expression
|
||||
0:26 Negate value (temp 4-component vector of float)
|
||||
0:26 'input' (in 4-component vector of float)
|
||||
0: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
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 64
|
||||
// Id's are bound by 82
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
@ -143,6 +169,8 @@ gl_FragCoord origin is upper left
|
||||
Source HLSL 450
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 9 "input"
|
||||
Name 65 "ii"
|
||||
Name 78 "ii"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@ -151,8 +179,18 @@ gl_FragCoord origin is upper left
|
||||
9(input): 8(ptr) Variable Input
|
||||
12: TypeBool
|
||||
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
|
||||
5: Label
|
||||
65(ii): 64(ptr) Variable Function
|
||||
78(ii): 77(ptr) Variable Function
|
||||
10: 7(fvec4) Load 9(input)
|
||||
11: 7(fvec4) Load 9(input)
|
||||
14: 13(bvec4) FOrdEqual 10 11
|
||||
@ -219,5 +257,19 @@ gl_FragCoord origin is upper left
|
||||
62: 7(fvec4) FNegate 61
|
||||
ReturnValue 62
|
||||
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
|
||||
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
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:14 Function Definition: ComputeShaderFunction( (temp float)
|
||||
0:14 Function Definition: ComputeShaderFunction( (global float)
|
||||
0:3 Function Parameters:
|
||||
0:? Sequence
|
||||
0:4 MemoryBarrier (global void)
|
||||
@ -23,7 +23,7 @@ Linked compute stage:
|
||||
Shader version: 450
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:14 Function Definition: ComputeShaderFunction( (temp float)
|
||||
0:14 Function Definition: ComputeShaderFunction( (global float)
|
||||
0:3 Function Parameters:
|
||||
0:? Sequence
|
||||
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
|
||||
gl_FragCoord origin is upper left
|
||||
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 'inF1' (in float)
|
||||
0:3 'inF2' (in 2-component vector of float)
|
||||
@ -52,7 +52,7 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (temp void)
|
||||
0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void)
|
||||
0:3 Function Parameters:
|
||||
0:3 'inF1' (in float)
|
||||
0:3 'inF2' (in 2-component vector of float)
|
||||
|
@ -9,7 +9,7 @@ ERROR: 4 compilation errors. No code generated.
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
ERROR: node is still EOpNull!
|
||||
0:8 Function Definition: PixelShaderFunction(f1; (temp float)
|
||||
0:8 Function Definition: PixelShaderFunctionS(f1; (global float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'inF0' (in float)
|
||||
0:? Sequence
|
||||
@ -19,14 +19,14 @@ ERROR: node is still EOpNull!
|
||||
0:5 Branch: Return with expression
|
||||
0:5 Constant:
|
||||
0:5 0.000000
|
||||
0:14 Function Definition: PixelShaderFunction(vf1; (temp 1-component vector of float)
|
||||
0:14 Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float)
|
||||
0:9 Function Parameters:
|
||||
0:9 'inF0' (in 1-component vector of float)
|
||||
0:? Sequence
|
||||
0:11 Branch: Return with expression
|
||||
0:11 Constant:
|
||||
0:11 0.000000
|
||||
0:21 Function Definition: PixelShaderFunction(vf2; (temp 2-component vector of float)
|
||||
0:21 Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float)
|
||||
0:15 Function Parameters:
|
||||
0:15 'inF0' (in 2-component vector of float)
|
||||
0:? Sequence
|
||||
@ -37,7 +37,7 @@ ERROR: node is still EOpNull!
|
||||
0:? Constant:
|
||||
0:? 1.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 'inF0' (in 3-component vector of float)
|
||||
0:? Sequence
|
||||
@ -49,7 +49,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 1.000000
|
||||
0:? 2.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 'inF0' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
@ -71,7 +71,7 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
ERROR: node is still EOpNull!
|
||||
0:8 Function Definition: PixelShaderFunction(f1; (temp float)
|
||||
0:8 Function Definition: PixelShaderFunctionS(f1; (global float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'inF0' (in float)
|
||||
0:? Sequence
|
||||
@ -81,14 +81,14 @@ ERROR: node is still EOpNull!
|
||||
0:5 Branch: Return with expression
|
||||
0:5 Constant:
|
||||
0:5 0.000000
|
||||
0:14 Function Definition: PixelShaderFunction(vf1; (temp 1-component vector of float)
|
||||
0:14 Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float)
|
||||
0:9 Function Parameters:
|
||||
0:9 'inF0' (in 1-component vector of float)
|
||||
0:? Sequence
|
||||
0:11 Branch: Return with expression
|
||||
0:11 Constant:
|
||||
0:11 0.000000
|
||||
0:21 Function Definition: PixelShaderFunction(vf2; (temp 2-component vector of float)
|
||||
0:21 Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float)
|
||||
0:15 Function Parameters:
|
||||
0:15 'inF0' (in 2-component vector of float)
|
||||
0:? Sequence
|
||||
@ -99,7 +99,7 @@ ERROR: node is still EOpNull!
|
||||
0:? Constant:
|
||||
0:? 1.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 'inF0' (in 3-component vector of float)
|
||||
0:? Sequence
|
||||
@ -111,7 +111,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 1.000000
|
||||
0:? 2.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 'inF0' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2,38 +2,39 @@ hlsl.intrinsics.lit.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (temp void)
|
||||
0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (global void)
|
||||
0:2 Function Parameters:
|
||||
0:2 'n_dot_l' (in float)
|
||||
0:2 'n_dot_h' (in float)
|
||||
0:2 'm' (in float)
|
||||
0:? Sequence
|
||||
0:3 move second child to first child (temp 4-component vector of float)
|
||||
0:3 'r0' (temp 4-component vector of float)
|
||||
0:3 Construct vec4 (temp 4-component vector of float)
|
||||
0:3 Constant:
|
||||
0:3 1.000000
|
||||
0:3 max (temp float)
|
||||
0:3 'n_dot_l' (in float)
|
||||
0:3 Sequence
|
||||
0:3 move second child to first child (temp 4-component vector of float)
|
||||
0:3 'r0' (temp 4-component vector of float)
|
||||
0:3 Construct vec4 (temp 4-component vector of float)
|
||||
0:3 Constant:
|
||||
0:3 0.000000
|
||||
0:3 Test condition and select (temp float)
|
||||
0:3 Condition
|
||||
0:3 Compare Less Than (temp bool)
|
||||
0:3 min (temp float)
|
||||
0:3 'n_dot_l' (in float)
|
||||
0:3 'n_dot_h' (in float)
|
||||
0:3 1.000000
|
||||
0:3 max (temp float)
|
||||
0:3 'n_dot_l' (in float)
|
||||
0:3 Constant:
|
||||
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 0.000000
|
||||
0:3 false case
|
||||
0:3 component-wise multiply (temp float)
|
||||
0:3 'n_dot_h' (in float)
|
||||
0:3 'm' (in float)
|
||||
0:3 Constant:
|
||||
0:3 1.000000
|
||||
0:3 1.000000
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
@ -43,38 +44,39 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (temp void)
|
||||
0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (global void)
|
||||
0:2 Function Parameters:
|
||||
0:2 'n_dot_l' (in float)
|
||||
0:2 'n_dot_h' (in float)
|
||||
0:2 'm' (in float)
|
||||
0:? Sequence
|
||||
0:3 move second child to first child (temp 4-component vector of float)
|
||||
0:3 'r0' (temp 4-component vector of float)
|
||||
0:3 Construct vec4 (temp 4-component vector of float)
|
||||
0:3 Constant:
|
||||
0:3 1.000000
|
||||
0:3 max (temp float)
|
||||
0:3 'n_dot_l' (in float)
|
||||
0:3 Sequence
|
||||
0:3 move second child to first child (temp 4-component vector of float)
|
||||
0:3 'r0' (temp 4-component vector of float)
|
||||
0:3 Construct vec4 (temp 4-component vector of float)
|
||||
0:3 Constant:
|
||||
0:3 0.000000
|
||||
0:3 Test condition and select (temp float)
|
||||
0:3 Condition
|
||||
0:3 Compare Less Than (temp bool)
|
||||
0:3 min (temp float)
|
||||
0:3 'n_dot_l' (in float)
|
||||
0:3 'n_dot_h' (in float)
|
||||
0:3 1.000000
|
||||
0:3 max (temp float)
|
||||
0:3 'n_dot_l' (in float)
|
||||
0:3 Constant:
|
||||
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 0.000000
|
||||
0:3 false case
|
||||
0:3 component-wise multiply (temp float)
|
||||
0:3 'n_dot_h' (in float)
|
||||
0:3 'm' (in float)
|
||||
0:3 Constant:
|
||||
0:3 1.000000
|
||||
0:3 1.000000
|
||||
0:? Linker Objects
|
||||
|
||||
// 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:24: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:25: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:26: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:27: 'fwidth' : no matching overloaded function found
|
||||
ERROR: 0:28: 'InterlockedAdd' : no matching overloaded function found
|
||||
ERROR: 0:29: 'InterlockedAdd' : no matching overloaded function found
|
||||
@ -61,7 +60,6 @@ ERROR: 0:83: 'EvaluateAttributeSnapped' : no matching overloaded function found
|
||||
ERROR: 0:84: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:85: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:86: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:87: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:88: 'fwidth' : no matching overloaded function found
|
||||
ERROR: 0:89: 'InterlockedAdd' : no matching overloaded function found
|
||||
ERROR: 0:90: 'InterlockedAdd' : no matching overloaded function found
|
||||
@ -96,7 +94,6 @@ ERROR: 0:128: 'EvaluateAttributeSnapped' : no matching overloaded function found
|
||||
ERROR: 0:129: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:130: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:131: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:132: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:133: 'fwidth' : no matching overloaded function found
|
||||
ERROR: 0:134: 'InterlockedAdd' : no matching overloaded function found
|
||||
ERROR: 0:135: 'InterlockedAdd' : no matching overloaded function found
|
||||
@ -131,7 +128,6 @@ ERROR: 0:173: 'EvaluateAttributeSnapped' : no matching overloaded function found
|
||||
ERROR: 0:174: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:175: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:176: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:177: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:178: 'fwidth' : no matching overloaded function found
|
||||
ERROR: 0:179: 'InterlockedAdd' : no matching overloaded function found
|
||||
ERROR: 0:180: 'InterlockedAdd' : no matching overloaded function found
|
||||
@ -150,13 +146,13 @@ ERROR: 0:192: 'InterlockedXor' : no matching overloaded function found
|
||||
ERROR: 0:193: 'noise' : no matching overloaded function found
|
||||
ERROR: 0:194: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:195: 'transpose' : no matching overloaded function found
|
||||
ERROR: 151 compilation errors. No code generated.
|
||||
ERROR: 147 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
local_size = (1, 1, 1)
|
||||
ERROR: node is still EOpNull!
|
||||
0:56 Function Definition: ComputeShaderFunction(f1;f1;f1;i1; (temp float)
|
||||
0:56 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'inF0' (in float)
|
||||
0:2 'inF1' (in float)
|
||||
@ -201,8 +197,6 @@ ERROR: node is still EOpNull!
|
||||
0:24 0.000000
|
||||
0:25 Constant:
|
||||
0:25 0.000000
|
||||
0:26 Constant:
|
||||
0:26 0.000000
|
||||
0:27 Constant:
|
||||
0:27 0.000000
|
||||
0:28 Constant:
|
||||
@ -252,7 +246,7 @@ ERROR: node is still EOpNull!
|
||||
0:53 Branch: Return with expression
|
||||
0:53 Constant:
|
||||
0:53 0.000000
|
||||
0:65 Function Definition: ComputeShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
|
||||
0:65 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
|
||||
0:57 Function Parameters:
|
||||
0:57 'inF0' (in 1-component vector of float)
|
||||
0:57 'inF1' (in 1-component vector of float)
|
||||
@ -264,7 +258,7 @@ ERROR: node is still EOpNull!
|
||||
0:62 Branch: Return with expression
|
||||
0:62 Constant:
|
||||
0:62 0.000000
|
||||
0:112 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
|
||||
0:112 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
|
||||
0:66 Function Parameters:
|
||||
0:66 'inF0' (in 2-component vector of float)
|
||||
0:66 'inF1' (in 2-component vector of float)
|
||||
@ -307,8 +301,6 @@ ERROR: node is still EOpNull!
|
||||
0:85 0.000000
|
||||
0:86 Constant:
|
||||
0:86 0.000000
|
||||
0:87 Constant:
|
||||
0:87 0.000000
|
||||
0:88 Constant:
|
||||
0:88 0.000000
|
||||
0:89 Constant:
|
||||
@ -349,7 +341,7 @@ ERROR: node is still EOpNull!
|
||||
0:? Constant:
|
||||
0:? 1.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 'inF0' (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:131 Constant:
|
||||
0:131 0.000000
|
||||
0:132 Constant:
|
||||
0:132 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:134 Constant:
|
||||
@ -431,7 +421,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
|
||||
0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
|
||||
0:158 Function Parameters:
|
||||
0:158 'inF0' (in 4-component vector of float)
|
||||
0:158 'inF1' (in 4-component vector of float)
|
||||
@ -470,8 +460,6 @@ ERROR: node is still EOpNull!
|
||||
0:175 0.000000
|
||||
0:176 Constant:
|
||||
0:176 0.000000
|
||||
0:177 Constant:
|
||||
0:177 0.000000
|
||||
0:178 Constant:
|
||||
0:178 0.000000
|
||||
0:179 Constant:
|
||||
@ -523,7 +511,7 @@ Linked compute stage:
|
||||
Shader version: 450
|
||||
local_size = (1, 1, 1)
|
||||
ERROR: node is still EOpNull!
|
||||
0:56 Function Definition: ComputeShaderFunction(f1;f1;f1;i1; (temp float)
|
||||
0:56 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'inF0' (in float)
|
||||
0:2 'inF1' (in float)
|
||||
@ -568,8 +556,6 @@ ERROR: node is still EOpNull!
|
||||
0:24 0.000000
|
||||
0:25 Constant:
|
||||
0:25 0.000000
|
||||
0:26 Constant:
|
||||
0:26 0.000000
|
||||
0:27 Constant:
|
||||
0:27 0.000000
|
||||
0:28 Constant:
|
||||
@ -619,7 +605,7 @@ ERROR: node is still EOpNull!
|
||||
0:53 Branch: Return with expression
|
||||
0:53 Constant:
|
||||
0:53 0.000000
|
||||
0:65 Function Definition: ComputeShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
|
||||
0:65 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
|
||||
0:57 Function Parameters:
|
||||
0:57 'inF0' (in 1-component vector of float)
|
||||
0:57 'inF1' (in 1-component vector of float)
|
||||
@ -631,7 +617,7 @@ ERROR: node is still EOpNull!
|
||||
0:62 Branch: Return with expression
|
||||
0:62 Constant:
|
||||
0:62 0.000000
|
||||
0:112 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
|
||||
0:112 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
|
||||
0:66 Function Parameters:
|
||||
0:66 'inF0' (in 2-component vector of float)
|
||||
0:66 'inF1' (in 2-component vector of float)
|
||||
@ -674,8 +660,6 @@ ERROR: node is still EOpNull!
|
||||
0:85 0.000000
|
||||
0:86 Constant:
|
||||
0:86 0.000000
|
||||
0:87 Constant:
|
||||
0:87 0.000000
|
||||
0:88 Constant:
|
||||
0:88 0.000000
|
||||
0:89 Constant:
|
||||
@ -716,7 +700,7 @@ ERROR: node is still EOpNull!
|
||||
0:? Constant:
|
||||
0:? 1.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 'inF0' (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:131 Constant:
|
||||
0:131 0.000000
|
||||
0:132 Constant:
|
||||
0:132 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:134 Constant:
|
||||
@ -798,7 +780,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
|
||||
0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
|
||||
0:158 Function Parameters:
|
||||
0:158 'inF0' (in 4-component vector of float)
|
||||
0:158 'inF1' (in 4-component vector of float)
|
||||
@ -837,8 +819,6 @@ ERROR: node is still EOpNull!
|
||||
0:175 0.000000
|
||||
0:176 Constant:
|
||||
0:176 0.000000
|
||||
0:177 Constant:
|
||||
0:177 0.000000
|
||||
0:178 Constant:
|
||||
0:178 0.000000
|
||||
0:179 Constant:
|
||||
|
@ -8,7 +8,6 @@ ERROR: 0:10: 'determinant' : no matching overloaded function found
|
||||
ERROR: 0:12: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:13: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:14: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:15: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:23: 'length' : no matching overloaded function found
|
||||
ERROR: 0:24: 'msad4' : no matching overloaded function found
|
||||
ERROR: 0:25: 'normalize' : no matching overloaded function found
|
||||
@ -27,7 +26,6 @@ ERROR: 0:51: 'determinant' : no matching overloaded function found
|
||||
ERROR: 0:52: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:53: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:54: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:55: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:56: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:57: 'transpose' : no matching overloaded function found
|
||||
ERROR: 0:64: 'CheckAccessFullyMapped' : no matching overloaded function found
|
||||
@ -37,7 +35,6 @@ ERROR: 0:67: 'determinant' : no matching overloaded function found
|
||||
ERROR: 0:68: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:69: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:70: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:71: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:72: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:73: 'transpose' : no matching overloaded function found
|
||||
ERROR: 0:81: 'CheckAccessFullyMapped' : no matching overloaded function found
|
||||
@ -47,58 +44,54 @@ ERROR: 0:84: 'determinant' : no matching overloaded function found
|
||||
ERROR: 0:85: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:86: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:87: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:88: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:89: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:90: 'transpose' : no matching overloaded function found
|
||||
ERROR: 0:118: 'countbits' : no matching overloaded function found
|
||||
ERROR: 0:118: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||
ERROR: 0:118: 'cross' : no matching overloaded function found
|
||||
ERROR: 0:118: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:118: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:118: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:118: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:118: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:118: 'length' : no matching overloaded function found
|
||||
ERROR: 0:118: 'noise' : no matching overloaded function found
|
||||
ERROR: 0:118: 'normalize' : no matching overloaded function found
|
||||
ERROR: 0:118: 'reflect' : no matching overloaded function found
|
||||
ERROR: 0:118: 'refract' : no matching overloaded function found
|
||||
ERROR: 0:118: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:126: 'countbits' : no matching overloaded function found
|
||||
ERROR: 0:126: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||
ERROR: 0:126: 'cross' : no matching overloaded function found
|
||||
ERROR: 0:126: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:126: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:126: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:126: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:126: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:126: 'length' : no matching overloaded function found
|
||||
ERROR: 0:126: 'noise' : no matching overloaded function found
|
||||
ERROR: 0:126: 'normalize' : no matching overloaded function found
|
||||
ERROR: 0:126: 'reflect' : no matching overloaded function found
|
||||
ERROR: 0:126: 'refract' : no matching overloaded function found
|
||||
ERROR: 0:126: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:134: 'countbits' : no matching overloaded function found
|
||||
ERROR: 0:134: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||
ERROR: 0:134: 'cross' : no matching overloaded function found
|
||||
ERROR: 0:134: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:134: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:134: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:134: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:134: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:134: 'length' : no matching overloaded function found
|
||||
ERROR: 0:134: 'noise' : no matching overloaded function found
|
||||
ERROR: 0:134: 'normalize' : no matching overloaded function found
|
||||
ERROR: 0:134: 'reflect' : no matching overloaded function found
|
||||
ERROR: 0:134: 'refract' : no matching overloaded function found
|
||||
ERROR: 0:134: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 93 compilation errors. No code generated.
|
||||
ERROR: 0:117: 'countbits' : no matching overloaded function found
|
||||
ERROR: 0:117: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||
ERROR: 0:117: 'cross' : no matching overloaded function found
|
||||
ERROR: 0:117: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:117: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:117: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:117: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:117: 'length' : no matching overloaded function found
|
||||
ERROR: 0:117: 'noise' : no matching overloaded function found
|
||||
ERROR: 0:117: 'normalize' : no matching overloaded function found
|
||||
ERROR: 0:117: 'reflect' : no matching overloaded function found
|
||||
ERROR: 0:117: 'refract' : no matching overloaded function found
|
||||
ERROR: 0:117: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:125: 'countbits' : no matching overloaded function found
|
||||
ERROR: 0:125: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||
ERROR: 0:125: 'cross' : no matching overloaded function found
|
||||
ERROR: 0:125: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:125: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:125: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:125: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:125: 'length' : no matching overloaded function found
|
||||
ERROR: 0:125: 'noise' : no matching overloaded function found
|
||||
ERROR: 0:125: 'normalize' : no matching overloaded function found
|
||||
ERROR: 0:125: 'reflect' : no matching overloaded function found
|
||||
ERROR: 0:125: 'refract' : no matching overloaded function found
|
||||
ERROR: 0:125: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:133: 'countbits' : no matching overloaded function found
|
||||
ERROR: 0:133: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||
ERROR: 0:133: 'cross' : no matching overloaded function found
|
||||
ERROR: 0:133: 'f16tof32' : no matching overloaded function found
|
||||
ERROR: 0:133: 'firstbithigh' : no matching overloaded function found
|
||||
ERROR: 0:133: 'firstbitlow' : no matching overloaded function found
|
||||
ERROR: 0:133: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 0:133: 'length' : no matching overloaded function found
|
||||
ERROR: 0:133: 'noise' : no matching overloaded function found
|
||||
ERROR: 0:133: 'normalize' : no matching overloaded function found
|
||||
ERROR: 0:133: 'reflect' : no matching overloaded function found
|
||||
ERROR: 0:133: 'refract' : no matching overloaded function found
|
||||
ERROR: 0:133: 'reversebits' : no matching overloaded function found
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
ERROR: node is still EOpNull!
|
||||
0:35 Function Definition: PixelShaderFunction(f1;f1;f1;i1; (temp float)
|
||||
0:35 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'inF0' (in float)
|
||||
0:2 'inF1' (in float)
|
||||
@ -123,8 +116,6 @@ ERROR: node is still EOpNull!
|
||||
0:13 0.000000
|
||||
0:14 Constant:
|
||||
0:14 0.000000
|
||||
0:15 Constant:
|
||||
0:15 0.000000
|
||||
0:23 Constant:
|
||||
0:23 0.000000
|
||||
0:24 Constant:
|
||||
@ -144,7 +135,7 @@ ERROR: node is still EOpNull!
|
||||
0:32 Branch: Return with expression
|
||||
0:32 Constant:
|
||||
0:32 0.000000
|
||||
0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
|
||||
0:44 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
|
||||
0:36 Function Parameters:
|
||||
0:36 'inF0' (in 1-component vector of float)
|
||||
0:36 'inF1' (in 1-component vector of float)
|
||||
@ -156,7 +147,7 @@ ERROR: node is still EOpNull!
|
||||
0:41 Branch: Return with expression
|
||||
0:41 Constant:
|
||||
0:41 0.000000
|
||||
0:62 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
|
||||
0:62 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
|
||||
0:45 Function Parameters:
|
||||
0:45 'inF0' (in 2-component vector of float)
|
||||
0:45 'inF1' (in 2-component vector of float)
|
||||
@ -181,8 +172,6 @@ ERROR: node is still EOpNull!
|
||||
0:53 0.000000
|
||||
0:54 Constant:
|
||||
0:54 0.000000
|
||||
0:55 Constant:
|
||||
0:55 0.000000
|
||||
0:56 Constant:
|
||||
0:56 0.000000
|
||||
0:57 Constant:
|
||||
@ -191,7 +180,7 @@ ERROR: node is still EOpNull!
|
||||
0:? Constant:
|
||||
0:? 1.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 'inF0' (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:70 Constant:
|
||||
0:70 0.000000
|
||||
0:71 Constant:
|
||||
0:71 0.000000
|
||||
0:72 Constant:
|
||||
0:72 0.000000
|
||||
0:73 Constant:
|
||||
@ -223,7 +210,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:115 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
|
||||
0:114 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
|
||||
0:80 Function Parameters:
|
||||
0:80 'inF0' (in 4-component vector of float)
|
||||
0:80 'inF1' (in 4-component vector of float)
|
||||
@ -244,8 +231,6 @@ ERROR: node is still EOpNull!
|
||||
0:86 0.000000
|
||||
0:87 Constant:
|
||||
0:87 0.000000
|
||||
0:88 Constant:
|
||||
0:88 0.000000
|
||||
0:89 Constant:
|
||||
0:89 0.000000
|
||||
0:90 Constant:
|
||||
@ -256,81 +241,77 @@ ERROR: node is still EOpNull!
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:? 4.000000
|
||||
0:123 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
|
||||
0:116 Function Parameters:
|
||||
0:116 'inF0' (in 2X2 matrix of float)
|
||||
0:116 'inF1' (in 2X2 matrix of float)
|
||||
0:116 'inF2' (in 2X2 matrix of float)
|
||||
0:122 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
|
||||
0:115 Function Parameters:
|
||||
0:115 'inF0' (in 2X2 matrix of float)
|
||||
0:115 'inF1' (in 2X2 matrix of float)
|
||||
0:115 'inF2' (in 2X2 matrix of float)
|
||||
0:? Sequence
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:120 Branch: Return with expression
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:119 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 2.000000
|
||||
0:? 2.000000
|
||||
0:? 2.000000
|
||||
0:? 2.000000
|
||||
0:131 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float)
|
||||
0:124 Function Parameters:
|
||||
0:124 'inF0' (in 3X3 matrix of float)
|
||||
0:124 'inF1' (in 3X3 matrix of float)
|
||||
0:124 'inF2' (in 3X3 matrix of float)
|
||||
0:130 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
|
||||
0:123 Function Parameters:
|
||||
0:123 'inF0' (in 3X3 matrix of float)
|
||||
0:123 'inF1' (in 3X3 matrix of float)
|
||||
0:123 'inF2' (in 3X3 matrix of float)
|
||||
0:? Sequence
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:128 Branch: Return with expression
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:127 Branch: Return with expression
|
||||
0:? Constant:
|
||||
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:138 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float)
|
||||
0:132 Function Parameters:
|
||||
0:132 'inF0' (in 4X4 matrix of float)
|
||||
0:132 'inF1' (in 4X4 matrix of float)
|
||||
0:132 'inF2' (in 4X4 matrix of float)
|
||||
0:137 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
|
||||
0:131 Function Parameters:
|
||||
0:131 'inF0' (in 4X4 matrix of float)
|
||||
0:131 'inF1' (in 4X4 matrix of float)
|
||||
0:131 'inF2' (in 4X4 matrix of float)
|
||||
0:? Sequence
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:136 Branch: Return with expression
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:135 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
@ -402,7 +381,7 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
ERROR: node is still EOpNull!
|
||||
0:35 Function Definition: PixelShaderFunction(f1;f1;f1;i1; (temp float)
|
||||
0:35 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'inF0' (in float)
|
||||
0:2 'inF1' (in float)
|
||||
@ -427,8 +406,6 @@ ERROR: node is still EOpNull!
|
||||
0:13 0.000000
|
||||
0:14 Constant:
|
||||
0:14 0.000000
|
||||
0:15 Constant:
|
||||
0:15 0.000000
|
||||
0:23 Constant:
|
||||
0:23 0.000000
|
||||
0:24 Constant:
|
||||
@ -448,7 +425,7 @@ ERROR: node is still EOpNull!
|
||||
0:32 Branch: Return with expression
|
||||
0:32 Constant:
|
||||
0:32 0.000000
|
||||
0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
|
||||
0:44 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
|
||||
0:36 Function Parameters:
|
||||
0:36 'inF0' (in 1-component vector of float)
|
||||
0:36 'inF1' (in 1-component vector of float)
|
||||
@ -460,7 +437,7 @@ ERROR: node is still EOpNull!
|
||||
0:41 Branch: Return with expression
|
||||
0:41 Constant:
|
||||
0:41 0.000000
|
||||
0:62 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
|
||||
0:62 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
|
||||
0:45 Function Parameters:
|
||||
0:45 'inF0' (in 2-component vector of float)
|
||||
0:45 'inF1' (in 2-component vector of float)
|
||||
@ -485,8 +462,6 @@ ERROR: node is still EOpNull!
|
||||
0:53 0.000000
|
||||
0:54 Constant:
|
||||
0:54 0.000000
|
||||
0:55 Constant:
|
||||
0:55 0.000000
|
||||
0:56 Constant:
|
||||
0:56 0.000000
|
||||
0:57 Constant:
|
||||
@ -495,7 +470,7 @@ ERROR: node is still EOpNull!
|
||||
0:? Constant:
|
||||
0:? 1.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 'inF0' (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:70 Constant:
|
||||
0:70 0.000000
|
||||
0:71 Constant:
|
||||
0:71 0.000000
|
||||
0:72 Constant:
|
||||
0:72 0.000000
|
||||
0:73 Constant:
|
||||
@ -527,7 +500,7 @@ ERROR: node is still EOpNull!
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:115 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
|
||||
0:114 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
|
||||
0:80 Function Parameters:
|
||||
0:80 'inF0' (in 4-component vector of float)
|
||||
0:80 'inF1' (in 4-component vector of float)
|
||||
@ -548,8 +521,6 @@ ERROR: node is still EOpNull!
|
||||
0:86 0.000000
|
||||
0:87 Constant:
|
||||
0:87 0.000000
|
||||
0:88 Constant:
|
||||
0:88 0.000000
|
||||
0:89 Constant:
|
||||
0:89 0.000000
|
||||
0:90 Constant:
|
||||
@ -560,81 +531,77 @@ ERROR: node is still EOpNull!
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:? 4.000000
|
||||
0:123 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
|
||||
0:116 Function Parameters:
|
||||
0:116 'inF0' (in 2X2 matrix of float)
|
||||
0:116 'inF1' (in 2X2 matrix of float)
|
||||
0:116 'inF2' (in 2X2 matrix of float)
|
||||
0:122 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
|
||||
0:115 Function Parameters:
|
||||
0:115 'inF0' (in 2X2 matrix of float)
|
||||
0:115 'inF1' (in 2X2 matrix of float)
|
||||
0:115 'inF2' (in 2X2 matrix of float)
|
||||
0:? Sequence
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:118 Constant:
|
||||
0:118 0.000000
|
||||
0:120 Branch: Return with expression
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:117 Constant:
|
||||
0:117 0.000000
|
||||
0:119 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 2.000000
|
||||
0:? 2.000000
|
||||
0:? 2.000000
|
||||
0:? 2.000000
|
||||
0:131 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float)
|
||||
0:124 Function Parameters:
|
||||
0:124 'inF0' (in 3X3 matrix of float)
|
||||
0:124 'inF1' (in 3X3 matrix of float)
|
||||
0:124 'inF2' (in 3X3 matrix of float)
|
||||
0:130 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
|
||||
0:123 Function Parameters:
|
||||
0:123 'inF0' (in 3X3 matrix of float)
|
||||
0:123 'inF1' (in 3X3 matrix of float)
|
||||
0:123 'inF2' (in 3X3 matrix of float)
|
||||
0:? Sequence
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:126 Constant:
|
||||
0:126 0.000000
|
||||
0:128 Branch: Return with expression
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:125 Constant:
|
||||
0:125 0.000000
|
||||
0:127 Branch: Return with expression
|
||||
0:? Constant:
|
||||
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:138 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float)
|
||||
0:132 Function Parameters:
|
||||
0:132 'inF0' (in 4X4 matrix of float)
|
||||
0:132 'inF1' (in 4X4 matrix of float)
|
||||
0:132 'inF2' (in 4X4 matrix of float)
|
||||
0:137 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
|
||||
0:131 Function Parameters:
|
||||
0:131 'inF0' (in 4X4 matrix of float)
|
||||
0:131 'inF1' (in 4X4 matrix of float)
|
||||
0:131 'inF2' (in 4X4 matrix of float)
|
||||
0:? Sequence
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:134 Constant:
|
||||
0:134 0.000000
|
||||
0:136 Branch: Return with expression
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:133 Constant:
|
||||
0:133 0.000000
|
||||
0:135 Branch: Return with expression
|
||||
0:? Constant:
|
||||
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
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:1 move second child to first child (temp 1-component vector of float)
|
||||
0:1 'f1' (temp 1-component vector of float)
|
||||
0:1 Constant:
|
||||
0:1 1.000000
|
||||
0:11 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
|
||||
0:1 Sequence
|
||||
0:1 move second child to first child (temp 1-component vector of float)
|
||||
0:1 'f1' (global 1-component vector of float)
|
||||
0:1 Constant:
|
||||
0:1 1.000000
|
||||
0:11 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
|
||||
0:9 Function Parameters:
|
||||
0:9 'inFloat1' (in 1-component vector of float)
|
||||
0:9 'inScalar' (in float)
|
||||
0:? Linker Objects
|
||||
0:? 'f1' (temp 1-component vector of float)
|
||||
0:? 'fmat11' (temp 1X1 matrix of float)
|
||||
0:? 'fmat41' (temp 1X4 matrix of float)
|
||||
0:? 'fmat12' (temp 2X1 matrix of float)
|
||||
0:? 'dmat23' (temp 3X2 matrix of double)
|
||||
0:? 'int44' (temp 4X4 matrix of int)
|
||||
0:? 'f1' (global 1-component vector of float)
|
||||
0:? 'fmat11' (global 1X1 matrix of float)
|
||||
0:? 'fmat41' (global 1X4 matrix of float)
|
||||
0:? 'fmat12' (global 2X1 matrix of float)
|
||||
0:? 'dmat23' (global 3X2 matrix of double)
|
||||
0:? 'int44' (global 4X4 matrix of int)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
@ -25,25 +26,26 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:1 move second child to first child (temp 1-component vector of float)
|
||||
0:1 'f1' (temp 1-component vector of float)
|
||||
0:1 Constant:
|
||||
0:1 1.000000
|
||||
0:11 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
|
||||
0:1 Sequence
|
||||
0:1 move second child to first child (temp 1-component vector of float)
|
||||
0:1 'f1' (global 1-component vector of float)
|
||||
0:1 Constant:
|
||||
0:1 1.000000
|
||||
0:11 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
|
||||
0:9 Function Parameters:
|
||||
0:9 'inFloat1' (in 1-component vector of float)
|
||||
0:9 'inScalar' (in float)
|
||||
0:? Linker Objects
|
||||
0:? 'f1' (temp 1-component vector of float)
|
||||
0:? 'fmat11' (temp 1X1 matrix of float)
|
||||
0:? 'fmat41' (temp 1X4 matrix of float)
|
||||
0:? 'fmat12' (temp 2X1 matrix of float)
|
||||
0:? 'dmat23' (temp 3X2 matrix of double)
|
||||
0:? 'int44' (temp 4X4 matrix of int)
|
||||
0:? 'f1' (global 1-component vector of float)
|
||||
0:? 'fmat11' (global 1X1 matrix of float)
|
||||
0:? 'fmat41' (global 1X4 matrix of float)
|
||||
0:? 'fmat12' (global 2X1 matrix of float)
|
||||
0:? 'dmat23' (global 3X2 matrix of double)
|
||||
0:? 'int44' (global 4X4 matrix of int)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 36
|
||||
// Id's are bound by 38
|
||||
|
||||
Capability Shader
|
||||
Capability Float64
|
||||
@ -57,45 +59,48 @@ gl_FragCoord origin is upper left
|
||||
Name 9 "inFloat1"
|
||||
Name 10 "inScalar"
|
||||
Name 14 "f1"
|
||||
Name 18 "fmat11"
|
||||
Name 22 "fmat41"
|
||||
Name 25 "fmat12"
|
||||
Name 30 "dmat23"
|
||||
Name 35 "int44"
|
||||
Name 20 "fmat11"
|
||||
Name 24 "fmat41"
|
||||
Name 27 "fmat12"
|
||||
Name 32 "dmat23"
|
||||
Name 37 "int44"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypePointer Function 6(float)
|
||||
8: TypeFunction 6(float) 7(ptr) 7(ptr)
|
||||
15: TypeVector 6(float) 1
|
||||
16: TypeMatrix 15(fvec) 1
|
||||
17: TypePointer Function 16
|
||||
19: TypeVector 6(float) 4
|
||||
20: TypeMatrix 19(fvec4) 1
|
||||
21: TypePointer Function 20
|
||||
23: TypeMatrix 15(fvec) 2
|
||||
24: TypePointer Function 23
|
||||
26: TypeFloat 64
|
||||
27: TypeVector 26(float) 2
|
||||
28: TypeMatrix 27(fvec2) 3
|
||||
29: TypePointer Function 28
|
||||
31: TypeInt 32 1
|
||||
32: TypeVector 31(int) 4
|
||||
33: TypeMatrix 32(ivec4) 4
|
||||
34: TypePointer Function 33
|
||||
13: TypePointer Private 6(float)
|
||||
14(f1): 13(ptr) Variable Private
|
||||
15: 6(float) Constant 1065353216
|
||||
17: TypeVector 6(float) 1
|
||||
18: TypeMatrix 17(fvec) 1
|
||||
19: TypePointer Private 18
|
||||
20(fmat11): 19(ptr) Variable Private
|
||||
21: TypeVector 6(float) 4
|
||||
22: TypeMatrix 21(fvec4) 1
|
||||
23: TypePointer Private 22
|
||||
24(fmat41): 23(ptr) Variable Private
|
||||
25: TypeMatrix 17(fvec) 2
|
||||
26: TypePointer Private 25
|
||||
27(fmat12): 26(ptr) Variable Private
|
||||
28: TypeFloat 64
|
||||
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
|
||||
5: Label
|
||||
Store 14(f1) 15
|
||||
FunctionEnd
|
||||
11(ShaderFunction(vf1;f1;): 6(float) Function None 8
|
||||
9(inFloat1): 7(ptr) FunctionParameter
|
||||
10(inScalar): 7(ptr) FunctionParameter
|
||||
12: Label
|
||||
14(f1): 7(ptr) Variable Function
|
||||
18(fmat11): 17(ptr) Variable Function
|
||||
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
|
||||
16: 6(float) Undef
|
||||
ReturnValue 16
|
||||
FunctionEnd
|
||||
|
@ -2,7 +2,7 @@ hlsl.max.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:5 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float)
|
||||
0:5 Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input1' (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
|
||||
gl_FragCoord origin is upper left
|
||||
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 'input1' (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
|
||||
gl_FragCoord origin is upper left
|
||||
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 'a1' (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
|
||||
gl_FragCoord origin is upper left
|
||||
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 'a1' (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
|
||||
gl_FragCoord origin is upper left
|
||||
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 'a1' (in int)
|
||||
0:7 'a2' (in int)
|
||||
@ -34,7 +34,7 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
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 'a1' (in int)
|
||||
0:7 'a2' (in int)
|
||||
|
@ -2,7 +2,7 @@ hlsl.scope.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:31 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:31 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
@ -46,7 +46,7 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:31 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:31 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
|
@ -2,7 +2,7 @@ hlsl.sin.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
@ -18,7 +18,7 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
|
@ -2,7 +2,7 @@ hlsl.struct.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:40 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:40 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||
0:31 Function Parameters:
|
||||
0:31 'input' (in 4-component vector of float)
|
||||
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:37 move second child to first child (temp 4-component vector of float)
|
||||
0:37 i: direct index for structure (temp 4-component vector of float)
|
||||
0:37 's2' (temp structure{temp 4-component vector of float i})
|
||||
0:37 's2' (global structure{temp 4-component vector of float i})
|
||||
0:37 Constant:
|
||||
0:37 0 (const int)
|
||||
0:37 ff4: direct index for structure (temp 4-component vector of float FragCoord)
|
||||
0:37 's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
|
||||
0:37 '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 7 (const int)
|
||||
0:39 Branch: Return with expression
|
||||
0:39 'input' (in 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 's1' (temp structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d})
|
||||
0:? 's2' (temp structure{temp 4-component vector of float i})
|
||||
0:? 's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
|
||||
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' (global structure{temp 4-component vector of float i})
|
||||
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:
|
||||
@ -32,7 +32,7 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:40 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:40 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||
0:31 Function Parameters:
|
||||
0:31 'input' (in 4-component vector of float)
|
||||
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:37 move second child to first child (temp 4-component vector of float)
|
||||
0:37 i: direct index for structure (temp 4-component vector of float)
|
||||
0:37 's2' (temp structure{temp 4-component vector of float i})
|
||||
0:37 's2' (global structure{temp 4-component vector of float i})
|
||||
0:37 Constant:
|
||||
0:37 0 (const int)
|
||||
0:37 ff4: direct index for structure (temp 4-component vector of float FragCoord)
|
||||
0:37 's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
|
||||
0:37 '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 7 (const int)
|
||||
0:39 Branch: Return with expression
|
||||
0:39 'input' (in 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 's1' (temp structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d})
|
||||
0:? 's2' (temp structure{temp 4-component vector of float i})
|
||||
0:? 's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
|
||||
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' (global structure{temp 4-component vector of float i})
|
||||
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
|
||||
// Generated by (magic number): 80001
|
||||
@ -100,24 +100,24 @@ gl_FragCoord origin is upper left
|
||||
17: TypeFloat 32
|
||||
18: TypeVector 17(float) 4
|
||||
19: TypeStruct 18(fvec4)
|
||||
20: TypePointer Function 19(struct)
|
||||
20: TypePointer Private 19(struct)
|
||||
21(s2): 20(ptr) Variable Private
|
||||
22: TypeInt 32 1
|
||||
23: 22(int) Constant 0
|
||||
24: TypeVector 17(float) 2
|
||||
25: TypeStruct 18(fvec4) 6(bool) 17(float) 24(fvec2) 6(bool) 6(bool) 6(bool) 18(fvec4)
|
||||
26: TypePointer Function 25(struct)
|
||||
26: TypePointer Private 25(struct)
|
||||
27(s4): 26(ptr) Variable Private
|
||||
28: 22(int) Constant 7
|
||||
29: TypePointer Function 18(fvec4)
|
||||
29: TypePointer Private 18(fvec4)
|
||||
33: TypePointer Input 18(fvec4)
|
||||
34(input): 33(ptr) Variable Input
|
||||
37(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4)
|
||||
38: TypePointer Function 37(myS)
|
||||
38: TypePointer Private 37(myS)
|
||||
39(s1): 38(ptr) Variable Private
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
10(s3): 9(ptr) Variable Function
|
||||
21(s2): 20(ptr) Variable Function
|
||||
27(s4): 26(ptr) Variable Function
|
||||
39(s1): 38(ptr) Variable Function
|
||||
11: 8(FS) Load 10(s3)
|
||||
12: 8(FS) Load 10(s3)
|
||||
13: 7(bvec3) CompositeExtract 11 0
|
||||
|
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
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:1 move second child to first child (temp 4-component vector of float)
|
||||
0:1 'AmbientColor' (temp 4-component vector of float)
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 0.500000
|
||||
0:? 0.000000
|
||||
0:? 1.000000
|
||||
0:7 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:1 Sequence
|
||||
0:1 move second child to first child (temp 4-component vector of float)
|
||||
0:1 'AmbientColor' (global 4-component vector of float)
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 0.500000
|
||||
0:? 0.000000
|
||||
0:? 1.000000
|
||||
0:7 Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
|
||||
0:4 Function Parameters:
|
||||
0:4 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
@ -28,11 +29,11 @@ gl_FragCoord origin is upper left
|
||||
0:5 0 (const int)
|
||||
0:5 Construct vec4 (temp 4-component vector of float)
|
||||
0:5 direct index (temp float)
|
||||
0:5 'AmbientColor' (temp 4-component vector of float)
|
||||
0:5 'AmbientColor' (global 4-component vector of float)
|
||||
0:5 Constant:
|
||||
0:5 2 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'AmbientColor' (temp 4-component vector of float)
|
||||
0:? 'AmbientColor' (global 4-component vector of float)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
@ -41,14 +42,15 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:1 move second child to first child (temp 4-component vector of float)
|
||||
0:1 'AmbientColor' (temp 4-component vector of float)
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 0.500000
|
||||
0:? 0.000000
|
||||
0:? 1.000000
|
||||
0:7 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:1 Sequence
|
||||
0:1 move second child to first child (temp 4-component vector of float)
|
||||
0:1 'AmbientColor' (global 4-component vector of float)
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 0.500000
|
||||
0:? 0.000000
|
||||
0:? 1.000000
|
||||
0:7 Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
|
||||
0:4 Function Parameters:
|
||||
0:4 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
@ -67,15 +69,15 @@ gl_FragCoord origin is upper left
|
||||
0:5 0 (const int)
|
||||
0:5 Construct vec4 (temp 4-component vector of float)
|
||||
0:5 direct index (temp float)
|
||||
0:5 'AmbientColor' (temp 4-component vector of float)
|
||||
0:5 'AmbientColor' (global 4-component vector of float)
|
||||
0:5 Constant:
|
||||
0:5 2 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'AmbientColor' (temp 4-component vector of float)
|
||||
0:? 'AmbientColor' (global 4-component vector of float)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 25
|
||||
// Id's are bound by 30
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
@ -86,28 +88,34 @@ gl_FragCoord origin is upper left
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 11 "ShaderFunction(vf4;"
|
||||
Name 10 "input"
|
||||
Name 15 "AmbientColor"
|
||||
Name 14 "AmbientColor"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Function 7(fvec4)
|
||||
9: TypeFunction 7(fvec4) 8(ptr)
|
||||
16: TypeInt 32 0
|
||||
17: 16(int) Constant 2
|
||||
18: TypePointer Function 6(float)
|
||||
13: TypePointer Private 7(fvec4)
|
||||
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
|
||||
21: TypeInt 32 0
|
||||
22: 21(int) Constant 2
|
||||
23: TypePointer Private 6(float)
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
Store 14(AmbientColor) 18
|
||||
FunctionEnd
|
||||
11(ShaderFunction(vf4;): 7(fvec4) Function None 9
|
||||
10(input): 8(ptr) FunctionParameter
|
||||
12: Label
|
||||
15(AmbientColor): 8(ptr) Variable Function
|
||||
13: 7(fvec4) Load 10(input)
|
||||
14: 7(fvec4) VectorShuffle 13 13 3 3 1 0
|
||||
19: 18(ptr) AccessChain 15(AmbientColor) 17
|
||||
20: 6(float) Load 19
|
||||
21: 7(fvec4) CompositeConstruct 20 20 20 20
|
||||
22: 7(fvec4) FMul 14 21
|
||||
ReturnValue 22
|
||||
19: 7(fvec4) Load 10(input)
|
||||
20: 7(fvec4) VectorShuffle 19 19 3 3 1 0
|
||||
24: 23(ptr) AccessChain 14(AmbientColor) 22
|
||||
25: 6(float) Load 24
|
||||
26: 7(fvec4) CompositeConstruct 25 25 25 25
|
||||
27: 7(fvec4) FMul 20 26
|
||||
ReturnValue 27
|
||||
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
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:2 Function Definition: foo1( (temp void)
|
||||
0:2 Function Definition: foo1( (global void)
|
||||
0:1 Function Parameters:
|
||||
0:4 Function Definition: foo2( (temp void)
|
||||
0:4 Function Definition: foo2( (global void)
|
||||
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 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 Function Call: foo1( (temp void)
|
||||
0:7 Function Call: foo2( (temp void)
|
||||
0:6 Function Call: foo1( (global void)
|
||||
0:7 Function Call: foo2( (global void)
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
@ -21,16 +21,16 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:2 Function Definition: foo1( (temp void)
|
||||
0:2 Function Definition: foo1( (global void)
|
||||
0:1 Function Parameters:
|
||||
0:4 Function Definition: foo2( (temp void)
|
||||
0:4 Function Definition: foo2( (global void)
|
||||
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 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 Function Call: foo1( (temp void)
|
||||
0:7 Function Call: foo2( (temp void)
|
||||
0:6 Function Call: foo1( (global void)
|
||||
0:7 Function Call: foo2( (global void)
|
||||
0:? Linker Objects
|
||||
|
||||
// Module Version 10000
|
||||
|
@ -2,7 +2,7 @@ hlsl.whileLoop.frag
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
@ -39,7 +39,7 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||
0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
|
||||
0:2 Function Parameters:
|
||||
0:2 'input' (in 4-component vector of float)
|
||||
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:? 'c2' (layout(binding=3 ) 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, 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, ...})
|
||||
0:? 'ColorInv' (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)
|
||||
|
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 56(sampb4) DescriptorSet 0
|
||||
Decorate 56(sampb4) Binding 31
|
||||
Decorate 62(var) Flat
|
||||
Decorate 62(var) Location 0
|
||||
MemberDecorate 63(MS) 0 Location 17
|
||||
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
|
||||
Warning, version 310 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})
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
||||
|
||||
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})
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 73
|
||||
|
||||
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 182 "i3"
|
||||
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
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
|
@ -162,6 +162,7 @@ Linked vertex stage:
|
||||
Decorate 58(bBt3) BufferBlock
|
||||
Decorate 60(bBtn3) DescriptorSet 1
|
||||
Decorate 60(bBtn3) Binding 0
|
||||
Decorate 62(sout) Flat
|
||||
MemberDecorate 63(S) 0 Invariant
|
||||
MemberDecorate 63(S) 1 Invariant
|
||||
MemberDecorate 63(S) 2 Invariant
|
||||
|
@ -44,8 +44,11 @@ Linked fragment stage:
|
||||
Name 128 "samp2D"
|
||||
Name 134 "foo"
|
||||
Name 135 "foo2"
|
||||
Decorate 15(foo3) Flat
|
||||
Decorate 90(condition) Flat
|
||||
Decorate 128(samp2D) DescriptorSet 0
|
||||
Decorate 134(foo) Flat
|
||||
Decorate 135(foo2) Flat
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
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 69 "constructed"
|
||||
Decorate 10(Count) Flat
|
||||
Decorate 20(foo3) Flat
|
||||
Decorate 34(foo2) Flat
|
||||
Decorate 36(foo) Flat
|
||||
Decorate 59(samp2D) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
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()
|
||||
{
|
||||
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;
|
||||
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; ) {}
|
||||
for (; input != input; ) { 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 {
|
||||
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_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;
|
||||
|
||||
@ -41,13 +41,13 @@ float ComputeShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint
|
||||
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
|
||||
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;
|
||||
|
||||
@ -74,7 +74,7 @@ float2 ComputeShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0,
|
||||
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;
|
||||
|
||||
|
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);
|
||||
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
float1 PixelShaderFunction(float1 inF0)
|
||||
float1 PixelShaderFunction1(float1 inF0)
|
||||
{
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
float2 PixelShaderFunction(float2 inF0)
|
||||
float2 PixelShaderFunction2(float2 inF0)
|
||||
{
|
||||
f32tof16(inF0);
|
||||
|
||||
return float2(1,2);
|
||||
}
|
||||
|
||||
float3 PixelShaderFunction(float3 inF0)
|
||||
float3 PixelShaderFunction3(float3 inF0)
|
||||
{
|
||||
f32tof16(inF0);
|
||||
|
||||
|
@ -13,237 +13,243 @@ gs uint4 gs_ua4;
|
||||
gs uint4 gs_ub4;
|
||||
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;
|
||||
|
||||
all(inF0);
|
||||
abs(inF0);
|
||||
acos(inF0);
|
||||
any(inF0);
|
||||
asin(inF0);
|
||||
asint(inF0);
|
||||
asuint(inF0);
|
||||
asfloat(inU0);
|
||||
bool r000 = all(inF0);
|
||||
float r001 = abs(inF0);
|
||||
float r002 = acos(inF0);
|
||||
bool r003 = any(inF0);
|
||||
float r004 = asin(inF0);
|
||||
int r005 = asint(inF0);
|
||||
uint r006 = asuint(inF0);
|
||||
float r007 = asfloat(inU0);
|
||||
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
||||
atan(inF0);
|
||||
atan2(inF0, inF1);
|
||||
ceil(inF0);
|
||||
clamp(inF0, inF1, inF2);
|
||||
float r009 = atan(inF0);
|
||||
float r010 = atan2(inF0, inF1);
|
||||
float r011 = ceil(inF0);
|
||||
float r012 = clamp(inF0, inF1, inF2);
|
||||
clip(inF0);
|
||||
cos(inF0);
|
||||
cosh(inF0);
|
||||
countbits(7);
|
||||
ddx(inF0);
|
||||
ddx_coarse(inF0);
|
||||
ddx_fine(inF0);
|
||||
ddy(inF0);
|
||||
ddy_coarse(inF0);
|
||||
ddy_fine(inF0);
|
||||
degrees(inF0);
|
||||
float r014 = cos(inF0);
|
||||
float r015 = cosh(inF0);
|
||||
uint r016 = countbits(7);
|
||||
float r017 = ddx(inF0);
|
||||
float r018 = ddx_coarse(inF0);
|
||||
float r019 = ddx_fine(inF0);
|
||||
float r020 = ddy(inF0);
|
||||
float r021 = ddy_coarse(inF0);
|
||||
float r022 = ddy_fine(inF0);
|
||||
float r023 = degrees(inF0);
|
||||
// EvaluateAttributeAtCentroid(inF0);
|
||||
// EvaluateAttributeAtSample(inF0, 0);
|
||||
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
||||
exp(inF0);
|
||||
exp2(inF0);
|
||||
firstbithigh(7);
|
||||
firstbitlow(7);
|
||||
floor(inF0);
|
||||
float r027 = exp(inF0);
|
||||
float r028 = exp2(inF0);
|
||||
uint r029 = firstbithigh(7);
|
||||
uint r030 = firstbitlow(7);
|
||||
float r031 = floor(inF0);
|
||||
// TODO: fma(inD0, inD1, inD2);
|
||||
fmod(inF0, inF1);
|
||||
frac(inF0);
|
||||
frexp(inF0, inF1);
|
||||
fwidth(inF0);
|
||||
isinf(inF0);
|
||||
isnan(inF0);
|
||||
ldexp(inF0, inF1);
|
||||
log(inF0);
|
||||
log10(inF0);
|
||||
log2(inF0);
|
||||
max(inF0, inF1);
|
||||
min(inF0, inF1);
|
||||
pow(inF0, inF1);
|
||||
radians(inF0);
|
||||
rcp(inF0);
|
||||
reversebits(2);
|
||||
round(inF0);
|
||||
rsqrt(inF0);
|
||||
saturate(inF0);
|
||||
sign(inF0);
|
||||
sin(inF0);
|
||||
float r033 = fmod(inF0, inF1);
|
||||
float r034 = frac(inF0);
|
||||
float r035 = frexp(inF0, inF1);
|
||||
float r036 = fwidth(inF0);
|
||||
bool r037 = isinf(inF0);
|
||||
bool r038 = isnan(inF0);
|
||||
float r039 = ldexp(inF0, inF1);
|
||||
float r039a = lerp(inF0, inF1, inF2);
|
||||
float r040 = log(inF0);
|
||||
float r041 = log10(inF0);
|
||||
float r042 = log2(inF0);
|
||||
float r043 = max(inF0, inF1);
|
||||
float r044 = min(inF0, inF1);
|
||||
float r045 = pow(inF0, inF1);
|
||||
float r046 = radians(inF0);
|
||||
float r047 = rcp(inF0);
|
||||
uint r048 = reversebits(2);
|
||||
float r049 = round(inF0);
|
||||
float r050 = rsqrt(inF0);
|
||||
float r051 = saturate(inF0);
|
||||
float r052 = sign(inF0);
|
||||
float r053 = sin(inF0);
|
||||
sincos(inF0, inF1, inF2);
|
||||
sinh(inF0);
|
||||
smoothstep(inF0, inF1, inF2);
|
||||
sqrt(inF0);
|
||||
step(inF0, inF1);
|
||||
tan(inF0);
|
||||
tanh(inF0);
|
||||
float r055 = sinh(inF0);
|
||||
float r056 = smoothstep(inF0, inF1, inF2);
|
||||
float r057 = sqrt(inF0);
|
||||
float r058 = step(inF0, inF1);
|
||||
float r059 = tan(inF0);
|
||||
float r060 = tanh(inF0);
|
||||
// TODO: sampler intrinsics, when we can declare the types.
|
||||
trunc(inF0);
|
||||
float r061 = trunc(inF0);
|
||||
|
||||
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
|
||||
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;
|
||||
|
||||
all(inF0);
|
||||
abs(inF0);
|
||||
acos(inF0);
|
||||
any(inF0);
|
||||
asin(inF0);
|
||||
asint(inF0);
|
||||
asuint(inF0);
|
||||
asfloat(inU0);
|
||||
bool r000 = all(inF0);
|
||||
float2 r001 = abs(inF0);
|
||||
float2 r002 = acos(inF0);
|
||||
bool r003 = any(inF0);
|
||||
float2 r004 = asin(inF0);
|
||||
int2 r005 = asint(inF0);
|
||||
uint2 r006 = asuint(inF0);
|
||||
float2 r007 = asfloat(inU0);
|
||||
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
||||
atan(inF0);
|
||||
atan2(inF0, inF1);
|
||||
ceil(inF0);
|
||||
clamp(inF0, inF1, inF2);
|
||||
float2 r009 = atan(inF0);
|
||||
float2 r010 = atan2(inF0, inF1);
|
||||
float2 r011 = ceil(inF0);
|
||||
float2 r012 = clamp(inF0, inF1, inF2);
|
||||
clip(inF0);
|
||||
cos(inF0);
|
||||
cosh(inF0);
|
||||
countbits(int2(7,3));
|
||||
ddx(inF0);
|
||||
ddx_coarse(inF0);
|
||||
ddx_fine(inF0);
|
||||
ddy(inF0);
|
||||
ddy_coarse(inF0);
|
||||
ddy_fine(inF0);
|
||||
degrees(inF0);
|
||||
distance(inF0, inF1);
|
||||
dot(inF0, inF1);
|
||||
float2 r013 = cos(inF0);
|
||||
float2 r015 = cosh(inF0);
|
||||
uint2 r016 = countbits(int2(7,3));
|
||||
float2 r017 = ddx(inF0);
|
||||
float2 r018 = ddx_coarse(inF0);
|
||||
float2 r019 = ddx_fine(inF0);
|
||||
float2 r020 = ddy(inF0);
|
||||
float2 r021 = ddy_coarse(inF0);
|
||||
float2 r022 = ddy_fine(inF0);
|
||||
float2 r023 = degrees(inF0);
|
||||
// EvaluateAttributeAtCentroid(inF0);
|
||||
// EvaluateAttributeAtSample(inF0, 0);
|
||||
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
||||
exp(inF0);
|
||||
exp2(inF0);
|
||||
faceforward(inF0, inF1, inF2);
|
||||
firstbithigh(7);
|
||||
firstbitlow(7);
|
||||
floor(inF0);
|
||||
float r026 = distance(inF0, inF1);
|
||||
float r027 = dot(inF0, inF1);
|
||||
// EvaluateAttributeAtCentroid(inF0);
|
||||
// EvaluateAttributeAtSample(inF0, 0);
|
||||
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
||||
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);
|
||||
fmod(inF0, inF1);
|
||||
frac(inF0);
|
||||
frexp(inF0, inF1);
|
||||
fwidth(inF0);
|
||||
isinf(inF0);
|
||||
isnan(inF0);
|
||||
ldexp(inF0, inF1);
|
||||
length(inF0);
|
||||
log(inF0);
|
||||
log10(inF0);
|
||||
log2(inF0);
|
||||
max(inF0, inF1);
|
||||
min(inF0, inF1);
|
||||
normalize(inF0);
|
||||
pow(inF0, inF1);
|
||||
radians(inF0);
|
||||
rcp(inF0);
|
||||
reflect(inF0, inF1);
|
||||
refract(inF0, inF1, 2.0);
|
||||
reversebits(int2(1,2));
|
||||
round(inF0);
|
||||
rsqrt(inF0);
|
||||
saturate(inF0);
|
||||
sign(inF0);
|
||||
sin(inF0);
|
||||
float2 r035 = fmod(inF0, inF1);
|
||||
float2 r036 = frac(inF0);
|
||||
float2 r037 = frexp(inF0, inF1);
|
||||
float2 r038 = fwidth(inF0);
|
||||
bool2 r039 = isinf(inF0);
|
||||
bool2 r040 = isnan(inF0);
|
||||
float2 r041 = ldexp(inF0, inF1);
|
||||
float2 r039a = lerp(inF0, inF1, inF2);
|
||||
float r042 = length(inF0);
|
||||
float2 r043 = log(inF0);
|
||||
float2 r044 = log10(inF0);
|
||||
float2 r045 = log2(inF0);
|
||||
float2 r046 = max(inF0, inF1);
|
||||
float2 r047 = min(inF0, inF1);
|
||||
float2 r048 = normalize(inF0);
|
||||
float2 r049 = pow(inF0, inF1);
|
||||
float2 r050 = radians(inF0);
|
||||
float2 r051 = rcp(inF0);
|
||||
float2 r052 = reflect(inF0, inF1);
|
||||
float2 r053 = refract(inF0, inF1, 2.0);
|
||||
uint2 r054 = reversebits(uint2(1,2));
|
||||
float2 r055 = round(inF0);
|
||||
float2 r056 = rsqrt(inF0);
|
||||
float2 r057 = saturate(inF0);
|
||||
float2 r058 = sign(inF0);
|
||||
float2 r059 = sin(inF0);
|
||||
sincos(inF0, inF1, inF2);
|
||||
sinh(inF0);
|
||||
smoothstep(inF0, inF1, inF2);
|
||||
sqrt(inF0);
|
||||
step(inF0, inF1);
|
||||
tan(inF0);
|
||||
tanh(inF0);
|
||||
float2 r060 = sinh(inF0);
|
||||
float2 r061 = smoothstep(inF0, inF1, inF2);
|
||||
float2 r062 = sqrt(inF0);
|
||||
float2 r063 = step(inF0, inF1);
|
||||
float2 r064 = tan(inF0);
|
||||
float2 r065 = tanh(inF0);
|
||||
// TODO: sampler intrinsics, when we can declare the types.
|
||||
trunc(inF0);
|
||||
float2 r066 = trunc(inF0);
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float2(1,2);
|
||||
}
|
||||
|
||||
float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1)
|
||||
float3 PixelShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1)
|
||||
{
|
||||
uint3 out_u3;
|
||||
|
||||
all(inF0);
|
||||
abs(inF0);
|
||||
acos(inF0);
|
||||
any(inF0);
|
||||
asin(inF0);
|
||||
asint(inF0);
|
||||
asuint(inF0);
|
||||
asfloat(inU0);
|
||||
bool r000 = all(inF0);
|
||||
float3 r001 = abs(inF0);
|
||||
float3 r002 = acos(inF0);
|
||||
bool r003 = any(inF0);
|
||||
float3 r004 = asin(inF0);
|
||||
int3 r005 = asint(inF0);
|
||||
uint3 r006 = asuint(inF0);
|
||||
float3 r007 = asfloat(inU0);
|
||||
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
||||
atan(inF0);
|
||||
atan2(inF0, inF1);
|
||||
ceil(inF0);
|
||||
clamp(inF0, inF1, inF2);
|
||||
float3 r009 = atan(inF0);
|
||||
float3 r010 = atan2(inF0, inF1);
|
||||
float3 r011 = ceil(inF0);
|
||||
float3 r012 = clamp(inF0, inF1, inF2);
|
||||
clip(inF0);
|
||||
cos(inF0);
|
||||
cosh(inF0);
|
||||
countbits(int3(7,3,5));
|
||||
cross(inF0, inF1);
|
||||
ddx(inF0);
|
||||
ddx_coarse(inF0);
|
||||
ddx_fine(inF0);
|
||||
ddy(inF0);
|
||||
ddy_coarse(inF0);
|
||||
ddy_fine(inF0);
|
||||
degrees(inF0);
|
||||
distance(inF0, inF1);
|
||||
dot(inF0, inF1);
|
||||
float3 r013 = cos(inF0);
|
||||
float3 r014 = cosh(inF0);
|
||||
uint3 r015 = countbits(uint3(7,3,5));
|
||||
float3 r016 = cross(inF0, inF1);
|
||||
float3 r017 = ddx(inF0);
|
||||
float3 r018 = ddx_coarse(inF0);
|
||||
float3 r019 = ddx_fine(inF0);
|
||||
float3 r020 = ddy(inF0);
|
||||
float3 r021 = ddy_coarse(inF0);
|
||||
float3 r022 = ddy_fine(inF0);
|
||||
float3 r023 = degrees(inF0);
|
||||
float r024 = distance(inF0, inF1);
|
||||
float r025 = dot(inF0, inF1);
|
||||
// EvaluateAttributeAtCentroid(inF0);
|
||||
// EvaluateAttributeAtSample(inF0, 0);
|
||||
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
||||
exp(inF0);
|
||||
exp2(inF0);
|
||||
faceforward(inF0, inF1, inF2);
|
||||
firstbithigh(7);
|
||||
firstbitlow(7);
|
||||
floor(inF0);
|
||||
float3 r029 = exp(inF0);
|
||||
float3 r030 = exp2(inF0);
|
||||
float3 r031 = faceforward(inF0, inF1, inF2);
|
||||
uint3 r032 = firstbithigh(uint3(2,3,4));
|
||||
uint3 r033 = firstbitlow(uint3(2,3,4));
|
||||
float3 r034 = floor(inF0);
|
||||
// TODO: fma(inD0, inD1, inD2);
|
||||
fmod(inF0, inF1);
|
||||
frac(inF0);
|
||||
frexp(inF0, inF1);
|
||||
fwidth(inF0);
|
||||
isinf(inF0);
|
||||
isnan(inF0);
|
||||
ldexp(inF0, inF1);
|
||||
length(inF0);
|
||||
log(inF0);
|
||||
log10(inF0);
|
||||
log2(inF0);
|
||||
max(inF0, inF1);
|
||||
min(inF0, inF1);
|
||||
normalize(inF0);
|
||||
pow(inF0, inF1);
|
||||
radians(inF0);
|
||||
rcp(inF0);
|
||||
reflect(inF0, inF1);
|
||||
refract(inF0, inF1, 2.0);
|
||||
reversebits(int3(1,2,3));
|
||||
round(inF0);
|
||||
rsqrt(inF0);
|
||||
saturate(inF0);
|
||||
sign(inF0);
|
||||
sin(inF0);
|
||||
float3 r036 = fmod(inF0, inF1);
|
||||
float3 r037 = frac(inF0);
|
||||
float3 r038 = frexp(inF0, inF1);
|
||||
float3 r039 = fwidth(inF0);
|
||||
bool3 r040 = isinf(inF0);
|
||||
bool3 r041 = isnan(inF0);
|
||||
float3 r042 = ldexp(inF0, inF1);
|
||||
float3 r039a = lerp(inF0, inF1, inF2);
|
||||
float r043 = length(inF0);
|
||||
float3 r044 = log(inF0);
|
||||
float3 r045 = log10(inF0);
|
||||
float3 r046 = log2(inF0);
|
||||
float3 r047 = max(inF0, inF1);
|
||||
float3 r048 = min(inF0, inF1);
|
||||
float3 r049 = normalize(inF0);
|
||||
float3 r050 = pow(inF0, inF1);
|
||||
float3 r051 = radians(inF0);
|
||||
float3 r052 = rcp(inF0);
|
||||
float3 r053 = reflect(inF0, inF1);
|
||||
float3 r054 = refract(inF0, inF1, 2.0);
|
||||
uint3 r055 = reversebits(uint3(1,2,3));
|
||||
float3 r056 = round(inF0);
|
||||
float3 r057 = rsqrt(inF0);
|
||||
float3 r058 = saturate(inF0);
|
||||
float3 r059 = sign(inF0);
|
||||
float3 r060 = sin(inF0);
|
||||
sincos(inF0, inF1, inF2);
|
||||
sinh(inF0);
|
||||
smoothstep(inF0, inF1, inF2);
|
||||
sqrt(inF0);
|
||||
step(inF0, inF1);
|
||||
tan(inF0);
|
||||
tanh(inF0);
|
||||
float3 r061 = sinh(inF0);
|
||||
float3 r062 = smoothstep(inF0, inF1, inF2);
|
||||
float3 r063 = sqrt(inF0);
|
||||
float3 r064 = step(inF0, inF1);
|
||||
float3 r065 = tan(inF0);
|
||||
float3 r066 = tanh(inF0);
|
||||
// TODO: sampler intrinsics, when we can declare the types.
|
||||
trunc(inF0);
|
||||
float3 r067 = trunc(inF0);
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float3(1,2,3);
|
||||
@ -253,77 +259,78 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, ui
|
||||
{
|
||||
uint4 out_u4;
|
||||
|
||||
all(inF0);
|
||||
abs(inF0);
|
||||
acos(inF0);
|
||||
any(inF0);
|
||||
asin(inF0);
|
||||
asint(inF0);
|
||||
asuint(inF0);
|
||||
asfloat(inU0);
|
||||
bool r000 = all(inF0);
|
||||
float4 r001 = abs(inF0);
|
||||
float4 r002 = acos(inF0);
|
||||
bool r003 = any(inF0);
|
||||
float4 r004 = asin(inF0);
|
||||
int4 r005 = asint(inF0);
|
||||
uint4 r006 = asuint(inF0);
|
||||
float4 r007 = asfloat(inU0);
|
||||
// asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics
|
||||
atan(inF0);
|
||||
atan2(inF0, inF1);
|
||||
ceil(inF0);
|
||||
clamp(inF0, inF1, inF2);
|
||||
float4 r009 = atan(inF0);
|
||||
float4 r010 = atan2(inF0, inF1);
|
||||
float4 r011 = ceil(inF0);
|
||||
float4 r012 = clamp(inF0, inF1, inF2);
|
||||
clip(inF0);
|
||||
cos(inF0);
|
||||
cosh(inF0);
|
||||
countbits(int4(7,3,5,2));
|
||||
ddx(inF0);
|
||||
ddx_coarse(inF0);
|
||||
ddx_fine(inF0);
|
||||
ddy(inF0);
|
||||
ddy_coarse(inF0);
|
||||
ddy_fine(inF0);
|
||||
degrees(inF0);
|
||||
distance(inF0, inF1);
|
||||
dot(inF0, inF1);
|
||||
dst(inF0, inF1);
|
||||
float4 r013 = cos(inF0);
|
||||
float4 r014 = cosh(inF0);
|
||||
uint4 r015 = countbits(uint4(7,3,5,2));
|
||||
float4 r016 = ddx(inF0);
|
||||
float4 r017 = ddx_coarse(inF0);
|
||||
float4 r018 = ddx_fine(inF0);
|
||||
float4 r019 = ddy(inF0);
|
||||
float4 r020 = ddy_coarse(inF0);
|
||||
float4 r021 = ddy_fine(inF0);
|
||||
float4 r022 = degrees(inF0);
|
||||
float r023 = distance(inF0, inF1);
|
||||
float r024 = dot(inF0, inF1);
|
||||
float4 r025 = dst(inF0, inF1);
|
||||
// EvaluateAttributeAtCentroid(inF0);
|
||||
// EvaluateAttributeAtSample(inF0, 0);
|
||||
// TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
|
||||
exp(inF0);
|
||||
exp2(inF0);
|
||||
faceforward(inF0, inF1, inF2);
|
||||
firstbithigh(7);
|
||||
firstbitlow(7);
|
||||
floor(inF0);
|
||||
float4 r029 = exp(inF0);
|
||||
float4 r030 = exp2(inF0);
|
||||
float4 r031 = faceforward(inF0, inF1, inF2);
|
||||
uint4 r032 = firstbithigh(uint4(7,8,9,10));
|
||||
uint4 r033 = firstbitlow(uint4(7,8,9,10));
|
||||
float4 r034 = floor(inF0);
|
||||
// TODO: fma(inD0, inD1, inD2);
|
||||
fmod(inF0, inF1);
|
||||
frac(inF0);
|
||||
frexp(inF0, inF1);
|
||||
fwidth(inF0);
|
||||
isinf(inF0);
|
||||
isnan(inF0);
|
||||
ldexp(inF0, inF1);
|
||||
length(inF0);
|
||||
log(inF0);
|
||||
log10(inF0);
|
||||
log2(inF0);
|
||||
max(inF0, inF1);
|
||||
min(inF0, inF1);
|
||||
normalize(inF0);
|
||||
pow(inF0, inF1);
|
||||
radians(inF0);
|
||||
rcp(inF0);
|
||||
reflect(inF0, inF1);
|
||||
refract(inF0, inF1, 2.0);
|
||||
reversebits(int4(1,2,3,4));
|
||||
round(inF0);
|
||||
rsqrt(inF0);
|
||||
saturate(inF0);
|
||||
sign(inF0);
|
||||
sin(inF0);
|
||||
float4 r036 = fmod(inF0, inF1);
|
||||
float4 r037 = frac(inF0);
|
||||
float4 r038 = frexp(inF0, inF1);
|
||||
float4 r039 = fwidth(inF0);
|
||||
bool4 r040 = isinf(inF0);
|
||||
bool4 r041 = isnan(inF0);
|
||||
float4 r042 = ldexp(inF0, inF1);
|
||||
float4 r039a = lerp(inF0, inF1, inF2);
|
||||
float r043 = length(inF0);
|
||||
float4 r044 = log(inF0);
|
||||
float4 r045 = log10(inF0);
|
||||
float4 r046 = log2(inF0);
|
||||
float4 r047 = max(inF0, inF1);
|
||||
float4 r048 = min(inF0, inF1);
|
||||
float4 r049 = normalize(inF0);
|
||||
float4 r050 = pow(inF0, inF1);
|
||||
float4 r051 = radians(inF0);
|
||||
float4 r052 = rcp(inF0);
|
||||
float4 r053 = reflect(inF0, inF1);
|
||||
float4 r054 = refract(inF0, inF1, 2.0);
|
||||
uint4 r055 = reversebits(uint4(1,2,3,4));
|
||||
float4 r056 = round(inF0);
|
||||
float4 r057 = rsqrt(inF0);
|
||||
float4 r058 = saturate(inF0);
|
||||
float4 r059 = sign(inF0);
|
||||
float4 r060 = sin(inF0);
|
||||
sincos(inF0, inF1, inF2);
|
||||
sinh(inF0);
|
||||
smoothstep(inF0, inF1, inF2);
|
||||
sqrt(inF0);
|
||||
step(inF0, inF1);
|
||||
tan(inF0);
|
||||
tanh(inF0);
|
||||
float4 r061 = sinh(inF0);
|
||||
float4 r062 = smoothstep(inF0, inF1, inF2);
|
||||
float4 r063 = sqrt(inF0);
|
||||
float4 r064 = step(inF0, inF1);
|
||||
float4 r065 = tan(inF0);
|
||||
float4 r066 = tanh(inF0);
|
||||
// TODO: sampler intrinsics, when we can declare the types.
|
||||
trunc(inF0);
|
||||
float4 r067 = trunc(inF0);
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float4(1,2,3,4);
|
||||
@ -335,83 +342,82 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, ui
|
||||
// asuint(inF0); \
|
||||
|
||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||
#define MATFNS() \
|
||||
all(inF0); \
|
||||
abs(inF0); \
|
||||
acos(inF0); \
|
||||
any(inF0); \
|
||||
asin(inF0); \
|
||||
atan(inF0); \
|
||||
atan2(inF0, inF1); \
|
||||
ceil(inF0); \
|
||||
clip(inF0); \
|
||||
clamp(inF0, inF1, inF2); \
|
||||
cos(inF0); \
|
||||
cosh(inF0); \
|
||||
ddx(inF0); \
|
||||
ddx_coarse(inF0); \
|
||||
ddx_fine(inF0); \
|
||||
ddy(inF0); \
|
||||
ddy_coarse(inF0); \
|
||||
ddy_fine(inF0); \
|
||||
degrees(inF0); \
|
||||
determinant(inF0); \
|
||||
exp(inF0); \
|
||||
exp2(inF0); \
|
||||
firstbithigh(7); \
|
||||
firstbitlow(7); \
|
||||
floor(inF0); \
|
||||
fmod(inF0, inF1); \
|
||||
frac(inF0); \
|
||||
frexp(inF0, inF1); \
|
||||
fwidth(inF0); \
|
||||
ldexp(inF0, inF1); \
|
||||
log(inF0); \
|
||||
log10(inF0); \
|
||||
log2(inF0); \
|
||||
max(inF0, inF1); \
|
||||
min(inF0, inF1); \
|
||||
pow(inF0, inF1); \
|
||||
radians(inF0); \
|
||||
round(inF0); \
|
||||
rsqrt(inF0); \
|
||||
saturate(inF0); \
|
||||
sign(inF0); \
|
||||
sin(inF0); \
|
||||
sincos(inF0, inF1, inF2); \
|
||||
sinh(inF0); \
|
||||
smoothstep(inF0, inF1, inF2); \
|
||||
sqrt(inF0); \
|
||||
step(inF0, inF1); \
|
||||
tan(inF0); \
|
||||
tanh(inF0); \
|
||||
transpose(inF0); \
|
||||
trunc(inF0);
|
||||
#define MATFNS(MT) \
|
||||
bool r000 = all(inF0); \
|
||||
MT r001 = abs(inF0); \
|
||||
acos(inF0); \
|
||||
bool r003 = any(inF0); \
|
||||
MT r004 = asin(inF0); \
|
||||
MT r005 = atan(inF0); \
|
||||
MT r006 = atan2(inF0, inF1); \
|
||||
MT r007 = ceil(inF0); \
|
||||
clip(inF0); \
|
||||
MT r008 = clamp(inF0, inF1, inF2); \
|
||||
MT r009 = cos(inF0); \
|
||||
MT r010 = cosh(inF0); \
|
||||
MT r011 = ddx(inF0); \
|
||||
MT r012 = ddx_coarse(inF0); \
|
||||
MT r013 = ddx_fine(inF0); \
|
||||
MT r014 = ddy(inF0); \
|
||||
MT r015 = ddy_coarse(inF0); \
|
||||
MT r016 = ddy_fine(inF0); \
|
||||
MT r017 = degrees(inF0); \
|
||||
float r018 = determinant(inF0); \
|
||||
MT r019 = exp(inF0); \
|
||||
MT R020 = exp2(inF0); \
|
||||
MT r021 = floor(inF0); \
|
||||
MT r022 = fmod(inF0, inF1); \
|
||||
MT r023 = frac(inF0); \
|
||||
MT r024 = frexp(inF0, inF1); \
|
||||
MT r025 = fwidth(inF0); \
|
||||
MT r026 = ldexp(inF0, inF1); \
|
||||
MT r026a = lerp(inF0, inF1, inF2); \
|
||||
MT r027 = log(inF0); \
|
||||
MT r028 = log10(inF0); \
|
||||
MT r029 = log2(inF0); \
|
||||
MT r030 = max(inF0, inF1); \
|
||||
MT r031 = min(inF0, inF1); \
|
||||
MT r032 = pow(inF0, inF1); \
|
||||
MT r033 = radians(inF0); \
|
||||
MT r034 = round(inF0); \
|
||||
MT r035 = rsqrt(inF0); \
|
||||
MT r036 = saturate(inF0); \
|
||||
MT r037 = sign(inF0); \
|
||||
MT r038 = sin(inF0); \
|
||||
sincos(inF0, inF1, inF2); \
|
||||
MT r039 = sinh(inF0); \
|
||||
MT r049 = smoothstep(inF0, inF1, inF2); \
|
||||
MT r041 = sqrt(inF0); \
|
||||
MT r042 = step(inF0, inF1); \
|
||||
MT r043 = tan(inF0); \
|
||||
MT r044 = tanh(inF0); \
|
||||
transpose(inF0); \
|
||||
MT r046 = trunc(inF0);
|
||||
|
||||
// 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.
|
||||
MATFNS()
|
||||
MATFNS(float2x2);
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
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.
|
||||
MATFNS()
|
||||
MATFNS(float3x3);
|
||||
|
||||
// TODO: ... add when float1 prototypes are generated
|
||||
return float3x3(3,3,3,3,3,3,3,3,3);
|
||||
}
|
||||
|
||||
float4x4 PixelShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
|
||||
float4x4 PixelShaderFunction4x4(float4x4 inF0, float4x4 inF1, float4x4 inF2)
|
||||
{
|
||||
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
|
||||
MATFNS()
|
||||
MATFNS(float4x4);
|
||||
|
||||
// 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);
|
||||
@ -429,23 +435,49 @@ float4x4 PixelShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
|
||||
MT r8 = mul(inFM0, inFM1);
|
||||
|
||||
|
||||
void TestGenMul(float inF0, float inF1,
|
||||
void TestGenMul2(float inF0, float inF1,
|
||||
float2 inFV0, float2 inFV1,
|
||||
float2x2 inFM0, float2x2 inFM1)
|
||||
{
|
||||
TESTGENMUL(float, float2, float2x2);
|
||||
}
|
||||
|
||||
void TestGenMul(float inF0, float inF1,
|
||||
void TestGenMul3(float inF0, float inF1,
|
||||
float3 inFV0, float3 inFV1,
|
||||
float3x3 inFM0, float3x3 inFM1)
|
||||
{
|
||||
TESTGENMUL(float, float3, float3x3);
|
||||
}
|
||||
|
||||
void TestGenMul(float inF0, float inF1,
|
||||
void TestGenMul4(float inF0, float inF1,
|
||||
float4 inFV0, float4 inFV1,
|
||||
float4x4 inFM0, float4x4 inFM1)
|
||||
{
|
||||
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;
|
||||
|
||||
@ -23,7 +23,7 @@ float ComputeShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||
fwidth(inF0); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua, gs_ub); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
||||
@ -53,7 +53,7 @@ float ComputeShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
||||
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
|
||||
|
||||
@ -62,7 +62,7 @@ float1 ComputeShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0)
|
||||
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;
|
||||
|
||||
@ -84,7 +84,7 @@ float2 ComputeShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||
fwidth(inF0); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
||||
@ -109,7 +109,7 @@ float2 ComputeShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
|
||||
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;
|
||||
|
||||
@ -129,7 +129,7 @@ float3 ComputeShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0)
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||
fwidth(inF0); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
||||
@ -174,7 +174,7 @@ float4 ComputeShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0)
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||
fwidth(inF0); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
||||
|
@ -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
|
||||
// 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
|
||||
firstbithigh(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
|
||||
// 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
|
||||
@ -32,7 +32,7 @@ float PixelShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
||||
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
|
||||
|
||||
@ -41,7 +41,7 @@ float1 PixelShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0)
|
||||
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
|
||||
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
|
||||
firstbithigh(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
|
||||
transpose(inF0); // expected error: only valid on mats
|
||||
|
||||
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
|
||||
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
|
||||
firstbithigh(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
|
||||
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
|
||||
firstbithigh(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
|
||||
transpose(inF0); // expected error: only valid on mats
|
||||
|
||||
@ -100,7 +100,6 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0)
|
||||
f16tof32(inF0); \
|
||||
firstbithigh(inF0); \
|
||||
firstbitlow(inF0); \
|
||||
fma(inF0, inF1, inF2); \
|
||||
reversebits(inF0); \
|
||||
length(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.
|
||||
|
||||
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.
|
||||
MATFNS()
|
||||
@ -120,7 +119,7 @@ float2x2 PixelShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
|
||||
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.
|
||||
MATFNS()
|
||||
@ -128,7 +127,7 @@ float3x3 PixelShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
|
||||
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.
|
||||
MATFNS()
|
||||
|
@ -11,7 +11,7 @@ uint4 gs_ua4;
|
||||
uint4 gs_ub4;
|
||||
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;
|
||||
|
||||
@ -39,7 +39,7 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||
fwidth(inF0); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua, gs_ub); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
||||
@ -71,7 +71,7 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
||||
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
|
||||
|
||||
@ -80,7 +80,7 @@ float1 VertexShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0)
|
||||
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;
|
||||
|
||||
@ -102,7 +102,7 @@ float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||
fwidth(inF0); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
|
||||
@ -127,7 +127,7 @@ float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
|
||||
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;
|
||||
|
||||
@ -147,7 +147,7 @@ float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0)
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||
fwidth(inF0); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
|
||||
@ -192,7 +192,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0)
|
||||
f16tof32(inF0); // expected error: only integer inputs
|
||||
firstbithigh(inF0); // expected error: only integer inputs
|
||||
firstbitlow(inF0); // expected error: only integer inputs
|
||||
fma(inF0, inF1, inF2); // expected error: only double inputs
|
||||
// fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
|
||||
fwidth(inF0); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
|
||||
InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
|
||||
@ -234,7 +234,6 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0)
|
||||
f16tof32(inF0); \
|
||||
firstbithigh(inF0); \
|
||||
firstbitlow(inF0); \
|
||||
fma(inF0, inF1, inF2); \
|
||||
fwidth(inF0); \
|
||||
noise(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.
|
||||
|
||||
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.
|
||||
MATFNS()
|
||||
@ -256,7 +255,7 @@ float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
|
||||
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.
|
||||
MATFNS()
|
||||
@ -264,7 +263,7 @@ float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
|
||||
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.
|
||||
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);
|
||||
abs(inF0);
|
||||
@ -32,6 +32,7 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint i
|
||||
isinf(inF0);
|
||||
isnan(inF0);
|
||||
ldexp(inF0, inF1);
|
||||
lerp(inF0, inF1, inF2);
|
||||
log(inF0);
|
||||
log10(inF0);
|
||||
log2(inF0);
|
||||
@ -59,13 +60,13 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint i
|
||||
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
|
||||
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);
|
||||
abs(inF0);
|
||||
@ -102,6 +103,7 @@ float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, u
|
||||
isinf(inF0);
|
||||
isnan(inF0);
|
||||
ldexp(inF0, inF1);
|
||||
lerp(inF0, inF1, inF2);
|
||||
length(inF0);
|
||||
log(inF0);
|
||||
log10(inF0);
|
||||
@ -134,7 +136,7 @@ float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, u
|
||||
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);
|
||||
abs(inF0);
|
||||
@ -172,6 +174,7 @@ float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, u
|
||||
isinf(inF0);
|
||||
isnan(inF0);
|
||||
ldexp(inF0, inF1);
|
||||
lerp(inF0, inF1, inF2);
|
||||
length(inF0);
|
||||
log(inF0);
|
||||
log10(inF0);
|
||||
@ -204,7 +207,7 @@ float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, u
|
||||
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);
|
||||
abs(inF0);
|
||||
@ -242,6 +245,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, u
|
||||
isinf(inF0);
|
||||
isnan(inF0);
|
||||
ldexp(inF0, inF1);
|
||||
lerp(inF0, inF1, inF2);
|
||||
length(inF0);
|
||||
log(inF0);
|
||||
log10(inF0);
|
||||
@ -303,6 +307,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, u
|
||||
frac(inF0); \
|
||||
frexp(inF0, inF1); \
|
||||
ldexp(inF0, inF1); \
|
||||
lerp(inF0, inF1, inF2); \
|
||||
log(inF0); \
|
||||
log10(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.
|
||||
|
||||
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.
|
||||
MATFNS();
|
||||
@ -336,7 +341,7 @@ float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
|
||||
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.
|
||||
MATFNS();
|
||||
@ -345,7 +350,7 @@ float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
|
||||
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.
|
||||
MATFNS();
|
||||
@ -366,23 +371,49 @@ float4x4 VertexShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
|
||||
MT r8 = mul(inFM0, inFM1);
|
||||
|
||||
|
||||
void TestGenMul(float inF0, float inF1,
|
||||
float2 inFV0, float2 inFV1,
|
||||
float2x2 inFM0, float2x2 inFM1)
|
||||
void TestGenMul2(float inF0, float inF1,
|
||||
float2 inFV0, float2 inFV1,
|
||||
float2x2 inFM0, float2x2 inFM1)
|
||||
{
|
||||
TESTGENMUL(float, float2, float2x2);
|
||||
}
|
||||
|
||||
void TestGenMul(float inF0, float inF1,
|
||||
float3 inFV0, float3 inFV1,
|
||||
float3x3 inFM0, float3x3 inFM1)
|
||||
void TestGenMul3(float inF0, float inF1,
|
||||
float3 inFV0, float3 inFV1,
|
||||
float3x3 inFM0, float3x3 inFM1)
|
||||
{
|
||||
TESTGENMUL(float, float3, float3x3);
|
||||
}
|
||||
|
||||
void TestGenMul(float inF0, float inF1,
|
||||
float4 inFV0, float4 inFV1,
|
||||
float4x4 inFM0, float4x4 inFM1)
|
||||
void TestGenMul4(float inF0, float inF1,
|
||||
float4 inFV0, float4 inFV1,
|
||||
float4x4 inFM0, float4x4 inFM1)
|
||||
{
|
||||
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
|
||||
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 ]
|
||||
then
|
||||
while read t; do
|
||||
@ -37,87 +16,21 @@ if [ -a localtestlist ]
|
||||
done < localtestlist
|
||||
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
|
||||
|
||||
#
|
||||
# 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
|
||||
#
|
||||
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
|
||||
|
||||
#
|
||||
# multi-threaded test
|
||||
#
|
||||
echo Comparing single thread to multithread for all tests in current directory...
|
||||
$EXE -i *.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 > singleThread.out
|
||||
$EXE -i -C *.vert *.geom *.frag *.tes* *.comp -t > multiThread.out
|
||||
diff singleThread.out multiThread.out || HASERROR=1
|
||||
|
||||
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);
|
||||
uint val = atomicCounter(countArr[2]);
|
||||
atomicCounterDecrement(counter);
|
||||
atomicCounterIncrement(counter);
|
||||
}
|
||||
|
||||
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) {
|
||||
s.append("{");
|
||||
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()) {
|
||||
s.append((*structure)[i].type->getCompleteString());
|
||||
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