Merge pull request #1078 from greg-lunarg/addopt14
Remove opaque workarounds
This commit is contained in:
commit
5a57ca680f
@ -158,6 +158,8 @@ protected:
|
|||||||
void declareUseOfStructMember(const glslang::TTypeList& members, int glslangMember);
|
void declareUseOfStructMember(const glslang::TTypeList& members, int glslangMember);
|
||||||
|
|
||||||
bool isShaderEntryPoint(const glslang::TIntermAggregate* node);
|
bool isShaderEntryPoint(const glslang::TIntermAggregate* node);
|
||||||
|
bool writableParam(glslang::TStorageQualifier);
|
||||||
|
bool originalParam(glslang::TStorageQualifier, const glslang::TType&, bool implicitThisParam);
|
||||||
void makeFunctions(const glslang::TIntermSequence&);
|
void makeFunctions(const glslang::TIntermSequence&);
|
||||||
void makeGlobalInitializers(const glslang::TIntermSequence&);
|
void makeGlobalInitializers(const glslang::TIntermSequence&);
|
||||||
void visitFunctions(const glslang::TIntermSequence&);
|
void visitFunctions(const glslang::TIntermSequence&);
|
||||||
@ -771,34 +773,42 @@ spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::T
|
|||||||
{
|
{
|
||||||
if (type.getQualifier().isPipeInput())
|
if (type.getQualifier().isPipeInput())
|
||||||
return spv::StorageClassInput;
|
return spv::StorageClassInput;
|
||||||
else if (type.getQualifier().isPipeOutput())
|
if (type.getQualifier().isPipeOutput())
|
||||||
return spv::StorageClassOutput;
|
return spv::StorageClassOutput;
|
||||||
else if (type.getBasicType() == glslang::EbtAtomicUint)
|
|
||||||
|
if (glslangIntermediate->getSource() != glslang::EShSourceHlsl ||
|
||||||
|
type.getQualifier().storage == glslang::EvqUniform) {
|
||||||
|
if (type.getBasicType() == glslang::EbtAtomicUint)
|
||||||
return spv::StorageClassAtomicCounter;
|
return spv::StorageClassAtomicCounter;
|
||||||
else if (type.containsOpaque())
|
if (type.containsOpaque())
|
||||||
return spv::StorageClassUniformConstant;
|
return spv::StorageClassUniformConstant;
|
||||||
else if (glslangIntermediate->usingStorageBuffer() && type.getQualifier().storage == glslang::EvqBuffer) {
|
}
|
||||||
|
|
||||||
|
if (glslangIntermediate->usingStorageBuffer() && type.getQualifier().storage == glslang::EvqBuffer) {
|
||||||
builder.addExtension(spv::E_SPV_KHR_storage_buffer_storage_class);
|
builder.addExtension(spv::E_SPV_KHR_storage_buffer_storage_class);
|
||||||
return spv::StorageClassStorageBuffer;
|
return spv::StorageClassStorageBuffer;
|
||||||
} else if (type.getQualifier().isUniformOrBuffer()) {
|
}
|
||||||
|
|
||||||
|
if (type.getQualifier().isUniformOrBuffer()) {
|
||||||
if (type.getQualifier().layoutPushConstant)
|
if (type.getQualifier().layoutPushConstant)
|
||||||
return spv::StorageClassPushConstant;
|
return spv::StorageClassPushConstant;
|
||||||
if (type.getBasicType() == glslang::EbtBlock)
|
if (type.getBasicType() == glslang::EbtBlock)
|
||||||
return spv::StorageClassUniform;
|
return spv::StorageClassUniform;
|
||||||
else
|
|
||||||
return spv::StorageClassUniformConstant;
|
return spv::StorageClassUniformConstant;
|
||||||
} else {
|
}
|
||||||
|
|
||||||
switch (type.getQualifier().storage) {
|
switch (type.getQualifier().storage) {
|
||||||
case glslang::EvqShared: return spv::StorageClassWorkgroup; break;
|
case glslang::EvqShared: return spv::StorageClassWorkgroup;
|
||||||
case glslang::EvqGlobal: return spv::StorageClassPrivate;
|
case glslang::EvqGlobal: return spv::StorageClassPrivate;
|
||||||
case glslang::EvqConstReadOnly: return spv::StorageClassFunction;
|
case glslang::EvqConstReadOnly: return spv::StorageClassFunction;
|
||||||
case glslang::EvqTemporary: return spv::StorageClassFunction;
|
case glslang::EvqTemporary: return spv::StorageClassFunction;
|
||||||
default:
|
default:
|
||||||
assert(0);
|
assert(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return spv::StorageClassFunction;
|
return spv::StorageClassFunction;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return whether or not the given type is something that should be tied to a
|
// Return whether or not the given type is something that should be tied to a
|
||||||
// descriptor set.
|
// descriptor set.
|
||||||
@ -2961,6 +2971,24 @@ bool TGlslangToSpvTraverser::isShaderEntryPoint(const glslang::TIntermAggregate*
|
|||||||
return node->getName().compare(glslangIntermediate->getEntryPointMangledName().c_str()) == 0;
|
return node->getName().compare(glslangIntermediate->getEntryPointMangledName().c_str()) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Does parameter need a place to keep writes, separate from the original?
|
||||||
|
bool TGlslangToSpvTraverser::writableParam(glslang::TStorageQualifier qualifier)
|
||||||
|
{
|
||||||
|
return qualifier != glslang::EvqConstReadOnly;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Is parameter pass-by-original?
|
||||||
|
bool TGlslangToSpvTraverser::originalParam(glslang::TStorageQualifier qualifier, const glslang::TType& paramType,
|
||||||
|
bool implicitThisParam)
|
||||||
|
{
|
||||||
|
if (implicitThisParam) // implicit this
|
||||||
|
return true;
|
||||||
|
if (glslangIntermediate->getSource() == glslang::EShSourceHlsl)
|
||||||
|
return false;
|
||||||
|
return paramType.containsOpaque() || // sampler, etc.
|
||||||
|
(paramType.getBasicType() == glslang::EbtBlock && qualifier == glslang::EvqBuffer); // SSBO
|
||||||
|
}
|
||||||
|
|
||||||
// Make all the functions, skeletally, without actually visiting their bodies.
|
// Make all the functions, skeletally, without actually visiting their bodies.
|
||||||
void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslFunctions)
|
void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslFunctions)
|
||||||
{
|
{
|
||||||
@ -3001,13 +3029,9 @@ void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslF
|
|||||||
for (int p = 0; p < (int)parameters.size(); ++p) {
|
for (int p = 0; p < (int)parameters.size(); ++p) {
|
||||||
const glslang::TType& paramType = parameters[p]->getAsTyped()->getType();
|
const glslang::TType& paramType = parameters[p]->getAsTyped()->getType();
|
||||||
spv::Id typeId = convertGlslangToSpvType(paramType);
|
spv::Id typeId = convertGlslangToSpvType(paramType);
|
||||||
// can we pass by reference?
|
if (originalParam(paramType.getQualifier().storage, paramType, implicitThis && p == 0))
|
||||||
if (paramType.containsOpaque() || // sampler, etc.
|
|
||||||
(paramType.getBasicType() == glslang::EbtBlock &&
|
|
||||||
paramType.getQualifier().storage == glslang::EvqBuffer) || // SSBO
|
|
||||||
(p == 0 && implicitThis)) // implicit 'this'
|
|
||||||
typeId = builder.makePointer(TranslateStorageClass(paramType), typeId);
|
typeId = builder.makePointer(TranslateStorageClass(paramType), typeId);
|
||||||
else if (paramType.getQualifier().storage != glslang::EvqConstReadOnly)
|
else if (writableParam(paramType.getQualifier().storage))
|
||||||
typeId = builder.makePointer(spv::StorageClassFunction, typeId);
|
typeId = builder.makePointer(spv::StorageClassFunction, typeId);
|
||||||
else
|
else
|
||||||
rValueParameters.insert(parameters[p]->getAsSymbolNode()->getId());
|
rValueParameters.insert(parameters[p]->getAsSymbolNode()->getId());
|
||||||
@ -3567,11 +3591,6 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg
|
|||||||
const glslang::TIntermSequence& glslangArgs = node->getSequence();
|
const glslang::TIntermSequence& glslangArgs = node->getSequence();
|
||||||
const glslang::TQualifierList& qualifiers = node->getQualifierList();
|
const glslang::TQualifierList& qualifiers = node->getQualifierList();
|
||||||
|
|
||||||
// Encapsulate lvalue logic, used in several places below, for safety.
|
|
||||||
const auto isLValue = [](int qualifier, const glslang::TType& paramType) -> bool {
|
|
||||||
return qualifier != glslang::EvqConstReadOnly || paramType.containsOpaque();
|
|
||||||
};
|
|
||||||
|
|
||||||
// See comments in makeFunctions() for details about the semantics for parameter passing.
|
// See comments in makeFunctions() for details about the semantics for parameter passing.
|
||||||
//
|
//
|
||||||
// These imply we need a four step process:
|
// These imply we need a four step process:
|
||||||
@ -3590,8 +3609,9 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg
|
|||||||
builder.clearAccessChain();
|
builder.clearAccessChain();
|
||||||
glslangArgs[a]->traverse(this);
|
glslangArgs[a]->traverse(this);
|
||||||
argTypes.push_back(¶mType);
|
argTypes.push_back(¶mType);
|
||||||
// keep outputs and opaque objects as l-values, evaluate input-only as r-values
|
// keep outputs and pass-by-originals as l-values, evaluate others as r-values
|
||||||
if (isLValue(qualifiers[a], paramType)) {
|
if (writableParam(qualifiers[a]) ||
|
||||||
|
originalParam(qualifiers[a], paramType, function->hasImplicitThis() && a == 0)) {
|
||||||
// save l-value
|
// save l-value
|
||||||
lValues.push_back(builder.getAccessChain());
|
lValues.push_back(builder.getAccessChain());
|
||||||
} else {
|
} else {
|
||||||
@ -3610,13 +3630,11 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg
|
|||||||
for (int a = 0; a < (int)glslangArgs.size(); ++a) {
|
for (int a = 0; a < (int)glslangArgs.size(); ++a) {
|
||||||
const glslang::TType& paramType = glslangArgs[a]->getAsTyped()->getType();
|
const glslang::TType& paramType = glslangArgs[a]->getAsTyped()->getType();
|
||||||
spv::Id arg;
|
spv::Id arg;
|
||||||
if (paramType.containsOpaque() ||
|
if (originalParam(qualifiers[a], paramType, function->hasImplicitThis() && a == 0)) {
|
||||||
(paramType.getBasicType() == glslang::EbtBlock && qualifiers[a] == glslang::EvqBuffer) ||
|
|
||||||
(a == 0 && function->hasImplicitThis())) {
|
|
||||||
builder.setAccessChain(lValues[lValueCount]);
|
builder.setAccessChain(lValues[lValueCount]);
|
||||||
arg = builder.accessChainGetLValue();
|
arg = builder.accessChainGetLValue();
|
||||||
++lValueCount;
|
++lValueCount;
|
||||||
} else if (isLValue(qualifiers[a], paramType)) {
|
} else if (writableParam(qualifiers[a])) {
|
||||||
// need space to hold the copy
|
// need space to hold the copy
|
||||||
arg = builder.createVariable(spv::StorageClassFunction, convertGlslangToSpvType(paramType), "param");
|
arg = builder.createVariable(spv::StorageClassFunction, convertGlslangToSpvType(paramType), "param");
|
||||||
if (qualifiers[a] == glslang::EvqIn || qualifiers[a] == glslang::EvqInOut) {
|
if (qualifiers[a] == glslang::EvqIn || qualifiers[a] == glslang::EvqInOut) {
|
||||||
@ -3643,7 +3661,9 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg
|
|||||||
lValueCount = 0;
|
lValueCount = 0;
|
||||||
for (int a = 0; a < (int)glslangArgs.size(); ++a) {
|
for (int a = 0; a < (int)glslangArgs.size(); ++a) {
|
||||||
const glslang::TType& paramType = glslangArgs[a]->getAsTyped()->getType();
|
const glslang::TType& paramType = glslangArgs[a]->getAsTyped()->getType();
|
||||||
if (isLValue(qualifiers[a], paramType)) {
|
if (originalParam(qualifiers[a], paramType, function->hasImplicitThis() && a == 0))
|
||||||
|
++lValueCount;
|
||||||
|
else if (writableParam(qualifiers[a])) {
|
||||||
if (qualifiers[a] == glslang::EvqOut || qualifiers[a] == glslang::EvqInOut) {
|
if (qualifiers[a] == glslang::EvqOut || qualifiers[a] == glslang::EvqInOut) {
|
||||||
spv::Id copy = builder.createLoad(spvArgs[a]);
|
spv::Id copy = builder.createLoad(spvArgs[a]);
|
||||||
builder.setAccessChain(lValues[lValueCount]);
|
builder.setAccessChain(lValues[lValueCount]);
|
||||||
|
|||||||
@ -1,46 +1,50 @@
|
|||||||
hlsl.aliasOpaque.frag
|
hlsl.aliasOpaque.frag
|
||||||
|
WARNING: AST will form illegal SPIR-V; need to transform to legalize
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 61
|
// Id's are bound by 81
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4 "main" 46
|
EntryPoint Fragment 4 "main" 57
|
||||||
ExecutionMode 4 OriginUpperLeft
|
ExecutionMode 4 OriginUpperLeft
|
||||||
Source HLSL 500
|
Source HLSL 500
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 36 "gss"
|
Name 37 "gss2"
|
||||||
Name 37 "gtex"
|
Name 39 "gss"
|
||||||
Name 46 "@entryPointOutput"
|
Name 43 "gtex"
|
||||||
Decorate 36(gss) DescriptorSet 0
|
Name 57 "@entryPointOutput"
|
||||||
Decorate 37(gtex) DescriptorSet 0
|
Decorate 37(gss2) DescriptorSet 0
|
||||||
Decorate 46(@entryPointOutput) Location 0
|
Decorate 39(gss) DescriptorSet 0
|
||||||
|
Decorate 43(gtex) DescriptorSet 0
|
||||||
|
Decorate 57(@entryPointOutput) Location 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeSampler
|
6: TypeSampler
|
||||||
7: TypePointer UniformConstant 6
|
|
||||||
8: TypeFloat 32
|
8: TypeFloat 32
|
||||||
10: TypeImage 8(float) 2D sampled format:Unknown
|
10: TypeImage 8(float) 2D sampled format:Unknown
|
||||||
11: TypePointer UniformConstant 10
|
|
||||||
12: TypeVector 8(float) 4
|
12: TypeVector 8(float) 4
|
||||||
25: TypeSampledImage 10
|
25: TypeSampledImage 10
|
||||||
27: TypeVector 8(float) 2
|
27: TypeVector 8(float) 2
|
||||||
28: 8(float) Constant 1045220557
|
28: 8(float) Constant 1045220557
|
||||||
29: 8(float) Constant 1050253722
|
29: 8(float) Constant 1050253722
|
||||||
30: 27(fvec2) ConstantComposite 28 29
|
30: 27(fvec2) ConstantComposite 28 29
|
||||||
36(gss): 7(ptr) Variable UniformConstant
|
36: TypePointer UniformConstant 6
|
||||||
37(gtex): 11(ptr) Variable UniformConstant
|
37(gss2): 36(ptr) Variable UniformConstant
|
||||||
39: 8(float) Constant 1077936128
|
39(gss): 36(ptr) Variable UniformConstant
|
||||||
45: TypePointer Output 12(fvec4)
|
42: TypePointer UniformConstant 10
|
||||||
46(@entryPointOutput): 45(ptr) Variable Output
|
43(gtex): 42(ptr) Variable UniformConstant
|
||||||
|
46: 8(float) Constant 1077936128
|
||||||
|
56: TypePointer Output 12(fvec4)
|
||||||
|
57(@entryPointOutput): 56(ptr) Variable Output
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
56: 10 Load 37(gtex)
|
68: 6 Load 39(gss)
|
||||||
57: 6 Load 36(gss)
|
69: 10 Load 43(gtex)
|
||||||
58: 25 SampledImage 56 57
|
78: 25 SampledImage 69 68
|
||||||
59: 12(fvec4) ImageSampleImplicitLod 58 30
|
79: 12(fvec4) ImageSampleImplicitLod 78 30
|
||||||
60: 12(fvec4) VectorTimesScalar 59 39
|
80: 12(fvec4) VectorTimesScalar 79 46
|
||||||
Store 46(@entryPointOutput) 60
|
Store 57(@entryPointOutput) 80
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -1,65 +1,65 @@
|
|||||||
hlsl.flattenOpaque.frag
|
hlsl.flattenOpaque.frag
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 118
|
// Id's are bound by 144
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4 "main" 83
|
EntryPoint Fragment 4 "main" 97
|
||||||
ExecutionMode 4 OriginUpperLeft
|
ExecutionMode 4 OriginUpperLeft
|
||||||
Source HLSL 500
|
Source HLSL 500
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 37 "tex"
|
Name 38 "tex"
|
||||||
Name 68 "s.s2D"
|
Name 70 "s.s2D"
|
||||||
Name 73 "s2.s2D"
|
Name 79 "s2.s2D"
|
||||||
Name 74 "s2.tex"
|
Name 80 "s2.tex"
|
||||||
Name 83 "@entryPointOutput"
|
Name 97 "@entryPointOutput"
|
||||||
Decorate 37(tex) DescriptorSet 0
|
Decorate 38(tex) DescriptorSet 0
|
||||||
Decorate 68(s.s2D) DescriptorSet 0
|
Decorate 70(s.s2D) DescriptorSet 0
|
||||||
Decorate 73(s2.s2D) DescriptorSet 0
|
Decorate 79(s2.s2D) DescriptorSet 0
|
||||||
Decorate 74(s2.tex) DescriptorSet 0
|
Decorate 80(s2.tex) DescriptorSet 0
|
||||||
Decorate 83(@entryPointOutput) Location 0
|
Decorate 97(@entryPointOutput) Location 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeSampler
|
6: TypeSampler
|
||||||
7: TypePointer UniformConstant 6
|
|
||||||
8: TypeFloat 32
|
8: TypeFloat 32
|
||||||
9: TypeVector 8(float) 4
|
9: TypeVector 8(float) 4
|
||||||
14: TypeVector 8(float) 2
|
14: TypeVector 8(float) 2
|
||||||
21: TypeImage 8(float) 2D sampled format:Unknown
|
21: TypeImage 8(float) 2D sampled format:Unknown
|
||||||
22: TypePointer UniformConstant 21
|
37: TypePointer UniformConstant 21
|
||||||
37(tex): 22(ptr) Variable UniformConstant
|
38(tex): 37(ptr) Variable UniformConstant
|
||||||
40: TypeSampledImage 21
|
41: TypeSampledImage 21
|
||||||
42: 8(float) Constant 1045220557
|
43: 8(float) Constant 1045220557
|
||||||
43: 8(float) Constant 1050253722
|
44: 8(float) Constant 1050253722
|
||||||
44: 14(fvec2) ConstantComposite 42 43
|
45: 14(fvec2) ConstantComposite 43 44
|
||||||
68(s.s2D): 7(ptr) Variable UniformConstant
|
69: TypePointer UniformConstant 6
|
||||||
73(s2.s2D): 7(ptr) Variable UniformConstant
|
70(s.s2D): 69(ptr) Variable UniformConstant
|
||||||
74(s2.tex): 22(ptr) Variable UniformConstant
|
79(s2.s2D): 69(ptr) Variable UniformConstant
|
||||||
82: TypePointer Output 9(fvec4)
|
80(s2.tex): 37(ptr) Variable UniformConstant
|
||||||
83(@entryPointOutput): 82(ptr) Variable Output
|
96: TypePointer Output 9(fvec4)
|
||||||
|
97(@entryPointOutput): 96(ptr) Variable Output
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
97: 21 Load 37(tex)
|
109: 6 Load 70(s.s2D)
|
||||||
98: 6 Load 68(s.s2D)
|
123: 21 Load 38(tex)
|
||||||
99: 40 SampledImage 97 98
|
125: 41 SampledImage 123 109
|
||||||
100: 9(fvec4) ImageSampleImplicitLod 99 44
|
126: 9(fvec4) ImageSampleImplicitLod 125 45
|
||||||
102: 21 Load 37(tex)
|
111: 6 Load 70(s.s2D)
|
||||||
103: 6 Load 68(s.s2D)
|
128: 21 Load 38(tex)
|
||||||
104: 40 SampledImage 102 103
|
130: 41 SampledImage 128 111
|
||||||
106: 9(fvec4) ImageSampleImplicitLod 104 44
|
132: 9(fvec4) ImageSampleImplicitLod 130 45
|
||||||
91: 9(fvec4) FAdd 100 106
|
113: 9(fvec4) FAdd 126 132
|
||||||
108: 21 Load 74(s2.tex)
|
114: 6 Load 79(s2.s2D)
|
||||||
109: 6 Load 73(s2.s2D)
|
115: 21 Load 80(s2.tex)
|
||||||
110: 40 SampledImage 108 109
|
136: 41 SampledImage 115 114
|
||||||
111: 9(fvec4) ImageSampleImplicitLod 110 44
|
137: 9(fvec4) ImageSampleImplicitLod 136 45
|
||||||
93: 9(fvec4) FAdd 91 111
|
117: 9(fvec4) FAdd 113 137
|
||||||
113: 21 Load 74(s2.tex)
|
118: 6 Load 79(s2.s2D)
|
||||||
114: 6 Load 73(s2.s2D)
|
119: 21 Load 80(s2.tex)
|
||||||
115: 40 SampledImage 113 114
|
141: 41 SampledImage 119 118
|
||||||
117: 9(fvec4) ImageSampleImplicitLod 115 44
|
143: 9(fvec4) ImageSampleImplicitLod 141 45
|
||||||
95: 9(fvec4) FAdd 93 117
|
121: 9(fvec4) FAdd 117 143
|
||||||
Store 83(@entryPointOutput) 95
|
Store 97(@entryPointOutput) 121
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -1,36 +1,29 @@
|
|||||||
hlsl.flattenOpaqueInit.vert
|
hlsl.flattenOpaqueInit.vert
|
||||||
WARNING: 0:20: '=' : cannot do member-wise aliasing for opaque members with this initializer
|
WARNING: AST will form illegal SPIR-V; need to transform to legalize
|
||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 76
|
// Id's are bound by 117
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4 "main" 58
|
EntryPoint Vertex 4 "main" 78
|
||||||
Source HLSL 500
|
Source HLSL 500
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 17 "FxaaTex"
|
Name 17 "FxaaTex"
|
||||||
MemberName 17(FxaaTex) 0 "smpl"
|
MemberName 17(FxaaTex) 0 "smpl"
|
||||||
MemberName 17(FxaaTex) 1 "tex"
|
MemberName 17(FxaaTex) 1 "tex"
|
||||||
Name 36 "g_tInputTexture_sampler"
|
Name 38 "g_tInputTexture_sampler"
|
||||||
Name 37 "g_tInputTexture"
|
Name 42 "g_tInputTexture"
|
||||||
Name 39 "t"
|
Name 78 "@entryPointOutput"
|
||||||
Name 43 "flattenTemp"
|
Decorate 38(g_tInputTexture_sampler) DescriptorSet 0
|
||||||
Name 45 "tex2.smpl"
|
Decorate 42(g_tInputTexture) DescriptorSet 0
|
||||||
Name 50 "tex2.tex"
|
Decorate 78(@entryPointOutput) Location 0
|
||||||
Name 58 "@entryPointOutput"
|
|
||||||
Decorate 36(g_tInputTexture_sampler) DescriptorSet 0
|
|
||||||
Decorate 37(g_tInputTexture) DescriptorSet 0
|
|
||||||
Decorate 58(@entryPointOutput) Location 0
|
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeSampler
|
6: TypeSampler
|
||||||
7: TypePointer UniformConstant 6
|
|
||||||
8: TypeFloat 32
|
8: TypeFloat 32
|
||||||
9: TypeImage 8(float) 2D sampled format:Unknown
|
9: TypeImage 8(float) 2D sampled format:Unknown
|
||||||
10: TypePointer UniformConstant 9
|
|
||||||
11: TypeVector 8(float) 4
|
11: TypeVector 8(float) 4
|
||||||
17(FxaaTex): TypeStruct 6 9
|
17(FxaaTex): TypeStruct 6 9
|
||||||
26: TypeSampledImage 9
|
26: TypeSampledImage 9
|
||||||
@ -39,32 +32,18 @@ WARNING: 0:20: '=' : cannot do member-wise aliasing for opaque members with this
|
|||||||
30: 8(float) Constant 1053609165
|
30: 8(float) Constant 1053609165
|
||||||
31: 28(fvec2) ConstantComposite 29 30
|
31: 28(fvec2) ConstantComposite 29 30
|
||||||
32: 8(float) Constant 0
|
32: 8(float) Constant 0
|
||||||
36(g_tInputTexture_sampler): 7(ptr) Variable UniformConstant
|
37: TypePointer UniformConstant 6
|
||||||
37(g_tInputTexture): 10(ptr) Variable UniformConstant
|
38(g_tInputTexture_sampler): 37(ptr) Variable UniformConstant
|
||||||
38: TypePointer UniformConstant 17(FxaaTex)
|
41: TypePointer UniformConstant 9
|
||||||
39(t): 38(ptr) Variable UniformConstant
|
42(g_tInputTexture): 41(ptr) Variable UniformConstant
|
||||||
43(flattenTemp): 38(ptr) Variable UniformConstant
|
77: TypePointer Output 11(fvec4)
|
||||||
45(tex2.smpl): 7(ptr) Variable UniformConstant
|
78(@entryPointOutput): 77(ptr) Variable Output
|
||||||
46: TypeInt 32 1
|
|
||||||
47: 46(int) Constant 0
|
|
||||||
50(tex2.tex): 10(ptr) Variable UniformConstant
|
|
||||||
51: 46(int) Constant 1
|
|
||||||
57: TypePointer Output 11(fvec4)
|
|
||||||
58(@entryPointOutput): 57(ptr) Variable Output
|
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
70: 17(FxaaTex) Load 39(t)
|
90: 6 Load 38(g_tInputTexture_sampler)
|
||||||
Store 43(flattenTemp) 70
|
91: 9 Load 42(g_tInputTexture)
|
||||||
63: 7(ptr) AccessChain 43(flattenTemp) 47
|
115: 26 SampledImage 91 90
|
||||||
64: 6 Load 63
|
116: 11(fvec4) ImageSampleExplicitLod 115 31 Lod 32
|
||||||
Store 45(tex2.smpl) 64
|
Store 78(@entryPointOutput) 116
|
||||||
65: 10(ptr) AccessChain 43(flattenTemp) 51
|
|
||||||
66: 9 Load 65
|
|
||||||
Store 50(tex2.tex) 66
|
|
||||||
72: 9 Load 37(g_tInputTexture)
|
|
||||||
73: 6 Load 36(g_tInputTexture_sampler)
|
|
||||||
74: 26 SampledImage 72 73
|
|
||||||
75: 11(fvec4) ImageSampleExplicitLod 74 31 Lod 32
|
|
||||||
Store 58(@entryPointOutput) 75
|
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -1,43 +1,49 @@
|
|||||||
hlsl.flattenOpaqueInitMix.vert
|
hlsl.flattenOpaqueInitMix.vert
|
||||||
|
WARNING: AST will form illegal SPIR-V; need to transform to legalize
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 60
|
// Id's are bound by 100
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4 "main" 44
|
EntryPoint Vertex 4 "main" 68
|
||||||
Source HLSL 500
|
Source HLSL 500
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 36 "g_tInputTexture_sampler"
|
Name 34 "FxaaTex"
|
||||||
Name 37 "g_tInputTexture"
|
MemberName 34(FxaaTex) 0 "smpl"
|
||||||
Name 44 "@entryPointOutput"
|
MemberName 34(FxaaTex) 1 "tex"
|
||||||
Decorate 36(g_tInputTexture_sampler) DescriptorSet 0
|
MemberName 34(FxaaTex) 2 "f"
|
||||||
Decorate 37(g_tInputTexture) DescriptorSet 0
|
Name 38 "g_tInputTexture_sampler"
|
||||||
Decorate 44(@entryPointOutput) Location 0
|
Name 41 "g_tInputTexture"
|
||||||
|
Name 68 "@entryPointOutput"
|
||||||
|
Decorate 38(g_tInputTexture_sampler) DescriptorSet 0
|
||||||
|
Decorate 41(g_tInputTexture) DescriptorSet 0
|
||||||
|
Decorate 68(@entryPointOutput) Location 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeSampler
|
6: TypeSampler
|
||||||
7: TypePointer UniformConstant 6
|
|
||||||
8: TypeFloat 32
|
8: TypeFloat 32
|
||||||
9: TypeImage 8(float) 2D sampled format:Unknown
|
9: TypeImage 8(float) 2D sampled format:Unknown
|
||||||
10: TypePointer UniformConstant 9
|
|
||||||
12: TypeVector 8(float) 4
|
12: TypeVector 8(float) 4
|
||||||
24: TypeSampledImage 9
|
24: TypeSampledImage 9
|
||||||
28: TypeVector 8(float) 2
|
28: TypeVector 8(float) 2
|
||||||
30: 8(float) Constant 0
|
30: 8(float) Constant 0
|
||||||
35: 8(float) Constant 1056964608
|
34(FxaaTex): TypeStruct 6 9 8(float)
|
||||||
36(g_tInputTexture_sampler): 7(ptr) Variable UniformConstant
|
37: TypePointer UniformConstant 6
|
||||||
37(g_tInputTexture): 10(ptr) Variable UniformConstant
|
38(g_tInputTexture_sampler): 37(ptr) Variable UniformConstant
|
||||||
43: TypePointer Output 12(fvec4)
|
40: TypePointer UniformConstant 9
|
||||||
44(@entryPointOutput): 43(ptr) Variable Output
|
41(g_tInputTexture): 40(ptr) Variable UniformConstant
|
||||||
|
43: 8(float) Constant 1056964608
|
||||||
|
67: TypePointer Output 12(fvec4)
|
||||||
|
68(@entryPointOutput): 67(ptr) Variable Output
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
53: 9 Load 37(g_tInputTexture)
|
79: 6 Load 38(g_tInputTexture_sampler)
|
||||||
54: 6 Load 36(g_tInputTexture_sampler)
|
80: 9 Load 41(g_tInputTexture)
|
||||||
55: 24 SampledImage 53 54
|
95: 24 SampledImage 80 79
|
||||||
58: 28(fvec2) CompositeConstruct 35 35
|
98: 28(fvec2) CompositeConstruct 43 43
|
||||||
59: 12(fvec4) ImageSampleExplicitLod 55 58 Lod 30
|
99: 12(fvec4) ImageSampleExplicitLod 95 98 Lod 30
|
||||||
Store 44(@entryPointOutput) 59
|
Store 68(@entryPointOutput) 99
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
hlsl.aliasOpaque.frag
|
hlsl.aliasOpaque.frag
|
||||||
|
WARNING: AST will form illegal SPIR-V; need to transform to legalize
|
||||||
Shader version: 500
|
Shader version: 500
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -21,8 +22,14 @@ gl_FragCoord origin is upper left
|
|||||||
0:17 Function Definition: @main( ( temp 4-component vector of float)
|
0:17 Function Definition: @main( ( temp 4-component vector of float)
|
||||||
0:17 Function Parameters:
|
0:17 Function Parameters:
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
|
0:19 move second child to first child ( temp sampler)
|
||||||
|
0:? 'os.ss' ( temp sampler)
|
||||||
0:19 'gss2' ( uniform sampler)
|
0:19 'gss2' ( uniform sampler)
|
||||||
|
0:20 move second child to first child ( temp sampler)
|
||||||
|
0:? 'os.ss' ( temp sampler)
|
||||||
0:20 'gss' ( uniform sampler)
|
0:20 'gss' ( uniform sampler)
|
||||||
|
0:21 move second child to first child ( temp texture2D)
|
||||||
|
0:? 'os.tex' ( temp texture2D)
|
||||||
0:21 'gtex' ( uniform texture2D)
|
0:21 'gtex' ( uniform texture2D)
|
||||||
0:22 move second child to first child ( temp float)
|
0:22 move second child to first child ( temp float)
|
||||||
0:? 'os.a' ( temp float)
|
0:? 'os.a' ( temp float)
|
||||||
@ -30,9 +37,9 @@ gl_FragCoord origin is upper left
|
|||||||
0:22 3.000000
|
0:22 3.000000
|
||||||
0:28 Branch: Return with expression
|
0:28 Branch: Return with expression
|
||||||
0:28 Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float)
|
0:28 Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float)
|
||||||
0:? 'gss' ( uniform sampler)
|
0:? 'os.ss' ( temp sampler)
|
||||||
0:? 'os.a' ( temp float)
|
0:? 'os.a' ( temp float)
|
||||||
0:? 'gtex' ( uniform texture2D)
|
0:? 'os.tex' ( temp texture2D)
|
||||||
0:17 Function Definition: main( ( temp void)
|
0:17 Function Definition: main( ( temp void)
|
||||||
0:17 Function Parameters:
|
0:17 Function Parameters:
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -71,8 +78,14 @@ gl_FragCoord origin is upper left
|
|||||||
0:17 Function Definition: @main( ( temp 4-component vector of float)
|
0:17 Function Definition: @main( ( temp 4-component vector of float)
|
||||||
0:17 Function Parameters:
|
0:17 Function Parameters:
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
|
0:19 move second child to first child ( temp sampler)
|
||||||
|
0:? 'os.ss' ( temp sampler)
|
||||||
0:19 'gss2' ( uniform sampler)
|
0:19 'gss2' ( uniform sampler)
|
||||||
|
0:20 move second child to first child ( temp sampler)
|
||||||
|
0:? 'os.ss' ( temp sampler)
|
||||||
0:20 'gss' ( uniform sampler)
|
0:20 'gss' ( uniform sampler)
|
||||||
|
0:21 move second child to first child ( temp texture2D)
|
||||||
|
0:? 'os.tex' ( temp texture2D)
|
||||||
0:21 'gtex' ( uniform texture2D)
|
0:21 'gtex' ( uniform texture2D)
|
||||||
0:22 move second child to first child ( temp float)
|
0:22 move second child to first child ( temp float)
|
||||||
0:? 'os.a' ( temp float)
|
0:? 'os.a' ( temp float)
|
||||||
@ -80,9 +93,9 @@ gl_FragCoord origin is upper left
|
|||||||
0:22 3.000000
|
0:22 3.000000
|
||||||
0:28 Branch: Return with expression
|
0:28 Branch: Return with expression
|
||||||
0:28 Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float)
|
0:28 Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float)
|
||||||
0:? 'gss' ( uniform sampler)
|
0:? 'os.ss' ( temp sampler)
|
||||||
0:? 'os.a' ( temp float)
|
0:? 'os.a' ( temp float)
|
||||||
0:? 'gtex' ( uniform texture2D)
|
0:? 'os.tex' ( temp texture2D)
|
||||||
0:17 Function Definition: main( ( temp void)
|
0:17 Function Definition: main( ( temp void)
|
||||||
0:17 Function Parameters:
|
0:17 Function Parameters:
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -97,12 +110,12 @@ gl_FragCoord origin is upper left
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 48
|
// Id's are bound by 59
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4 "main" 46
|
EntryPoint Fragment 4 "main" 57
|
||||||
ExecutionMode 4 OriginUpperLeft
|
ExecutionMode 4 OriginUpperLeft
|
||||||
Source HLSL 500
|
Source HLSL 500
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
@ -111,24 +124,28 @@ gl_FragCoord origin is upper left
|
|||||||
Name 15 "s.a"
|
Name 15 "s.a"
|
||||||
Name 16 "s.tex"
|
Name 16 "s.tex"
|
||||||
Name 20 "@main("
|
Name 20 "@main("
|
||||||
Name 35 "gss2"
|
Name 35 "os.ss"
|
||||||
Name 36 "gss"
|
Name 37 "gss2"
|
||||||
Name 37 "gtex"
|
Name 39 "gss"
|
||||||
Name 38 "os.a"
|
Name 41 "os.tex"
|
||||||
Name 40 "param"
|
Name 43 "gtex"
|
||||||
Name 46 "@entryPointOutput"
|
Name 45 "os.a"
|
||||||
Decorate 35(gss2) DescriptorSet 0
|
Name 47 "param"
|
||||||
Decorate 36(gss) DescriptorSet 0
|
Name 49 "param"
|
||||||
Decorate 37(gtex) DescriptorSet 0
|
Name 51 "param"
|
||||||
Decorate 46(@entryPointOutput) Location 0
|
Name 57 "@entryPointOutput"
|
||||||
|
Decorate 37(gss2) DescriptorSet 0
|
||||||
|
Decorate 39(gss) DescriptorSet 0
|
||||||
|
Decorate 43(gtex) DescriptorSet 0
|
||||||
|
Decorate 57(@entryPointOutput) Location 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeSampler
|
6: TypeSampler
|
||||||
7: TypePointer UniformConstant 6
|
7: TypePointer Function 6
|
||||||
8: TypeFloat 32
|
8: TypeFloat 32
|
||||||
9: TypePointer Function 8(float)
|
9: TypePointer Function 8(float)
|
||||||
10: TypeImage 8(float) 2D sampled format:Unknown
|
10: TypeImage 8(float) 2D sampled format:Unknown
|
||||||
11: TypePointer UniformConstant 10
|
11: TypePointer Function 10
|
||||||
12: TypeVector 8(float) 4
|
12: TypeVector 8(float) 4
|
||||||
13: TypeFunction 12(fvec4) 7(ptr) 9(ptr) 11(ptr)
|
13: TypeFunction 12(fvec4) 7(ptr) 9(ptr) 11(ptr)
|
||||||
19: TypeFunction 12(fvec4)
|
19: TypeFunction 12(fvec4)
|
||||||
@ -137,16 +154,18 @@ gl_FragCoord origin is upper left
|
|||||||
28: 8(float) Constant 1045220557
|
28: 8(float) Constant 1045220557
|
||||||
29: 8(float) Constant 1050253722
|
29: 8(float) Constant 1050253722
|
||||||
30: 27(fvec2) ConstantComposite 28 29
|
30: 27(fvec2) ConstantComposite 28 29
|
||||||
35(gss2): 7(ptr) Variable UniformConstant
|
36: TypePointer UniformConstant 6
|
||||||
36(gss): 7(ptr) Variable UniformConstant
|
37(gss2): 36(ptr) Variable UniformConstant
|
||||||
37(gtex): 11(ptr) Variable UniformConstant
|
39(gss): 36(ptr) Variable UniformConstant
|
||||||
39: 8(float) Constant 1077936128
|
42: TypePointer UniformConstant 10
|
||||||
45: TypePointer Output 12(fvec4)
|
43(gtex): 42(ptr) Variable UniformConstant
|
||||||
46(@entryPointOutput): 45(ptr) Variable Output
|
46: 8(float) Constant 1077936128
|
||||||
|
56: TypePointer Output 12(fvec4)
|
||||||
|
57(@entryPointOutput): 56(ptr) Variable Output
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
47: 12(fvec4) FunctionCall 20(@main()
|
58: 12(fvec4) FunctionCall 20(@main()
|
||||||
Store 46(@entryPointOutput) 47
|
Store 57(@entryPointOutput) 58
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
17(osCall(struct-OS-p1-f1-t211;): 12(fvec4) Function None 13
|
17(osCall(struct-OS-p1-f1-t211;): 12(fvec4) Function None 13
|
||||||
@ -164,11 +183,25 @@ gl_FragCoord origin is upper left
|
|||||||
FunctionEnd
|
FunctionEnd
|
||||||
20(@main(): 12(fvec4) Function None 19
|
20(@main(): 12(fvec4) Function None 19
|
||||||
21: Label
|
21: Label
|
||||||
38(os.a): 9(ptr) Variable Function
|
35(os.ss): 7(ptr) Variable Function
|
||||||
40(param): 9(ptr) Variable Function
|
41(os.tex): 11(ptr) Variable Function
|
||||||
Store 38(os.a) 39
|
45(os.a): 9(ptr) Variable Function
|
||||||
41: 8(float) Load 38(os.a)
|
47(param): 7(ptr) Variable Function
|
||||||
Store 40(param) 41
|
49(param): 9(ptr) Variable Function
|
||||||
42: 12(fvec4) FunctionCall 17(osCall(struct-OS-p1-f1-t211;) 36(gss) 40(param) 37(gtex)
|
51(param): 11(ptr) Variable Function
|
||||||
ReturnValue 42
|
38: 6 Load 37(gss2)
|
||||||
|
Store 35(os.ss) 38
|
||||||
|
40: 6 Load 39(gss)
|
||||||
|
Store 35(os.ss) 40
|
||||||
|
44: 10 Load 43(gtex)
|
||||||
|
Store 41(os.tex) 44
|
||||||
|
Store 45(os.a) 46
|
||||||
|
48: 6 Load 35(os.ss)
|
||||||
|
Store 47(param) 48
|
||||||
|
50: 8(float) Load 45(os.a)
|
||||||
|
Store 49(param) 50
|
||||||
|
52: 10 Load 41(os.tex)
|
||||||
|
Store 51(param) 52
|
||||||
|
53: 12(fvec4) FunctionCall 17(osCall(struct-OS-p1-f1-t211;) 47(param) 49(param) 51(param)
|
||||||
|
ReturnValue 53
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
hlsl.array.flatten.frag
|
hlsl.array.flatten.frag
|
||||||
|
WARNING: AST will form illegal SPIR-V; need to transform to legalize
|
||||||
Shader version: 500
|
Shader version: 500
|
||||||
gl_FragCoord origin is upper left
|
gl_FragCoord origin is upper left
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -345,13 +346,13 @@ gl_FragCoord origin is upper left
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 137
|
// Id's are bound by 143
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
Capability Sampled1D
|
Capability Sampled1D
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4 "main" 128
|
EntryPoint Fragment 4 "main" 134
|
||||||
ExecutionMode 4 OriginUpperLeft
|
ExecutionMode 4 OriginUpperLeft
|
||||||
Source HLSL 500
|
Source HLSL 500
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
@ -366,60 +367,62 @@ gl_FragCoord origin is upper left
|
|||||||
Name 34 "not_flattened_a"
|
Name 34 "not_flattened_a"
|
||||||
Name 42 "g_tex[1]"
|
Name 42 "g_tex[1]"
|
||||||
Name 45 "g_samp[1]"
|
Name 45 "g_samp[1]"
|
||||||
Name 61 "local_sampler_array"
|
Name 63 "local_sampler_array"
|
||||||
Name 63 "g_samp[0]"
|
Name 65 "g_samp[0]"
|
||||||
Name 68 "g_samp[2]"
|
Name 70 "g_samp[2]"
|
||||||
Name 71 "local_texture_array"
|
Name 73 "local_texture_array"
|
||||||
Name 72 "g_tex[0]"
|
Name 74 "g_tex[0]"
|
||||||
Name 77 "g_tex[2]"
|
Name 79 "g_tex[2]"
|
||||||
Name 83 "local_float_array"
|
Name 85 "local_float_array"
|
||||||
Name 89 "$Global"
|
Name 91 "$Global"
|
||||||
MemberName 89($Global) 0 "g_mats"
|
MemberName 91($Global) 0 "g_mats"
|
||||||
MemberName 89($Global) 1 "g_mats_explicit"
|
MemberName 91($Global) 1 "g_mats_explicit"
|
||||||
MemberName 89($Global) 2 "g_floats"
|
MemberName 91($Global) 2 "g_floats"
|
||||||
Name 91 ""
|
Name 93 ""
|
||||||
Name 105 "aggShadow"
|
Name 107 "aggShadow"
|
||||||
Name 112 "aggShadow"
|
Name 114 "aggShadow"
|
||||||
Name 123 "ps_output"
|
Name 121 "param"
|
||||||
Name 124 "param"
|
Name 123 "param"
|
||||||
Name 128 "ps_output.color"
|
Name 129 "ps_output"
|
||||||
Name 131 "g_tex_explicit[0]"
|
Name 130 "param"
|
||||||
Name 132 "g_tex_explicit[1]"
|
Name 134 "ps_output.color"
|
||||||
Name 133 "g_tex_explicit[2]"
|
Name 137 "g_tex_explicit[0]"
|
||||||
Name 134 "g_samp_explicit[0]"
|
Name 138 "g_tex_explicit[1]"
|
||||||
Name 135 "g_samp_explicit[1]"
|
Name 139 "g_tex_explicit[2]"
|
||||||
Name 136 "g_samp_explicit[2]"
|
Name 140 "g_samp_explicit[0]"
|
||||||
|
Name 141 "g_samp_explicit[1]"
|
||||||
|
Name 142 "g_samp_explicit[2]"
|
||||||
Decorate 42(g_tex[1]) DescriptorSet 0
|
Decorate 42(g_tex[1]) DescriptorSet 0
|
||||||
Decorate 45(g_samp[1]) DescriptorSet 0
|
Decorate 45(g_samp[1]) DescriptorSet 0
|
||||||
Decorate 63(g_samp[0]) DescriptorSet 0
|
Decorate 65(g_samp[0]) DescriptorSet 0
|
||||||
Decorate 68(g_samp[2]) DescriptorSet 0
|
Decorate 70(g_samp[2]) DescriptorSet 0
|
||||||
Decorate 72(g_tex[0]) DescriptorSet 0
|
Decorate 74(g_tex[0]) DescriptorSet 0
|
||||||
Decorate 77(g_tex[2]) DescriptorSet 0
|
Decorate 79(g_tex[2]) DescriptorSet 0
|
||||||
Decorate 86 ArrayStride 48
|
Decorate 88 ArrayStride 48
|
||||||
Decorate 87 ArrayStride 48
|
Decorate 89 ArrayStride 48
|
||||||
Decorate 88 ArrayStride 16
|
Decorate 90 ArrayStride 16
|
||||||
MemberDecorate 89($Global) 0 RowMajor
|
MemberDecorate 91($Global) 0 RowMajor
|
||||||
MemberDecorate 89($Global) 0 Offset 0
|
MemberDecorate 91($Global) 0 Offset 0
|
||||||
MemberDecorate 89($Global) 0 MatrixStride 16
|
MemberDecorate 91($Global) 0 MatrixStride 16
|
||||||
MemberDecorate 89($Global) 1 RowMajor
|
MemberDecorate 91($Global) 1 RowMajor
|
||||||
MemberDecorate 89($Global) 1 Offset 192
|
MemberDecorate 91($Global) 1 Offset 192
|
||||||
MemberDecorate 89($Global) 1 MatrixStride 16
|
MemberDecorate 91($Global) 1 MatrixStride 16
|
||||||
MemberDecorate 89($Global) 2 Offset 384
|
MemberDecorate 91($Global) 2 Offset 384
|
||||||
Decorate 89($Global) Block
|
Decorate 91($Global) Block
|
||||||
Decorate 91 DescriptorSet 0
|
Decorate 93 DescriptorSet 0
|
||||||
Decorate 128(ps_output.color) Location 0
|
Decorate 134(ps_output.color) Location 0
|
||||||
Decorate 131(g_tex_explicit[0]) DescriptorSet 0
|
Decorate 137(g_tex_explicit[0]) DescriptorSet 0
|
||||||
Decorate 131(g_tex_explicit[0]) Binding 1
|
Decorate 137(g_tex_explicit[0]) Binding 1
|
||||||
Decorate 132(g_tex_explicit[1]) DescriptorSet 0
|
Decorate 138(g_tex_explicit[1]) DescriptorSet 0
|
||||||
Decorate 132(g_tex_explicit[1]) Binding 2
|
Decorate 138(g_tex_explicit[1]) Binding 2
|
||||||
Decorate 133(g_tex_explicit[2]) DescriptorSet 0
|
Decorate 139(g_tex_explicit[2]) DescriptorSet 0
|
||||||
Decorate 133(g_tex_explicit[2]) Binding 3
|
Decorate 139(g_tex_explicit[2]) Binding 3
|
||||||
Decorate 134(g_samp_explicit[0]) DescriptorSet 0
|
Decorate 140(g_samp_explicit[0]) DescriptorSet 0
|
||||||
Decorate 134(g_samp_explicit[0]) Binding 5
|
Decorate 140(g_samp_explicit[0]) Binding 5
|
||||||
Decorate 135(g_samp_explicit[1]) DescriptorSet 0
|
Decorate 141(g_samp_explicit[1]) DescriptorSet 0
|
||||||
Decorate 135(g_samp_explicit[1]) Binding 6
|
Decorate 141(g_samp_explicit[1]) Binding 6
|
||||||
Decorate 136(g_samp_explicit[2]) DescriptorSet 0
|
Decorate 142(g_samp_explicit[2]) DescriptorSet 0
|
||||||
Decorate 136(g_samp_explicit[2]) Binding 7
|
Decorate 142(g_samp_explicit[2]) Binding 7
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
@ -429,10 +432,10 @@ gl_FragCoord origin is upper left
|
|||||||
12: TypeInt 32 0
|
12: TypeInt 32 0
|
||||||
13: 12(int) Constant 3
|
13: 12(int) Constant 3
|
||||||
14: TypeArray 11 13
|
14: TypeArray 11 13
|
||||||
15: TypePointer UniformConstant 14
|
15: TypePointer Function 14
|
||||||
16: TypeSampler
|
16: TypeSampler
|
||||||
17: TypeArray 16 13
|
17: TypeArray 16 13
|
||||||
18: TypePointer UniformConstant 17
|
18: TypePointer Function 17
|
||||||
19: TypeFunction 7(fvec4) 15(ptr) 18(ptr)
|
19: TypeFunction 7(fvec4) 15(ptr) 18(ptr)
|
||||||
24(PS_OUTPUT): TypeStruct 7(fvec4)
|
24(PS_OUTPUT): TypeStruct 7(fvec4)
|
||||||
25: TypePointer Function 24(PS_OUTPUT)
|
25: TypePointer Function 24(PS_OUTPUT)
|
||||||
@ -454,48 +457,46 @@ gl_FragCoord origin is upper left
|
|||||||
45(g_samp[1]): 44(ptr) Variable UniformConstant
|
45(g_samp[1]): 44(ptr) Variable UniformConstant
|
||||||
47: TypeSampledImage 11
|
47: TypeSampledImage 11
|
||||||
49: 6(float) Constant 1045220557
|
49: 6(float) Constant 1045220557
|
||||||
61(local_sampler_array): 18(ptr) Variable UniformConstant
|
53: TypePointer Function 11
|
||||||
62: 30(int) Constant 0
|
56: TypePointer Function 16
|
||||||
63(g_samp[0]): 44(ptr) Variable UniformConstant
|
64: 30(int) Constant 0
|
||||||
68(g_samp[2]): 44(ptr) Variable UniformConstant
|
65(g_samp[0]): 44(ptr) Variable UniformConstant
|
||||||
71(local_texture_array): 15(ptr) Variable UniformConstant
|
70(g_samp[2]): 44(ptr) Variable UniformConstant
|
||||||
72(g_tex[0]): 41(ptr) Variable UniformConstant
|
74(g_tex[0]): 41(ptr) Variable UniformConstant
|
||||||
77(g_tex[2]): 41(ptr) Variable UniformConstant
|
79(g_tex[2]): 41(ptr) Variable UniformConstant
|
||||||
80: 12(int) Constant 4
|
82: 12(int) Constant 4
|
||||||
81: TypeArray 6(float) 80
|
83: TypeArray 6(float) 82
|
||||||
82: TypePointer Function 81
|
84: TypePointer Function 83
|
||||||
84: TypeVector 6(float) 3
|
86: TypeVector 6(float) 3
|
||||||
85: TypeMatrix 84(fvec3) 3
|
87: TypeMatrix 86(fvec3) 3
|
||||||
86: TypeArray 85 80
|
88: TypeArray 87 82
|
||||||
87: TypeArray 85 80
|
89: TypeArray 87 82
|
||||||
88: TypeArray 6(float) 80
|
90: TypeArray 6(float) 82
|
||||||
89($Global): TypeStruct 86 87 88
|
91($Global): TypeStruct 88 89 90
|
||||||
90: TypePointer Uniform 89($Global)
|
92: TypePointer Uniform 91($Global)
|
||||||
91: 90(ptr) Variable Uniform
|
93: 92(ptr) Variable Uniform
|
||||||
92: TypePointer Uniform 88
|
94: TypePointer Uniform 90
|
||||||
96: TypePointer Function 6(float)
|
98: TypePointer Function 6(float)
|
||||||
105(aggShadow): 15(ptr) Variable UniformConstant
|
127: TypePointer Function 7(fvec4)
|
||||||
112(aggShadow): 18(ptr) Variable UniformConstant
|
133: TypePointer Output 7(fvec4)
|
||||||
121: TypePointer Function 7(fvec4)
|
134(ps_output.color): 133(ptr) Variable Output
|
||||||
127: TypePointer Output 7(fvec4)
|
137(g_tex_explicit[0]): 41(ptr) Variable UniformConstant
|
||||||
128(ps_output.color): 127(ptr) Variable Output
|
138(g_tex_explicit[1]): 41(ptr) Variable UniformConstant
|
||||||
131(g_tex_explicit[0]): 41(ptr) Variable UniformConstant
|
139(g_tex_explicit[2]): 41(ptr) Variable UniformConstant
|
||||||
132(g_tex_explicit[1]): 41(ptr) Variable UniformConstant
|
140(g_samp_explicit[0]): 44(ptr) Variable UniformConstant
|
||||||
133(g_tex_explicit[2]): 41(ptr) Variable UniformConstant
|
141(g_samp_explicit[1]): 44(ptr) Variable UniformConstant
|
||||||
134(g_samp_explicit[0]): 44(ptr) Variable UniformConstant
|
142(g_samp_explicit[2]): 44(ptr) Variable UniformConstant
|
||||||
135(g_samp_explicit[1]): 44(ptr) Variable UniformConstant
|
|
||||||
136(g_samp_explicit[2]): 44(ptr) Variable UniformConstant
|
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
123(ps_output): 25(ptr) Variable Function
|
129(ps_output): 25(ptr) Variable Function
|
||||||
124(param): 25(ptr) Variable Function
|
130(param): 25(ptr) Variable Function
|
||||||
Store 34(not_flattened_a) 40
|
Store 34(not_flattened_a) 40
|
||||||
125: 2 FunctionCall 28(@main(struct-PS_OUTPUT-vf41;) 124(param)
|
131: 2 FunctionCall 28(@main(struct-PS_OUTPUT-vf41;) 130(param)
|
||||||
126:24(PS_OUTPUT) Load 124(param)
|
132:24(PS_OUTPUT) Load 130(param)
|
||||||
Store 123(ps_output) 126
|
Store 129(ps_output) 132
|
||||||
129: 121(ptr) AccessChain 123(ps_output) 62
|
135: 127(ptr) AccessChain 129(ps_output) 64
|
||||||
130: 7(fvec4) Load 129
|
136: 7(fvec4) Load 135
|
||||||
Store 128(ps_output.color) 130
|
Store 134(ps_output.color) 136
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
9(TestFn1(): 7(fvec4) Function None 8
|
9(TestFn1(): 7(fvec4) Function None 8
|
||||||
@ -510,72 +511,82 @@ gl_FragCoord origin is upper left
|
|||||||
20(l_tex): 15(ptr) FunctionParameter
|
20(l_tex): 15(ptr) FunctionParameter
|
||||||
21(l_samp): 18(ptr) FunctionParameter
|
21(l_samp): 18(ptr) FunctionParameter
|
||||||
23: Label
|
23: Label
|
||||||
53: 41(ptr) AccessChain 20(l_tex) 36
|
54: 53(ptr) AccessChain 20(l_tex) 36
|
||||||
54: 11 Load 53
|
55: 11 Load 54
|
||||||
55: 44(ptr) AccessChain 21(l_samp) 36
|
57: 56(ptr) AccessChain 21(l_samp) 36
|
||||||
56: 16 Load 55
|
58: 16 Load 57
|
||||||
57: 47 SampledImage 54 56
|
59: 47 SampledImage 55 58
|
||||||
58: 7(fvec4) ImageSampleImplicitLod 57 49
|
60: 7(fvec4) ImageSampleImplicitLod 59 49
|
||||||
ReturnValue 58
|
ReturnValue 60
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
28(@main(struct-PS_OUTPUT-vf41;): 2 Function None 26
|
28(@main(struct-PS_OUTPUT-vf41;): 2 Function None 26
|
||||||
27(ps_output): 25(ptr) FunctionParameter
|
27(ps_output): 25(ptr) FunctionParameter
|
||||||
29: Label
|
29: Label
|
||||||
83(local_float_array): 82(ptr) Variable Function
|
63(local_sampler_array): 18(ptr) Variable Function
|
||||||
64: 16 Load 63(g_samp[0])
|
73(local_texture_array): 15(ptr) Variable Function
|
||||||
65: 44(ptr) AccessChain 61(local_sampler_array) 62
|
85(local_float_array): 84(ptr) Variable Function
|
||||||
Store 65 64
|
107(aggShadow): 15(ptr) Variable Function
|
||||||
66: 16 Load 45(g_samp[1])
|
114(aggShadow): 18(ptr) Variable Function
|
||||||
67: 44(ptr) AccessChain 61(local_sampler_array) 35
|
121(param): 15(ptr) Variable Function
|
||||||
|
123(param): 18(ptr) Variable Function
|
||||||
|
66: 16 Load 65(g_samp[0])
|
||||||
|
67: 56(ptr) AccessChain 63(local_sampler_array) 64
|
||||||
Store 67 66
|
Store 67 66
|
||||||
69: 16 Load 68(g_samp[2])
|
68: 16 Load 45(g_samp[1])
|
||||||
70: 44(ptr) AccessChain 61(local_sampler_array) 36
|
69: 56(ptr) AccessChain 63(local_sampler_array) 35
|
||||||
Store 70 69
|
Store 69 68
|
||||||
73: 11 Load 72(g_tex[0])
|
71: 16 Load 70(g_samp[2])
|
||||||
74: 41(ptr) AccessChain 71(local_texture_array) 62
|
72: 56(ptr) AccessChain 63(local_sampler_array) 36
|
||||||
Store 74 73
|
Store 72 71
|
||||||
75: 11 Load 42(g_tex[1])
|
75: 11 Load 74(g_tex[0])
|
||||||
76: 41(ptr) AccessChain 71(local_texture_array) 35
|
76: 53(ptr) AccessChain 73(local_texture_array) 64
|
||||||
Store 76 75
|
Store 76 75
|
||||||
78: 11 Load 77(g_tex[2])
|
77: 11 Load 42(g_tex[1])
|
||||||
79: 41(ptr) AccessChain 71(local_texture_array) 36
|
78: 53(ptr) AccessChain 73(local_texture_array) 35
|
||||||
Store 79 78
|
Store 78 77
|
||||||
93: 92(ptr) AccessChain 91 36
|
80: 11 Load 79(g_tex[2])
|
||||||
94: 88 Load 93
|
81: 53(ptr) AccessChain 73(local_texture_array) 36
|
||||||
95: 6(float) CompositeExtract 94 0
|
Store 81 80
|
||||||
97: 96(ptr) AccessChain 83(local_float_array) 62
|
95: 94(ptr) AccessChain 93 36
|
||||||
Store 97 95
|
96: 90 Load 95
|
||||||
98: 6(float) CompositeExtract 94 1
|
97: 6(float) CompositeExtract 96 0
|
||||||
99: 96(ptr) AccessChain 83(local_float_array) 35
|
99: 98(ptr) AccessChain 85(local_float_array) 64
|
||||||
Store 99 98
|
Store 99 97
|
||||||
100: 6(float) CompositeExtract 94 2
|
100: 6(float) CompositeExtract 96 1
|
||||||
101: 96(ptr) AccessChain 83(local_float_array) 36
|
101: 98(ptr) AccessChain 85(local_float_array) 35
|
||||||
Store 101 100
|
Store 101 100
|
||||||
102: 6(float) CompositeExtract 94 3
|
102: 6(float) CompositeExtract 96 2
|
||||||
103: 96(ptr) AccessChain 83(local_float_array) 37
|
103: 98(ptr) AccessChain 85(local_float_array) 36
|
||||||
Store 103 102
|
Store 103 102
|
||||||
104: 7(fvec4) FunctionCall 9(TestFn1()
|
104: 6(float) CompositeExtract 96 3
|
||||||
106: 11 Load 72(g_tex[0])
|
105: 98(ptr) AccessChain 85(local_float_array) 37
|
||||||
107: 41(ptr) AccessChain 105(aggShadow) 62
|
Store 105 104
|
||||||
Store 107 106
|
106: 7(fvec4) FunctionCall 9(TestFn1()
|
||||||
108: 11 Load 42(g_tex[1])
|
108: 11 Load 74(g_tex[0])
|
||||||
109: 41(ptr) AccessChain 105(aggShadow) 35
|
109: 53(ptr) AccessChain 107(aggShadow) 64
|
||||||
Store 109 108
|
Store 109 108
|
||||||
110: 11 Load 77(g_tex[2])
|
110: 11 Load 42(g_tex[1])
|
||||||
111: 41(ptr) AccessChain 105(aggShadow) 36
|
111: 53(ptr) AccessChain 107(aggShadow) 35
|
||||||
Store 111 110
|
Store 111 110
|
||||||
113: 16 Load 63(g_samp[0])
|
112: 11 Load 79(g_tex[2])
|
||||||
114: 44(ptr) AccessChain 112(aggShadow) 62
|
113: 53(ptr) AccessChain 107(aggShadow) 36
|
||||||
Store 114 113
|
Store 113 112
|
||||||
115: 16 Load 45(g_samp[1])
|
115: 16 Load 65(g_samp[0])
|
||||||
116: 44(ptr) AccessChain 112(aggShadow) 35
|
116: 56(ptr) AccessChain 114(aggShadow) 64
|
||||||
Store 116 115
|
Store 116 115
|
||||||
117: 16 Load 68(g_samp[2])
|
117: 16 Load 45(g_samp[1])
|
||||||
118: 44(ptr) AccessChain 112(aggShadow) 36
|
118: 56(ptr) AccessChain 114(aggShadow) 35
|
||||||
Store 118 117
|
Store 118 117
|
||||||
119: 7(fvec4) FunctionCall 22(TestFn2(t11[3];p1[3];) 105(aggShadow) 112(aggShadow)
|
119: 16 Load 70(g_samp[2])
|
||||||
120: 7(fvec4) FAdd 104 119
|
120: 56(ptr) AccessChain 114(aggShadow) 36
|
||||||
122: 121(ptr) AccessChain 27(ps_output) 62
|
Store 120 119
|
||||||
Store 122 120
|
122: 14 Load 107(aggShadow)
|
||||||
|
Store 121(param) 122
|
||||||
|
124: 17 Load 114(aggShadow)
|
||||||
|
Store 123(param) 124
|
||||||
|
125: 7(fvec4) FunctionCall 22(TestFn2(t11[3];p1[3];) 121(param) 123(param)
|
||||||
|
126: 7(fvec4) FAdd 106 125
|
||||||
|
128: 127(ptr) AccessChain 27(ps_output) 64
|
||||||
|
Store 128 126
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -179,12 +179,12 @@ gl_FragCoord origin is upper left
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 85
|
// Id's are bound by 99
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4 "main" 83
|
EntryPoint Fragment 4 "main" 97
|
||||||
ExecutionMode 4 OriginUpperLeft
|
ExecutionMode 4 OriginUpperLeft
|
||||||
Source HLSL 500
|
Source HLSL 500
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
@ -201,22 +201,28 @@ gl_FragCoord origin is upper left
|
|||||||
Name 30 "s.tex"
|
Name 30 "s.tex"
|
||||||
Name 31 "f2"
|
Name 31 "f2"
|
||||||
Name 35 "@main("
|
Name 35 "@main("
|
||||||
Name 37 "tex"
|
Name 38 "tex"
|
||||||
Name 68 "s.s2D"
|
Name 70 "s.s2D"
|
||||||
Name 70 "param"
|
Name 71 "param"
|
||||||
Name 73 "s2.s2D"
|
Name 74 "param"
|
||||||
Name 74 "s2.tex"
|
Name 76 "param"
|
||||||
Name 77 "param"
|
Name 79 "s2.s2D"
|
||||||
Name 83 "@entryPointOutput"
|
Name 80 "s2.tex"
|
||||||
Decorate 37(tex) DescriptorSet 0
|
Name 81 "param"
|
||||||
Decorate 68(s.s2D) DescriptorSet 0
|
Name 83 "param"
|
||||||
Decorate 73(s2.s2D) DescriptorSet 0
|
Name 87 "param"
|
||||||
Decorate 74(s2.tex) DescriptorSet 0
|
Name 89 "param"
|
||||||
Decorate 83(@entryPointOutput) Location 0
|
Name 91 "param"
|
||||||
|
Name 97 "@entryPointOutput"
|
||||||
|
Decorate 38(tex) DescriptorSet 0
|
||||||
|
Decorate 70(s.s2D) DescriptorSet 0
|
||||||
|
Decorate 79(s2.s2D) DescriptorSet 0
|
||||||
|
Decorate 80(s2.tex) DescriptorSet 0
|
||||||
|
Decorate 97(@entryPointOutput) Location 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeSampler
|
6: TypeSampler
|
||||||
7: TypePointer UniformConstant 6
|
7: TypePointer Function 6
|
||||||
8: TypeFloat 32
|
8: TypeFloat 32
|
||||||
9: TypeVector 8(float) 4
|
9: TypeVector 8(float) 4
|
||||||
10: TypeFunction 9(fvec4) 7(ptr)
|
10: TypeFunction 9(fvec4) 7(ptr)
|
||||||
@ -224,80 +230,100 @@ gl_FragCoord origin is upper left
|
|||||||
15: TypePointer Function 14(fvec2)
|
15: TypePointer Function 14(fvec2)
|
||||||
16: TypeFunction 9(fvec4) 7(ptr) 15(ptr)
|
16: TypeFunction 9(fvec4) 7(ptr) 15(ptr)
|
||||||
21: TypeImage 8(float) 2D sampled format:Unknown
|
21: TypeImage 8(float) 2D sampled format:Unknown
|
||||||
22: TypePointer UniformConstant 21
|
22: TypePointer Function 21
|
||||||
23: TypeFunction 9(fvec4) 7(ptr) 22(ptr)
|
23: TypeFunction 9(fvec4) 7(ptr) 22(ptr)
|
||||||
28: TypeFunction 9(fvec4) 7(ptr) 22(ptr) 15(ptr)
|
28: TypeFunction 9(fvec4) 7(ptr) 22(ptr) 15(ptr)
|
||||||
34: TypeFunction 9(fvec4)
|
34: TypeFunction 9(fvec4)
|
||||||
37(tex): 22(ptr) Variable UniformConstant
|
37: TypePointer UniformConstant 21
|
||||||
40: TypeSampledImage 21
|
38(tex): 37(ptr) Variable UniformConstant
|
||||||
42: 8(float) Constant 1045220557
|
41: TypeSampledImage 21
|
||||||
43: 8(float) Constant 1050253722
|
43: 8(float) Constant 1045220557
|
||||||
44: 14(fvec2) ConstantComposite 42 43
|
44: 8(float) Constant 1050253722
|
||||||
68(s.s2D): 7(ptr) Variable UniformConstant
|
45: 14(fvec2) ConstantComposite 43 44
|
||||||
73(s2.s2D): 7(ptr) Variable UniformConstant
|
69: TypePointer UniformConstant 6
|
||||||
74(s2.tex): 22(ptr) Variable UniformConstant
|
70(s.s2D): 69(ptr) Variable UniformConstant
|
||||||
82: TypePointer Output 9(fvec4)
|
79(s2.s2D): 69(ptr) Variable UniformConstant
|
||||||
83(@entryPointOutput): 82(ptr) Variable Output
|
80(s2.tex): 37(ptr) Variable UniformConstant
|
||||||
|
96: TypePointer Output 9(fvec4)
|
||||||
|
97(@entryPointOutput): 96(ptr) Variable Output
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
84: 9(fvec4) FunctionCall 35(@main()
|
98: 9(fvec4) FunctionCall 35(@main()
|
||||||
Store 83(@entryPointOutput) 84
|
Store 97(@entryPointOutput) 98
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
12(osCall1(struct-os-p11;): 9(fvec4) Function None 10
|
12(osCall1(struct-os-p11;): 9(fvec4) Function None 10
|
||||||
11(s.s2D): 7(ptr) FunctionParameter
|
11(s.s2D): 7(ptr) FunctionParameter
|
||||||
13: Label
|
13: Label
|
||||||
38: 21 Load 37(tex)
|
39: 21 Load 38(tex)
|
||||||
39: 6 Load 11(s.s2D)
|
40: 6 Load 11(s.s2D)
|
||||||
41: 40 SampledImage 38 39
|
42: 41 SampledImage 39 40
|
||||||
45: 9(fvec4) ImageSampleImplicitLod 41 44
|
46: 9(fvec4) ImageSampleImplicitLod 42 45
|
||||||
ReturnValue 45
|
ReturnValue 46
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
19(osCall2(struct-os-p11;vf2;): 9(fvec4) Function None 16
|
19(osCall2(struct-os-p11;vf2;): 9(fvec4) Function None 16
|
||||||
17(s.s2D): 7(ptr) FunctionParameter
|
17(s.s2D): 7(ptr) FunctionParameter
|
||||||
18(f2): 15(ptr) FunctionParameter
|
18(f2): 15(ptr) FunctionParameter
|
||||||
20: Label
|
20: Label
|
||||||
48: 21 Load 37(tex)
|
49: 21 Load 38(tex)
|
||||||
49: 6 Load 17(s.s2D)
|
50: 6 Load 17(s.s2D)
|
||||||
50: 40 SampledImage 48 49
|
51: 41 SampledImage 49 50
|
||||||
51: 14(fvec2) Load 18(f2)
|
52: 14(fvec2) Load 18(f2)
|
||||||
52: 9(fvec4) ImageSampleImplicitLod 50 51
|
53: 9(fvec4) ImageSampleImplicitLod 51 52
|
||||||
ReturnValue 52
|
ReturnValue 53
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
26(os2Call1(struct-os2-p1-t211;): 9(fvec4) Function None 23
|
26(os2Call1(struct-os2-p1-t211;): 9(fvec4) Function None 23
|
||||||
24(s.s2D): 7(ptr) FunctionParameter
|
24(s.s2D): 7(ptr) FunctionParameter
|
||||||
25(s.tex): 22(ptr) FunctionParameter
|
25(s.tex): 22(ptr) FunctionParameter
|
||||||
27: Label
|
27: Label
|
||||||
55: 21 Load 25(s.tex)
|
56: 21 Load 25(s.tex)
|
||||||
56: 6 Load 24(s.s2D)
|
57: 6 Load 24(s.s2D)
|
||||||
57: 40 SampledImage 55 56
|
58: 41 SampledImage 56 57
|
||||||
58: 9(fvec4) ImageSampleImplicitLod 57 44
|
59: 9(fvec4) ImageSampleImplicitLod 58 45
|
||||||
ReturnValue 58
|
ReturnValue 59
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
32(os2Call2(struct-os2-p1-t211;vf2;): 9(fvec4) Function None 28
|
32(os2Call2(struct-os2-p1-t211;vf2;): 9(fvec4) Function None 28
|
||||||
29(s.s2D): 7(ptr) FunctionParameter
|
29(s.s2D): 7(ptr) FunctionParameter
|
||||||
30(s.tex): 22(ptr) FunctionParameter
|
30(s.tex): 22(ptr) FunctionParameter
|
||||||
31(f2): 15(ptr) FunctionParameter
|
31(f2): 15(ptr) FunctionParameter
|
||||||
33: Label
|
33: Label
|
||||||
61: 21 Load 30(s.tex)
|
62: 21 Load 30(s.tex)
|
||||||
62: 6 Load 29(s.s2D)
|
63: 6 Load 29(s.s2D)
|
||||||
63: 40 SampledImage 61 62
|
64: 41 SampledImage 62 63
|
||||||
64: 14(fvec2) Load 31(f2)
|
65: 14(fvec2) Load 31(f2)
|
||||||
65: 9(fvec4) ImageSampleImplicitLod 63 64
|
66: 9(fvec4) ImageSampleImplicitLod 64 65
|
||||||
ReturnValue 65
|
ReturnValue 66
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
35(@main(): 9(fvec4) Function None 34
|
35(@main(): 9(fvec4) Function None 34
|
||||||
36: Label
|
36: Label
|
||||||
70(param): 15(ptr) Variable Function
|
71(param): 7(ptr) Variable Function
|
||||||
77(param): 15(ptr) Variable Function
|
74(param): 7(ptr) Variable Function
|
||||||
69: 9(fvec4) FunctionCall 12(osCall1(struct-os-p11;) 68(s.s2D)
|
76(param): 15(ptr) Variable Function
|
||||||
Store 70(param) 44
|
81(param): 7(ptr) Variable Function
|
||||||
71: 9(fvec4) FunctionCall 19(osCall2(struct-os-p11;vf2;) 68(s.s2D) 70(param)
|
83(param): 22(ptr) Variable Function
|
||||||
72: 9(fvec4) FAdd 69 71
|
87(param): 7(ptr) Variable Function
|
||||||
75: 9(fvec4) FunctionCall 26(os2Call1(struct-os2-p1-t211;) 73(s2.s2D) 74(s2.tex)
|
89(param): 22(ptr) Variable Function
|
||||||
76: 9(fvec4) FAdd 72 75
|
91(param): 15(ptr) Variable Function
|
||||||
Store 77(param) 44
|
72: 6 Load 70(s.s2D)
|
||||||
78: 9(fvec4) FunctionCall 32(os2Call2(struct-os2-p1-t211;vf2;) 73(s2.s2D) 74(s2.tex) 77(param)
|
Store 71(param) 72
|
||||||
79: 9(fvec4) FAdd 76 78
|
73: 9(fvec4) FunctionCall 12(osCall1(struct-os-p11;) 71(param)
|
||||||
ReturnValue 79
|
75: 6 Load 70(s.s2D)
|
||||||
|
Store 74(param) 75
|
||||||
|
Store 76(param) 45
|
||||||
|
77: 9(fvec4) FunctionCall 19(osCall2(struct-os-p11;vf2;) 74(param) 76(param)
|
||||||
|
78: 9(fvec4) FAdd 73 77
|
||||||
|
82: 6 Load 79(s2.s2D)
|
||||||
|
Store 81(param) 82
|
||||||
|
84: 21 Load 80(s2.tex)
|
||||||
|
Store 83(param) 84
|
||||||
|
85: 9(fvec4) FunctionCall 26(os2Call1(struct-os2-p1-t211;) 81(param) 83(param)
|
||||||
|
86: 9(fvec4) FAdd 78 85
|
||||||
|
88: 6 Load 79(s2.s2D)
|
||||||
|
Store 87(param) 88
|
||||||
|
90: 21 Load 80(s2.tex)
|
||||||
|
Store 89(param) 90
|
||||||
|
Store 91(param) 45
|
||||||
|
92: 9(fvec4) FunctionCall 32(os2Call2(struct-os2-p1-t211;vf2;) 87(param) 89(param) 91(param)
|
||||||
|
93: 9(fvec4) FAdd 86 92
|
||||||
|
ReturnValue 93
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
hlsl.flattenOpaqueInit.vert
|
hlsl.flattenOpaqueInit.vert
|
||||||
WARNING: 0:20: '=' : cannot do member-wise aliasing for opaque members with this initializer
|
WARNING: AST will form illegal SPIR-V; need to transform to legalize
|
||||||
|
|
||||||
Shader version: 500
|
Shader version: 500
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:5 Function Definition: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
|
0:5 Function Definition: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
|
||||||
@ -19,13 +18,36 @@ Shader version: 500
|
|||||||
0:10 Function Definition: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex})
|
0:10 Function Definition: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex})
|
||||||
0:10 Function Parameters:
|
0:10 Function Parameters:
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
|
0:12 move second child to first child ( temp sampler)
|
||||||
|
0:? 't.smpl' ( temp sampler)
|
||||||
0:12 'g_tInputTexture_sampler' ( uniform sampler)
|
0:12 'g_tInputTexture_sampler' ( uniform sampler)
|
||||||
|
0:13 move second child to first child ( temp texture2D)
|
||||||
|
0:? 't.tex' ( temp texture2D)
|
||||||
0:13 'g_tInputTexture' ( uniform texture2D)
|
0:13 'g_tInputTexture' ( uniform texture2D)
|
||||||
0:14 Branch: Return with expression
|
0:14 Branch: Return with expression
|
||||||
0:14 't' ( temp structure{ temp sampler smpl, temp texture2D tex})
|
0:14 't' ( temp structure{ temp sampler smpl, temp texture2D tex})
|
||||||
0:18 Function Definition: @main( ( temp 4-component vector of float)
|
0:18 Function Definition: @main( ( temp 4-component vector of float)
|
||||||
0:18 Function Parameters:
|
0:18 Function Parameters:
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
|
0:19 Sequence
|
||||||
|
0:19 Sequence
|
||||||
|
0:19 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex})
|
||||||
|
0:19 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
|
||||||
|
0:19 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex})
|
||||||
|
0:19 'g_tInputTexture_sampler' ( uniform sampler)
|
||||||
|
0:19 'g_tInputTexture' ( uniform texture2D)
|
||||||
|
0:19 move second child to first child ( temp sampler)
|
||||||
|
0:? 'tex1.smpl' ( temp sampler)
|
||||||
|
0:19 smpl: direct index for structure ( temp sampler)
|
||||||
|
0:19 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 0 (const int)
|
||||||
|
0:19 move second child to first child ( temp texture2D)
|
||||||
|
0:? 'tex1.tex' ( temp texture2D)
|
||||||
|
0:19 tex: direct index for structure ( temp texture2D)
|
||||||
|
0:19 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 1 (const int)
|
||||||
0:20 Sequence
|
0:20 Sequence
|
||||||
0:20 Sequence
|
0:20 Sequence
|
||||||
0:20 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex})
|
0:20 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex})
|
||||||
@ -45,8 +67,8 @@ Shader version: 500
|
|||||||
0:20 1 (const int)
|
0:20 1 (const int)
|
||||||
0:21 Branch: Return with expression
|
0:21 Branch: Return with expression
|
||||||
0:21 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
|
0:21 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
|
||||||
0:? 'g_tInputTexture_sampler' ( uniform sampler)
|
0:? 'tex1.smpl' ( temp sampler)
|
||||||
0:? 'g_tInputTexture' ( uniform texture2D)
|
0:? 'tex1.tex' ( temp texture2D)
|
||||||
0:18 Function Definition: main( ( temp void)
|
0:18 Function Definition: main( ( temp void)
|
||||||
0:18 Function Parameters:
|
0:18 Function Parameters:
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -80,13 +102,36 @@ Shader version: 500
|
|||||||
0:10 Function Definition: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex})
|
0:10 Function Definition: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex})
|
||||||
0:10 Function Parameters:
|
0:10 Function Parameters:
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
|
0:12 move second child to first child ( temp sampler)
|
||||||
|
0:? 't.smpl' ( temp sampler)
|
||||||
0:12 'g_tInputTexture_sampler' ( uniform sampler)
|
0:12 'g_tInputTexture_sampler' ( uniform sampler)
|
||||||
|
0:13 move second child to first child ( temp texture2D)
|
||||||
|
0:? 't.tex' ( temp texture2D)
|
||||||
0:13 'g_tInputTexture' ( uniform texture2D)
|
0:13 'g_tInputTexture' ( uniform texture2D)
|
||||||
0:14 Branch: Return with expression
|
0:14 Branch: Return with expression
|
||||||
0:14 't' ( temp structure{ temp sampler smpl, temp texture2D tex})
|
0:14 't' ( temp structure{ temp sampler smpl, temp texture2D tex})
|
||||||
0:18 Function Definition: @main( ( temp 4-component vector of float)
|
0:18 Function Definition: @main( ( temp 4-component vector of float)
|
||||||
0:18 Function Parameters:
|
0:18 Function Parameters:
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
|
0:19 Sequence
|
||||||
|
0:19 Sequence
|
||||||
|
0:19 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex})
|
||||||
|
0:19 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
|
||||||
|
0:19 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex})
|
||||||
|
0:19 'g_tInputTexture_sampler' ( uniform sampler)
|
||||||
|
0:19 'g_tInputTexture' ( uniform texture2D)
|
||||||
|
0:19 move second child to first child ( temp sampler)
|
||||||
|
0:? 'tex1.smpl' ( temp sampler)
|
||||||
|
0:19 smpl: direct index for structure ( temp sampler)
|
||||||
|
0:19 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 0 (const int)
|
||||||
|
0:19 move second child to first child ( temp texture2D)
|
||||||
|
0:? 'tex1.tex' ( temp texture2D)
|
||||||
|
0:19 tex: direct index for structure ( temp texture2D)
|
||||||
|
0:19 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 1 (const int)
|
||||||
0:20 Sequence
|
0:20 Sequence
|
||||||
0:20 Sequence
|
0:20 Sequence
|
||||||
0:20 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex})
|
0:20 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex})
|
||||||
@ -106,8 +151,8 @@ Shader version: 500
|
|||||||
0:20 1 (const int)
|
0:20 1 (const int)
|
||||||
0:21 Branch: Return with expression
|
0:21 Branch: Return with expression
|
||||||
0:21 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
|
0:21 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
|
||||||
0:? 'g_tInputTexture_sampler' ( uniform sampler)
|
0:? 'tex1.smpl' ( temp sampler)
|
||||||
0:? 'g_tInputTexture' ( uniform texture2D)
|
0:? 'tex1.tex' ( temp texture2D)
|
||||||
0:18 Function Definition: main( ( temp void)
|
0:18 Function Definition: main( ( temp void)
|
||||||
0:18 Function Parameters:
|
0:18 Function Parameters:
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
@ -121,12 +166,12 @@ Shader version: 500
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 60
|
// Id's are bound by 80
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4 "main" 58
|
EntryPoint Vertex 4 "main" 78
|
||||||
Source HLSL 500
|
Source HLSL 500
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 15 "lookUp(struct-FxaaTex-p1-t211;"
|
Name 15 "lookUp(struct-FxaaTex-p1-t211;"
|
||||||
@ -137,23 +182,30 @@ Shader version: 500
|
|||||||
MemberName 17(FxaaTex) 1 "tex"
|
MemberName 17(FxaaTex) 1 "tex"
|
||||||
Name 19 "fillOpaque("
|
Name 19 "fillOpaque("
|
||||||
Name 22 "@main("
|
Name 22 "@main("
|
||||||
Name 36 "g_tInputTexture_sampler"
|
Name 36 "t.smpl"
|
||||||
Name 37 "g_tInputTexture"
|
Name 38 "g_tInputTexture_sampler"
|
||||||
Name 39 "t"
|
Name 40 "t.tex"
|
||||||
Name 43 "flattenTemp"
|
Name 42 "g_tInputTexture"
|
||||||
Name 45 "tex2.smpl"
|
Name 45 "t"
|
||||||
Name 50 "tex2.tex"
|
Name 49 "flattenTemp"
|
||||||
Name 58 "@entryPointOutput"
|
Name 53 "tex1.smpl"
|
||||||
Decorate 36(g_tInputTexture_sampler) DescriptorSet 0
|
Name 58 "tex1.tex"
|
||||||
Decorate 37(g_tInputTexture) DescriptorSet 0
|
Name 62 "flattenTemp"
|
||||||
Decorate 58(@entryPointOutput) Location 0
|
Name 64 "tex2.smpl"
|
||||||
|
Name 67 "tex2.tex"
|
||||||
|
Name 70 "param"
|
||||||
|
Name 72 "param"
|
||||||
|
Name 78 "@entryPointOutput"
|
||||||
|
Decorate 38(g_tInputTexture_sampler) DescriptorSet 0
|
||||||
|
Decorate 42(g_tInputTexture) DescriptorSet 0
|
||||||
|
Decorate 78(@entryPointOutput) Location 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeSampler
|
6: TypeSampler
|
||||||
7: TypePointer UniformConstant 6
|
7: TypePointer Function 6
|
||||||
8: TypeFloat 32
|
8: TypeFloat 32
|
||||||
9: TypeImage 8(float) 2D sampled format:Unknown
|
9: TypeImage 8(float) 2D sampled format:Unknown
|
||||||
10: TypePointer UniformConstant 9
|
10: TypePointer Function 9
|
||||||
11: TypeVector 8(float) 4
|
11: TypeVector 8(float) 4
|
||||||
12: TypeFunction 11(fvec4) 7(ptr) 10(ptr)
|
12: TypeFunction 11(fvec4) 7(ptr) 10(ptr)
|
||||||
17(FxaaTex): TypeStruct 6 9
|
17(FxaaTex): TypeStruct 6 9
|
||||||
@ -165,22 +217,20 @@ Shader version: 500
|
|||||||
30: 8(float) Constant 1053609165
|
30: 8(float) Constant 1053609165
|
||||||
31: 28(fvec2) ConstantComposite 29 30
|
31: 28(fvec2) ConstantComposite 29 30
|
||||||
32: 8(float) Constant 0
|
32: 8(float) Constant 0
|
||||||
36(g_tInputTexture_sampler): 7(ptr) Variable UniformConstant
|
37: TypePointer UniformConstant 6
|
||||||
37(g_tInputTexture): 10(ptr) Variable UniformConstant
|
38(g_tInputTexture_sampler): 37(ptr) Variable UniformConstant
|
||||||
38: TypePointer UniformConstant 17(FxaaTex)
|
41: TypePointer UniformConstant 9
|
||||||
39(t): 38(ptr) Variable UniformConstant
|
42(g_tInputTexture): 41(ptr) Variable UniformConstant
|
||||||
43(flattenTemp): 38(ptr) Variable UniformConstant
|
44: TypePointer Function 17(FxaaTex)
|
||||||
45(tex2.smpl): 7(ptr) Variable UniformConstant
|
54: TypeInt 32 1
|
||||||
46: TypeInt 32 1
|
55: 54(int) Constant 0
|
||||||
47: 46(int) Constant 0
|
59: 54(int) Constant 1
|
||||||
50(tex2.tex): 10(ptr) Variable UniformConstant
|
77: TypePointer Output 11(fvec4)
|
||||||
51: 46(int) Constant 1
|
78(@entryPointOutput): 77(ptr) Variable Output
|
||||||
57: TypePointer Output 11(fvec4)
|
|
||||||
58(@entryPointOutput): 57(ptr) Variable Output
|
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
59: 11(fvec4) FunctionCall 22(@main()
|
79: 11(fvec4) FunctionCall 22(@main()
|
||||||
Store 58(@entryPointOutput) 59
|
Store 78(@entryPointOutput) 79
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
15(lookUp(struct-FxaaTex-p1-t211;): 11(fvec4) Function None 12
|
15(lookUp(struct-FxaaTex-p1-t211;): 11(fvec4) Function None 12
|
||||||
@ -195,19 +245,48 @@ Shader version: 500
|
|||||||
FunctionEnd
|
FunctionEnd
|
||||||
19(fillOpaque(): 17(FxaaTex) Function None 18
|
19(fillOpaque(): 17(FxaaTex) Function None 18
|
||||||
20: Label
|
20: Label
|
||||||
40: 17(FxaaTex) Load 39(t)
|
36(t.smpl): 7(ptr) Variable Function
|
||||||
ReturnValue 40
|
40(t.tex): 10(ptr) Variable Function
|
||||||
|
45(t): 44(ptr) Variable Function
|
||||||
|
39: 6 Load 38(g_tInputTexture_sampler)
|
||||||
|
Store 36(t.smpl) 39
|
||||||
|
43: 9 Load 42(g_tInputTexture)
|
||||||
|
Store 40(t.tex) 43
|
||||||
|
46: 17(FxaaTex) Load 45(t)
|
||||||
|
ReturnValue 46
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
22(@main(): 11(fvec4) Function None 21
|
22(@main(): 11(fvec4) Function None 21
|
||||||
23: Label
|
23: Label
|
||||||
44: 17(FxaaTex) FunctionCall 19(fillOpaque()
|
49(flattenTemp): 44(ptr) Variable Function
|
||||||
Store 43(flattenTemp) 44
|
53(tex1.smpl): 7(ptr) Variable Function
|
||||||
48: 7(ptr) AccessChain 43(flattenTemp) 47
|
58(tex1.tex): 10(ptr) Variable Function
|
||||||
49: 6 Load 48
|
62(flattenTemp): 44(ptr) Variable Function
|
||||||
Store 45(tex2.smpl) 49
|
64(tex2.smpl): 7(ptr) Variable Function
|
||||||
52: 10(ptr) AccessChain 43(flattenTemp) 51
|
67(tex2.tex): 10(ptr) Variable Function
|
||||||
53: 9 Load 52
|
70(param): 7(ptr) Variable Function
|
||||||
Store 50(tex2.tex) 53
|
72(param): 10(ptr) Variable Function
|
||||||
54: 11(fvec4) FunctionCall 15(lookUp(struct-FxaaTex-p1-t211;) 36(g_tInputTexture_sampler) 37(g_tInputTexture)
|
50: 6 Load 38(g_tInputTexture_sampler)
|
||||||
ReturnValue 54
|
51: 9 Load 42(g_tInputTexture)
|
||||||
|
52: 17(FxaaTex) CompositeConstruct 50 51
|
||||||
|
Store 49(flattenTemp) 52
|
||||||
|
56: 7(ptr) AccessChain 49(flattenTemp) 55
|
||||||
|
57: 6 Load 56
|
||||||
|
Store 53(tex1.smpl) 57
|
||||||
|
60: 10(ptr) AccessChain 49(flattenTemp) 59
|
||||||
|
61: 9 Load 60
|
||||||
|
Store 58(tex1.tex) 61
|
||||||
|
63: 17(FxaaTex) FunctionCall 19(fillOpaque()
|
||||||
|
Store 62(flattenTemp) 63
|
||||||
|
65: 7(ptr) AccessChain 62(flattenTemp) 55
|
||||||
|
66: 6 Load 65
|
||||||
|
Store 64(tex2.smpl) 66
|
||||||
|
68: 10(ptr) AccessChain 62(flattenTemp) 59
|
||||||
|
69: 9 Load 68
|
||||||
|
Store 67(tex2.tex) 69
|
||||||
|
71: 6 Load 53(tex1.smpl)
|
||||||
|
Store 70(param) 71
|
||||||
|
73: 9 Load 58(tex1.tex)
|
||||||
|
Store 72(param) 73
|
||||||
|
74: 11(fvec4) FunctionCall 15(lookUp(struct-FxaaTex-p1-t211;) 70(param) 72(param)
|
||||||
|
ReturnValue 74
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
hlsl.flattenOpaqueInitMix.vert
|
hlsl.flattenOpaqueInitMix.vert
|
||||||
|
WARNING: AST will form illegal SPIR-V; need to transform to legalize
|
||||||
Shader version: 500
|
Shader version: 500
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:5 Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float)
|
0:5 Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float)
|
||||||
@ -19,15 +20,36 @@ Shader version: 500
|
|||||||
0:10 Function Parameters:
|
0:10 Function Parameters:
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:11 Sequence
|
0:11 Sequence
|
||||||
0:? Sequence
|
0:11 Sequence
|
||||||
0:11 move second child to first child ( temp float)
|
0:11 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
|
||||||
0:? 'tex.f' ( temp float)
|
0:11 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
|
||||||
|
0:11 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
|
||||||
|
0:11 'g_tInputTexture_sampler' ( uniform sampler)
|
||||||
|
0:11 'g_tInputTexture' ( uniform texture2D)
|
||||||
0:11 Constant:
|
0:11 Constant:
|
||||||
0:11 0.500000
|
0:11 0.500000
|
||||||
|
0:11 move second child to first child ( temp sampler)
|
||||||
|
0:? 'tex.smpl' ( temp sampler)
|
||||||
|
0:11 smpl: direct index for structure ( temp sampler)
|
||||||
|
0:11 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 move second child to first child ( temp texture2D)
|
||||||
|
0:? 'tex.tex' ( temp texture2D)
|
||||||
|
0:11 tex: direct index for structure ( temp texture2D)
|
||||||
|
0:11 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:? 'tex.f' ( temp float)
|
||||||
|
0:11 f: direct index for structure ( temp float)
|
||||||
|
0:11 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
0:12 Branch: Return with expression
|
0:12 Branch: Return with expression
|
||||||
0:12 Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float)
|
0:12 Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float)
|
||||||
0:? 'g_tInputTexture_sampler' ( uniform sampler)
|
0:? 'tex.smpl' ( temp sampler)
|
||||||
0:? 'g_tInputTexture' ( uniform texture2D)
|
0:? 'tex.tex' ( temp texture2D)
|
||||||
0:? 'tex.f' ( temp float)
|
0:? 'tex.f' ( temp float)
|
||||||
0:10 Function Definition: main( ( temp void)
|
0:10 Function Definition: main( ( temp void)
|
||||||
0:10 Function Parameters:
|
0:10 Function Parameters:
|
||||||
@ -64,15 +86,36 @@ Shader version: 500
|
|||||||
0:10 Function Parameters:
|
0:10 Function Parameters:
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:11 Sequence
|
0:11 Sequence
|
||||||
0:? Sequence
|
0:11 Sequence
|
||||||
0:11 move second child to first child ( temp float)
|
0:11 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
|
||||||
0:? 'tex.f' ( temp float)
|
0:11 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
|
||||||
|
0:11 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
|
||||||
|
0:11 'g_tInputTexture_sampler' ( uniform sampler)
|
||||||
|
0:11 'g_tInputTexture' ( uniform texture2D)
|
||||||
0:11 Constant:
|
0:11 Constant:
|
||||||
0:11 0.500000
|
0:11 0.500000
|
||||||
|
0:11 move second child to first child ( temp sampler)
|
||||||
|
0:? 'tex.smpl' ( temp sampler)
|
||||||
|
0:11 smpl: direct index for structure ( temp sampler)
|
||||||
|
0:11 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 move second child to first child ( temp texture2D)
|
||||||
|
0:? 'tex.tex' ( temp texture2D)
|
||||||
|
0:11 tex: direct index for structure ( temp texture2D)
|
||||||
|
0:11 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:? 'tex.f' ( temp float)
|
||||||
|
0:11 f: direct index for structure ( temp float)
|
||||||
|
0:11 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
0:12 Branch: Return with expression
|
0:12 Branch: Return with expression
|
||||||
0:12 Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float)
|
0:12 Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float)
|
||||||
0:? 'g_tInputTexture_sampler' ( uniform sampler)
|
0:? 'tex.smpl' ( temp sampler)
|
||||||
0:? 'g_tInputTexture' ( uniform texture2D)
|
0:? 'tex.tex' ( temp texture2D)
|
||||||
0:? 'tex.f' ( temp float)
|
0:? 'tex.f' ( temp float)
|
||||||
0:10 Function Definition: main( ( temp void)
|
0:10 Function Definition: main( ( temp void)
|
||||||
0:10 Function Parameters:
|
0:10 Function Parameters:
|
||||||
@ -87,12 +130,12 @@ Shader version: 500
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 46
|
// Id's are bound by 70
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4 "main" 44
|
EntryPoint Vertex 4 "main" 68
|
||||||
Source HLSL 500
|
Source HLSL 500
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 17 "lookUp(struct-FxaaTex-p1-t21-f11;"
|
Name 17 "lookUp(struct-FxaaTex-p1-t21-f11;"
|
||||||
@ -100,21 +143,30 @@ Shader version: 500
|
|||||||
Name 15 "tex.tex"
|
Name 15 "tex.tex"
|
||||||
Name 16 "tex.f"
|
Name 16 "tex.f"
|
||||||
Name 20 "@main("
|
Name 20 "@main("
|
||||||
Name 34 "tex.f"
|
Name 34 "FxaaTex"
|
||||||
Name 36 "g_tInputTexture_sampler"
|
MemberName 34(FxaaTex) 0 "smpl"
|
||||||
Name 37 "g_tInputTexture"
|
MemberName 34(FxaaTex) 1 "tex"
|
||||||
Name 38 "param"
|
MemberName 34(FxaaTex) 2 "f"
|
||||||
Name 44 "@entryPointOutput"
|
Name 36 "flattenTemp"
|
||||||
Decorate 36(g_tInputTexture_sampler) DescriptorSet 0
|
Name 38 "g_tInputTexture_sampler"
|
||||||
Decorate 37(g_tInputTexture) DescriptorSet 0
|
Name 41 "g_tInputTexture"
|
||||||
Decorate 44(@entryPointOutput) Location 0
|
Name 45 "tex.smpl"
|
||||||
|
Name 50 "tex.tex"
|
||||||
|
Name 54 "tex.f"
|
||||||
|
Name 58 "param"
|
||||||
|
Name 60 "param"
|
||||||
|
Name 62 "param"
|
||||||
|
Name 68 "@entryPointOutput"
|
||||||
|
Decorate 38(g_tInputTexture_sampler) DescriptorSet 0
|
||||||
|
Decorate 41(g_tInputTexture) DescriptorSet 0
|
||||||
|
Decorate 68(@entryPointOutput) Location 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeSampler
|
6: TypeSampler
|
||||||
7: TypePointer UniformConstant 6
|
7: TypePointer Function 6
|
||||||
8: TypeFloat 32
|
8: TypeFloat 32
|
||||||
9: TypeImage 8(float) 2D sampled format:Unknown
|
9: TypeImage 8(float) 2D sampled format:Unknown
|
||||||
10: TypePointer UniformConstant 9
|
10: TypePointer Function 9
|
||||||
11: TypePointer Function 8(float)
|
11: TypePointer Function 8(float)
|
||||||
12: TypeVector 8(float) 4
|
12: TypeVector 8(float) 4
|
||||||
13: TypeFunction 12(fvec4) 7(ptr) 10(ptr) 11(ptr)
|
13: TypeFunction 12(fvec4) 7(ptr) 10(ptr) 11(ptr)
|
||||||
@ -122,15 +174,23 @@ Shader version: 500
|
|||||||
24: TypeSampledImage 9
|
24: TypeSampledImage 9
|
||||||
28: TypeVector 8(float) 2
|
28: TypeVector 8(float) 2
|
||||||
30: 8(float) Constant 0
|
30: 8(float) Constant 0
|
||||||
35: 8(float) Constant 1056964608
|
34(FxaaTex): TypeStruct 6 9 8(float)
|
||||||
36(g_tInputTexture_sampler): 7(ptr) Variable UniformConstant
|
35: TypePointer Function 34(FxaaTex)
|
||||||
37(g_tInputTexture): 10(ptr) Variable UniformConstant
|
37: TypePointer UniformConstant 6
|
||||||
43: TypePointer Output 12(fvec4)
|
38(g_tInputTexture_sampler): 37(ptr) Variable UniformConstant
|
||||||
44(@entryPointOutput): 43(ptr) Variable Output
|
40: TypePointer UniformConstant 9
|
||||||
|
41(g_tInputTexture): 40(ptr) Variable UniformConstant
|
||||||
|
43: 8(float) Constant 1056964608
|
||||||
|
46: TypeInt 32 1
|
||||||
|
47: 46(int) Constant 0
|
||||||
|
51: 46(int) Constant 1
|
||||||
|
55: 46(int) Constant 2
|
||||||
|
67: TypePointer Output 12(fvec4)
|
||||||
|
68(@entryPointOutput): 67(ptr) Variable Output
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
45: 12(fvec4) FunctionCall 20(@main()
|
69: 12(fvec4) FunctionCall 20(@main()
|
||||||
Store 44(@entryPointOutput) 45
|
Store 68(@entryPointOutput) 69
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
17(lookUp(struct-FxaaTex-p1-t21-f11;): 12(fvec4) Function None 13
|
17(lookUp(struct-FxaaTex-p1-t21-f11;): 12(fvec4) Function None 13
|
||||||
@ -149,11 +209,32 @@ Shader version: 500
|
|||||||
FunctionEnd
|
FunctionEnd
|
||||||
20(@main(): 12(fvec4) Function None 19
|
20(@main(): 12(fvec4) Function None 19
|
||||||
21: Label
|
21: Label
|
||||||
34(tex.f): 11(ptr) Variable Function
|
36(flattenTemp): 35(ptr) Variable Function
|
||||||
38(param): 11(ptr) Variable Function
|
45(tex.smpl): 7(ptr) Variable Function
|
||||||
Store 34(tex.f) 35
|
50(tex.tex): 10(ptr) Variable Function
|
||||||
39: 8(float) Load 34(tex.f)
|
54(tex.f): 11(ptr) Variable Function
|
||||||
Store 38(param) 39
|
58(param): 7(ptr) Variable Function
|
||||||
40: 12(fvec4) FunctionCall 17(lookUp(struct-FxaaTex-p1-t21-f11;) 36(g_tInputTexture_sampler) 37(g_tInputTexture) 38(param)
|
60(param): 10(ptr) Variable Function
|
||||||
ReturnValue 40
|
62(param): 11(ptr) Variable Function
|
||||||
|
39: 6 Load 38(g_tInputTexture_sampler)
|
||||||
|
42: 9 Load 41(g_tInputTexture)
|
||||||
|
44: 34(FxaaTex) CompositeConstruct 39 42 43
|
||||||
|
Store 36(flattenTemp) 44
|
||||||
|
48: 7(ptr) AccessChain 36(flattenTemp) 47
|
||||||
|
49: 6 Load 48
|
||||||
|
Store 45(tex.smpl) 49
|
||||||
|
52: 10(ptr) AccessChain 36(flattenTemp) 51
|
||||||
|
53: 9 Load 52
|
||||||
|
Store 50(tex.tex) 53
|
||||||
|
56: 11(ptr) AccessChain 36(flattenTemp) 55
|
||||||
|
57: 8(float) Load 56
|
||||||
|
Store 54(tex.f) 57
|
||||||
|
59: 6 Load 45(tex.smpl)
|
||||||
|
Store 58(param) 59
|
||||||
|
61: 9 Load 50(tex.tex)
|
||||||
|
Store 60(param) 61
|
||||||
|
63: 8(float) Load 54(tex.f)
|
||||||
|
Store 62(param) 63
|
||||||
|
64: 12(fvec4) FunctionCall 17(lookUp(struct-FxaaTex-p1-t21-f11;) 58(param) 60(param) 62(param)
|
||||||
|
ReturnValue 64
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -59,7 +59,7 @@ gl_FragCoord origin is upper left
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 26
|
// Id's are bound by 27
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
@ -68,44 +68,45 @@ gl_FragCoord origin is upper left
|
|||||||
ExecutionMode 4 OriginUpperLeft
|
ExecutionMode 4 OriginUpperLeft
|
||||||
Source HLSL 500
|
Source HLSL 500
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 14 "TexFunc(t21;vf3;"
|
Name 13 "TexFunc(t21;vf3;"
|
||||||
Name 12 "t2D"
|
Name 11 "t2D"
|
||||||
Name 13 "RGB"
|
Name 12 "RGB"
|
||||||
Name 16 "@main("
|
Name 15 "@main("
|
||||||
Name 20 "MyTexture"
|
Name 20 "MyTexture"
|
||||||
Name 21 "final_RGB"
|
Name 22 "final_RGB"
|
||||||
Name 22 "param"
|
Name 23 "param"
|
||||||
Decorate 20(MyTexture) DescriptorSet 0
|
Decorate 20(MyTexture) DescriptorSet 0
|
||||||
Decorate 20(MyTexture) Binding 0
|
Decorate 20(MyTexture) Binding 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
7: TypeImage 6(float) 2D sampled format:Unknown
|
7: TypeImage 6(float) 2D sampled format:Unknown
|
||||||
8: TypePointer UniformConstant 7
|
8: TypeVector 6(float) 3
|
||||||
9: TypeVector 6(float) 3
|
9: TypePointer Function 8(fvec3)
|
||||||
10: TypePointer Function 9(fvec3)
|
10: TypeFunction 2 7 9(ptr)
|
||||||
11: TypeFunction 2 8(ptr) 10(ptr)
|
17: 6(float) Constant 0
|
||||||
18: 6(float) Constant 0
|
18: 8(fvec3) ConstantComposite 17 17 17
|
||||||
19: 9(fvec3) ConstantComposite 18 18 18
|
19: TypePointer UniformConstant 7
|
||||||
20(MyTexture): 8(ptr) Variable UniformConstant
|
20(MyTexture): 19(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
25: 2 FunctionCall 16(@main()
|
26: 2 FunctionCall 15(@main()
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
14(TexFunc(t21;vf3;): 2 Function None 11
|
13(TexFunc(t21;vf3;): 2 Function None 10
|
||||||
12(t2D): 8(ptr) FunctionParameter
|
11(t2D): 7 FunctionParameter
|
||||||
13(RGB): 10(ptr) FunctionParameter
|
12(RGB): 9(ptr) FunctionParameter
|
||||||
15: Label
|
14: Label
|
||||||
Store 13(RGB) 19
|
Store 12(RGB) 18
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
16(@main(): 2 Function None 3
|
15(@main(): 2 Function None 3
|
||||||
17: Label
|
16: Label
|
||||||
21(final_RGB): 10(ptr) Variable Function
|
22(final_RGB): 9(ptr) Variable Function
|
||||||
22(param): 10(ptr) Variable Function
|
23(param): 9(ptr) Variable Function
|
||||||
23: 2 FunctionCall 14(TexFunc(t21;vf3;) 20(MyTexture) 22(param)
|
21: 7 Load 20(MyTexture)
|
||||||
24: 9(fvec3) Load 22(param)
|
24: 2 FunctionCall 13(TexFunc(t21;vf3;) 21 23(param)
|
||||||
Store 21(final_RGB) 24
|
25: 8(fvec3) Load 23(param)
|
||||||
|
Store 22(final_RGB) 25
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -151,12 +151,12 @@ gl_FragCoord origin is upper left
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 70
|
// Id's are bound by 76
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4 "main" 58 61
|
EntryPoint Fragment 4 "main" 64 67
|
||||||
ExecutionMode 4 OriginUpperLeft
|
ExecutionMode 4 OriginUpperLeft
|
||||||
Source HLSL 500
|
Source HLSL 500
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
@ -171,51 +171,55 @@ gl_FragCoord origin is upper left
|
|||||||
Name 18 "arg_c@count"
|
Name 18 "arg_c@count"
|
||||||
Name 25 "@main(u1;"
|
Name 25 "@main(u1;"
|
||||||
Name 24 "pos"
|
Name 24 "pos"
|
||||||
Name 49 "sbuf_a"
|
Name 50 "sbuf_a"
|
||||||
Name 50 "sbuf_a@count"
|
Name 52 "sbuf_a@count"
|
||||||
Name 51 "sbuf_c"
|
Name 53 "sbuf_c"
|
||||||
Name 52 "sbuf_c@count"
|
Name 54 "sbuf_c@count"
|
||||||
Name 56 "pos"
|
Name 55 "param"
|
||||||
Name 58 "pos"
|
Name 56 "param"
|
||||||
Name 61 "@entryPointOutput"
|
Name 57 "param"
|
||||||
Name 62 "param"
|
Name 58 "param"
|
||||||
Name 65 "sbuf_a@count"
|
Name 62 "pos"
|
||||||
MemberName 65(sbuf_a@count) 0 "@count"
|
Name 64 "pos"
|
||||||
Name 67 "sbuf_a@count"
|
Name 67 "@entryPointOutput"
|
||||||
Name 68 "sbuf_c@count"
|
Name 68 "param"
|
||||||
Name 69 "sbuf_unused"
|
Name 71 "sbuf_a@count"
|
||||||
|
MemberName 71(sbuf_a@count) 0 "@count"
|
||||||
|
Name 73 "sbuf_a@count"
|
||||||
|
Name 74 "sbuf_c@count"
|
||||||
|
Name 75 "sbuf_unused"
|
||||||
Decorate 8 ArrayStride 16
|
Decorate 8 ArrayStride 16
|
||||||
MemberDecorate 9 0 Offset 0
|
MemberDecorate 9 0 Offset 0
|
||||||
Decorate 9 BufferBlock
|
Decorate 9 BufferBlock
|
||||||
Decorate 12 BufferBlock
|
Decorate 12 BufferBlock
|
||||||
Decorate 49(sbuf_a) DescriptorSet 0
|
Decorate 50(sbuf_a) DescriptorSet 0
|
||||||
Decorate 50(sbuf_a@count) DescriptorSet 0
|
Decorate 52(sbuf_a@count) DescriptorSet 0
|
||||||
Decorate 51(sbuf_c) DescriptorSet 0
|
Decorate 53(sbuf_c) DescriptorSet 0
|
||||||
Decorate 52(sbuf_c@count) DescriptorSet 0
|
Decorate 54(sbuf_c@count) DescriptorSet 0
|
||||||
Decorate 58(pos) Flat
|
Decorate 64(pos) Flat
|
||||||
Decorate 58(pos) Location 0
|
Decorate 64(pos) Location 0
|
||||||
Decorate 61(@entryPointOutput) Location 0
|
Decorate 67(@entryPointOutput) Location 0
|
||||||
MemberDecorate 65(sbuf_a@count) 0 Offset 0
|
MemberDecorate 71(sbuf_a@count) 0 Offset 0
|
||||||
Decorate 65(sbuf_a@count) BufferBlock
|
Decorate 71(sbuf_a@count) BufferBlock
|
||||||
Decorate 67(sbuf_a@count) DescriptorSet 0
|
Decorate 73(sbuf_a@count) DescriptorSet 0
|
||||||
Decorate 68(sbuf_c@count) DescriptorSet 0
|
Decorate 74(sbuf_c@count) DescriptorSet 0
|
||||||
Decorate 69(sbuf_unused) DescriptorSet 0
|
Decorate 75(sbuf_unused) DescriptorSet 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
7: TypeVector 6(float) 4
|
7: TypeVector 6(float) 4
|
||||||
8: TypeRuntimeArray 7(fvec4)
|
8: TypeRuntimeArray 7(fvec4)
|
||||||
9: TypeStruct 8
|
9: TypeStruct 8
|
||||||
10: TypePointer Uniform 9(struct)
|
10: TypePointer Function 9(struct)
|
||||||
11: TypeInt 32 1
|
11: TypeInt 32 1
|
||||||
12: TypeStruct 11(int)
|
12: TypeStruct 11(int)
|
||||||
13: TypePointer Uniform 12(struct)
|
13: TypePointer Function 12(struct)
|
||||||
14: TypeFunction 7(fvec4) 10(ptr) 13(ptr) 10(ptr) 13(ptr)
|
14: TypeFunction 7(fvec4) 10(ptr) 13(ptr) 10(ptr) 13(ptr)
|
||||||
21: TypeInt 32 0
|
21: TypeInt 32 0
|
||||||
22: TypePointer Function 21(int)
|
22: TypePointer Function 21(int)
|
||||||
23: TypeFunction 7(fvec4) 22(ptr)
|
23: TypeFunction 7(fvec4) 22(ptr)
|
||||||
27: 11(int) Constant 0
|
27: 11(int) Constant 0
|
||||||
28: TypePointer Uniform 11(int)
|
28: TypePointer Function 11(int)
|
||||||
30: 11(int) Constant 1
|
30: 11(int) Constant 1
|
||||||
31: 21(int) Constant 1
|
31: 21(int) Constant 1
|
||||||
32: 21(int) Constant 0
|
32: 21(int) Constant 0
|
||||||
@ -224,31 +228,33 @@ gl_FragCoord origin is upper left
|
|||||||
36: 6(float) Constant 1077936128
|
36: 6(float) Constant 1077936128
|
||||||
37: 6(float) Constant 1082130432
|
37: 6(float) Constant 1082130432
|
||||||
38: 7(fvec4) ConstantComposite 34 35 36 37
|
38: 7(fvec4) ConstantComposite 34 35 36 37
|
||||||
39: TypePointer Uniform 7(fvec4)
|
39: TypePointer Function 7(fvec4)
|
||||||
42: 11(int) Constant 4294967295
|
42: 11(int) Constant 4294967295
|
||||||
49(sbuf_a): 10(ptr) Variable Uniform
|
49: TypePointer Uniform 9(struct)
|
||||||
50(sbuf_a@count): 13(ptr) Variable Uniform
|
50(sbuf_a): 49(ptr) Variable Uniform
|
||||||
51(sbuf_c): 10(ptr) Variable Uniform
|
51: TypePointer Uniform 12(struct)
|
||||||
52(sbuf_c@count): 13(ptr) Variable Uniform
|
52(sbuf_a@count): 51(ptr) Variable Uniform
|
||||||
57: TypePointer Input 21(int)
|
53(sbuf_c): 49(ptr) Variable Uniform
|
||||||
58(pos): 57(ptr) Variable Input
|
54(sbuf_c@count): 51(ptr) Variable Uniform
|
||||||
60: TypePointer Output 7(fvec4)
|
63: TypePointer Input 21(int)
|
||||||
61(@entryPointOutput): 60(ptr) Variable Output
|
64(pos): 63(ptr) Variable Input
|
||||||
65(sbuf_a@count): TypeStruct 11(int)
|
66: TypePointer Output 7(fvec4)
|
||||||
66: TypePointer Uniform 65(sbuf_a@count)
|
67(@entryPointOutput): 66(ptr) Variable Output
|
||||||
67(sbuf_a@count): 66(ptr) Variable Uniform
|
71(sbuf_a@count): TypeStruct 11(int)
|
||||||
68(sbuf_c@count): 66(ptr) Variable Uniform
|
72: TypePointer Uniform 71(sbuf_a@count)
|
||||||
69(sbuf_unused): 10(ptr) Variable Uniform
|
73(sbuf_a@count): 72(ptr) Variable Uniform
|
||||||
|
74(sbuf_c@count): 72(ptr) Variable Uniform
|
||||||
|
75(sbuf_unused): 49(ptr) Variable Uniform
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
56(pos): 22(ptr) Variable Function
|
62(pos): 22(ptr) Variable Function
|
||||||
62(param): 22(ptr) Variable Function
|
68(param): 22(ptr) Variable Function
|
||||||
59: 21(int) Load 58(pos)
|
65: 21(int) Load 64(pos)
|
||||||
Store 56(pos) 59
|
Store 62(pos) 65
|
||||||
63: 21(int) Load 56(pos)
|
69: 21(int) Load 62(pos)
|
||||||
Store 62(param) 63
|
Store 68(param) 69
|
||||||
64: 7(fvec4) FunctionCall 25(@main(u1;) 62(param)
|
70: 7(fvec4) FunctionCall 25(@main(u1;) 68(param)
|
||||||
Store 61(@entryPointOutput) 64
|
Store 67(@entryPointOutput) 70
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
19(Fn2(block--vf4[0]1;block--vf4[0]1;): 7(fvec4) Function None 14
|
19(Fn2(block--vf4[0]1;block--vf4[0]1;): 7(fvec4) Function None 14
|
||||||
@ -271,6 +277,10 @@ gl_FragCoord origin is upper left
|
|||||||
25(@main(u1;): 7(fvec4) Function None 23
|
25(@main(u1;): 7(fvec4) Function None 23
|
||||||
24(pos): 22(ptr) FunctionParameter
|
24(pos): 22(ptr) FunctionParameter
|
||||||
26: Label
|
26: Label
|
||||||
53: 7(fvec4) FunctionCall 19(Fn2(block--vf4[0]1;block--vf4[0]1;) 49(sbuf_a) 50(sbuf_a@count) 51(sbuf_c) 52(sbuf_c@count)
|
55(param): 10(ptr) Variable Function
|
||||||
ReturnValue 53
|
56(param): 13(ptr) Variable Function
|
||||||
|
57(param): 10(ptr) Variable Function
|
||||||
|
58(param): 13(ptr) Variable Function
|
||||||
|
59: 7(fvec4) FunctionCall 19(Fn2(block--vf4[0]1;block--vf4[0]1;) 55(param) 56(param) 57(param) 58(param)
|
||||||
|
ReturnValue 59
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -139,12 +139,12 @@ gl_FragCoord origin is upper left
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 78
|
// Id's are bound by 83
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4 "main" 63 66
|
EntryPoint Fragment 4 "main" 68 71
|
||||||
ExecutionMode 4 OriginUpperLeft
|
ExecutionMode 4 OriginUpperLeft
|
||||||
Source HLSL 500
|
Source HLSL 500
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
@ -165,21 +165,24 @@ gl_FragCoord origin is upper left
|
|||||||
Name 35 "@main(u1;"
|
Name 35 "@main(u1;"
|
||||||
Name 34 "pos"
|
Name 34 "pos"
|
||||||
Name 47 "sbuf2"
|
Name 47 "sbuf2"
|
||||||
Name 48 "sbuf2@count"
|
Name 49 "sbuf2@count"
|
||||||
Name 50 "sbuf"
|
Name 52 "sbuf"
|
||||||
Name 52 "param"
|
|
||||||
Name 54 "param"
|
Name 54 "param"
|
||||||
Name 55 "param"
|
Name 55 "param"
|
||||||
Name 61 "pos"
|
Name 57 "param"
|
||||||
Name 63 "pos"
|
Name 58 "param"
|
||||||
Name 66 "@entryPointOutput"
|
Name 59 "param"
|
||||||
Name 67 "param"
|
Name 60 "param"
|
||||||
Name 70 "sbuf2@count"
|
Name 66 "pos"
|
||||||
MemberName 70(sbuf2@count) 0 "@count"
|
Name 68 "pos"
|
||||||
Name 72 "sbuf2@count"
|
Name 71 "@entryPointOutput"
|
||||||
Name 75 "sbuf3"
|
Name 72 "param"
|
||||||
MemberName 75(sbuf3) 0 "@data"
|
Name 75 "sbuf2@count"
|
||||||
Name 77 "sbuf3"
|
MemberName 75(sbuf2@count) 0 "@count"
|
||||||
|
Name 77 "sbuf2@count"
|
||||||
|
Name 80 "sbuf3"
|
||||||
|
MemberName 80(sbuf3) 0 "@data"
|
||||||
|
Name 82 "sbuf3"
|
||||||
Decorate 8 ArrayStride 16
|
Decorate 8 ArrayStride 16
|
||||||
MemberDecorate 9 0 NonWritable
|
MemberDecorate 9 0 NonWritable
|
||||||
MemberDecorate 9 0 Offset 0
|
MemberDecorate 9 0 Offset 0
|
||||||
@ -190,72 +193,74 @@ gl_FragCoord origin is upper left
|
|||||||
Decorate 18 BufferBlock
|
Decorate 18 BufferBlock
|
||||||
Decorate 21 BufferBlock
|
Decorate 21 BufferBlock
|
||||||
Decorate 47(sbuf2) DescriptorSet 0
|
Decorate 47(sbuf2) DescriptorSet 0
|
||||||
Decorate 48(sbuf2@count) DescriptorSet 0
|
Decorate 49(sbuf2@count) DescriptorSet 0
|
||||||
Decorate 50(sbuf) DescriptorSet 0
|
Decorate 52(sbuf) DescriptorSet 0
|
||||||
Decorate 50(sbuf) Binding 10
|
Decorate 52(sbuf) Binding 10
|
||||||
Decorate 63(pos) Flat
|
Decorate 68(pos) Flat
|
||||||
Decorate 63(pos) Location 0
|
Decorate 68(pos) Location 0
|
||||||
Decorate 66(@entryPointOutput) Location 0
|
Decorate 71(@entryPointOutput) Location 0
|
||||||
MemberDecorate 70(sbuf2@count) 0 Offset 0
|
MemberDecorate 75(sbuf2@count) 0 Offset 0
|
||||||
Decorate 70(sbuf2@count) BufferBlock
|
Decorate 75(sbuf2@count) BufferBlock
|
||||||
Decorate 72(sbuf2@count) DescriptorSet 0
|
Decorate 77(sbuf2@count) DescriptorSet 0
|
||||||
Decorate 74 ArrayStride 16
|
Decorate 79 ArrayStride 16
|
||||||
MemberDecorate 75(sbuf3) 0 NonWritable
|
MemberDecorate 80(sbuf3) 0 NonWritable
|
||||||
MemberDecorate 75(sbuf3) 0 Offset 0
|
MemberDecorate 80(sbuf3) 0 Offset 0
|
||||||
Decorate 75(sbuf3) BufferBlock
|
Decorate 80(sbuf3) BufferBlock
|
||||||
Decorate 77(sbuf3) DescriptorSet 0
|
Decorate 82(sbuf3) DescriptorSet 0
|
||||||
Decorate 77(sbuf3) Binding 12
|
Decorate 82(sbuf3) Binding 12
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 0
|
6: TypeInt 32 0
|
||||||
7: TypeVector 6(int) 4
|
7: TypeVector 6(int) 4
|
||||||
8: TypeRuntimeArray 7(ivec4)
|
8: TypeRuntimeArray 7(ivec4)
|
||||||
9: TypeStruct 8
|
9: TypeStruct 8
|
||||||
10: TypePointer Uniform 9(struct)
|
10: TypePointer Function 9(struct)
|
||||||
11: TypePointer Function 6(int)
|
11: TypePointer Function 6(int)
|
||||||
12: TypeFunction 7(ivec4) 10(ptr) 11(ptr)
|
12: TypeFunction 7(ivec4) 10(ptr) 11(ptr)
|
||||||
17: TypeRuntimeArray 7(ivec4)
|
17: TypeRuntimeArray 7(ivec4)
|
||||||
18: TypeStruct 17
|
18: TypeStruct 17
|
||||||
19: TypePointer Uniform 18(struct)
|
19: TypePointer Function 18(struct)
|
||||||
20: TypeInt 32 1
|
20: TypeInt 32 1
|
||||||
21: TypeStruct 20(int)
|
21: TypeStruct 20(int)
|
||||||
22: TypePointer Uniform 21(struct)
|
22: TypePointer Function 21(struct)
|
||||||
23: TypePointer Function 7(ivec4)
|
23: TypePointer Function 7(ivec4)
|
||||||
24: TypeFunction 2 19(ptr) 22(ptr) 11(ptr) 23(ptr)
|
24: TypeFunction 2 19(ptr) 22(ptr) 11(ptr) 23(ptr)
|
||||||
31: TypeFloat 32
|
31: TypeFloat 32
|
||||||
32: TypeVector 31(float) 4
|
32: TypeVector 31(float) 4
|
||||||
33: TypeFunction 32(fvec4) 11(ptr)
|
33: TypeFunction 32(fvec4) 11(ptr)
|
||||||
37: 20(int) Constant 0
|
37: 20(int) Constant 0
|
||||||
39: TypePointer Uniform 7(ivec4)
|
46: TypePointer Uniform 18(struct)
|
||||||
47(sbuf2): 19(ptr) Variable Uniform
|
47(sbuf2): 46(ptr) Variable Uniform
|
||||||
48(sbuf2@count): 22(ptr) Variable Uniform
|
48: TypePointer Uniform 21(struct)
|
||||||
49: 6(int) Constant 2
|
49(sbuf2@count): 48(ptr) Variable Uniform
|
||||||
50(sbuf): 10(ptr) Variable Uniform
|
50: 6(int) Constant 2
|
||||||
51: 6(int) Constant 3
|
51: TypePointer Uniform 9(struct)
|
||||||
57: 31(float) Constant 0
|
52(sbuf): 51(ptr) Variable Uniform
|
||||||
58: 32(fvec4) ConstantComposite 57 57 57 57
|
53: 6(int) Constant 3
|
||||||
62: TypePointer Input 6(int)
|
62: 31(float) Constant 0
|
||||||
63(pos): 62(ptr) Variable Input
|
63: 32(fvec4) ConstantComposite 62 62 62 62
|
||||||
65: TypePointer Output 32(fvec4)
|
67: TypePointer Input 6(int)
|
||||||
66(@entryPointOutput): 65(ptr) Variable Output
|
68(pos): 67(ptr) Variable Input
|
||||||
70(sbuf2@count): TypeStruct 20(int)
|
70: TypePointer Output 32(fvec4)
|
||||||
71: TypePointer Uniform 70(sbuf2@count)
|
71(@entryPointOutput): 70(ptr) Variable Output
|
||||||
72(sbuf2@count): 71(ptr) Variable Uniform
|
75(sbuf2@count): TypeStruct 20(int)
|
||||||
73: TypeVector 6(int) 3
|
76: TypePointer Uniform 75(sbuf2@count)
|
||||||
74: TypeRuntimeArray 73(ivec3)
|
77(sbuf2@count): 76(ptr) Variable Uniform
|
||||||
75(sbuf3): TypeStruct 74
|
78: TypeVector 6(int) 3
|
||||||
76: TypePointer Uniform 75(sbuf3)
|
79: TypeRuntimeArray 78(ivec3)
|
||||||
77(sbuf3): 76(ptr) Variable Uniform
|
80(sbuf3): TypeStruct 79
|
||||||
|
81: TypePointer Uniform 80(sbuf3)
|
||||||
|
82(sbuf3): 81(ptr) Variable Uniform
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
61(pos): 11(ptr) Variable Function
|
66(pos): 11(ptr) Variable Function
|
||||||
67(param): 11(ptr) Variable Function
|
72(param): 11(ptr) Variable Function
|
||||||
64: 6(int) Load 63(pos)
|
69: 6(int) Load 68(pos)
|
||||||
Store 61(pos) 64
|
Store 66(pos) 69
|
||||||
68: 6(int) Load 61(pos)
|
73: 6(int) Load 66(pos)
|
||||||
Store 67(param) 68
|
Store 72(param) 73
|
||||||
69: 32(fvec4) FunctionCall 35(@main(u1;) 67(param)
|
74: 32(fvec4) FunctionCall 35(@main(u1;) 72(param)
|
||||||
Store 66(@entryPointOutput) 69
|
Store 71(@entryPointOutput) 74
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
15(get(block--vu4[0]1;u1;): 7(ivec4) Function None 12
|
15(get(block--vu4[0]1;u1;): 7(ivec4) Function None 12
|
||||||
@ -263,9 +268,9 @@ gl_FragCoord origin is upper left
|
|||||||
14(bufferOffset): 11(ptr) FunctionParameter
|
14(bufferOffset): 11(ptr) FunctionParameter
|
||||||
16: Label
|
16: Label
|
||||||
38: 6(int) Load 14(bufferOffset)
|
38: 6(int) Load 14(bufferOffset)
|
||||||
40: 39(ptr) AccessChain 13(sb) 37 38
|
39: 23(ptr) AccessChain 13(sb) 37 38
|
||||||
41: 7(ivec4) Load 40
|
40: 7(ivec4) Load 39
|
||||||
ReturnValue 41
|
ReturnValue 40
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
29(set(block--vu4[0]1;u1;vu4;): 2 Function None 24
|
29(set(block--vu4[0]1;u1;vu4;): 2 Function None 24
|
||||||
25(sb): 19(ptr) FunctionParameter
|
25(sb): 19(ptr) FunctionParameter
|
||||||
@ -273,22 +278,25 @@ gl_FragCoord origin is upper left
|
|||||||
27(bufferOffset): 11(ptr) FunctionParameter
|
27(bufferOffset): 11(ptr) FunctionParameter
|
||||||
28(data): 23(ptr) FunctionParameter
|
28(data): 23(ptr) FunctionParameter
|
||||||
30: Label
|
30: Label
|
||||||
44: 6(int) Load 27(bufferOffset)
|
43: 6(int) Load 27(bufferOffset)
|
||||||
45: 7(ivec4) Load 28(data)
|
44: 7(ivec4) Load 28(data)
|
||||||
46: 39(ptr) AccessChain 25(sb) 37 44
|
45: 23(ptr) AccessChain 25(sb) 37 43
|
||||||
Store 46 45
|
Store 45 44
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
35(@main(u1;): 32(fvec4) Function None 33
|
35(@main(u1;): 32(fvec4) Function None 33
|
||||||
34(pos): 11(ptr) FunctionParameter
|
34(pos): 11(ptr) FunctionParameter
|
||||||
36: Label
|
36: Label
|
||||||
52(param): 11(ptr) Variable Function
|
54(param): 10(ptr) Variable Function
|
||||||
54(param): 11(ptr) Variable Function
|
55(param): 11(ptr) Variable Function
|
||||||
55(param): 23(ptr) Variable Function
|
57(param): 19(ptr) Variable Function
|
||||||
Store 52(param) 51
|
58(param): 22(ptr) Variable Function
|
||||||
53: 7(ivec4) FunctionCall 15(get(block--vu4[0]1;u1;) 50(sbuf) 52(param)
|
59(param): 11(ptr) Variable Function
|
||||||
Store 54(param) 49
|
60(param): 23(ptr) Variable Function
|
||||||
Store 55(param) 53
|
Store 55(param) 53
|
||||||
56: 2 FunctionCall 29(set(block--vu4[0]1;u1;vu4;) 47(sbuf2) 48(sbuf2@count) 54(param) 55(param)
|
56: 7(ivec4) FunctionCall 15(get(block--vu4[0]1;u1;) 54(param) 55(param)
|
||||||
ReturnValue 58
|
Store 59(param) 50
|
||||||
|
Store 60(param) 56
|
||||||
|
61: 2 FunctionCall 29(set(block--vu4[0]1;u1;vu4;) 57(param) 58(param) 59(param) 60(param)
|
||||||
|
ReturnValue 63
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -135,14 +135,14 @@ local_size = (256, 1, 1)
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 61
|
// Id's are bound by 62
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
Capability ImageBuffer
|
Capability ImageBuffer
|
||||||
Capability StorageImageExtendedFormats
|
Capability StorageImageExtendedFormats
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint GLCompute 4 "main" 56
|
EntryPoint GLCompute 4 "main" 57
|
||||||
ExecutionMode 4 LocalSize 256 1 1
|
ExecutionMode 4 LocalSize 256 1 1
|
||||||
Source HLSL 500
|
Source HLSL 500
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
@ -155,13 +155,14 @@ local_size = (256, 1, 1)
|
|||||||
Name 18 "dispatchId"
|
Name 18 "dispatchId"
|
||||||
Name 22 "result"
|
Name 22 "result"
|
||||||
Name 25 "byteAddrTemp"
|
Name 25 "byteAddrTemp"
|
||||||
Name 43 "result"
|
Name 42 "result"
|
||||||
Name 44 "g_input"
|
Name 44 "g_input"
|
||||||
Name 45 "param"
|
Name 45 "param"
|
||||||
Name 50 "g_output"
|
Name 47 "param"
|
||||||
Name 54 "dispatchId"
|
Name 51 "g_output"
|
||||||
Name 56 "dispatchId"
|
Name 55 "dispatchId"
|
||||||
Name 58 "param"
|
Name 57 "dispatchId"
|
||||||
|
Name 59 "param"
|
||||||
Decorate 8 ArrayStride 4
|
Decorate 8 ArrayStride 4
|
||||||
MemberDecorate 9 0 NonWritable
|
MemberDecorate 9 0 NonWritable
|
||||||
MemberDecorate 9 0 Offset 0
|
MemberDecorate 9 0 Offset 0
|
||||||
@ -169,16 +170,16 @@ local_size = (256, 1, 1)
|
|||||||
Decorate 14(buffer) NonWritable
|
Decorate 14(buffer) NonWritable
|
||||||
Decorate 44(g_input) DescriptorSet 0
|
Decorate 44(g_input) DescriptorSet 0
|
||||||
Decorate 44(g_input) Binding 0
|
Decorate 44(g_input) Binding 0
|
||||||
Decorate 50(g_output) DescriptorSet 0
|
Decorate 51(g_output) DescriptorSet 0
|
||||||
Decorate 50(g_output) Binding 1
|
Decorate 51(g_output) Binding 1
|
||||||
Decorate 56(dispatchId) BuiltIn GlobalInvocationId
|
Decorate 57(dispatchId) BuiltIn GlobalInvocationId
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 0
|
6: TypeInt 32 0
|
||||||
7: TypePointer Function 6(int)
|
7: TypePointer Function 6(int)
|
||||||
8: TypeRuntimeArray 6(int)
|
8: TypeRuntimeArray 6(int)
|
||||||
9: TypeStruct 8
|
9: TypeStruct 8
|
||||||
10: TypePointer Uniform 9(struct)
|
10: TypePointer Function 9(struct)
|
||||||
11: TypeVector 6(int) 2
|
11: TypeVector 6(int) 2
|
||||||
12: TypeFunction 11(ivec2) 7(ptr) 10(ptr)
|
12: TypeFunction 11(ivec2) 7(ptr) 10(ptr)
|
||||||
17: TypeFunction 2 7(ptr)
|
17: TypeFunction 2 7(ptr)
|
||||||
@ -187,23 +188,23 @@ local_size = (256, 1, 1)
|
|||||||
24: TypePointer Function 23(int)
|
24: TypePointer Function 23(int)
|
||||||
27: 23(int) Constant 2
|
27: 23(int) Constant 2
|
||||||
29: 23(int) Constant 0
|
29: 23(int) Constant 0
|
||||||
31: TypePointer Uniform 6(int)
|
34: 23(int) Constant 1
|
||||||
35: 23(int) Constant 1
|
43: TypePointer Uniform 9(struct)
|
||||||
44(g_input): 10(ptr) Variable Uniform
|
44(g_input): 43(ptr) Variable Uniform
|
||||||
48: TypeImage 6(int) Buffer nonsampled format:Rg32ui
|
49: TypeImage 6(int) Buffer nonsampled format:Rg32ui
|
||||||
49: TypePointer UniformConstant 48
|
50: TypePointer UniformConstant 49
|
||||||
50(g_output): 49(ptr) Variable UniformConstant
|
51(g_output): 50(ptr) Variable UniformConstant
|
||||||
55: TypePointer Input 6(int)
|
56: TypePointer Input 6(int)
|
||||||
56(dispatchId): 55(ptr) Variable Input
|
57(dispatchId): 56(ptr) Variable Input
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
54(dispatchId): 7(ptr) Variable Function
|
55(dispatchId): 7(ptr) Variable Function
|
||||||
58(param): 7(ptr) Variable Function
|
59(param): 7(ptr) Variable Function
|
||||||
57: 6(int) Load 56(dispatchId)
|
58: 6(int) Load 57(dispatchId)
|
||||||
Store 54(dispatchId) 57
|
Store 55(dispatchId) 58
|
||||||
59: 6(int) Load 54(dispatchId)
|
60: 6(int) Load 55(dispatchId)
|
||||||
Store 58(param) 59
|
Store 59(param) 60
|
||||||
60: 2 FunctionCall 19(@main(u1;) 58(param)
|
61: 2 FunctionCall 19(@main(u1;) 59(param)
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
15(testLoad(u1;block--u1[0]1;): 11(ivec2) Function None 12
|
15(testLoad(u1;block--u1[0]1;): 11(ivec2) Function None 12
|
||||||
@ -216,29 +217,30 @@ local_size = (256, 1, 1)
|
|||||||
28: 23(int) ShiftRightLogical 26 27
|
28: 23(int) ShiftRightLogical 26 27
|
||||||
Store 25(byteAddrTemp) 28
|
Store 25(byteAddrTemp) 28
|
||||||
30: 23(int) Load 25(byteAddrTemp)
|
30: 23(int) Load 25(byteAddrTemp)
|
||||||
32: 31(ptr) AccessChain 14(buffer) 29 30
|
31: 7(ptr) AccessChain 14(buffer) 29 30
|
||||||
33: 6(int) Load 32
|
32: 6(int) Load 31
|
||||||
34: 23(int) Load 25(byteAddrTemp)
|
33: 23(int) Load 25(byteAddrTemp)
|
||||||
36: 23(int) IAdd 34 35
|
35: 23(int) IAdd 33 34
|
||||||
37: 31(ptr) AccessChain 14(buffer) 29 36
|
36: 7(ptr) AccessChain 14(buffer) 29 35
|
||||||
38: 6(int) Load 37
|
37: 6(int) Load 36
|
||||||
39: 11(ivec2) CompositeConstruct 33 38
|
38: 11(ivec2) CompositeConstruct 32 37
|
||||||
Store 22(result) 39
|
Store 22(result) 38
|
||||||
40: 11(ivec2) Load 22(result)
|
39: 11(ivec2) Load 22(result)
|
||||||
ReturnValue 40
|
ReturnValue 39
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
19(@main(u1;): 2 Function None 17
|
19(@main(u1;): 2 Function None 17
|
||||||
18(dispatchId): 7(ptr) FunctionParameter
|
18(dispatchId): 7(ptr) FunctionParameter
|
||||||
20: Label
|
20: Label
|
||||||
43(result): 21(ptr) Variable Function
|
42(result): 21(ptr) Variable Function
|
||||||
45(param): 7(ptr) Variable Function
|
45(param): 7(ptr) Variable Function
|
||||||
|
47(param): 10(ptr) Variable Function
|
||||||
46: 6(int) Load 18(dispatchId)
|
46: 6(int) Load 18(dispatchId)
|
||||||
Store 45(param) 46
|
Store 45(param) 46
|
||||||
47: 11(ivec2) FunctionCall 15(testLoad(u1;block--u1[0]1;) 45(param) 44(g_input)
|
48: 11(ivec2) FunctionCall 15(testLoad(u1;block--u1[0]1;) 45(param) 47(param)
|
||||||
Store 43(result) 47
|
Store 42(result) 48
|
||||||
51: 48 Load 50(g_output)
|
52: 49 Load 51(g_output)
|
||||||
52: 6(int) Load 18(dispatchId)
|
53: 6(int) Load 18(dispatchId)
|
||||||
53: 11(ivec2) Load 43(result)
|
54: 11(ivec2) Load 42(result)
|
||||||
ImageWrite 51 52 53
|
ImageWrite 52 53 54
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -839,12 +839,12 @@ gl_FragCoord origin is upper left
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 233
|
// Id's are bound by 240
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4 "main" 231
|
EntryPoint Fragment 4 "main" 238
|
||||||
ExecutionMode 4 OriginUpperLeft
|
ExecutionMode 4 OriginUpperLeft
|
||||||
Source HLSL 500
|
Source HLSL 500
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
@ -867,52 +867,55 @@ gl_FragCoord origin is upper left
|
|||||||
Name 71 "@sampleStructTemp"
|
Name 71 "@sampleStructTemp"
|
||||||
Name 87 "s1"
|
Name 87 "s1"
|
||||||
Name 88 "@sampleResultShadow"
|
Name 88 "@sampleResultShadow"
|
||||||
Name 89 "g_tTex2s1"
|
Name 90 "g_tTex2s1"
|
||||||
Name 97 "@sampleStructTemp"
|
Name 98 "@sampleStructTemp"
|
||||||
Name 111 "s2"
|
Name 112 "s2"
|
||||||
Name 112 "@sampleResultShadow"
|
Name 113 "@sampleResultShadow"
|
||||||
Name 113 "g_tTex2s2"
|
Name 114 "g_tTex2s2"
|
||||||
Name 121 "@sampleStructTemp"
|
Name 122 "@sampleStructTemp"
|
||||||
Name 135 "s3_t"
|
Name 136 "s3_t"
|
||||||
MemberName 135(s3_t) 0 "c0"
|
MemberName 136(s3_t) 0 "c0"
|
||||||
MemberName 135(s3_t) 1 "c1"
|
MemberName 136(s3_t) 1 "c1"
|
||||||
Name 137 "s3"
|
Name 138 "s3"
|
||||||
Name 138 "@sampleResultShadow"
|
Name 139 "@sampleResultShadow"
|
||||||
Name 139 "g_tTex2s3"
|
Name 140 "g_tTex2s3"
|
||||||
Name 147 "@sampleStructTemp"
|
Name 148 "@sampleStructTemp"
|
||||||
Name 159 "s4_t"
|
Name 160 "s4_t"
|
||||||
MemberName 159(s4_t) 0 "c0"
|
MemberName 160(s4_t) 0 "c0"
|
||||||
MemberName 159(s4_t) 1 "c1"
|
MemberName 160(s4_t) 1 "c1"
|
||||||
MemberName 159(s4_t) 2 "c2"
|
MemberName 160(s4_t) 2 "c2"
|
||||||
Name 161 "s4"
|
Name 162 "s4"
|
||||||
Name 164 "@sampleResultShadow"
|
Name 165 "@sampleResultShadow"
|
||||||
Name 167 "g_tTex2s4"
|
Name 168 "g_tTex2s4"
|
||||||
Name 176 "@sampleStructTemp"
|
Name 177 "@sampleStructTemp"
|
||||||
Name 193 "s5_t"
|
Name 194 "s5_t"
|
||||||
MemberName 193(s5_t) 0 "c0"
|
MemberName 194(s5_t) 0 "c0"
|
||||||
MemberName 193(s5_t) 1 "c1"
|
MemberName 194(s5_t) 1 "c1"
|
||||||
Name 195 "s5"
|
Name 196 "s5"
|
||||||
Name 198 "@sampleResultShadow"
|
Name 199 "@sampleResultShadow"
|
||||||
Name 201 "g_tTex2s5"
|
Name 202 "g_tTex2s5"
|
||||||
Name 210 "@sampleStructTemp"
|
Name 211 "@sampleStructTemp"
|
||||||
Name 219 "r0"
|
Name 220 "r0"
|
||||||
Name 221 "r1"
|
Name 221 "param"
|
||||||
Name 223 "r2"
|
Name 224 "r1"
|
||||||
Name 224 "g_tTex2s1a"
|
Name 225 "param"
|
||||||
Name 231 "@entryPointOutput"
|
Name 228 "r2"
|
||||||
|
Name 229 "g_tTex2s1a"
|
||||||
|
Name 230 "param"
|
||||||
|
Name 238 "@entryPointOutput"
|
||||||
Decorate 30(g_sSamp) DescriptorSet 0
|
Decorate 30(g_sSamp) DescriptorSet 0
|
||||||
Decorate 89(g_tTex2s1) DescriptorSet 0
|
Decorate 90(g_tTex2s1) DescriptorSet 0
|
||||||
Decorate 113(g_tTex2s2) DescriptorSet 0
|
Decorate 114(g_tTex2s2) DescriptorSet 0
|
||||||
Decorate 139(g_tTex2s3) DescriptorSet 0
|
Decorate 140(g_tTex2s3) DescriptorSet 0
|
||||||
Decorate 167(g_tTex2s4) DescriptorSet 0
|
Decorate 168(g_tTex2s4) DescriptorSet 0
|
||||||
Decorate 201(g_tTex2s5) DescriptorSet 0
|
Decorate 202(g_tTex2s5) DescriptorSet 0
|
||||||
Decorate 224(g_tTex2s1a) DescriptorSet 0
|
Decorate 229(g_tTex2s1a) DescriptorSet 0
|
||||||
Decorate 231(@entryPointOutput) Location 0
|
Decorate 238(@entryPointOutput) Location 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
7: TypeImage 6(float) 2D sampled format:Unknown
|
7: TypeImage 6(float) 2D sampled format:Unknown
|
||||||
8: TypePointer UniformConstant 7
|
8: TypePointer Function 7
|
||||||
9: TypeVector 6(float) 2
|
9: TypeVector 6(float) 2
|
||||||
10(s1_t): TypeStruct 6(float) 9(fvec2) 6(float)
|
10(s1_t): TypeStruct 6(float) 9(fvec2) 6(float)
|
||||||
11: TypeFunction 10(s1_t) 8(ptr)
|
11: TypeFunction 10(s1_t) 8(ptr)
|
||||||
@ -941,54 +944,55 @@ gl_FragCoord origin is upper left
|
|||||||
57: 40(int) Constant 2
|
57: 40(int) Constant 2
|
||||||
58: 42(int) Constant 3
|
58: 42(int) Constant 3
|
||||||
70: TypePointer Function 16(s2_t)
|
70: TypePointer Function 16(s2_t)
|
||||||
89(g_tTex2s1): 8(ptr) Variable UniformConstant
|
89: TypePointer UniformConstant 7
|
||||||
93: 6(float) Constant 1036831949
|
90(g_tTex2s1): 89(ptr) Variable UniformConstant
|
||||||
94: 6(float) Constant 1038174126
|
94: 6(float) Constant 1036831949
|
||||||
95: 9(fvec2) ConstantComposite 93 94
|
95: 6(float) Constant 1038174126
|
||||||
113(g_tTex2s2): 8(ptr) Variable UniformConstant
|
96: 9(fvec2) ConstantComposite 94 95
|
||||||
117: 6(float) Constant 1045220557
|
114(g_tTex2s2): 89(ptr) Variable UniformConstant
|
||||||
118: 6(float) Constant 1045891645
|
118: 6(float) Constant 1045220557
|
||||||
119: 9(fvec2) ConstantComposite 117 118
|
119: 6(float) Constant 1045891645
|
||||||
135(s3_t): TypeStruct 9(fvec2) 6(float)
|
120: 9(fvec2) ConstantComposite 118 119
|
||||||
136: TypePointer Function 135(s3_t)
|
136(s3_t): TypeStruct 9(fvec2) 6(float)
|
||||||
139(g_tTex2s3): 8(ptr) Variable UniformConstant
|
137: TypePointer Function 136(s3_t)
|
||||||
143: 6(float) Constant 1050253722
|
140(g_tTex2s3): 89(ptr) Variable UniformConstant
|
||||||
144: 6(float) Constant 1050589266
|
144: 6(float) Constant 1050253722
|
||||||
145: 9(fvec2) ConstantComposite 143 144
|
145: 6(float) Constant 1050589266
|
||||||
158: TypeVector 40(int) 2
|
146: 9(fvec2) ConstantComposite 144 145
|
||||||
159(s4_t): TypeStruct 40(int) 158(ivec2) 40(int)
|
159: TypeVector 40(int) 2
|
||||||
160: TypePointer Function 159(s4_t)
|
160(s4_t): TypeStruct 40(int) 159(ivec2) 40(int)
|
||||||
162: TypeVector 40(int) 4
|
161: TypePointer Function 160(s4_t)
|
||||||
163: TypePointer Function 162(ivec4)
|
163: TypeVector 40(int) 4
|
||||||
165: TypeImage 40(int) 2D sampled format:Unknown
|
164: TypePointer Function 163(ivec4)
|
||||||
166: TypePointer UniformConstant 165
|
166: TypeImage 40(int) 2D sampled format:Unknown
|
||||||
167(g_tTex2s4): 166(ptr) Variable UniformConstant
|
167: TypePointer UniformConstant 166
|
||||||
170: TypeSampledImage 165
|
168(g_tTex2s4): 167(ptr) Variable UniformConstant
|
||||||
172: 6(float) Constant 1053609165
|
171: TypeSampledImage 166
|
||||||
173: 6(float) Constant 1053944709
|
173: 6(float) Constant 1053609165
|
||||||
174: 9(fvec2) ConstantComposite 172 173
|
174: 6(float) Constant 1053944709
|
||||||
177: TypePointer Function 40(int)
|
175: 9(fvec2) ConstantComposite 173 174
|
||||||
193(s5_t): TypeStruct 42(int) 42(int)
|
178: TypePointer Function 40(int)
|
||||||
194: TypePointer Function 193(s5_t)
|
194(s5_t): TypeStruct 42(int) 42(int)
|
||||||
196: TypeVector 42(int) 4
|
195: TypePointer Function 194(s5_t)
|
||||||
197: TypePointer Function 196(ivec4)
|
197: TypeVector 42(int) 4
|
||||||
199: TypeImage 42(int) 2D sampled format:Unknown
|
198: TypePointer Function 197(ivec4)
|
||||||
200: TypePointer UniformConstant 199
|
200: TypeImage 42(int) 2D sampled format:Unknown
|
||||||
201(g_tTex2s5): 200(ptr) Variable UniformConstant
|
201: TypePointer UniformConstant 200
|
||||||
204: TypeSampledImage 199
|
202(g_tTex2s5): 201(ptr) Variable UniformConstant
|
||||||
206: 6(float) Constant 1056964608
|
205: TypeSampledImage 200
|
||||||
207: 6(float) Constant 1057132380
|
207: 6(float) Constant 1056964608
|
||||||
208: 9(fvec2) ConstantComposite 206 207
|
208: 6(float) Constant 1057132380
|
||||||
211: TypePointer Function 42(int)
|
209: 9(fvec2) ConstantComposite 207 208
|
||||||
224(g_tTex2s1a): 8(ptr) Variable UniformConstant
|
212: TypePointer Function 42(int)
|
||||||
226: 6(float) Constant 0
|
229(g_tTex2s1a): 89(ptr) Variable UniformConstant
|
||||||
227: 21(fvec4) ConstantComposite 226 226 226 226
|
233: 6(float) Constant 0
|
||||||
230: TypePointer Output 21(fvec4)
|
234: 21(fvec4) ConstantComposite 233 233 233 233
|
||||||
231(@entryPointOutput): 230(ptr) Variable Output
|
237: TypePointer Output 21(fvec4)
|
||||||
|
238(@entryPointOutput): 237(ptr) Variable Output
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
232: 21(fvec4) FunctionCall 23(@main()
|
239: 21(fvec4) FunctionCall 23(@main()
|
||||||
Store 231(@entryPointOutput) 232
|
Store 238(@entryPointOutput) 239
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
13(fn1(t2-tx-struct0-1;): 10(s1_t) Function None 11
|
13(fn1(t2-tx-struct0-1;): 10(s1_t) Function None 11
|
||||||
@ -1053,132 +1057,141 @@ gl_FragCoord origin is upper left
|
|||||||
24: Label
|
24: Label
|
||||||
87(s1): 38(ptr) Variable Function
|
87(s1): 38(ptr) Variable Function
|
||||||
88(@sampleResultShadow): 25(ptr) Variable Function
|
88(@sampleResultShadow): 25(ptr) Variable Function
|
||||||
97(@sampleStructTemp): 38(ptr) Variable Function
|
98(@sampleStructTemp): 38(ptr) Variable Function
|
||||||
111(s2): 70(ptr) Variable Function
|
112(s2): 70(ptr) Variable Function
|
||||||
112(@sampleResultShadow): 25(ptr) Variable Function
|
113(@sampleResultShadow): 25(ptr) Variable Function
|
||||||
121(@sampleStructTemp): 70(ptr) Variable Function
|
122(@sampleStructTemp): 70(ptr) Variable Function
|
||||||
137(s3): 136(ptr) Variable Function
|
138(s3): 137(ptr) Variable Function
|
||||||
138(@sampleResultShadow): 25(ptr) Variable Function
|
139(@sampleResultShadow): 25(ptr) Variable Function
|
||||||
147(@sampleStructTemp): 136(ptr) Variable Function
|
148(@sampleStructTemp): 137(ptr) Variable Function
|
||||||
161(s4): 160(ptr) Variable Function
|
162(s4): 161(ptr) Variable Function
|
||||||
164(@sampleResultShadow): 163(ptr) Variable Function
|
165(@sampleResultShadow): 164(ptr) Variable Function
|
||||||
176(@sampleStructTemp): 160(ptr) Variable Function
|
177(@sampleStructTemp): 161(ptr) Variable Function
|
||||||
195(s5): 194(ptr) Variable Function
|
196(s5): 195(ptr) Variable Function
|
||||||
198(@sampleResultShadow): 197(ptr) Variable Function
|
199(@sampleResultShadow): 198(ptr) Variable Function
|
||||||
210(@sampleStructTemp): 194(ptr) Variable Function
|
211(@sampleStructTemp): 195(ptr) Variable Function
|
||||||
219(r0): 38(ptr) Variable Function
|
220(r0): 38(ptr) Variable Function
|
||||||
221(r1): 70(ptr) Variable Function
|
221(param): 8(ptr) Variable Function
|
||||||
223(r2): 38(ptr) Variable Function
|
224(r1): 70(ptr) Variable Function
|
||||||
90: 7 Load 89(g_tTex2s1)
|
225(param): 8(ptr) Variable Function
|
||||||
91: 28 Load 30(g_sSamp)
|
228(r2): 38(ptr) Variable Function
|
||||||
92: 32 SampledImage 90 91
|
230(param): 8(ptr) Variable Function
|
||||||
96: 21(fvec4) ImageSampleImplicitLod 92 95
|
91: 7 Load 90(g_tTex2s1)
|
||||||
Store 88(@sampleResultShadow) 96
|
92: 28 Load 30(g_sSamp)
|
||||||
98: 44(ptr) AccessChain 88(@sampleResultShadow) 43
|
93: 32 SampledImage 91 92
|
||||||
99: 6(float) Load 98
|
97: 21(fvec4) ImageSampleImplicitLod 93 96
|
||||||
100: 44(ptr) AccessChain 97(@sampleStructTemp) 41
|
Store 88(@sampleResultShadow) 97
|
||||||
Store 100 99
|
99: 44(ptr) AccessChain 88(@sampleResultShadow) 43
|
||||||
101: 44(ptr) AccessChain 88(@sampleResultShadow) 49
|
100: 6(float) Load 99
|
||||||
102: 6(float) Load 101
|
101: 44(ptr) AccessChain 98(@sampleStructTemp) 41
|
||||||
103: 44(ptr) AccessChain 97(@sampleStructTemp) 48 43
|
Store 101 100
|
||||||
Store 103 102
|
102: 44(ptr) AccessChain 88(@sampleResultShadow) 49
|
||||||
104: 44(ptr) AccessChain 88(@sampleResultShadow) 53
|
103: 6(float) Load 102
|
||||||
105: 6(float) Load 104
|
104: 44(ptr) AccessChain 98(@sampleStructTemp) 48 43
|
||||||
106: 44(ptr) AccessChain 97(@sampleStructTemp) 48 49
|
Store 104 103
|
||||||
Store 106 105
|
105: 44(ptr) AccessChain 88(@sampleResultShadow) 53
|
||||||
107: 44(ptr) AccessChain 88(@sampleResultShadow) 58
|
106: 6(float) Load 105
|
||||||
108: 6(float) Load 107
|
107: 44(ptr) AccessChain 98(@sampleStructTemp) 48 49
|
||||||
109: 44(ptr) AccessChain 97(@sampleStructTemp) 57
|
Store 107 106
|
||||||
Store 109 108
|
108: 44(ptr) AccessChain 88(@sampleResultShadow) 58
|
||||||
110: 10(s1_t) Load 97(@sampleStructTemp)
|
109: 6(float) Load 108
|
||||||
Store 87(s1) 110
|
110: 44(ptr) AccessChain 98(@sampleStructTemp) 57
|
||||||
114: 7 Load 113(g_tTex2s2)
|
Store 110 109
|
||||||
115: 28 Load 30(g_sSamp)
|
111: 10(s1_t) Load 98(@sampleStructTemp)
|
||||||
116: 32 SampledImage 114 115
|
Store 87(s1) 111
|
||||||
120: 21(fvec4) ImageSampleImplicitLod 116 119
|
115: 7 Load 114(g_tTex2s2)
|
||||||
Store 112(@sampleResultShadow) 120
|
116: 28 Load 30(g_sSamp)
|
||||||
122: 44(ptr) AccessChain 112(@sampleResultShadow) 43
|
117: 32 SampledImage 115 116
|
||||||
123: 6(float) Load 122
|
121: 21(fvec4) ImageSampleImplicitLod 117 120
|
||||||
124: 44(ptr) AccessChain 121(@sampleStructTemp) 41
|
Store 113(@sampleResultShadow) 121
|
||||||
Store 124 123
|
123: 44(ptr) AccessChain 113(@sampleResultShadow) 43
|
||||||
125: 44(ptr) AccessChain 112(@sampleResultShadow) 49
|
124: 6(float) Load 123
|
||||||
126: 6(float) Load 125
|
125: 44(ptr) AccessChain 122(@sampleStructTemp) 41
|
||||||
127: 44(ptr) AccessChain 121(@sampleStructTemp) 48 43
|
Store 125 124
|
||||||
Store 127 126
|
126: 44(ptr) AccessChain 113(@sampleResultShadow) 49
|
||||||
128: 44(ptr) AccessChain 112(@sampleResultShadow) 53
|
127: 6(float) Load 126
|
||||||
129: 6(float) Load 128
|
128: 44(ptr) AccessChain 122(@sampleStructTemp) 48 43
|
||||||
130: 44(ptr) AccessChain 121(@sampleStructTemp) 48 49
|
Store 128 127
|
||||||
Store 130 129
|
129: 44(ptr) AccessChain 113(@sampleResultShadow) 53
|
||||||
131: 44(ptr) AccessChain 112(@sampleResultShadow) 58
|
130: 6(float) Load 129
|
||||||
132: 6(float) Load 131
|
131: 44(ptr) AccessChain 122(@sampleStructTemp) 48 49
|
||||||
133: 44(ptr) AccessChain 121(@sampleStructTemp) 48 53
|
Store 131 130
|
||||||
Store 133 132
|
132: 44(ptr) AccessChain 113(@sampleResultShadow) 58
|
||||||
134: 16(s2_t) Load 121(@sampleStructTemp)
|
133: 6(float) Load 132
|
||||||
Store 111(s2) 134
|
134: 44(ptr) AccessChain 122(@sampleStructTemp) 48 53
|
||||||
140: 7 Load 139(g_tTex2s3)
|
Store 134 133
|
||||||
141: 28 Load 30(g_sSamp)
|
135: 16(s2_t) Load 122(@sampleStructTemp)
|
||||||
142: 32 SampledImage 140 141
|
Store 112(s2) 135
|
||||||
146: 21(fvec4) ImageSampleImplicitLod 142 145
|
141: 7 Load 140(g_tTex2s3)
|
||||||
Store 138(@sampleResultShadow) 146
|
142: 28 Load 30(g_sSamp)
|
||||||
148: 44(ptr) AccessChain 138(@sampleResultShadow) 43
|
143: 32 SampledImage 141 142
|
||||||
149: 6(float) Load 148
|
147: 21(fvec4) ImageSampleImplicitLod 143 146
|
||||||
150: 44(ptr) AccessChain 147(@sampleStructTemp) 41 43
|
Store 139(@sampleResultShadow) 147
|
||||||
Store 150 149
|
149: 44(ptr) AccessChain 139(@sampleResultShadow) 43
|
||||||
151: 44(ptr) AccessChain 138(@sampleResultShadow) 49
|
150: 6(float) Load 149
|
||||||
152: 6(float) Load 151
|
151: 44(ptr) AccessChain 148(@sampleStructTemp) 41 43
|
||||||
153: 44(ptr) AccessChain 147(@sampleStructTemp) 41 49
|
Store 151 150
|
||||||
Store 153 152
|
152: 44(ptr) AccessChain 139(@sampleResultShadow) 49
|
||||||
154: 44(ptr) AccessChain 138(@sampleResultShadow) 53
|
153: 6(float) Load 152
|
||||||
155: 6(float) Load 154
|
154: 44(ptr) AccessChain 148(@sampleStructTemp) 41 49
|
||||||
156: 44(ptr) AccessChain 147(@sampleStructTemp) 48
|
Store 154 153
|
||||||
Store 156 155
|
155: 44(ptr) AccessChain 139(@sampleResultShadow) 53
|
||||||
157: 135(s3_t) Load 147(@sampleStructTemp)
|
156: 6(float) Load 155
|
||||||
Store 137(s3) 157
|
157: 44(ptr) AccessChain 148(@sampleStructTemp) 48
|
||||||
168: 165 Load 167(g_tTex2s4)
|
Store 157 156
|
||||||
169: 28 Load 30(g_sSamp)
|
158: 136(s3_t) Load 148(@sampleStructTemp)
|
||||||
171: 170 SampledImage 168 169
|
Store 138(s3) 158
|
||||||
175: 162(ivec4) ImageSampleImplicitLod 171 174
|
169: 166 Load 168(g_tTex2s4)
|
||||||
Store 164(@sampleResultShadow) 175
|
170: 28 Load 30(g_sSamp)
|
||||||
178: 177(ptr) AccessChain 164(@sampleResultShadow) 43
|
172: 171 SampledImage 169 170
|
||||||
179: 40(int) Load 178
|
176: 163(ivec4) ImageSampleImplicitLod 172 175
|
||||||
180: 177(ptr) AccessChain 176(@sampleStructTemp) 41
|
Store 165(@sampleResultShadow) 176
|
||||||
Store 180 179
|
179: 178(ptr) AccessChain 165(@sampleResultShadow) 43
|
||||||
181: 177(ptr) AccessChain 164(@sampleResultShadow) 49
|
180: 40(int) Load 179
|
||||||
182: 40(int) Load 181
|
181: 178(ptr) AccessChain 177(@sampleStructTemp) 41
|
||||||
183: 6(float) ConvertSToF 182
|
Store 181 180
|
||||||
184: 177(ptr) AccessChain 176(@sampleStructTemp) 48 43
|
182: 178(ptr) AccessChain 165(@sampleResultShadow) 49
|
||||||
Store 184 183
|
183: 40(int) Load 182
|
||||||
185: 177(ptr) AccessChain 164(@sampleResultShadow) 53
|
184: 6(float) ConvertSToF 183
|
||||||
186: 40(int) Load 185
|
185: 178(ptr) AccessChain 177(@sampleStructTemp) 48 43
|
||||||
187: 6(float) ConvertSToF 186
|
Store 185 184
|
||||||
188: 177(ptr) AccessChain 176(@sampleStructTemp) 48 49
|
186: 178(ptr) AccessChain 165(@sampleResultShadow) 53
|
||||||
Store 188 187
|
187: 40(int) Load 186
|
||||||
189: 177(ptr) AccessChain 164(@sampleResultShadow) 58
|
188: 6(float) ConvertSToF 187
|
||||||
190: 40(int) Load 189
|
189: 178(ptr) AccessChain 177(@sampleStructTemp) 48 49
|
||||||
191: 177(ptr) AccessChain 176(@sampleStructTemp) 57
|
Store 189 188
|
||||||
Store 191 190
|
190: 178(ptr) AccessChain 165(@sampleResultShadow) 58
|
||||||
192: 159(s4_t) Load 176(@sampleStructTemp)
|
191: 40(int) Load 190
|
||||||
Store 161(s4) 192
|
192: 178(ptr) AccessChain 177(@sampleStructTemp) 57
|
||||||
202: 199 Load 201(g_tTex2s5)
|
Store 192 191
|
||||||
203: 28 Load 30(g_sSamp)
|
193: 160(s4_t) Load 177(@sampleStructTemp)
|
||||||
205: 204 SampledImage 202 203
|
Store 162(s4) 193
|
||||||
209: 196(ivec4) ImageSampleImplicitLod 205 208
|
203: 200 Load 202(g_tTex2s5)
|
||||||
Store 198(@sampleResultShadow) 209
|
204: 28 Load 30(g_sSamp)
|
||||||
212: 211(ptr) AccessChain 198(@sampleResultShadow) 43
|
206: 205 SampledImage 203 204
|
||||||
213: 42(int) Load 212
|
210: 197(ivec4) ImageSampleImplicitLod 206 209
|
||||||
214: 211(ptr) AccessChain 210(@sampleStructTemp) 41
|
Store 199(@sampleResultShadow) 210
|
||||||
Store 214 213
|
213: 212(ptr) AccessChain 199(@sampleResultShadow) 43
|
||||||
215: 211(ptr) AccessChain 198(@sampleResultShadow) 49
|
214: 42(int) Load 213
|
||||||
216: 42(int) Load 215
|
215: 212(ptr) AccessChain 211(@sampleStructTemp) 41
|
||||||
217: 211(ptr) AccessChain 210(@sampleStructTemp) 48
|
Store 215 214
|
||||||
Store 217 216
|
216: 212(ptr) AccessChain 199(@sampleResultShadow) 49
|
||||||
218: 193(s5_t) Load 210(@sampleStructTemp)
|
217: 42(int) Load 216
|
||||||
Store 195(s5) 218
|
218: 212(ptr) AccessChain 211(@sampleStructTemp) 48
|
||||||
220: 10(s1_t) FunctionCall 13(fn1(t2-tx-struct0-1;) 89(g_tTex2s1)
|
Store 218 217
|
||||||
Store 219(r0) 220
|
219: 194(s5_t) Load 211(@sampleStructTemp)
|
||||||
222: 16(s2_t) FunctionCall 19(fn1(t2-tx-struct1-1;) 113(g_tTex2s2)
|
Store 196(s5) 219
|
||||||
Store 221(r1) 222
|
222: 7 Load 90(g_tTex2s1)
|
||||||
225: 10(s1_t) FunctionCall 13(fn1(t2-tx-struct0-1;) 224(g_tTex2s1a)
|
Store 221(param) 222
|
||||||
Store 223(r2) 225
|
223: 10(s1_t) FunctionCall 13(fn1(t2-tx-struct0-1;) 221(param)
|
||||||
ReturnValue 227
|
Store 220(r0) 223
|
||||||
|
226: 7 Load 114(g_tTex2s2)
|
||||||
|
Store 225(param) 226
|
||||||
|
227: 16(s2_t) FunctionCall 19(fn1(t2-tx-struct1-1;) 225(param)
|
||||||
|
Store 224(r1) 227
|
||||||
|
231: 7 Load 229(g_tTex2s1a)
|
||||||
|
Store 230(param) 231
|
||||||
|
232: 10(s1_t) FunctionCall 13(fn1(t2-tx-struct0-1;) 230(param)
|
||||||
|
Store 228(r2) 232
|
||||||
|
ReturnValue 234
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -135,12 +135,12 @@ gl_FragCoord origin is upper left
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 62
|
// Id's are bound by 73
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4 "main" 60
|
EntryPoint Fragment 4 "main" 71
|
||||||
ExecutionMode 4 OriginUpperLeft
|
ExecutionMode 4 OriginUpperLeft
|
||||||
Source HLSL 500
|
Source HLSL 500
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
@ -153,44 +153,51 @@ gl_FragCoord origin is upper left
|
|||||||
Name 28 "Func(I21;"
|
Name 28 "Func(I21;"
|
||||||
Name 27 "DummyTex"
|
Name 27 "DummyTex"
|
||||||
Name 31 "@main("
|
Name 31 "@main("
|
||||||
Name 44 "tf1"
|
Name 45 "tf1"
|
||||||
Name 46 "tf4"
|
Name 46 "param"
|
||||||
Name 50 "twf1"
|
Name 49 "tf4"
|
||||||
Name 54 "twf4"
|
Name 50 "param"
|
||||||
Name 60 "@entryPointOutput"
|
Name 56 "twf1"
|
||||||
Decorate 44(tf1) DescriptorSet 0
|
Name 57 "param"
|
||||||
Decorate 46(tf4) DescriptorSet 0
|
Name 63 "twf4"
|
||||||
Decorate 50(twf1) DescriptorSet 0
|
Name 64 "param"
|
||||||
Decorate 54(twf4) DescriptorSet 0
|
Name 71 "@entryPointOutput"
|
||||||
Decorate 60(@entryPointOutput) Location 0
|
Decorate 45(tf1) DescriptorSet 0
|
||||||
|
Decorate 49(tf4) DescriptorSet 0
|
||||||
|
Decorate 56(twf1) DescriptorSet 0
|
||||||
|
Decorate 63(twf4) DescriptorSet 0
|
||||||
|
Decorate 71(@entryPointOutput) Location 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
7: TypeImage 6(float) 2D sampled format:Unknown
|
7: TypeImage 6(float) 2D sampled format:Unknown
|
||||||
8: TypePointer UniformConstant 7
|
8: TypePointer Function 7
|
||||||
9: TypeFunction 6(float) 8(ptr)
|
9: TypeFunction 6(float) 8(ptr)
|
||||||
13: TypeVector 6(float) 4
|
13: TypeVector 6(float) 4
|
||||||
14: TypeFunction 13(fvec4) 8(ptr)
|
14: TypeFunction 13(fvec4) 8(ptr)
|
||||||
18: TypeImage 6(float) 2D nonsampled format:R32f
|
18: TypeImage 6(float) 2D nonsampled format:R32f
|
||||||
19: TypePointer UniformConstant 18
|
19: TypePointer Function 18
|
||||||
20: TypeFunction 6(float) 19(ptr)
|
20: TypeFunction 6(float) 19(ptr)
|
||||||
24: TypeImage 6(float) 2D nonsampled format:Rgba32f
|
24: TypeImage 6(float) 2D nonsampled format:Rgba32f
|
||||||
25: TypePointer UniformConstant 24
|
25: TypePointer Function 24
|
||||||
26: TypeFunction 13(fvec4) 25(ptr)
|
26: TypeFunction 13(fvec4) 25(ptr)
|
||||||
30: TypeFunction 13(fvec4)
|
30: TypeFunction 13(fvec4)
|
||||||
33: 6(float) Constant 1065353216
|
33: 6(float) Constant 1065353216
|
||||||
36: 6(float) Constant 0
|
36: 6(float) Constant 0
|
||||||
37: 13(fvec4) ConstantComposite 36 36 36 36
|
37: 13(fvec4) ConstantComposite 36 36 36 36
|
||||||
44(tf1): 8(ptr) Variable UniformConstant
|
44: TypePointer UniformConstant 7
|
||||||
46(tf4): 8(ptr) Variable UniformConstant
|
45(tf1): 44(ptr) Variable UniformConstant
|
||||||
50(twf1): 19(ptr) Variable UniformConstant
|
49(tf4): 44(ptr) Variable UniformConstant
|
||||||
54(twf4): 25(ptr) Variable UniformConstant
|
55: TypePointer UniformConstant 18
|
||||||
59: TypePointer Output 13(fvec4)
|
56(twf1): 55(ptr) Variable UniformConstant
|
||||||
60(@entryPointOutput): 59(ptr) Variable Output
|
62: TypePointer UniformConstant 24
|
||||||
|
63(twf4): 62(ptr) Variable UniformConstant
|
||||||
|
70: TypePointer Output 13(fvec4)
|
||||||
|
71(@entryPointOutput): 70(ptr) Variable Output
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
61: 13(fvec4) FunctionCall 31(@main()
|
72: 13(fvec4) FunctionCall 31(@main()
|
||||||
Store 60(@entryPointOutput) 61
|
Store 71(@entryPointOutput) 72
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
11(Func(t211;): 6(float) Function None 9
|
11(Func(t211;): 6(float) Function None 9
|
||||||
@ -215,14 +222,26 @@ gl_FragCoord origin is upper left
|
|||||||
FunctionEnd
|
FunctionEnd
|
||||||
31(@main(): 13(fvec4) Function None 30
|
31(@main(): 13(fvec4) Function None 30
|
||||||
32: Label
|
32: Label
|
||||||
45: 6(float) FunctionCall 11(Func(t211;) 44(tf1)
|
46(param): 8(ptr) Variable Function
|
||||||
47: 13(fvec4) FunctionCall 16(Func(t21;) 46(tf4)
|
50(param): 8(ptr) Variable Function
|
||||||
48: 13(fvec4) CompositeConstruct 45 45 45 45
|
57(param): 19(ptr) Variable Function
|
||||||
49: 13(fvec4) FAdd 48 47
|
64(param): 25(ptr) Variable Function
|
||||||
51: 6(float) FunctionCall 22(Func(I211;) 50(twf1)
|
47: 7 Load 45(tf1)
|
||||||
52: 13(fvec4) CompositeConstruct 51 51 51 51
|
Store 46(param) 47
|
||||||
53: 13(fvec4) FAdd 49 52
|
48: 6(float) FunctionCall 11(Func(t211;) 46(param)
|
||||||
55: 13(fvec4) FunctionCall 28(Func(I21;) 54(twf4)
|
51: 7 Load 49(tf4)
|
||||||
56: 13(fvec4) FAdd 53 55
|
Store 50(param) 51
|
||||||
ReturnValue 56
|
52: 13(fvec4) FunctionCall 16(Func(t21;) 50(param)
|
||||||
|
53: 13(fvec4) CompositeConstruct 48 48 48 48
|
||||||
|
54: 13(fvec4) FAdd 53 52
|
||||||
|
58: 18 Load 56(twf1)
|
||||||
|
Store 57(param) 58
|
||||||
|
59: 6(float) FunctionCall 22(Func(I211;) 57(param)
|
||||||
|
60: 13(fvec4) CompositeConstruct 59 59 59 59
|
||||||
|
61: 13(fvec4) FAdd 54 60
|
||||||
|
65: 24 Load 63(twf4)
|
||||||
|
Store 64(param) 65
|
||||||
|
66: 13(fvec4) FunctionCall 28(Func(I21;) 64(param)
|
||||||
|
67: 13(fvec4) FAdd 61 66
|
||||||
|
ReturnValue 67
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -1286,7 +1286,7 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
typedef TVector<TIntermNode*> TIntermSequence;
|
typedef TVector<TIntermNode*> TIntermSequence;
|
||||||
typedef TVector<int> TQualifierList;
|
typedef TVector<TStorageQualifier> TQualifierList;
|
||||||
//
|
//
|
||||||
// Nodes that operate on an arbitrary sized set of children.
|
// Nodes that operate on an arbitrary sized set of children.
|
||||||
//
|
//
|
||||||
|
|||||||
@ -234,7 +234,8 @@ public:
|
|||||||
hlslOffsets(false),
|
hlslOffsets(false),
|
||||||
useStorageBuffer(false),
|
useStorageBuffer(false),
|
||||||
hlslIoMapping(false),
|
hlslIoMapping(false),
|
||||||
textureSamplerTransformMode(EShTexSampTransKeep)
|
textureSamplerTransformMode(EShTexSampTransKeep),
|
||||||
|
needToLegalize(false)
|
||||||
{
|
{
|
||||||
localSize[0] = 1;
|
localSize[0] = 1;
|
||||||
localSize[1] = 1;
|
localSize[1] = 1;
|
||||||
@ -610,6 +611,9 @@ public:
|
|||||||
void addProcessArgument(const std::string& arg) { processes.addArgument(arg); }
|
void addProcessArgument(const std::string& arg) { processes.addArgument(arg); }
|
||||||
const std::vector<std::string>& getProcesses() const { return processes.getProcesses(); }
|
const std::vector<std::string>& getProcesses() const { return processes.getProcesses(); }
|
||||||
|
|
||||||
|
void setNeedsLegalization() { needToLegalize = true; }
|
||||||
|
bool needsLegalization() const { return needToLegalize; }
|
||||||
|
|
||||||
const char* const implicitThisName;
|
const char* const implicitThisName;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@ -708,6 +712,8 @@ protected:
|
|||||||
// for OpModuleProcessed, or equivalent
|
// for OpModuleProcessed, or equivalent
|
||||||
TProcesses processes;
|
TProcesses processes;
|
||||||
|
|
||||||
|
bool needToLegalize;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void operator=(TIntermediate&); // prevent assignments
|
void operator=(TIntermediate&); // prevent assignments
|
||||||
};
|
};
|
||||||
|
|||||||
@ -166,11 +166,6 @@ bool HlslParseContext::shouldConvertLValue(const TIntermNode* node) const
|
|||||||
if (lhsAsAggregate != nullptr && lhsAsAggregate->getOp() == EOpImageLoad)
|
if (lhsAsAggregate != nullptr && lhsAsAggregate->getOp() == EOpImageLoad)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
// If it's a syntactic write to a sampler, we will use that to establish
|
|
||||||
// a compile-time alias.
|
|
||||||
if (node->getAsTyped()->getBasicType() == EbtSampler)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -239,6 +234,13 @@ bool HlslParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, T
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// We tolerate samplers as l-values, even though they are nominally
|
||||||
|
// illegal, because we expect a later optimization to eliminate them.
|
||||||
|
if (node->getType().getBasicType() == EbtSampler) {
|
||||||
|
intermediate.setNeedsLegalization();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Let the base class check errors
|
// Let the base class check errors
|
||||||
return TParseContextBase::lValueErrorCheck(loc, op, node);
|
return TParseContextBase::lValueErrorCheck(loc, op, node);
|
||||||
}
|
}
|
||||||
@ -274,10 +276,6 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char*
|
|||||||
|
|
||||||
// *** If we get here, we're going to apply some conversion to an l-value.
|
// *** If we get here, we're going to apply some conversion to an l-value.
|
||||||
|
|
||||||
// Spin off sampler aliasing
|
|
||||||
if (node->getAsTyped()->getBasicType() == EbtSampler)
|
|
||||||
return handleSamplerLvalue(loc, op, node);
|
|
||||||
|
|
||||||
// Helper to create a load.
|
// Helper to create a load.
|
||||||
const auto makeLoad = [&](TIntermSymbol* rhsTmp, TIntermTyped* object, TIntermTyped* coord, const TType& derefType) {
|
const auto makeLoad = [&](TIntermSymbol* rhsTmp, TIntermTyped* object, TIntermTyped* coord, const TType& derefType) {
|
||||||
TIntermAggregate* loadOp = new TIntermAggregate(EOpImageLoad);
|
TIntermAggregate* loadOp = new TIntermAggregate(EOpImageLoad);
|
||||||
@ -524,58 +522,6 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char*
|
|||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deal with sampler aliasing: turning assignments into aliases
|
|
||||||
// Return a placeholder node for higher-level code that think assignments must
|
|
||||||
// generate code.
|
|
||||||
TIntermTyped* HlslParseContext::handleSamplerLvalue(const TSourceLoc& loc, const char* op, TIntermTyped*& node)
|
|
||||||
{
|
|
||||||
// Can only alias an assignment: "s1 = s2"
|
|
||||||
TIntermBinary* binary = node->getAsBinaryNode();
|
|
||||||
if (binary == nullptr || node->getAsOperator()->getOp() != EOpAssign ||
|
|
||||||
binary->getLeft()->getAsSymbolNode() == nullptr ||
|
|
||||||
binary->getRight()->getAsSymbolNode() == nullptr) {
|
|
||||||
error(loc, "can't modify sampler", op, "");
|
|
||||||
return node;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (controlFlowNestingLevel > 0)
|
|
||||||
warn(loc, "sampler or image aliased under control flow; consumption must be in same path", op, "");
|
|
||||||
|
|
||||||
TIntermTyped* set = setOpaqueLvalue(binary->getLeft(), binary->getRight());
|
|
||||||
if (set == nullptr)
|
|
||||||
warn(loc, "could not create alias for sampler", op, "");
|
|
||||||
else
|
|
||||||
node = set;
|
|
||||||
|
|
||||||
return node;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do an opaque assignment that needs to turn into an alias.
|
|
||||||
// Return nullptr if it can't be done, otherwise return a placeholder
|
|
||||||
// node for higher-level code that think assignments must generate code.
|
|
||||||
TIntermTyped* HlslParseContext::setOpaqueLvalue(TIntermTyped* leftTyped, TIntermTyped* rightTyped)
|
|
||||||
{
|
|
||||||
// Best is if we are aliasing a flattened struct member "S.s1 = s2",
|
|
||||||
// in which case we want to update the flattening information with the alias,
|
|
||||||
// making everything else work seamlessly.
|
|
||||||
TIntermSymbol* left = leftTyped->getAsSymbolNode();
|
|
||||||
TIntermSymbol* right = rightTyped->getAsSymbolNode();
|
|
||||||
for (auto fit = flattenMap.begin(); fit != flattenMap.end(); ++fit) {
|
|
||||||
for (auto mit = fit->second.members.begin(); mit != fit->second.members.end(); ++mit) {
|
|
||||||
if ((*mit)->getUniqueId() == left->getId()) {
|
|
||||||
// found it: update with alias to the existing variable, and don't emit any code
|
|
||||||
(*mit) = new TVariable(&right->getName(), right->getType());
|
|
||||||
(*mit)->setUniqueId(right->getId());
|
|
||||||
// replace node (rest of compiler expects either an error or code to generate)
|
|
||||||
// with pointless access
|
|
||||||
return right;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
void HlslParseContext::handlePragma(const TSourceLoc& loc, const TVector<TString>& tokens)
|
void HlslParseContext::handlePragma(const TSourceLoc& loc, const TVector<TString>& tokens)
|
||||||
{
|
{
|
||||||
if (pragmaCallback)
|
if (pragmaCallback)
|
||||||
@ -2513,41 +2459,6 @@ TIntermAggregate* HlslParseContext::assignClipCullDistance(const TSourceLoc& loc
|
|||||||
return assignList;
|
return assignList;
|
||||||
}
|
}
|
||||||
|
|
||||||
// For a declaration with an initializer, where the initialized symbol is flattened,
|
|
||||||
// and possibly contains opaque values, such that the initializer should never exist
|
|
||||||
// as emitted code, because even creating the initializer would write opaques.
|
|
||||||
//
|
|
||||||
// If possible, decompose this into individual member-wise assignments, which themselves
|
|
||||||
// are expected to then not exist for opaque types, because they will turn into aliases.
|
|
||||||
//
|
|
||||||
// Return a node that contains the non-aliased assignments that must continue to exist.
|
|
||||||
TIntermTyped* HlslParseContext::executeFlattenedInitializer(const TSourceLoc& loc, TIntermSymbol* symbol,
|
|
||||||
TIntermAggregate& initializer)
|
|
||||||
{
|
|
||||||
// We need individual RHS initializers per member to do this
|
|
||||||
const TTypeList* typeList = symbol->getType().getStruct();
|
|
||||||
if (typeList == nullptr || initializer.getSequence().size() != typeList->size()) {
|
|
||||||
warn(loc, "cannot do member-wise aliasing for opaque members with this initializer", "=", "");
|
|
||||||
return handleAssign(loc, EOpAssign, symbol, &initializer);
|
|
||||||
}
|
|
||||||
|
|
||||||
TIntermAggregate* initList = nullptr;
|
|
||||||
// synthesize an access to each member, and then an assignment to it
|
|
||||||
for (int member = 0; member < (int)typeList->size(); ++member) {
|
|
||||||
TIntermTyped* memberInitializer = initializer.getSequence()[member]->getAsTyped();
|
|
||||||
TIntermTyped* flattenedMember = flattenAccess(symbol, member);
|
|
||||||
if (flattenedMember->getType().containsOpaque())
|
|
||||||
setOpaqueLvalue(flattenedMember, memberInitializer);
|
|
||||||
else
|
|
||||||
initList = intermediate.growAggregate(initList, handleAssign(loc, EOpAssign, flattenedMember,
|
|
||||||
memberInitializer));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (initList)
|
|
||||||
initList->setOperator(EOpSequence);
|
|
||||||
return initList;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Some simple source assignments need to be flattened to a sequence
|
// Some simple source assignments need to be flattened to a sequence
|
||||||
// of AST assignments. Catch these and flatten, otherwise, pass through
|
// of AST assignments. Catch these and flatten, otherwise, pass through
|
||||||
// to intermediate.addAssign().
|
// to intermediate.addAssign().
|
||||||
@ -2560,6 +2471,10 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op
|
|||||||
if (left == nullptr || right == nullptr)
|
if (left == nullptr || right == nullptr)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
|
// writing to opaques will require fixing transforms
|
||||||
|
if (left->getType().containsOpaque())
|
||||||
|
intermediate.setNeedsLegalization();
|
||||||
|
|
||||||
if (left->getAsOperator() && left->getAsOperator()->getOp() == EOpMatrixSwizzle)
|
if (left->getAsOperator() && left->getAsOperator()->getOp() == EOpMatrixSwizzle)
|
||||||
return handleAssignToMatrixSwizzle(loc, op, left, right);
|
return handleAssignToMatrixSwizzle(loc, op, left, right);
|
||||||
|
|
||||||
@ -2720,7 +2635,8 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op
|
|||||||
const int elementsL = left->getType().isArray() ? left->getType().getOuterArraySize() : 1;
|
const int elementsL = left->getType().isArray() ? left->getType().getOuterArraySize() : 1;
|
||||||
const int elementsR = right->getType().isArray() ? right->getType().getOuterArraySize() : 1;
|
const int elementsR = right->getType().isArray() ? right->getType().getOuterArraySize() : 1;
|
||||||
|
|
||||||
// The arrays may not be the same size, e.g, if the size has been forced for EbvTessLevelInner or Outer.
|
// The arrays might not be the same size,
|
||||||
|
// e.g., if the size has been forced for EbvTessLevelInner/Outer.
|
||||||
const int elementsToCopy = std::min(elementsL, elementsR);
|
const int elementsToCopy = std::min(elementsL, elementsR);
|
||||||
|
|
||||||
// array case
|
// array case
|
||||||
@ -7616,21 +7532,11 @@ TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TInterm
|
|||||||
// normal assigning of a value to a variable...
|
// normal assigning of a value to a variable...
|
||||||
specializationCheck(loc, initializer->getType(), "initializer");
|
specializationCheck(loc, initializer->getType(), "initializer");
|
||||||
TIntermSymbol* intermSymbol = intermediate.addSymbol(*variable, loc);
|
TIntermSymbol* intermSymbol = intermediate.addSymbol(*variable, loc);
|
||||||
|
TIntermNode* initNode = handleAssign(loc, EOpAssign, intermSymbol, initializer);
|
||||||
// If we are flattening, it could be due to setting opaques, which must be handled
|
|
||||||
// as aliases, and the 'initializer' node cannot actually be emitted, because it
|
|
||||||
// itself stores the result of the constructor, and we can't store to opaques.
|
|
||||||
// handleAssign() will emit the initializer.
|
|
||||||
TIntermNode* initNode = nullptr;
|
|
||||||
if (flattened && intermSymbol->getType().containsOpaque())
|
|
||||||
return executeFlattenedInitializer(loc, intermSymbol, *initializer->getAsAggregate());
|
|
||||||
else {
|
|
||||||
initNode = handleAssign(loc, EOpAssign, intermSymbol, initializer);
|
|
||||||
if (initNode == nullptr)
|
if (initNode == nullptr)
|
||||||
assignError(loc, "=", intermSymbol->getCompleteString(), initializer->getCompleteString());
|
assignError(loc, "=", intermSymbol->getCompleteString(), initializer->getCompleteString());
|
||||||
return initNode;
|
return initNode;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
@ -9517,6 +9423,11 @@ void HlslParseContext::finish()
|
|||||||
error(mipsOperatorMipArg.back().loc, "unterminated mips operator:", "", "");
|
error(mipsOperatorMipArg.back().loc, "unterminated mips operator:", "", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Communicate out (esp. for command line) that we formed AST that will make
|
||||||
|
// illegal AST SPIR-V and it needs transforms to legalize it.
|
||||||
|
if (intermediate.needsLegalization())
|
||||||
|
infoSink.info << "WARNING: AST will form illegal SPIR-V; need to transform to legalize";
|
||||||
|
|
||||||
removeUnusedStructBufferCounters();
|
removeUnusedStructBufferCounters();
|
||||||
addPatchConstantInvocation();
|
addPatchConstantInvocation();
|
||||||
fixTextureShadowModes();
|
fixTextureShadowModes();
|
||||||
|
|||||||
@ -88,7 +88,6 @@ public:
|
|||||||
void remapNonEntryPointIO(TFunction& function);
|
void remapNonEntryPointIO(TFunction& function);
|
||||||
TIntermNode* handleReturnValue(const TSourceLoc&, TIntermTyped*);
|
TIntermNode* handleReturnValue(const TSourceLoc&, TIntermTyped*);
|
||||||
void handleFunctionArgument(TFunction*, TIntermTyped*& arguments, TIntermTyped* newArg);
|
void handleFunctionArgument(TFunction*, TIntermTyped*& arguments, TIntermTyped* newArg);
|
||||||
TIntermTyped* executeFlattenedInitializer(const TSourceLoc&, TIntermSymbol*, TIntermAggregate&);
|
|
||||||
TIntermTyped* handleAssign(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right);
|
TIntermTyped* handleAssign(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right);
|
||||||
TIntermTyped* handleAssignToMatrixSwizzle(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right);
|
TIntermTyped* handleAssignToMatrixSwizzle(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right);
|
||||||
TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermTyped*);
|
TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermTyped*);
|
||||||
@ -191,8 +190,6 @@ public:
|
|||||||
|
|
||||||
// Apply L-value conversions. E.g, turning a write to a RWTexture into an ImageStore.
|
// Apply L-value conversions. E.g, turning a write to a RWTexture into an ImageStore.
|
||||||
TIntermTyped* handleLvalue(const TSourceLoc&, const char* op, TIntermTyped*& node);
|
TIntermTyped* handleLvalue(const TSourceLoc&, const char* op, TIntermTyped*& node);
|
||||||
TIntermTyped* handleSamplerLvalue(const TSourceLoc&, const char* op, TIntermTyped*& node);
|
|
||||||
TIntermTyped* setOpaqueLvalue(TIntermTyped* left, TIntermTyped* right);
|
|
||||||
bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override;
|
bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override;
|
||||||
|
|
||||||
TLayoutFormat getLayoutFromTxType(const TSourceLoc&, const TType&);
|
TLayoutFormat getLayoutFromTxType(const TSourceLoc&, const TType&);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user