mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-08 19:40:06 +00:00
SPV: Create more access chains addressing a few swizzling issues.
- Fixes #1233 - Treats local bools like anything else - more consistently deals with a dynamic component selection
This commit is contained in:
parent
2651ccaec8
commit
5c3eed542d
@ -1388,16 +1388,13 @@ Id Builder::createLvalueSwizzle(Id typeId, Id target, Id source, const std::vect
|
|||||||
return createCompositeInsert(source, target, typeId, channels.front());
|
return createCompositeInsert(source, target, typeId, channels.front());
|
||||||
|
|
||||||
Instruction* swizzle = new Instruction(getUniqueId(), typeId, OpVectorShuffle);
|
Instruction* swizzle = new Instruction(getUniqueId(), typeId, OpVectorShuffle);
|
||||||
|
|
||||||
assert(isVector(target));
|
assert(isVector(target));
|
||||||
swizzle->addIdOperand(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(getNumComponents(source) == (int)channels.size());
|
||||||
assert(isVector(source));
|
assert(isVector(source));
|
||||||
swizzle->addIdOperand(source);
|
swizzle->addIdOperand(source);
|
||||||
}
|
|
||||||
|
|
||||||
// Set up an identity shuffle from the base value to the result value
|
// Set up an identity shuffle from the base value to the result value
|
||||||
unsigned int components[4];
|
unsigned int components[4];
|
||||||
@ -1406,12 +1403,8 @@ Id Builder::createLvalueSwizzle(Id typeId, Id target, Id source, const std::vect
|
|||||||
components[i] = i;
|
components[i] = i;
|
||||||
|
|
||||||
// Punch in the l-value swizzle
|
// Punch in the l-value swizzle
|
||||||
for (int i = 0; i < (int)channels.size(); ++i) {
|
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;
|
components[channels[i]] = numTargetComponents + i;
|
||||||
}
|
|
||||||
|
|
||||||
// finish the instruction with these components selectors
|
// finish the instruction with these components selectors
|
||||||
for (int i = 0; i < numTargetComponents; ++i)
|
for (int i = 0; i < numTargetComponents; ++i)
|
||||||
@ -2203,7 +2196,7 @@ void Builder::accessChainPushSwizzle(std::vector<unsigned>& swizzle, Id preSwizz
|
|||||||
accessChain.preSwizzleBaseType = preSwizzleBaseType;
|
accessChain.preSwizzleBaseType = preSwizzleBaseType;
|
||||||
|
|
||||||
// if needed, propagate the swizzle for the current access chain
|
// 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;
|
std::vector<unsigned> oldSwizzle = accessChain.swizzle;
|
||||||
accessChain.swizzle.resize(0);
|
accessChain.swizzle.resize(0);
|
||||||
for (unsigned int i = 0; i < swizzle.size(); ++i) {
|
for (unsigned int i = 0; i < swizzle.size(); ++i) {
|
||||||
@ -2224,24 +2217,18 @@ void Builder::accessChainStore(Id rvalue)
|
|||||||
|
|
||||||
transferAccessChainSwizzle(true);
|
transferAccessChainSwizzle(true);
|
||||||
Id base = collapseAccessChain();
|
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,
|
// 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.
|
// extract and insert elements to perform writeMask and/or swizzle.
|
||||||
Id source = NoResult;
|
if (accessChain.swizzle.size() > 0) {
|
||||||
if (accessChain.swizzle.size()) {
|
|
||||||
Id tempBaseId = createLoad(base);
|
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);
|
createStore(source, base);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2251,7 +2238,7 @@ Id Builder::accessChainLoad(Decoration precision, Id resultType)
|
|||||||
Id id;
|
Id id;
|
||||||
|
|
||||||
if (accessChain.isRValue) {
|
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);
|
transferAccessChainSwizzle(false);
|
||||||
if (accessChain.indexChain.size() > 0) {
|
if (accessChain.indexChain.size() > 0) {
|
||||||
Id swizzleBase = accessChain.preSwizzleBaseType != NoType ? accessChain.preSwizzleBaseType : resultType;
|
Id swizzleBase = accessChain.preSwizzleBaseType != NoType ? accessChain.preSwizzleBaseType : resultType;
|
||||||
@ -2299,16 +2286,16 @@ Id Builder::accessChainLoad(Decoration precision, Id resultType)
|
|||||||
return id;
|
return id;
|
||||||
|
|
||||||
// Do remaining swizzling
|
// Do remaining swizzling
|
||||||
// First, static swizzling
|
|
||||||
if (accessChain.swizzle.size()) {
|
// Do the basic swizzle
|
||||||
// static swizzle
|
if (accessChain.swizzle.size() > 0) {
|
||||||
Id swizzledType = getScalarTypeId(getTypeId(id));
|
Id swizzledType = getScalarTypeId(getTypeId(id));
|
||||||
if (accessChain.swizzle.size() > 1)
|
if (accessChain.swizzle.size() > 1)
|
||||||
swizzledType = makeVectorType(swizzledType, (int)accessChain.swizzle.size());
|
swizzledType = makeVectorType(swizzledType, (int)accessChain.swizzle.size());
|
||||||
id = createRvalueSwizzle(precision, swizzledType, id, accessChain.swizzle);
|
id = createRvalueSwizzle(precision, swizzledType, id, accessChain.swizzle);
|
||||||
}
|
}
|
||||||
|
|
||||||
// dynamic single-component selection
|
// Do the dynamic component
|
||||||
if (accessChain.component != NoResult)
|
if (accessChain.component != NoResult)
|
||||||
id = setPrecision(createVectorExtractDynamic(id, resultType, accessChain.component), precision);
|
id = setPrecision(createVectorExtractDynamic(id, resultType, accessChain.component), precision);
|
||||||
|
|
||||||
@ -2458,26 +2445,66 @@ void Builder::dump(std::vector<unsigned int>& out) const
|
|||||||
// Protected methods.
|
// 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
|
// computing its address. This *cannot* include complex swizzles, which must
|
||||||
// be handled after this is called, but it does include swizzles that select
|
// be handled after this is called.
|
||||||
// an individual element, as a single address of a scalar type can be
|
//
|
||||||
// computed by an OpAccessChain instruction.
|
// Can generate code.
|
||||||
Id Builder::collapseAccessChain()
|
Id Builder::collapseAccessChain()
|
||||||
{
|
{
|
||||||
assert(accessChain.isRValue == false);
|
assert(accessChain.isRValue == false);
|
||||||
|
|
||||||
if (accessChain.indexChain.size() > 0) {
|
// did we already emit an access chain for this?
|
||||||
if (accessChain.instr == 0) {
|
if (accessChain.instr != NoResult)
|
||||||
StorageClass storageClass = (StorageClass)module.getStorageClass(getTypeId(accessChain.base));
|
return accessChain.instr;
|
||||||
accessChain.instr = createAccessChain(storageClass, accessChain.base, accessChain.indexChain);
|
|
||||||
|
// 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
return accessChain.instr;
|
// note that non-trivial swizzling is left pending
|
||||||
} else
|
|
||||||
|
// do we have an access chain?
|
||||||
|
if (accessChain.indexChain.size() == 0)
|
||||||
return accessChain.base;
|
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
|
// 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
|
// To the extent any swizzling can become part of the chain
|
||||||
// of accesses instead of a post operation, make it so.
|
// of accesses instead of a post operation, make it so.
|
||||||
// If 'dynamic' is true, include transferring a non-static component index,
|
// If 'dynamic' is true, include transferring the dynamic component,
|
||||||
// otherwise, only transfer static indexes.
|
// otherwise, leave it pending.
|
||||||
//
|
//
|
||||||
// Also, Boolean vectors are likely to be special. While
|
// Does not generate code. just updates the access chain.
|
||||||
// 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.
|
|
||||||
void Builder::transferAccessChainSwizzle(bool dynamic)
|
void Builder::transferAccessChainSwizzle(bool dynamic)
|
||||||
{
|
{
|
||||||
// too complex?
|
|
||||||
if (accessChain.swizzle.size() > 1)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// non existent?
|
// non existent?
|
||||||
if (accessChain.swizzle.size() == 0 && accessChain.component == NoResult)
|
if (accessChain.swizzle.size() == 0 && accessChain.component == NoResult)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// single component...
|
// too complex?
|
||||||
|
// (this requires either a swizzle, or generating code for a dynamic component)
|
||||||
// skip doing it for Boolean vectors
|
if (accessChain.swizzle.size() > 1)
|
||||||
if (isBoolType(getContainedTypeId(accessChain.preSwizzleBaseType)))
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// single component, either in the swizzle and/or dynamic component
|
||||||
if (accessChain.swizzle.size() == 1) {
|
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.indexChain.push_back(makeUintConstant(accessChain.swizzle.front()));
|
||||||
accessChain.swizzle.clear();
|
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.preSwizzleBaseType = NoType;
|
||||||
accessChain.component = NoResult;
|
|
||||||
} else if (dynamic && accessChain.component != NoResult) {
|
} else if (dynamic && accessChain.component != NoResult) {
|
||||||
|
assert(accessChain.swizzle.size() == 0);
|
||||||
// handle dynamic component
|
// handle dynamic component
|
||||||
accessChain.indexChain.push_back(accessChain.component);
|
accessChain.indexChain.push_back(accessChain.component);
|
||||||
accessChain.preSwizzleBaseType = NoType;
|
accessChain.preSwizzleBaseType = NoType;
|
||||||
|
@ -533,13 +533,16 @@ public:
|
|||||||
// push new swizzle onto the end of any existing swizzle, merging into a single swizzle
|
// push new swizzle onto the end of any existing swizzle, merging into a single swizzle
|
||||||
void accessChainPushSwizzle(std::vector<unsigned>& swizzle, Id preSwizzleBaseType);
|
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)
|
void accessChainPushComponent(Id component, Id preSwizzleBaseType)
|
||||||
{
|
{
|
||||||
|
if (accessChain.swizzle.size() != 1) {
|
||||||
accessChain.component = component;
|
accessChain.component = component;
|
||||||
if (accessChain.preSwizzleBaseType == NoType)
|
if (accessChain.preSwizzleBaseType == NoType)
|
||||||
accessChain.preSwizzleBaseType = preSwizzleBaseType;
|
accessChain.preSwizzleBaseType = preSwizzleBaseType;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// use accessChain and swizzle to store value
|
// use accessChain and swizzle to store value
|
||||||
void accessChainStore(Id rvalue);
|
void accessChainStore(Id rvalue);
|
||||||
@ -577,6 +580,7 @@ public:
|
|||||||
Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, unsigned v2) const;
|
Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, unsigned v2) const;
|
||||||
Id findCompositeConstant(Op typeClass, const std::vector<Id>& comps) const;
|
Id findCompositeConstant(Op typeClass, const std::vector<Id>& comps) const;
|
||||||
Id collapseAccessChain();
|
Id collapseAccessChain();
|
||||||
|
void remapDynamicSwizzle();
|
||||||
void transferAccessChainSwizzle(bool dynamic);
|
void transferAccessChainSwizzle(bool dynamic);
|
||||||
void simplifyAccessChainSwizzle();
|
void simplifyAccessChainSwizzle();
|
||||||
void createAndSetNoPredecessorBlock(const char*);
|
void createAndSetNoPredecessorBlock(const char*);
|
||||||
|
@ -1368,18 +1368,18 @@ spv.400.frag
|
|||||||
997: 10(float) Select 995 996 21
|
997: 10(float) Select 995 996 21
|
||||||
998: 39(float) FConvert 997
|
998: 39(float) FConvert 997
|
||||||
999: 39(float) FAdd 994 998
|
999: 39(float) FAdd 994 998
|
||||||
1000: 437(bvec2) Load 439(bvec2v)
|
1000: 429(ptr) AccessChain 439(bvec2v) 33
|
||||||
1001: 428(bool) CompositeExtract 1000 0
|
1001: 428(bool) Load 1000
|
||||||
1002: 10(float) Select 1001 996 21
|
1002: 10(float) Select 1001 996 21
|
||||||
1003: 39(float) FConvert 1002
|
1003: 39(float) FConvert 1002
|
||||||
1004: 39(float) FAdd 999 1003
|
1004: 39(float) FAdd 999 1003
|
||||||
1005: 446(bvec3) Load 448(bvec3v)
|
1005: 429(ptr) AccessChain 448(bvec3v) 33
|
||||||
1006: 428(bool) CompositeExtract 1005 0
|
1006: 428(bool) Load 1005
|
||||||
1007: 10(float) Select 1006 996 21
|
1007: 10(float) Select 1006 996 21
|
||||||
1008: 39(float) FConvert 1007
|
1008: 39(float) FConvert 1007
|
||||||
1009: 39(float) FAdd 1004 1008
|
1009: 39(float) FAdd 1004 1008
|
||||||
1010: 455(bvec4) Load 457(bvec4v)
|
1010: 429(ptr) AccessChain 457(bvec4v) 33
|
||||||
1011: 428(bool) CompositeExtract 1010 0
|
1011: 428(bool) Load 1010
|
||||||
1012: 10(float) Select 1011 996 21
|
1012: 10(float) Select 1011 996 21
|
||||||
1013: 39(float) FConvert 1012
|
1013: 39(float) FConvert 1012
|
||||||
1014: 39(float) FAdd 1009 1013
|
1014: 39(float) FAdd 1009 1013
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
spv.accessChain.frag
|
spv.accessChain.frag
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80003
|
// Generated by (magic number): 80003
|
||||||
// Id's are bound by 206
|
// Id's are bound by 222
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4 "main" 65 158
|
EntryPoint Fragment 4 "main" 69 170
|
||||||
ExecutionMode 4 OriginUpperLeft
|
ExecutionMode 4 OriginUpperLeft
|
||||||
Source GLSL 420
|
Source GLSL 420
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
@ -50,12 +50,12 @@ spv.accessChain.frag
|
|||||||
Name 62 "GetColor13(struct-S-vf31;i1;"
|
Name 62 "GetColor13(struct-S-vf31;i1;"
|
||||||
Name 60 "i"
|
Name 60 "i"
|
||||||
Name 61 "comp"
|
Name 61 "comp"
|
||||||
Name 65 "OutColor"
|
Name 66 "GetColor14(struct-S-vf31;i1;"
|
||||||
Name 153 "s"
|
Name 64 "i"
|
||||||
Name 158 "u"
|
Name 65 "comp"
|
||||||
Name 159 "param"
|
Name 69 "OutColor"
|
||||||
Name 163 "param"
|
Name 165 "s"
|
||||||
Name 167 "param"
|
Name 170 "u"
|
||||||
Name 171 "param"
|
Name 171 "param"
|
||||||
Name 175 "param"
|
Name 175 "param"
|
||||||
Name 179 "param"
|
Name 179 "param"
|
||||||
@ -65,8 +65,12 @@ spv.accessChain.frag
|
|||||||
Name 195 "param"
|
Name 195 "param"
|
||||||
Name 199 "param"
|
Name 199 "param"
|
||||||
Name 203 "param"
|
Name 203 "param"
|
||||||
Decorate 65(OutColor) Location 0
|
Name 207 "param"
|
||||||
Decorate 158(u) Flat
|
Name 211 "param"
|
||||||
|
Name 215 "param"
|
||||||
|
Name 219 "param"
|
||||||
|
Decorate 69(OutColor) Location 0
|
||||||
|
Decorate 170(u) Flat
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
@ -76,25 +80,27 @@ spv.accessChain.frag
|
|||||||
13: TypeInt 32 1
|
13: TypeInt 32 1
|
||||||
14: TypePointer Function 13(int)
|
14: TypePointer Function 13(int)
|
||||||
15: TypeFunction 2 8(S) 14(ptr)
|
15: TypeFunction 2 8(S) 14(ptr)
|
||||||
64: TypePointer Output 7(fvec3)
|
68: TypePointer Output 7(fvec3)
|
||||||
65(OutColor): 64(ptr) Variable Output
|
69(OutColor): 68(ptr) Variable Output
|
||||||
66: 13(int) Constant 0
|
70: 13(int) Constant 0
|
||||||
67: TypeInt 32 0
|
71: TypeInt 32 0
|
||||||
68: 67(int) Constant 0
|
72: 71(int) Constant 0
|
||||||
95: TypeVector 6(float) 2
|
99: TypeVector 6(float) 2
|
||||||
109: 67(int) Constant 2
|
113: 71(int) Constant 2
|
||||||
136: TypePointer Output 6(float)
|
140: TypePointer Output 6(float)
|
||||||
150: 6(float) Constant 0
|
147: 71(int) Constant 1
|
||||||
151: 7(fvec3) ConstantComposite 150 150 150
|
148: TypeVector 71(int) 2
|
||||||
152: TypePointer Function 8(S)
|
149: 148(ivec2) ConstantComposite 113 147
|
||||||
157: TypePointer Input 13(int)
|
158: TypeVector 71(int) 3
|
||||||
158(u): 157(ptr) Variable Input
|
159: 158(ivec3) ConstantComposite 113 147 72
|
||||||
|
162: 6(float) Constant 0
|
||||||
|
163: 7(fvec3) ConstantComposite 162 162 162
|
||||||
|
164: TypePointer Function 8(S)
|
||||||
|
169: TypePointer Input 13(int)
|
||||||
|
170(u): 169(ptr) Variable Input
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
153(s): 152(ptr) Variable Function
|
165(s): 164(ptr) Variable Function
|
||||||
159(param): 14(ptr) Variable Function
|
|
||||||
163(param): 14(ptr) Variable Function
|
|
||||||
167(param): 14(ptr) Variable Function
|
|
||||||
171(param): 14(ptr) Variable Function
|
171(param): 14(ptr) Variable Function
|
||||||
175(param): 14(ptr) Variable Function
|
175(param): 14(ptr) Variable Function
|
||||||
179(param): 14(ptr) Variable Function
|
179(param): 14(ptr) Variable Function
|
||||||
@ -104,224 +110,242 @@ spv.accessChain.frag
|
|||||||
195(param): 14(ptr) Variable Function
|
195(param): 14(ptr) Variable Function
|
||||||
199(param): 14(ptr) Variable Function
|
199(param): 14(ptr) Variable Function
|
||||||
203(param): 14(ptr) Variable Function
|
203(param): 14(ptr) Variable Function
|
||||||
Store 65(OutColor) 151
|
207(param): 14(ptr) Variable Function
|
||||||
154: 8(S) Load 153(s)
|
211(param): 14(ptr) Variable Function
|
||||||
155: 2 FunctionCall 11(GetColor1(struct-S-vf31;) 154
|
215(param): 14(ptr) Variable Function
|
||||||
156: 8(S) Load 153(s)
|
219(param): 14(ptr) Variable Function
|
||||||
160: 13(int) Load 158(u)
|
Store 69(OutColor) 163
|
||||||
Store 159(param) 160
|
166: 8(S) Load 165(s)
|
||||||
161: 2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 156 159(param)
|
167: 2 FunctionCall 11(GetColor1(struct-S-vf31;) 166
|
||||||
162: 8(S) Load 153(s)
|
168: 8(S) Load 165(s)
|
||||||
164: 13(int) Load 158(u)
|
172: 13(int) Load 170(u)
|
||||||
Store 163(param) 164
|
|
||||||
165: 2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 162 163(param)
|
|
||||||
166: 8(S) Load 153(s)
|
|
||||||
168: 13(int) Load 158(u)
|
|
||||||
Store 167(param) 168
|
|
||||||
169: 2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 166 167(param)
|
|
||||||
170: 8(S) Load 153(s)
|
|
||||||
172: 13(int) Load 158(u)
|
|
||||||
Store 171(param) 172
|
Store 171(param) 172
|
||||||
173: 2 FunctionCall 30(GetColor5(struct-S-vf31;i1;) 170 171(param)
|
173: 2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 168 171(param)
|
||||||
174: 8(S) Load 153(s)
|
174: 8(S) Load 165(s)
|
||||||
176: 13(int) Load 158(u)
|
176: 13(int) Load 170(u)
|
||||||
Store 175(param) 176
|
Store 175(param) 176
|
||||||
177: 2 FunctionCall 34(GetColor6(struct-S-vf31;i1;) 174 175(param)
|
177: 2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 174 175(param)
|
||||||
178: 8(S) Load 153(s)
|
178: 8(S) Load 165(s)
|
||||||
180: 13(int) Load 158(u)
|
180: 13(int) Load 170(u)
|
||||||
Store 179(param) 180
|
Store 179(param) 180
|
||||||
181: 2 FunctionCall 38(GetColor7(struct-S-vf31;i1;) 178 179(param)
|
181: 2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 178 179(param)
|
||||||
182: 8(S) Load 153(s)
|
182: 8(S) Load 165(s)
|
||||||
184: 13(int) Load 158(u)
|
184: 13(int) Load 170(u)
|
||||||
Store 183(param) 184
|
Store 183(param) 184
|
||||||
185: 2 FunctionCall 42(GetColor8(struct-S-vf31;i1;) 182 183(param)
|
185: 2 FunctionCall 30(GetColor5(struct-S-vf31;i1;) 182 183(param)
|
||||||
186: 8(S) Load 153(s)
|
186: 8(S) Load 165(s)
|
||||||
188: 13(int) Load 158(u)
|
188: 13(int) Load 170(u)
|
||||||
Store 187(param) 188
|
Store 187(param) 188
|
||||||
189: 2 FunctionCall 46(GetColor9(struct-S-vf31;i1;) 186 187(param)
|
189: 2 FunctionCall 34(GetColor6(struct-S-vf31;i1;) 186 187(param)
|
||||||
190: 8(S) Load 153(s)
|
190: 8(S) Load 165(s)
|
||||||
192: 13(int) Load 158(u)
|
192: 13(int) Load 170(u)
|
||||||
Store 191(param) 192
|
Store 191(param) 192
|
||||||
193: 2 FunctionCall 50(GetColor10(struct-S-vf31;i1;) 190 191(param)
|
193: 2 FunctionCall 38(GetColor7(struct-S-vf31;i1;) 190 191(param)
|
||||||
194: 8(S) Load 153(s)
|
194: 8(S) Load 165(s)
|
||||||
196: 13(int) Load 158(u)
|
196: 13(int) Load 170(u)
|
||||||
Store 195(param) 196
|
Store 195(param) 196
|
||||||
197: 2 FunctionCall 54(GetColor11(struct-S-vf31;i1;) 194 195(param)
|
197: 2 FunctionCall 42(GetColor8(struct-S-vf31;i1;) 194 195(param)
|
||||||
198: 8(S) Load 153(s)
|
198: 8(S) Load 165(s)
|
||||||
200: 13(int) Load 158(u)
|
200: 13(int) Load 170(u)
|
||||||
Store 199(param) 200
|
Store 199(param) 200
|
||||||
201: 2 FunctionCall 58(GetColor12(struct-S-vf31;i1;) 198 199(param)
|
201: 2 FunctionCall 46(GetColor9(struct-S-vf31;i1;) 198 199(param)
|
||||||
202: 8(S) Load 153(s)
|
202: 8(S) Load 165(s)
|
||||||
204: 13(int) Load 158(u)
|
204: 13(int) Load 170(u)
|
||||||
Store 203(param) 204
|
Store 203(param) 204
|
||||||
205: 2 FunctionCall 62(GetColor13(struct-S-vf31;i1;) 202 203(param)
|
205: 2 FunctionCall 50(GetColor10(struct-S-vf31;i1;) 202 203(param)
|
||||||
|
206: 8(S) Load 165(s)
|
||||||
|
208: 13(int) Load 170(u)
|
||||||
|
Store 207(param) 208
|
||||||
|
209: 2 FunctionCall 54(GetColor11(struct-S-vf31;i1;) 206 207(param)
|
||||||
|
210: 8(S) Load 165(s)
|
||||||
|
212: 13(int) Load 170(u)
|
||||||
|
Store 211(param) 212
|
||||||
|
213: 2 FunctionCall 58(GetColor12(struct-S-vf31;i1;) 210 211(param)
|
||||||
|
214: 8(S) Load 165(s)
|
||||||
|
216: 13(int) Load 170(u)
|
||||||
|
Store 215(param) 216
|
||||||
|
217: 2 FunctionCall 62(GetColor13(struct-S-vf31;i1;) 214 215(param)
|
||||||
|
218: 8(S) Load 165(s)
|
||||||
|
220: 13(int) Load 170(u)
|
||||||
|
Store 219(param) 220
|
||||||
|
221: 2 FunctionCall 66(GetColor14(struct-S-vf31;i1;) 218 219(param)
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
11(GetColor1(struct-S-vf31;): 2 Function None 9
|
11(GetColor1(struct-S-vf31;): 2 Function None 9
|
||||||
10(i): 8(S) FunctionParameter
|
10(i): 8(S) FunctionParameter
|
||||||
12: Label
|
12: Label
|
||||||
69: 6(float) CompositeExtract 10(i) 0 0
|
73: 6(float) CompositeExtract 10(i) 0 0
|
||||||
70: 7(fvec3) Load 65(OutColor)
|
74: 7(fvec3) Load 69(OutColor)
|
||||||
71: 7(fvec3) CompositeConstruct 69 69 69
|
75: 7(fvec3) CompositeConstruct 73 73 73
|
||||||
72: 7(fvec3) FAdd 70 71
|
76: 7(fvec3) FAdd 74 75
|
||||||
Store 65(OutColor) 72
|
Store 69(OutColor) 76
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
18(GetColor2(struct-S-vf31;i1;): 2 Function None 15
|
18(GetColor2(struct-S-vf31;i1;): 2 Function None 15
|
||||||
16(i): 8(S) FunctionParameter
|
16(i): 8(S) FunctionParameter
|
||||||
17(comp): 14(ptr) FunctionParameter
|
17(comp): 14(ptr) FunctionParameter
|
||||||
19: Label
|
19: Label
|
||||||
73: 13(int) Load 17(comp)
|
77: 13(int) Load 17(comp)
|
||||||
74: 7(fvec3) CompositeExtract 16(i) 0
|
78: 7(fvec3) CompositeExtract 16(i) 0
|
||||||
75: 6(float) VectorExtractDynamic 74 73
|
79: 6(float) VectorExtractDynamic 78 77
|
||||||
76: 7(fvec3) Load 65(OutColor)
|
80: 7(fvec3) Load 69(OutColor)
|
||||||
77: 7(fvec3) CompositeConstruct 75 75 75
|
81: 7(fvec3) CompositeConstruct 79 79 79
|
||||||
78: 7(fvec3) FAdd 76 77
|
82: 7(fvec3) FAdd 80 81
|
||||||
Store 65(OutColor) 78
|
Store 69(OutColor) 82
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
22(GetColor3(struct-S-vf31;i1;): 2 Function None 15
|
22(GetColor3(struct-S-vf31;i1;): 2 Function None 15
|
||||||
20(i): 8(S) FunctionParameter
|
20(i): 8(S) FunctionParameter
|
||||||
21(comp): 14(ptr) FunctionParameter
|
21(comp): 14(ptr) FunctionParameter
|
||||||
23: Label
|
23: Label
|
||||||
79: 13(int) Load 21(comp)
|
83: 13(int) Load 21(comp)
|
||||||
80: 7(fvec3) CompositeExtract 20(i) 0
|
84: 7(fvec3) CompositeExtract 20(i) 0
|
||||||
81: 6(float) VectorExtractDynamic 80 79
|
85: 6(float) VectorExtractDynamic 84 83
|
||||||
82: 7(fvec3) Load 65(OutColor)
|
86: 7(fvec3) Load 69(OutColor)
|
||||||
83: 7(fvec3) CompositeConstruct 81 81 81
|
87: 7(fvec3) CompositeConstruct 85 85 85
|
||||||
84: 7(fvec3) FAdd 82 83
|
88: 7(fvec3) FAdd 86 87
|
||||||
Store 65(OutColor) 84
|
Store 69(OutColor) 88
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
26(GetColor4(struct-S-vf31;i1;): 2 Function None 15
|
26(GetColor4(struct-S-vf31;i1;): 2 Function None 15
|
||||||
24(i): 8(S) FunctionParameter
|
24(i): 8(S) FunctionParameter
|
||||||
25(comp): 14(ptr) FunctionParameter
|
25(comp): 14(ptr) FunctionParameter
|
||||||
27: Label
|
27: Label
|
||||||
85: 13(int) Load 25(comp)
|
89: 13(int) Load 25(comp)
|
||||||
86: 7(fvec3) CompositeExtract 24(i) 0
|
90: 7(fvec3) CompositeExtract 24(i) 0
|
||||||
87: 6(float) VectorExtractDynamic 86 85
|
91: 6(float) VectorExtractDynamic 90 89
|
||||||
88: 7(fvec3) Load 65(OutColor)
|
92: 7(fvec3) Load 69(OutColor)
|
||||||
89: 7(fvec3) CompositeConstruct 87 87 87
|
93: 7(fvec3) CompositeConstruct 91 91 91
|
||||||
90: 7(fvec3) FAdd 88 89
|
94: 7(fvec3) FAdd 92 93
|
||||||
Store 65(OutColor) 90
|
Store 69(OutColor) 94
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
30(GetColor5(struct-S-vf31;i1;): 2 Function None 15
|
30(GetColor5(struct-S-vf31;i1;): 2 Function None 15
|
||||||
28(i): 8(S) FunctionParameter
|
28(i): 8(S) FunctionParameter
|
||||||
29(comp): 14(ptr) FunctionParameter
|
29(comp): 14(ptr) FunctionParameter
|
||||||
31: Label
|
31: Label
|
||||||
91: 7(fvec3) CompositeExtract 28(i) 0
|
95: 7(fvec3) CompositeExtract 28(i) 0
|
||||||
92: 7(fvec3) Load 65(OutColor)
|
96: 7(fvec3) Load 69(OutColor)
|
||||||
93: 7(fvec3) FAdd 92 91
|
97: 7(fvec3) FAdd 96 95
|
||||||
Store 65(OutColor) 93
|
Store 69(OutColor) 97
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
34(GetColor6(struct-S-vf31;i1;): 2 Function None 15
|
34(GetColor6(struct-S-vf31;i1;): 2 Function None 15
|
||||||
32(i): 8(S) FunctionParameter
|
32(i): 8(S) FunctionParameter
|
||||||
33(comp): 14(ptr) FunctionParameter
|
33(comp): 14(ptr) FunctionParameter
|
||||||
35: Label
|
35: Label
|
||||||
94: 13(int) Load 33(comp)
|
98: 13(int) Load 33(comp)
|
||||||
96: 7(fvec3) CompositeExtract 32(i) 0
|
100: 7(fvec3) CompositeExtract 32(i) 0
|
||||||
97: 95(fvec2) VectorShuffle 96 96 1 0
|
101: 99(fvec2) VectorShuffle 100 100 1 0
|
||||||
98: 6(float) VectorExtractDynamic 97 94
|
102: 6(float) VectorExtractDynamic 101 98
|
||||||
99: 7(fvec3) Load 65(OutColor)
|
103: 7(fvec3) Load 69(OutColor)
|
||||||
100: 7(fvec3) CompositeConstruct 98 98 98
|
104: 7(fvec3) CompositeConstruct 102 102 102
|
||||||
101: 7(fvec3) FAdd 99 100
|
105: 7(fvec3) FAdd 103 104
|
||||||
Store 65(OutColor) 101
|
Store 69(OutColor) 105
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
38(GetColor7(struct-S-vf31;i1;): 2 Function None 15
|
38(GetColor7(struct-S-vf31;i1;): 2 Function None 15
|
||||||
36(i): 8(S) FunctionParameter
|
36(i): 8(S) FunctionParameter
|
||||||
37(comp): 14(ptr) FunctionParameter
|
37(comp): 14(ptr) FunctionParameter
|
||||||
39: Label
|
39: Label
|
||||||
102: 7(fvec3) CompositeExtract 36(i) 0
|
106: 7(fvec3) CompositeExtract 36(i) 0
|
||||||
103: 95(fvec2) VectorShuffle 102 102 0 1
|
107: 99(fvec2) VectorShuffle 106 106 0 1
|
||||||
104: 7(fvec3) Load 65(OutColor)
|
108: 7(fvec3) Load 69(OutColor)
|
||||||
105: 95(fvec2) VectorShuffle 104 104 0 1
|
109: 99(fvec2) VectorShuffle 108 108 0 1
|
||||||
106: 95(fvec2) FAdd 105 103
|
110: 99(fvec2) FAdd 109 107
|
||||||
107: 7(fvec3) Load 65(OutColor)
|
111: 7(fvec3) Load 69(OutColor)
|
||||||
108: 7(fvec3) VectorShuffle 107 106 3 4 2
|
112: 7(fvec3) VectorShuffle 111 110 3 4 2
|
||||||
Store 65(OutColor) 108
|
Store 69(OutColor) 112
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
42(GetColor8(struct-S-vf31;i1;): 2 Function None 15
|
42(GetColor8(struct-S-vf31;i1;): 2 Function None 15
|
||||||
40(i): 8(S) FunctionParameter
|
40(i): 8(S) FunctionParameter
|
||||||
41(comp): 14(ptr) FunctionParameter
|
41(comp): 14(ptr) FunctionParameter
|
||||||
43: Label
|
43: Label
|
||||||
110: 6(float) CompositeExtract 40(i) 0 2
|
114: 6(float) CompositeExtract 40(i) 0 2
|
||||||
111: 7(fvec3) Load 65(OutColor)
|
115: 7(fvec3) Load 69(OutColor)
|
||||||
112: 7(fvec3) CompositeConstruct 110 110 110
|
116: 7(fvec3) CompositeConstruct 114 114 114
|
||||||
113: 7(fvec3) FAdd 111 112
|
117: 7(fvec3) FAdd 115 116
|
||||||
Store 65(OutColor) 113
|
Store 69(OutColor) 117
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
46(GetColor9(struct-S-vf31;i1;): 2 Function None 15
|
46(GetColor9(struct-S-vf31;i1;): 2 Function None 15
|
||||||
44(i): 8(S) FunctionParameter
|
44(i): 8(S) FunctionParameter
|
||||||
45(comp): 14(ptr) FunctionParameter
|
45(comp): 14(ptr) FunctionParameter
|
||||||
47: Label
|
47: Label
|
||||||
114: 7(fvec3) CompositeExtract 44(i) 0
|
118: 7(fvec3) CompositeExtract 44(i) 0
|
||||||
115: 7(fvec3) Load 65(OutColor)
|
119: 7(fvec3) Load 69(OutColor)
|
||||||
116: 7(fvec3) VectorShuffle 115 115 2 0 1
|
120: 7(fvec3) VectorShuffle 119 119 2 0 1
|
||||||
117: 7(fvec3) FAdd 116 114
|
121: 7(fvec3) FAdd 120 118
|
||||||
118: 7(fvec3) Load 65(OutColor)
|
122: 7(fvec3) Load 69(OutColor)
|
||||||
119: 7(fvec3) VectorShuffle 118 117 4 5 3
|
123: 7(fvec3) VectorShuffle 122 121 4 5 3
|
||||||
Store 65(OutColor) 119
|
Store 69(OutColor) 123
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
50(GetColor10(struct-S-vf31;i1;): 2 Function None 15
|
50(GetColor10(struct-S-vf31;i1;): 2 Function None 15
|
||||||
48(i): 8(S) FunctionParameter
|
48(i): 8(S) FunctionParameter
|
||||||
49(comp): 14(ptr) FunctionParameter
|
49(comp): 14(ptr) FunctionParameter
|
||||||
51: Label
|
51: Label
|
||||||
120: 7(fvec3) CompositeExtract 48(i) 0
|
124: 7(fvec3) CompositeExtract 48(i) 0
|
||||||
121: 95(fvec2) VectorShuffle 120 120 0 1
|
125: 99(fvec2) VectorShuffle 124 124 0 1
|
||||||
122: 7(fvec3) Load 65(OutColor)
|
126: 7(fvec3) Load 69(OutColor)
|
||||||
123: 95(fvec2) VectorShuffle 122 122 2 1
|
127: 99(fvec2) VectorShuffle 126 126 2 1
|
||||||
124: 95(fvec2) FAdd 123 121
|
128: 99(fvec2) FAdd 127 125
|
||||||
125: 7(fvec3) Load 65(OutColor)
|
129: 7(fvec3) Load 69(OutColor)
|
||||||
126: 7(fvec3) VectorShuffle 125 124 0 4 3
|
130: 7(fvec3) VectorShuffle 129 128 0 4 3
|
||||||
Store 65(OutColor) 126
|
Store 69(OutColor) 130
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
54(GetColor11(struct-S-vf31;i1;): 2 Function None 15
|
54(GetColor11(struct-S-vf31;i1;): 2 Function None 15
|
||||||
52(i): 8(S) FunctionParameter
|
52(i): 8(S) FunctionParameter
|
||||||
53(comp): 14(ptr) FunctionParameter
|
53(comp): 14(ptr) FunctionParameter
|
||||||
55: Label
|
55: Label
|
||||||
127: 7(fvec3) CompositeExtract 52(i) 0
|
131: 7(fvec3) CompositeExtract 52(i) 0
|
||||||
128: 95(fvec2) VectorShuffle 127 127 0 1
|
132: 99(fvec2) VectorShuffle 131 131 0 1
|
||||||
129: 7(fvec3) Load 65(OutColor)
|
133: 7(fvec3) Load 69(OutColor)
|
||||||
130: 95(fvec2) VectorShuffle 129 129 0 2
|
134: 99(fvec2) VectorShuffle 133 133 0 2
|
||||||
131: 95(fvec2) FAdd 130 128
|
135: 99(fvec2) FAdd 134 132
|
||||||
132: 7(fvec3) Load 65(OutColor)
|
136: 7(fvec3) Load 69(OutColor)
|
||||||
133: 7(fvec3) VectorShuffle 132 131 3 1 4
|
137: 7(fvec3) VectorShuffle 136 135 3 1 4
|
||||||
Store 65(OutColor) 133
|
Store 69(OutColor) 137
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
58(GetColor12(struct-S-vf31;i1;): 2 Function None 15
|
58(GetColor12(struct-S-vf31;i1;): 2 Function None 15
|
||||||
56(i): 8(S) FunctionParameter
|
56(i): 8(S) FunctionParameter
|
||||||
57(comp): 14(ptr) FunctionParameter
|
57(comp): 14(ptr) FunctionParameter
|
||||||
59: Label
|
59: Label
|
||||||
134: 13(int) Load 57(comp)
|
138: 13(int) Load 57(comp)
|
||||||
135: 6(float) CompositeExtract 56(i) 0 0
|
139: 6(float) CompositeExtract 56(i) 0 0
|
||||||
137: 136(ptr) AccessChain 65(OutColor) 134
|
141: 140(ptr) AccessChain 69(OutColor) 138
|
||||||
138: 6(float) Load 137
|
142: 6(float) Load 141
|
||||||
139: 6(float) FAdd 138 135
|
143: 6(float) FAdd 142 139
|
||||||
140: 136(ptr) AccessChain 65(OutColor) 134
|
144: 140(ptr) AccessChain 69(OutColor) 138
|
||||||
Store 140 139
|
Store 144 143
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
62(GetColor13(struct-S-vf31;i1;): 2 Function None 15
|
62(GetColor13(struct-S-vf31;i1;): 2 Function None 15
|
||||||
60(i): 8(S) FunctionParameter
|
60(i): 8(S) FunctionParameter
|
||||||
61(comp): 14(ptr) FunctionParameter
|
61(comp): 14(ptr) FunctionParameter
|
||||||
63: Label
|
63: Label
|
||||||
141: 13(int) Load 61(comp)
|
145: 13(int) Load 61(comp)
|
||||||
142: 6(float) CompositeExtract 60(i) 0 0
|
146: 6(float) CompositeExtract 60(i) 0 0
|
||||||
143: 7(fvec3) Load 65(OutColor)
|
150: 71(int) VectorExtractDynamic 149 145
|
||||||
144: 95(fvec2) VectorShuffle 143 143 2 1
|
151: 140(ptr) AccessChain 69(OutColor) 150
|
||||||
145: 6(float) VectorExtractDynamic 144 141
|
152: 6(float) Load 151
|
||||||
146: 6(float) FAdd 145 142
|
153: 6(float) FAdd 152 146
|
||||||
147: 7(fvec3) Load 65(OutColor)
|
154: 71(int) VectorExtractDynamic 149 145
|
||||||
148: 7(fvec3) VectorShuffle 147 147 2 1 2
|
155: 140(ptr) AccessChain 69(OutColor) 154
|
||||||
149: 7(fvec3) VectorInsertDynamic 148 146 141
|
Store 155 153
|
||||||
Store 65(OutColor) 149
|
Return
|
||||||
|
FunctionEnd
|
||||||
|
66(GetColor14(struct-S-vf31;i1;): 2 Function None 15
|
||||||
|
64(i): 8(S) FunctionParameter
|
||||||
|
65(comp): 14(ptr) FunctionParameter
|
||||||
|
67: Label
|
||||||
|
156: 13(int) Load 65(comp)
|
||||||
|
157: 6(float) CompositeExtract 64(i) 0 0
|
||||||
|
160: 71(int) VectorExtractDynamic 159 156
|
||||||
|
161: 140(ptr) AccessChain 69(OutColor) 160
|
||||||
|
Store 161 157
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
spv.boolInBlock.frag
|
spv.boolInBlock.frag
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80003
|
// Generated by (magic number): 80003
|
||||||
// Id's are bound by 107
|
// Id's are bound by 102
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4 "main" 75
|
EntryPoint Fragment 4 "main" 74
|
||||||
ExecutionMode 4 OriginUpperLeft
|
ExecutionMode 4 OriginUpperLeft
|
||||||
Source GLSL 450
|
Source GLSL 450
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
@ -14,24 +14,24 @@ spv.boolInBlock.frag
|
|||||||
Name 12 "paramb4"
|
Name 12 "paramb4"
|
||||||
Name 13 "paramb2"
|
Name 13 "paramb2"
|
||||||
Name 17 "b1"
|
Name 17 "b1"
|
||||||
Name 24 "Buffer"
|
Name 25 "Buffer"
|
||||||
MemberName 24(Buffer) 0 "b2"
|
MemberName 25(Buffer) 0 "b2"
|
||||||
Name 26 ""
|
Name 27 ""
|
||||||
Name 39 "Uniform"
|
Name 40 "Uniform"
|
||||||
MemberName 39(Uniform) 0 "b4"
|
MemberName 40(Uniform) 0 "b4"
|
||||||
Name 41 ""
|
Name 42 ""
|
||||||
Name 62 "param"
|
Name 60 "param"
|
||||||
Name 67 "param"
|
Name 66 "param"
|
||||||
Name 75 "fragColor"
|
Name 74 "fragColor"
|
||||||
MemberDecorate 24(Buffer) 0 Offset 0
|
MemberDecorate 25(Buffer) 0 Offset 0
|
||||||
Decorate 24(Buffer) BufferBlock
|
Decorate 25(Buffer) BufferBlock
|
||||||
Decorate 26 DescriptorSet 0
|
Decorate 27 DescriptorSet 0
|
||||||
Decorate 26 Binding 1
|
Decorate 27 Binding 1
|
||||||
MemberDecorate 39(Uniform) 0 Offset 0
|
MemberDecorate 40(Uniform) 0 Offset 0
|
||||||
Decorate 39(Uniform) Block
|
Decorate 40(Uniform) Block
|
||||||
Decorate 41 DescriptorSet 0
|
Decorate 42 DescriptorSet 0
|
||||||
Decorate 41 Binding 0
|
Decorate 42 Binding 0
|
||||||
Decorate 75(fragColor) Location 0
|
Decorate 74(fragColor) Location 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeBool
|
6: TypeBool
|
||||||
@ -41,111 +41,106 @@ spv.boolInBlock.frag
|
|||||||
10: TypePointer Function 9(bvec2)
|
10: TypePointer Function 9(bvec2)
|
||||||
11: TypeFunction 2 8(ptr) 10(ptr)
|
11: TypeFunction 2 8(ptr) 10(ptr)
|
||||||
16: TypePointer Function 6(bool)
|
16: TypePointer Function 6(bool)
|
||||||
22: TypeInt 32 0
|
18: TypeInt 32 0
|
||||||
23: TypeVector 22(int) 2
|
19: 18(int) Constant 2
|
||||||
24(Buffer): TypeStruct 23(ivec2)
|
24: TypeVector 18(int) 2
|
||||||
25: TypePointer Uniform 24(Buffer)
|
25(Buffer): TypeStruct 24(ivec2)
|
||||||
26: 25(ptr) Variable Uniform
|
26: TypePointer Uniform 25(Buffer)
|
||||||
27: TypeInt 32 1
|
27: 26(ptr) Variable Uniform
|
||||||
28: 27(int) Constant 0
|
28: TypeInt 32 1
|
||||||
29: 6(bool) ConstantFalse
|
29: 28(int) Constant 0
|
||||||
30: 9(bvec2) ConstantComposite 29 29
|
30: 6(bool) ConstantFalse
|
||||||
31: 22(int) Constant 1
|
31: 9(bvec2) ConstantComposite 30 30
|
||||||
32: 23(ivec2) ConstantComposite 31 31
|
32: 18(int) Constant 1
|
||||||
33: 22(int) Constant 0
|
33: 24(ivec2) ConstantComposite 32 32
|
||||||
34: 23(ivec2) ConstantComposite 33 33
|
34: 18(int) Constant 0
|
||||||
36: TypePointer Uniform 23(ivec2)
|
35: 24(ivec2) ConstantComposite 34 34
|
||||||
38: TypeVector 22(int) 4
|
37: TypePointer Uniform 24(ivec2)
|
||||||
39(Uniform): TypeStruct 38(ivec4)
|
39: TypeVector 18(int) 4
|
||||||
40: TypePointer Uniform 39(Uniform)
|
40(Uniform): TypeStruct 39(ivec4)
|
||||||
41: 40(ptr) Variable Uniform
|
41: TypePointer Uniform 40(Uniform)
|
||||||
42: TypePointer Uniform 38(ivec4)
|
42: 41(ptr) Variable Uniform
|
||||||
65: 38(ivec4) ConstantComposite 33 33 33 33
|
43: TypePointer Uniform 18(int)
|
||||||
72: TypeFloat 32
|
61: TypePointer Uniform 39(ivec4)
|
||||||
73: TypeVector 72(float) 4
|
64: 39(ivec4) ConstantComposite 34 34 34 34
|
||||||
74: TypePointer Output 73(fvec4)
|
71: TypeFloat 32
|
||||||
75(fragColor): 74(ptr) Variable Output
|
72: TypeVector 71(float) 4
|
||||||
87: 72(float) Constant 0
|
73: TypePointer Output 72(fvec4)
|
||||||
88: 72(float) Constant 1065353216
|
74(fragColor): 73(ptr) Variable Output
|
||||||
|
84: 71(float) Constant 0
|
||||||
|
85: 71(float) Constant 1065353216
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
62(param): 8(ptr) Variable Function
|
60(param): 8(ptr) Variable Function
|
||||||
67(param): 10(ptr) Variable Function
|
66(param): 10(ptr) Variable Function
|
||||||
35: 23(ivec2) Select 30 32 34
|
36: 24(ivec2) Select 31 33 35
|
||||||
37: 36(ptr) AccessChain 26 28
|
38: 37(ptr) AccessChain 27 29
|
||||||
Store 37 35
|
Store 38 36
|
||||||
43: 42(ptr) AccessChain 41 28
|
44: 43(ptr) AccessChain 42 29 19
|
||||||
44: 38(ivec4) Load 43
|
45: 18(int) Load 44
|
||||||
45: 22(int) CompositeExtract 44 2
|
46: 6(bool) INotEqual 45 34
|
||||||
46: 6(bool) INotEqual 45 33
|
|
||||||
SelectionMerge 48 None
|
SelectionMerge 48 None
|
||||||
BranchConditional 46 47 48
|
BranchConditional 46 47 48
|
||||||
47: Label
|
47: Label
|
||||||
49: 42(ptr) AccessChain 41 28
|
49: 43(ptr) AccessChain 42 29 34
|
||||||
50: 38(ivec4) Load 49
|
50: 18(int) Load 49
|
||||||
51: 22(int) CompositeExtract 50 0
|
51: 6(bool) INotEqual 50 34
|
||||||
52: 6(bool) INotEqual 51 33
|
52: 9(bvec2) CompositeConstruct 51 51
|
||||||
53: 9(bvec2) CompositeConstruct 52 52
|
53: 24(ivec2) Select 52 33 35
|
||||||
54: 23(ivec2) Select 53 32 34
|
54: 37(ptr) AccessChain 27 29
|
||||||
55: 36(ptr) AccessChain 26 28
|
Store 54 53
|
||||||
Store 55 54
|
|
||||||
Branch 48
|
Branch 48
|
||||||
48: Label
|
48: Label
|
||||||
56: 36(ptr) AccessChain 26 28
|
55: 43(ptr) AccessChain 27 29 34
|
||||||
57: 23(ivec2) Load 56
|
56: 18(int) Load 55
|
||||||
58: 22(int) CompositeExtract 57 0
|
57: 6(bool) INotEqual 56 34
|
||||||
59: 6(bool) INotEqual 58 33
|
SelectionMerge 59 None
|
||||||
SelectionMerge 61 None
|
BranchConditional 57 58 59
|
||||||
BranchConditional 59 60 61
|
58: Label
|
||||||
60: Label
|
62: 61(ptr) AccessChain 42 29
|
||||||
63: 42(ptr) AccessChain 41 28
|
63: 39(ivec4) Load 62
|
||||||
64: 38(ivec4) Load 63
|
65: 7(bvec4) INotEqual 63 64
|
||||||
66: 7(bvec4) INotEqual 64 65
|
Store 60(param) 65
|
||||||
Store 62(param) 66
|
67: 2 FunctionCall 14(foo(vb4;vb2;) 60(param) 66(param)
|
||||||
68: 2 FunctionCall 14(foo(vb4;vb2;) 62(param) 67(param)
|
68: 9(bvec2) Load 66(param)
|
||||||
69: 9(bvec2) Load 67(param)
|
69: 24(ivec2) Select 68 33 35
|
||||||
70: 23(ivec2) Select 69 32 34
|
70: 37(ptr) AccessChain 27 29
|
||||||
71: 36(ptr) AccessChain 26 28
|
Store 70 69
|
||||||
Store 71 70
|
Branch 59
|
||||||
Branch 61
|
59: Label
|
||||||
61: Label
|
75: 43(ptr) AccessChain 42 29 34
|
||||||
76: 42(ptr) AccessChain 41 28
|
76: 18(int) Load 75
|
||||||
77: 38(ivec4) Load 76
|
77: 6(bool) INotEqual 76 34
|
||||||
78: 22(int) CompositeExtract 77 0
|
SelectionMerge 79 None
|
||||||
79: 6(bool) INotEqual 78 33
|
BranchConditional 77 78 79
|
||||||
SelectionMerge 81 None
|
78: Label
|
||||||
BranchConditional 79 80 81
|
80: 43(ptr) AccessChain 42 29 32
|
||||||
80: Label
|
81: 18(int) Load 80
|
||||||
82: 42(ptr) AccessChain 41 28
|
82: 6(bool) INotEqual 81 34
|
||||||
83: 38(ivec4) Load 82
|
Branch 79
|
||||||
84: 22(int) CompositeExtract 83 1
|
79: Label
|
||||||
85: 6(bool) INotEqual 84 33
|
83: 6(bool) Phi 77 59 82 78
|
||||||
Branch 81
|
86: 71(float) Select 83 85 84
|
||||||
81: Label
|
87: 72(fvec4) CompositeConstruct 86 86 86 86
|
||||||
86: 6(bool) Phi 79 61 85 80
|
Store 74(fragColor) 87
|
||||||
89: 72(float) Select 86 88 87
|
88: 43(ptr) AccessChain 42 29 34
|
||||||
90: 73(fvec4) CompositeConstruct 89 89 89 89
|
89: 18(int) Load 88
|
||||||
Store 75(fragColor) 90
|
90: 6(bool) INotEqual 89 34
|
||||||
91: 42(ptr) AccessChain 41 28
|
91: 6(bool) LogicalNot 90
|
||||||
92: 38(ivec4) Load 91
|
SelectionMerge 93 None
|
||||||
93: 22(int) CompositeExtract 92 0
|
BranchConditional 91 92 93
|
||||||
94: 6(bool) INotEqual 93 33
|
92: Label
|
||||||
95: 6(bool) LogicalNot 94
|
94: 43(ptr) AccessChain 42 29 32
|
||||||
SelectionMerge 97 None
|
95: 18(int) Load 94
|
||||||
BranchConditional 95 96 97
|
96: 6(bool) INotEqual 95 34
|
||||||
96: Label
|
Branch 93
|
||||||
98: 42(ptr) AccessChain 41 28
|
93: Label
|
||||||
99: 38(ivec4) Load 98
|
97: 6(bool) Phi 90 79 96 92
|
||||||
100: 22(int) CompositeExtract 99 1
|
98: 71(float) Select 97 85 84
|
||||||
101: 6(bool) INotEqual 100 33
|
99: 72(fvec4) CompositeConstruct 98 98 98 98
|
||||||
Branch 97
|
100: 72(fvec4) Load 74(fragColor)
|
||||||
97: Label
|
101: 72(fvec4) FSub 100 99
|
||||||
102: 6(bool) Phi 94 81 101 96
|
Store 74(fragColor) 101
|
||||||
103: 72(float) Select 102 88 87
|
|
||||||
104: 73(fvec4) CompositeConstruct 103 103 103 103
|
|
||||||
105: 73(fvec4) Load 75(fragColor)
|
|
||||||
106: 73(fvec4) FSub 105 104
|
|
||||||
Store 75(fragColor) 106
|
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
14(foo(vb4;vb2;): 2 Function None 11
|
14(foo(vb4;vb2;): 2 Function None 11
|
||||||
@ -153,11 +148,11 @@ spv.boolInBlock.frag
|
|||||||
13(paramb2): 10(ptr) FunctionParameter
|
13(paramb2): 10(ptr) FunctionParameter
|
||||||
15: Label
|
15: Label
|
||||||
17(b1): 16(ptr) Variable Function
|
17(b1): 16(ptr) Variable Function
|
||||||
18: 7(bvec4) Load 12(paramb4)
|
20: 16(ptr) AccessChain 12(paramb4) 19
|
||||||
19: 6(bool) CompositeExtract 18 2
|
21: 6(bool) Load 20
|
||||||
Store 17(b1) 19
|
Store 17(b1) 21
|
||||||
20: 6(bool) Load 17(b1)
|
22: 6(bool) Load 17(b1)
|
||||||
21: 9(bvec2) CompositeConstruct 20 20
|
23: 9(bvec2) CompositeConstruct 22 22
|
||||||
Store 13(paramb2) 21
|
Store 13(paramb2) 23
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -119,8 +119,8 @@ spv.conversion.frag
|
|||||||
315: 13(int) Constant 1
|
315: 13(int) Constant 1
|
||||||
321: TypePointer Output 95(fvec4)
|
321: TypePointer Output 95(fvec4)
|
||||||
322(gl_FragColor): 321(ptr) Variable Output
|
322(gl_FragColor): 321(ptr) Variable Output
|
||||||
367: 13(int) Constant 2
|
337: 13(int) Constant 2
|
||||||
380: 13(int) Constant 3
|
350: 13(int) Constant 3
|
||||||
427: TypePointer Private 6(bool)
|
427: TypePointer Private 6(bool)
|
||||||
428(u_b): 427(ptr) Variable Private
|
428(u_b): 427(ptr) Variable Private
|
||||||
429: TypePointer Private 23(bvec2)
|
429: TypePointer Private 23(bvec2)
|
||||||
@ -440,8 +440,8 @@ spv.conversion.frag
|
|||||||
Branch 300
|
Branch 300
|
||||||
300: Label
|
300: Label
|
||||||
306: 16(float) Load 297
|
306: 16(float) Load 297
|
||||||
308: 23(bvec2) Load 25(b2)
|
308: 7(ptr) AccessChain 25(b2) 14
|
||||||
309: 6(bool) CompositeExtract 308 0
|
309: 6(bool) Load 308
|
||||||
SelectionMerge 311 None
|
SelectionMerge 311 None
|
||||||
BranchConditional 309 310 314
|
BranchConditional 309 310 314
|
||||||
310: Label
|
310: Label
|
||||||
@ -462,64 +462,64 @@ spv.conversion.frag
|
|||||||
Branch 296
|
Branch 296
|
||||||
296: Label
|
296: Label
|
||||||
324: 6(bool) Load 8(b)
|
324: 6(bool) Load 8(b)
|
||||||
325: 23(bvec2) Load 25(b2)
|
325: 7(ptr) AccessChain 25(b2) 14
|
||||||
326: 6(bool) CompositeExtract 325 0
|
326: 6(bool) Load 325
|
||||||
327: 6(bool) LogicalOr 324 326
|
327: 6(bool) LogicalOr 324 326
|
||||||
328: 23(bvec2) Load 25(b2)
|
328: 7(ptr) AccessChain 25(b2) 315
|
||||||
329: 6(bool) CompositeExtract 328 1
|
329: 6(bool) Load 328
|
||||||
330: 6(bool) LogicalOr 327 329
|
330: 6(bool) LogicalOr 327 329
|
||||||
331: 31(bvec3) Load 33(b3)
|
331: 7(ptr) AccessChain 33(b3) 14
|
||||||
332: 6(bool) CompositeExtract 331 0
|
332: 6(bool) Load 331
|
||||||
333: 6(bool) LogicalOr 330 332
|
333: 6(bool) LogicalOr 330 332
|
||||||
334: 31(bvec3) Load 33(b3)
|
334: 7(ptr) AccessChain 33(b3) 315
|
||||||
335: 6(bool) CompositeExtract 334 1
|
335: 6(bool) Load 334
|
||||||
336: 6(bool) LogicalOr 333 335
|
336: 6(bool) LogicalOr 333 335
|
||||||
337: 31(bvec3) Load 33(b3)
|
338: 7(ptr) AccessChain 33(b3) 337
|
||||||
338: 6(bool) CompositeExtract 337 2
|
339: 6(bool) Load 338
|
||||||
339: 6(bool) LogicalOr 336 338
|
340: 6(bool) LogicalOr 336 339
|
||||||
340: 43(bvec4) Load 45(b4)
|
341: 7(ptr) AccessChain 45(b4) 14
|
||||||
341: 6(bool) CompositeExtract 340 0
|
342: 6(bool) Load 341
|
||||||
342: 6(bool) LogicalOr 339 341
|
343: 6(bool) LogicalOr 340 342
|
||||||
343: 43(bvec4) Load 45(b4)
|
344: 7(ptr) AccessChain 45(b4) 315
|
||||||
344: 6(bool) CompositeExtract 343 1
|
345: 6(bool) Load 344
|
||||||
345: 6(bool) LogicalOr 342 344
|
346: 6(bool) LogicalOr 343 345
|
||||||
346: 43(bvec4) Load 45(b4)
|
347: 7(ptr) AccessChain 45(b4) 337
|
||||||
347: 6(bool) CompositeExtract 346 2
|
348: 6(bool) Load 347
|
||||||
348: 6(bool) LogicalOr 345 347
|
349: 6(bool) LogicalOr 346 348
|
||||||
349: 43(bvec4) Load 45(b4)
|
351: 7(ptr) AccessChain 45(b4) 350
|
||||||
350: 6(bool) CompositeExtract 349 3
|
352: 6(bool) Load 351
|
||||||
351: 6(bool) LogicalOr 348 350
|
353: 6(bool) LogicalOr 349 352
|
||||||
SelectionMerge 353 None
|
SelectionMerge 355 None
|
||||||
BranchConditional 351 352 415
|
BranchConditional 353 354 415
|
||||||
352: Label
|
354: Label
|
||||||
354: 9(int) Load 58(i)
|
356: 9(int) Load 58(i)
|
||||||
355: 57(ptr) AccessChain 68(i2) 14
|
357: 57(ptr) AccessChain 68(i2) 14
|
||||||
356: 9(int) Load 355
|
358: 9(int) Load 357
|
||||||
357: 9(int) IAdd 354 356
|
359: 9(int) IAdd 356 358
|
||||||
358: 57(ptr) AccessChain 68(i2) 315
|
360: 57(ptr) AccessChain 68(i2) 315
|
||||||
359: 9(int) Load 358
|
361: 9(int) Load 360
|
||||||
360: 9(int) IAdd 357 359
|
362: 9(int) IAdd 359 361
|
||||||
361: 57(ptr) AccessChain 81(i3) 14
|
363: 57(ptr) AccessChain 81(i3) 14
|
||||||
362: 9(int) Load 361
|
364: 9(int) Load 363
|
||||||
363: 9(int) IAdd 360 362
|
365: 9(int) IAdd 362 364
|
||||||
364: 57(ptr) AccessChain 81(i3) 315
|
366: 57(ptr) AccessChain 81(i3) 315
|
||||||
365: 9(int) Load 364
|
367: 9(int) Load 366
|
||||||
366: 9(int) IAdd 363 365
|
368: 9(int) IAdd 365 367
|
||||||
368: 57(ptr) AccessChain 81(i3) 367
|
369: 57(ptr) AccessChain 81(i3) 337
|
||||||
369: 9(int) Load 368
|
370: 9(int) Load 369
|
||||||
370: 9(int) IAdd 366 369
|
371: 9(int) IAdd 368 370
|
||||||
371: 57(ptr) AccessChain 94(i4) 14
|
372: 57(ptr) AccessChain 94(i4) 14
|
||||||
372: 9(int) Load 371
|
373: 9(int) Load 372
|
||||||
373: 9(int) IAdd 370 372
|
374: 9(int) IAdd 371 373
|
||||||
374: 57(ptr) AccessChain 94(i4) 315
|
375: 57(ptr) AccessChain 94(i4) 315
|
||||||
375: 9(int) Load 374
|
376: 9(int) Load 375
|
||||||
376: 9(int) IAdd 373 375
|
377: 9(int) IAdd 374 376
|
||||||
377: 57(ptr) AccessChain 94(i4) 367
|
378: 57(ptr) AccessChain 94(i4) 337
|
||||||
378: 9(int) Load 377
|
379: 9(int) Load 378
|
||||||
379: 9(int) IAdd 376 378
|
380: 9(int) IAdd 377 379
|
||||||
381: 57(ptr) AccessChain 94(i4) 380
|
381: 57(ptr) AccessChain 94(i4) 350
|
||||||
382: 9(int) Load 381
|
382: 9(int) Load 381
|
||||||
383: 9(int) IAdd 379 382
|
383: 9(int) IAdd 380 382
|
||||||
384: 16(float) ConvertSToF 383
|
384: 16(float) ConvertSToF 383
|
||||||
385: 16(float) Load 106(f)
|
385: 16(float) Load 106(f)
|
||||||
386: 16(float) FAdd 384 385
|
386: 16(float) FAdd 384 385
|
||||||
@ -535,7 +535,7 @@ spv.conversion.frag
|
|||||||
396: 105(ptr) AccessChain 114(f3) 315
|
396: 105(ptr) AccessChain 114(f3) 315
|
||||||
397: 16(float) Load 396
|
397: 16(float) Load 396
|
||||||
398: 16(float) FAdd 395 397
|
398: 16(float) FAdd 395 397
|
||||||
399: 105(ptr) AccessChain 114(f3) 367
|
399: 105(ptr) AccessChain 114(f3) 337
|
||||||
400: 16(float) Load 399
|
400: 16(float) Load 399
|
||||||
401: 16(float) FAdd 398 400
|
401: 16(float) FAdd 398 400
|
||||||
402: 105(ptr) AccessChain 118(f4) 14
|
402: 105(ptr) AccessChain 118(f4) 14
|
||||||
@ -544,19 +544,19 @@ spv.conversion.frag
|
|||||||
405: 105(ptr) AccessChain 118(f4) 315
|
405: 105(ptr) AccessChain 118(f4) 315
|
||||||
406: 16(float) Load 405
|
406: 16(float) Load 405
|
||||||
407: 16(float) FAdd 404 406
|
407: 16(float) FAdd 404 406
|
||||||
408: 105(ptr) AccessChain 118(f4) 367
|
408: 105(ptr) AccessChain 118(f4) 337
|
||||||
409: 16(float) Load 408
|
409: 16(float) Load 408
|
||||||
410: 16(float) FAdd 407 409
|
410: 16(float) FAdd 407 409
|
||||||
411: 105(ptr) AccessChain 118(f4) 380
|
411: 105(ptr) AccessChain 118(f4) 350
|
||||||
412: 16(float) Load 411
|
412: 16(float) Load 411
|
||||||
413: 16(float) FAdd 410 412
|
413: 16(float) FAdd 410 412
|
||||||
414: 95(fvec4) CompositeConstruct 413 413 413 413
|
414: 95(fvec4) CompositeConstruct 413 413 413 413
|
||||||
Store 323 414
|
Store 323 414
|
||||||
Branch 353
|
Branch 355
|
||||||
415: Label
|
415: Label
|
||||||
Store 323 151
|
Store 323 151
|
||||||
Branch 353
|
Branch 355
|
||||||
353: Label
|
355: Label
|
||||||
416: 95(fvec4) Load 323
|
416: 95(fvec4) Load 323
|
||||||
Store 322(gl_FragColor) 416
|
Store 322(gl_FragColor) 416
|
||||||
Store 417(cv2) 102
|
Store 417(cv2) 102
|
||||||
|
@ -6,7 +6,7 @@ spv.types.frag
|
|||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4 "main" 91 93 100 102 109 111 118 120 127 129 136 138 145 147 154 156 160
|
EntryPoint Fragment 4 "main" 96 98 105 107 114 116 123 125 132 134 141 143 150 152 159 161 165
|
||||||
ExecutionMode 4 OriginUpperLeft
|
ExecutionMode 4 OriginUpperLeft
|
||||||
Source GLSL 140
|
Source GLSL 140
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
@ -15,47 +15,47 @@ spv.types.frag
|
|||||||
Name 12 "i_b"
|
Name 12 "i_b"
|
||||||
Name 17 "b2"
|
Name 17 "b2"
|
||||||
Name 19 "u_b2"
|
Name 19 "u_b2"
|
||||||
Name 22 "i_b2"
|
Name 24 "i_b2"
|
||||||
Name 35 "b3"
|
Name 38 "b3"
|
||||||
Name 37 "u_b3"
|
Name 40 "u_b3"
|
||||||
Name 40 "i_b3"
|
Name 43 "i_b3"
|
||||||
Name 59 "b4"
|
Name 63 "b4"
|
||||||
Name 61 "u_b4"
|
Name 65 "u_b4"
|
||||||
Name 64 "i_b4"
|
Name 68 "i_b4"
|
||||||
Name 89 "i"
|
Name 94 "i"
|
||||||
Name 91 "u_i"
|
Name 96 "u_i"
|
||||||
Name 93 "i_i"
|
Name 98 "i_i"
|
||||||
Name 98 "i2"
|
Name 103 "i2"
|
||||||
Name 100 "u_i2"
|
Name 105 "u_i2"
|
||||||
Name 102 "i_i2"
|
Name 107 "i_i2"
|
||||||
Name 107 "i3"
|
Name 112 "i3"
|
||||||
Name 109 "u_i3"
|
Name 114 "u_i3"
|
||||||
Name 111 "i_i3"
|
Name 116 "i_i3"
|
||||||
Name 116 "i4"
|
Name 121 "i4"
|
||||||
Name 118 "u_i4"
|
Name 123 "u_i4"
|
||||||
Name 120 "i_i4"
|
Name 125 "i_i4"
|
||||||
Name 125 "f"
|
Name 130 "f"
|
||||||
Name 127 "u_f"
|
Name 132 "u_f"
|
||||||
Name 129 "i_f"
|
Name 134 "i_f"
|
||||||
Name 134 "f2"
|
Name 139 "f2"
|
||||||
Name 136 "u_f2"
|
Name 141 "u_f2"
|
||||||
Name 138 "i_f2"
|
Name 143 "i_f2"
|
||||||
Name 143 "f3"
|
Name 148 "f3"
|
||||||
Name 145 "u_f3"
|
Name 150 "u_f3"
|
||||||
Name 147 "i_f3"
|
Name 152 "i_f3"
|
||||||
Name 152 "f4"
|
Name 157 "f4"
|
||||||
Name 154 "u_f4"
|
Name 159 "u_f4"
|
||||||
Name 156 "i_f4"
|
Name 161 "i_f4"
|
||||||
Name 160 "gl_FragColor"
|
Name 165 "gl_FragColor"
|
||||||
Decorate 91(u_i) Flat
|
Decorate 96(u_i) Flat
|
||||||
Decorate 93(i_i) Flat
|
Decorate 98(i_i) Flat
|
||||||
Decorate 100(u_i2) Flat
|
Decorate 105(u_i2) Flat
|
||||||
Decorate 102(i_i2) Flat
|
Decorate 107(i_i2) Flat
|
||||||
Decorate 109(u_i3) Flat
|
Decorate 114(u_i3) Flat
|
||||||
Decorate 111(i_i3) Flat
|
Decorate 116(i_i3) Flat
|
||||||
Decorate 118(u_i4) Flat
|
Decorate 123(u_i4) Flat
|
||||||
Decorate 120(i_i4) Flat
|
Decorate 125(i_i4) Flat
|
||||||
Decorate 160(gl_FragColor) Location 0
|
Decorate 165(gl_FragColor) Location 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeBool
|
6: TypeBool
|
||||||
@ -67,271 +67,271 @@ spv.types.frag
|
|||||||
16: TypePointer Function 15(bvec2)
|
16: TypePointer Function 15(bvec2)
|
||||||
18: TypePointer Private 15(bvec2)
|
18: TypePointer Private 15(bvec2)
|
||||||
19(u_b2): 18(ptr) Variable Private
|
19(u_b2): 18(ptr) Variable Private
|
||||||
22(i_b2): 18(ptr) Variable Private
|
20: TypeInt 32 0
|
||||||
33: TypeVector 6(bool) 3
|
21: 20(int) Constant 0
|
||||||
34: TypePointer Function 33(bvec3)
|
24(i_b2): 18(ptr) Variable Private
|
||||||
36: TypePointer Private 33(bvec3)
|
28: 20(int) Constant 1
|
||||||
37(u_b3): 36(ptr) Variable Private
|
36: TypeVector 6(bool) 3
|
||||||
40(i_b3): 36(ptr) Variable Private
|
37: TypePointer Function 36(bvec3)
|
||||||
57: TypeVector 6(bool) 4
|
39: TypePointer Private 36(bvec3)
|
||||||
58: TypePointer Function 57(bvec4)
|
40(u_b3): 39(ptr) Variable Private
|
||||||
60: TypePointer Private 57(bvec4)
|
43(i_b3): 39(ptr) Variable Private
|
||||||
61(u_b4): 60(ptr) Variable Private
|
53: 20(int) Constant 2
|
||||||
64(i_b4): 60(ptr) Variable Private
|
61: TypeVector 6(bool) 4
|
||||||
87: TypeInt 32 1
|
62: TypePointer Function 61(bvec4)
|
||||||
88: TypePointer Function 87(int)
|
64: TypePointer Private 61(bvec4)
|
||||||
90: TypePointer Input 87(int)
|
65(u_b4): 64(ptr) Variable Private
|
||||||
91(u_i): 90(ptr) Variable Input
|
68(i_b4): 64(ptr) Variable Private
|
||||||
93(i_i): 90(ptr) Variable Input
|
84: 20(int) Constant 3
|
||||||
96: TypeVector 87(int) 2
|
92: TypeInt 32 1
|
||||||
97: TypePointer Function 96(ivec2)
|
93: TypePointer Function 92(int)
|
||||||
99: TypePointer Input 96(ivec2)
|
95: TypePointer Input 92(int)
|
||||||
100(u_i2): 99(ptr) Variable Input
|
96(u_i): 95(ptr) Variable Input
|
||||||
102(i_i2): 99(ptr) Variable Input
|
98(i_i): 95(ptr) Variable Input
|
||||||
105: TypeVector 87(int) 3
|
101: TypeVector 92(int) 2
|
||||||
106: TypePointer Function 105(ivec3)
|
102: TypePointer Function 101(ivec2)
|
||||||
108: TypePointer Input 105(ivec3)
|
104: TypePointer Input 101(ivec2)
|
||||||
109(u_i3): 108(ptr) Variable Input
|
105(u_i2): 104(ptr) Variable Input
|
||||||
111(i_i3): 108(ptr) Variable Input
|
107(i_i2): 104(ptr) Variable Input
|
||||||
114: TypeVector 87(int) 4
|
110: TypeVector 92(int) 3
|
||||||
115: TypePointer Function 114(ivec4)
|
111: TypePointer Function 110(ivec3)
|
||||||
117: TypePointer Input 114(ivec4)
|
113: TypePointer Input 110(ivec3)
|
||||||
118(u_i4): 117(ptr) Variable Input
|
114(u_i3): 113(ptr) Variable Input
|
||||||
120(i_i4): 117(ptr) Variable Input
|
116(i_i3): 113(ptr) Variable Input
|
||||||
123: TypeFloat 32
|
119: TypeVector 92(int) 4
|
||||||
124: TypePointer Function 123(float)
|
120: TypePointer Function 119(ivec4)
|
||||||
126: TypePointer Input 123(float)
|
122: TypePointer Input 119(ivec4)
|
||||||
127(u_f): 126(ptr) Variable Input
|
123(u_i4): 122(ptr) Variable Input
|
||||||
129(i_f): 126(ptr) Variable Input
|
125(i_i4): 122(ptr) Variable Input
|
||||||
132: TypeVector 123(float) 2
|
128: TypeFloat 32
|
||||||
133: TypePointer Function 132(fvec2)
|
129: TypePointer Function 128(float)
|
||||||
135: TypePointer Input 132(fvec2)
|
131: TypePointer Input 128(float)
|
||||||
136(u_f2): 135(ptr) Variable Input
|
132(u_f): 131(ptr) Variable Input
|
||||||
138(i_f2): 135(ptr) Variable Input
|
134(i_f): 131(ptr) Variable Input
|
||||||
141: TypeVector 123(float) 3
|
137: TypeVector 128(float) 2
|
||||||
142: TypePointer Function 141(fvec3)
|
138: TypePointer Function 137(fvec2)
|
||||||
144: TypePointer Input 141(fvec3)
|
140: TypePointer Input 137(fvec2)
|
||||||
145(u_f3): 144(ptr) Variable Input
|
141(u_f2): 140(ptr) Variable Input
|
||||||
147(i_f3): 144(ptr) Variable Input
|
143(i_f2): 140(ptr) Variable Input
|
||||||
150: TypeVector 123(float) 4
|
146: TypeVector 128(float) 3
|
||||||
151: TypePointer Function 150(fvec4)
|
147: TypePointer Function 146(fvec3)
|
||||||
153: TypePointer Input 150(fvec4)
|
149: TypePointer Input 146(fvec3)
|
||||||
154(u_f4): 153(ptr) Variable Input
|
150(u_f3): 149(ptr) Variable Input
|
||||||
156(i_f4): 153(ptr) Variable Input
|
152(i_f3): 149(ptr) Variable Input
|
||||||
159: TypePointer Output 150(fvec4)
|
155: TypeVector 128(float) 4
|
||||||
160(gl_FragColor): 159(ptr) Variable Output
|
156: TypePointer Function 155(fvec4)
|
||||||
193: TypeInt 32 0
|
158: TypePointer Input 155(fvec4)
|
||||||
194: 193(int) Constant 0
|
159(u_f4): 158(ptr) Variable Input
|
||||||
198: 193(int) Constant 1
|
161(i_f4): 158(ptr) Variable Input
|
||||||
208: 193(int) Constant 2
|
164: TypePointer Output 155(fvec4)
|
||||||
221: 193(int) Constant 3
|
165(gl_FragColor): 164(ptr) Variable Output
|
||||||
257: 123(float) Constant 1065353216
|
257: 128(float) Constant 1065353216
|
||||||
258: 150(fvec4) ConstantComposite 257 257 257 257
|
258: 155(fvec4) ConstantComposite 257 257 257 257
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
8(b): 7(ptr) Variable Function
|
8(b): 7(ptr) Variable Function
|
||||||
17(b2): 16(ptr) Variable Function
|
17(b2): 16(ptr) Variable Function
|
||||||
35(b3): 34(ptr) Variable Function
|
38(b3): 37(ptr) Variable Function
|
||||||
59(b4): 58(ptr) Variable Function
|
63(b4): 62(ptr) Variable Function
|
||||||
89(i): 88(ptr) Variable Function
|
94(i): 93(ptr) Variable Function
|
||||||
98(i2): 97(ptr) Variable Function
|
103(i2): 102(ptr) Variable Function
|
||||||
107(i3): 106(ptr) Variable Function
|
112(i3): 111(ptr) Variable Function
|
||||||
116(i4): 115(ptr) Variable Function
|
121(i4): 120(ptr) Variable Function
|
||||||
125(f): 124(ptr) Variable Function
|
130(f): 129(ptr) Variable Function
|
||||||
134(f2): 133(ptr) Variable Function
|
139(f2): 138(ptr) Variable Function
|
||||||
143(f3): 142(ptr) Variable Function
|
148(f3): 147(ptr) Variable Function
|
||||||
152(f4): 151(ptr) Variable Function
|
157(f4): 156(ptr) Variable Function
|
||||||
161: 151(ptr) Variable Function
|
166: 156(ptr) Variable Function
|
||||||
11: 6(bool) Load 10(u_b)
|
11: 6(bool) Load 10(u_b)
|
||||||
13: 6(bool) Load 12(i_b)
|
13: 6(bool) Load 12(i_b)
|
||||||
14: 6(bool) LogicalAnd 11 13
|
14: 6(bool) LogicalAnd 11 13
|
||||||
Store 8(b) 14
|
Store 8(b) 14
|
||||||
20: 15(bvec2) Load 19(u_b2)
|
22: 9(ptr) AccessChain 19(u_b2) 21
|
||||||
21: 6(bool) CompositeExtract 20 0
|
23: 6(bool) Load 22
|
||||||
23: 15(bvec2) Load 22(i_b2)
|
25: 9(ptr) AccessChain 24(i_b2) 21
|
||||||
24: 6(bool) CompositeExtract 23 0
|
26: 6(bool) Load 25
|
||||||
25: 6(bool) LogicalAnd 21 24
|
27: 6(bool) LogicalAnd 23 26
|
||||||
26: 15(bvec2) Load 19(u_b2)
|
29: 9(ptr) AccessChain 19(u_b2) 28
|
||||||
27: 6(bool) CompositeExtract 26 1
|
30: 6(bool) Load 29
|
||||||
28: 6(bool) LogicalAnd 25 27
|
31: 6(bool) LogicalAnd 27 30
|
||||||
29: 15(bvec2) Load 22(i_b2)
|
32: 9(ptr) AccessChain 24(i_b2) 28
|
||||||
30: 6(bool) CompositeExtract 29 1
|
33: 6(bool) Load 32
|
||||||
31: 6(bool) LogicalAnd 28 30
|
34: 6(bool) LogicalAnd 31 33
|
||||||
32: 15(bvec2) CompositeConstruct 31 31
|
35: 15(bvec2) CompositeConstruct 34 34
|
||||||
Store 17(b2) 32
|
Store 17(b2) 35
|
||||||
38: 33(bvec3) Load 37(u_b3)
|
41: 9(ptr) AccessChain 40(u_b3) 21
|
||||||
39: 6(bool) CompositeExtract 38 0
|
42: 6(bool) Load 41
|
||||||
41: 33(bvec3) Load 40(i_b3)
|
44: 9(ptr) AccessChain 43(i_b3) 21
|
||||||
42: 6(bool) CompositeExtract 41 0
|
45: 6(bool) Load 44
|
||||||
43: 6(bool) LogicalAnd 39 42
|
46: 6(bool) LogicalAnd 42 45
|
||||||
44: 33(bvec3) Load 37(u_b3)
|
47: 9(ptr) AccessChain 40(u_b3) 28
|
||||||
45: 6(bool) CompositeExtract 44 1
|
48: 6(bool) Load 47
|
||||||
46: 6(bool) LogicalAnd 43 45
|
|
||||||
47: 33(bvec3) Load 40(i_b3)
|
|
||||||
48: 6(bool) CompositeExtract 47 1
|
|
||||||
49: 6(bool) LogicalAnd 46 48
|
49: 6(bool) LogicalAnd 46 48
|
||||||
50: 33(bvec3) Load 37(u_b3)
|
50: 9(ptr) AccessChain 43(i_b3) 28
|
||||||
51: 6(bool) CompositeExtract 50 2
|
51: 6(bool) Load 50
|
||||||
52: 6(bool) LogicalAnd 49 51
|
52: 6(bool) LogicalAnd 49 51
|
||||||
53: 33(bvec3) Load 40(i_b3)
|
54: 9(ptr) AccessChain 40(u_b3) 53
|
||||||
54: 6(bool) CompositeExtract 53 2
|
55: 6(bool) Load 54
|
||||||
55: 6(bool) LogicalAnd 52 54
|
56: 6(bool) LogicalAnd 52 55
|
||||||
56: 33(bvec3) CompositeConstruct 55 55 55
|
57: 9(ptr) AccessChain 43(i_b3) 53
|
||||||
Store 35(b3) 56
|
58: 6(bool) Load 57
|
||||||
62: 57(bvec4) Load 61(u_b4)
|
59: 6(bool) LogicalAnd 56 58
|
||||||
63: 6(bool) CompositeExtract 62 0
|
60: 36(bvec3) CompositeConstruct 59 59 59
|
||||||
65: 57(bvec4) Load 64(i_b4)
|
Store 38(b3) 60
|
||||||
66: 6(bool) CompositeExtract 65 0
|
66: 9(ptr) AccessChain 65(u_b4) 21
|
||||||
67: 6(bool) LogicalAnd 63 66
|
67: 6(bool) Load 66
|
||||||
68: 57(bvec4) Load 61(u_b4)
|
69: 9(ptr) AccessChain 68(i_b4) 21
|
||||||
69: 6(bool) CompositeExtract 68 1
|
70: 6(bool) Load 69
|
||||||
70: 6(bool) LogicalAnd 67 69
|
71: 6(bool) LogicalAnd 67 70
|
||||||
71: 57(bvec4) Load 64(i_b4)
|
72: 9(ptr) AccessChain 65(u_b4) 28
|
||||||
72: 6(bool) CompositeExtract 71 1
|
73: 6(bool) Load 72
|
||||||
73: 6(bool) LogicalAnd 70 72
|
74: 6(bool) LogicalAnd 71 73
|
||||||
74: 57(bvec4) Load 61(u_b4)
|
75: 9(ptr) AccessChain 68(i_b4) 28
|
||||||
75: 6(bool) CompositeExtract 74 2
|
76: 6(bool) Load 75
|
||||||
76: 6(bool) LogicalAnd 73 75
|
77: 6(bool) LogicalAnd 74 76
|
||||||
77: 57(bvec4) Load 64(i_b4)
|
78: 9(ptr) AccessChain 65(u_b4) 53
|
||||||
78: 6(bool) CompositeExtract 77 2
|
79: 6(bool) Load 78
|
||||||
79: 6(bool) LogicalAnd 76 78
|
80: 6(bool) LogicalAnd 77 79
|
||||||
80: 57(bvec4) Load 61(u_b4)
|
81: 9(ptr) AccessChain 68(i_b4) 53
|
||||||
81: 6(bool) CompositeExtract 80 3
|
82: 6(bool) Load 81
|
||||||
82: 6(bool) LogicalAnd 79 81
|
83: 6(bool) LogicalAnd 80 82
|
||||||
83: 57(bvec4) Load 64(i_b4)
|
85: 9(ptr) AccessChain 65(u_b4) 84
|
||||||
84: 6(bool) CompositeExtract 83 3
|
86: 6(bool) Load 85
|
||||||
85: 6(bool) LogicalAnd 82 84
|
87: 6(bool) LogicalAnd 83 86
|
||||||
86: 57(bvec4) CompositeConstruct 85 85 85 85
|
88: 9(ptr) AccessChain 68(i_b4) 84
|
||||||
Store 59(b4) 86
|
89: 6(bool) Load 88
|
||||||
92: 87(int) Load 91(u_i)
|
90: 6(bool) LogicalAnd 87 89
|
||||||
94: 87(int) Load 93(i_i)
|
91: 61(bvec4) CompositeConstruct 90 90 90 90
|
||||||
95: 87(int) IAdd 92 94
|
Store 63(b4) 91
|
||||||
Store 89(i) 95
|
97: 92(int) Load 96(u_i)
|
||||||
101: 96(ivec2) Load 100(u_i2)
|
99: 92(int) Load 98(i_i)
|
||||||
103: 96(ivec2) Load 102(i_i2)
|
100: 92(int) IAdd 97 99
|
||||||
104: 96(ivec2) IAdd 101 103
|
Store 94(i) 100
|
||||||
Store 98(i2) 104
|
106: 101(ivec2) Load 105(u_i2)
|
||||||
110: 105(ivec3) Load 109(u_i3)
|
108: 101(ivec2) Load 107(i_i2)
|
||||||
112: 105(ivec3) Load 111(i_i3)
|
109: 101(ivec2) IAdd 106 108
|
||||||
113: 105(ivec3) IAdd 110 112
|
Store 103(i2) 109
|
||||||
Store 107(i3) 113
|
115: 110(ivec3) Load 114(u_i3)
|
||||||
119: 114(ivec4) Load 118(u_i4)
|
117: 110(ivec3) Load 116(i_i3)
|
||||||
121: 114(ivec4) Load 120(i_i4)
|
118: 110(ivec3) IAdd 115 117
|
||||||
122: 114(ivec4) IAdd 119 121
|
Store 112(i3) 118
|
||||||
Store 116(i4) 122
|
124: 119(ivec4) Load 123(u_i4)
|
||||||
128: 123(float) Load 127(u_f)
|
126: 119(ivec4) Load 125(i_i4)
|
||||||
130: 123(float) Load 129(i_f)
|
127: 119(ivec4) IAdd 124 126
|
||||||
131: 123(float) FAdd 128 130
|
Store 121(i4) 127
|
||||||
Store 125(f) 131
|
133: 128(float) Load 132(u_f)
|
||||||
137: 132(fvec2) Load 136(u_f2)
|
135: 128(float) Load 134(i_f)
|
||||||
139: 132(fvec2) Load 138(i_f2)
|
136: 128(float) FAdd 133 135
|
||||||
140: 132(fvec2) FAdd 137 139
|
Store 130(f) 136
|
||||||
Store 134(f2) 140
|
142: 137(fvec2) Load 141(u_f2)
|
||||||
146: 141(fvec3) Load 145(u_f3)
|
144: 137(fvec2) Load 143(i_f2)
|
||||||
148: 141(fvec3) Load 147(i_f3)
|
145: 137(fvec2) FAdd 142 144
|
||||||
149: 141(fvec3) FAdd 146 148
|
Store 139(f2) 145
|
||||||
Store 143(f3) 149
|
151: 146(fvec3) Load 150(u_f3)
|
||||||
155: 150(fvec4) Load 154(u_f4)
|
153: 146(fvec3) Load 152(i_f3)
|
||||||
157: 150(fvec4) Load 156(i_f4)
|
154: 146(fvec3) FAdd 151 153
|
||||||
158: 150(fvec4) FAdd 155 157
|
Store 148(f3) 154
|
||||||
Store 152(f4) 158
|
160: 155(fvec4) Load 159(u_f4)
|
||||||
162: 6(bool) Load 8(b)
|
162: 155(fvec4) Load 161(i_f4)
|
||||||
163: 15(bvec2) Load 17(b2)
|
163: 155(fvec4) FAdd 160 162
|
||||||
164: 6(bool) CompositeExtract 163 0
|
Store 157(f4) 163
|
||||||
165: 6(bool) LogicalOr 162 164
|
167: 6(bool) Load 8(b)
|
||||||
166: 15(bvec2) Load 17(b2)
|
168: 7(ptr) AccessChain 17(b2) 21
|
||||||
167: 6(bool) CompositeExtract 166 1
|
169: 6(bool) Load 168
|
||||||
168: 6(bool) LogicalOr 165 167
|
170: 6(bool) LogicalOr 167 169
|
||||||
169: 33(bvec3) Load 35(b3)
|
171: 7(ptr) AccessChain 17(b2) 28
|
||||||
170: 6(bool) CompositeExtract 169 0
|
172: 6(bool) Load 171
|
||||||
171: 6(bool) LogicalOr 168 170
|
173: 6(bool) LogicalOr 170 172
|
||||||
172: 33(bvec3) Load 35(b3)
|
174: 7(ptr) AccessChain 38(b3) 21
|
||||||
173: 6(bool) CompositeExtract 172 1
|
175: 6(bool) Load 174
|
||||||
174: 6(bool) LogicalOr 171 173
|
176: 6(bool) LogicalOr 173 175
|
||||||
175: 33(bvec3) Load 35(b3)
|
177: 7(ptr) AccessChain 38(b3) 28
|
||||||
176: 6(bool) CompositeExtract 175 2
|
178: 6(bool) Load 177
|
||||||
177: 6(bool) LogicalOr 174 176
|
179: 6(bool) LogicalOr 176 178
|
||||||
178: 57(bvec4) Load 59(b4)
|
180: 7(ptr) AccessChain 38(b3) 53
|
||||||
179: 6(bool) CompositeExtract 178 0
|
181: 6(bool) Load 180
|
||||||
180: 6(bool) LogicalOr 177 179
|
182: 6(bool) LogicalOr 179 181
|
||||||
181: 57(bvec4) Load 59(b4)
|
183: 7(ptr) AccessChain 63(b4) 21
|
||||||
182: 6(bool) CompositeExtract 181 1
|
184: 6(bool) Load 183
|
||||||
183: 6(bool) LogicalOr 180 182
|
185: 6(bool) LogicalOr 182 184
|
||||||
184: 57(bvec4) Load 59(b4)
|
186: 7(ptr) AccessChain 63(b4) 28
|
||||||
185: 6(bool) CompositeExtract 184 2
|
187: 6(bool) Load 186
|
||||||
186: 6(bool) LogicalOr 183 185
|
188: 6(bool) LogicalOr 185 187
|
||||||
187: 57(bvec4) Load 59(b4)
|
189: 7(ptr) AccessChain 63(b4) 53
|
||||||
188: 6(bool) CompositeExtract 187 3
|
190: 6(bool) Load 189
|
||||||
189: 6(bool) LogicalOr 186 188
|
191: 6(bool) LogicalOr 188 190
|
||||||
SelectionMerge 191 None
|
192: 7(ptr) AccessChain 63(b4) 84
|
||||||
BranchConditional 189 190 256
|
193: 6(bool) Load 192
|
||||||
190: Label
|
194: 6(bool) LogicalOr 191 193
|
||||||
192: 87(int) Load 89(i)
|
SelectionMerge 196 None
|
||||||
195: 88(ptr) AccessChain 98(i2) 194
|
BranchConditional 194 195 256
|
||||||
196: 87(int) Load 195
|
195: Label
|
||||||
197: 87(int) IAdd 192 196
|
197: 92(int) Load 94(i)
|
||||||
199: 88(ptr) AccessChain 98(i2) 198
|
198: 93(ptr) AccessChain 103(i2) 21
|
||||||
200: 87(int) Load 199
|
199: 92(int) Load 198
|
||||||
201: 87(int) IAdd 197 200
|
200: 92(int) IAdd 197 199
|
||||||
202: 88(ptr) AccessChain 107(i3) 194
|
201: 93(ptr) AccessChain 103(i2) 28
|
||||||
203: 87(int) Load 202
|
202: 92(int) Load 201
|
||||||
204: 87(int) IAdd 201 203
|
203: 92(int) IAdd 200 202
|
||||||
205: 88(ptr) AccessChain 107(i3) 198
|
204: 93(ptr) AccessChain 112(i3) 21
|
||||||
206: 87(int) Load 205
|
205: 92(int) Load 204
|
||||||
207: 87(int) IAdd 204 206
|
206: 92(int) IAdd 203 205
|
||||||
209: 88(ptr) AccessChain 107(i3) 208
|
207: 93(ptr) AccessChain 112(i3) 28
|
||||||
210: 87(int) Load 209
|
208: 92(int) Load 207
|
||||||
211: 87(int) IAdd 207 210
|
209: 92(int) IAdd 206 208
|
||||||
212: 88(ptr) AccessChain 116(i4) 194
|
210: 93(ptr) AccessChain 112(i3) 53
|
||||||
213: 87(int) Load 212
|
211: 92(int) Load 210
|
||||||
214: 87(int) IAdd 211 213
|
212: 92(int) IAdd 209 211
|
||||||
215: 88(ptr) AccessChain 116(i4) 198
|
213: 93(ptr) AccessChain 121(i4) 21
|
||||||
216: 87(int) Load 215
|
214: 92(int) Load 213
|
||||||
217: 87(int) IAdd 214 216
|
215: 92(int) IAdd 212 214
|
||||||
218: 88(ptr) AccessChain 116(i4) 208
|
216: 93(ptr) AccessChain 121(i4) 28
|
||||||
219: 87(int) Load 218
|
217: 92(int) Load 216
|
||||||
220: 87(int) IAdd 217 219
|
218: 92(int) IAdd 215 217
|
||||||
222: 88(ptr) AccessChain 116(i4) 221
|
219: 93(ptr) AccessChain 121(i4) 53
|
||||||
223: 87(int) Load 222
|
220: 92(int) Load 219
|
||||||
224: 87(int) IAdd 220 223
|
221: 92(int) IAdd 218 220
|
||||||
225: 123(float) ConvertSToF 224
|
222: 93(ptr) AccessChain 121(i4) 84
|
||||||
226: 123(float) Load 125(f)
|
223: 92(int) Load 222
|
||||||
227: 123(float) FAdd 225 226
|
224: 92(int) IAdd 221 223
|
||||||
228: 124(ptr) AccessChain 134(f2) 194
|
225: 128(float) ConvertSToF 224
|
||||||
229: 123(float) Load 228
|
226: 128(float) Load 130(f)
|
||||||
230: 123(float) FAdd 227 229
|
227: 128(float) FAdd 225 226
|
||||||
231: 124(ptr) AccessChain 134(f2) 198
|
228: 129(ptr) AccessChain 139(f2) 21
|
||||||
232: 123(float) Load 231
|
229: 128(float) Load 228
|
||||||
233: 123(float) FAdd 230 232
|
230: 128(float) FAdd 227 229
|
||||||
234: 124(ptr) AccessChain 143(f3) 194
|
231: 129(ptr) AccessChain 139(f2) 28
|
||||||
235: 123(float) Load 234
|
232: 128(float) Load 231
|
||||||
236: 123(float) FAdd 233 235
|
233: 128(float) FAdd 230 232
|
||||||
237: 124(ptr) AccessChain 143(f3) 198
|
234: 129(ptr) AccessChain 148(f3) 21
|
||||||
238: 123(float) Load 237
|
235: 128(float) Load 234
|
||||||
239: 123(float) FAdd 236 238
|
236: 128(float) FAdd 233 235
|
||||||
240: 124(ptr) AccessChain 143(f3) 208
|
237: 129(ptr) AccessChain 148(f3) 28
|
||||||
241: 123(float) Load 240
|
238: 128(float) Load 237
|
||||||
242: 123(float) FAdd 239 241
|
239: 128(float) FAdd 236 238
|
||||||
243: 124(ptr) AccessChain 152(f4) 194
|
240: 129(ptr) AccessChain 148(f3) 53
|
||||||
244: 123(float) Load 243
|
241: 128(float) Load 240
|
||||||
245: 123(float) FAdd 242 244
|
242: 128(float) FAdd 239 241
|
||||||
246: 124(ptr) AccessChain 152(f4) 198
|
243: 129(ptr) AccessChain 157(f4) 21
|
||||||
247: 123(float) Load 246
|
244: 128(float) Load 243
|
||||||
248: 123(float) FAdd 245 247
|
245: 128(float) FAdd 242 244
|
||||||
249: 124(ptr) AccessChain 152(f4) 208
|
246: 129(ptr) AccessChain 157(f4) 28
|
||||||
250: 123(float) Load 249
|
247: 128(float) Load 246
|
||||||
251: 123(float) FAdd 248 250
|
248: 128(float) FAdd 245 247
|
||||||
252: 124(ptr) AccessChain 152(f4) 221
|
249: 129(ptr) AccessChain 157(f4) 53
|
||||||
253: 123(float) Load 252
|
250: 128(float) Load 249
|
||||||
254: 123(float) FAdd 251 253
|
251: 128(float) FAdd 248 250
|
||||||
255: 150(fvec4) CompositeConstruct 254 254 254 254
|
252: 129(ptr) AccessChain 157(f4) 84
|
||||||
Store 161 255
|
253: 128(float) Load 252
|
||||||
Branch 191
|
254: 128(float) FAdd 251 253
|
||||||
|
255: 155(fvec4) CompositeConstruct 254 254 254 254
|
||||||
|
Store 166 255
|
||||||
|
Branch 196
|
||||||
256: Label
|
256: Label
|
||||||
Store 161 258
|
Store 166 258
|
||||||
Branch 191
|
Branch 196
|
||||||
191: Label
|
196: Label
|
||||||
259: 150(fvec4) Load 161
|
259: 155(fvec4) Load 166
|
||||||
Store 160(gl_FragColor) 259
|
Store 165(gl_FragColor) 259
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -74,6 +74,11 @@ void GetColor13(const S i, int comp)
|
|||||||
OutColor.zy[comp] += i.color.x;
|
OutColor.zy[comp] += i.color.x;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GetColor14(const S i, int comp)
|
||||||
|
{
|
||||||
|
OutColor.zyx[comp] = i.color.x;
|
||||||
|
}
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
S s;
|
S s;
|
||||||
@ -91,4 +96,5 @@ void main()
|
|||||||
GetColor11(s, u);
|
GetColor11(s, u);
|
||||||
GetColor12(s, u);
|
GetColor12(s, u);
|
||||||
GetColor13(s, u);
|
GetColor13(s, u);
|
||||||
|
GetColor14(s, u);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user