Merge pull request #1239 from KhronosGroup/deeper-access-chains

SPV: Create more access chains addressing a few swizzling issues.
This commit is contained in:
John Kessenich 2018-02-06 09:50:13 -07:00 коммит произвёл GitHub
Родитель 9ffc72d1a3 71b5da60d0
Коммит b5ab34590e
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
494 изменённых файлов: 1256 добавлений и 1207 удалений

Просмотреть файл

@ -6008,7 +6008,8 @@ int GetSpirvGeneratorVersion()
{
// return 1; // start
// return 2; // EOpAtomicCounterDecrement gets a post decrement, to map between GLSL -> SPIR-V
return 3; // change/correct barrier-instruction operands, to match memory model group decisions
// return 3; // change/correct barrier-instruction operands, to match memory model group decisions
return 4; // some deeper access chains: for dynamic vector component, and local Boolean component
}
// Write SPIR-V out to a binary file

Просмотреть файл

@ -1388,16 +1388,13 @@ Id Builder::createLvalueSwizzle(Id typeId, Id target, Id source, const std::vect
return createCompositeInsert(source, target, typeId, channels.front());
Instruction* swizzle = new Instruction(getUniqueId(), typeId, OpVectorShuffle);
assert(isVector(target));
swizzle->addIdOperand(target);
if (accessChain.component != NoResult)
// For dynamic component selection, source does not involve in l-value swizzle
swizzle->addIdOperand(target);
else {
assert(getNumComponents(source) == (int)channels.size());
assert(isVector(source));
swizzle->addIdOperand(source);
}
assert(getNumComponents(source) == (int)channels.size());
assert(isVector(source));
swizzle->addIdOperand(source);
// Set up an identity shuffle from the base value to the result value
unsigned int components[4];
@ -1406,12 +1403,8 @@ Id Builder::createLvalueSwizzle(Id typeId, Id target, Id source, const std::vect
components[i] = i;
// Punch in the l-value swizzle
for (int i = 0; i < (int)channels.size(); ++i) {
if (accessChain.component != NoResult)
components[i] = channels[i]; // Only shuffle the base value
else
components[channels[i]] = numTargetComponents + i;
}
for (int i = 0; i < (int)channels.size(); ++i)
components[channels[i]] = numTargetComponents + i;
// finish the instruction with these components selectors
for (int i = 0; i < numTargetComponents; ++i)
@ -2203,7 +2196,7 @@ void Builder::accessChainPushSwizzle(std::vector<unsigned>& swizzle, Id preSwizz
accessChain.preSwizzleBaseType = preSwizzleBaseType;
// if needed, propagate the swizzle for the current access chain
if (accessChain.swizzle.size()) {
if (accessChain.swizzle.size() > 0) {
std::vector<unsigned> oldSwizzle = accessChain.swizzle;
accessChain.swizzle.resize(0);
for (unsigned int i = 0; i < swizzle.size(); ++i) {
@ -2224,24 +2217,18 @@ void Builder::accessChainStore(Id rvalue)
transferAccessChainSwizzle(true);
Id base = collapseAccessChain();
Id source = rvalue;
// dynamic component should be gone
assert(accessChain.component == NoResult);
// If swizzle still exists, it is out-of-order or not full, we must load the target vector,
// extract and insert elements to perform writeMask and/or swizzle.
Id source = NoResult;
if (accessChain.swizzle.size()) {
if (accessChain.swizzle.size() > 0) {
Id tempBaseId = createLoad(base);
source = createLvalueSwizzle(getTypeId(tempBaseId), tempBaseId, rvalue, accessChain.swizzle);
source = createLvalueSwizzle(getTypeId(tempBaseId), tempBaseId, source, accessChain.swizzle);
}
// dynamic component selection
if (accessChain.component != NoResult) {
Id tempBaseId = (source == NoResult) ? createLoad(base) : source;
source = createVectorInsertDynamic(tempBaseId, getTypeId(tempBaseId), rvalue, accessChain.component);
}
if (source == NoResult)
source = rvalue;
createStore(source, base);
}
@ -2251,7 +2238,7 @@ Id Builder::accessChainLoad(Decoration precision, Id resultType)
Id id;
if (accessChain.isRValue) {
// transfer access chain, but keep it static, so we can stay in registers
// transfer access chain, but try to stay in registers
transferAccessChainSwizzle(false);
if (accessChain.indexChain.size() > 0) {
Id swizzleBase = accessChain.preSwizzleBaseType != NoType ? accessChain.preSwizzleBaseType : resultType;
@ -2299,16 +2286,16 @@ Id Builder::accessChainLoad(Decoration precision, Id resultType)
return id;
// Do remaining swizzling
// First, static swizzling
if (accessChain.swizzle.size()) {
// static swizzle
// Do the basic swizzle
if (accessChain.swizzle.size() > 0) {
Id swizzledType = getScalarTypeId(getTypeId(id));
if (accessChain.swizzle.size() > 1)
swizzledType = makeVectorType(swizzledType, (int)accessChain.swizzle.size());
id = createRvalueSwizzle(precision, swizzledType, id, accessChain.swizzle);
}
// dynamic single-component selection
// Do the dynamic component
if (accessChain.component != NoResult)
id = setPrecision(createVectorExtractDynamic(id, resultType, accessChain.component), precision);
@ -2458,26 +2445,66 @@ void Builder::dump(std::vector<unsigned int>& out) const
// Protected methods.
//
// Turn the described access chain in 'accessChain' into an instruction
// Turn the described access chain in 'accessChain' into an instruction(s)
// computing its address. This *cannot* include complex swizzles, which must
// be handled after this is called, but it does include swizzles that select
// an individual element, as a single address of a scalar type can be
// computed by an OpAccessChain instruction.
// be handled after this is called.
//
// Can generate code.
Id Builder::collapseAccessChain()
{
assert(accessChain.isRValue == false);
if (accessChain.indexChain.size() > 0) {
if (accessChain.instr == 0) {
StorageClass storageClass = (StorageClass)module.getStorageClass(getTypeId(accessChain.base));
accessChain.instr = createAccessChain(storageClass, accessChain.base, accessChain.indexChain);
}
// did we already emit an access chain for this?
if (accessChain.instr != NoResult)
return accessChain.instr;
} else
// If we have a dynamic component, we can still transfer
// that into a final operand to the access chain. We need to remap the
// dynamic component through the swizzle to get a new dynamic component to
// update.
//
// This was not done in transferAccessChainSwizzle() because it might
// generate code.
remapDynamicSwizzle();
if (accessChain.component != NoResult) {
// transfer the dynamic component to the access chain
accessChain.indexChain.push_back(accessChain.component);
accessChain.component = NoResult;
}
// note that non-trivial swizzling is left pending
// do we have an access chain?
if (accessChain.indexChain.size() == 0)
return accessChain.base;
// note that non-trivial swizzling is left pending...
// emit the access chain
StorageClass storageClass = (StorageClass)module.getStorageClass(getTypeId(accessChain.base));
accessChain.instr = createAccessChain(storageClass, accessChain.base, accessChain.indexChain);
return accessChain.instr;
}
// For a dynamic component selection of a swizzle.
//
// Turn the swizzle and dynamic component into just a dynamic component.
//
// Generates code.
void Builder::remapDynamicSwizzle()
{
// do we have a swizzle to remap a dynamic component through?
if (accessChain.component != NoResult && accessChain.swizzle.size() > 1) {
// build a vector of the swizzle for the component to map into
std::vector<Id> components;
for (int c = 0; c < accessChain.swizzle.size(); ++c)
components.push_back(makeUintConstant(accessChain.swizzle[c]));
Id mapType = makeVectorType(makeUintType(32), (int)accessChain.swizzle.size());
Id map = makeCompositeConstant(mapType, components);
// use it
accessChain.component = createVectorExtractDynamic(map, makeUintType(32), accessChain.component);
accessChain.swizzle.clear();
}
}
// clear out swizzle if it is redundant, that is reselecting the same components
@ -2503,38 +2530,30 @@ void Builder::simplifyAccessChainSwizzle()
// To the extent any swizzling can become part of the chain
// of accesses instead of a post operation, make it so.
// If 'dynamic' is true, include transferring a non-static component index,
// otherwise, only transfer static indexes.
// If 'dynamic' is true, include transferring the dynamic component,
// otherwise, leave it pending.
//
// Also, Boolean vectors are likely to be special. While
// for external storage, they should only be integer types,
// function-local bool vectors could use sub-word indexing,
// so keep that as a separate Insert/Extract on a loaded vector.
// Does not generate code. just updates the access chain.
void Builder::transferAccessChainSwizzle(bool dynamic)
{
// too complex?
if (accessChain.swizzle.size() > 1)
return;
// non existent?
if (accessChain.swizzle.size() == 0 && accessChain.component == NoResult)
return;
// single component...
// skip doing it for Boolean vectors
if (isBoolType(getContainedTypeId(accessChain.preSwizzleBaseType)))
// too complex?
// (this requires either a swizzle, or generating code for a dynamic component)
if (accessChain.swizzle.size() > 1)
return;
// single component, either in the swizzle and/or dynamic component
if (accessChain.swizzle.size() == 1) {
// handle static component
assert(accessChain.component == NoResult);
// handle static component selection
accessChain.indexChain.push_back(makeUintConstant(accessChain.swizzle.front()));
accessChain.swizzle.clear();
// note, the only valid remaining dynamic access would be to this one
// component, so don't bother even looking at accessChain.component
accessChain.preSwizzleBaseType = NoType;
accessChain.component = NoResult;
} else if (dynamic && accessChain.component != NoResult) {
assert(accessChain.swizzle.size() == 0);
// handle dynamic component
accessChain.indexChain.push_back(accessChain.component);
accessChain.preSwizzleBaseType = NoType;

Просмотреть файл

@ -533,12 +533,15 @@ public:
// push new swizzle onto the end of any existing swizzle, merging into a single swizzle
void accessChainPushSwizzle(std::vector<unsigned>& swizzle, Id preSwizzleBaseType);
// push a variable component selection onto the access chain; supporting only one, so unsided
// push a dynamic component selection onto the access chain, only applicable with a
// non-trivial swizzle or no swizzle
void accessChainPushComponent(Id component, Id preSwizzleBaseType)
{
accessChain.component = component;
if (accessChain.preSwizzleBaseType == NoType)
accessChain.preSwizzleBaseType = preSwizzleBaseType;
if (accessChain.swizzle.size() != 1) {
accessChain.component = component;
if (accessChain.preSwizzleBaseType == NoType)
accessChain.preSwizzleBaseType = preSwizzleBaseType;
}
}
// use accessChain and swizzle to store value
@ -577,6 +580,7 @@ public:
Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, unsigned v2) const;
Id findCompositeConstant(Op typeClass, const std::vector<Id>& comps) const;
Id collapseAccessChain();
void remapDynamicSwizzle();
void transferAccessChainSwizzle(bool dynamic);
void simplifyAccessChainSwizzle();
void createAndSetNoPredecessorBlock(const char*);

Просмотреть файл

@ -1,7 +1,7 @@
hlsl.aliasOpaque.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 87
Capability Shader

Просмотреть файл

@ -1,7 +1,7 @@
hlsl.flattenOpaque.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 185
Capability Shader

Просмотреть файл

@ -1,7 +1,7 @@
hlsl.flattenOpaqueInit.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 134
Capability Shader

Просмотреть файл

@ -1,7 +1,7 @@
hlsl.flattenOpaqueInitMix.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 80
Capability Shader

Просмотреть файл

@ -1,7 +1,7 @@
hlsl.flattenSubset.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 66
Capability Shader

Просмотреть файл

@ -1,7 +1,7 @@
hlsl.flattenSubset2.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 53
Capability Shader

Просмотреть файл

@ -1,7 +1,7 @@
hlsl.partialFlattenLocal.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 165
Capability Shader

Просмотреть файл

@ -1,7 +1,7 @@
hlsl.partialFlattenMixed.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 36
Capability Shader

Просмотреть файл

@ -2,7 +2,7 @@ glsl.entryPointRename.vert
ERROR: Source entry point must be "main"
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 20
Capability Shader

Просмотреть файл

@ -1,6 +1,6 @@
glsl.entryPointRename.vert
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 20
Capability Shader

Просмотреть файл

@ -2,7 +2,7 @@ glspv.version.frag
ERROR: #version: compilation for SPIR-V does not support the compatibility profile
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 6
Capability Shader

Просмотреть файл

@ -70,7 +70,7 @@ output primitive = line_strip
0:? 'OutputStream.ps' ( out float PointSize)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 36
Capability Geometry

Просмотреть файл

@ -38,7 +38,7 @@ Shader version: 500
0:? '@entryPointOutput' ( out float PointSize)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 16
Capability Shader

Просмотреть файл

@ -143,7 +143,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 64
Capability Shader

Просмотреть файл

@ -160,7 +160,7 @@ gl_FragCoord origin is upper left
0:? 'm' ( global 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 57
Capability Shader

Просмотреть файл

@ -345,7 +345,7 @@ gl_FragCoord origin is upper left
0:? 'ps_output.color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 143
Capability Shader

Просмотреть файл

@ -290,7 +290,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=1) in 3-element array of 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 126
Capability Shader

Просмотреть файл

@ -163,7 +163,7 @@ gl_FragCoord origin is upper left
0:? 'g_mystruct' ( global 2-element array of structure{ temp int i, temp float f})
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 72
Capability Shader

Просмотреть файл

@ -134,7 +134,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 57
Capability Shader

Просмотреть файл

@ -132,7 +132,7 @@ gl_FragCoord origin is upper left
0:? 'a5' (layout( location=4) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 58
Capability Shader

Просмотреть файл

@ -82,7 +82,7 @@ local_size = (4, 6, 8)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 39
Capability Shader

Просмотреть файл

@ -50,7 +50,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 24
Capability Shader

Просмотреть файл

@ -94,7 +94,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=8) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 51
Capability Shader

Просмотреть файл

@ -56,7 +56,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 28
Capability Shader

Просмотреть файл

@ -60,7 +60,7 @@ local_size = (1, 1, 1)
0:? 'gti' ( in int LocalInvocationID)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 35
Capability Shader

Просмотреть файл

@ -188,7 +188,7 @@ output primitive = line_strip
0:? 'OutputStream.something' (layout( location=1) out int)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 68
Capability Geometry

Просмотреть файл

@ -204,7 +204,7 @@ Shader version: 500
0:? '@entryPointOutput' ( out 4-component vector of float Position)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 99
Capability Shader

Просмотреть файл

@ -146,7 +146,7 @@ gl_FragCoord origin is upper left
0:? 'input' ( in 4-component vector of float FragCoord)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 73
Capability Shader

Просмотреть файл

@ -356,7 +356,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 148
Capability Shader

Просмотреть файл

@ -72,7 +72,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 39
Capability Shader

Просмотреть файл

@ -250,7 +250,7 @@ Shader version: 500
0:? 'input.Norm' (layout( location=1) in 3-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 106
Capability Shader

Просмотреть файл

@ -146,7 +146,7 @@ Shader version: 500
0:? '@entryPointOutput' ( out 4-component vector of float Position)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 58
Capability Shader

Просмотреть файл

@ -74,7 +74,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 30
Capability Shader

Просмотреть файл

@ -98,7 +98,7 @@ gl_FragCoord origin is upper left
0:? 'cull' ( in 1-element array of float CullDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 53
Capability Shader

Просмотреть файл

@ -550,7 +550,7 @@ output primitive = line_strip
0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 118
Capability Geometry

Просмотреть файл

@ -108,7 +108,7 @@ Shader version: 500
0:? 'cull' ( out 1-element array of float CullDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 46
Capability Shader

Просмотреть файл

@ -290,7 +290,7 @@ gl_FragCoord origin is upper left
0:? 'cull' ( in 4-element array of float CullDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 84
Capability Shader

Просмотреть файл

@ -724,7 +724,7 @@ output primitive = line_strip
0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 128
Capability Geometry

Просмотреть файл

@ -420,7 +420,7 @@ Shader version: 500
0:? 'cull' ( out 4-element array of float CullDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 89
Capability Shader

Просмотреть файл

@ -98,7 +98,7 @@ gl_FragCoord origin is upper left
0:? 'cull' ( in 2-element array of float CullDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 53
Capability Shader

Просмотреть файл

@ -630,7 +630,7 @@ output primitive = line_strip
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 127
Capability Geometry

Просмотреть файл

@ -136,7 +136,7 @@ Shader version: 500
0:? 'cull' ( out 2-element array of float CullDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 51
Capability Shader

Просмотреть файл

@ -174,7 +174,7 @@ gl_FragCoord origin is upper left
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 57
Capability Shader

Просмотреть файл

@ -612,7 +612,7 @@ output primitive = line_strip
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 130
Capability Geometry

Просмотреть файл

@ -270,7 +270,7 @@ Shader version: 500
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 72
Capability Shader

Просмотреть файл

@ -232,7 +232,7 @@ gl_FragCoord origin is upper left
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 62
Capability Shader

Просмотреть файл

@ -318,7 +318,7 @@ Shader version: 500
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 73
Capability Shader

Просмотреть файл

@ -282,7 +282,7 @@ gl_FragCoord origin is upper left
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 79
Capability Shader

Просмотреть файл

@ -428,7 +428,7 @@ Shader version: 500
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 86
Capability Shader

Просмотреть файл

@ -270,7 +270,7 @@ gl_FragCoord origin is upper left
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 78
Capability Shader

Просмотреть файл

@ -384,7 +384,7 @@ Shader version: 500
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 81
Capability Shader

Просмотреть файл

@ -186,7 +186,7 @@ gl_FragCoord origin is upper left
0:? 'v.clip1' ( in 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 65
Capability Shader

Просмотреть файл

@ -240,7 +240,7 @@ Shader version: 500
0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 62
Capability Shader

Просмотреть файл

@ -144,7 +144,7 @@ gl_FragCoord origin is upper left
0:? 'clip0' ( in 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 68
Capability Shader

Просмотреть файл

@ -194,7 +194,7 @@ Shader version: 500
0:? 'clip0' ( out 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 67
Capability Shader

Просмотреть файл

@ -356,7 +356,7 @@ triangle order = cw
0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 127
Capability Tessellation

Просмотреть файл

@ -262,7 +262,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 96
Capability Shader

Просмотреть файл

@ -522,7 +522,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 220
Capability Shader

Просмотреть файл

@ -132,7 +132,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 66
Capability Shader

Просмотреть файл

@ -268,7 +268,7 @@ Shader version: 500
0:? '@entryPointOutput' ( out 4-component vector of float Position)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 89
Capability Shader

Просмотреть файл

@ -104,7 +104,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 40
Capability Shader

Просмотреть файл

@ -544,7 +544,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out int)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 98
Capability Shader

Просмотреть файл

@ -1,6 +1,6 @@
hlsl.dashI.vert
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 40
Capability Shader

Просмотреть файл

@ -1,6 +1,6 @@
hlsl.deadFunctionMissingBody.vert
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 18
Capability Shader

Просмотреть файл

@ -50,7 +50,7 @@ using depth_greater
0:? 'depth' ( out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 20
Capability Shader

Просмотреть файл

@ -42,7 +42,7 @@ using depth_less
0:? '@entryPointOutput' ( out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 16
Capability Shader

Просмотреть файл

@ -108,7 +108,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 50
Capability Shader

Просмотреть файл

@ -144,7 +144,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 71
Capability Shader

Просмотреть файл

@ -286,7 +286,7 @@ triangle order = none
0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 103
Capability Tessellation

Просмотреть файл

@ -284,7 +284,7 @@ triangle order = none
0:? 'pcf_data.foo' (layout( location=2) patch in float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 98
Capability Tessellation

Просмотреть файл

@ -264,7 +264,7 @@ triangle order = none
0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 100
Capability Tessellation

Просмотреть файл

@ -60,7 +60,7 @@ Shader version: 500
0:? 'vertexIndex' (layout( location=0) in uint)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 29
Capability Shader

Просмотреть файл

@ -50,7 +50,7 @@ gl_FragCoord origin is upper left
0:? Linker Objects
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 27
Capability Shader

Просмотреть файл

@ -48,7 +48,7 @@ Shader version: 500
0:? Linker Objects
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 27
Capability Shader

Просмотреть файл

@ -166,7 +166,7 @@ gl_FragCoord origin is upper left
0:? 'i.i2' (layout( location=1) flat in 2-component vector of int)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 74
Capability Shader

Просмотреть файл

@ -244,7 +244,7 @@ gl_FragCoord origin is upper left
0:? 'out3.i' (layout( location=5) out 2-component vector of int)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 89
Capability Shader

Просмотреть файл

@ -72,7 +72,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 32
Capability Shader

Просмотреть файл

@ -1,6 +1,6 @@
hlsl.explicitDescriptorSet.frag
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 31
Capability Shader

Просмотреть файл

@ -1,6 +1,6 @@
hlsl.explicitDescriptorSet.frag
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 31
Capability Shader

Просмотреть файл

@ -118,7 +118,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.other_struct_member3' (layout( location=3) out float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 49
Capability Shader

Просмотреть файл

@ -295,7 +295,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 122
Capability Shader

Просмотреть файл

@ -165,7 +165,7 @@ Shader version: 500
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 82
Capability Shader

Просмотреть файл

@ -107,7 +107,7 @@ Shader version: 500
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 59
Capability Shader

Просмотреть файл

@ -115,7 +115,7 @@ gl_FragCoord origin is upper left
0:? 'vpos' (layout( location=0) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 54
Capability Shader

Просмотреть файл

@ -149,7 +149,7 @@ gl_FragCoord origin is upper left
0:? 'vpos' (layout( location=0) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 56
Capability Shader

Просмотреть файл

@ -65,7 +65,7 @@ gl_FragCoord origin is upper left
0:? 'scalar' ( global float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 27
Capability Shader

Просмотреть файл

@ -42,7 +42,7 @@ gl_FragCoord origin is upper left
0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform bool ff1, layout( offset=20) uniform float ff2, layout( binding=0 offset=32) uniform 4-component vector of float ff3, layout( binding=1 offset=48) uniform 4-component vector of float ff4})
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 26
Capability Shader

Просмотреть файл

@ -402,7 +402,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 183
Capability Shader

Просмотреть файл

@ -64,7 +64,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 25
Capability Shader

Просмотреть файл

@ -260,7 +260,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 124
Capability Shader

Просмотреть файл

@ -256,7 +256,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 135
Capability Shader

Просмотреть файл

@ -220,7 +220,7 @@ Shader version: 500
0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 126
Capability Shader

Просмотреть файл

@ -206,7 +206,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 114
Capability Shader

Просмотреть файл

@ -200,7 +200,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 97
Capability Shader

Просмотреть файл

@ -748,7 +748,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 255
Capability Shader

Просмотреть файл

@ -756,7 +756,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 265
Capability Shader

Просмотреть файл

@ -1260,7 +1260,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80003
// Generated by (magic number): 80004
// Id's are bound by 399
Capability Shader

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше