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 {
builder.setEmitSpirvDebugInfo();
}
builder.setDebugSourceFile(glslangIntermediate->getSourceFile());
builder.setDebugMainSourceFile(glslangIntermediate->getSourceFile());
// Set the source shader's text. If for SPV version 1.0, include
// 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);
}
} 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)
entryPointTerminated = true;
builder.leaveFunction();
@ -4120,7 +4126,7 @@ bool TGlslangToSpvTraverser::visitSwitch(glslang::TVisit /* visit */, glslang::T
if (codeSegments[s])
codeSegments[s]->traverse(this);
else
builder.addSwitchBreak();
builder.addSwitchBreak(true);
}
breakForLoop.pop();
@ -4144,7 +4150,7 @@ void TGlslangToSpvTraverser::visitConstantUnion(glslang::TIntermConstantUnion* n
bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIntermLoop* node)
{
auto blocks = builder.makeNewLoop();
builder.createBranch(&blocks.head);
builder.createBranch(true, &blocks.head);
// Loop control:
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);
if (node->testFirst() && node->getTest()) {
spv::Block& test = builder.makeNewBlock();
builder.createBranch(&test);
builder.createBranch(true, &test);
builder.setBuildPoint(&test);
node->getTest()->traverse(this);
@ -4172,22 +4178,22 @@ bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIn
breakForLoop.push(true);
if (node->getBody())
node->getBody()->traverse(this);
builder.createBranch(&blocks.continue_target);
builder.createBranch(true, &blocks.continue_target);
breakForLoop.pop();
builder.setBuildPoint(&blocks.continue_target);
if (node->getTerminal())
node->getTerminal()->traverse(this);
builder.createBranch(&blocks.head);
builder.createBranch(true, &blocks.head);
} else {
builder.setDebugSourceLocation(node->getLoc().line, node->getLoc().getFilename());
builder.createBranch(&blocks.body);
builder.createBranch(true, &blocks.body);
breakForLoop.push(true);
builder.setBuildPoint(&blocks.body);
if (node->getBody())
node->getBody()->traverse(this);
builder.createBranch(&blocks.continue_target);
builder.createBranch(true, &blocks.continue_target);
breakForLoop.pop();
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
// somewhere in the body, this is an infinite loop, so we should
// issue a warning.
builder.createBranch(&blocks.head);
builder.createBranch(true, &blocks.head);
}
}
builder.setBuildPoint(&blocks.merge);
@ -4238,7 +4244,7 @@ bool TGlslangToSpvTraverser::visitBranch(glslang::TVisit /* visit */, glslang::T
if (breakForLoop.top())
builder.createLoopExit();
else
builder.addSwitchBreak();
builder.addSwitchBreak(false);
break;
case glslang::EOpContinue:
builder.createLoopContinue();

View File

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

View File

@ -108,7 +108,7 @@ public:
spv::Id getMainFileId() const { return mainFileId; }
// Initialize the main source file name
void setDebugSourceFile(const std::string& file)
void setDebugMainSourceFile(const std::string& file)
{
if (trackDebugInfo) {
dirtyLineTracker = true;
@ -420,8 +420,7 @@ public:
// Also reset current last DebugScope and current source line to unknown
void setBuildPoint(Block* bp) {
buildPoint = bp;
// TODO: Technically, change of build point should set line tracker dirty. But we'll have bad line info for
// branch instructions. Commenting this for now because at least this matches the old behavior.
dirtyLineTracker = true;
dirtyScopeTracker = true;
}
Block* getBuildPoint() const { return buildPoint; }
@ -430,6 +429,11 @@ public:
// Optionally, additional debug info instructions may also be prepended.
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
// for the lifetime of this builder.
Function* makeEntryPoint(const char*);
@ -643,7 +647,7 @@ public:
const std::vector<int>& valueToSegment, int defaultSegment, std::vector<Block*>& segmentBB);
// 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()
void nextSwitchSegment(std::vector<Block*>& segmentBB, int segment);
@ -865,7 +869,9 @@ public:
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 createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control,
const std::vector<unsigned int>& operands);

View File

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

View File

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

View File

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

View File

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

View File

@ -1,7 +1,7 @@
spv.debuginfo.const_params.glsl.comp
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 71
// Id's are bound by 73
Capability Shader
Extension "SPV_KHR_non_semantic_info"
@ -85,6 +85,7 @@ void main()
66: 22(fvec3) ConstantComposite 64 64 64
67: 24(fvec4) ConstantComposite 64 64 64 64
70: 7(int) Constant 13
72: 7(int) Constant 14
14(main): 4 Function None 5
15: Label
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)
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
71: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 37 72 72 12 12
Return
FunctionEnd
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
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 274
// Id's are bound by 276
Capability Geometry
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
266: 7(int) Constant 66
273: 7(int) Constant 68
275: 7(int) Constant 69
14(main): 4 Function None 5
15: Label
34(i): 31(ptr) Variable Function
@ -446,5 +447,6 @@ void main(void)
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
EndPrimitive
274: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 275 275 12 12
Return
FunctionEnd

View File

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

View File

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

View File

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

View File

@ -1,14 +1,14 @@
spv.debuginfo.hlsl.tese
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 477
// Id's are bound by 478
Capability Tessellation
Extension "SPV_KHR_non_semantic_info"
1: ExtInstImport "NonSemantic.Shader.DebugInfo.100"
3: ExtInstImport "GLSL.std.450"
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
2: String ""
9: String "float"
@ -102,25 +102,25 @@ spv.debuginfo.hlsl.tese
Name 297 "ubo"
MemberName 297(ubo) 0 "ubo"
Name 303 ""
Name 366 "input"
Name 368 "input.TessLevelOuter"
Name 383 "input.TessLevelInner"
Name 390 "TessCoord"
Name 392 "TessCoord"
Name 398 "patch"
Name 401 "patch.Pos"
Name 408 "patch.Normal"
Name 414 "patch.UV"
Name 446 "flattenTemp"
Name 448 "param"
Name 450 "param"
Name 454 "@entryPointOutput.Pos"
Name 458 "@entryPointOutput.Normal"
Name 462 "@entryPointOutput.UV"
Name 465 "@entryPointOutput.ViewVec"
Name 468 "@entryPointOutput.LightVec"
Name 471 "@entryPointOutput.EyePos"
Name 474 "@entryPointOutput.WorldPos"
Name 367 "input"
Name 369 "input.TessLevelOuter"
Name 384 "input.TessLevelInner"
Name 391 "TessCoord"
Name 393 "TessCoord"
Name 399 "patch"
Name 402 "patch.Pos"
Name 409 "patch.Normal"
Name 415 "patch.UV"
Name 447 "flattenTemp"
Name 449 "param"
Name 451 "param"
Name 455 "@entryPointOutput.Pos"
Name 459 "@entryPointOutput.Normal"
Name 463 "@entryPointOutput.UV"
Name 466 "@entryPointOutput.ViewVec"
Name 469 "@entryPointOutput.LightVec"
Name 472 "@entryPointOutput.EyePos"
Name 475 "@entryPointOutput.WorldPos"
Decorate 241(displacementMapTexture) Binding 1
Decorate 241(displacementMapTexture) DescriptorSet 0
Decorate 253(displacementMapSampler) Binding 1
@ -142,22 +142,22 @@ spv.debuginfo.hlsl.tese
MemberDecorate 297(ubo) 0 Offset 0
Decorate 303 Binding 0
Decorate 303 DescriptorSet 0
Decorate 368(input.TessLevelOuter) BuiltIn TessLevelOuter
Decorate 368(input.TessLevelOuter) Patch
Decorate 383(input.TessLevelInner) BuiltIn TessLevelInner
Decorate 383(input.TessLevelInner) Patch
Decorate 392(TessCoord) BuiltIn TessCoord
Decorate 392(TessCoord) Patch
Decorate 401(patch.Pos) BuiltIn Position
Decorate 408(patch.Normal) Location 0
Decorate 414(patch.UV) Location 1
Decorate 454(@entryPointOutput.Pos) BuiltIn Position
Decorate 458(@entryPointOutput.Normal) Location 0
Decorate 462(@entryPointOutput.UV) Location 1
Decorate 465(@entryPointOutput.ViewVec) Location 2
Decorate 468(@entryPointOutput.LightVec) Location 3
Decorate 471(@entryPointOutput.EyePos) Location 4
Decorate 474(@entryPointOutput.WorldPos) Location 5
Decorate 369(input.TessLevelOuter) BuiltIn TessLevelOuter
Decorate 369(input.TessLevelOuter) Patch
Decorate 384(input.TessLevelInner) BuiltIn TessLevelInner
Decorate 384(input.TessLevelInner) Patch
Decorate 393(TessCoord) BuiltIn TessCoord
Decorate 393(TessCoord) Patch
Decorate 402(patch.Pos) BuiltIn Position
Decorate 409(patch.Normal) Location 0
Decorate 415(patch.UV) Location 1
Decorate 455(@entryPointOutput.Pos) BuiltIn Position
Decorate 459(@entryPointOutput.Normal) Location 0
Decorate 463(@entryPointOutput.UV) Location 1
Decorate 466(@entryPointOutput.ViewVec) Location 2
Decorate 469(@entryPointOutput.LightVec) Location 3
Decorate 472(@entryPointOutput.EyePos) Location 4
Decorate 475(@entryPointOutput.WorldPos) Location 5
4: TypeVoid
5: TypeFunction 4
8: TypeFloat 32
@ -330,148 +330,148 @@ spv.debuginfo.hlsl.tese
351: 124(int) Constant 5
354: 11(int) Constant 92
362: 11(int) Constant 93
367: TypePointer Input 19
368(input.TessLevelOuter): 367(ptr) Variable Input
369: TypePointer Input 8(float)
382: TypePointer Input 22
383(input.TessLevelInner): 382(ptr) Variable Input
391: TypePointer Input 49(fvec3)
392(TessCoord): 391(ptr) Variable Input
397: TypePointer Function 65
399: TypeArray 47(fvec4) 18
400: TypePointer Input 399
401(patch.Pos): 400(ptr) Variable Input
402: TypePointer Input 47(fvec4)
406: TypeArray 49(fvec3) 18
407: TypePointer Input 406
408(patch.Normal): 407(ptr) Variable Input
412: TypeArray 43(fvec2) 18
413: TypePointer Input 412
414(patch.UV): 413(ptr) Variable Input
415: TypePointer Input 43(fvec2)
453: TypePointer Output 47(fvec4)
454(@entryPointOutput.Pos): 453(ptr) Variable Output
457: TypePointer Output 49(fvec3)
458(@entryPointOutput.Normal): 457(ptr) Variable Output
461: TypePointer Output 43(fvec2)
462(@entryPointOutput.UV): 461(ptr) Variable Output
465(@entryPointOutput.ViewVec): 457(ptr) Variable Output
468(@entryPointOutput.LightVec): 457(ptr) Variable Output
471(@entryPointOutput.EyePos): 457(ptr) Variable Output
474(@entryPointOutput.WorldPos): 457(ptr) Variable Output
368: TypePointer Input 19
369(input.TessLevelOuter): 368(ptr) Variable Input
370: TypePointer Input 8(float)
383: TypePointer Input 22
384(input.TessLevelInner): 383(ptr) Variable Input
392: TypePointer Input 49(fvec3)
393(TessCoord): 392(ptr) Variable Input
398: TypePointer Function 65
400: TypeArray 47(fvec4) 18
401: TypePointer Input 400
402(patch.Pos): 401(ptr) Variable Input
403: TypePointer Input 47(fvec4)
407: TypeArray 49(fvec3) 18
408: TypePointer Input 407
409(patch.Normal): 408(ptr) Variable Input
413: TypeArray 43(fvec2) 18
414: TypePointer Input 413
415(patch.UV): 414(ptr) Variable Input
416: TypePointer Input 43(fvec2)
454: TypePointer Output 47(fvec4)
455(@entryPointOutput.Pos): 454(ptr) Variable Output
458: TypePointer Output 49(fvec3)
459(@entryPointOutput.Normal): 458(ptr) Variable Output
462: TypePointer Output 43(fvec2)
463(@entryPointOutput.UV): 462(ptr) Variable Output
466(@entryPointOutput.ViewVec): 458(ptr) Variable Output
469(@entryPointOutput.LightVec): 458(ptr) Variable Output
472(@entryPointOutput.EyePos): 458(ptr) Variable Output
475(@entryPointOutput.WorldPos): 458(ptr) Variable Output
6(main): 4 Function None 5
7: Label
366(input): 40(ptr) Variable Function
390(TessCoord): 45(ptr) Variable Function
398(patch): 397(ptr) Variable Function
446(flattenTemp): 105(ptr) Variable Function
448(param): 40(ptr) Variable Function
450(param): 45(ptr) Variable Function
370: 369(ptr) AccessChain 368(input.TessLevelOuter) 127
371: 8(float) Load 370
372: 132(ptr) AccessChain 366(input) 127 127
Store 372 371
373: 369(ptr) AccessChain 368(input.TessLevelOuter) 130
374: 8(float) Load 373
375: 132(ptr) AccessChain 366(input) 127 130
Store 375 374
376: 369(ptr) AccessChain 368(input.TessLevelOuter) 128
377: 8(float) Load 376
378: 132(ptr) AccessChain 366(input) 127 128
Store 378 377
379: 369(ptr) AccessChain 368(input.TessLevelOuter) 144
380: 8(float) Load 379
381: 132(ptr) AccessChain 366(input) 127 144
Store 381 380
384: 369(ptr) AccessChain 383(input.TessLevelInner) 127
385: 8(float) Load 384
386: 132(ptr) AccessChain 366(input) 130 127
Store 386 385
387: 369(ptr) AccessChain 383(input.TessLevelInner) 130
388: 8(float) Load 387
389: 132(ptr) AccessChain 366(input) 130 130
Store 389 388
393: 49(fvec3) Load 392(TessCoord)
394: 8(float) CompositeExtract 393 0
395: 8(float) CompositeExtract 393 1
396: 43(fvec2) CompositeConstruct 394 395
Store 390(TessCoord) 396
403: 402(ptr) AccessChain 401(patch.Pos) 127
404: 47(fvec4) Load 403
405: 195(ptr) AccessChain 398(patch) 127 127
Store 405 404
409: 391(ptr) AccessChain 408(patch.Normal) 127
410: 49(fvec3) Load 409
411: 160(ptr) AccessChain 398(patch) 127 130
Store 411 410
416: 415(ptr) AccessChain 414(patch.UV) 127
417: 43(fvec2) Load 416
418: 45(ptr) AccessChain 398(patch) 127 128
Store 418 417
419: 402(ptr) AccessChain 401(patch.Pos) 130
420: 47(fvec4) Load 419
421: 195(ptr) AccessChain 398(patch) 130 127
Store 421 420
422: 391(ptr) AccessChain 408(patch.Normal) 130
423: 49(fvec3) Load 422
424: 160(ptr) AccessChain 398(patch) 130 130
Store 424 423
425: 415(ptr) AccessChain 414(patch.UV) 130
426: 43(fvec2) Load 425
427: 45(ptr) AccessChain 398(patch) 130 128
Store 427 426
428: 402(ptr) AccessChain 401(patch.Pos) 128
429: 47(fvec4) Load 428
430: 195(ptr) AccessChain 398(patch) 128 127
Store 430 429
431: 391(ptr) AccessChain 408(patch.Normal) 128
432: 49(fvec3) Load 431
433: 160(ptr) AccessChain 398(patch) 128 130
Store 433 432
434: 415(ptr) AccessChain 414(patch.UV) 128
435: 43(fvec2) Load 434
436: 45(ptr) AccessChain 398(patch) 128 128
Store 436 435
437: 402(ptr) AccessChain 401(patch.Pos) 144
438: 47(fvec4) Load 437
439: 195(ptr) AccessChain 398(patch) 144 127
Store 439 438
440: 391(ptr) AccessChain 408(patch.Normal) 144
441: 49(fvec3) Load 440
442: 160(ptr) AccessChain 398(patch) 144 130
Store 442 441
443: 415(ptr) AccessChain 414(patch.UV) 144
444: 43(fvec2) Load 443
445: 45(ptr) AccessChain 398(patch) 144 128
Store 445 444
447: 65 Load 398(patch)
449:24(ConstantsHSOutput) Load 366(input)
Store 448(param) 449
451: 43(fvec2) Load 390(TessCoord)
Store 450(param) 451
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
Store 446(flattenTemp) 452
455: 195(ptr) AccessChain 446(flattenTemp) 127
456: 47(fvec4) Load 455
Store 454(@entryPointOutput.Pos) 456
459: 160(ptr) AccessChain 446(flattenTemp) 130
460: 49(fvec3) Load 459
Store 458(@entryPointOutput.Normal) 460
463: 45(ptr) AccessChain 446(flattenTemp) 128
464: 43(fvec2) Load 463
Store 462(@entryPointOutput.UV) 464
466: 160(ptr) AccessChain 446(flattenTemp) 144
467: 49(fvec3) Load 466
Store 465(@entryPointOutput.ViewVec) 467
469: 160(ptr) AccessChain 446(flattenTemp) 305
470: 49(fvec3) Load 469
Store 468(@entryPointOutput.LightVec) 470
472: 160(ptr) AccessChain 446(flattenTemp) 351
473: 49(fvec3) Load 472
Store 471(@entryPointOutput.EyePos) 473
475: 160(ptr) AccessChain 446(flattenTemp) 345
476: 49(fvec3) Load 475
Store 474(@entryPointOutput.WorldPos) 476
367(input): 40(ptr) Variable Function
391(TessCoord): 45(ptr) Variable Function
399(patch): 398(ptr) Variable Function
447(flattenTemp): 105(ptr) Variable Function
449(param): 40(ptr) Variable Function
451(param): 45(ptr) Variable Function
371: 370(ptr) AccessChain 369(input.TessLevelOuter) 127
372: 8(float) Load 371
373: 132(ptr) AccessChain 367(input) 127 127
Store 373 372
374: 370(ptr) AccessChain 369(input.TessLevelOuter) 130
375: 8(float) Load 374
376: 132(ptr) AccessChain 367(input) 127 130
Store 376 375
377: 370(ptr) AccessChain 369(input.TessLevelOuter) 128
378: 8(float) Load 377
379: 132(ptr) AccessChain 367(input) 127 128
Store 379 378
380: 370(ptr) AccessChain 369(input.TessLevelOuter) 144
381: 8(float) Load 380
382: 132(ptr) AccessChain 367(input) 127 144
Store 382 381
385: 370(ptr) AccessChain 384(input.TessLevelInner) 127
386: 8(float) Load 385
387: 132(ptr) AccessChain 367(input) 130 127
Store 387 386
388: 370(ptr) AccessChain 384(input.TessLevelInner) 130
389: 8(float) Load 388
390: 132(ptr) AccessChain 367(input) 130 130
Store 390 389
394: 49(fvec3) Load 393(TessCoord)
395: 8(float) CompositeExtract 394 0
396: 8(float) CompositeExtract 394 1
397: 43(fvec2) CompositeConstruct 395 396
Store 391(TessCoord) 397
404: 403(ptr) AccessChain 402(patch.Pos) 127
405: 47(fvec4) Load 404
406: 195(ptr) AccessChain 399(patch) 127 127
Store 406 405
410: 392(ptr) AccessChain 409(patch.Normal) 127
411: 49(fvec3) Load 410
412: 160(ptr) AccessChain 399(patch) 127 130
Store 412 411
417: 416(ptr) AccessChain 415(patch.UV) 127
418: 43(fvec2) Load 417
419: 45(ptr) AccessChain 399(patch) 127 128
Store 419 418
420: 403(ptr) AccessChain 402(patch.Pos) 130
421: 47(fvec4) Load 420
422: 195(ptr) AccessChain 399(patch) 130 127
Store 422 421
423: 392(ptr) AccessChain 409(patch.Normal) 130
424: 49(fvec3) Load 423
425: 160(ptr) AccessChain 399(patch) 130 130
Store 425 424
426: 416(ptr) AccessChain 415(patch.UV) 130
427: 43(fvec2) Load 426
428: 45(ptr) AccessChain 399(patch) 130 128
Store 428 427
429: 403(ptr) AccessChain 402(patch.Pos) 128
430: 47(fvec4) Load 429
431: 195(ptr) AccessChain 399(patch) 128 127
Store 431 430
432: 392(ptr) AccessChain 409(patch.Normal) 128
433: 49(fvec3) Load 432
434: 160(ptr) AccessChain 399(patch) 128 130
Store 434 433
435: 416(ptr) AccessChain 415(patch.UV) 128
436: 43(fvec2) Load 435
437: 45(ptr) AccessChain 399(patch) 128 128
Store 437 436
438: 403(ptr) AccessChain 402(patch.Pos) 144
439: 47(fvec4) Load 438
440: 195(ptr) AccessChain 399(patch) 144 127
Store 440 439
441: 392(ptr) AccessChain 409(patch.Normal) 144
442: 49(fvec3) Load 441
443: 160(ptr) AccessChain 399(patch) 144 130
Store 443 442
444: 416(ptr) AccessChain 415(patch.UV) 144
445: 43(fvec2) Load 444
446: 45(ptr) AccessChain 399(patch) 144 128
Store 446 445
448: 65 Load 399(patch)
450:24(ConstantsHSOutput) Load 367(input)
Store 449(param) 450
452: 43(fvec2) Load 391(TessCoord)
Store 451(param) 452
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 447(flattenTemp) 453
456: 195(ptr) AccessChain 447(flattenTemp) 127
457: 47(fvec4) Load 456
Store 455(@entryPointOutput.Pos) 457
460: 160(ptr) AccessChain 447(flattenTemp) 130
461: 49(fvec3) Load 460
Store 459(@entryPointOutput.Normal) 461
464: 45(ptr) AccessChain 447(flattenTemp) 128
465: 43(fvec2) Load 464
Store 463(@entryPointOutput.UV) 465
467: 160(ptr) AccessChain 447(flattenTemp) 144
468: 49(fvec3) Load 467
Store 466(@entryPointOutput.ViewVec) 468
470: 160(ptr) AccessChain 447(flattenTemp) 305
471: 49(fvec3) Load 470
Store 469(@entryPointOutput.LightVec) 471
473: 160(ptr) AccessChain 447(flattenTemp) 351
474: 49(fvec3) Load 473
Store 472(@entryPointOutput.EyePos) 474
476: 160(ptr) AccessChain 447(flattenTemp) 345
477: 49(fvec3) Load 476
Store 475(@entryPointOutput.WorldPos) 477
Return
FunctionEnd
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
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 512
// Id's are bound by 513
Capability Shader
Extension "SPV_KHR_non_semantic_info"
1: ExtInstImport "NonSemantic.Shader.DebugInfo.100"
3: ExtInstImport "GLSL.std.450"
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 ""
9: String "float"
12: String "uint"
@ -88,23 +88,23 @@ spv.debuginfo.hlsl.vert
Name 339 "locPos"
Name 353 "pos"
Name 419 "lPos"
Name 459 "input"
Name 461 "input.Pos"
Name 464 "input.Normal"
Name 468 "input.UV"
Name 471 "input.Color"
Name 474 "input.instancePos"
Name 477 "input.instanceRot"
Name 481 "input.instanceScale"
Name 485 "input.instanceTexIndex"
Name 488 "flattenTemp"
Name 489 "param"
Name 493 "@entryPointOutput.Pos"
Name 497 "@entryPointOutput.Normal"
Name 500 "@entryPointOutput.Color"
Name 503 "@entryPointOutput.UV"
Name 506 "@entryPointOutput.ViewVec"
Name 509 "@entryPointOutput.LightVec"
Name 460 "input"
Name 462 "input.Pos"
Name 465 "input.Normal"
Name 469 "input.UV"
Name 472 "input.Color"
Name 475 "input.instancePos"
Name 478 "input.instanceRot"
Name 482 "input.instanceScale"
Name 486 "input.instanceTexIndex"
Name 489 "flattenTemp"
Name 490 "param"
Name 494 "@entryPointOutput.Pos"
Name 498 "@entryPointOutput.Normal"
Name 501 "@entryPointOutput.Color"
Name 504 "@entryPointOutput.UV"
Name 507 "@entryPointOutput.ViewVec"
Name 510 "@entryPointOutput.LightVec"
MemberDecorate 143(UBO) 0 RowMajor
MemberDecorate 143(UBO) 0 MatrixStride 16
MemberDecorate 143(UBO) 0 Offset 0
@ -118,20 +118,20 @@ spv.debuginfo.hlsl.vert
MemberDecorate 159(ubo) 0 Offset 0
Decorate 166 Binding 0
Decorate 166 DescriptorSet 0
Decorate 461(input.Pos) Location 0
Decorate 464(input.Normal) Location 1
Decorate 468(input.UV) Location 2
Decorate 471(input.Color) Location 3
Decorate 474(input.instancePos) Location 4
Decorate 477(input.instanceRot) Location 5
Decorate 481(input.instanceScale) Location 6
Decorate 485(input.instanceTexIndex) Location 7
Decorate 493(@entryPointOutput.Pos) BuiltIn Position
Decorate 497(@entryPointOutput.Normal) Location 0
Decorate 500(@entryPointOutput.Color) Location 1
Decorate 503(@entryPointOutput.UV) Location 2
Decorate 506(@entryPointOutput.ViewVec) Location 3
Decorate 509(@entryPointOutput.LightVec) Location 4
Decorate 462(input.Pos) Location 0
Decorate 465(input.Normal) Location 1
Decorate 469(input.UV) Location 2
Decorate 472(input.Color) Location 3
Decorate 475(input.instancePos) Location 4
Decorate 478(input.instanceRot) Location 5
Decorate 482(input.instanceScale) Location 6
Decorate 486(input.instanceTexIndex) Location 7
Decorate 494(@entryPointOutput.Pos) BuiltIn Position
Decorate 498(@entryPointOutput.Normal) Location 0
Decorate 501(@entryPointOutput.Color) Location 1
Decorate 504(@entryPointOutput.UV) Location 2
Decorate 507(@entryPointOutput.ViewVec) Location 3
Decorate 510(@entryPointOutput.LightVec) Location 4
4: TypeVoid
5: TypeFunction 4
8: TypeFloat 32
@ -302,77 +302,77 @@ spv.debuginfo.hlsl.vert
442: 11(int) Constant 109
449: 11(int) Constant 110
455: 11(int) Constant 111
460: TypePointer Input 18(fvec3)
461(input.Pos): 460(ptr) Variable Input
464(input.Normal): 460(ptr) Variable Input
467: TypePointer Input 20(fvec2)
468(input.UV): 467(ptr) Variable Input
471(input.Color): 460(ptr) Variable Input
474(input.instancePos): 460(ptr) Variable Input
477(input.instanceRot): 460(ptr) Variable Input
480: TypePointer Input 8(float)
481(input.instanceScale): 480(ptr) Variable Input
484: TypePointer Input 23(int)
485(input.instanceTexIndex): 484(ptr) Variable Input
492: TypePointer Output 59(fvec4)
493(@entryPointOutput.Pos): 492(ptr) Variable Output
496: TypePointer Output 18(fvec3)
497(@entryPointOutput.Normal): 496(ptr) Variable Output
500(@entryPointOutput.Color): 496(ptr) Variable Output
503(@entryPointOutput.UV): 496(ptr) Variable Output
506(@entryPointOutput.ViewVec): 496(ptr) Variable Output
509(@entryPointOutput.LightVec): 496(ptr) Variable Output
461: TypePointer Input 18(fvec3)
462(input.Pos): 461(ptr) Variable Input
465(input.Normal): 461(ptr) Variable Input
468: TypePointer Input 20(fvec2)
469(input.UV): 468(ptr) Variable Input
472(input.Color): 461(ptr) Variable Input
475(input.instancePos): 461(ptr) Variable Input
478(input.instanceRot): 461(ptr) Variable Input
481: TypePointer Input 8(float)
482(input.instanceScale): 481(ptr) Variable Input
485: TypePointer Input 23(int)
486(input.instanceTexIndex): 485(ptr) Variable Input
493: TypePointer Output 59(fvec4)
494(@entryPointOutput.Pos): 493(ptr) Variable Output
497: TypePointer Output 18(fvec3)
498(@entryPointOutput.Normal): 497(ptr) Variable Output
501(@entryPointOutput.Color): 497(ptr) Variable Output
504(@entryPointOutput.UV): 497(ptr) Variable Output
507(@entryPointOutput.ViewVec): 497(ptr) Variable Output
510(@entryPointOutput.LightVec): 497(ptr) Variable Output
6(main): 4 Function None 5
7: Label
459(input): 56(ptr) Variable Function
488(flattenTemp): 89(ptr) Variable Function
489(param): 56(ptr) Variable Function
462: 18(fvec3) Load 461(input.Pos)
463: 103(ptr) AccessChain 459(input) 169
Store 463 462
465: 18(fvec3) Load 464(input.Normal)
466: 103(ptr) AccessChain 459(input) 324
Store 466 465
469: 20(fvec2) Load 468(input.UV)
470: 110(ptr) AccessChain 459(input) 101
Store 470 469
472: 18(fvec3) Load 471(input.Color)
473: 103(ptr) AccessChain 459(input) 102
Store 473 472
475: 18(fvec3) Load 474(input.instancePos)
476: 103(ptr) AccessChain 459(input) 296
Store 476 475
478: 18(fvec3) Load 477(input.instanceRot)
479: 103(ptr) AccessChain 459(input) 134
Store 479 478
482: 8(float) Load 481(input.instanceScale)
483: 126(ptr) AccessChain 459(input) 361
Store 483 482
486: 23(int) Load 485(input.instanceTexIndex)
487: 117(ptr) AccessChain 459(input) 116
Store 487 486
490: 27(VSInput) Load 459(input)
Store 489(param) 490
491:61(VSOutput) FunctionCall 78(@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;) 489(param)
Store 488(flattenTemp) 491
494: 321(ptr) AccessChain 488(flattenTemp) 169
495: 59(fvec4) Load 494
Store 493(@entryPointOutput.Pos) 495
498: 103(ptr) AccessChain 488(flattenTemp) 324
499: 18(fvec3) Load 498
Store 497(@entryPointOutput.Normal) 499
501: 103(ptr) AccessChain 488(flattenTemp) 101
502: 18(fvec3) Load 501
Store 500(@entryPointOutput.Color) 502
504: 103(ptr) AccessChain 488(flattenTemp) 102
505: 18(fvec3) Load 504
Store 503(@entryPointOutput.UV) 505
507: 103(ptr) AccessChain 488(flattenTemp) 296
508: 18(fvec3) Load 507
Store 506(@entryPointOutput.ViewVec) 508
510: 103(ptr) AccessChain 488(flattenTemp) 134
511: 18(fvec3) Load 510
Store 509(@entryPointOutput.LightVec) 511
460(input): 56(ptr) Variable Function
489(flattenTemp): 89(ptr) Variable Function
490(param): 56(ptr) Variable Function
463: 18(fvec3) Load 462(input.Pos)
464: 103(ptr) AccessChain 460(input) 169
Store 464 463
466: 18(fvec3) Load 465(input.Normal)
467: 103(ptr) AccessChain 460(input) 324
Store 467 466
470: 20(fvec2) Load 469(input.UV)
471: 110(ptr) AccessChain 460(input) 101
Store 471 470
473: 18(fvec3) Load 472(input.Color)
474: 103(ptr) AccessChain 460(input) 102
Store 474 473
476: 18(fvec3) Load 475(input.instancePos)
477: 103(ptr) AccessChain 460(input) 296
Store 477 476
479: 18(fvec3) Load 478(input.instanceRot)
480: 103(ptr) AccessChain 460(input) 134
Store 480 479
483: 8(float) Load 482(input.instanceScale)
484: 126(ptr) AccessChain 460(input) 361
Store 484 483
487: 23(int) Load 486(input.instanceTexIndex)
488: 117(ptr) AccessChain 460(input) 116
Store 488 487
491: 27(VSInput) Load 460(input)
Store 490(param) 491
492:61(VSOutput) FunctionCall 78(@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;) 490(param)
Store 489(flattenTemp) 492
495: 321(ptr) AccessChain 489(flattenTemp) 169
496: 59(fvec4) Load 495
Store 494(@entryPointOutput.Pos) 496
499: 103(ptr) AccessChain 489(flattenTemp) 324
500: 18(fvec3) Load 499
Store 498(@entryPointOutput.Normal) 500
502: 103(ptr) AccessChain 489(flattenTemp) 101
503: 18(fvec3) Load 502
Store 501(@entryPointOutput.Color) 503
505: 103(ptr) AccessChain 489(flattenTemp) 102
506: 18(fvec3) Load 505
Store 504(@entryPointOutput.UV) 506
508: 103(ptr) AccessChain 489(flattenTemp) 296
509: 18(fvec3) Load 508
Store 507(@entryPointOutput.ViewVec) 509
511: 103(ptr) AccessChain 489(flattenTemp) 134
512: 18(fvec3) Load 511
Store 510(@entryPointOutput.LightVec) 512
Return
FunctionEnd
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
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 108
// Id's are bound by 112
Capability Shader
Extension "SPV_KHR_non_semantic_info"
1: ExtInstImport "NonSemantic.Shader.DebugInfo.100"
4: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 15 "main" 80
EntryPoint Fragment 15 "main" 82
ExecutionMode 15 OriginUpperLeft
2: String "spv.debuginfo.include.glsl.frag"
3: String "spv.debuginfo.include.glsl.h"
@ -48,11 +48,11 @@ void main() {
50: String "mainFileFunction"
53: String "v"
57: String "main"
82: String "headerOut"
86: String "headerUboItem"
89: String "UBO"
94: String ""
96: String "int"
84: String "headerOut"
88: String "headerUboItem"
91: String "UBO"
96: String ""
98: String "int"
SourceExtension "GL_GOOGLE_cpp_style_line_directive"
SourceExtension "GL_GOOGLE_include_directive"
Name 15 "main"
@ -60,17 +60,17 @@ void main() {
Name 28 "a"
Name 48 "mainFileFunction(vf4;"
Name 47 "v"
Name 80 "headerOut"
Name 84 "UBO"
MemberName 84(UBO) 0 "headerUboItem"
Name 92 ""
Name 99 "param"
Name 106 "param"
Decorate 80(headerOut) Location 0
Decorate 84(UBO) Block
MemberDecorate 84(UBO) 0 Offset 0
Decorate 92 Binding 0
Decorate 92 DescriptorSet 0
Name 82 "headerOut"
Name 86 "UBO"
MemberName 86(UBO) 0 "headerUboItem"
Name 94 ""
Name 101 "param"
Name 108 "param"
Decorate 82(headerOut) Location 0
Decorate 86(UBO) Block
MemberDecorate 86(UBO) 0 Offset 0
Decorate 94 Binding 0
Decorate 94 DescriptorSet 0
5: TypeVoid
6: TypeFunction 5
8: TypeInt 32 0
@ -104,39 +104,41 @@ void main() {
59: 8(int) Constant 10
58: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 57 7 38 59 13 36 57 14 59
63: 8(int) Constant 9
78: TypePointer Output 20(fvec4)
79: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 22 14 13
80(headerOut): 78(ptr) Variable Output
83: 8(int) Constant 11
81: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 82 22 38 83 13 36 82 80(headerOut) 35
84(UBO): TypeStruct 20(fvec4)
87: 8(int) Constant 5
85: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 86 22 38 87 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: TypePointer Uniform 84(UBO)
91: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 88 40 13
92: 90(ptr) Variable Uniform
93: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 94 88 38 83 13 36 94 92 35
95: TypeInt 32 1
97: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 96 11 21 13
98: 95(int) Constant 0
100: TypePointer Uniform 20(fvec4)
101: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 22 40 13
80: TypePointer Output 20(fvec4)
81: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 22 14 13
82(headerOut): 80(ptr) Variable Output
85: 8(int) Constant 11
83: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 84 22 38 85 13 36 84 82(headerOut) 35
86(UBO): TypeStruct 20(fvec4)
89: 8(int) Constant 5
87: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 88 22 38 89 24 13 13 14
90: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 91 37 38 85 13 36 91 13 14 87
92: TypePointer Uniform 86(UBO)
93: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 90 40 13
94: 92(ptr) Variable Uniform
95: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 96 90 38 85 13 36 96 94 35
97: TypeInt 32 1
99: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 98 11 21 13
100: 97(int) Constant 0
102: TypePointer Uniform 20(fvec4)
103: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 22 40 13
111: 8(int) Constant 12
15(main): 5 Function None 6
16: Label
99(param): 23(ptr) Variable Function
106(param): 23(ptr) Variable Function
76: 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
75: 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
102: 100(ptr) AccessChain 92 98
104: 20(fvec4) Load 102
Store 99(param) 104
105: 20(fvec4) FunctionCall 48(mainFileFunction(vf4;) 99(param)
Store 106(param) 105
107: 20(fvec4) FunctionCall 29(headerFunction(vf4;) 106(param)
Store 80(headerOut) 107
101(param): 23(ptr) Variable Function
108(param): 23(ptr) Variable Function
78: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
79: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 38 59 59 13 13
77: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 58 15(main)
105: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 38 85 85 13 13
104: 102(ptr) AccessChain 94 100
106: 20(fvec4) Load 104
Store 101(param) 106
107: 20(fvec4) FunctionCall 48(mainFileFunction(vf4;) 101(param)
Store 108(param) 107
109: 20(fvec4) FunctionCall 29(headerFunction(vf4;) 108(param)
Store 82(headerOut) 109
110: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 38 111 111 13 13
Return
FunctionEnd
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
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
68: 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
69: 20(fvec4) Load 47(v)
71: 20(fvec4) FNegate 69
ReturnValue 71
69: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 51 48(mainFileFunction(vf4;)
71: 5 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 38 24 24 13 13
70: 20(fvec4) Load 47(v)
72: 20(fvec4) FNegate 70
ReturnValue 72
FunctionEnd

View File

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

View File

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

View File

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

View File

@ -168,6 +168,7 @@ void main()
82: 34(fvec4) CompositeConstruct 81 81 81 81
83: 34(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 73 76 82
Store 72(gl_FragColor) 83
Line 1 107 0
Return
FunctionEnd
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 {
public:
TIntermAggregate() : TIntermOperator(EOpNull), userDefined(false), pragmaTable(nullptr) { }
TIntermAggregate(TOperator o) : TIntermOperator(o), pragmaTable(nullptr) { }
TIntermAggregate() : TIntermOperator(EOpNull), userDefined(false), pragmaTable(nullptr) {
endLoc.init();
}
TIntermAggregate(TOperator o) : TIntermOperator(o), pragmaTable(nullptr) {
endLoc.init();
}
~TIntermAggregate() { delete pragmaTable; }
virtual TIntermAggregate* getAsAggregate() { return this; }
virtual const TIntermAggregate* getAsAggregate() const { return this; }
@ -1719,6 +1723,9 @@ public:
void setSpirvInstruction(const TSpirvInstruction& inst) { spirvInst = inst; }
const TSpirvInstruction& getSpirvInstruction() const { return spirvInst; }
void setEndLoc(TSourceLoc loc) { endLoc = loc; }
TSourceLoc getEndLoc() const { return endLoc; }
void setLinkType(TLinkType l) { linkType = l; }
TLinkType getLinkType() const { return linkType; }
protected:
@ -1733,6 +1740,10 @@ protected:
TPragmaTable* pragmaTable;
TSpirvInstruction spirvInst;
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;
}
RIGHT_BRACE {
if ($3 && $3->getAsAggregate())
if ($3 && $3->getAsAggregate()) {
$3->getAsAggregate()->setOperator(parseContext.intermediate.getDebugInfo() ? EOpScope : EOpSequence);
$3->getAsAggregate()->setEndLoc($5.loc);
}
$$ = $3;
}
;
@ -3810,8 +3812,10 @@ compound_statement_no_new_scope
$$ = 0;
}
| LEFT_BRACE statement_list RIGHT_BRACE {
if ($2 && $2->getAsAggregate())
if ($2 && $2->getAsAggregate()) {
$2->getAsAggregate()->setOperator(EOpSequence);
$2->getAsAggregate()->setEndLoc($3.loc);
}
$$ = $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.include.glsl.frag",
"spv.debuginfo.multiline.glsl.frag",
"spv.debuginfo.implicit_br.glsl.frag",
})),
FileNameAsCustomTestSuffix
);