Sanitize debug source location tracking for implicit branch and return

This patch tries to attach debug location of a branch/return instruction to its predecessor or the closing brace. If none could be found, no debug info should be emitted.
This commit is contained in:
Qingyuan Zheng 2024-08-26 03:53:07 +00:00 committed by arcady-lunarg
parent b1fac200c4
commit a496a34b43
30 changed files with 4713 additions and 4253 deletions

View File

@ -1558,7 +1558,7 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion,
else { else {
builder.setEmitSpirvDebugInfo(); builder.setEmitSpirvDebugInfo();
} }
builder.setDebugSourceFile(glslangIntermediate->getSourceFile()); builder.setDebugMainSourceFile(glslangIntermediate->getSourceFile());
// Set the source shader's text. If for SPV version 1.0, include // Set the source shader's text. If for SPV version 1.0, include
// a preamble in comments stating the OpModuleProcessed instructions. // a preamble in comments stating the OpModuleProcessed instructions.
@ -2967,6 +2967,12 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
currentFunction->setDebugLineInfo(sourceFileId, loc.line, loc.column); currentFunction->setDebugLineInfo(sourceFileId, loc.line, loc.column);
} }
} else { } else {
if (options.generateDebugInfo) {
if (glslangIntermediate->getSource() == glslang::EShSourceGlsl && node->getSequence().size() > 1) {
auto endLoc = node->getSequence()[1]->getAsAggregate()->getEndLoc();
builder.setDebugSourceLocation(endLoc.line, endLoc.getFilename());
}
}
if (inEntryPoint) if (inEntryPoint)
entryPointTerminated = true; entryPointTerminated = true;
builder.leaveFunction(); builder.leaveFunction();
@ -4120,7 +4126,7 @@ bool TGlslangToSpvTraverser::visitSwitch(glslang::TVisit /* visit */, glslang::T
if (codeSegments[s]) if (codeSegments[s])
codeSegments[s]->traverse(this); codeSegments[s]->traverse(this);
else else
builder.addSwitchBreak(); builder.addSwitchBreak(true);
} }
breakForLoop.pop(); breakForLoop.pop();
@ -4144,7 +4150,7 @@ void TGlslangToSpvTraverser::visitConstantUnion(glslang::TIntermConstantUnion* n
bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIntermLoop* node) bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIntermLoop* node)
{ {
auto blocks = builder.makeNewLoop(); auto blocks = builder.makeNewLoop();
builder.createBranch(&blocks.head); builder.createBranch(true, &blocks.head);
// Loop control: // Loop control:
std::vector<unsigned int> operands; std::vector<unsigned int> operands;
@ -4161,7 +4167,7 @@ bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIn
builder.createLoopMerge(&blocks.merge, &blocks.continue_target, control, operands); builder.createLoopMerge(&blocks.merge, &blocks.continue_target, control, operands);
if (node->testFirst() && node->getTest()) { if (node->testFirst() && node->getTest()) {
spv::Block& test = builder.makeNewBlock(); spv::Block& test = builder.makeNewBlock();
builder.createBranch(&test); builder.createBranch(true, &test);
builder.setBuildPoint(&test); builder.setBuildPoint(&test);
node->getTest()->traverse(this); node->getTest()->traverse(this);
@ -4172,22 +4178,22 @@ bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIn
breakForLoop.push(true); breakForLoop.push(true);
if (node->getBody()) if (node->getBody())
node->getBody()->traverse(this); node->getBody()->traverse(this);
builder.createBranch(&blocks.continue_target); builder.createBranch(true, &blocks.continue_target);
breakForLoop.pop(); breakForLoop.pop();
builder.setBuildPoint(&blocks.continue_target); builder.setBuildPoint(&blocks.continue_target);
if (node->getTerminal()) if (node->getTerminal())
node->getTerminal()->traverse(this); node->getTerminal()->traverse(this);
builder.createBranch(&blocks.head); builder.createBranch(true, &blocks.head);
} else { } else {
builder.setDebugSourceLocation(node->getLoc().line, node->getLoc().getFilename()); builder.setDebugSourceLocation(node->getLoc().line, node->getLoc().getFilename());
builder.createBranch(&blocks.body); builder.createBranch(true, &blocks.body);
breakForLoop.push(true); breakForLoop.push(true);
builder.setBuildPoint(&blocks.body); builder.setBuildPoint(&blocks.body);
if (node->getBody()) if (node->getBody())
node->getBody()->traverse(this); node->getBody()->traverse(this);
builder.createBranch(&blocks.continue_target); builder.createBranch(true, &blocks.continue_target);
breakForLoop.pop(); breakForLoop.pop();
builder.setBuildPoint(&blocks.continue_target); builder.setBuildPoint(&blocks.continue_target);
@ -4202,7 +4208,7 @@ bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIn
// TODO: unless there was a break/return/discard instruction // TODO: unless there was a break/return/discard instruction
// somewhere in the body, this is an infinite loop, so we should // somewhere in the body, this is an infinite loop, so we should
// issue a warning. // issue a warning.
builder.createBranch(&blocks.head); builder.createBranch(true, &blocks.head);
} }
} }
builder.setBuildPoint(&blocks.merge); builder.setBuildPoint(&blocks.merge);
@ -4238,7 +4244,7 @@ bool TGlslangToSpvTraverser::visitBranch(glslang::TVisit /* visit */, glslang::T
if (breakForLoop.top()) if (breakForLoop.top())
builder.createLoopExit(); builder.createLoopExit();
else else
builder.addSwitchBreak(); builder.addSwitchBreak(false);
break; break;
case glslang::EOpContinue: case glslang::EOpContinue:
builder.createLoopContinue(); builder.createLoopContinue();

View File

@ -2182,6 +2182,10 @@ void Builder::addInstruction(std::unique_ptr<Instruction> inst) {
buildPoint->addInstruction(std::move(inst)); buildPoint->addInstruction(std::move(inst));
} }
void Builder::addInstructionNoDebugInfo(std::unique_ptr<Instruction> inst) {
buildPoint->addInstruction(std::move(inst));
}
// Comments in header // Comments in header
Function* Builder::makeEntryPoint(const char* entryPoint) Function* Builder::makeEntryPoint(const char* entryPoint)
{ {
@ -3659,6 +3663,7 @@ Builder::If::If(Id cond, unsigned int ctrl, Builder& gb) :
// Save the current block, so that we can add in the flow control split when // Save the current block, so that we can add in the flow control split when
// makeEndIf is called. // makeEndIf is called.
headerBlock = builder.getBuildPoint(); headerBlock = builder.getBuildPoint();
builder.createSelectionMerge(mergeBlock, control);
function->addBlock(thenBlock); function->addBlock(thenBlock);
builder.setBuildPoint(thenBlock); builder.setBuildPoint(thenBlock);
@ -3668,7 +3673,7 @@ Builder::If::If(Id cond, unsigned int ctrl, Builder& gb) :
void Builder::If::makeBeginElse() void Builder::If::makeBeginElse()
{ {
// Close out the "then" by having it jump to the mergeBlock // Close out the "then" by having it jump to the mergeBlock
builder.createBranch(mergeBlock); builder.createBranch(true, mergeBlock);
// Make the first else block and add it to the function // Make the first else block and add it to the function
elseBlock = new Block(builder.getUniqueId(), *function); elseBlock = new Block(builder.getUniqueId(), *function);
@ -3682,11 +3687,10 @@ void Builder::If::makeBeginElse()
void Builder::If::makeEndIf() void Builder::If::makeEndIf()
{ {
// jump to the merge block // jump to the merge block
builder.createBranch(mergeBlock); builder.createBranch(true, mergeBlock);
// Go back to the headerBlock and make the flow control split // Go back to the headerBlock and make the flow control split
builder.setBuildPoint(headerBlock); builder.setBuildPoint(headerBlock);
builder.createSelectionMerge(mergeBlock, control);
if (elseBlock) if (elseBlock)
builder.createConditionalBranch(condition, thenBlock, elseBlock); builder.createConditionalBranch(condition, thenBlock, elseBlock);
else else
@ -3732,10 +3736,10 @@ void Builder::makeSwitch(Id selector, unsigned int control, int numSegments, con
} }
// Comments in header // Comments in header
void Builder::addSwitchBreak() void Builder::addSwitchBreak(bool implicit)
{ {
// branch to the top of the merge block stack // branch to the top of the merge block stack
createBranch(switchMerges.top()); createBranch(implicit, switchMerges.top());
createAndSetNoPredecessorBlock("post-switch-break"); createAndSetNoPredecessorBlock("post-switch-break");
} }
@ -3746,7 +3750,7 @@ void Builder::nextSwitchSegment(std::vector<Block*>& segmentBlock, int nextSegme
if (lastSegment >= 0) { if (lastSegment >= 0) {
// Close out previous segment by jumping, if necessary, to next segment // Close out previous segment by jumping, if necessary, to next segment
if (! buildPoint->isTerminated()) if (! buildPoint->isTerminated())
createBranch(segmentBlock[nextSegment]); createBranch(true, segmentBlock[nextSegment]);
} }
Block* block = segmentBlock[nextSegment]; Block* block = segmentBlock[nextSegment];
block->getParent().addBlock(block); block->getParent().addBlock(block);
@ -3758,7 +3762,7 @@ void Builder::endSwitch(std::vector<Block*>& /*segmentBlock*/)
{ {
// Close out previous segment by jumping, if necessary, to next segment // Close out previous segment by jumping, if necessary, to next segment
if (! buildPoint->isTerminated()) if (! buildPoint->isTerminated())
addSwitchBreak(); addSwitchBreak(true);
switchMerges.top()->getParent().addBlock(switchMerges.top()); switchMerges.top()->getParent().addBlock(switchMerges.top());
setBuildPoint(switchMerges.top()); setBuildPoint(switchMerges.top());
@ -3791,14 +3795,14 @@ Builder::LoopBlocks& Builder::makeNewLoop()
void Builder::createLoopContinue() void Builder::createLoopContinue()
{ {
createBranch(&loops.top().continue_target); createBranch(false, &loops.top().continue_target);
// Set up a block for dead code. // Set up a block for dead code.
createAndSetNoPredecessorBlock("post-loop-continue"); createAndSetNoPredecessorBlock("post-loop-continue");
} }
void Builder::createLoopExit() void Builder::createLoopExit()
{ {
createBranch(&loops.top().merge); createBranch(false, &loops.top().merge);
// Set up a block for dead code. // Set up a block for dead code.
createAndSetNoPredecessorBlock("post-loop-break"); createAndSetNoPredecessorBlock("post-loop-break");
} }
@ -4240,11 +4244,16 @@ void Builder::createAndSetNoPredecessorBlock(const char* /*name*/)
} }
// Comments in header // Comments in header
void Builder::createBranch(Block* block) void Builder::createBranch(bool implicit, Block* block)
{ {
Instruction* branch = new Instruction(OpBranch); Instruction* branch = new Instruction(OpBranch);
branch->addIdOperand(block->getId()); branch->addIdOperand(block->getId());
addInstruction(std::unique_ptr<Instruction>(branch)); if (implicit) {
addInstructionNoDebugInfo(std::unique_ptr<Instruction>(branch));
}
else {
addInstruction(std::unique_ptr<Instruction>(branch));
}
block->addPredecessor(buildPoint); block->addPredecessor(buildPoint);
} }
@ -4277,7 +4286,10 @@ void Builder::createConditionalBranch(Id condition, Block* thenBlock, Block* els
branch->addIdOperand(condition); branch->addIdOperand(condition);
branch->addIdOperand(thenBlock->getId()); branch->addIdOperand(thenBlock->getId());
branch->addIdOperand(elseBlock->getId()); branch->addIdOperand(elseBlock->getId());
addInstruction(std::unique_ptr<Instruction>(branch));
// A conditional branch is always attached to a condition expression
addInstructionNoDebugInfo(std::unique_ptr<Instruction>(branch));
thenBlock->addPredecessor(buildPoint); thenBlock->addPredecessor(buildPoint);
elseBlock->addPredecessor(buildPoint); elseBlock->addPredecessor(buildPoint);
} }

View File

@ -108,7 +108,7 @@ public:
spv::Id getMainFileId() const { return mainFileId; } spv::Id getMainFileId() const { return mainFileId; }
// Initialize the main source file name // Initialize the main source file name
void setDebugSourceFile(const std::string& file) void setDebugMainSourceFile(const std::string& file)
{ {
if (trackDebugInfo) { if (trackDebugInfo) {
dirtyLineTracker = true; dirtyLineTracker = true;
@ -420,8 +420,7 @@ public:
// Also reset current last DebugScope and current source line to unknown // Also reset current last DebugScope and current source line to unknown
void setBuildPoint(Block* bp) { void setBuildPoint(Block* bp) {
buildPoint = bp; buildPoint = bp;
// TODO: Technically, change of build point should set line tracker dirty. But we'll have bad line info for dirtyLineTracker = true;
// branch instructions. Commenting this for now because at least this matches the old behavior.
dirtyScopeTracker = true; dirtyScopeTracker = true;
} }
Block* getBuildPoint() const { return buildPoint; } Block* getBuildPoint() const { return buildPoint; }
@ -430,6 +429,11 @@ public:
// Optionally, additional debug info instructions may also be prepended. // Optionally, additional debug info instructions may also be prepended.
void addInstruction(std::unique_ptr<Instruction> inst); void addInstruction(std::unique_ptr<Instruction> inst);
// Append an instruction to the end of the current build point without prepending any debug instructions.
// This is useful for insertion of some debug info instructions themselves or some control flow instructions
// that are attached to its predecessor instruction.
void addInstructionNoDebugInfo(std::unique_ptr<Instruction> inst);
// Make the entry-point function. The returned pointer is only valid // Make the entry-point function. The returned pointer is only valid
// for the lifetime of this builder. // for the lifetime of this builder.
Function* makeEntryPoint(const char*); Function* makeEntryPoint(const char*);
@ -643,7 +647,7 @@ public:
const std::vector<int>& valueToSegment, int defaultSegment, std::vector<Block*>& segmentBB); const std::vector<int>& valueToSegment, int defaultSegment, std::vector<Block*>& segmentBB);
// Add a branch to the innermost switch's merge block. // Add a branch to the innermost switch's merge block.
void addSwitchBreak(); void addSwitchBreak(bool implicit);
// Move to the next code segment, passing in the return argument in makeSwitch() // Move to the next code segment, passing in the return argument in makeSwitch()
void nextSwitchSegment(std::vector<Block*>& segmentBB, int segment); void nextSwitchSegment(std::vector<Block*>& segmentBB, int segment);
@ -865,7 +869,9 @@ public:
void dump(std::vector<unsigned int>&) const; void dump(std::vector<unsigned int>&) const;
void createBranch(Block* block); // Add a branch to the target block.
// If set implicit, the branch instruction shouldn't have debug source location.
void createBranch(bool implicit, Block* block);
void createConditionalBranch(Id condition, Block* thenBlock, Block* elseBlock); void createConditionalBranch(Id condition, Block* thenBlock, Block* elseBlock);
void createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control, void createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control,
const std::vector<unsigned int>& operands); const std::vector<unsigned int>& operands);

View File

@ -58,6 +58,7 @@ gl_FragCoord origin is upper left
10: TypeFunction 8(fvec4) 9(ptr) 10: TypeFunction 8(fvec4) 9(ptr)
5(main): 3 Function None 4 5(main): 3 Function None 4
6: Label 6: Label
Line 1 3 0
Return Return
FunctionEnd FunctionEnd
Line 1 2 1 Line 1 2 1

View File

@ -296,6 +296,7 @@ void main()
Store 179 186 Store 179 186
Branch 181 Branch 181
181: Label 181: Label
Line 1 83 0
Return Return
FunctionEnd FunctionEnd
Line 1 16 13 Line 1 16 13
@ -411,6 +412,7 @@ void main()
Store 90 96 Store 90 96
Branch 92 Branch 92
92: Label 92: Label
Line 1 53 0
97: 10(float) Load 90 97: 10(float) Load 90
Line 1 51 0 Line 1 51 0
98: 10(float) Load 56(result) 98: 10(float) Load 56(result)

View File

@ -297,6 +297,7 @@ void main()
Store 179 186 Store 179 186
Branch 181 Branch 181
181: Label 181: Label
Line 1 83 0
Return Return
FunctionEnd FunctionEnd
Line 1 16 13 Line 1 16 13
@ -412,6 +413,7 @@ void main()
Store 90 96 Store 90 96
Branch 92 Branch 92
92: Label 92: Label
Line 1 53 0
97: 10(float) Load 90 97: 10(float) Load 90
Line 1 51 0 Line 1 51 0
98: 10(float) Load 56(result) 98: 10(float) Load 56(result)

View File

@ -1,7 +1,7 @@
spv.debuginfo.bufferref.glsl.frag spv.debuginfo.bufferref.glsl.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 146 // Id's are bound by 148
Capability Shader Capability Shader
Capability PhysicalStorageBufferAddressesEXT Capability PhysicalStorageBufferAddressesEXT
@ -177,6 +177,7 @@ void main() {
138: 7(int) Constant 27 138: 7(int) Constant 27
136: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 137 132 18 138 12 21 137 135(out_fragColor) 67 136: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 137 132 18 138 12 21 137 135(out_fragColor) 67
141: 39(float) Constant 1065353216 141: 39(float) Constant 1065353216
147: 7(int) Constant 28
14(main): 4 Function None 5 14(main): 4 Function None 5
15: Label 15: Label
53(meshData): 50(ptr) Variable Function 53(meshData): 50(ptr) Variable Function
@ -226,5 +227,6 @@ void main() {
144: 39(float) CompositeExtract 139 2 144: 39(float) CompositeExtract 139 2
145: 131(fvec4) CompositeConstruct 142 143 144 141 145: 131(fvec4) CompositeConstruct 142 143 144 141
Store 135(out_fragColor) 145 Store 135(out_fragColor) 145
146: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 147 147 12 12
Return Return
FunctionEnd FunctionEnd

View File

@ -1,7 +1,7 @@
spv.debuginfo.const_params.glsl.comp spv.debuginfo.const_params.glsl.comp
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 71 // Id's are bound by 73
Capability Shader Capability Shader
Extension "SPV_KHR_non_semantic_info" Extension "SPV_KHR_non_semantic_info"
@ -85,6 +85,7 @@ void main()
66: 22(fvec3) ConstantComposite 64 64 64 66: 22(fvec3) ConstantComposite 64 64 64
67: 24(fvec4) ConstantComposite 64 64 64 64 67: 24(fvec4) ConstantComposite 64 64 64 64
70: 7(int) Constant 13 70: 7(int) Constant 13
72: 7(int) Constant 14
14(main): 4 Function None 5 14(main): 4 Function None 5
15: Label 15: Label
62: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58 62: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
@ -92,6 +93,7 @@ void main()
61: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 58 14(main) 61: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 58 14(main)
69: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 37 70 70 12 12 69: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 37 70 70 12 12
68: 4 FunctionCall 33(function(f1;vf2;vf3;vf4;) 64 65 66 67 68: 4 FunctionCall 33(function(f1;vf2;vf3;vf4;) 64 65 66 67
71: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 37 72 72 12 12
Return Return
FunctionEnd FunctionEnd
33(function(f1;vf2;vf3;vf4;): 4 Function None 27 33(function(f1;vf2;vf3;vf4;): 4 Function None 27

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
spv.debuginfo.glsl.geom spv.debuginfo.glsl.geom
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 274 // Id's are bound by 276
Capability Geometry Capability Geometry
Capability MultiViewport Capability MultiViewport
@ -333,6 +333,7 @@ void main(void)
261: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 262 30 18 259 12 21 262 260(gl_PrimitiveIDIn) 68 261: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 262 30 18 259 12 21 262 260(gl_PrimitiveIDIn) 68
266: 7(int) Constant 66 266: 7(int) Constant 66
273: 7(int) Constant 68 273: 7(int) Constant 68
275: 7(int) Constant 69
14(main): 4 Function None 5 14(main): 4 Function None 5
15: Label 15: Label
34(i): 31(ptr) Variable Function 34(i): 31(ptr) Variable Function
@ -446,5 +447,6 @@ void main(void)
271: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17 271: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
272: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 273 273 12 12 272: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 273 273 12 12
EndPrimitive EndPrimitive
274: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 275 275 12 12
Return Return
FunctionEnd FunctionEnd

View File

@ -1,14 +1,14 @@
spv.debuginfo.glsl.tesc spv.debuginfo.glsl.tesc
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 569 // Id's are bound by 571
Capability Tessellation Capability Tessellation
Extension "SPV_KHR_non_semantic_info" Extension "SPV_KHR_non_semantic_info"
1: ExtInstImport "NonSemantic.Shader.DebugInfo.100" 1: ExtInstImport "NonSemantic.Shader.DebugInfo.100"
3: ExtInstImport "GLSL.std.450" 3: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint TessellationControl 14 "main" 260 265 294 383 399 516 532 542 557 EntryPoint TessellationControl 14 "main" 262 267 296 385 401 516 532 542 557
ExecutionMode 14 OutputVertices 4 ExecutionMode 14 OutputVertices 4
2: String "spv.debuginfo.glsl.tesc" 2: String "spv.debuginfo.glsl.tesc"
8: String "uint" 8: String "uint"
@ -180,22 +180,22 @@ void main()
126: String "int" 126: String "int"
137: String "clip0" 137: String "clip0"
158: String "clip1" 158: String "clip1"
237: String "pos" 239: String "pos"
245: String "gl_Position" 247: String "gl_Position"
248: String "gl_PointSize" 250: String "gl_PointSize"
251: String "gl_CullDistance" 253: String "gl_CullDistance"
255: String "gl_PerVertex" 257: String "gl_PerVertex"
262: String "gl_in" 264: String "gl_in"
267: String "gl_InvocationID" 269: String "gl_InvocationID"
275: String "type.2d.image" 277: String "type.2d.image"
277: String "@type.2d.image" 279: String "@type.2d.image"
281: String "type.sampled.image" 283: String "type.sampled.image"
282: String "@type.sampled.image" 284: String "@type.sampled.image"
287: String "samplerHeight" 289: String "samplerHeight"
296: String "inUV" 298: String "inUV"
315: String "i" 317: String "i"
385: String "gl_TessLevelInner" 387: String "gl_TessLevelInner"
401: String "gl_TessLevelOuter" 403: String "gl_TessLevelOuter"
518: String "gl_out" 518: String "gl_out"
534: String "outNormal" 534: String "outNormal"
544: String "inNormal" 544: String "inNormal"
@ -220,27 +220,27 @@ void main()
Name 122 "ubo" Name 122 "ubo"
Name 135 "clip0" Name 135 "clip0"
Name 156 "clip1" Name 156 "clip1"
Name 235 "pos" Name 237 "pos"
Name 243 "gl_PerVertex" Name 245 "gl_PerVertex"
MemberName 243(gl_PerVertex) 0 "gl_Position" MemberName 245(gl_PerVertex) 0 "gl_Position"
MemberName 243(gl_PerVertex) 1 "gl_PointSize" MemberName 245(gl_PerVertex) 1 "gl_PointSize"
MemberName 243(gl_PerVertex) 2 "gl_ClipDistance" MemberName 245(gl_PerVertex) 2 "gl_ClipDistance"
MemberName 243(gl_PerVertex) 3 "gl_CullDistance" MemberName 245(gl_PerVertex) 3 "gl_CullDistance"
Name 260 "gl_in" Name 262 "gl_in"
Name 265 "gl_InvocationID" Name 267 "gl_InvocationID"
Name 285 "samplerHeight" Name 287 "samplerHeight"
Name 294 "inUV" Name 296 "inUV"
Name 313 "i" Name 315 "i"
Name 383 "gl_TessLevelInner" Name 385 "gl_TessLevelInner"
Name 399 "gl_TessLevelOuter" Name 401 "gl_TessLevelOuter"
Name 424 "param" Name 426 "param"
Name 430 "param" Name 432 "param"
Name 435 "param" Name 437 "param"
Name 440 "param" Name 442 "param"
Name 445 "param" Name 447 "param"
Name 450 "param" Name 452 "param"
Name 455 "param" Name 457 "param"
Name 460 "param" Name 462 "param"
Name 503 "gl_PerVertex" Name 503 "gl_PerVertex"
MemberName 503(gl_PerVertex) 0 "gl_Position" MemberName 503(gl_PerVertex) 0 "gl_Position"
MemberName 503(gl_PerVertex) 1 "gl_PointSize" MemberName 503(gl_PerVertex) 1 "gl_PointSize"
@ -266,19 +266,19 @@ void main()
MemberDecorate 99(UBO) 7 Offset 256 MemberDecorate 99(UBO) 7 Offset 256
Decorate 122(ubo) Binding 0 Decorate 122(ubo) Binding 0
Decorate 122(ubo) DescriptorSet 0 Decorate 122(ubo) DescriptorSet 0
Decorate 243(gl_PerVertex) Block Decorate 245(gl_PerVertex) Block
MemberDecorate 243(gl_PerVertex) 0 BuiltIn Position MemberDecorate 245(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 243(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 245(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 243(gl_PerVertex) 2 BuiltIn ClipDistance MemberDecorate 245(gl_PerVertex) 2 BuiltIn ClipDistance
MemberDecorate 243(gl_PerVertex) 3 BuiltIn CullDistance MemberDecorate 245(gl_PerVertex) 3 BuiltIn CullDistance
Decorate 265(gl_InvocationID) BuiltIn InvocationId Decorate 267(gl_InvocationID) BuiltIn InvocationId
Decorate 285(samplerHeight) Binding 1 Decorate 287(samplerHeight) Binding 1
Decorate 285(samplerHeight) DescriptorSet 0 Decorate 287(samplerHeight) DescriptorSet 0
Decorate 294(inUV) Location 1 Decorate 296(inUV) Location 1
Decorate 383(gl_TessLevelInner) BuiltIn TessLevelInner Decorate 385(gl_TessLevelInner) BuiltIn TessLevelInner
Decorate 383(gl_TessLevelInner) Patch Decorate 385(gl_TessLevelInner) Patch
Decorate 399(gl_TessLevelOuter) BuiltIn TessLevelOuter Decorate 401(gl_TessLevelOuter) BuiltIn TessLevelOuter
Decorate 399(gl_TessLevelOuter) Patch Decorate 401(gl_TessLevelOuter) Patch
Decorate 503(gl_PerVertex) Block Decorate 503(gl_PerVertex) Block
MemberDecorate 503(gl_PerVertex) 0 BuiltIn Position MemberDecorate 503(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 503(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 503(gl_PerVertex) 1 BuiltIn PointSize
@ -387,107 +387,109 @@ void main()
222: 125(int) Constant 5 222: 125(int) Constant 5
226: 16(float) Constant 1065353216 226: 16(float) Constant 1065353216
227: 16(float) Constant 1115684864 227: 16(float) Constant 1115684864
238: 7(int) Constant 85 233: 7(int) Constant 77
236: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 237 21 33 238 12 56 20 240: 7(int) Constant 85
241: TypeArray 16(float) 37 238: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 239 21 33 240 12 56 20
242: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 18 37 243: TypeArray 16(float) 37
243(gl_PerVertex): TypeStruct 19(fvec4) 16(float) 241 241 244: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 18 37
246: 7(int) Constant 1756 245(gl_PerVertex): TypeStruct 19(fvec4) 16(float) 243 243
244: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 245 21 33 37 246 12 12 13 248: 7(int) Constant 1756
249: 7(int) Constant 1774 246: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 247 21 33 37 248 12 12 13
247: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 248 18 33 37 249 12 12 13 251: 7(int) Constant 1774
252: 7(int) Constant 1817 249: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 250 18 33 37 251 12 12 13
250: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 251 242 33 37 252 12 12 13 254: 7(int) Constant 1817
253: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 251 242 33 37 252 12 12 13 252: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 253 244 33 37 254 12 12 13
254: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 255 37 33 238 12 36 255 12 13 244 247 250 253 255: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 253 244 33 37 254 12 12 13
256: TypeArray 243(gl_PerVertex) 10 256: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 257 37 33 240 12 36 257 12 13 246 249 252 255
257: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 254 10 258: TypeArray 245(gl_PerVertex) 10
258: TypePointer Input 256 259: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 256 10
259: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 257 37 12 260: TypePointer Input 258
260(gl_in): 258(ptr) Variable Input 261: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 259 37 12
261: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 262 257 33 238 12 36 262 260(gl_in) 112 262(gl_in): 260(ptr) Variable Input
263: TypePointer Input 125(int) 263: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 264 259 33 240 12 36 264 262(gl_in) 112
264: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 127 37 12 265: TypePointer Input 125(int)
265(gl_InvocationID): 263(ptr) Variable Input 266: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 127 37 12
266: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 267 127 33 238 12 36 267 265(gl_InvocationID) 112 267(gl_InvocationID): 265(ptr) Variable Input
269: TypePointer Input 19(fvec4) 268: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 269 127 33 240 12 36 269 267(gl_InvocationID) 112
270: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 21 37 12 271: TypePointer Input 19(fvec4)
273: TypeImage 16(float) 2D sampled format:Unknown 272: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 21 37 12
276: 7(int) Constant 86 275: TypeImage 16(float) 2D sampled format:Unknown
278: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone) 278: 7(int) Constant 86
274: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 275 12 33 276 12 36 277 278 13 280: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
279: TypeSampledImage 273 276: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 277 12 33 278 12 36 279 280 13
280: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 281 12 33 276 12 36 282 278 13 281: TypeSampledImage 275
283: TypePointer UniformConstant 279 282: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 283 12 33 278 12 36 284 280 13
284: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 280 12 12 285: TypePointer UniformConstant 281
285(samplerHeight): 283(ptr) Variable UniformConstant 286: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 282 12 12
286: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 287 280 33 276 12 36 287 285(samplerHeight) 112 287(samplerHeight): 285(ptr) Variable UniformConstant
290: TypeArray 97(fvec2) 10 288: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 289 282 33 278 12 36 289 287(samplerHeight) 112
291: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 98 10 292: TypeArray 97(fvec2) 10
292: TypePointer Input 290 293: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 98 10
293: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 291 37 12 294: TypePointer Input 292
294(inUV): 292(ptr) Variable Input 295: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 293 37 12
295: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 296 291 33 276 12 36 296 294(inUV) 112 296(inUV): 294(ptr) Variable Input
297: TypePointer Input 97(fvec2) 297: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 298 293 33 278 12 36 298 296(inUV) 112
298: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 98 37 12 299: TypePointer Input 97(fvec2)
303: 125(int) Constant 4 300: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 98 37 12
311: TypePointer Function 125(int) 305: 125(int) Constant 4
312: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 127 23 12 313: TypePointer Function 125(int)
316: 7(int) Constant 89 314: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 127 23 12
314: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 315 127 33 316 12 56 20 318: 7(int) Constant 89
333: 7(int) Constant 90 316: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 317 127 33 318 12 56 20
334: 125(int) Constant 3 335: 7(int) Constant 90
336: TypePointer Uniform 19(fvec4) 336: 125(int) Constant 3
337: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 21 38 12 338: TypePointer Uniform 19(fvec4)
341: 16(float) Constant 1090519040 339: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 21 38 12
346: 48(bool) ConstantFalse 343: 16(float) Constant 1090519040
349: 7(int) Constant 92 348: 48(bool) ConstantFalse
351: 7(int) Constant 92
359: 7(int) Constant 95 359: 7(int) Constant 95
368: 7(int) Constant 100 364: 7(int) Constant 96
375: 7(int) Constant 102 370: 7(int) Constant 100
379: TypeArray 16(float) 38 377: 7(int) Constant 102
380: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 18 38 381: TypeArray 16(float) 38
381: TypePointer Output 379 382: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 18 38
382: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 380 13 12 383: TypePointer Output 381
383(gl_TessLevelInner): 381(ptr) Variable Output 384: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 382 13 12
386: 7(int) Constant 104 385(gl_TessLevelInner): 383(ptr) Variable Output
384: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 385 380 33 386 12 36 385 383(gl_TessLevelInner) 112 388: 7(int) Constant 104
387: TypePointer Output 16(float) 386: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 387 382 33 388 12 36 387 385(gl_TessLevelInner) 112
388: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 13 12 389: TypePointer Output 16(float)
394: 7(int) Constant 105 390: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 13 12
395: TypeArray 16(float) 20 396: 7(int) Constant 105
396: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 18 20 397: TypeArray 16(float) 20
397: TypePointer Output 395 398: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 18 20
398: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 396 13 12 399: TypePointer Output 397
399(gl_TessLevelOuter): 397(ptr) Variable Output 400: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 398 13 12
402: 7(int) Constant 106 401(gl_TessLevelOuter): 399(ptr) Variable Output
400: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 401 396 33 402 12 36 401 399(gl_TessLevelOuter) 112 404: 7(int) Constant 106
407: 7(int) Constant 107 402: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 403 398 33 404 12 36 403 401(gl_TessLevelOuter) 112
408: 125(int) Constant 2 409: 7(int) Constant 107
411: 7(int) Constant 108 410: 125(int) Constant 2
414: 7(int) Constant 109 413: 7(int) Constant 108
419: 7(int) Constant 113 416: 7(int) Constant 109
428: 7(int) Constant 115 421: 7(int) Constant 113
438: 7(int) Constant 116 430: 7(int) Constant 115
448: 7(int) Constant 117 440: 7(int) Constant 116
458: 7(int) Constant 118 450: 7(int) Constant 117
467: 7(int) Constant 119 460: 7(int) Constant 118
475: 7(int) Constant 120 469: 7(int) Constant 119
485: 7(int) Constant 126 477: 7(int) Constant 120
488: 7(int) Constant 127 487: 7(int) Constant 126
491: 7(int) Constant 128 490: 7(int) Constant 127
494: 7(int) Constant 129 493: 7(int) Constant 128
497: 7(int) Constant 130 496: 7(int) Constant 129
500: 7(int) Constant 131 499: 7(int) Constant 130
503(gl_PerVertex): TypeStruct 19(fvec4) 16(float) 241 241 502: 7(int) Constant 131
503(gl_PerVertex): TypeStruct 19(fvec4) 16(float) 243 243
505: 7(int) Constant 110 505: 7(int) Constant 110
504: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 245 21 33 37 505 12 12 13 504: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 247 21 33 37 505 12 12 13
506: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 248 18 33 37 491 12 12 13 506: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 250 18 33 37 493 12 12 13
508: 7(int) Constant 171 508: 7(int) Constant 171
507: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 251 242 33 37 508 12 12 13 507: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 253 244 33 37 508 12 12 13
509: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 251 242 33 37 508 12 12 13 509: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 253 244 33 37 508 12 12 13
511: 7(int) Constant 137 511: 7(int) Constant 137
510: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 255 37 33 511 12 36 255 12 13 504 506 507 509 510: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 257 37 33 511 12 36 257 12 13 504 506 507 509
512: TypeArray 503(gl_PerVertex) 20 512: TypeArray 503(gl_PerVertex) 20
513: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 510 20 513: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 510 20
514: TypePointer Output 512 514: TypePointer Output 512
@ -522,169 +524,169 @@ void main()
558: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 559 554 33 560 12 36 559 557(outUV) 112 558: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 559 554 33 560 12 36 559 557(outUV) 112
566: TypePointer Output 97(fvec2) 566: TypePointer Output 97(fvec2)
567: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 98 13 12 567: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 98 13 12
570: 7(int) Constant 140
14(main): 4 Function None 5 14(main): 4 Function None 5
15: Label 15: Label
424(param): 22(ptr) Variable Function 426(param): 22(ptr) Variable Function
430(param): 22(ptr) Variable Function 432(param): 22(ptr) Variable Function
435(param): 22(ptr) Variable Function 437(param): 22(ptr) Variable Function
440(param): 22(ptr) Variable Function 442(param): 22(ptr) Variable Function
445(param): 22(ptr) Variable Function 447(param): 22(ptr) Variable Function
450(param): 22(ptr) Variable Function 452(param): 22(ptr) Variable Function
455(param): 22(ptr) Variable Function 457(param): 22(ptr) Variable Function
460(param): 22(ptr) Variable Function 462(param): 22(ptr) Variable Function
364: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59 366: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
365: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 60 60 12 12 367: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 60 60 12 12
363: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 59 14(main) 365: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 59 14(main)
367: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 368 368 12 12 369: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 370 370 12 12
366: 125(int) Load 265(gl_InvocationID) 368: 125(int) Load 267(gl_InvocationID)
369: 48(bool) IEqual 366 141 371: 48(bool) IEqual 368 141
SelectionMerge 371 None SelectionMerge 373 None
BranchConditional 369 370 371 BranchConditional 371 372 373
370: Label 372: Label
373: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59 375: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
374: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 375 375 12 12 376: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 377 377 12 12
372: 48(bool) FunctionCall 53(frustumCheck() 374: 48(bool) FunctionCall 53(frustumCheck()
376: 48(bool) LogicalNot 372 378: 48(bool) LogicalNot 374
SelectionMerge 378 None SelectionMerge 380 None
BranchConditional 376 377 415 BranchConditional 378 379 417
377: Label 379: Label
390: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59 392: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
391: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 386 386 12 12 393: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 388 388 12 12
389: 387(ptr) AccessChain 383(gl_TessLevelInner) 141 391: 389(ptr) AccessChain 385(gl_TessLevelInner) 141
Store 389 148 Store 391 148
393: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 394 394 12 12 395: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 396 396 12 12
392: 387(ptr) AccessChain 383(gl_TessLevelInner) 128 394: 389(ptr) AccessChain 385(gl_TessLevelInner) 128
Store 392 148 Store 394 148
404: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 402 402 12 12 406: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 404 404 12 12
403: 387(ptr) AccessChain 399(gl_TessLevelOuter) 141 405: 389(ptr) AccessChain 401(gl_TessLevelOuter) 141
Store 403 148
406: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 407 407 12 12
405: 387(ptr) AccessChain 399(gl_TessLevelOuter) 128
Store 405 148 Store 405 148
410: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 411 411 12 12 408: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 409 409 12 12
409: 387(ptr) AccessChain 399(gl_TessLevelOuter) 408 407: 389(ptr) AccessChain 401(gl_TessLevelOuter) 128
Store 409 148 Store 407 148
413: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 414 414 12 12 412: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 413 413 12 12
412: 387(ptr) AccessChain 399(gl_TessLevelOuter) 334 411: 389(ptr) AccessChain 401(gl_TessLevelOuter) 410
Store 412 148 Store 411 148
Branch 378 415: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 416 416 12 12
415: Label 414: 389(ptr) AccessChain 401(gl_TessLevelOuter) 336
417: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59 Store 414 148
418: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 419 419 12 12 Branch 380
416: 217(ptr) AccessChain 122(ubo) 222 417: Label
420: 16(float) Load 416 419: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
421: 48(bool) FOrdGreaterThan 420 148 420: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 421 421 12 12
SelectionMerge 423 None 418: 217(ptr) AccessChain 122(ubo) 222
BranchConditional 421 422 481 422: 16(float) Load 418
422: Label 423: 48(bool) FOrdGreaterThan 422 148
426: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59 SelectionMerge 425 None
427: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 428 428 12 12 BranchConditional 423 424 483
425: 269(ptr) AccessChain 260(gl_in) 334 141 424: Label
429: 19(fvec4) Load 425 428: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
Store 424(param) 429 429: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 430 430 12 12
431: 269(ptr) AccessChain 260(gl_in) 141 141 427: 271(ptr) AccessChain 262(gl_in) 336 141
432: 19(fvec4) Load 431 431: 19(fvec4) Load 427
Store 430(param) 432 Store 426(param) 431
433: 16(float) FunctionCall 29(screenSpaceTessFactor(vf4;vf4;) 424(param) 430(param) 433: 271(ptr) AccessChain 262(gl_in) 141 141
434: 387(ptr) AccessChain 399(gl_TessLevelOuter) 141 434: 19(fvec4) Load 433
Store 434 433 Store 432(param) 434
437: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 438 438 12 12 435: 16(float) FunctionCall 29(screenSpaceTessFactor(vf4;vf4;) 426(param) 432(param)
436: 269(ptr) AccessChain 260(gl_in) 141 141 436: 389(ptr) AccessChain 401(gl_TessLevelOuter) 141
439: 19(fvec4) Load 436 Store 436 435
Store 435(param) 439 439: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 440 440 12 12
441: 269(ptr) AccessChain 260(gl_in) 128 141 438: 271(ptr) AccessChain 262(gl_in) 141 141
442: 19(fvec4) Load 441 441: 19(fvec4) Load 438
Store 440(param) 442 Store 437(param) 441
443: 16(float) FunctionCall 29(screenSpaceTessFactor(vf4;vf4;) 435(param) 440(param) 443: 271(ptr) AccessChain 262(gl_in) 128 141
444: 387(ptr) AccessChain 399(gl_TessLevelOuter) 128 444: 19(fvec4) Load 443
Store 444 443 Store 442(param) 444
447: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 448 448 12 12 445: 16(float) FunctionCall 29(screenSpaceTessFactor(vf4;vf4;) 437(param) 442(param)
446: 269(ptr) AccessChain 260(gl_in) 128 141 446: 389(ptr) AccessChain 401(gl_TessLevelOuter) 128
449: 19(fvec4) Load 446 Store 446 445
Store 445(param) 449 449: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 450 450 12 12
451: 269(ptr) AccessChain 260(gl_in) 408 141 448: 271(ptr) AccessChain 262(gl_in) 128 141
452: 19(fvec4) Load 451 451: 19(fvec4) Load 448
Store 450(param) 452 Store 447(param) 451
453: 16(float) FunctionCall 29(screenSpaceTessFactor(vf4;vf4;) 445(param) 450(param) 453: 271(ptr) AccessChain 262(gl_in) 410 141
454: 387(ptr) AccessChain 399(gl_TessLevelOuter) 408 454: 19(fvec4) Load 453
Store 454 453 Store 452(param) 454
457: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 458 458 12 12 455: 16(float) FunctionCall 29(screenSpaceTessFactor(vf4;vf4;) 447(param) 452(param)
456: 269(ptr) AccessChain 260(gl_in) 408 141 456: 389(ptr) AccessChain 401(gl_TessLevelOuter) 410
459: 19(fvec4) Load 456 Store 456 455
Store 455(param) 459 459: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 460 460 12 12
461: 269(ptr) AccessChain 260(gl_in) 334 141 458: 271(ptr) AccessChain 262(gl_in) 410 141
462: 19(fvec4) Load 461 461: 19(fvec4) Load 458
Store 460(param) 462 Store 457(param) 461
463: 16(float) FunctionCall 29(screenSpaceTessFactor(vf4;vf4;) 455(param) 460(param) 463: 271(ptr) AccessChain 262(gl_in) 336 141
464: 387(ptr) AccessChain 399(gl_TessLevelOuter) 334 464: 19(fvec4) Load 463
Store 464 463 Store 462(param) 464
466: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 467 467 12 12 465: 16(float) FunctionCall 29(screenSpaceTessFactor(vf4;vf4;) 457(param) 462(param)
465: 387(ptr) AccessChain 399(gl_TessLevelOuter) 141 466: 389(ptr) AccessChain 401(gl_TessLevelOuter) 336
468: 16(float) Load 465 Store 466 465
469: 387(ptr) AccessChain 399(gl_TessLevelOuter) 334 468: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 469 469 12 12
470: 16(float) Load 469 467: 389(ptr) AccessChain 401(gl_TessLevelOuter) 141
471: 16(float) ExtInst 3(GLSL.std.450) 46(FMix) 468 470 68 470: 16(float) Load 467
472: 387(ptr) AccessChain 383(gl_TessLevelInner) 141 471: 389(ptr) AccessChain 401(gl_TessLevelOuter) 336
Store 472 471 472: 16(float) Load 471
474: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 475 475 12 12 473: 16(float) ExtInst 3(GLSL.std.450) 46(FMix) 470 472 68
473: 387(ptr) AccessChain 399(gl_TessLevelOuter) 408 474: 389(ptr) AccessChain 385(gl_TessLevelInner) 141
476: 16(float) Load 473 Store 474 473
477: 387(ptr) AccessChain 399(gl_TessLevelOuter) 128 476: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 477 477 12 12
478: 16(float) Load 477 475: 389(ptr) AccessChain 401(gl_TessLevelOuter) 410
479: 16(float) ExtInst 3(GLSL.std.450) 46(FMix) 476 478 68 478: 16(float) Load 475
480: 387(ptr) AccessChain 383(gl_TessLevelInner) 128 479: 389(ptr) AccessChain 401(gl_TessLevelOuter) 128
Store 480 479 480: 16(float) Load 479
Branch 423 481: 16(float) ExtInst 3(GLSL.std.450) 46(FMix) 478 480 68
481: Label 482: 389(ptr) AccessChain 385(gl_TessLevelInner) 128
483: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59 Store 482 481
484: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 485 485 12 12 Branch 425
482: 387(ptr) AccessChain 383(gl_TessLevelInner) 141 483: Label
Store 482 226 485: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
487: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 488 488 12 12 486: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 487 487 12 12
486: 387(ptr) AccessChain 383(gl_TessLevelInner) 128 484: 389(ptr) AccessChain 385(gl_TessLevelInner) 141
Store 486 226 Store 484 226
490: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 491 491 12 12 489: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 490 490 12 12
489: 387(ptr) AccessChain 399(gl_TessLevelOuter) 141 488: 389(ptr) AccessChain 385(gl_TessLevelInner) 128
Store 489 226 Store 488 226
493: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 494 494 12 12 492: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 493 493 12 12
492: 387(ptr) AccessChain 399(gl_TessLevelOuter) 128 491: 389(ptr) AccessChain 401(gl_TessLevelOuter) 141
Store 492 226 Store 491 226
496: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 497 497 12 12 495: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 496 496 12 12
495: 387(ptr) AccessChain 399(gl_TessLevelOuter) 408 494: 389(ptr) AccessChain 401(gl_TessLevelOuter) 128
Store 495 226 Store 494 226
499: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 500 500 12 12 498: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 499 499 12 12
498: 387(ptr) AccessChain 399(gl_TessLevelOuter) 334 497: 389(ptr) AccessChain 401(gl_TessLevelOuter) 410
Store 498 226 Store 497 226
Branch 423 501: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 502 502 12 12
423: Label 500: 389(ptr) AccessChain 401(gl_TessLevelOuter) 336
501: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59 Store 500 226
Branch 378 Branch 425
378: Label 425: Label
502: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59 Branch 380
Branch 371 380: Label
371: Label Branch 373
373: Label
520: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59 520: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
521: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 511 511 12 12 521: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 511 511 12 12
519: 125(int) Load 265(gl_InvocationID) 519: 125(int) Load 267(gl_InvocationID)
522: 125(int) Load 265(gl_InvocationID) 522: 125(int) Load 267(gl_InvocationID)
523: 269(ptr) AccessChain 260(gl_in) 522 141 523: 271(ptr) AccessChain 262(gl_in) 522 141
524: 19(fvec4) Load 523 524: 19(fvec4) Load 523
527: 525(ptr) AccessChain 516(gl_out) 519 141 527: 525(ptr) AccessChain 516(gl_out) 519 141
Store 527 524 Store 527 524
537: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 535 535 12 12 537: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 535 535 12 12
536: 125(int) Load 265(gl_InvocationID) 536: 125(int) Load 267(gl_InvocationID)
545: 125(int) Load 265(gl_InvocationID) 545: 125(int) Load 267(gl_InvocationID)
548: 546(ptr) AccessChain 542(inNormal) 545 548: 546(ptr) AccessChain 542(inNormal) 545
549: 146(fvec3) Load 548 549: 146(fvec3) Load 548
552: 550(ptr) AccessChain 532(outNormal) 536 552: 550(ptr) AccessChain 532(outNormal) 536
Store 552 549 Store 552 549
562: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 560 560 12 12 562: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 560 560 12 12
561: 125(int) Load 265(gl_InvocationID) 561: 125(int) Load 267(gl_InvocationID)
563: 125(int) Load 265(gl_InvocationID) 563: 125(int) Load 267(gl_InvocationID)
564: 297(ptr) AccessChain 294(inUV) 563 564: 299(ptr) AccessChain 296(inUV) 563
565: 97(fvec2) Load 564 565: 97(fvec2) Load 564
568: 566(ptr) AccessChain 557(outUV) 561 568: 566(ptr) AccessChain 557(outUV) 561
Store 568 565 Store 568 565
569: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 570 570 12 12
Return Return
FunctionEnd FunctionEnd
29(screenSpaceTessFactor(vf4;vf4;): 16(float) Function None 25 29(screenSpaceTessFactor(vf4;vf4;): 16(float) Function None 25
@ -801,73 +803,72 @@ void main()
FunctionEnd FunctionEnd
53(frustumCheck(): 48(bool) Function None 51 53(frustumCheck(): 48(bool) Function None 51
54: Label 54: Label
235(pos): 22(ptr) Variable Function 237(pos): 22(ptr) Variable Function
313(i): 311(ptr) Variable Function 315(i): 313(ptr) Variable Function
233: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56 235: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
234: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 57 57 12 12 236: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 57 57 12 12
232: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 56 53(frustumCheck() 234: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 56 53(frustumCheck()
240: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 238 238 12 12 242: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 240 240 12 12
239: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 236 235(pos) 42 241: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 238 237(pos) 42
268: 125(int) Load 265(gl_InvocationID) 270: 125(int) Load 267(gl_InvocationID)
271: 269(ptr) AccessChain 260(gl_in) 268 141 273: 271(ptr) AccessChain 262(gl_in) 270 141
272: 19(fvec4) Load 271 274: 19(fvec4) Load 273
Store 235(pos) 272 Store 237(pos) 274
289: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 276 276 12 12 291: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 278 278 12 12
288: 279 Load 285(samplerHeight) 290: 281 Load 287(samplerHeight)
299: 297(ptr) AccessChain 294(inUV) 141 301: 299(ptr) AccessChain 296(inUV) 141
300: 97(fvec2) Load 299 302: 97(fvec2) Load 301
301: 19(fvec4) ImageSampleExplicitLod 288 300 Lod 148 303: 19(fvec4) ImageSampleExplicitLod 290 302 Lod 148
302: 16(float) CompositeExtract 301 0 304: 16(float) CompositeExtract 303 0
304: 217(ptr) AccessChain 122(ubo) 303 306: 217(ptr) AccessChain 122(ubo) 305
305: 16(float) Load 304 307: 16(float) Load 306
306: 16(float) FMul 302 305 308: 16(float) FMul 304 307
307: 73(ptr) AccessChain 235(pos) 37 309: 73(ptr) AccessChain 237(pos) 37
308: 16(float) Load 307 310: 16(float) Load 309
309: 16(float) FSub 308 306 311: 16(float) FSub 310 308
310: 73(ptr) AccessChain 235(pos) 37 312: 73(ptr) AccessChain 237(pos) 37
Store 310 309 Store 312 311
318: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 316 316 12 12 320: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 318 318 12 12
317: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 314 313(i) 42 319: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 316 315(i) 42
Store 313(i) 141 Store 315(i) 141
Branch 319 Branch 321
319: Label
323: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
324: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 316 316 12 12
LoopMerge 321 322 None
Branch 325
325: Label
327: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
328: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 316 316 12 12
326: 125(int) Load 313(i)
329: 48(bool) SLessThan 326 186
BranchConditional 329 320 321
320: Label
331: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
332: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 333 333 12 12
330: 19(fvec4) Load 235(pos)
335: 125(int) Load 313(i)
338: 336(ptr) AccessChain 122(ubo) 334 335
339: 19(fvec4) Load 338
340: 16(float) Dot 330 339
342: 16(float) FAdd 340 341
343: 48(bool) FOrdLessThan 342 148
SelectionMerge 345 None
BranchConditional 343 344 345
344: Label
347: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
348: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 349 349 12 12
ReturnValue 346
345: Label
352: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
Branch 322
322: Label
354: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
355: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 316 316 12 12
353: 125(int) Load 313(i)
356: 125(int) IAdd 353 128
Store 313(i) 356
Branch 319
321: Label 321: Label
325: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
326: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 318 318 12 12
LoopMerge 323 324 None
Branch 327
327: Label
329: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
330: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 318 318 12 12
328: 125(int) Load 315(i)
331: 48(bool) SLessThan 328 186
BranchConditional 331 322 323
322: Label
333: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
334: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 335 335 12 12
332: 19(fvec4) Load 237(pos)
337: 125(int) Load 315(i)
340: 338(ptr) AccessChain 122(ubo) 336 337
341: 19(fvec4) Load 340
342: 16(float) Dot 332 341
344: 16(float) FAdd 342 343
345: 48(bool) FOrdLessThan 344 148
SelectionMerge 347 None
BranchConditional 345 346 347
346: Label
349: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
350: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 351 351 12 12
ReturnValue 348
347: Label
Branch 324
324: Label
354: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
355: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 318 318 12 12
353: 125(int) Load 315(i)
356: 125(int) IAdd 353 128
Store 315(i) 356
Branch 321
323: Label
357: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56 357: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
358: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 359 359 12 12 358: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 359 359 12 12
ReturnValue 94 ReturnValue 94

View File

@ -1,7 +1,7 @@
spv.debuginfo.glsl.tese spv.debuginfo.glsl.tese
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 357 // Id's are bound by 359
Capability Tessellation Capability Tessellation
Extension "SPV_KHR_non_semantic_info" Extension "SPV_KHR_non_semantic_info"
@ -390,6 +390,7 @@ void main()
344(outEyePos): 141(ptr) Variable Output 344(outEyePos): 141(ptr) Variable Output
347: 7(int) Constant 77 347: 7(int) Constant 77
345: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 346 63 18 347 12 21 346 344(outEyePos) 50 345: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 346 63 18 347 12 21 346 344(outEyePos) 50
358: 7(int) Constant 78
14(main): 4 Function None 5 14(main): 4 Function None 5
15: Label 15: Label
36(uv1): 33(ptr) Variable Function 36(uv1): 33(ptr) Variable Function
@ -543,5 +544,6 @@ void main()
355: 28(float) CompositeExtract 352 2 355: 28(float) CompositeExtract 352 2
356: 62(fvec3) CompositeConstruct 353 354 355 356: 62(fvec3) CompositeConstruct 353 354 355
Store 344(outEyePos) 356 Store 344(outEyePos) 356
357: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 358 358 12 12
Return Return
FunctionEnd FunctionEnd

View File

@ -1,7 +1,7 @@
spv.debuginfo.glsl.vert spv.debuginfo.glsl.vert
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 445 // Id's are bound by 447
Capability Shader Capability Shader
Extension "SPV_KHR_non_semantic_info" Extension "SPV_KHR_non_semantic_info"
@ -399,6 +399,7 @@ void main()
437(outViewVec): 33(ptr) Variable Output 437(outViewVec): 33(ptr) Variable Output
440: 7(int) Constant 104 440: 7(int) Constant 104
438: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 439 32 18 440 12 21 439 437(outViewVec) 39 438: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 439 32 18 440 12 21 439 437(outViewVec) 39
446: 7(int) Constant 105
14(main): 4 Function None 5 14(main): 4 Function None 5
15: Label 15: Label
76(s): 73(ptr) Variable Function 76(s): 73(ptr) Variable Function
@ -662,5 +663,6 @@ void main()
443: 31(fvec3) VectorShuffle 441 441 0 1 2 443: 31(fvec3) VectorShuffle 441 441 0 1 2
444: 31(fvec3) FNegate 443 444: 31(fvec3) FNegate 443
Store 437(outViewVec) 444 Store 437(outViewVec) 444
445: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 446 446 12 12
Return Return
FunctionEnd FunctionEnd

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -3,14 +3,14 @@ WARNING: 0:158: '' : attribute does not apply to entry point
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 705 // Id's are bound by 706
Capability Tessellation Capability Tessellation
Extension "SPV_KHR_non_semantic_info" Extension "SPV_KHR_non_semantic_info"
1: ExtInstImport "NonSemantic.Shader.DebugInfo.100" 1: ExtInstImport "NonSemantic.Shader.DebugInfo.100"
3: ExtInstImport "GLSL.std.450" 3: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint TessellationControl 6 "main" 597 604 611 645 654 661 668 683 698 EntryPoint TessellationControl 6 "main" 598 605 612 646 655 662 669 684 699
ExecutionMode 6 OutputVertices 4 ExecutionMode 6 OutputVertices 4
ExecutionMode 6 Quads ExecutionMode 6 Quads
ExecutionMode 6 SpacingEqual ExecutionMode 6 SpacingEqual
@ -58,16 +58,16 @@ WARNING: 0:158: '' : attribute does not apply to entry point
217: String "int" 217: String "int"
228: String "clip0" 228: String "clip0"
246: String "clip1" 246: String "clip1"
323: String "pos" 324: String "pos"
330: String "type.2d.image" 331: String "type.2d.image"
332: String "@type.2d.image" 333: String "@type.2d.image"
338: String "textureHeight" 339: String "textureHeight"
343: String "type.sampler" 344: String "type.sampler"
344: String "@type.sampler" 345: String "@type.sampler"
349: String "samplerHeight" 350: String "samplerHeight"
353: String "type.sampled.image" 354: String "type.sampled.image"
354: String "@type.sampled.image" 355: String "@type.sampled.image"
371: String "i" 372: String "i"
424: String "output" 424: String "output"
Name 6 "main" Name 6 "main"
Name 28 "screenSpaceTessFactor(vf4;vf4;" Name 28 "screenSpaceTessFactor(vf4;vf4;"
@ -109,10 +109,10 @@ WARNING: 0:158: '' : attribute does not apply to entry point
Name 213 "" Name 213 ""
Name 226 "clip0" Name 226 "clip0"
Name 244 "clip1" Name 244 "clip1"
Name 321 "pos" Name 322 "pos"
Name 336 "textureHeight" Name 337 "textureHeight"
Name 347 "samplerHeight" Name 348 "samplerHeight"
Name 369 "i" Name 370 "i"
Name 422 "output" Name 422 "output"
Name 432 "param" Name 432 "param"
Name 437 "param" Name 437 "param"
@ -125,22 +125,22 @@ WARNING: 0:158: '' : attribute does not apply to entry point
Name 503 "param" Name 503 "param"
Name 508 "param" Name 508 "param"
Name 560 "output" Name 560 "output"
Name 594 "patch" Name 595 "patch"
Name 597 "patch.Pos" Name 598 "patch.Pos"
Name 604 "patch.Normal" Name 605 "patch.Normal"
Name 611 "patch.UV" Name 612 "patch.UV"
Name 643 "InvocationID" Name 644 "InvocationID"
Name 645 "InvocationID" Name 646 "InvocationID"
Name 647 "flattenTemp" Name 648 "flattenTemp"
Name 648 "param" Name 649 "param"
Name 650 "param" Name 651 "param"
Name 654 "@entryPointOutput.Pos" Name 655 "@entryPointOutput.Pos"
Name 661 "@entryPointOutput.Normal" Name 662 "@entryPointOutput.Normal"
Name 668 "@entryPointOutput.UV" Name 669 "@entryPointOutput.UV"
Name 678 "@patchConstantResult" Name 679 "@patchConstantResult"
Name 679 "param" Name 680 "param"
Name 683 "@patchConstantOutput.TessLevelOuter" Name 684 "@patchConstantOutput.TessLevelOuter"
Name 698 "@patchConstantOutput.TessLevelInner" Name 699 "@patchConstantOutput.TessLevelInner"
Decorate 181 ArrayStride 16 Decorate 181 ArrayStride 16
MemberDecorate 183(UBO) 0 RowMajor MemberDecorate 183(UBO) 0 RowMajor
MemberDecorate 183(UBO) 0 MatrixStride 16 MemberDecorate 183(UBO) 0 MatrixStride 16
@ -158,21 +158,21 @@ WARNING: 0:158: '' : attribute does not apply to entry point
MemberDecorate 206(ubo) 0 Offset 0 MemberDecorate 206(ubo) 0 Offset 0
Decorate 213 Binding 0 Decorate 213 Binding 0
Decorate 213 DescriptorSet 0 Decorate 213 DescriptorSet 0
Decorate 336(textureHeight) Binding 1 Decorate 337(textureHeight) Binding 1
Decorate 336(textureHeight) DescriptorSet 0 Decorate 337(textureHeight) DescriptorSet 0
Decorate 347(samplerHeight) Binding 1 Decorate 348(samplerHeight) Binding 1
Decorate 347(samplerHeight) DescriptorSet 0 Decorate 348(samplerHeight) DescriptorSet 0
Decorate 597(patch.Pos) BuiltIn Position Decorate 598(patch.Pos) BuiltIn Position
Decorate 604(patch.Normal) Location 0 Decorate 605(patch.Normal) Location 0
Decorate 611(patch.UV) Location 1 Decorate 612(patch.UV) Location 1
Decorate 645(InvocationID) BuiltIn InvocationId Decorate 646(InvocationID) BuiltIn InvocationId
Decorate 654(@entryPointOutput.Pos) BuiltIn Position Decorate 655(@entryPointOutput.Pos) BuiltIn Position
Decorate 661(@entryPointOutput.Normal) Location 0 Decorate 662(@entryPointOutput.Normal) Location 0
Decorate 668(@entryPointOutput.UV) Location 1 Decorate 669(@entryPointOutput.UV) Location 1
Decorate 683(@patchConstantOutput.TessLevelOuter) BuiltIn TessLevelOuter Decorate 684(@patchConstantOutput.TessLevelOuter) BuiltIn TessLevelOuter
Decorate 683(@patchConstantOutput.TessLevelOuter) Patch Decorate 684(@patchConstantOutput.TessLevelOuter) Patch
Decorate 698(@patchConstantOutput.TessLevelInner) BuiltIn TessLevelInner Decorate 699(@patchConstantOutput.TessLevelInner) BuiltIn TessLevelInner
Decorate 698(@patchConstantOutput.TessLevelInner) Patch Decorate 699(@patchConstantOutput.TessLevelInner) Patch
4: TypeVoid 4: TypeVoid
5: TypeFunction 4 5: TypeFunction 4
8: TypeFloat 32 8: TypeFloat 32
@ -329,37 +329,37 @@ WARNING: 0:158: '' : attribute does not apply to entry point
310: 216(int) Constant 5 310: 216(int) Constant 5
314: 8(float) Constant 1065353216 314: 8(float) Constant 1065353216
315: 8(float) Constant 1115684864 315: 8(float) Constant 1115684864
324: 11(int) Constant 98 325: 11(int) Constant 98
322: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 323 20 32 324 16 62 19 323: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 324 20 32 325 16 62 19
328: TypeImage 8(float) 2D sampled format:Unknown 329: TypeImage 8(float) 2D sampled format:Unknown
331: 11(int) Constant 99 332: 11(int) Constant 99
333: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone) 334: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
329: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 330 16 32 331 16 35 332 333 17 330: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 331 16 32 332 16 35 333 334 17
334: TypePointer UniformConstant 328 335: TypePointer UniformConstant 329
335: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 329 16 16 336: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 330 16 16
336(textureHeight): 334(ptr) Variable UniformConstant 337(textureHeight): 335(ptr) Variable UniformConstant
337: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 338 329 32 331 16 35 338 336(textureHeight) 215 338: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 339 330 32 332 16 35 339 337(textureHeight) 215
341: TypeSampler 342: TypeSampler
342: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 343 36 32 331 16 35 344 333 17 343: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 344 36 32 332 16 35 345 334 17
345: TypePointer UniformConstant 341 346: TypePointer UniformConstant 342
346: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 342 16 16 347: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 343 16 16
347(samplerHeight): 345(ptr) Variable UniformConstant 348(samplerHeight): 346(ptr) Variable UniformConstant
348: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 349 342 32 331 16 35 349 347(samplerHeight) 215 349: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 350 343 32 332 16 35 350 348(samplerHeight) 215
351: TypeSampledImage 328 352: TypeSampledImage 329
352: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 353 16 32 331 16 35 354 333 17 353: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 354 16 32 332 16 35 355 334 17
359: 216(int) Constant 4 360: 216(int) Constant 4
367: TypePointer Function 216(int) 368: TypePointer Function 216(int)
368: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 218 22 16 369: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 218 22 16
372: 11(int) Constant 102 373: 11(int) Constant 102
370: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 371 218 32 372 16 62 19 371: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 372 218 32 373 16 62 19
389: 11(int) Constant 103 390: 11(int) Constant 103
390: 216(int) Constant 3 391: 216(int) Constant 3
392: TypePointer Uniform 18(fvec4) 393: TypePointer Uniform 18(fvec4)
393: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 20 46 16 394: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 20 46 16
397: 8(float) Constant 1090519040 398: 8(float) Constant 1090519040
402: 52(bool) ConstantFalse 403: 52(bool) ConstantFalse
405: 11(int) Constant 105 406: 11(int) Constant 105
415: 11(int) Constant 108 414: 11(int) Constant 108
420: TypePointer Function 97(ConstantsHSOutput) 420: TypePointer Function 97(ConstantsHSOutput)
421: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 105 22 16 421: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 105 22 16
425: 11(int) Constant 113 425: 11(int) Constant 113
@ -388,7 +388,7 @@ WARNING: 0:158: '' : attribute does not apply to entry point
542: 11(int) Constant 142 542: 11(int) Constant 142
545: 11(int) Constant 143 545: 11(int) Constant 143
548: 11(int) Constant 144 548: 11(int) Constant 144
553: 11(int) Constant 148 552: 11(int) Constant 148
558: TypePointer Function 121(HSOutput) 558: TypePointer Function 121(HSOutput)
559: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 128 22 16 559: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 128 22 16
562: 11(int) Constant 159 562: 11(int) Constant 159
@ -402,150 +402,150 @@ WARNING: 0:158: '' : attribute does not apply to entry point
578: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 73 22 16 578: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 73 22 16
584: 11(int) Constant 162 584: 11(int) Constant 162
590: 11(int) Constant 163 590: 11(int) Constant 163
595: TypeArray 18(fvec4) 19 596: TypeArray 18(fvec4) 19
596: TypePointer Input 595 597: TypePointer Input 596
597(patch.Pos): 596(ptr) Variable Input 598(patch.Pos): 597(ptr) Variable Input
598: TypePointer Input 18(fvec4) 599: TypePointer Input 18(fvec4)
602: TypeArray 72(fvec3) 19 603: TypeArray 72(fvec3) 19
603: TypePointer Input 602 604: TypePointer Input 603
604(patch.Normal): 603(ptr) Variable Input 605(patch.Normal): 604(ptr) Variable Input
605: TypePointer Input 72(fvec3) 606: TypePointer Input 72(fvec3)
609: TypeArray 48(fvec2) 19 610: TypeArray 48(fvec2) 19
610: TypePointer Input 609 611: TypePointer Input 610
611(patch.UV): 610(ptr) Variable Input 612(patch.UV): 611(ptr) Variable Input
612: TypePointer Input 48(fvec2) 613: TypePointer Input 48(fvec2)
644: TypePointer Input 11(int) 645: TypePointer Input 11(int)
645(InvocationID): 644(ptr) Variable Input 646(InvocationID): 645(ptr) Variable Input
653: TypePointer Output 595 654: TypePointer Output 596
654(@entryPointOutput.Pos): 653(ptr) Variable Output 655(@entryPointOutput.Pos): 654(ptr) Variable Output
658: TypePointer Output 18(fvec4) 659: TypePointer Output 18(fvec4)
660: TypePointer Output 602 661: TypePointer Output 603
661(@entryPointOutput.Normal): 660(ptr) Variable Output 662(@entryPointOutput.Normal): 661(ptr) Variable Output
665: TypePointer Output 72(fvec3) 666: TypePointer Output 72(fvec3)
667: TypePointer Output 609 668: TypePointer Output 610
668(@entryPointOutput.UV): 667(ptr) Variable Output 669(@entryPointOutput.UV): 668(ptr) Variable Output
672: TypePointer Output 48(fvec2) 673: TypePointer Output 48(fvec2)
682: TypePointer Output 93 683: TypePointer Output 93
683(@patchConstantOutput.TessLevelOuter): 682(ptr) Variable Output 684(@patchConstantOutput.TessLevelOuter): 683(ptr) Variable Output
686: TypePointer Output 8(float) 687: TypePointer Output 8(float)
697: TypePointer Output 95 698: TypePointer Output 95
698(@patchConstantOutput.TessLevelInner): 697(ptr) Variable Output 699(@patchConstantOutput.TessLevelInner): 698(ptr) Variable Output
6(main): 4 Function None 5 6(main): 4 Function None 5
7: Label 7: Label
594(patch): 91(ptr) Variable Function 595(patch): 91(ptr) Variable Function
643(InvocationID): 119(ptr) Variable Function 644(InvocationID): 119(ptr) Variable Function
647(flattenTemp): 558(ptr) Variable Function 648(flattenTemp): 558(ptr) Variable Function
648(param): 91(ptr) Variable Function 649(param): 91(ptr) Variable Function
650(param): 119(ptr) Variable Function 651(param): 119(ptr) Variable Function
678(@patchConstantResult): 420(ptr) Variable Function 679(@patchConstantResult): 420(ptr) Variable Function
679(param): 91(ptr) Variable Function 680(param): 91(ptr) Variable Function
599: 598(ptr) AccessChain 597(patch.Pos) 219 600: 599(ptr) AccessChain 598(patch.Pos) 219
600: 18(fvec4) Load 599 601: 18(fvec4) Load 600
601: 21(ptr) AccessChain 594(patch) 219 219 602: 21(ptr) AccessChain 595(patch) 219 219
Store 601 600 Store 602 601
606: 605(ptr) AccessChain 604(patch.Normal) 219 607: 606(ptr) AccessChain 605(patch.Normal) 219
607: 72(fvec3) Load 606 608: 72(fvec3) Load 607
608: 577(ptr) AccessChain 594(patch) 219 220 609: 577(ptr) AccessChain 595(patch) 219 220
Store 608 607 Store 609 608
613: 612(ptr) AccessChain 611(patch.UV) 219 614: 613(ptr) AccessChain 612(patch.UV) 219
614: 48(fvec2) Load 613 615: 48(fvec2) Load 614
615: 50(ptr) AccessChain 594(patch) 219 431 616: 50(ptr) AccessChain 595(patch) 219 431
Store 615 614 Store 616 615
616: 598(ptr) AccessChain 597(patch.Pos) 220 617: 599(ptr) AccessChain 598(patch.Pos) 220
617: 18(fvec4) Load 616 618: 18(fvec4) Load 617
618: 21(ptr) AccessChain 594(patch) 220 219 619: 21(ptr) AccessChain 595(patch) 220 219
Store 618 617 Store 619 618
619: 605(ptr) AccessChain 604(patch.Normal) 220 620: 606(ptr) AccessChain 605(patch.Normal) 220
620: 72(fvec3) Load 619 621: 72(fvec3) Load 620
621: 577(ptr) AccessChain 594(patch) 220 220 622: 577(ptr) AccessChain 595(patch) 220 220
Store 621 620 Store 622 621
622: 612(ptr) AccessChain 611(patch.UV) 220 623: 613(ptr) AccessChain 612(patch.UV) 220
623: 48(fvec2) Load 622 624: 48(fvec2) Load 623
624: 50(ptr) AccessChain 594(patch) 220 431 625: 50(ptr) AccessChain 595(patch) 220 431
Store 624 623 Store 625 624
625: 598(ptr) AccessChain 597(patch.Pos) 431 626: 599(ptr) AccessChain 598(patch.Pos) 431
626: 18(fvec4) Load 625 627: 18(fvec4) Load 626
627: 21(ptr) AccessChain 594(patch) 431 219 628: 21(ptr) AccessChain 595(patch) 431 219
Store 627 626 Store 628 627
628: 605(ptr) AccessChain 604(patch.Normal) 431 629: 606(ptr) AccessChain 605(patch.Normal) 431
629: 72(fvec3) Load 628 630: 72(fvec3) Load 629
630: 577(ptr) AccessChain 594(patch) 431 220 631: 577(ptr) AccessChain 595(patch) 431 220
Store 630 629 Store 631 630
631: 612(ptr) AccessChain 611(patch.UV) 431 632: 613(ptr) AccessChain 612(patch.UV) 431
632: 48(fvec2) Load 631 633: 48(fvec2) Load 632
633: 50(ptr) AccessChain 594(patch) 431 431 634: 50(ptr) AccessChain 595(patch) 431 431
Store 633 632 Store 634 633
634: 598(ptr) AccessChain 597(patch.Pos) 390 635: 599(ptr) AccessChain 598(patch.Pos) 391
635: 18(fvec4) Load 634 636: 18(fvec4) Load 635
636: 21(ptr) AccessChain 594(patch) 390 219 637: 21(ptr) AccessChain 595(patch) 391 219
Store 636 635 Store 637 636
637: 605(ptr) AccessChain 604(patch.Normal) 390 638: 606(ptr) AccessChain 605(patch.Normal) 391
638: 72(fvec3) Load 637 639: 72(fvec3) Load 638
639: 577(ptr) AccessChain 594(patch) 390 220 640: 577(ptr) AccessChain 595(patch) 391 220
Store 639 638 Store 640 639
640: 612(ptr) AccessChain 611(patch.UV) 390 641: 613(ptr) AccessChain 612(patch.UV) 391
641: 48(fvec2) Load 640 642: 48(fvec2) Load 641
642: 50(ptr) AccessChain 594(patch) 390 431 643: 50(ptr) AccessChain 595(patch) 391 431
Store 642 641 Store 643 642
646: 11(int) Load 645(InvocationID) 647: 11(int) Load 646(InvocationID)
Store 643(InvocationID) 646 Store 644(InvocationID) 647
649: 89 Load 594(patch) 650: 89 Load 595(patch)
Store 648(param) 649 Store 649(param) 650
651: 11(int) Load 643(InvocationID) 652: 11(int) Load 644(InvocationID)
Store 650(param) 651 Store 651(param) 652
652:121(HSOutput) FunctionCall 135(@main(struct-VSOutput-vf4-vf3-vf21[4];u1;) 648(param) 650(param) 653:121(HSOutput) FunctionCall 135(@main(struct-VSOutput-vf4-vf3-vf21[4];u1;) 649(param) 651(param)
Store 647(flattenTemp) 652 Store 648(flattenTemp) 653
655: 11(int) Load 645(InvocationID) 656: 11(int) Load 646(InvocationID)
656: 21(ptr) AccessChain 647(flattenTemp) 219 657: 21(ptr) AccessChain 648(flattenTemp) 219
657: 18(fvec4) Load 656 658: 18(fvec4) Load 657
659: 658(ptr) AccessChain 654(@entryPointOutput.Pos) 655 660: 659(ptr) AccessChain 655(@entryPointOutput.Pos) 656
Store 659 657 Store 660 658
662: 11(int) Load 645(InvocationID) 663: 11(int) Load 646(InvocationID)
663: 577(ptr) AccessChain 647(flattenTemp) 220 664: 577(ptr) AccessChain 648(flattenTemp) 220
664: 72(fvec3) Load 663 665: 72(fvec3) Load 664
666: 665(ptr) AccessChain 661(@entryPointOutput.Normal) 662 667: 666(ptr) AccessChain 662(@entryPointOutput.Normal) 663
Store 666 664 Store 667 665
669: 11(int) Load 645(InvocationID) 670: 11(int) Load 646(InvocationID)
670: 50(ptr) AccessChain 647(flattenTemp) 431 671: 50(ptr) AccessChain 648(flattenTemp) 431
671: 48(fvec2) Load 670 672: 48(fvec2) Load 671
673: 672(ptr) AccessChain 668(@entryPointOutput.UV) 669 674: 673(ptr) AccessChain 669(@entryPointOutput.UV) 670
Store 673 671 Store 674 672
ControlBarrier 46 19 16 ControlBarrier 46 19 16
674: 11(int) Load 645(InvocationID) 675: 11(int) Load 646(InvocationID)
675: 52(bool) IEqual 674 219 676: 52(bool) IEqual 675 219
SelectionMerge 677 None SelectionMerge 678 None
BranchConditional 675 676 677 BranchConditional 676 677 678
676: Label 677: Label
680: 89 Load 594(patch) 681: 89 Load 595(patch)
Store 679(param) 680 Store 680(param) 681
681:97(ConstantsHSOutput) FunctionCall 110(ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];) 679(param) 682:97(ConstantsHSOutput) FunctionCall 110(ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];) 680(param)
Store 678(@patchConstantResult) 681 Store 679(@patchConstantResult) 682
684: 158(ptr) AccessChain 678(@patchConstantResult) 219 219 685: 158(ptr) AccessChain 679(@patchConstantResult) 219 219
685: 8(float) Load 684 686: 8(float) Load 685
687: 686(ptr) AccessChain 683(@patchConstantOutput.TessLevelOuter) 219 688: 687(ptr) AccessChain 684(@patchConstantOutput.TessLevelOuter) 219
Store 687 685 Store 688 686
688: 158(ptr) AccessChain 678(@patchConstantResult) 219 220 689: 158(ptr) AccessChain 679(@patchConstantResult) 219 220
689: 8(float) Load 688 690: 8(float) Load 689
690: 686(ptr) AccessChain 683(@patchConstantOutput.TessLevelOuter) 220 691: 687(ptr) AccessChain 684(@patchConstantOutput.TessLevelOuter) 220
Store 690 689 Store 691 690
691: 158(ptr) AccessChain 678(@patchConstantResult) 219 431 692: 158(ptr) AccessChain 679(@patchConstantResult) 219 431
692: 8(float) Load 691 693: 8(float) Load 692
693: 686(ptr) AccessChain 683(@patchConstantOutput.TessLevelOuter) 431 694: 687(ptr) AccessChain 684(@patchConstantOutput.TessLevelOuter) 431
Store 693 692 Store 694 693
694: 158(ptr) AccessChain 678(@patchConstantResult) 219 390 695: 158(ptr) AccessChain 679(@patchConstantResult) 219 391
695: 8(float) Load 694 696: 8(float) Load 695
696: 686(ptr) AccessChain 683(@patchConstantOutput.TessLevelOuter) 390 697: 687(ptr) AccessChain 684(@patchConstantOutput.TessLevelOuter) 391
Store 696 695 Store 697 696
699: 158(ptr) AccessChain 678(@patchConstantResult) 220 219 700: 158(ptr) AccessChain 679(@patchConstantResult) 220 219
700: 8(float) Load 699 701: 8(float) Load 700
701: 686(ptr) AccessChain 698(@patchConstantOutput.TessLevelInner) 219 702: 687(ptr) AccessChain 699(@patchConstantOutput.TessLevelInner) 219
Store 701 700 Store 702 701
702: 158(ptr) AccessChain 678(@patchConstantResult) 220 220 703: 158(ptr) AccessChain 679(@patchConstantResult) 220 220
703: 8(float) Load 702 704: 8(float) Load 703
704: 686(ptr) AccessChain 698(@patchConstantOutput.TessLevelInner) 220 705: 687(ptr) AccessChain 699(@patchConstantOutput.TessLevelInner) 220
Store 704 703 Store 705 704
Branch 677 Branch 678
677: Label 678: Label
Return Return
FunctionEnd FunctionEnd
28(screenSpaceTessFactor(vf4;vf4;): 8(float) Function None 24 28(screenSpaceTessFactor(vf4;vf4;): 8(float) Function None 24
@ -664,76 +664,75 @@ WARNING: 0:158: '' : attribute does not apply to entry point
57(Pos): 21(ptr) FunctionParameter 57(Pos): 21(ptr) FunctionParameter
58(inUV): 50(ptr) FunctionParameter 58(inUV): 50(ptr) FunctionParameter
60: Label 60: Label
321(pos): 21(ptr) Variable Function 322(pos): 21(ptr) Variable Function
369(i): 367(ptr) Variable Function 370(i): 368(ptr) Variable Function
67: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62 67: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62
68: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 63 63 16 16 68: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 63 63 16 16
66: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 64 57(Pos) 41 66: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 64 57(Pos) 41
71: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 69 58(inUV) 41 71: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 69 58(inUV) 41
320: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 62 59(frustumCheck(vf4;vf2;) 321: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 62 59(frustumCheck(vf4;vf2;)
326: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 324 324 16 16 327: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 325 325 16 16
325: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 322 321(pos) 41 326: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 323 322(pos) 41
327: 18(fvec4) Load 57(Pos) 328: 18(fvec4) Load 57(Pos)
Store 321(pos) 327 Store 322(pos) 328
340: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 331 331 16 16 341: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 332 332 16 16
339: 328 Load 336(textureHeight) 340: 329 Load 337(textureHeight)
350: 341 Load 347(samplerHeight) 351: 342 Load 348(samplerHeight)
355: 351 SampledImage 339 350 356: 352 SampledImage 340 351
356: 48(fvec2) Load 58(inUV) 357: 48(fvec2) Load 58(inUV)
357: 18(fvec4) ImageSampleExplicitLod 355 356 Lod 234 358: 18(fvec4) ImageSampleExplicitLod 356 357 Lod 234
358: 8(float) CompositeExtract 357 0 359: 8(float) CompositeExtract 358 0
360: 305(ptr) AccessChain 213 219 359 361: 305(ptr) AccessChain 213 219 360
361: 8(float) Load 360 362: 8(float) Load 361
362: 8(float) FMul 358 361 363: 8(float) FMul 359 362
363: 158(ptr) AccessChain 321(pos) 36 364: 158(ptr) AccessChain 322(pos) 36
364: 8(float) Load 363 365: 8(float) Load 364
365: 8(float) FSub 364 362 366: 8(float) FSub 365 363
366: 158(ptr) AccessChain 321(pos) 36 367: 158(ptr) AccessChain 322(pos) 36
Store 366 365 Store 367 366
374: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 372 372 16 16 375: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 373 373 16 16
373: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 370 369(i) 41 374: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 371 370(i) 41
Store 369(i) 219 Store 370(i) 219
Branch 375 Branch 376
375: Label 376: Label
379: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62 380: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62
380: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 372 372 16 16 381: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 373 373 16 16
LoopMerge 377 378 None LoopMerge 378 379 None
Branch 381 Branch 382
381: Label 382: Label
383: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62 384: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62
384: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 372 372 16 16 385: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 373 373 16 16
382: 216(int) Load 369(i) 383: 216(int) Load 370(i)
385: 52(bool) SLessThan 382 274 386: 52(bool) SLessThan 383 274
BranchConditional 385 376 377 BranchConditional 386 377 378
376: Label 377: Label
387: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62 388: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62
388: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 389 389 16 16 389: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 390 390 16 16
386: 18(fvec4) Load 321(pos) 387: 18(fvec4) Load 322(pos)
391: 216(int) Load 369(i) 392: 216(int) Load 370(i)
394: 392(ptr) AccessChain 213 219 390 391 395: 393(ptr) AccessChain 213 219 391 392
395: 18(fvec4) Load 394 396: 18(fvec4) Load 395
396: 8(float) Dot 386 395 397: 8(float) Dot 387 396
398: 8(float) FAdd 396 397 399: 8(float) FAdd 397 398
399: 52(bool) FOrdLessThan 398 234 400: 52(bool) FOrdLessThan 399 234
SelectionMerge 401 None SelectionMerge 402 None
BranchConditional 399 400 401 BranchConditional 400 401 402
400: Label 401: Label
403: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62 404: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62
404: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 405 405 16 16 405: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 406 406 16 16
ReturnValue 402 ReturnValue 403
401: Label 402: Label
408: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62 Branch 379
Branch 378 379: Label
378: Label 409: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62
410: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62 410: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 373 373 16 16
411: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 372 372 16 16 408: 216(int) Load 370(i)
409: 216(int) Load 369(i) 411: 216(int) IAdd 408 220
412: 216(int) IAdd 409 220 Store 370(i) 411
Store 369(i) 412 Branch 376
Branch 375 378: Label
377: Label 412: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62
413: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62 413: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 414 414 16 16
414: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 415 415 16 16
ReturnValue 180 ReturnValue 180
FunctionEnd FunctionEnd
110(ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];):97(ConstantsHSOutput) Function None 107 110(ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];):97(ConstantsHSOutput) Function None 107
@ -786,7 +785,7 @@ WARNING: 0:158: '' : attribute does not apply to entry point
457: 158(ptr) AccessChain 422(output) 219 431 457: 158(ptr) AccessChain 422(output) 219 431
Store 457 234 Store 457 234
461: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 462 462 16 16 461: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 462 462 16 16
460: 158(ptr) AccessChain 422(output) 219 390 460: 158(ptr) AccessChain 422(output) 219 391
Store 460 234 Store 460 234
Branch 443 Branch 443
463: Label 463: Label
@ -800,7 +799,7 @@ WARNING: 0:158: '' : attribute does not apply to entry point
470: Label 470: Label
474: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 113 474: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 113
475: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 476 476 16 16 475: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 476 476 16 16
473: 21(ptr) AccessChain 109(patch) 390 219 473: 21(ptr) AccessChain 109(patch) 391 219
477: 18(fvec4) Load 473 477: 18(fvec4) Load 473
Store 472(param) 477 Store 472(param) 477
479: 21(ptr) AccessChain 109(patch) 219 219 479: 21(ptr) AccessChain 109(patch) 219 219
@ -833,16 +832,16 @@ WARNING: 0:158: '' : attribute does not apply to entry point
504: 21(ptr) AccessChain 109(patch) 431 219 504: 21(ptr) AccessChain 109(patch) 431 219
507: 18(fvec4) Load 504 507: 18(fvec4) Load 504
Store 503(param) 507 Store 503(param) 507
509: 21(ptr) AccessChain 109(patch) 390 219 509: 21(ptr) AccessChain 109(patch) 391 219
510: 18(fvec4) Load 509 510: 18(fvec4) Load 509
Store 508(param) 510 Store 508(param) 510
511: 8(float) FunctionCall 28(screenSpaceTessFactor(vf4;vf4;) 503(param) 508(param) 511: 8(float) FunctionCall 28(screenSpaceTessFactor(vf4;vf4;) 503(param) 508(param)
512: 158(ptr) AccessChain 422(output) 219 390 512: 158(ptr) AccessChain 422(output) 219 391
Store 512 511 Store 512 511
514: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 515 515 16 16 514: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 515 515 16 16
513: 158(ptr) AccessChain 422(output) 219 219 513: 158(ptr) AccessChain 422(output) 219 219
516: 8(float) Load 513 516: 8(float) Load 513
517: 158(ptr) AccessChain 422(output) 219 390 517: 158(ptr) AccessChain 422(output) 219 391
518: 8(float) Load 517 518: 8(float) Load 517
519: 8(float) ExtInst 3(GLSL.std.450) 46(FMix) 516 518 153 519: 8(float) ExtInst 3(GLSL.std.450) 46(FMix) 516 518 153
520: 158(ptr) AccessChain 422(output) 220 219 520: 158(ptr) AccessChain 422(output) 220 219
@ -874,17 +873,16 @@ WARNING: 0:158: '' : attribute does not apply to entry point
543: 158(ptr) AccessChain 422(output) 219 431 543: 158(ptr) AccessChain 422(output) 219 431
Store 543 314 Store 543 314
547: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 548 548 16 16 547: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 548 548 16 16
546: 158(ptr) AccessChain 422(output) 219 390 546: 158(ptr) AccessChain 422(output) 219 391
Store 546 314 Store 546 314
Branch 471 Branch 471
471: Label 471: Label
549: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 113
Branch 443 Branch 443
443: Label 443: Label
551: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 113 550: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 113
552: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 553 553 16 16 551: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 552 552 16 16
550:97(ConstantsHSOutput) Load 422(output) 549:97(ConstantsHSOutput) Load 422(output)
ReturnValue 550 ReturnValue 549
FunctionEnd FunctionEnd
135(@main(struct-VSOutput-vf4-vf3-vf21[4];u1;):121(HSOutput) Function None 131 135(@main(struct-VSOutput-vf4-vf3-vf21[4];u1;):121(HSOutput) Function None 131
133(patch): 91(ptr) FunctionParameter 133(patch): 91(ptr) FunctionParameter

View File

@ -1,14 +1,14 @@
spv.debuginfo.hlsl.tese spv.debuginfo.hlsl.tese
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 477 // Id's are bound by 478
Capability Tessellation Capability Tessellation
Extension "SPV_KHR_non_semantic_info" Extension "SPV_KHR_non_semantic_info"
1: ExtInstImport "NonSemantic.Shader.DebugInfo.100" 1: ExtInstImport "NonSemantic.Shader.DebugInfo.100"
3: ExtInstImport "GLSL.std.450" 3: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint TessellationEvaluation 6 "main" 368 383 392 401 408 414 454 458 462 465 468 471 474 EntryPoint TessellationEvaluation 6 "main" 369 384 393 402 409 415 455 459 463 466 469 472 475
ExecutionMode 6 Quads ExecutionMode 6 Quads
2: String "" 2: String ""
9: String "float" 9: String "float"
@ -102,25 +102,25 @@ spv.debuginfo.hlsl.tese
Name 297 "ubo" Name 297 "ubo"
MemberName 297(ubo) 0 "ubo" MemberName 297(ubo) 0 "ubo"
Name 303 "" Name 303 ""
Name 366 "input" Name 367 "input"
Name 368 "input.TessLevelOuter" Name 369 "input.TessLevelOuter"
Name 383 "input.TessLevelInner" Name 384 "input.TessLevelInner"
Name 390 "TessCoord" Name 391 "TessCoord"
Name 392 "TessCoord" Name 393 "TessCoord"
Name 398 "patch" Name 399 "patch"
Name 401 "patch.Pos" Name 402 "patch.Pos"
Name 408 "patch.Normal" Name 409 "patch.Normal"
Name 414 "patch.UV" Name 415 "patch.UV"
Name 446 "flattenTemp" Name 447 "flattenTemp"
Name 448 "param" Name 449 "param"
Name 450 "param" Name 451 "param"
Name 454 "@entryPointOutput.Pos" Name 455 "@entryPointOutput.Pos"
Name 458 "@entryPointOutput.Normal" Name 459 "@entryPointOutput.Normal"
Name 462 "@entryPointOutput.UV" Name 463 "@entryPointOutput.UV"
Name 465 "@entryPointOutput.ViewVec" Name 466 "@entryPointOutput.ViewVec"
Name 468 "@entryPointOutput.LightVec" Name 469 "@entryPointOutput.LightVec"
Name 471 "@entryPointOutput.EyePos" Name 472 "@entryPointOutput.EyePos"
Name 474 "@entryPointOutput.WorldPos" Name 475 "@entryPointOutput.WorldPos"
Decorate 241(displacementMapTexture) Binding 1 Decorate 241(displacementMapTexture) Binding 1
Decorate 241(displacementMapTexture) DescriptorSet 0 Decorate 241(displacementMapTexture) DescriptorSet 0
Decorate 253(displacementMapSampler) Binding 1 Decorate 253(displacementMapSampler) Binding 1
@ -142,22 +142,22 @@ spv.debuginfo.hlsl.tese
MemberDecorate 297(ubo) 0 Offset 0 MemberDecorate 297(ubo) 0 Offset 0
Decorate 303 Binding 0 Decorate 303 Binding 0
Decorate 303 DescriptorSet 0 Decorate 303 DescriptorSet 0
Decorate 368(input.TessLevelOuter) BuiltIn TessLevelOuter Decorate 369(input.TessLevelOuter) BuiltIn TessLevelOuter
Decorate 368(input.TessLevelOuter) Patch Decorate 369(input.TessLevelOuter) Patch
Decorate 383(input.TessLevelInner) BuiltIn TessLevelInner Decorate 384(input.TessLevelInner) BuiltIn TessLevelInner
Decorate 383(input.TessLevelInner) Patch Decorate 384(input.TessLevelInner) Patch
Decorate 392(TessCoord) BuiltIn TessCoord Decorate 393(TessCoord) BuiltIn TessCoord
Decorate 392(TessCoord) Patch Decorate 393(TessCoord) Patch
Decorate 401(patch.Pos) BuiltIn Position Decorate 402(patch.Pos) BuiltIn Position
Decorate 408(patch.Normal) Location 0 Decorate 409(patch.Normal) Location 0
Decorate 414(patch.UV) Location 1 Decorate 415(patch.UV) Location 1
Decorate 454(@entryPointOutput.Pos) BuiltIn Position Decorate 455(@entryPointOutput.Pos) BuiltIn Position
Decorate 458(@entryPointOutput.Normal) Location 0 Decorate 459(@entryPointOutput.Normal) Location 0
Decorate 462(@entryPointOutput.UV) Location 1 Decorate 463(@entryPointOutput.UV) Location 1
Decorate 465(@entryPointOutput.ViewVec) Location 2 Decorate 466(@entryPointOutput.ViewVec) Location 2
Decorate 468(@entryPointOutput.LightVec) Location 3 Decorate 469(@entryPointOutput.LightVec) Location 3
Decorate 471(@entryPointOutput.EyePos) Location 4 Decorate 472(@entryPointOutput.EyePos) Location 4
Decorate 474(@entryPointOutput.WorldPos) Location 5 Decorate 475(@entryPointOutput.WorldPos) Location 5
4: TypeVoid 4: TypeVoid
5: TypeFunction 4 5: TypeFunction 4
8: TypeFloat 32 8: TypeFloat 32
@ -330,148 +330,148 @@ spv.debuginfo.hlsl.tese
351: 124(int) Constant 5 351: 124(int) Constant 5
354: 11(int) Constant 92 354: 11(int) Constant 92
362: 11(int) Constant 93 362: 11(int) Constant 93
367: TypePointer Input 19 368: TypePointer Input 19
368(input.TessLevelOuter): 367(ptr) Variable Input 369(input.TessLevelOuter): 368(ptr) Variable Input
369: TypePointer Input 8(float) 370: TypePointer Input 8(float)
382: TypePointer Input 22 383: TypePointer Input 22
383(input.TessLevelInner): 382(ptr) Variable Input 384(input.TessLevelInner): 383(ptr) Variable Input
391: TypePointer Input 49(fvec3) 392: TypePointer Input 49(fvec3)
392(TessCoord): 391(ptr) Variable Input 393(TessCoord): 392(ptr) Variable Input
397: TypePointer Function 65 398: TypePointer Function 65
399: TypeArray 47(fvec4) 18 400: TypeArray 47(fvec4) 18
400: TypePointer Input 399 401: TypePointer Input 400
401(patch.Pos): 400(ptr) Variable Input 402(patch.Pos): 401(ptr) Variable Input
402: TypePointer Input 47(fvec4) 403: TypePointer Input 47(fvec4)
406: TypeArray 49(fvec3) 18 407: TypeArray 49(fvec3) 18
407: TypePointer Input 406 408: TypePointer Input 407
408(patch.Normal): 407(ptr) Variable Input 409(patch.Normal): 408(ptr) Variable Input
412: TypeArray 43(fvec2) 18 413: TypeArray 43(fvec2) 18
413: TypePointer Input 412 414: TypePointer Input 413
414(patch.UV): 413(ptr) Variable Input 415(patch.UV): 414(ptr) Variable Input
415: TypePointer Input 43(fvec2) 416: TypePointer Input 43(fvec2)
453: TypePointer Output 47(fvec4) 454: TypePointer Output 47(fvec4)
454(@entryPointOutput.Pos): 453(ptr) Variable Output 455(@entryPointOutput.Pos): 454(ptr) Variable Output
457: TypePointer Output 49(fvec3) 458: TypePointer Output 49(fvec3)
458(@entryPointOutput.Normal): 457(ptr) Variable Output 459(@entryPointOutput.Normal): 458(ptr) Variable Output
461: TypePointer Output 43(fvec2) 462: TypePointer Output 43(fvec2)
462(@entryPointOutput.UV): 461(ptr) Variable Output 463(@entryPointOutput.UV): 462(ptr) Variable Output
465(@entryPointOutput.ViewVec): 457(ptr) Variable Output 466(@entryPointOutput.ViewVec): 458(ptr) Variable Output
468(@entryPointOutput.LightVec): 457(ptr) Variable Output 469(@entryPointOutput.LightVec): 458(ptr) Variable Output
471(@entryPointOutput.EyePos): 457(ptr) Variable Output 472(@entryPointOutput.EyePos): 458(ptr) Variable Output
474(@entryPointOutput.WorldPos): 457(ptr) Variable Output 475(@entryPointOutput.WorldPos): 458(ptr) Variable Output
6(main): 4 Function None 5 6(main): 4 Function None 5
7: Label 7: Label
366(input): 40(ptr) Variable Function 367(input): 40(ptr) Variable Function
390(TessCoord): 45(ptr) Variable Function 391(TessCoord): 45(ptr) Variable Function
398(patch): 397(ptr) Variable Function 399(patch): 398(ptr) Variable Function
446(flattenTemp): 105(ptr) Variable Function 447(flattenTemp): 105(ptr) Variable Function
448(param): 40(ptr) Variable Function 449(param): 40(ptr) Variable Function
450(param): 45(ptr) Variable Function 451(param): 45(ptr) Variable Function
370: 369(ptr) AccessChain 368(input.TessLevelOuter) 127 371: 370(ptr) AccessChain 369(input.TessLevelOuter) 127
371: 8(float) Load 370 372: 8(float) Load 371
372: 132(ptr) AccessChain 366(input) 127 127 373: 132(ptr) AccessChain 367(input) 127 127
Store 372 371 Store 373 372
373: 369(ptr) AccessChain 368(input.TessLevelOuter) 130 374: 370(ptr) AccessChain 369(input.TessLevelOuter) 130
374: 8(float) Load 373 375: 8(float) Load 374
375: 132(ptr) AccessChain 366(input) 127 130 376: 132(ptr) AccessChain 367(input) 127 130
Store 375 374 Store 376 375
376: 369(ptr) AccessChain 368(input.TessLevelOuter) 128 377: 370(ptr) AccessChain 369(input.TessLevelOuter) 128
377: 8(float) Load 376 378: 8(float) Load 377
378: 132(ptr) AccessChain 366(input) 127 128 379: 132(ptr) AccessChain 367(input) 127 128
Store 378 377 Store 379 378
379: 369(ptr) AccessChain 368(input.TessLevelOuter) 144 380: 370(ptr) AccessChain 369(input.TessLevelOuter) 144
380: 8(float) Load 379 381: 8(float) Load 380
381: 132(ptr) AccessChain 366(input) 127 144 382: 132(ptr) AccessChain 367(input) 127 144
Store 381 380 Store 382 381
384: 369(ptr) AccessChain 383(input.TessLevelInner) 127 385: 370(ptr) AccessChain 384(input.TessLevelInner) 127
385: 8(float) Load 384 386: 8(float) Load 385
386: 132(ptr) AccessChain 366(input) 130 127 387: 132(ptr) AccessChain 367(input) 130 127
Store 386 385 Store 387 386
387: 369(ptr) AccessChain 383(input.TessLevelInner) 130 388: 370(ptr) AccessChain 384(input.TessLevelInner) 130
388: 8(float) Load 387 389: 8(float) Load 388
389: 132(ptr) AccessChain 366(input) 130 130 390: 132(ptr) AccessChain 367(input) 130 130
Store 389 388 Store 390 389
393: 49(fvec3) Load 392(TessCoord) 394: 49(fvec3) Load 393(TessCoord)
394: 8(float) CompositeExtract 393 0 395: 8(float) CompositeExtract 394 0
395: 8(float) CompositeExtract 393 1 396: 8(float) CompositeExtract 394 1
396: 43(fvec2) CompositeConstruct 394 395 397: 43(fvec2) CompositeConstruct 395 396
Store 390(TessCoord) 396 Store 391(TessCoord) 397
403: 402(ptr) AccessChain 401(patch.Pos) 127 404: 403(ptr) AccessChain 402(patch.Pos) 127
404: 47(fvec4) Load 403 405: 47(fvec4) Load 404
405: 195(ptr) AccessChain 398(patch) 127 127 406: 195(ptr) AccessChain 399(patch) 127 127
Store 405 404 Store 406 405
409: 391(ptr) AccessChain 408(patch.Normal) 127 410: 392(ptr) AccessChain 409(patch.Normal) 127
410: 49(fvec3) Load 409 411: 49(fvec3) Load 410
411: 160(ptr) AccessChain 398(patch) 127 130 412: 160(ptr) AccessChain 399(patch) 127 130
Store 411 410 Store 412 411
416: 415(ptr) AccessChain 414(patch.UV) 127 417: 416(ptr) AccessChain 415(patch.UV) 127
417: 43(fvec2) Load 416 418: 43(fvec2) Load 417
418: 45(ptr) AccessChain 398(patch) 127 128 419: 45(ptr) AccessChain 399(patch) 127 128
Store 418 417 Store 419 418
419: 402(ptr) AccessChain 401(patch.Pos) 130 420: 403(ptr) AccessChain 402(patch.Pos) 130
420: 47(fvec4) Load 419 421: 47(fvec4) Load 420
421: 195(ptr) AccessChain 398(patch) 130 127 422: 195(ptr) AccessChain 399(patch) 130 127
Store 421 420 Store 422 421
422: 391(ptr) AccessChain 408(patch.Normal) 130 423: 392(ptr) AccessChain 409(patch.Normal) 130
423: 49(fvec3) Load 422 424: 49(fvec3) Load 423
424: 160(ptr) AccessChain 398(patch) 130 130 425: 160(ptr) AccessChain 399(patch) 130 130
Store 424 423 Store 425 424
425: 415(ptr) AccessChain 414(patch.UV) 130 426: 416(ptr) AccessChain 415(patch.UV) 130
426: 43(fvec2) Load 425 427: 43(fvec2) Load 426
427: 45(ptr) AccessChain 398(patch) 130 128 428: 45(ptr) AccessChain 399(patch) 130 128
Store 427 426 Store 428 427
428: 402(ptr) AccessChain 401(patch.Pos) 128 429: 403(ptr) AccessChain 402(patch.Pos) 128
429: 47(fvec4) Load 428 430: 47(fvec4) Load 429
430: 195(ptr) AccessChain 398(patch) 128 127 431: 195(ptr) AccessChain 399(patch) 128 127
Store 430 429 Store 431 430
431: 391(ptr) AccessChain 408(patch.Normal) 128 432: 392(ptr) AccessChain 409(patch.Normal) 128
432: 49(fvec3) Load 431 433: 49(fvec3) Load 432
433: 160(ptr) AccessChain 398(patch) 128 130 434: 160(ptr) AccessChain 399(patch) 128 130
Store 433 432 Store 434 433
434: 415(ptr) AccessChain 414(patch.UV) 128 435: 416(ptr) AccessChain 415(patch.UV) 128
435: 43(fvec2) Load 434 436: 43(fvec2) Load 435
436: 45(ptr) AccessChain 398(patch) 128 128 437: 45(ptr) AccessChain 399(patch) 128 128
Store 436 435 Store 437 436
437: 402(ptr) AccessChain 401(patch.Pos) 144 438: 403(ptr) AccessChain 402(patch.Pos) 144
438: 47(fvec4) Load 437 439: 47(fvec4) Load 438
439: 195(ptr) AccessChain 398(patch) 144 127 440: 195(ptr) AccessChain 399(patch) 144 127
Store 439 438 Store 440 439
440: 391(ptr) AccessChain 408(patch.Normal) 144 441: 392(ptr) AccessChain 409(patch.Normal) 144
441: 49(fvec3) Load 440 442: 49(fvec3) Load 441
442: 160(ptr) AccessChain 398(patch) 144 130 443: 160(ptr) AccessChain 399(patch) 144 130
Store 442 441 Store 443 442
443: 415(ptr) AccessChain 414(patch.UV) 144 444: 416(ptr) AccessChain 415(patch.UV) 144
444: 43(fvec2) Load 443 445: 43(fvec2) Load 444
445: 45(ptr) AccessChain 398(patch) 144 128 446: 45(ptr) AccessChain 399(patch) 144 128
Store 445 444 Store 446 445
447: 65 Load 398(patch) 448: 65 Load 399(patch)
449:24(ConstantsHSOutput) Load 366(input) 450:24(ConstantsHSOutput) Load 367(input)
Store 448(param) 449 Store 449(param) 450
451: 43(fvec2) Load 390(TessCoord) 452: 43(fvec2) Load 391(TessCoord)
Store 450(param) 451 Store 451(param) 452
452:67(DSOutput) FunctionCall 88(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];) 448(param) 450(param) 447 453:67(DSOutput) FunctionCall 88(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];) 449(param) 451(param) 448
Store 446(flattenTemp) 452 Store 447(flattenTemp) 453
455: 195(ptr) AccessChain 446(flattenTemp) 127 456: 195(ptr) AccessChain 447(flattenTemp) 127
456: 47(fvec4) Load 455 457: 47(fvec4) Load 456
Store 454(@entryPointOutput.Pos) 456 Store 455(@entryPointOutput.Pos) 457
459: 160(ptr) AccessChain 446(flattenTemp) 130 460: 160(ptr) AccessChain 447(flattenTemp) 130
460: 49(fvec3) Load 459 461: 49(fvec3) Load 460
Store 458(@entryPointOutput.Normal) 460 Store 459(@entryPointOutput.Normal) 461
463: 45(ptr) AccessChain 446(flattenTemp) 128 464: 45(ptr) AccessChain 447(flattenTemp) 128
464: 43(fvec2) Load 463 465: 43(fvec2) Load 464
Store 462(@entryPointOutput.UV) 464 Store 463(@entryPointOutput.UV) 465
466: 160(ptr) AccessChain 446(flattenTemp) 144 467: 160(ptr) AccessChain 447(flattenTemp) 144
467: 49(fvec3) Load 466 468: 49(fvec3) Load 467
Store 465(@entryPointOutput.ViewVec) 467 Store 466(@entryPointOutput.ViewVec) 468
469: 160(ptr) AccessChain 446(flattenTemp) 305 470: 160(ptr) AccessChain 447(flattenTemp) 305
470: 49(fvec3) Load 469 471: 49(fvec3) Load 470
Store 468(@entryPointOutput.LightVec) 470 Store 469(@entryPointOutput.LightVec) 471
472: 160(ptr) AccessChain 446(flattenTemp) 351 473: 160(ptr) AccessChain 447(flattenTemp) 351
473: 49(fvec3) Load 472 474: 49(fvec3) Load 473
Store 471(@entryPointOutput.EyePos) 473 Store 472(@entryPointOutput.EyePos) 474
475: 160(ptr) AccessChain 446(flattenTemp) 345 476: 160(ptr) AccessChain 447(flattenTemp) 345
476: 49(fvec3) Load 475 477: 49(fvec3) Load 476
Store 474(@entryPointOutput.WorldPos) 476 Store 475(@entryPointOutput.WorldPos) 477
Return Return
FunctionEnd FunctionEnd
88(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];):67(DSOutput) Function None 83 88(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];):67(DSOutput) Function None 83

View File

@ -1,14 +1,14 @@
spv.debuginfo.hlsl.vert spv.debuginfo.hlsl.vert
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 512 // Id's are bound by 513
Capability Shader Capability Shader
Extension "SPV_KHR_non_semantic_info" Extension "SPV_KHR_non_semantic_info"
1: ExtInstImport "NonSemantic.Shader.DebugInfo.100" 1: ExtInstImport "NonSemantic.Shader.DebugInfo.100"
3: ExtInstImport "GLSL.std.450" 3: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 6 "main" 461 464 468 471 474 477 481 485 493 497 500 503 506 509 EntryPoint Vertex 6 "main" 462 465 469 472 475 478 482 486 494 498 501 504 507 510
2: String "" 2: String ""
9: String "float" 9: String "float"
12: String "uint" 12: String "uint"
@ -88,23 +88,23 @@ spv.debuginfo.hlsl.vert
Name 339 "locPos" Name 339 "locPos"
Name 353 "pos" Name 353 "pos"
Name 419 "lPos" Name 419 "lPos"
Name 459 "input" Name 460 "input"
Name 461 "input.Pos" Name 462 "input.Pos"
Name 464 "input.Normal" Name 465 "input.Normal"
Name 468 "input.UV" Name 469 "input.UV"
Name 471 "input.Color" Name 472 "input.Color"
Name 474 "input.instancePos" Name 475 "input.instancePos"
Name 477 "input.instanceRot" Name 478 "input.instanceRot"
Name 481 "input.instanceScale" Name 482 "input.instanceScale"
Name 485 "input.instanceTexIndex" Name 486 "input.instanceTexIndex"
Name 488 "flattenTemp" Name 489 "flattenTemp"
Name 489 "param" Name 490 "param"
Name 493 "@entryPointOutput.Pos" Name 494 "@entryPointOutput.Pos"
Name 497 "@entryPointOutput.Normal" Name 498 "@entryPointOutput.Normal"
Name 500 "@entryPointOutput.Color" Name 501 "@entryPointOutput.Color"
Name 503 "@entryPointOutput.UV" Name 504 "@entryPointOutput.UV"
Name 506 "@entryPointOutput.ViewVec" Name 507 "@entryPointOutput.ViewVec"
Name 509 "@entryPointOutput.LightVec" Name 510 "@entryPointOutput.LightVec"
MemberDecorate 143(UBO) 0 RowMajor MemberDecorate 143(UBO) 0 RowMajor
MemberDecorate 143(UBO) 0 MatrixStride 16 MemberDecorate 143(UBO) 0 MatrixStride 16
MemberDecorate 143(UBO) 0 Offset 0 MemberDecorate 143(UBO) 0 Offset 0
@ -118,20 +118,20 @@ spv.debuginfo.hlsl.vert
MemberDecorate 159(ubo) 0 Offset 0 MemberDecorate 159(ubo) 0 Offset 0
Decorate 166 Binding 0 Decorate 166 Binding 0
Decorate 166 DescriptorSet 0 Decorate 166 DescriptorSet 0
Decorate 461(input.Pos) Location 0 Decorate 462(input.Pos) Location 0
Decorate 464(input.Normal) Location 1 Decorate 465(input.Normal) Location 1
Decorate 468(input.UV) Location 2 Decorate 469(input.UV) Location 2
Decorate 471(input.Color) Location 3 Decorate 472(input.Color) Location 3
Decorate 474(input.instancePos) Location 4 Decorate 475(input.instancePos) Location 4
Decorate 477(input.instanceRot) Location 5 Decorate 478(input.instanceRot) Location 5
Decorate 481(input.instanceScale) Location 6 Decorate 482(input.instanceScale) Location 6
Decorate 485(input.instanceTexIndex) Location 7 Decorate 486(input.instanceTexIndex) Location 7
Decorate 493(@entryPointOutput.Pos) BuiltIn Position Decorate 494(@entryPointOutput.Pos) BuiltIn Position
Decorate 497(@entryPointOutput.Normal) Location 0 Decorate 498(@entryPointOutput.Normal) Location 0
Decorate 500(@entryPointOutput.Color) Location 1 Decorate 501(@entryPointOutput.Color) Location 1
Decorate 503(@entryPointOutput.UV) Location 2 Decorate 504(@entryPointOutput.UV) Location 2
Decorate 506(@entryPointOutput.ViewVec) Location 3 Decorate 507(@entryPointOutput.ViewVec) Location 3
Decorate 509(@entryPointOutput.LightVec) Location 4 Decorate 510(@entryPointOutput.LightVec) Location 4
4: TypeVoid 4: TypeVoid
5: TypeFunction 4 5: TypeFunction 4
8: TypeFloat 32 8: TypeFloat 32
@ -302,77 +302,77 @@ spv.debuginfo.hlsl.vert
442: 11(int) Constant 109 442: 11(int) Constant 109
449: 11(int) Constant 110 449: 11(int) Constant 110
455: 11(int) Constant 111 455: 11(int) Constant 111
460: TypePointer Input 18(fvec3) 461: TypePointer Input 18(fvec3)
461(input.Pos): 460(ptr) Variable Input 462(input.Pos): 461(ptr) Variable Input
464(input.Normal): 460(ptr) Variable Input 465(input.Normal): 461(ptr) Variable Input
467: TypePointer Input 20(fvec2) 468: TypePointer Input 20(fvec2)
468(input.UV): 467(ptr) Variable Input 469(input.UV): 468(ptr) Variable Input
471(input.Color): 460(ptr) Variable Input 472(input.Color): 461(ptr) Variable Input
474(input.instancePos): 460(ptr) Variable Input 475(input.instancePos): 461(ptr) Variable Input
477(input.instanceRot): 460(ptr) Variable Input 478(input.instanceRot): 461(ptr) Variable Input
480: TypePointer Input 8(float) 481: TypePointer Input 8(float)
481(input.instanceScale): 480(ptr) Variable Input 482(input.instanceScale): 481(ptr) Variable Input
484: TypePointer Input 23(int) 485: TypePointer Input 23(int)
485(input.instanceTexIndex): 484(ptr) Variable Input 486(input.instanceTexIndex): 485(ptr) Variable Input
492: TypePointer Output 59(fvec4) 493: TypePointer Output 59(fvec4)
493(@entryPointOutput.Pos): 492(ptr) Variable Output 494(@entryPointOutput.Pos): 493(ptr) Variable Output
496: TypePointer Output 18(fvec3) 497: TypePointer Output 18(fvec3)
497(@entryPointOutput.Normal): 496(ptr) Variable Output 498(@entryPointOutput.Normal): 497(ptr) Variable Output
500(@entryPointOutput.Color): 496(ptr) Variable Output 501(@entryPointOutput.Color): 497(ptr) Variable Output
503(@entryPointOutput.UV): 496(ptr) Variable Output 504(@entryPointOutput.UV): 497(ptr) Variable Output
506(@entryPointOutput.ViewVec): 496(ptr) Variable Output 507(@entryPointOutput.ViewVec): 497(ptr) Variable Output
509(@entryPointOutput.LightVec): 496(ptr) Variable Output 510(@entryPointOutput.LightVec): 497(ptr) Variable Output
6(main): 4 Function None 5 6(main): 4 Function None 5
7: Label 7: Label
459(input): 56(ptr) Variable Function 460(input): 56(ptr) Variable Function
488(flattenTemp): 89(ptr) Variable Function 489(flattenTemp): 89(ptr) Variable Function
489(param): 56(ptr) Variable Function 490(param): 56(ptr) Variable Function
462: 18(fvec3) Load 461(input.Pos) 463: 18(fvec3) Load 462(input.Pos)
463: 103(ptr) AccessChain 459(input) 169 464: 103(ptr) AccessChain 460(input) 169
Store 463 462 Store 464 463
465: 18(fvec3) Load 464(input.Normal) 466: 18(fvec3) Load 465(input.Normal)
466: 103(ptr) AccessChain 459(input) 324 467: 103(ptr) AccessChain 460(input) 324
Store 466 465 Store 467 466
469: 20(fvec2) Load 468(input.UV) 470: 20(fvec2) Load 469(input.UV)
470: 110(ptr) AccessChain 459(input) 101 471: 110(ptr) AccessChain 460(input) 101
Store 470 469 Store 471 470
472: 18(fvec3) Load 471(input.Color) 473: 18(fvec3) Load 472(input.Color)
473: 103(ptr) AccessChain 459(input) 102 474: 103(ptr) AccessChain 460(input) 102
Store 473 472 Store 474 473
475: 18(fvec3) Load 474(input.instancePos) 476: 18(fvec3) Load 475(input.instancePos)
476: 103(ptr) AccessChain 459(input) 296 477: 103(ptr) AccessChain 460(input) 296
Store 476 475 Store 477 476
478: 18(fvec3) Load 477(input.instanceRot) 479: 18(fvec3) Load 478(input.instanceRot)
479: 103(ptr) AccessChain 459(input) 134 480: 103(ptr) AccessChain 460(input) 134
Store 479 478 Store 480 479
482: 8(float) Load 481(input.instanceScale) 483: 8(float) Load 482(input.instanceScale)
483: 126(ptr) AccessChain 459(input) 361 484: 126(ptr) AccessChain 460(input) 361
Store 483 482 Store 484 483
486: 23(int) Load 485(input.instanceTexIndex) 487: 23(int) Load 486(input.instanceTexIndex)
487: 117(ptr) AccessChain 459(input) 116 488: 117(ptr) AccessChain 460(input) 116
Store 487 486 Store 488 487
490: 27(VSInput) Load 459(input) 491: 27(VSInput) Load 460(input)
Store 489(param) 490 Store 490(param) 491
491:61(VSOutput) FunctionCall 78(@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;) 489(param) 492:61(VSOutput) FunctionCall 78(@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;) 490(param)
Store 488(flattenTemp) 491 Store 489(flattenTemp) 492
494: 321(ptr) AccessChain 488(flattenTemp) 169 495: 321(ptr) AccessChain 489(flattenTemp) 169
495: 59(fvec4) Load 494 496: 59(fvec4) Load 495
Store 493(@entryPointOutput.Pos) 495 Store 494(@entryPointOutput.Pos) 496
498: 103(ptr) AccessChain 488(flattenTemp) 324 499: 103(ptr) AccessChain 489(flattenTemp) 324
499: 18(fvec3) Load 498 500: 18(fvec3) Load 499
Store 497(@entryPointOutput.Normal) 499 Store 498(@entryPointOutput.Normal) 500
501: 103(ptr) AccessChain 488(flattenTemp) 101 502: 103(ptr) AccessChain 489(flattenTemp) 101
502: 18(fvec3) Load 501 503: 18(fvec3) Load 502
Store 500(@entryPointOutput.Color) 502 Store 501(@entryPointOutput.Color) 503
504: 103(ptr) AccessChain 488(flattenTemp) 102 505: 103(ptr) AccessChain 489(flattenTemp) 102
505: 18(fvec3) Load 504 506: 18(fvec3) Load 505
Store 503(@entryPointOutput.UV) 505 Store 504(@entryPointOutput.UV) 506
507: 103(ptr) AccessChain 488(flattenTemp) 296 508: 103(ptr) AccessChain 489(flattenTemp) 296
508: 18(fvec3) Load 507 509: 18(fvec3) Load 508
Store 506(@entryPointOutput.ViewVec) 508 Store 507(@entryPointOutput.ViewVec) 509
510: 103(ptr) AccessChain 488(flattenTemp) 134 511: 103(ptr) AccessChain 489(flattenTemp) 134
511: 18(fvec3) Load 510 512: 18(fvec3) Load 511
Store 509(@entryPointOutput.LightVec) 511 Store 510(@entryPointOutput.LightVec) 512
Return Return
FunctionEnd FunctionEnd
78(@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;):61(VSOutput) Function None 75 78(@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;):61(VSOutput) Function None 75

View File

@ -0,0 +1,325 @@
spv.debuginfo.implicit_br.glsl.frag
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 194
Capability Shader
Extension "SPV_KHR_non_semantic_info"
1: ExtInstImport "NonSemantic.Shader.DebugInfo.100"
3: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 14 "main" 186
ExecutionMode 14 OriginUpperLeft
2: String "spv.debuginfo.implicit_br.glsl.frag"
8: String "uint"
18: String "test_if"
21: String "// OpModuleProcessed auto-map-locations
// OpModuleProcessed auto-map-bindings
// OpModuleProcessed client vulkan100
// OpModuleProcessed target-env vulkan1.0
// OpModuleProcessed keep-uncalled
// OpModuleProcessed entry-point main
#line 1
#version 460
out int outx;
int counter = 0;
void test_if() {
if (false) {
counter += 1;
}
}
void test_ifelse() {
if (false) {
counter += 1;
}
else {
counter += 2;
}
}
void test_if_compound() {
if (false) {
if (false) {
counter += 1;
}
}
}
void test_if_compound2() {
if (false) {
if (false) {
counter += 1;
}
counter += 2;
}
}
void test_switch() {
switch (0) {
case 0:
counter += 1;
// implict fallthrough
case 1:
counter += 2;
break;
default:
counter += 3;
// implicit break
}
}
void main() {
test_if();
test_ifelse();
test_if_compound();
test_if_compound2();
test_switch();
outx = counter;
}"
28: String "test_ifelse"
33: String "test_if_compound"
38: String "test_if_compound2"
43: String "test_switch"
46: String "main"
50: String "int"
56: String "counter"
65: String "bool"
188: String "outx"
Name 14 "main"
Name 16 "test_if("
Name 26 "test_ifelse("
Name 31 "test_if_compound("
Name 36 "test_if_compound2("
Name 41 "test_switch("
Name 54 "counter"
Name 186 "outx"
Decorate 186(outx) Location 0
4: TypeVoid
5: TypeFunction 4
7: TypeInt 32 0
10: 7(int) Constant 32
11: 7(int) Constant 6
12: 7(int) Constant 0
9: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12
13: 7(int) Constant 3
6: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4
20: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 2 21
23: 7(int) Constant 1
24: 7(int) Constant 4
25: 7(int) Constant 2
22: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 23 24 20 25
19: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 18 6 20 11 12 22 18 13 11
30: 7(int) Constant 12
29: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 28 6 20 30 12 22 28 13 30
35: 7(int) Constant 21
34: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 33 6 20 35 12 22 33 13 35
40: 7(int) Constant 29
39: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 38 6 20 40 12 22 38 13 40
45: 7(int) Constant 39
44: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 43 6 20 45 12 22 43 13 45
48: 7(int) Constant 53
47: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 46 6 20 48 12 22 46 13 48
49: TypeInt 32 1
51: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 50 10 24 12
52: TypePointer Private 49(int)
53: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 51 11 12
54(counter): 52(ptr) Variable Private
57: 7(int) Constant 8
55: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 56 51 20 24 12 22 56 54(counter) 57
58: 49(int) Constant 0
64: TypeBool
66: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 65 10 25 12
67: 64(bool) ConstantFalse
70: 49(int) Constant 1
77: 7(int) Constant 10
86: 7(int) Constant 14
89: 49(int) Constant 2
93: 7(int) Constant 17
97: 7(int) Constant 19
110: 7(int) Constant 24
114: 7(int) Constant 27
131: 7(int) Constant 35
135: 7(int) Constant 37
146: 7(int) Constant 42
151: 7(int) Constant 45
154: 7(int) Constant 46
156: 49(int) Constant 3
160: 7(int) Constant 48
165: 7(int) Constant 51
171: 7(int) Constant 54
174: 7(int) Constant 55
177: 7(int) Constant 56
180: 7(int) Constant 57
183: 7(int) Constant 58
184: TypePointer Output 49(int)
185: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 51 13 12
186(outx): 184(ptr) Variable Output
189: 7(int) Constant 59
187: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 188 51 20 189 12 22 188 186(outx) 57
193: 7(int) Constant 60
14(main): 4 Function None 5
15: Label
59: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 22
60: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 24 24 12 12
Store 54(counter) 58
167: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 47
168: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 48 48 12 12
166: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 47 14(main)
170: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 171 171 12 12
169: 4 FunctionCall 16(test_if()
173: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 174 174 12 12
172: 4 FunctionCall 26(test_ifelse()
176: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 177 177 12 12
175: 4 FunctionCall 31(test_if_compound()
179: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 180 180 12 12
178: 4 FunctionCall 36(test_if_compound2()
182: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 183 183 12 12
181: 4 FunctionCall 41(test_switch()
191: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 189 189 12 12
190: 49(int) Load 54(counter)
Store 186(outx) 190
192: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 193 193 12 12
Return
FunctionEnd
16(test_if(): 4 Function None 5
17: Label
62: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 19
63: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 11 11 12 12
61: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 19 16(test_if()
SelectionMerge 69 None
BranchConditional 67 68 69
68: Label
72: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 19
73: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 57 57 12 12
71: 49(int) Load 54(counter)
74: 49(int) IAdd 71 70
Store 54(counter) 74
Branch 69
69: Label
75: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 19
76: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 77 77 12 12
Return
FunctionEnd
26(test_ifelse(): 4 Function None 5
27: Label
79: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 29
80: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 30 30 12 12
78: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 29 26(test_ifelse()
SelectionMerge 82 None
BranchConditional 67 81 88
81: Label
84: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 29
85: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 86 86 12 12
83: 49(int) Load 54(counter)
87: 49(int) IAdd 83 70
Store 54(counter) 87
Branch 82
88: Label
91: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 29
92: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 93 93 12 12
90: 49(int) Load 54(counter)
94: 49(int) IAdd 90 89
Store 54(counter) 94
Branch 82
82: Label
95: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 29
96: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 97 97 12 12
Return
FunctionEnd
31(test_if_compound(): 4 Function None 5
32: Label
99: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 34
100: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 35 35 12 12
98: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 34 31(test_if_compound()
SelectionMerge 102 None
BranchConditional 67 101 102
101: Label
105: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 34
106: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 35 35 12 12
SelectionMerge 104 None
BranchConditional 67 103 104
103: Label
108: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 34
109: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 110 110 12 12
107: 49(int) Load 54(counter)
111: 49(int) IAdd 107 70
Store 54(counter) 111
Branch 104
104: Label
Branch 102
102: Label
112: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 34
113: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 114 114 12 12
Return
FunctionEnd
36(test_if_compound2(): 4 Function None 5
37: Label
116: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 39
117: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 40 40 12 12
115: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 39 36(test_if_compound2()
SelectionMerge 119 None
BranchConditional 67 118 119
118: Label
122: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 39
123: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 40 40 12 12
SelectionMerge 121 None
BranchConditional 67 120 121
120: Label
125: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 39
126: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 10 10 12 12
124: 49(int) Load 54(counter)
127: 49(int) IAdd 124 70
Store 54(counter) 127
Branch 121
121: Label
129: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 39
130: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 131 131 12 12
128: 49(int) Load 54(counter)
132: 49(int) IAdd 128 89
Store 54(counter) 132
Branch 119
119: Label
133: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 39
134: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 135 135 12 12
Return
FunctionEnd
41(test_switch(): 4 Function None 5
42: Label
137: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 44
138: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 45 45 12 12
136: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 44 41(test_switch()
SelectionMerge 142 None
Switch 58 141
case 0: 139
case 1: 140
141: Label
158: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 44
159: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 160 160 12 12
157: 49(int) Load 54(counter)
161: 49(int) IAdd 157 156
Store 54(counter) 161
Branch 142
139: Label
144: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 44
145: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 146 146 12 12
143: 49(int) Load 54(counter)
147: 49(int) IAdd 143 70
Store 54(counter) 147
Branch 140
140: Label
149: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 44
150: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 151 151 12 12
148: 49(int) Load 54(counter)
152: 49(int) IAdd 148 89
Store 54(counter) 152
153: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 154 154 12 12
Branch 142
142: Label
163: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 44
164: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 20 165 165 12 12
Return
FunctionEnd

View File

@ -1,14 +1,14 @@
spv.debuginfo.include.glsl.frag spv.debuginfo.include.glsl.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 108 // Id's are bound by 112
Capability Shader Capability Shader
Extension "SPV_KHR_non_semantic_info" Extension "SPV_KHR_non_semantic_info"
1: ExtInstImport "NonSemantic.Shader.DebugInfo.100" 1: ExtInstImport "NonSemantic.Shader.DebugInfo.100"
4: ExtInstImport "GLSL.std.450" 4: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 15 "main" 80 EntryPoint Fragment 15 "main" 82
ExecutionMode 15 OriginUpperLeft ExecutionMode 15 OriginUpperLeft
2: String "spv.debuginfo.include.glsl.frag" 2: String "spv.debuginfo.include.glsl.frag"
3: String "spv.debuginfo.include.glsl.h" 3: String "spv.debuginfo.include.glsl.h"
@ -48,11 +48,11 @@ void main() {
50: String "mainFileFunction" 50: String "mainFileFunction"
53: String "v" 53: String "v"
57: String "main" 57: String "main"
82: String "headerOut" 84: String "headerOut"
86: String "headerUboItem" 88: String "headerUboItem"
89: String "UBO" 91: String "UBO"
94: String "" 96: String ""
96: String "int" 98: String "int"
SourceExtension "GL_GOOGLE_cpp_style_line_directive" SourceExtension "GL_GOOGLE_cpp_style_line_directive"
SourceExtension "GL_GOOGLE_include_directive" SourceExtension "GL_GOOGLE_include_directive"
Name 15 "main" Name 15 "main"
@ -60,17 +60,17 @@ void main() {
Name 28 "a" Name 28 "a"
Name 48 "mainFileFunction(vf4;" Name 48 "mainFileFunction(vf4;"
Name 47 "v" Name 47 "v"
Name 80 "headerOut" Name 82 "headerOut"
Name 84 "UBO" Name 86 "UBO"
MemberName 84(UBO) 0 "headerUboItem" MemberName 86(UBO) 0 "headerUboItem"
Name 92 "" Name 94 ""
Name 99 "param" Name 101 "param"
Name 106 "param" Name 108 "param"
Decorate 80(headerOut) Location 0 Decorate 82(headerOut) Location 0
Decorate 84(UBO) Block Decorate 86(UBO) Block
MemberDecorate 84(UBO) 0 Offset 0 MemberDecorate 86(UBO) 0 Offset 0
Decorate 92 Binding 0 Decorate 94 Binding 0
Decorate 92 DescriptorSet 0 Decorate 94 DescriptorSet 0
5: TypeVoid 5: TypeVoid
6: TypeFunction 5 6: TypeFunction 5
8: TypeInt 32 0 8: TypeInt 32 0
@ -104,39 +104,41 @@ void main() {
59: 8(int) Constant 10 59: 8(int) Constant 10
58: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 57 7 38 59 13 36 57 14 59 58: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 57 7 38 59 13 36 57 14 59
63: 8(int) Constant 9 63: 8(int) Constant 9
78: TypePointer Output 20(fvec4) 80: TypePointer Output 20(fvec4)
79: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 22 14 13 81: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 22 14 13
80(headerOut): 78(ptr) Variable Output 82(headerOut): 80(ptr) Variable Output
83: 8(int) Constant 11 85: 8(int) Constant 11
81: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 82 22 38 83 13 36 82 80(headerOut) 35 83: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 84 22 38 85 13 36 84 82(headerOut) 35
84(UBO): TypeStruct 20(fvec4) 86(UBO): TypeStruct 20(fvec4)
87: 8(int) Constant 5 89: 8(int) Constant 5
85: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 86 22 38 87 24 13 13 14 87: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 88 22 38 89 24 13 13 14
88: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 89 37 38 83 13 36 89 13 14 85 90: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 91 37 38 85 13 36 91 13 14 87
90: TypePointer Uniform 84(UBO) 92: TypePointer Uniform 86(UBO)
91: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 88 40 13 93: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 90 40 13
92: 90(ptr) Variable Uniform 94: 92(ptr) Variable Uniform
93: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 94 88 38 83 13 36 94 92 35 95: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 96 90 38 85 13 36 96 94 35
95: TypeInt 32 1 97: TypeInt 32 1
97: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 96 11 21 13 99: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 98 11 21 13
98: 95(int) Constant 0 100: 97(int) Constant 0
100: TypePointer Uniform 20(fvec4) 102: TypePointer Uniform 20(fvec4)
101: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 22 40 13 103: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 22 40 13
111: 8(int) Constant 12
15(main): 5 Function None 6 15(main): 5 Function None 6
16: Label 16: Label
99(param): 23(ptr) Variable Function 101(param): 23(ptr) Variable Function
106(param): 23(ptr) Variable Function 108(param): 23(ptr) Variable Function
76: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58 78: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
77: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 38 59 59 13 13 79: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 38 59 59 13 13
75: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 58 15(main) 77: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 58 15(main)
103: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 38 83 83 13 13 105: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 38 85 85 13 13
102: 100(ptr) AccessChain 92 98 104: 102(ptr) AccessChain 94 100
104: 20(fvec4) Load 102 106: 20(fvec4) Load 104
Store 99(param) 104 Store 101(param) 106
105: 20(fvec4) FunctionCall 48(mainFileFunction(vf4;) 99(param) 107: 20(fvec4) FunctionCall 48(mainFileFunction(vf4;) 101(param)
Store 106(param) 105 Store 108(param) 107
107: 20(fvec4) FunctionCall 29(headerFunction(vf4;) 106(param) 109: 20(fvec4) FunctionCall 29(headerFunction(vf4;) 108(param)
Store 80(headerOut) 107 Store 82(headerOut) 109
110: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 38 111 111 13 13
Return Return
FunctionEnd FunctionEnd
29(headerFunction(vf4;): 20(fvec4) Function None 26 29(headerFunction(vf4;): 20(fvec4) Function None 26
@ -157,9 +159,9 @@ void main() {
55: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 51 55: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 51
56: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 38 12 12 13 13 56: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 38 12 12 13 13
54: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 52 47(v) 44 54: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 52 47(v) 44
68: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 51 48(mainFileFunction(vf4;) 69: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 51 48(mainFileFunction(vf4;)
70: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 38 24 24 13 13 71: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 38 24 24 13 13
69: 20(fvec4) Load 47(v) 70: 20(fvec4) Load 47(v)
71: 20(fvec4) FNegate 69 72: 20(fvec4) FNegate 70
ReturnValue 71 ReturnValue 72
FunctionEnd FunctionEnd

View File

@ -1,14 +1,14 @@
spv.debuginfo.multiline.glsl.frag spv.debuginfo.multiline.glsl.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 105 // Id's are bound by 109
Capability Shader Capability Shader
Extension "SPV_KHR_non_semantic_info" Extension "SPV_KHR_non_semantic_info"
1: ExtInstImport "NonSemantic.Shader.DebugInfo.100" 1: ExtInstImport "NonSemantic.Shader.DebugInfo.100"
3: ExtInstImport "GLSL.std.450" 3: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 14 "main" 73 79 EntryPoint Fragment 14 "main" 75 81
ExecutionMode 14 OriginUpperLeft ExecutionMode 14 OriginUpperLeft
2: String "spv.debuginfo.multiline.glsl.frag" 2: String "spv.debuginfo.multiline.glsl.frag"
8: String "uint" 8: String "uint"
@ -50,20 +50,20 @@ void main() {
44: String "y" 44: String "y"
47: String "z" 47: String "z"
49: String "main" 49: String "main"
75: String "outx" 77: String "outx"
81: String "inx" 83: String "inx"
Name 14 "main" Name 14 "main"
Name 27 "add(f1;f1;f1;" Name 27 "add(f1;f1;f1;"
Name 24 "x" Name 24 "x"
Name 25 "y" Name 25 "y"
Name 26 "z" Name 26 "z"
Name 73 "outx" Name 75 "outx"
Name 79 "inx" Name 81 "inx"
Name 97 "param" Name 99 "param"
Name 100 "param" Name 102 "param"
Name 101 "param" Name 103 "param"
Decorate 73(outx) Location 0 Decorate 75(outx) Location 0
Decorate 79(inx) Location 0 Decorate 81(inx) Location 0
4: TypeVoid 4: TypeVoid
5: TypeFunction 4 5: TypeFunction 4
7: TypeInt 32 0 7: TypeInt 32 0
@ -95,47 +95,50 @@ void main() {
55: 7(int) Constant 8 55: 7(int) Constant 8
58: 7(int) Constant 10 58: 7(int) Constant 10
62: 7(int) Constant 12 62: 7(int) Constant 12
71: TypePointer Output 16(float) 69: 7(int) Constant 14
72: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 13 12 73: TypePointer Output 16(float)
73(outx): 71(ptr) Variable Output 74: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 13 12
76: 7(int) Constant 17 75(outx): 73(ptr) Variable Output
74: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 75 18 31 76 12 33 75 73(outx) 55 78: 7(int) Constant 17
77: TypePointer Input 16(float) 76: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 77 18 31 78 12 33 77 75(outx) 55
78: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 34 12 79: TypePointer Input 16(float)
79(inx): 77(ptr) Variable Input 80: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 34 12
82: 7(int) Constant 20 81(inx): 79(ptr) Variable Input
80: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 81 18 31 82 12 33 81 79(inx) 55 84: 7(int) Constant 20
85: 16(float) Constant 1065353216 82: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 83 18 31 84 12 33 83 81(inx) 55
89: 7(int) Constant 21 87: 16(float) Constant 1065353216
90: 16(float) Constant 1073741824 91: 7(int) Constant 21
94: 7(int) Constant 22 92: 16(float) Constant 1073741824
95: 16(float) Constant 1077936128 96: 7(int) Constant 22
99: 7(int) Constant 23 97: 16(float) Constant 1077936128
104: 7(int) Constant 18 101: 7(int) Constant 23
106: 7(int) Constant 18
108: 7(int) Constant 25
14(main): 4 Function None 5 14(main): 4 Function None 5
15: Label 15: Label
97(param): 19(ptr) Variable Function 99(param): 19(ptr) Variable Function
100(param): 19(ptr) Variable Function 102(param): 19(ptr) Variable Function
101(param): 19(ptr) Variable Function 103(param): 19(ptr) Variable Function
69: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 50 71: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 50
70: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 31 51 51 12 12 72: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 31 51 51 12 12
68: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 50 14(main) 70: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 50 14(main)
84: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 31 82 82 12 12 86: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 31 84 84 12 12
83: 16(float) Load 79(inx) 85: 16(float) Load 81(inx)
86: 16(float) FAdd 83 85 88: 16(float) FAdd 85 87
88: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 31 89 89 12 12 90: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 31 91 91 12 12
87: 16(float) Load 79(inx) 89: 16(float) Load 81(inx)
91: 16(float) FAdd 87 90 93: 16(float) FAdd 89 92
93: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 31 94 94 12 12 95: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 31 96 96 12 12
92: 16(float) Load 79(inx) 94: 16(float) Load 81(inx)
96: 16(float) FAdd 92 95 98: 16(float) FAdd 94 97
98: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 31 99 99 12 12 100: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 31 101 101 12 12
Store 97(param) 86 Store 99(param) 88
Store 100(param) 91 Store 102(param) 93
Store 101(param) 96 Store 103(param) 98
102: 16(float) FunctionCall 27(add(f1;f1;f1;) 97(param) 100(param) 101(param) 104: 16(float) FunctionCall 27(add(f1;f1;f1;) 99(param) 102(param) 103(param)
103: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 31 104 104 12 12 105: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 31 106 106 12 12
Store 73(outx) 102 Store 75(outx) 104
107: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 31 108 108 12 12
Return Return
FunctionEnd FunctionEnd
27(add(f1;f1;f1;): 16(float) Function None 22 27(add(f1;f1;f1;): 16(float) Function None 22

View File

@ -1,7 +1,7 @@
spv.debuginfo.rt_types.glsl.rgen spv.debuginfo.rt_types.glsl.rgen
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 123 // Id's are bound by 125
Capability RayQueryKHR Capability RayQueryKHR
Capability RayTracingNV Capability RayTracingNV
@ -148,6 +148,7 @@ void main()
112: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 111 10 24 12 112: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 111 10 24 12
115: 7(int) Constant 19 115: 7(int) Constant 19
121: 7(int) Constant 21 121: 7(int) Constant 21
124: 7(int) Constant 23
14(main): 4 Function None 5 14(main): 4 Function None 5
15: Label 15: Label
31(rayFlags): 28(ptr) Variable Function 31(rayFlags): 28(ptr) Variable Function
@ -187,5 +188,6 @@ void main()
Branch 118 Branch 118
118: Label 118: Label
122: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17 122: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
123: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 124 124 12 12
Return Return
FunctionEnd FunctionEnd

View File

@ -1,7 +1,7 @@
spv.debuginfo.scalar_types.glsl.frag spv.debuginfo.scalar_types.glsl.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 159 // Id's are bound by 161
Capability Shader Capability Shader
Capability Float16 Capability Float16
@ -229,6 +229,7 @@ void main() {
156: 7(int) Constant 54 156: 7(int) Constant 54
154: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 155 150 18 156 12 21 155 153(VAR_float16_t) 37 154: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 155 150 18 156 12 21 155 153(VAR_float16_t) 37
157:148(float16_t) Constant 0 157:148(float16_t) Constant 0
160: 7(int) Constant 55
14(main): 4 Function None 5 14(main): 4 Function None 5
15: Label 15: Label
26: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17 26: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
@ -258,5 +259,6 @@ void main() {
Store 142(VAR_uint64_t) 146 Store 142(VAR_uint64_t) 146
158: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 156 156 12 12 158: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 156 156 12 12
Store 153(VAR_float16_t) 157 Store 153(VAR_float16_t) 157
159: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 160 160 12 12
Return Return
FunctionEnd FunctionEnd

View File

@ -168,6 +168,7 @@ void main()
82: 34(fvec4) CompositeConstruct 81 81 81 81 82: 34(fvec4) CompositeConstruct 81 81 81 81
83: 34(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 73 76 82 83: 34(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 73 76 82
Store 72(gl_FragColor) 83 Store 72(gl_FragColor) 83
Line 1 107 0
Return Return
FunctionEnd FunctionEnd
Line 7 1 20 Line 7 1 20

View File

@ -0,0 +1,60 @@
#version 460
out int outx;
int counter = 0;
void test_if() {
if (false) {
counter += 1;
}
}
void test_ifelse() {
if (false) {
counter += 1;
}
else {
counter += 2;
}
}
void test_if_compound() {
if (false) {
if (false) {
counter += 1;
}
}
}
void test_if_compound2() {
if (false) {
if (false) {
counter += 1;
}
counter += 2;
}
}
void test_switch() {
switch (0) {
case 0:
counter += 1;
// implict fallthrough
case 1:
counter += 2;
break;
default:
counter += 3;
// implicit break
}
}
void main() {
test_if();
test_ifelse();
test_if_compound();
test_if_compound2();
test_switch();
outx = counter;
}

View File

@ -1694,8 +1694,12 @@ typedef TVector<TStorageQualifier> TQualifierList;
// //
class TIntermAggregate : public TIntermOperator { class TIntermAggregate : public TIntermOperator {
public: public:
TIntermAggregate() : TIntermOperator(EOpNull), userDefined(false), pragmaTable(nullptr) { } TIntermAggregate() : TIntermOperator(EOpNull), userDefined(false), pragmaTable(nullptr) {
TIntermAggregate(TOperator o) : TIntermOperator(o), pragmaTable(nullptr) { } endLoc.init();
}
TIntermAggregate(TOperator o) : TIntermOperator(o), pragmaTable(nullptr) {
endLoc.init();
}
~TIntermAggregate() { delete pragmaTable; } ~TIntermAggregate() { delete pragmaTable; }
virtual TIntermAggregate* getAsAggregate() { return this; } virtual TIntermAggregate* getAsAggregate() { return this; }
virtual const TIntermAggregate* getAsAggregate() const { return this; } virtual const TIntermAggregate* getAsAggregate() const { return this; }
@ -1719,6 +1723,9 @@ public:
void setSpirvInstruction(const TSpirvInstruction& inst) { spirvInst = inst; } void setSpirvInstruction(const TSpirvInstruction& inst) { spirvInst = inst; }
const TSpirvInstruction& getSpirvInstruction() const { return spirvInst; } const TSpirvInstruction& getSpirvInstruction() const { return spirvInst; }
void setEndLoc(TSourceLoc loc) { endLoc = loc; }
TSourceLoc getEndLoc() const { return endLoc; }
void setLinkType(TLinkType l) { linkType = l; } void setLinkType(TLinkType l) { linkType = l; }
TLinkType getLinkType() const { return linkType; } TLinkType getLinkType() const { return linkType; }
protected: protected:
@ -1733,6 +1740,10 @@ protected:
TPragmaTable* pragmaTable; TPragmaTable* pragmaTable;
TSpirvInstruction spirvInst; TSpirvInstruction spirvInst;
TLinkType linkType = ELinkNone; TLinkType linkType = ELinkNone;
// Marking the end source location of the aggregate.
// This is currently only set for a compound statement or a function body, pointing to '}'.
TSourceLoc endLoc;
}; };
// //

View File

@ -3773,8 +3773,10 @@ compound_statement
--parseContext.statementNestingLevel; --parseContext.statementNestingLevel;
} }
RIGHT_BRACE { RIGHT_BRACE {
if ($3 && $3->getAsAggregate()) if ($3 && $3->getAsAggregate()) {
$3->getAsAggregate()->setOperator(parseContext.intermediate.getDebugInfo() ? EOpScope : EOpSequence); $3->getAsAggregate()->setOperator(parseContext.intermediate.getDebugInfo() ? EOpScope : EOpSequence);
$3->getAsAggregate()->setEndLoc($5.loc);
}
$$ = $3; $$ = $3;
} }
; ;
@ -3810,8 +3812,10 @@ compound_statement_no_new_scope
$$ = 0; $$ = 0;
} }
| LEFT_BRACE statement_list RIGHT_BRACE { | LEFT_BRACE statement_list RIGHT_BRACE {
if ($2 && $2->getAsAggregate()) if ($2 && $2->getAsAggregate()) {
$2->getAsAggregate()->setOperator(EOpSequence); $2->getAsAggregate()->setOperator(EOpSequence);
$2->getAsAggregate()->setEndLoc($3.loc);
}
$$ = $2; $$ = $2;
} }
; ;

File diff suppressed because it is too large Load Diff

View File

@ -956,6 +956,7 @@ INSTANTIATE_TEST_SUITE_P(
"spv.debuginfo.rt_types.glsl.rgen", "spv.debuginfo.rt_types.glsl.rgen",
"spv.debuginfo.include.glsl.frag", "spv.debuginfo.include.glsl.frag",
"spv.debuginfo.multiline.glsl.frag", "spv.debuginfo.multiline.glsl.frag",
"spv.debuginfo.implicit_br.glsl.frag",
})), })),
FileNameAsCustomTestSuffix FileNameAsCustomTestSuffix
); );