Clean up the debug line info tracking and generation.

- Correctly populate the field `currentFileId` with the presence of include directive
- Support lazy OpLine/OpDebugLine generation only when a real instruction is added instead of a debug location is set
- Improve the debug location tracking to per-block instead of just per-builder
- A few bug fixes related to debug source info
This commit is contained in:
Qingyuan Zheng 2024-02-09 10:27:40 -08:00 committed by GitHub
parent b1f7affe94
commit 30661abd9c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
19 changed files with 8844 additions and 8834 deletions

View file

@ -1558,8 +1558,13 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion,
this->options.generateDebugInfo = true; this->options.generateDebugInfo = true;
if (this->options.generateDebugInfo) { if (this->options.generateDebugInfo) {
builder.setEmitOpLines(); if (this->options.emitNonSemanticShaderDebugInfo) {
builder.setSourceFile(glslangIntermediate->getSourceFile()); builder.setEmitNonSemanticShaderDebugInfo(this->options.emitNonSemanticShaderDebugSource);
}
else {
builder.setEmitSpirvDebugInfo();
}
builder.setDebugSourceFile(glslangIntermediate->getSourceFile());
// Set the source shader's text. If for SPV version 1.0, include // Set the source shader's text. If for SPV version 1.0, include
// a preamble in comments stating the OpModuleProcessed instructions. // a preamble in comments stating the OpModuleProcessed instructions.
@ -1584,9 +1589,6 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion,
builder.addInclude(iItr->first, iItr->second); builder.addInclude(iItr->first, iItr->second);
} }
builder.setEmitNonSemanticShaderDebugInfo(this->options.emitNonSemanticShaderDebugInfo);
builder.setEmitNonSemanticShaderDebugSource(this->options.emitNonSemanticShaderDebugSource);
stdBuiltins = builder.import("GLSL.std.450"); stdBuiltins = builder.import("GLSL.std.450");
spv::AddressingModel addressingModel = spv::AddressingModelLogical; spv::AddressingModel addressingModel = spv::AddressingModelLogical;
@ -2037,7 +2039,9 @@ void TGlslangToSpvTraverser::visitSymbol(glslang::TIntermSymbol* symbol)
{ {
// We update the line information even though no code might be generated here // We update the line information even though no code might be generated here
// This is helpful to yield correct lines for control flow instructions // This is helpful to yield correct lines for control flow instructions
builder.setLine(symbol->getLoc().line, symbol->getLoc().getFilename()); if (!linkageOnly) {
builder.setDebugSourceLocation(symbol->getLoc().line, symbol->getLoc().getFilename());
}
SpecConstantOpModeGuard spec_constant_op_mode_setter(&builder); SpecConstantOpModeGuard spec_constant_op_mode_setter(&builder);
if (symbol->getType().isStruct()) if (symbol->getType().isStruct())
@ -2146,7 +2150,7 @@ void TGlslangToSpvTraverser::visitSymbol(glslang::TIntermSymbol* symbol)
bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::TIntermBinary* node) bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::TIntermBinary* node)
{ {
builder.setLine(node->getLoc().line, node->getLoc().getFilename()); builder.setDebugSourceLocation(node->getLoc().line, node->getLoc().getFilename());
if (node->getLeft()->getAsSymbolNode() != nullptr && node->getLeft()->getType().isStruct()) { if (node->getLeft()->getAsSymbolNode() != nullptr && node->getLeft()->getType().isStruct()) {
glslangTypeToIdMap[node->getLeft()->getType().getStruct()] = node->getLeft()->getAsSymbolNode()->getId(); glslangTypeToIdMap[node->getLeft()->getType().getStruct()] = node->getLeft()->getAsSymbolNode()->getId();
} }
@ -2191,7 +2195,7 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T
spv::Id rValue = accessChainLoad(node->getRight()->getType()); spv::Id rValue = accessChainLoad(node->getRight()->getType());
// reset line number for assignment // reset line number for assignment
builder.setLine(node->getLoc().line, node->getLoc().getFilename()); builder.setDebugSourceLocation(node->getLoc().line, node->getLoc().getFilename());
if (node->getOp() != glslang::EOpAssign) { if (node->getOp() != glslang::EOpAssign) {
// the left is also an r-value // the left is also an r-value
@ -2524,7 +2528,7 @@ spv::Id TGlslangToSpvTraverser::translateForcedType(spv::Id object)
bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TIntermUnary* node) bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TIntermUnary* node)
{ {
builder.setLine(node->getLoc().line, node->getLoc().getFilename()); builder.setDebugSourceLocation(node->getLoc().line, node->getLoc().getFilename());
SpecConstantOpModeGuard spec_constant_op_mode_setter(&builder); SpecConstantOpModeGuard spec_constant_op_mode_setter(&builder);
if (node->getType().getQualifier().isSpecConstant()) if (node->getType().getQualifier().isSpecConstant())
@ -2912,11 +2916,11 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
return false; return false;
} else { } else {
if (node->getOp() == glslang::EOpScope) if (node->getOp() == glslang::EOpScope)
builder.enterScope(0); builder.enterLexicalBlock(0);
} }
} else { } else {
if (sequenceDepth > 1 && node->getOp() == glslang::EOpScope) if (sequenceDepth > 1 && node->getOp() == glslang::EOpScope)
builder.leaveScope(); builder.leaveLexicalBlock();
--sequenceDepth; --sequenceDepth;
} }
@ -2943,6 +2947,9 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
} }
case glslang::EOpFunction: case glslang::EOpFunction:
if (visit == glslang::EvPreVisit) { if (visit == glslang::EvPreVisit) {
if (options.generateDebugInfo) {
builder.setDebugSourceLocation(node->getLoc().line, node->getLoc().getFilename());
}
if (isShaderEntryPoint(node)) { if (isShaderEntryPoint(node)) {
inEntryPoint = true; inEntryPoint = true;
builder.setBuildPoint(shaderEntry->getLastBlock()); builder.setBuildPoint(shaderEntry->getLastBlock());
@ -2951,10 +2958,10 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
} else { } else {
handleFunctionEntry(node); handleFunctionEntry(node);
} }
if (options.generateDebugInfo) { if (options.generateDebugInfo && !options.emitNonSemanticShaderDebugInfo) {
const auto& loc = node->getLoc(); const auto& loc = node->getLoc();
const char* sourceFileName = loc.getFilename(); const char* sourceFileName = loc.getFilename();
spv::Id sourceFileId = sourceFileName ? builder.getStringId(sourceFileName) : builder.getSourceFile(); spv::Id sourceFileId = sourceFileName ? builder.getStringId(sourceFileName) : builder.getMainFileId();
currentFunction->setDebugLineInfo(sourceFileId, loc.line, loc.column); currentFunction->setDebugLineInfo(sourceFileId, loc.line, loc.column);
} }
} else { } else {
@ -2972,7 +2979,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
return false; return false;
case glslang::EOpFunctionCall: case glslang::EOpFunctionCall:
{ {
builder.setLine(node->getLoc().line, node->getLoc().getFilename()); builder.setDebugSourceLocation(node->getLoc().line, node->getLoc().getFilename());
if (node->isUserDefined()) if (node->isUserDefined())
result = handleUserFunctionCall(node); result = handleUserFunctionCall(node);
if (result) { if (result) {
@ -3093,7 +3100,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
case glslang::EOpConstructCooperativeMatrixNV: case glslang::EOpConstructCooperativeMatrixNV:
case glslang::EOpConstructCooperativeMatrixKHR: case glslang::EOpConstructCooperativeMatrixKHR:
{ {
builder.setLine(node->getLoc().line, node->getLoc().getFilename()); builder.setDebugSourceLocation(node->getLoc().line, node->getLoc().getFilename());
std::vector<spv::Id> arguments; std::vector<spv::Id> arguments;
translateArguments(*node, arguments, lvalueCoherentFlags); translateArguments(*node, arguments, lvalueCoherentFlags);
spv::Id constructed; spv::Id constructed;
@ -3379,7 +3386,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
right->traverse(this); right->traverse(this);
spv::Id rightId = accessChainLoad(right->getType()); spv::Id rightId = accessChainLoad(right->getType());
builder.setLine(node->getLoc().line, node->getLoc().getFilename()); builder.setDebugSourceLocation(node->getLoc().line, node->getLoc().getFilename());
OpDecorations decorations = { precision, OpDecorations decorations = { precision,
TranslateNoContractionDecoration(node->getType().getQualifier()), TranslateNoContractionDecoration(node->getType().getQualifier()),
TranslateNonUniformDecoration(node->getType().getQualifier()) }; TranslateNonUniformDecoration(node->getType().getQualifier()) };
@ -3614,7 +3621,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
lvalueCoherentFlags = builder.getAccessChain().coherentFlags; lvalueCoherentFlags = builder.getAccessChain().coherentFlags;
lvalueCoherentFlags |= TranslateCoherent(glslangOperands[arg]->getAsTyped()->getType()); lvalueCoherentFlags |= TranslateCoherent(glslangOperands[arg]->getAsTyped()->getType());
} else { } else {
builder.setLine(node->getLoc().line, node->getLoc().getFilename()); builder.setDebugSourceLocation(node->getLoc().line, node->getLoc().getFilename());
glslang::TOperator glslangOp = node->getOp(); glslang::TOperator glslangOp = node->getOp();
if (arg == 1 && if (arg == 1 &&
(glslangOp == glslang::EOpRayQueryGetIntersectionType || (glslangOp == glslang::EOpRayQueryGetIntersectionType ||
@ -3666,7 +3673,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
} }
} }
builder.setLine(node->getLoc().line, node->getLoc().getFilename()); builder.setDebugSourceLocation(node->getLoc().line, node->getLoc().getFilename());
if (node->getOp() == glslang::EOpCooperativeMatrixLoad || if (node->getOp() == glslang::EOpCooperativeMatrixLoad ||
node->getOp() == glslang::EOpCooperativeMatrixLoadNV) { node->getOp() == glslang::EOpCooperativeMatrixLoadNV) {
std::vector<spv::IdImmediate> idImmOps; std::vector<spv::IdImmediate> idImmOps;
@ -3906,7 +3913,7 @@ bool TGlslangToSpvTraverser::visitSelection(glslang::TVisit /* visit */, glslang
node->getFalseBlock()->traverse(this); node->getFalseBlock()->traverse(this);
spv::Id falseValue = accessChainLoad(node->getFalseBlock()->getAsTyped()->getType()); spv::Id falseValue = accessChainLoad(node->getFalseBlock()->getAsTyped()->getType());
builder.setLine(node->getLoc().line, node->getLoc().getFilename()); builder.setDebugSourceLocation(node->getLoc().line, node->getLoc().getFilename());
// done if void // done if void
if (node->getBasicType() == glslang::EbtVoid) if (node->getBasicType() == glslang::EbtVoid)
@ -4114,7 +4121,7 @@ bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIn
// instructions in it, since the body/test may have arbitrary instructions, // instructions in it, since the body/test may have arbitrary instructions,
// including merges of its own. // including merges of its own.
builder.setBuildPoint(&blocks.head); builder.setBuildPoint(&blocks.head);
builder.setLine(node->getLoc().line, node->getLoc().getFilename()); builder.setDebugSourceLocation(node->getLoc().line, node->getLoc().getFilename());
builder.createLoopMerge(&blocks.merge, &blocks.continue_target, control, operands); builder.createLoopMerge(&blocks.merge, &blocks.continue_target, control, operands);
if (node->testFirst() && node->getTest()) { if (node->testFirst() && node->getTest()) {
spv::Block& test = builder.makeNewBlock(); spv::Block& test = builder.makeNewBlock();
@ -4137,7 +4144,7 @@ bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIn
node->getTerminal()->traverse(this); node->getTerminal()->traverse(this);
builder.createBranch(&blocks.head); builder.createBranch(&blocks.head);
} else { } else {
builder.setLine(node->getLoc().line, node->getLoc().getFilename()); builder.setDebugSourceLocation(node->getLoc().line, node->getLoc().getFilename());
builder.createBranch(&blocks.body); builder.createBranch(&blocks.body);
breakForLoop.push(true); breakForLoop.push(true);
@ -4172,7 +4179,7 @@ bool TGlslangToSpvTraverser::visitBranch(glslang::TVisit /* visit */, glslang::T
if (node->getExpression()) if (node->getExpression())
node->getExpression()->traverse(this); node->getExpression()->traverse(this);
builder.setLine(node->getLoc().line, node->getLoc().getFilename()); builder.setDebugSourceLocation(node->getLoc().line, node->getLoc().getFilename());
switch (node->getFlowOp()) { switch (node->getFlowOp()) {
case glslang::EOpKill: case glslang::EOpKill:
@ -5756,7 +5763,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
if (! node->isImage() && ! node->isTexture()) if (! node->isImage() && ! node->isTexture())
return spv::NoResult; return spv::NoResult;
builder.setLine(node->getLoc().line, node->getLoc().getFilename()); builder.setDebugSourceLocation(node->getLoc().line, node->getLoc().getFilename());
// Process a GLSL texturing op (will be SPV image) // Process a GLSL texturing op (will be SPV image)

View file

@ -58,13 +58,6 @@ Builder::Builder(unsigned int spvVersion, unsigned int magicNumber, SpvBuildLogg
spvVersion(spvVersion), spvVersion(spvVersion),
sourceLang(SourceLanguageUnknown), sourceLang(SourceLanguageUnknown),
sourceVersion(0), sourceVersion(0),
sourceFileStringId(NoResult),
currentLine(0),
currentFile(nullptr),
currentFileId(NoResult),
lastDebugScopeId(NoResult),
emitOpLines(false),
emitNonSemanticShaderDebugInfo(false),
addressModel(AddressingModelLogical), addressModel(AddressingModelLogical),
memoryModel(MemoryModelGLSL450), memoryModel(MemoryModelGLSL450),
builderNumber(magicNumber), builderNumber(magicNumber),
@ -91,78 +84,6 @@ Id Builder::import(const char* name)
return import->getResultId(); return import->getResultId();
} }
// Emit instruction for non-filename-based #line directives (ie. no filename
// seen yet): emit an OpLine if we've been asked to emit OpLines and the line
// number has changed since the last time, and is a valid line number.
void Builder::setLine(int lineNum)
{
if (lineNum != 0 && lineNum != currentLine) {
currentLine = lineNum;
if (emitOpLines) {
if (emitNonSemanticShaderDebugInfo)
addDebugScopeAndLine(currentFileId, currentLine, 0);
else
addLine(sourceFileStringId, currentLine, 0);
}
}
}
// If no filename, do non-filename-based #line emit. Else do filename-based emit.
// Emit OpLine if we've been asked to emit OpLines and the line number or filename
// has changed since the last time, and line number is valid.
void Builder::setLine(int lineNum, const char* filename)
{
if (filename == nullptr) {
setLine(lineNum);
return;
}
if ((lineNum != 0 && lineNum != currentLine) || currentFile == nullptr ||
strncmp(filename, currentFile, strlen(currentFile) + 1) != 0) {
currentLine = lineNum;
currentFile = filename;
if (emitOpLines) {
spv::Id strId = getStringId(filename);
if (emitNonSemanticShaderDebugInfo)
addDebugScopeAndLine(strId, currentLine, 0);
else
addLine(strId, currentLine, 0);
}
}
}
void Builder::addLine(Id fileName, int lineNum, int column)
{
Instruction* line = new Instruction(OpLine);
line->addIdOperand(fileName);
line->addImmediateOperand(lineNum);
line->addImmediateOperand(column);
buildPoint->addInstruction(std::unique_ptr<Instruction>(line));
}
void Builder::addDebugScopeAndLine(Id fileName, int lineNum, int column)
{
assert(!currentDebugScopeId.empty());
if (currentDebugScopeId.top() != lastDebugScopeId) {
spv::Id resultId = getUniqueId();
Instruction* scopeInst = new Instruction(resultId, makeVoidType(), OpExtInst);
scopeInst->addIdOperand(nonSemanticShaderDebugInfo);
scopeInst->addImmediateOperand(NonSemanticShaderDebugInfo100DebugScope);
scopeInst->addIdOperand(currentDebugScopeId.top());
buildPoint->addInstruction(std::unique_ptr<Instruction>(scopeInst));
lastDebugScopeId = currentDebugScopeId.top();
}
spv::Id resultId = getUniqueId();
Instruction* lineInst = new Instruction(resultId, makeVoidType(), OpExtInst);
lineInst->addIdOperand(nonSemanticShaderDebugInfo);
lineInst->addImmediateOperand(NonSemanticShaderDebugInfo100DebugLine);
lineInst->addIdOperand(makeDebugSource(fileName));
lineInst->addIdOperand(makeUintConstant(lineNum));
lineInst->addIdOperand(makeUintConstant(lineNum));
lineInst->addIdOperand(makeUintConstant(column));
lineInst->addIdOperand(makeUintConstant(column));
buildPoint->addInstruction(std::unique_ptr<Instruction>(lineInst));
}
// For creating new groupedTypes (will return old type if the requested one was already made). // For creating new groupedTypes (will return old type if the requested one was already made).
Id Builder::makeVoidType() Id Builder::makeVoidType()
{ {
@ -1011,7 +932,7 @@ Id Builder::makeMemberDebugType(Id const memberType, DebugTypeLoc const& debugTy
type->addImmediateOperand(NonSemanticShaderDebugInfo100DebugTypeMember); type->addImmediateOperand(NonSemanticShaderDebugInfo100DebugTypeMember);
type->addIdOperand(getStringId(debugTypeLoc.name)); // name id type->addIdOperand(getStringId(debugTypeLoc.name)); // name id
type->addIdOperand(debugId[memberType]); // type id type->addIdOperand(debugId[memberType]); // type id
type->addIdOperand(makeDebugSource(sourceFileStringId)); // source id TODO: verify this works across include directives type->addIdOperand(makeDebugSource(currentFileId)); // source id
type->addIdOperand(makeUintConstant(debugTypeLoc.line)); // line id TODO: currentLine is always zero type->addIdOperand(makeUintConstant(debugTypeLoc.line)); // line id TODO: currentLine is always zero
type->addIdOperand(makeUintConstant(debugTypeLoc.column)); // TODO: column id type->addIdOperand(makeUintConstant(debugTypeLoc.column)); // TODO: column id
type->addIdOperand(makeUintConstant(0)); // TODO: offset id type->addIdOperand(makeUintConstant(0)); // TODO: offset id
@ -1050,7 +971,7 @@ Id Builder::makeCompositeDebugType(std::vector<Id> const& memberTypes, char cons
type->addImmediateOperand(NonSemanticShaderDebugInfo100DebugTypeComposite); type->addImmediateOperand(NonSemanticShaderDebugInfo100DebugTypeComposite);
type->addIdOperand(getStringId(name)); // name id type->addIdOperand(getStringId(name)); // name id
type->addIdOperand(makeUintConstant(tag)); // tag id type->addIdOperand(makeUintConstant(tag)); // tag id
type->addIdOperand(makeDebugSource(sourceFileStringId)); // source id TODO: verify this works across include directives type->addIdOperand(makeDebugSource(currentFileId)); // source id
type->addIdOperand(makeUintConstant(currentLine)); // line id TODO: currentLine always zero? type->addIdOperand(makeUintConstant(currentLine)); // line id TODO: currentLine always zero?
type->addIdOperand(makeUintConstant(0)); // TODO: column id type->addIdOperand(makeUintConstant(0)); // TODO: column id
type->addIdOperand(makeDebugCompilationUnit()); // scope id type->addIdOperand(makeDebugCompilationUnit()); // scope id
@ -1113,15 +1034,20 @@ Id Builder::makeDebugSource(const Id fileName) {
sourceInst->addIdOperand(fileName); sourceInst->addIdOperand(fileName);
if (emitNonSemanticShaderDebugSource) { if (emitNonSemanticShaderDebugSource) {
spv::Id sourceId = 0; spv::Id sourceId = 0;
if (fileName == sourceFileStringId) { if (fileName == mainFileId) {
sourceId = getStringId(sourceText); sourceId = getStringId(sourceText);
} else { } else {
auto incItr = includeFiles.find(fileName); auto incItr = includeFiles.find(fileName);
assert(incItr != includeFiles.end()); if (incItr != includeFiles.end()) {
sourceId = getStringId(*incItr->second); sourceId = getStringId(*incItr->second);
} }
}
// We omit the optional source text item if not available in glslang
if (sourceId != 0) {
sourceInst->addIdOperand(sourceId); sourceInst->addIdOperand(sourceId);
} }
}
constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(sourceInst)); constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(sourceInst));
module.mapInstruction(sourceInst); module.mapInstruction(sourceInst);
debugSourceId[fileName] = resultId; debugSourceId[fileName] = resultId;
@ -1137,7 +1063,7 @@ Id Builder::makeDebugCompilationUnit() {
sourceInst->addImmediateOperand(NonSemanticShaderDebugInfo100DebugCompilationUnit); sourceInst->addImmediateOperand(NonSemanticShaderDebugInfo100DebugCompilationUnit);
sourceInst->addIdOperand(makeUintConstant(1)); // TODO(greg-lunarg): Get rid of magic number sourceInst->addIdOperand(makeUintConstant(1)); // TODO(greg-lunarg): Get rid of magic number
sourceInst->addIdOperand(makeUintConstant(4)); // TODO(greg-lunarg): Get rid of magic number sourceInst->addIdOperand(makeUintConstant(4)); // TODO(greg-lunarg): Get rid of magic number
sourceInst->addIdOperand(makeDebugSource(sourceFileStringId)); sourceInst->addIdOperand(makeDebugSource(mainFileId));
sourceInst->addIdOperand(makeUintConstant(sourceLang)); sourceInst->addIdOperand(makeUintConstant(sourceLang));
constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(sourceInst)); constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(sourceInst));
module.mapInstruction(sourceInst); module.mapInstruction(sourceInst);
@ -1160,7 +1086,7 @@ Id Builder::createDebugGlobalVariable(Id const type, char const*const name, Id c
inst->addImmediateOperand(NonSemanticShaderDebugInfo100DebugGlobalVariable); inst->addImmediateOperand(NonSemanticShaderDebugInfo100DebugGlobalVariable);
inst->addIdOperand(getStringId(name)); // name id inst->addIdOperand(getStringId(name)); // name id
inst->addIdOperand(type); // type id inst->addIdOperand(type); // type id
inst->addIdOperand(makeDebugSource(sourceFileStringId)); // source id inst->addIdOperand(makeDebugSource(currentFileId)); // source id
inst->addIdOperand(makeUintConstant(currentLine)); // line id TODO: currentLine always zero? inst->addIdOperand(makeUintConstant(currentLine)); // line id TODO: currentLine always zero?
inst->addIdOperand(makeUintConstant(0)); // TODO: column id inst->addIdOperand(makeUintConstant(0)); // TODO: column id
inst->addIdOperand(makeDebugCompilationUnit()); // scope id inst->addIdOperand(makeDebugCompilationUnit()); // scope id
@ -1184,7 +1110,7 @@ Id Builder::createDebugLocalVariable(Id type, char const*const name, size_t cons
inst->addImmediateOperand(NonSemanticShaderDebugInfo100DebugLocalVariable); inst->addImmediateOperand(NonSemanticShaderDebugInfo100DebugLocalVariable);
inst->addIdOperand(getStringId(name)); // name id inst->addIdOperand(getStringId(name)); // name id
inst->addIdOperand(type); // type id inst->addIdOperand(type); // type id
inst->addIdOperand(makeDebugSource(sourceFileStringId)); // source id inst->addIdOperand(makeDebugSource(currentFileId)); // source id
inst->addIdOperand(makeUintConstant(currentLine)); // line id inst->addIdOperand(makeUintConstant(currentLine)); // line id
inst->addIdOperand(makeUintConstant(0)); // TODO: column id inst->addIdOperand(makeUintConstant(0)); // TODO: column id
inst->addIdOperand(currentDebugScopeId.top()); // scope id inst->addIdOperand(currentDebugScopeId.top()); // scope id
@ -1224,7 +1150,7 @@ Id Builder::makeDebugDeclare(Id const debugLocalVariable, Id const pointer)
inst->addIdOperand(debugLocalVariable); // debug local variable id inst->addIdOperand(debugLocalVariable); // debug local variable id
inst->addIdOperand(pointer); // pointer to local variable id inst->addIdOperand(pointer); // pointer to local variable id
inst->addIdOperand(makeDebugExpression()); // expression id inst->addIdOperand(makeDebugExpression()); // expression id
buildPoint->addInstruction(std::unique_ptr<Instruction>(inst)); addInstruction(std::unique_ptr<Instruction>(inst));
return inst->getResultId(); return inst->getResultId();
} }
@ -1237,7 +1163,7 @@ Id Builder::makeDebugValue(Id const debugLocalVariable, Id const value)
inst->addIdOperand(debugLocalVariable); // debug local variable id inst->addIdOperand(debugLocalVariable); // debug local variable id
inst->addIdOperand(value); // value of local variable id inst->addIdOperand(value); // value of local variable id
inst->addIdOperand(makeDebugExpression()); // expression id inst->addIdOperand(makeDebugExpression()); // expression id
buildPoint->addInstruction(std::unique_ptr<Instruction>(inst)); addInstruction(std::unique_ptr<Instruction>(inst));
return inst->getResultId(); return inst->getResultId();
} }
@ -2103,6 +2029,49 @@ void Builder::addMemberDecoration(Id id, unsigned int member, Decoration decorat
decorations.push_back(std::unique_ptr<Instruction>(dec)); decorations.push_back(std::unique_ptr<Instruction>(dec));
} }
void Builder::addInstruction(std::unique_ptr<Instruction> inst) {
// Optionally insert OpDebugScope
if (emitNonSemanticShaderDebugInfo && dirtyScopeTracker) {
if (buildPoint->updateDebugScope(currentDebugScopeId.top())) {
auto scopeInst = std::make_unique<Instruction>(getUniqueId(), makeVoidType(), OpExtInst);
scopeInst->addIdOperand(nonSemanticShaderDebugInfo);
scopeInst->addImmediateOperand(NonSemanticShaderDebugInfo100DebugScope);
scopeInst->addIdOperand(currentDebugScopeId.top());
buildPoint->addInstruction(std::move(scopeInst));
}
dirtyScopeTracker = false;
}
// Insert OpLine/OpDebugLine if the debug source location has changed
if (trackDebugInfo && dirtyLineTracker) {
if (buildPoint->updateDebugSourceLocation(currentLine, 0, currentFileId)) {
if (emitSpirvDebugInfo) {
auto lineInst = std::make_unique<Instruction>(OpLine);
lineInst->addIdOperand(currentFileId);
lineInst->addImmediateOperand(currentLine);
lineInst->addImmediateOperand(0);
buildPoint->addInstruction(std::move(lineInst));
}
if (emitNonSemanticShaderDebugInfo) {
auto lineInst = std::make_unique<Instruction>(getUniqueId(), makeVoidType(), OpExtInst);
lineInst->addIdOperand(nonSemanticShaderDebugInfo);
lineInst->addImmediateOperand(NonSemanticShaderDebugInfo100DebugLine);
lineInst->addIdOperand(makeDebugSource(currentFileId));
lineInst->addIdOperand(makeUintConstant(currentLine));
lineInst->addIdOperand(makeUintConstant(currentLine));
lineInst->addIdOperand(makeUintConstant(0));
lineInst->addIdOperand(makeUintConstant(0));
buildPoint->addInstruction(std::move(lineInst));
}
}
dirtyLineTracker = false;
}
buildPoint->addInstruction(std::move(inst));
}
// Comments in header // Comments in header
Function* Builder::makeEntryPoint(const char* entryPoint) Function* Builder::makeEntryPoint(const char* entryPoint)
{ {
@ -2146,7 +2115,7 @@ Function* Builder::makeFunctionEntry(Decoration precision, Id returnType, const
// reset last debug scope // reset last debug scope
if (emitNonSemanticShaderDebugInfo) { if (emitNonSemanticShaderDebugInfo) {
lastDebugScopeId = NoResult; dirtyScopeTracker = true;
} }
// CFG // CFG
@ -2186,8 +2155,6 @@ void Builder::setupDebugFunctionEntry(Function* function, const char* name, int
// DebugScope and DebugLine for parameter DebugDeclares // DebugScope and DebugLine for parameter DebugDeclares
assert(paramTypes.size() == paramNames.size()); assert(paramTypes.size() == paramNames.size());
if ((int)paramTypes.size() > 0) { if ((int)paramTypes.size() > 0) {
addDebugScopeAndLine(currentFileId, currentLine, 0);
Id firstParamId = function->getParamId(0); Id firstParamId = function->getParamId(0);
for (size_t p = 0; p < paramTypes.size(); ++p) { for (size_t p = 0; p < paramTypes.size(); ++p) {
@ -2276,29 +2243,29 @@ void Builder::makeReturn(bool implicit, Id retVal)
if (retVal) { if (retVal) {
Instruction* inst = new Instruction(NoResult, NoType, OpReturnValue); Instruction* inst = new Instruction(NoResult, NoType, OpReturnValue);
inst->addIdOperand(retVal); inst->addIdOperand(retVal);
buildPoint->addInstruction(std::unique_ptr<Instruction>(inst)); addInstruction(std::unique_ptr<Instruction>(inst));
} else } else
buildPoint->addInstruction(std::unique_ptr<Instruction>(new Instruction(NoResult, NoType, OpReturn))); addInstruction(std::unique_ptr<Instruction>(new Instruction(NoResult, NoType, OpReturn)));
if (! implicit) if (! implicit)
createAndSetNoPredecessorBlock("post-return"); createAndSetNoPredecessorBlock("post-return");
} }
// Comments in header // Comments in header
void Builder::enterScope(uint32_t line) void Builder::enterLexicalBlock(uint32_t line)
{ {
// Generate new lexical scope debug instruction // Generate new lexical scope debug instruction
Id lexId = makeDebugLexicalBlock(line); Id lexId = makeDebugLexicalBlock(line);
currentDebugScopeId.push(lexId); currentDebugScopeId.push(lexId);
lastDebugScopeId = NoResult; dirtyScopeTracker = true;
} }
// Comments in header // Comments in header
void Builder::leaveScope() void Builder::leaveLexicalBlock()
{ {
// Pop current scope from stack and clear current scope // Pop current scope from stack and clear current scope
currentDebugScopeId.pop(); currentDebugScopeId.pop();
lastDebugScopeId = NoResult; dirtyScopeTracker = true;
} }
// Comments in header // Comments in header
@ -2322,7 +2289,7 @@ void Builder::enterFunction(Function const* function)
defInst->addImmediateOperand(NonSemanticShaderDebugInfo100DebugFunctionDefinition); defInst->addImmediateOperand(NonSemanticShaderDebugInfo100DebugFunctionDefinition);
defInst->addIdOperand(debugId[funcId]); defInst->addIdOperand(debugId[funcId]);
defInst->addIdOperand(funcId); defInst->addIdOperand(funcId);
buildPoint->addInstruction(std::unique_ptr<Instruction>(defInst)); addInstruction(std::unique_ptr<Instruction>(defInst));
} }
if (auto linkType = function->getLinkType(); linkType != LinkageTypeMax) { if (auto linkType = function->getLinkType(); linkType != LinkageTypeMax) {
@ -2358,7 +2325,7 @@ void Builder::leaveFunction()
// Comments in header // Comments in header
void Builder::makeStatementTerminator(spv::Op opcode, const char *name) void Builder::makeStatementTerminator(spv::Op opcode, const char *name)
{ {
buildPoint->addInstruction(std::unique_ptr<Instruction>(new Instruction(opcode))); addInstruction(std::unique_ptr<Instruction>(new Instruction(opcode)));
createAndSetNoPredecessorBlock(name); createAndSetNoPredecessorBlock(name);
} }
@ -2420,7 +2387,7 @@ Id Builder::createVariable(Decoration precision, StorageClass storageClass, Id t
Id Builder::createUndefined(Id type) Id Builder::createUndefined(Id type)
{ {
Instruction* inst = new Instruction(getUniqueId(), type, OpUndef); Instruction* inst = new Instruction(getUniqueId(), type, OpUndef);
buildPoint->addInstruction(std::unique_ptr<Instruction>(inst)); addInstruction(std::unique_ptr<Instruction>(inst));
return inst->getResultId(); return inst->getResultId();
} }
@ -2464,7 +2431,7 @@ void Builder::createStore(Id rValue, Id lValue, spv::MemoryAccessMask memoryAcce
} }
} }
buildPoint->addInstruction(std::unique_ptr<Instruction>(store)); addInstruction(std::unique_ptr<Instruction>(store));
} }
// Comments in header // Comments in header
@ -2486,7 +2453,7 @@ Id Builder::createLoad(Id lValue, spv::Decoration precision, spv::MemoryAccessMa
} }
} }
buildPoint->addInstruction(std::unique_ptr<Instruction>(load)); addInstruction(std::unique_ptr<Instruction>(load));
setPrecision(load->getResultId(), precision); setPrecision(load->getResultId(), precision);
return load->getResultId(); return load->getResultId();
@ -2504,7 +2471,7 @@ Id Builder::createAccessChain(StorageClass storageClass, Id base, const std::vec
chain->addIdOperand(base); chain->addIdOperand(base);
for (int i = 0; i < (int)offsets.size(); ++i) for (int i = 0; i < (int)offsets.size(); ++i)
chain->addIdOperand(offsets[i]); chain->addIdOperand(offsets[i]);
buildPoint->addInstruction(std::unique_ptr<Instruction>(chain)); addInstruction(std::unique_ptr<Instruction>(chain));
return chain->getResultId(); return chain->getResultId();
} }
@ -2515,7 +2482,7 @@ Id Builder::createArrayLength(Id base, unsigned int member)
Instruction* length = new Instruction(getUniqueId(), intType, OpArrayLength); Instruction* length = new Instruction(getUniqueId(), intType, OpArrayLength);
length->addIdOperand(base); length->addIdOperand(base);
length->addImmediateOperand(member); length->addImmediateOperand(member);
buildPoint->addInstruction(std::unique_ptr<Instruction>(length)); addInstruction(std::unique_ptr<Instruction>(length));
return length->getResultId(); return length->getResultId();
} }
@ -2532,7 +2499,7 @@ Id Builder::createCooperativeMatrixLengthKHR(Id type)
Instruction* length = new Instruction(getUniqueId(), intType, OpCooperativeMatrixLengthKHR); Instruction* length = new Instruction(getUniqueId(), intType, OpCooperativeMatrixLengthKHR);
length->addIdOperand(type); length->addIdOperand(type);
buildPoint->addInstruction(std::unique_ptr<Instruction>(length)); addInstruction(std::unique_ptr<Instruction>(length));
return length->getResultId(); return length->getResultId();
} }
@ -2549,7 +2516,7 @@ Id Builder::createCooperativeMatrixLengthNV(Id type)
Instruction* length = new Instruction(getUniqueId(), intType, OpCooperativeMatrixLengthNV); Instruction* length = new Instruction(getUniqueId(), intType, OpCooperativeMatrixLengthNV);
length->addIdOperand(type); length->addIdOperand(type);
buildPoint->addInstruction(std::unique_ptr<Instruction>(length)); addInstruction(std::unique_ptr<Instruction>(length));
return length->getResultId(); return length->getResultId();
} }
@ -2565,7 +2532,7 @@ Id Builder::createCompositeExtract(Id composite, Id typeId, unsigned index)
Instruction* extract = new Instruction(getUniqueId(), typeId, OpCompositeExtract); Instruction* extract = new Instruction(getUniqueId(), typeId, OpCompositeExtract);
extract->addIdOperand(composite); extract->addIdOperand(composite);
extract->addImmediateOperand(index); extract->addImmediateOperand(index);
buildPoint->addInstruction(std::unique_ptr<Instruction>(extract)); addInstruction(std::unique_ptr<Instruction>(extract));
return extract->getResultId(); return extract->getResultId();
} }
@ -2581,7 +2548,7 @@ Id Builder::createCompositeExtract(Id composite, Id typeId, const std::vector<un
extract->addIdOperand(composite); extract->addIdOperand(composite);
for (int i = 0; i < (int)indexes.size(); ++i) for (int i = 0; i < (int)indexes.size(); ++i)
extract->addImmediateOperand(indexes[i]); extract->addImmediateOperand(indexes[i]);
buildPoint->addInstruction(std::unique_ptr<Instruction>(extract)); addInstruction(std::unique_ptr<Instruction>(extract));
return extract->getResultId(); return extract->getResultId();
} }
@ -2592,7 +2559,7 @@ Id Builder::createCompositeInsert(Id object, Id composite, Id typeId, unsigned i
insert->addIdOperand(object); insert->addIdOperand(object);
insert->addIdOperand(composite); insert->addIdOperand(composite);
insert->addImmediateOperand(index); insert->addImmediateOperand(index);
buildPoint->addInstruction(std::unique_ptr<Instruction>(insert)); addInstruction(std::unique_ptr<Instruction>(insert));
return insert->getResultId(); return insert->getResultId();
} }
@ -2604,7 +2571,7 @@ Id Builder::createCompositeInsert(Id object, Id composite, Id typeId, const std:
insert->addIdOperand(composite); insert->addIdOperand(composite);
for (int i = 0; i < (int)indexes.size(); ++i) for (int i = 0; i < (int)indexes.size(); ++i)
insert->addImmediateOperand(indexes[i]); insert->addImmediateOperand(indexes[i]);
buildPoint->addInstruction(std::unique_ptr<Instruction>(insert)); addInstruction(std::unique_ptr<Instruction>(insert));
return insert->getResultId(); return insert->getResultId();
} }
@ -2614,7 +2581,7 @@ Id Builder::createVectorExtractDynamic(Id vector, Id typeId, Id componentIndex)
Instruction* extract = new Instruction(getUniqueId(), typeId, OpVectorExtractDynamic); Instruction* extract = new Instruction(getUniqueId(), typeId, OpVectorExtractDynamic);
extract->addIdOperand(vector); extract->addIdOperand(vector);
extract->addIdOperand(componentIndex); extract->addIdOperand(componentIndex);
buildPoint->addInstruction(std::unique_ptr<Instruction>(extract)); addInstruction(std::unique_ptr<Instruction>(extract));
return extract->getResultId(); return extract->getResultId();
} }
@ -2625,7 +2592,7 @@ Id Builder::createVectorInsertDynamic(Id vector, Id typeId, Id component, Id com
insert->addIdOperand(vector); insert->addIdOperand(vector);
insert->addIdOperand(component); insert->addIdOperand(component);
insert->addIdOperand(componentIndex); insert->addIdOperand(componentIndex);
buildPoint->addInstruction(std::unique_ptr<Instruction>(insert)); addInstruction(std::unique_ptr<Instruction>(insert));
return insert->getResultId(); return insert->getResultId();
} }
@ -2634,7 +2601,7 @@ Id Builder::createVectorInsertDynamic(Id vector, Id typeId, Id component, Id com
void Builder::createNoResultOp(Op opCode) void Builder::createNoResultOp(Op opCode)
{ {
Instruction* op = new Instruction(opCode); Instruction* op = new Instruction(opCode);
buildPoint->addInstruction(std::unique_ptr<Instruction>(op)); addInstruction(std::unique_ptr<Instruction>(op));
} }
// An opcode that has one id operand, no result id, and no type // An opcode that has one id operand, no result id, and no type
@ -2642,7 +2609,7 @@ void Builder::createNoResultOp(Op opCode, Id operand)
{ {
Instruction* op = new Instruction(opCode); Instruction* op = new Instruction(opCode);
op->addIdOperand(operand); op->addIdOperand(operand);
buildPoint->addInstruction(std::unique_ptr<Instruction>(op)); addInstruction(std::unique_ptr<Instruction>(op));
} }
// An opcode that has one or more operands, no result id, and no type // An opcode that has one or more operands, no result id, and no type
@ -2652,7 +2619,7 @@ void Builder::createNoResultOp(Op opCode, const std::vector<Id>& operands)
for (auto it = operands.cbegin(); it != operands.cend(); ++it) { for (auto it = operands.cbegin(); it != operands.cend(); ++it) {
op->addIdOperand(*it); op->addIdOperand(*it);
} }
buildPoint->addInstruction(std::unique_ptr<Instruction>(op)); addInstruction(std::unique_ptr<Instruction>(op));
} }
// An opcode that has multiple operands, no result id, and no type // An opcode that has multiple operands, no result id, and no type
@ -2665,7 +2632,7 @@ void Builder::createNoResultOp(Op opCode, const std::vector<IdImmediate>& operan
else else
op->addImmediateOperand(it->word); op->addImmediateOperand(it->word);
} }
buildPoint->addInstruction(std::unique_ptr<Instruction>(op)); addInstruction(std::unique_ptr<Instruction>(op));
} }
void Builder::createControlBarrier(Scope execution, Scope memory, MemorySemanticsMask semantics) void Builder::createControlBarrier(Scope execution, Scope memory, MemorySemanticsMask semantics)
@ -2674,7 +2641,7 @@ void Builder::createControlBarrier(Scope execution, Scope memory, MemorySemantic
op->addIdOperand(makeUintConstant(execution)); op->addIdOperand(makeUintConstant(execution));
op->addIdOperand(makeUintConstant(memory)); op->addIdOperand(makeUintConstant(memory));
op->addIdOperand(makeUintConstant(semantics)); op->addIdOperand(makeUintConstant(semantics));
buildPoint->addInstruction(std::unique_ptr<Instruction>(op)); addInstruction(std::unique_ptr<Instruction>(op));
} }
void Builder::createMemoryBarrier(unsigned executionScope, unsigned memorySemantics) void Builder::createMemoryBarrier(unsigned executionScope, unsigned memorySemantics)
@ -2682,7 +2649,7 @@ void Builder::createMemoryBarrier(unsigned executionScope, unsigned memorySemant
Instruction* op = new Instruction(OpMemoryBarrier); Instruction* op = new Instruction(OpMemoryBarrier);
op->addIdOperand(makeUintConstant(executionScope)); op->addIdOperand(makeUintConstant(executionScope));
op->addIdOperand(makeUintConstant(memorySemantics)); op->addIdOperand(makeUintConstant(memorySemantics));
buildPoint->addInstruction(std::unique_ptr<Instruction>(op)); addInstruction(std::unique_ptr<Instruction>(op));
} }
// An opcode that has one operands, a result id, and a type // An opcode that has one operands, a result id, and a type
@ -2695,7 +2662,7 @@ Id Builder::createUnaryOp(Op opCode, Id typeId, Id operand)
} }
Instruction* op = new Instruction(getUniqueId(), typeId, opCode); Instruction* op = new Instruction(getUniqueId(), typeId, opCode);
op->addIdOperand(operand); op->addIdOperand(operand);
buildPoint->addInstruction(std::unique_ptr<Instruction>(op)); addInstruction(std::unique_ptr<Instruction>(op));
return op->getResultId(); return op->getResultId();
} }
@ -2712,7 +2679,7 @@ Id Builder::createBinOp(Op opCode, Id typeId, Id left, Id right)
Instruction* op = new Instruction(getUniqueId(), typeId, opCode); Instruction* op = new Instruction(getUniqueId(), typeId, opCode);
op->addIdOperand(left); op->addIdOperand(left);
op->addIdOperand(right); op->addIdOperand(right);
buildPoint->addInstruction(std::unique_ptr<Instruction>(op)); addInstruction(std::unique_ptr<Instruction>(op));
return op->getResultId(); return op->getResultId();
} }
@ -2733,7 +2700,7 @@ Id Builder::createTriOp(Op opCode, Id typeId, Id op1, Id op2, Id op3)
op->addIdOperand(op1); op->addIdOperand(op1);
op->addIdOperand(op2); op->addIdOperand(op2);
op->addIdOperand(op3); op->addIdOperand(op3);
buildPoint->addInstruction(std::unique_ptr<Instruction>(op)); addInstruction(std::unique_ptr<Instruction>(op));
return op->getResultId(); return op->getResultId();
} }
@ -2743,7 +2710,7 @@ Id Builder::createOp(Op opCode, Id typeId, const std::vector<Id>& operands)
Instruction* op = new Instruction(getUniqueId(), typeId, opCode); Instruction* op = new Instruction(getUniqueId(), typeId, opCode);
for (auto it = operands.cbegin(); it != operands.cend(); ++it) for (auto it = operands.cbegin(); it != operands.cend(); ++it)
op->addIdOperand(*it); op->addIdOperand(*it);
buildPoint->addInstruction(std::unique_ptr<Instruction>(op)); addInstruction(std::unique_ptr<Instruction>(op));
return op->getResultId(); return op->getResultId();
} }
@ -2757,7 +2724,7 @@ Id Builder::createOp(Op opCode, Id typeId, const std::vector<IdImmediate>& opera
else else
op->addImmediateOperand(it->word); op->addImmediateOperand(it->word);
} }
buildPoint->addInstruction(std::unique_ptr<Instruction>(op)); addInstruction(std::unique_ptr<Instruction>(op));
return op->getResultId(); return op->getResultId();
} }
@ -2791,7 +2758,7 @@ Id Builder::createFunctionCall(spv::Function* function, const std::vector<spv::I
op->addIdOperand(function->getId()); op->addIdOperand(function->getId());
for (int a = 0; a < (int)args.size(); ++a) for (int a = 0; a < (int)args.size(); ++a)
op->addIdOperand(args[a]); op->addIdOperand(args[a]);
buildPoint->addInstruction(std::unique_ptr<Instruction>(op)); addInstruction(std::unique_ptr<Instruction>(op));
return op->getResultId(); return op->getResultId();
} }
@ -2813,7 +2780,7 @@ Id Builder::createRvalueSwizzle(Decoration precision, Id typeId, Id source, cons
swizzle->addIdOperand(source); swizzle->addIdOperand(source);
for (int i = 0; i < (int)channels.size(); ++i) for (int i = 0; i < (int)channels.size(); ++i)
swizzle->addImmediateOperand(channels[i]); swizzle->addImmediateOperand(channels[i]);
buildPoint->addInstruction(std::unique_ptr<Instruction>(swizzle)); addInstruction(std::unique_ptr<Instruction>(swizzle));
return setPrecision(swizzle->getResultId(), precision); return setPrecision(swizzle->getResultId(), precision);
} }
@ -2846,7 +2813,7 @@ Id Builder::createLvalueSwizzle(Id typeId, Id target, Id source, const std::vect
// finish the instruction with these components selectors // finish the instruction with these components selectors
for (int i = 0; i < numTargetComponents; ++i) for (int i = 0; i < numTargetComponents; ++i)
swizzle->addImmediateOperand(components[i]); swizzle->addImmediateOperand(components[i]);
buildPoint->addInstruction(std::unique_ptr<Instruction>(swizzle)); addInstruction(std::unique_ptr<Instruction>(swizzle));
return swizzle->getResultId(); return swizzle->getResultId();
} }
@ -2891,7 +2858,7 @@ Id Builder::smearScalar(Decoration precision, Id scalar, Id vectorType)
smear = new Instruction(getUniqueId(), vectorType, OpCompositeConstruct); smear = new Instruction(getUniqueId(), vectorType, OpCompositeConstruct);
for (int c = 0; c < numComponents; ++c) for (int c = 0; c < numComponents; ++c)
smear->addIdOperand(scalar); smear->addIdOperand(scalar);
buildPoint->addInstruction(std::unique_ptr<Instruction>(smear)); addInstruction(std::unique_ptr<Instruction>(smear));
} }
return setPrecision(smear->getResultId(), precision); return setPrecision(smear->getResultId(), precision);
@ -2906,7 +2873,7 @@ Id Builder::createBuiltinCall(Id resultType, Id builtins, int entryPoint, const
for (int arg = 0; arg < (int)args.size(); ++arg) for (int arg = 0; arg < (int)args.size(); ++arg)
inst->addIdOperand(args[arg]); inst->addIdOperand(args[arg]);
buildPoint->addInstruction(std::unique_ptr<Instruction>(inst)); addInstruction(std::unique_ptr<Instruction>(inst));
return inst->getResultId(); return inst->getResultId();
} }
@ -3102,7 +3069,7 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse,
for (size_t op = optArgNum + 1; op < texArgs.size(); ++op) for (size_t op = optArgNum + 1; op < texArgs.size(); ++op)
textureInst->addIdOperand(texArgs[op]); textureInst->addIdOperand(texArgs[op]);
setPrecision(textureInst->getResultId(), precision); setPrecision(textureInst->getResultId(), precision);
buildPoint->addInstruction(std::unique_ptr<Instruction>(textureInst)); addInstruction(std::unique_ptr<Instruction>(textureInst));
Id resultId = textureInst->getResultId(); Id resultId = textureInst->getResultId();
@ -3182,7 +3149,7 @@ Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameter
query->addIdOperand(parameters.coords); query->addIdOperand(parameters.coords);
if (parameters.lod) if (parameters.lod)
query->addIdOperand(parameters.lod); query->addIdOperand(parameters.lod);
buildPoint->addInstruction(std::unique_ptr<Instruction>(query)); addInstruction(std::unique_ptr<Instruction>(query));
addCapability(CapabilityImageQuery); addCapability(CapabilityImageQuery);
return query->getResultId(); return query->getResultId();
@ -3281,7 +3248,7 @@ Id Builder::createCompositeConstruct(Id typeId, const std::vector<Id>& constitue
Instruction* op = new Instruction(getUniqueId(), typeId, OpCompositeConstruct); Instruction* op = new Instruction(getUniqueId(), typeId, OpCompositeConstruct);
for (int c = 0; c < (int)constituents.size(); ++c) for (int c = 0; c < (int)constituents.size(); ++c)
op->addIdOperand(constituents[c]); op->addIdOperand(constituents[c]);
buildPoint->addInstruction(std::unique_ptr<Instruction>(op)); addInstruction(std::unique_ptr<Instruction>(op));
return op->getResultId(); return op->getResultId();
} }
@ -3577,7 +3544,7 @@ void Builder::makeSwitch(Id selector, unsigned int control, int numSegments, con
switchInst->addIdOperand(segmentBlocks[valueIndexToSegment[i]]->getId()); switchInst->addIdOperand(segmentBlocks[valueIndexToSegment[i]]->getId());
segmentBlocks[valueIndexToSegment[i]]->addPredecessor(buildPoint); segmentBlocks[valueIndexToSegment[i]]->addPredecessor(buildPoint);
} }
buildPoint->addInstruction(std::unique_ptr<Instruction>(switchInst)); addInstruction(std::unique_ptr<Instruction>(switchInst));
// push the merge block // push the merge block
switchMerges.push(mergeBlock); switchMerges.push(mergeBlock);
@ -4096,7 +4063,7 @@ void Builder::createBranch(Block* block)
{ {
Instruction* branch = new Instruction(OpBranch); Instruction* branch = new Instruction(OpBranch);
branch->addIdOperand(block->getId()); branch->addIdOperand(block->getId());
buildPoint->addInstruction(std::unique_ptr<Instruction>(branch)); addInstruction(std::unique_ptr<Instruction>(branch));
block->addPredecessor(buildPoint); block->addPredecessor(buildPoint);
} }
@ -4105,7 +4072,7 @@ void Builder::createSelectionMerge(Block* mergeBlock, unsigned int control)
Instruction* merge = new Instruction(OpSelectionMerge); Instruction* merge = new Instruction(OpSelectionMerge);
merge->addIdOperand(mergeBlock->getId()); merge->addIdOperand(mergeBlock->getId());
merge->addImmediateOperand(control); merge->addImmediateOperand(control);
buildPoint->addInstruction(std::unique_ptr<Instruction>(merge)); addInstruction(std::unique_ptr<Instruction>(merge));
} }
void Builder::createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control, void Builder::createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control,
@ -4117,7 +4084,7 @@ void Builder::createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned
merge->addImmediateOperand(control); merge->addImmediateOperand(control);
for (int op = 0; op < (int)operands.size(); ++op) for (int op = 0; op < (int)operands.size(); ++op)
merge->addImmediateOperand(operands[op]); merge->addImmediateOperand(operands[op]);
buildPoint->addInstruction(std::unique_ptr<Instruction>(merge)); addInstruction(std::unique_ptr<Instruction>(merge));
} }
void Builder::createConditionalBranch(Id condition, Block* thenBlock, Block* elseBlock) void Builder::createConditionalBranch(Id condition, Block* thenBlock, Block* elseBlock)
@ -4126,7 +4093,7 @@ void Builder::createConditionalBranch(Id condition, Block* thenBlock, Block* els
branch->addIdOperand(condition); branch->addIdOperand(condition);
branch->addIdOperand(thenBlock->getId()); branch->addIdOperand(thenBlock->getId());
branch->addIdOperand(elseBlock->getId()); branch->addIdOperand(elseBlock->getId());
buildPoint->addInstruction(std::unique_ptr<Instruction>(branch)); addInstruction(std::unique_ptr<Instruction>(branch));
thenBlock->addPredecessor(buildPoint); thenBlock->addPredecessor(buildPoint);
elseBlock->addPredecessor(buildPoint); elseBlock->addPredecessor(buildPoint);
} }
@ -4178,7 +4145,7 @@ void Builder::dumpSourceInstructions(const spv::Id fileId, const std::string& te
void Builder::dumpSourceInstructions(std::vector<unsigned int>& out) const void Builder::dumpSourceInstructions(std::vector<unsigned int>& out) const
{ {
if (emitNonSemanticShaderDebugInfo) return; if (emitNonSemanticShaderDebugInfo) return;
dumpSourceInstructions(sourceFileStringId, sourceText, out); dumpSourceInstructions(mainFileId, sourceText, out);
for (auto iItr = includeFiles.begin(); iItr != includeFiles.end(); ++iItr) for (auto iItr = includeFiles.begin(); iItr != includeFiles.end(); ++iItr)
dumpSourceInstructions(iItr->first, *iItr->second, out); dumpSourceInstructions(iItr->first, *iItr->second, out);
} }

View file

@ -103,32 +103,54 @@ public:
stringIds[file_c_str] = strId; stringIds[file_c_str] = strId;
return strId; return strId;
} }
spv::Id getSourceFile() const
spv::Id getMainFileId() const { return mainFileId; }
// Initialize the main source file name
void setDebugSourceFile(const std::string& file)
{ {
return sourceFileStringId; if (trackDebugInfo) {
dirtyLineTracker = true;
mainFileId = getStringId(file);
currentFileId = mainFileId;
} }
void setSourceFile(const std::string& file) }
// Set the debug source location tracker in the builder.
// The upcoming instructions in basic blocks will be associated to this location.
void setDebugSourceLocation(int line, const char* filename)
{ {
sourceFileStringId = getStringId(file); if (trackDebugInfo) {
currentFileId = sourceFileStringId; dirtyLineTracker = true;
if (line != 0) {
// TODO: This is special handling of some AST nodes having (untracked) line 0.
// But they should have a valid line number.
currentLine = line;
if (filename) {
currentFileId = getStringId(filename);
} }
}
}
}
void setSourceText(const std::string& text) { sourceText = text; } void setSourceText(const std::string& text) { sourceText = text; }
void addSourceExtension(const char* ext) { sourceExtensions.push_back(ext); } void addSourceExtension(const char* ext) { sourceExtensions.push_back(ext); }
void addModuleProcessed(const std::string& p) { moduleProcesses.push_back(p.c_str()); } void addModuleProcessed(const std::string& p) { moduleProcesses.push_back(p.c_str()); }
void setEmitOpLines() { emitOpLines = true; } void setEmitSpirvDebugInfo()
void setEmitNonSemanticShaderDebugInfo(bool const emit)
{ {
emitNonSemanticShaderDebugInfo = emit; trackDebugInfo = true;
emitSpirvDebugInfo = true;
if(emit) }
void setEmitNonSemanticShaderDebugInfo(bool emitSourceText)
{ {
trackDebugInfo = true;
emitNonSemanticShaderDebugInfo = true;
importNonSemanticShaderDebugInfoInstructions(); importNonSemanticShaderDebugInfoInstructions();
if (emitSourceText) {
emitNonSemanticShaderDebugSource = emitSourceText;
} }
} }
void setEmitNonSemanticShaderDebugSource(bool const src)
{
emitNonSemanticShaderDebugSource = src;
}
void addExtension(const char* ext) { extensions.insert(ext); } void addExtension(const char* ext) { extensions.insert(ext); }
void removeExtension(const char* ext) void removeExtension(const char* ext)
{ {
@ -169,20 +191,6 @@ public:
return id; return id;
} }
// Generate OpLine for non-filename-based #line directives (ie no filename
// seen yet): Log the current line, and if different than the last one,
// issue a new OpLine using the new line and current source file name.
void setLine(int line);
// If filename null, generate OpLine for non-filename-based line directives,
// else do filename-based: Log the current line and file, and if different
// than the last one, issue a new OpLine using the new line and file
// name.
void setLine(int line, const char* filename);
// Low-level OpLine. See setLine() for a layered helper.
void addLine(Id fileName, int line, int column);
void addDebugScopeAndLine(Id fileName, int line, int column);
// For creating new types (will return old type if the requested one was already made). // For creating new types (will return old type if the requested one was already made).
Id makeVoidType(); Id makeVoidType();
Id makeBoolType(); Id makeBoolType();
@ -409,11 +417,16 @@ public:
// Also reset current last DebugScope and current source line to unknown // Also reset current last DebugScope and current source line to unknown
void setBuildPoint(Block* bp) { void setBuildPoint(Block* bp) {
buildPoint = bp; buildPoint = bp;
lastDebugScopeId = NoResult; // TODO: Technically, change of build point should set line tracker dirty. But we'll have bad line info for
currentLine = 0; // branch instructions. Commenting this for now because at least this matches the old behavior.
dirtyScopeTracker = true;
} }
Block* getBuildPoint() const { return buildPoint; } Block* getBuildPoint() const { return buildPoint; }
// Append an instruction to the end of the current build point.
// Optionally, additional debug info instructions may also be prepended.
void addInstruction(std::unique_ptr<Instruction> inst);
// Make the entry-point function. The returned pointer is only valid // Make the entry-point function. The returned pointer is only valid
// for the lifetime of this builder. // for the lifetime of this builder.
Function* makeEntryPoint(const char*); Function* makeEntryPoint(const char*);
@ -430,10 +443,10 @@ public:
void makeReturn(bool implicit, Id retVal = 0); void makeReturn(bool implicit, Id retVal = 0);
// Initialize state and generate instructions for new lexical scope // Initialize state and generate instructions for new lexical scope
void enterScope(uint32_t line); void enterLexicalBlock(uint32_t line);
// Set state and generate instructions to exit current lexical scope // Set state and generate instructions to exit current lexical scope
void leaveScope(); void leaveLexicalBlock();
// Prepare builder for generation of instructions for a function. // Prepare builder for generation of instructions for a function.
void enterFunction(Function const* function); void enterFunction(Function const* function);
@ -882,21 +895,37 @@ public:
unsigned int spvVersion; // the version of SPIR-V to emit in the header unsigned int spvVersion; // the version of SPIR-V to emit in the header
SourceLanguage sourceLang; SourceLanguage sourceLang;
int sourceVersion; int sourceVersion;
spv::Id sourceFileStringId;
spv::Id nonSemanticShaderCompilationUnitId {0}; spv::Id nonSemanticShaderCompilationUnitId {0};
spv::Id nonSemanticShaderDebugInfo {0}; spv::Id nonSemanticShaderDebugInfo {0};
spv::Id debugInfoNone {0}; spv::Id debugInfoNone {0};
spv::Id debugExpression {0}; // Debug expression with zero operations. spv::Id debugExpression {0}; // Debug expression with zero operations.
std::string sourceText; std::string sourceText;
int currentLine;
const char* currentFile; // True if an new OpLine/OpDebugLine may need to be inserted. Either:
spv::Id currentFileId; // 1. The current debug location changed
// 2. The current build point changed
bool dirtyLineTracker;
int currentLine = 0;
// OpString id of the current file name. Always 0 if debug info is off.
spv::Id currentFileId = 0;
// OpString id of the main file name. Always 0 if debug info is off.
spv::Id mainFileId = 0;
// True if an new OpDebugScope may need to be inserted. Either:
// 1. A new lexical block is pushed
// 2. The current build point changed
bool dirtyScopeTracker;
std::stack<spv::Id> currentDebugScopeId; std::stack<spv::Id> currentDebugScopeId;
spv::Id lastDebugScopeId;
bool emitOpLines; // This flag toggles tracking of debug info while building the SPIR-V.
bool emitNonSemanticShaderDebugInfo; bool trackDebugInfo = false;
bool restoreNonSemanticShaderDebugInfo; // This flag toggles emission of SPIR-V debug instructions, like OpLine and OpSource.
bool emitNonSemanticShaderDebugSource; bool emitSpirvDebugInfo = false;
// This flag toggles emission of Non-Semantic Debug extension debug instructions.
bool emitNonSemanticShaderDebugInfo = false;
bool restoreNonSemanticShaderDebugInfo = false;
bool emitNonSemanticShaderDebugSource = false;
std::set<std::string> extensions; std::set<std::string> extensions;
std::vector<const char*> sourceExtensions; std::vector<const char*> sourceExtensions;
std::vector<const char*> moduleProcesses; std::vector<const char*> moduleProcesses;

View file

@ -56,6 +56,7 @@
#include <memory> #include <memory>
#include <vector> #include <vector>
#include <set> #include <set>
#include <optional>
namespace spv { namespace spv {
@ -190,6 +191,12 @@ protected:
// SPIR-V IR block. // SPIR-V IR block.
// //
struct DebugSourceLocation {
int line;
int column;
spv::Id fileId;
};
class Block { class Block {
public: public:
Block(Id id, Function& parent); Block(Id id, Function& parent);
@ -200,6 +207,28 @@ public:
Id getId() { return instructions.front()->getResultId(); } Id getId() { return instructions.front()->getResultId(); }
Function& getParent() const { return parent; } Function& getParent() const { return parent; }
// Returns true if the source location is actually updated.
// Note we still need the builder to insert the line marker instruction. This is just a tracker.
bool updateDebugSourceLocation(int line, int column, spv::Id fileId) {
if (currentSourceLoc && currentSourceLoc->line == line && currentSourceLoc->column == column &&
currentSourceLoc->fileId == fileId) {
return false;
}
currentSourceLoc = DebugSourceLocation{line, column, fileId};
return true;
}
// Returns true if the scope is actually updated.
// Note we still need the builder to insert the debug scope instruction. This is just a tracker.
bool updateDebugScope(spv::Id scopeId) {
assert(scopeId);
if (currentDebugScope && *currentDebugScope == scopeId) {
return false;
}
currentDebugScope = scopeId;
return true;
}
void addInstruction(std::unique_ptr<Instruction> inst); void addInstruction(std::unique_ptr<Instruction> inst);
void addPredecessor(Block* pred) { predecessors.push_back(pred); pred->successors.push_back(this);} void addPredecessor(Block* pred) { predecessors.push_back(pred); pred->successors.push_back(this);}
void addLocalVariable(std::unique_ptr<Instruction> inst) { localVariables.push_back(std::move(inst)); } void addLocalVariable(std::unique_ptr<Instruction> inst) { localVariables.push_back(std::move(inst)); }
@ -292,6 +321,12 @@ protected:
std::vector<std::unique_ptr<Instruction> > localVariables; std::vector<std::unique_ptr<Instruction> > localVariables;
Function& parent; Function& parent;
// Track source location of the last source location marker instruction.
std::optional<DebugSourceLocation> currentSourceLoc;
// Track scope of the last debug scope instruction.
std::optional<spv::Id> currentDebugScope;
// track whether this block is known to be uncreachable (not necessarily // track whether this block is known to be uncreachable (not necessarily
// true for all unreachable blocks, but should be set at least // true for all unreachable blocks, but should be set at least
// for the extraneous ones introduced by the builder). // for the extraneous ones introduced by the builder).

View file

@ -1,19 +1,19 @@
spv.debuginfo.bufferref.glsl.frag spv.debuginfo.bufferref.glsl.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 143 // Id's are bound by 142
Capability Shader Capability Shader
Capability PhysicalStorageBufferAddressesEXT Capability PhysicalStorageBufferAddressesEXT
Extension "SPV_KHR_non_semantic_info" Extension "SPV_KHR_non_semantic_info"
Extension "SPV_KHR_physical_storage_buffer" Extension "SPV_KHR_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class" Extension "SPV_KHR_storage_buffer_storage_class"
2: ExtInstImport "NonSemantic.Shader.DebugInfo.100" 1: ExtInstImport "NonSemantic.Shader.DebugInfo.100"
3: ExtInstImport "GLSL.std.450" 3: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT GLSL450 MemoryModel PhysicalStorageBuffer64EXT GLSL450
EntryPoint Fragment 14 "main" 75 134 EntryPoint Fragment 14 "main" 76 131
ExecutionMode 14 OriginUpperLeft ExecutionMode 14 OriginUpperLeft
1: String "" 2: String ""
8: String "uint" 8: String "uint"
16: String "main" 16: String "main"
19: String "// OpModuleProcessed auto-map-locations 19: String "// OpModuleProcessed auto-map-locations
@ -24,45 +24,45 @@ spv.debuginfo.bufferref.glsl.frag
// OpModuleProcessed entry-point main // OpModuleProcessed entry-point main
#line 1 #line 1
" "
32: String "Mesh" 31: String "Mesh"
34: String "float" 34: String "float"
40: String "data" 40: String "data"
44: String "MeshVertexPositions" 44: String "MeshVertexPositions"
50: String "meshData" 50: String "meshData"
62: String "PerPass_meshes" 63: String "PerPass_meshes"
68: String "perPass_meshes" 69: String "perPass_meshes"
70: String "int" 71: String "int"
77: String "tri_idx0" 78: String "tri_idx0"
95: String "vertex_pos0" 94: String "vertex_pos0"
136: String "out_fragColor" 133: String "out_fragColor"
SourceExtension "GL_EXT_buffer_reference" SourceExtension "GL_EXT_buffer_reference"
Name 14 "main" Name 14 "main"
Name 30 "Mesh" Name 29 "Mesh"
MemberName 30(Mesh) 0 "positions" MemberName 29(Mesh) 0 "positions"
Name 38 "MeshVertexPositions" Name 38 "MeshVertexPositions"
MemberName 38(MeshVertexPositions) 0 "data" MemberName 38(MeshVertexPositions) 0 "data"
Name 48 "meshData" Name 48 "meshData"
Name 53 "Mesh" Name 54 "Mesh"
MemberName 53(Mesh) 0 "positions" MemberName 54(Mesh) 0 "positions"
Name 57 "PerPass_meshes" Name 58 "PerPass_meshes"
MemberName 57(PerPass_meshes) 0 "data" MemberName 58(PerPass_meshes) 0 "data"
Name 66 "perPass_meshes" Name 67 "perPass_meshes"
Name 75 "tri_idx0" Name 76 "tri_idx0"
Name 93 "vertex_pos0" Name 92 "vertex_pos0"
Name 134 "out_fragColor" Name 131 "out_fragColor"
Decorate 36 ArrayStride 4 Decorate 36 ArrayStride 4
MemberDecorate 38(MeshVertexPositions) 0 Offset 0 MemberDecorate 38(MeshVertexPositions) 0 Offset 0
Decorate 38(MeshVertexPositions) Block Decorate 38(MeshVertexPositions) Block
MemberDecorate 53(Mesh) 0 Offset 0 MemberDecorate 54(Mesh) 0 Offset 0
Decorate 55 ArrayStride 8 Decorate 56 ArrayStride 8
MemberDecorate 57(PerPass_meshes) 0 NonWritable MemberDecorate 58(PerPass_meshes) 0 NonWritable
MemberDecorate 57(PerPass_meshes) 0 Offset 0 MemberDecorate 58(PerPass_meshes) 0 Offset 0
Decorate 57(PerPass_meshes) Block Decorate 58(PerPass_meshes) Block
Decorate 66(perPass_meshes) DescriptorSet 0 Decorate 67(perPass_meshes) DescriptorSet 0
Decorate 66(perPass_meshes) Binding 0 Decorate 67(perPass_meshes) Binding 0
Decorate 75(tri_idx0) Flat Decorate 76(tri_idx0) Flat
Decorate 75(tri_idx0) Location 0 Decorate 76(tri_idx0) Location 0
Decorate 134(out_fragColor) Location 0 Decorate 131(out_fragColor) Location 0
Decorate 48(meshData) DecorationAliasedPointerEXT Decorate 48(meshData) DecorationAliasedPointerEXT
4: TypeVoid 4: TypeVoid
5: TypeFunction 4 5: TypeFunction 4
@ -70,129 +70,127 @@ spv.debuginfo.bufferref.glsl.frag
10: 7(int) Constant 32 10: 7(int) Constant 32
11: 7(int) Constant 6 11: 7(int) Constant 6
12: 7(int) Constant 0 12: 7(int) Constant 0
9: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12 9: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12
13: 7(int) Constant 3 13: 7(int) Constant 3
6: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4 6: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4
18: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 19 18: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 2 19
20: 7(int) Constant 20 20: 7(int) Constant 20
22: 7(int) Constant 1 22: 7(int) Constant 1
23: 7(int) Constant 4 23: 7(int) Constant 4
24: 7(int) Constant 2 24: 7(int) Constant 2
21: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 22 23 18 24 21: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 22 23 18 24
17: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 16 6 18 20 12 21 16 13 20 17: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 16 6 18 20 12 21 16 13 20
28: 7(int) Constant 21 TypeForwardPointer 28 PhysicalStorageBufferEXT
TypeForwardPointer 29 PhysicalStorageBufferEXT 29(Mesh): TypeStruct 28
30(Mesh): TypeStruct 29 32: 7(int) Constant 21
31: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 32 22 18 28 12 21 32 12 13 30: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 31 22 18 32 12 21 31 12 13
33: TypeFloat 32 33: TypeFloat 32
35: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 34 10 13 12 35: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 34 10 13 12
36: TypeRuntimeArray 33(float) 36: TypeRuntimeArray 33(float)
37: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 35 12 37: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 35 12
38(MeshVertexPositions): TypeStruct 36 38(MeshVertexPositions): TypeStruct 36
41: 7(int) Constant 5 41: 7(int) Constant 5
42: 7(int) Constant 9 42: 7(int) Constant 9
39: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 40 37 18 41 42 12 12 13 39: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 40 37 18 41 42 12 12 13
43: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 44 22 18 28 12 21 44 12 13 39 43: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 44 22 18 32 12 21 44 12 13 39
29: TypePointer PhysicalStorageBufferEXT 38(MeshVertexPositions) 28: TypePointer PhysicalStorageBufferEXT 38(MeshVertexPositions)
45: TypePointer Function 30(Mesh) 45: TypePointer Function 29(Mesh)
46: 7(int) Constant 7 46: 7(int) Constant 7
47: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 46 12 47: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 46 12
49: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 50 31 18 28 12 17 23 49: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 50 30 18 32 12 17 23
52: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression) 52: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
53(Mesh): TypeStruct 29(ptr) 54(Mesh): TypeStruct 28(ptr)
54: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 32 22 18 28 12 21 32 12 13 55: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 31 22 18 32 12 21 31 12 13
55: TypeRuntimeArray 53(Mesh) 56: TypeRuntimeArray 54(Mesh)
56: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 54 12 57: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 55 12
57(PerPass_meshes): TypeStruct 55 58(PerPass_meshes): TypeStruct 56
59: 7(int) Constant 13 60: 7(int) Constant 13
60: 7(int) Constant 8 61: 7(int) Constant 8
58: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 40 56 18 59 60 12 12 13 59: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 40 57 18 60 61 12 12 13
61: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 62 22 18 28 12 21 62 12 13 58 62: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 63 22 18 32 12 21 63 12 13 59
63: TypePointer StorageBuffer 57(PerPass_meshes) 64: TypePointer StorageBuffer 58(PerPass_meshes)
64: 7(int) Constant 12 65: 7(int) Constant 12
65: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 61 64 12 66: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 62 65 12
66(perPass_meshes): 63(ptr) Variable StorageBuffer 67(perPass_meshes): 64(ptr) Variable StorageBuffer
67: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 68 61 18 28 12 21 68 66(perPass_meshes) 60 68: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 69 62 18 32 12 21 69 67(perPass_meshes) 61
69: TypeInt 32 1 70: TypeInt 32 1
71: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 70 10 23 12 72: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 71 10 23 12
72: 69(int) Constant 0 73: 70(int) Constant 0
73: TypePointer Input 7(int) 74: TypePointer Input 7(int)
74: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 9 22 12 75: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 9 22 12
75(tri_idx0): 73(ptr) Variable Input 76(tri_idx0): 74(ptr) Variable Input
76: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 77 9 18 28 12 21 77 75(tri_idx0) 60 77: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 78 9 18 32 12 21 78 76(tri_idx0) 61
79: TypePointer StorageBuffer 53(Mesh) 80: TypePointer StorageBuffer 54(Mesh)
80: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 54 64 12 81: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 55 65 12
84: TypePointer Function 29(ptr) 85: TypePointer Function 28(ptr)
85: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone) 86: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
88: 7(int) Constant 23 88: TypeVector 33(float) 3
89: TypeVector 33(float) 3 89: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 35 13
90: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 35 13 90: TypePointer Function 88(fvec3)
91: TypePointer Function 89(fvec3) 91: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 89 46 12
92: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 90 46 12 95: 7(int) Constant 23
94: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 95 90 18 88 12 17 23 93: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 94 89 18 95 12 17 23
98: 7(int) Constant 25 102: TypePointer PhysicalStorageBufferEXT 33(float)
104: TypePointer PhysicalStorageBufferEXT 33(float) 103: 7(int) Constant 5349
105: 7(int) Constant 5349 104: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 35 103 12
106: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 35 105 12 109: 7(int) Constant 24
110: 7(int) Constant 24 118: 7(int) Constant 25
129: 7(int) Constant 27 127: TypeVector 33(float) 4
130: TypeVector 33(float) 4 128: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 35 23
131: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 35 23 129: TypePointer Output 127(fvec4)
132: TypePointer Output 130(fvec4) 130: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 128 13 12
133: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 131 13 12 131(out_fragColor): 129(ptr) Variable Output
134(out_fragColor): 132(ptr) Variable Output 134: 7(int) Constant 27
135: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 136 131 18 129 12 21 136 134(out_fragColor) 60 132: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 133 128 18 134 12 21 133 131(out_fragColor) 61
138: 33(float) Constant 1065353216 137: 33(float) Constant 1065353216
Line 1 20 11
14(main): 4 Function None 5 14(main): 4 Function None 5
15: Label 15: Label
48(meshData): 45(ptr) Variable Function 48(meshData): 45(ptr) Variable Function
93(vertex_pos0): 91(ptr) Variable Function 92(vertex_pos0): 90(ptr) Variable Function
25: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 17 14(main) 26: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
26: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17 27: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 20 20 12 12
27: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 28 28 12 12 25: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 17 14(main)
51: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 49 48(meshData) 52 53: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 32 32 12 12
78: 7(int) Load 75(tri_idx0) 51: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 49 48(meshData) 52
81: 79(ptr) AccessChain 66(perPass_meshes) 72 78 79: 7(int) Load 76(tri_idx0)
82: 53(Mesh) Load 81 82: 80(ptr) AccessChain 67(perPass_meshes) 73 79
83: 29(ptr) CompositeExtract 82 0 83: 54(Mesh) Load 82
86: 84(ptr) AccessChain 48(meshData) 72 84: 28(ptr) CompositeExtract 83 0
Store 86 83 87: 85(ptr) AccessChain 48(meshData) 73
87: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 88 88 12 12 Store 87 84
96: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 94 93(vertex_pos0) 52 97: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 95 95 12 12
97: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 98 98 12 12 96: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 93 92(vertex_pos0) 52
99: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 88 88 12 12 98: 85(ptr) AccessChain 48(meshData) 73
100: 84(ptr) AccessChain 48(meshData) 72 99: 28(ptr) Load 98
101: 29(ptr) Load 100 100: 7(int) Load 76(tri_idx0)
102: 7(int) Load 75(tri_idx0) 101: 7(int) IMul 13 100
103: 7(int) IMul 13 102 105: 102(ptr) AccessChain 99 73 101
107: 104(ptr) AccessChain 101 72 103 106: 33(float) Load 105 Aligned 4
108: 33(float) Load 107 Aligned 4 108: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 109 109 12 12
109: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 110 110 12 12 107: 85(ptr) AccessChain 48(meshData) 73
111: 84(ptr) AccessChain 48(meshData) 72 110: 28(ptr) Load 107
112: 29(ptr) Load 111 111: 7(int) Load 76(tri_idx0)
113: 7(int) Load 75(tri_idx0) 112: 7(int) IMul 13 111
114: 7(int) IMul 13 113 113: 7(int) IAdd 112 22
115: 7(int) IAdd 114 22 114: 102(ptr) AccessChain 110 73 113
116: 104(ptr) AccessChain 112 72 115 115: 33(float) Load 114 Aligned 4
117: 33(float) Load 116 Aligned 4 117: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 118 118 12 12
118: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 98 98 12 12 116: 85(ptr) AccessChain 48(meshData) 73
119: 84(ptr) AccessChain 48(meshData) 72 119: 28(ptr) Load 116
120: 29(ptr) Load 119 120: 7(int) Load 76(tri_idx0)
121: 7(int) Load 75(tri_idx0) 121: 7(int) IMul 13 120
122: 7(int) IMul 13 121 122: 7(int) IAdd 121 24
123: 7(int) IAdd 122 24 123: 102(ptr) AccessChain 119 73 122
124: 104(ptr) AccessChain 120 72 123 124: 33(float) Load 123 Aligned 4
125: 33(float) Load 124 Aligned 4 125: 88(fvec3) CompositeConstruct 106 115 124
126: 89(fvec3) CompositeConstruct 108 117 125 126: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 95 95 12 12
127: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 88 88 12 12 Store 92(vertex_pos0) 125
Store 93(vertex_pos0) 126 136: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 134 134 12 12
128: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 129 129 12 12 135: 88(fvec3) Load 92(vertex_pos0)
137: 89(fvec3) Load 93(vertex_pos0) 138: 33(float) CompositeExtract 135 0
139: 33(float) CompositeExtract 137 0 139: 33(float) CompositeExtract 135 1
140: 33(float) CompositeExtract 137 1 140: 33(float) CompositeExtract 135 2
141: 33(float) CompositeExtract 137 2 141: 127(fvec4) CompositeConstruct 138 139 140 137
142: 130(fvec4) CompositeConstruct 139 140 141 138 Store 131(out_fragColor) 141
Store 134(out_fragColor) 142
Return Return
FunctionEnd FunctionEnd

View file

@ -1,16 +1,16 @@
spv.debuginfo.const_params.glsl.comp spv.debuginfo.const_params.glsl.comp
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 70 // Id's are bound by 71
Capability Shader Capability Shader
Extension "SPV_KHR_non_semantic_info" Extension "SPV_KHR_non_semantic_info"
2: ExtInstImport "NonSemantic.Shader.DebugInfo.100" 1: ExtInstImport "NonSemantic.Shader.DebugInfo.100"
3: ExtInstImport "GLSL.std.450" 3: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint GLCompute 14 "main" EntryPoint GLCompute 14 "main"
ExecutionMode 14 LocalSize 1 1 1 ExecutionMode 14 LocalSize 1 1 1
1: String "" 2: String ""
8: String "uint" 8: String "uint"
17: String "float" 17: String "float"
35: String "function" 35: String "function"
@ -22,7 +22,7 @@ spv.debuginfo.const_params.glsl.comp
// OpModuleProcessed entry-point main // OpModuleProcessed entry-point main
#line 1 #line 1
" "
45: String "f" 43: String "f"
49: String "f2" 49: String "f2"
52: String "f3" 52: String "f3"
55: String "f4" 55: String "f4"
@ -39,60 +39,59 @@ spv.debuginfo.const_params.glsl.comp
10: 7(int) Constant 32 10: 7(int) Constant 32
11: 7(int) Constant 6 11: 7(int) Constant 6
12: 7(int) Constant 0 12: 7(int) Constant 0
9: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12 9: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12
13: 7(int) Constant 3 13: 7(int) Constant 3
6: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4 6: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4
16: TypeFloat 32 16: TypeFloat 32
18: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 17 10 13 12 18: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 17 10 13 12
19: TypeVector 16(float) 2 19: TypeVector 16(float) 2
20: 7(int) Constant 2 20: 7(int) Constant 2
21: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 20 21: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 20
22: TypeVector 16(float) 3 22: TypeVector 16(float) 3
23: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 13 23: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 13
24: TypeVector 16(float) 4 24: TypeVector 16(float) 4
25: 7(int) Constant 4 25: 7(int) Constant 4
26: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 25 26: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 25
27: TypeFunction 4 16(float) 19(fvec2) 22(fvec3) 24(fvec4) 27: TypeFunction 4 16(float) 19(fvec2) 22(fvec3) 24(fvec4)
28: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4 18 21 23 26 28: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4 18 21 23 26
37: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 38 37: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 2 38
39: 7(int) Constant 7 39: 7(int) Constant 7
41: 7(int) Constant 1 41: 7(int) Constant 1
40: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 41 25 37 20 40: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 41 25 37 20
36: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 35 28 37 39 12 40 35 13 39 36: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 35 28 37 39 12 40 35 13 39
44: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 45 18 37 39 12 36 25 41 42: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 43 18 37 39 12 36 25 41
47: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression) 45: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
48: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 49 21 37 39 12 36 25 20 48: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 49 21 37 39 12 36 25 20
51: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 52 23 37 39 12 36 25 13 51: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 52 23 37 39 12 36 25 13
54: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 55 26 37 39 12 36 25 25 54: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 55 26 37 39 12 36 25 25
59: 7(int) Constant 11 59: 7(int) Constant 11
58: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 57 6 37 59 12 40 57 13 59 58: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 57 6 37 59 12 40 57 13 59
64: 7(int) Constant 13 64: 16(float) Constant 0
65: 16(float) Constant 0 65: 19(fvec2) ConstantComposite 64 64
66: 19(fvec2) ConstantComposite 65 65 66: 22(fvec3) ConstantComposite 64 64 64
67: 22(fvec3) ConstantComposite 65 65 65 67: 24(fvec4) ConstantComposite 64 64 64 64
68: 24(fvec4) ConstantComposite 65 65 65 65 70: 7(int) Constant 13
Line 1 11 11
14(main): 4 Function None 5 14(main): 4 Function None 5
15: Label 15: Label
61: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 58 14(main) 62: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
62: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58 63: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 37 59 59 12 12
63: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 37 64 64 12 12 61: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 58 14(main)
69: 4 FunctionCall 33(function(f1;vf2;vf3;vf4;) 65 66 67 68 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
Return Return
FunctionEnd FunctionEnd
Line 1 7 18
33(function(f1;vf2;vf3;vf4;): 4 Function None 27 33(function(f1;vf2;vf3;vf4;): 4 Function None 27
29(f): 16(float) FunctionParameter 29(f): 16(float) FunctionParameter
30(f2): 19(fvec2) FunctionParameter 30(f2): 19(fvec2) FunctionParameter
31(f3): 22(fvec3) FunctionParameter 31(f3): 22(fvec3) FunctionParameter
32(f4): 24(fvec4) FunctionParameter 32(f4): 24(fvec4) FunctionParameter
34: Label 34: Label
42: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 36 46: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 36
43: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 37 39 39 12 12 47: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 37 39 39 12 12
46: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 29(DebugValue) 44 29(f) 47 44: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(DebugValue) 42 29(f) 45
50: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 29(DebugValue) 48 30(f2) 47 50: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(DebugValue) 48 30(f2) 45
53: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 29(DebugValue) 51 31(f3) 47 53: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(DebugValue) 51 31(f3) 45
56: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 29(DebugValue) 54 32(f4) 47 56: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(DebugValue) 54 32(f4) 45
60: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 36 33(function(f1;vf2;vf3;vf4;) 60: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 36 33(function(f1;vf2;vf3;vf4;)
Return Return
FunctionEnd FunctionEnd

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,20 +1,20 @@
spv.debuginfo.glsl.geom spv.debuginfo.glsl.geom
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 272 // Id's are bound by 273
Capability Geometry Capability Geometry
Capability MultiViewport Capability MultiViewport
Extension "SPV_KHR_non_semantic_info" Extension "SPV_KHR_non_semantic_info"
2: ExtInstImport "NonSemantic.Shader.DebugInfo.100" 1: ExtInstImport "NonSemantic.Shader.DebugInfo.100"
3: ExtInstImport "GLSL.std.450" 3: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Geometry 14 "main" 66 99 120 131 134 167 209 218 236 250 256 259 EntryPoint Geometry 14 "main" 64 98 121 130 134 168 208 217 236 249 255 259
ExecutionMode 14 Triangles ExecutionMode 14 Triangles
ExecutionMode 14 Invocations 2 ExecutionMode 14 Invocations 2
ExecutionMode 14 OutputTriangleStrip ExecutionMode 14 OutputTriangleStrip
ExecutionMode 14 OutputVertices 3 ExecutionMode 14 OutputVertices 3
1: String "" 2: String ""
8: String "uint" 8: String "uint"
16: String "main" 16: String "main"
19: String "// OpModuleProcessed auto-map-locations 19: String "// OpModuleProcessed auto-map-locations
@ -25,97 +25,97 @@ spv.debuginfo.glsl.geom
// OpModuleProcessed entry-point main // OpModuleProcessed entry-point main
#line 1 #line 1
" "
30: String "int" 29: String "int"
37: String "i" 36: String "i"
53: String "bool" 54: String "bool"
60: String "float" 58: String "float"
68: String "outNormal" 66: String "outNormal"
81: String "projection" 80: String "projection"
84: String "modelview" 83: String "modelview"
87: String "lightPos" 86: String "lightPos"
90: String "UBO" 89: String "UBO"
95: String "ubo" 94: String "ubo"
101: String "gl_InvocationID" 100: String "gl_InvocationID"
122: String "inNormal" 123: String "inNormal"
133: String "outColor" 132: String "outColor"
136: String "inColor" 136: String "inColor"
146: String "pos" 145: String "pos"
152: String "gl_Position" 153: String "gl_Position"
155: String "gl_PointSize" 156: String "gl_PointSize"
158: String "gl_CullDistance" 159: String "gl_CullDistance"
162: String "gl_PerVertex" 163: String "gl_PerVertex"
169: String "gl_in" 170: String "gl_in"
179: String "worldPos" 178: String "worldPos"
192: String "lPos" 191: String "lPos"
211: String "outLightVec" 210: String "outLightVec"
220: String "outViewVec" 219: String "outViewVec"
252: String "gl_ViewportIndex" 251: String "gl_ViewportIndex"
258: String "gl_PrimitiveID" 257: String "gl_PrimitiveID"
261: String "gl_PrimitiveIDIn" 261: String "gl_PrimitiveIDIn"
SourceExtension "GL_ARB_viewport_array" SourceExtension "GL_ARB_viewport_array"
Name 14 "main" Name 14 "main"
Name 35 "i" Name 34 "i"
Name 66 "outNormal" Name 64 "outNormal"
Name 79 "UBO" Name 78 "UBO"
MemberName 79(UBO) 0 "projection" MemberName 78(UBO) 0 "projection"
MemberName 79(UBO) 1 "modelview" MemberName 78(UBO) 1 "modelview"
MemberName 79(UBO) 2 "lightPos" MemberName 78(UBO) 2 "lightPos"
Name 93 "ubo" Name 92 "ubo"
Name 99 "gl_InvocationID" Name 98 "gl_InvocationID"
Name 120 "inNormal" Name 121 "inNormal"
Name 131 "outColor" Name 130 "outColor"
Name 134 "inColor" Name 134 "inColor"
Name 144 "pos" Name 143 "pos"
Name 150 "gl_PerVertex" Name 151 "gl_PerVertex"
MemberName 150(gl_PerVertex) 0 "gl_Position" MemberName 151(gl_PerVertex) 0 "gl_Position"
MemberName 150(gl_PerVertex) 1 "gl_PointSize" MemberName 151(gl_PerVertex) 1 "gl_PointSize"
MemberName 150(gl_PerVertex) 2 "gl_ClipDistance" MemberName 151(gl_PerVertex) 2 "gl_ClipDistance"
MemberName 150(gl_PerVertex) 3 "gl_CullDistance" MemberName 151(gl_PerVertex) 3 "gl_CullDistance"
Name 167 "gl_in" Name 168 "gl_in"
Name 177 "worldPos" Name 176 "worldPos"
Name 190 "lPos" Name 189 "lPos"
Name 209 "outLightVec" Name 208 "outLightVec"
Name 218 "outViewVec" Name 217 "outViewVec"
Name 226 "gl_PerVertex" Name 225 "gl_PerVertex"
MemberName 226(gl_PerVertex) 0 "gl_Position" MemberName 225(gl_PerVertex) 0 "gl_Position"
MemberName 226(gl_PerVertex) 1 "gl_PointSize" MemberName 225(gl_PerVertex) 1 "gl_PointSize"
MemberName 226(gl_PerVertex) 2 "gl_ClipDistance" MemberName 225(gl_PerVertex) 2 "gl_ClipDistance"
MemberName 226(gl_PerVertex) 3 "gl_CullDistance" MemberName 225(gl_PerVertex) 3 "gl_CullDistance"
Name 236 "" Name 236 ""
Name 250 "gl_ViewportIndex" Name 249 "gl_ViewportIndex"
Name 256 "gl_PrimitiveID" Name 255 "gl_PrimitiveID"
Name 259 "gl_PrimitiveIDIn" Name 259 "gl_PrimitiveIDIn"
Decorate 66(outNormal) Location 0 Decorate 64(outNormal) Location 0
Decorate 75 ArrayStride 64 Decorate 74 ArrayStride 64
Decorate 77 ArrayStride 64 Decorate 76 ArrayStride 64
MemberDecorate 79(UBO) 0 ColMajor MemberDecorate 78(UBO) 0 ColMajor
MemberDecorate 79(UBO) 0 Offset 0 MemberDecorate 78(UBO) 0 Offset 0
MemberDecorate 79(UBO) 0 MatrixStride 16 MemberDecorate 78(UBO) 0 MatrixStride 16
MemberDecorate 79(UBO) 1 ColMajor MemberDecorate 78(UBO) 1 ColMajor
MemberDecorate 79(UBO) 1 Offset 128 MemberDecorate 78(UBO) 1 Offset 128
MemberDecorate 79(UBO) 1 MatrixStride 16 MemberDecorate 78(UBO) 1 MatrixStride 16
MemberDecorate 79(UBO) 2 Offset 256 MemberDecorate 78(UBO) 2 Offset 256
Decorate 79(UBO) Block Decorate 78(UBO) Block
Decorate 93(ubo) DescriptorSet 0 Decorate 92(ubo) DescriptorSet 0
Decorate 93(ubo) Binding 0 Decorate 92(ubo) Binding 0
Decorate 99(gl_InvocationID) BuiltIn InvocationId Decorate 98(gl_InvocationID) BuiltIn InvocationId
Decorate 120(inNormal) Location 0 Decorate 121(inNormal) Location 0
Decorate 131(outColor) Location 1 Decorate 130(outColor) Location 1
Decorate 134(inColor) Location 1 Decorate 134(inColor) Location 1
MemberDecorate 150(gl_PerVertex) 0 BuiltIn Position MemberDecorate 151(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 150(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 151(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 150(gl_PerVertex) 2 BuiltIn ClipDistance MemberDecorate 151(gl_PerVertex) 2 BuiltIn ClipDistance
MemberDecorate 150(gl_PerVertex) 3 BuiltIn CullDistance MemberDecorate 151(gl_PerVertex) 3 BuiltIn CullDistance
Decorate 150(gl_PerVertex) Block Decorate 151(gl_PerVertex) Block
Decorate 209(outLightVec) Location 3 Decorate 208(outLightVec) Location 3
Decorate 218(outViewVec) Location 2 Decorate 217(outViewVec) Location 2
MemberDecorate 226(gl_PerVertex) 0 BuiltIn Position MemberDecorate 225(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 226(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 225(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 226(gl_PerVertex) 2 BuiltIn ClipDistance MemberDecorate 225(gl_PerVertex) 2 BuiltIn ClipDistance
MemberDecorate 226(gl_PerVertex) 3 BuiltIn CullDistance MemberDecorate 225(gl_PerVertex) 3 BuiltIn CullDistance
Decorate 226(gl_PerVertex) Block Decorate 225(gl_PerVertex) Block
Decorate 250(gl_ViewportIndex) BuiltIn ViewportIndex Decorate 249(gl_ViewportIndex) BuiltIn ViewportIndex
Decorate 256(gl_PrimitiveID) BuiltIn PrimitiveId Decorate 255(gl_PrimitiveID) BuiltIn PrimitiveId
Decorate 259(gl_PrimitiveIDIn) BuiltIn PrimitiveId Decorate 259(gl_PrimitiveIDIn) BuiltIn PrimitiveId
4: TypeVoid 4: TypeVoid
5: TypeFunction 4 5: TypeFunction 4
@ -123,258 +123,258 @@ spv.debuginfo.glsl.geom
10: 7(int) Constant 32 10: 7(int) Constant 32
11: 7(int) Constant 6 11: 7(int) Constant 6
12: 7(int) Constant 0 12: 7(int) Constant 0
9: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12 9: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12
13: 7(int) Constant 3 13: 7(int) Constant 3
6: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4 6: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4
18: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 19 18: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 2 19
20: 7(int) Constant 47 20: 7(int) Constant 47
22: 7(int) Constant 1 22: 7(int) Constant 1
23: 7(int) Constant 4 23: 7(int) Constant 4
24: 7(int) Constant 2 24: 7(int) Constant 2
21: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 22 23 18 24 21: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 22 23 18 24
17: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 16 6 18 20 12 21 16 13 20 17: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 16 6 18 20 12 21 16 13 20
28: 7(int) Constant 49 28: TypeInt 32 1
29: TypeInt 32 1 30: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 29 10 23 12
31: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 30 10 23 12 31: TypePointer Function 28(int)
32: TypePointer Function 29(int) 32: 7(int) Constant 7
33: 7(int) Constant 7 33: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 32 12
34: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 33 12 37: 7(int) Constant 49
36: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 37 31 18 28 12 17 23 35: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 36 30 18 37 12 17 23
39: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression) 39: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
40: 29(int) Constant 0 41: 28(int) Constant 0
51: 29(int) Constant 3 52: 28(int) Constant 3
52: TypeBool 53: TypeBool
54: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 53 10 24 12 55: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 54 10 24 12
58: 7(int) Constant 51 57: TypeFloat 32
59: TypeFloat 32 59: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 58 10 13 12
61: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 60 10 13 12 60: TypeVector 57(float) 3
62: TypeVector 59(float) 3 61: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 59 13
63: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 61 13 62: TypePointer Output 60(fvec3)
64: TypePointer Output 62(fvec3) 63: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 61 13 12
65: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 63 13 12 64(outNormal): 62(ptr) Variable Output
66(outNormal): 64(ptr) Variable Output 67: 7(int) Constant 51
69: 7(int) Constant 8 68: 7(int) Constant 8
67: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 68 63 18 58 12 21 68 66(outNormal) 69 65: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 66 61 18 67 12 21 66 64(outNormal) 68
70: TypeVector 59(float) 4 69: TypeVector 57(float) 4
71: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 61 23 70: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 59 23
72: TypeMatrix 70(fvec4) 4 71: TypeMatrix 69(fvec4) 4
74: 52(bool) ConstantTrue 73: 53(bool) ConstantTrue
73: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 71 23 74 72: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 70 23 73
75: TypeArray 72 24 74: TypeArray 71 24
76: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 73 24 75: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 72 24
77: TypeArray 72 24 76: TypeArray 71 24
78: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 73 24 77: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 72 24
79(UBO): TypeStruct 75 77 70(fvec4) 78(UBO): TypeStruct 74 76 69(fvec4)
82: 7(int) Constant 34 81: 7(int) Constant 34
80: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 81 76 18 82 33 12 12 13 79: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 80 75 18 81 32 12 12 13
85: 7(int) Constant 35 84: 7(int) Constant 35
83: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 84 78 18 85 33 12 12 13 82: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 83 77 18 84 32 12 12 13
88: 7(int) Constant 36 87: 7(int) Constant 36
86: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 87 71 18 88 33 12 12 13 85: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 86 70 18 87 32 12 12 13
89: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 90 22 18 58 12 21 90 12 13 80 83 86 88: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 89 22 18 67 12 21 89 12 13 79 82 85
91: TypePointer Uniform 79(UBO) 90: TypePointer Uniform 78(UBO)
92: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 89 24 12 91: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 88 24 12
93(ubo): 91(ptr) Variable Uniform 92(ubo): 90(ptr) Variable Uniform
94: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 95 89 18 58 12 21 95 93(ubo) 69 93: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 94 88 18 67 12 21 94 92(ubo) 68
96: 29(int) Constant 1 95: 28(int) Constant 1
97: TypePointer Input 29(int) 96: TypePointer Input 28(int)
98: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 22 12 97: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 22 12
99(gl_InvocationID): 97(ptr) Variable Input 98(gl_InvocationID): 96(ptr) Variable Input
100: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 101 31 18 58 12 21 101 99(gl_InvocationID) 69 99: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 100 30 18 67 12 21 100 98(gl_InvocationID) 68
103: TypePointer Uniform 72 104: TypePointer Uniform 71
104: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 73 24 12 105: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 72 24 12
107: TypeMatrix 62(fvec3) 3 108: TypeMatrix 60(fvec3) 3
108: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 63 13 74 109: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 61 13 73
116: TypeArray 62(fvec3) 13 117: TypeArray 60(fvec3) 13
117: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 63 13 118: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 61 13
118: TypePointer Input 116 119: TypePointer Input 117
119: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 117 22 12 120: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 118 22 12
120(inNormal): 118(ptr) Variable Input 121(inNormal): 119(ptr) Variable Input
121: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 122 117 18 58 12 21 122 120(inNormal) 69 122: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 123 118 18 67 12 21 123 121(inNormal) 68
124: TypePointer Input 62(fvec3) 125: TypePointer Input 60(fvec3)
125: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 63 22 12 126: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 61 22 12
130: 7(int) Constant 52 130(outColor): 62(ptr) Variable Output
131(outColor): 64(ptr) Variable Output 133: 7(int) Constant 52
132: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 133 63 18 130 12 21 133 131(outColor) 69 131: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 132 61 18 133 12 21 132 130(outColor) 68
134(inColor): 118(ptr) Variable Input 134(inColor): 119(ptr) Variable Input
135: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 136 117 18 130 12 21 136 134(inColor) 69 135: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 136 118 18 133 12 21 136 134(inColor) 68
141: 7(int) Constant 54 141: TypePointer Function 69(fvec4)
142: TypePointer Function 70(fvec4) 142: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 70 32 12
143: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 71 33 12 146: 7(int) Constant 54
145: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 146 71 18 141 12 17 23 144: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 145 70 18 146 12 17 23
148: TypeArray 59(float) 22 149: TypeArray 57(float) 22
149: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 61 22 150: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 59 22
150(gl_PerVertex): TypeStruct 70(fvec4) 59(float) 148 148 151(gl_PerVertex): TypeStruct 69(fvec4) 57(float) 149 149
153: 7(int) Constant 23 154: 7(int) Constant 23
151: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 152 71 18 24 153 12 12 13 152: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 153 70 18 24 154 12 12 13
156: 7(int) Constant 41 157: 7(int) Constant 41
154: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 155 61 18 24 156 12 12 13 155: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 156 59 18 24 157 12 12 13
159: 7(int) Constant 84 160: 7(int) Constant 84
157: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 158 149 18 24 159 12 12 13 158: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 159 150 18 24 160 12 12 13
160: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 158 149 18 24 159 12 12 13 161: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 159 150 18 24 160 12 12 13
161: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 162 22 18 141 12 21 162 12 13 151 154 157 160 162: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 163 22 18 146 12 21 163 12 13 152 155 158 161
163: TypeArray 150(gl_PerVertex) 13 164: TypeArray 151(gl_PerVertex) 13
164: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 161 13 165: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 162 13
165: TypePointer Input 163 166: TypePointer Input 164
166: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 164 22 12 167: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 165 22 12
167(gl_in): 165(ptr) Variable Input 168(gl_in): 166(ptr) Variable Input
168: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 169 164 18 141 12 21 169 167(gl_in) 69 169: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 170 165 18 146 12 21 170 168(gl_in) 68
171: TypePointer Input 70(fvec4) 172: TypePointer Input 69(fvec4)
172: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 71 22 12 173: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 70 22 12
176: 7(int) Constant 55 179: 7(int) Constant 55
178: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 179 71 18 176 12 17 23 177: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 178 70 18 179 12 17 23
187: 7(int) Constant 57 187: TypePointer Function 60(fvec3)
188: TypePointer Function 62(fvec3) 188: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 61 32 12
189: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 63 33 12 192: 7(int) Constant 57
191: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 192 63 18 187 12 17 23 190: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 191 61 18 192 12 17 23
197: 29(int) Constant 2 198: 28(int) Constant 2
198: TypePointer Uniform 70(fvec4) 199: TypePointer Uniform 69(fvec4)
199: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 71 24 12 200: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 70 24 12
208: 7(int) Constant 58 208(outLightVec): 62(ptr) Variable Output
209(outLightVec): 64(ptr) Variable Output 211: 7(int) Constant 58
210: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 211 63 18 208 12 21 211 209(outLightVec) 69 209: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 210 61 18 211 12 21 210 208(outLightVec) 68
217: 7(int) Constant 59 217(outViewVec): 62(ptr) Variable Output
218(outViewVec): 64(ptr) Variable Output 220: 7(int) Constant 59
219: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 220 63 18 217 12 21 220 218(outViewVec) 69 218: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 219 61 18 220 12 21 219 217(outViewVec) 68
225: 7(int) Constant 61 225(gl_PerVertex): TypeStruct 69(fvec4) 57(float) 149 149
226(gl_PerVertex): TypeStruct 70(fvec4) 59(float) 148 148 227: 7(int) Constant 215
228: 7(int) Constant 215 226: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 153 70 18 24 227 12 12 13
227: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 152 71 18 24 228 12 12 13 229: 7(int) Constant 233
230: 7(int) Constant 233 228: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 156 59 18 24 229 12 12 13
229: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 155 61 18 24 230 12 12 13 230: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 159 150 18 13 32 12 12 13
231: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 158 149 18 13 33 12 12 13 231: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 159 150 18 13 32 12 12 13
232: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 158 149 18 13 33 12 12 13 233: 7(int) Constant 61
233: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 162 22 18 225 12 21 162 12 13 227 229 231 232 232: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 163 22 18 233 12 21 163 12 13 226 228 230 231
234: TypePointer Output 226(gl_PerVertex) 234: TypePointer Output 225(gl_PerVertex)
235: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 233 13 12 235: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 232 13 12
236: 234(ptr) Variable Output 236: 234(ptr) Variable Output
237: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 233 18 225 12 21 1 236 69 237: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 2 232 18 233 12 21 2 236 68
243: TypePointer Output 70(fvec4) 244: TypePointer Output 69(fvec4)
244: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 71 13 12 245: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 70 13 12
247: 7(int) Constant 64 247: TypePointer Output 28(int)
248: TypePointer Output 29(int) 248: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 13 12
249: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 13 12 249(gl_ViewportIndex): 247(ptr) Variable Output
250(gl_ViewportIndex): 248(ptr) Variable Output 252: 7(int) Constant 64
251: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 252 31 18 247 12 21 252 250(gl_ViewportIndex) 69 250: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 251 30 18 252 12 21 251 249(gl_ViewportIndex) 68
255: 7(int) Constant 65 255(gl_PrimitiveID): 247(ptr) Variable Output
256(gl_PrimitiveID): 248(ptr) Variable Output 258: 7(int) Constant 65
257: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 258 31 18 255 12 21 258 256(gl_PrimitiveID) 69 256: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 257 30 18 258 12 21 257 255(gl_PrimitiveID) 68
259(gl_PrimitiveIDIn): 97(ptr) Variable Input 259(gl_PrimitiveIDIn): 96(ptr) Variable Input
260: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 261 31 18 255 12 21 261 259(gl_PrimitiveIDIn) 69 260: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 261 30 18 258 12 21 261 259(gl_PrimitiveIDIn) 68
264: 7(int) Constant 66 265: 7(int) Constant 66
271: 7(int) Constant 68 272: 7(int) Constant 68
Line 1 47 15
14(main): 4 Function None 5 14(main): 4 Function None 5
15: Label 15: Label
35(i): 32(ptr) Variable Function 34(i): 31(ptr) Variable Function
144(pos): 142(ptr) Variable Function 143(pos): 141(ptr) Variable Function
177(worldPos): 142(ptr) Variable Function 176(worldPos): 141(ptr) Variable Function
190(lPos): 188(ptr) Variable Function 189(lPos): 187(ptr) Variable Function
25: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 17 14(main) 26: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
26: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17 27: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 20 20 12 12
27: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 28 28 12 12 25: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 17 14(main)
38: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 36 35(i) 39 40: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 37 37 12 12
Store 35(i) 40 38: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 35 34(i) 39
Branch 41 Store 34(i) 41
41: Label Branch 42
45: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
46: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 28 28 12 12
LoopMerge 43 44 None
Branch 47
47: Label
48: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
49: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 28 28 12 12
50: 29(int) Load 35(i)
55: 52(bool) SLessThan 50 51
BranchConditional 55 42 43
42: Label 42: Label
56: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17 46: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
57: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 58 58 12 12 47: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 37 37 12 12
102: 29(int) Load 99(gl_InvocationID) LoopMerge 44 45 None
105: 103(ptr) AccessChain 93(ubo) 96 102 Branch 48
106: 72 Load 105 48: Label
109: 70(fvec4) CompositeExtract 106 0 50: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
110: 62(fvec3) VectorShuffle 109 109 0 1 2 51: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 37 37 12 12
111: 70(fvec4) CompositeExtract 106 1 49: 28(int) Load 34(i)
112: 62(fvec3) VectorShuffle 111 111 0 1 2 56: 53(bool) SLessThan 49 52
113: 70(fvec4) CompositeExtract 106 2 BranchConditional 56 43 44
114: 62(fvec3) VectorShuffle 113 113 0 1 2
115: 107 CompositeConstruct 110 112 114
123: 29(int) Load 35(i)
126: 124(ptr) AccessChain 120(inNormal) 123
127: 62(fvec3) Load 126
128: 62(fvec3) MatrixTimesVector 115 127
Store 66(outNormal) 128
129: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 130 130 12 12
137: 29(int) Load 35(i)
138: 124(ptr) AccessChain 134(inColor) 137
139: 62(fvec3) Load 138
Store 131(outColor) 139
140: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 141 141 12 12
147: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 145 144(pos) 39
170: 29(int) Load 35(i)
173: 171(ptr) AccessChain 167(gl_in) 170 40
174: 70(fvec4) Load 173
Store 144(pos) 174
175: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 176 176 12 12
180: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 178 177(worldPos) 39
181: 29(int) Load 99(gl_InvocationID)
182: 103(ptr) AccessChain 93(ubo) 96 181
183: 72 Load 182
184: 70(fvec4) Load 144(pos)
185: 70(fvec4) MatrixTimesVector 183 184
Store 177(worldPos) 185
186: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 187 187 12 12
193: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 191 190(lPos) 39
194: 29(int) Load 99(gl_InvocationID)
195: 103(ptr) AccessChain 93(ubo) 96 194
196: 72 Load 195
200: 198(ptr) AccessChain 93(ubo) 197
201: 70(fvec4) Load 200
202: 70(fvec4) MatrixTimesVector 196 201
203: 59(float) CompositeExtract 202 0
204: 59(float) CompositeExtract 202 1
205: 59(float) CompositeExtract 202 2
206: 62(fvec3) CompositeConstruct 203 204 205
Store 190(lPos) 206
207: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 208 208 12 12
212: 62(fvec3) Load 190(lPos)
213: 70(fvec4) Load 177(worldPos)
214: 62(fvec3) VectorShuffle 213 213 0 1 2
215: 62(fvec3) FSub 212 214
Store 209(outLightVec) 215
216: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 217 217 12 12
221: 70(fvec4) Load 177(worldPos)
222: 62(fvec3) VectorShuffle 221 221 0 1 2
223: 62(fvec3) FNegate 222
Store 218(outViewVec) 223
224: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 225 225 12 12
238: 29(int) Load 99(gl_InvocationID)
239: 103(ptr) AccessChain 93(ubo) 40 238
240: 72 Load 239
241: 70(fvec4) Load 177(worldPos)
242: 70(fvec4) MatrixTimesVector 240 241
245: 243(ptr) AccessChain 236 40
Store 245 242
246: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 247 247 12 12
253: 29(int) Load 99(gl_InvocationID)
Store 250(gl_ViewportIndex) 253
254: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 255 255 12 12
262: 29(int) Load 259(gl_PrimitiveIDIn)
Store 256(gl_PrimitiveID) 262
263: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 264 264 12 12
EmitVertex
Branch 44
44: Label
265: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
266: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 28 28 12 12
267: 29(int) Load 35(i)
268: 29(int) IAdd 267 96
Store 35(i) 268
Branch 41
43: Label 43: Label
269: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17 102: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
270: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 271 271 12 12 103: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 67 67 12 12
101: 28(int) Load 98(gl_InvocationID)
106: 104(ptr) AccessChain 92(ubo) 95 101
107: 71 Load 106
110: 69(fvec4) CompositeExtract 107 0
111: 60(fvec3) VectorShuffle 110 110 0 1 2
112: 69(fvec4) CompositeExtract 107 1
113: 60(fvec3) VectorShuffle 112 112 0 1 2
114: 69(fvec4) CompositeExtract 107 2
115: 60(fvec3) VectorShuffle 114 114 0 1 2
116: 108 CompositeConstruct 111 113 115
124: 28(int) Load 34(i)
127: 125(ptr) AccessChain 121(inNormal) 124
128: 60(fvec3) Load 127
129: 60(fvec3) MatrixTimesVector 116 128
Store 64(outNormal) 129
138: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 133 133 12 12
137: 28(int) Load 34(i)
139: 125(ptr) AccessChain 134(inColor) 137
140: 60(fvec3) Load 139
Store 130(outColor) 140
148: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 146 146 12 12
147: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 144 143(pos) 39
171: 28(int) Load 34(i)
174: 172(ptr) AccessChain 168(gl_in) 171 41
175: 69(fvec4) Load 174
Store 143(pos) 175
181: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 179 179 12 12
180: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 177 176(worldPos) 39
182: 28(int) Load 98(gl_InvocationID)
183: 104(ptr) AccessChain 92(ubo) 95 182
184: 71 Load 183
185: 69(fvec4) Load 143(pos)
186: 69(fvec4) MatrixTimesVector 184 185
Store 176(worldPos) 186
194: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 192 192 12 12
193: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 190 189(lPos) 39
195: 28(int) Load 98(gl_InvocationID)
196: 104(ptr) AccessChain 92(ubo) 95 195
197: 71 Load 196
201: 199(ptr) AccessChain 92(ubo) 198
202: 69(fvec4) Load 201
203: 69(fvec4) MatrixTimesVector 197 202
204: 57(float) CompositeExtract 203 0
205: 57(float) CompositeExtract 203 1
206: 57(float) CompositeExtract 203 2
207: 60(fvec3) CompositeConstruct 204 205 206
Store 189(lPos) 207
213: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 211 211 12 12
212: 60(fvec3) Load 189(lPos)
214: 69(fvec4) Load 176(worldPos)
215: 60(fvec3) VectorShuffle 214 214 0 1 2
216: 60(fvec3) FSub 212 215
Store 208(outLightVec) 216
222: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 220 220 12 12
221: 69(fvec4) Load 176(worldPos)
223: 60(fvec3) VectorShuffle 221 221 0 1 2
224: 60(fvec3) FNegate 223
Store 217(outViewVec) 224
239: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 233 233 12 12
238: 28(int) Load 98(gl_InvocationID)
240: 104(ptr) AccessChain 92(ubo) 41 238
241: 71 Load 240
242: 69(fvec4) Load 176(worldPos)
243: 69(fvec4) MatrixTimesVector 241 242
246: 244(ptr) AccessChain 236 41
Store 246 243
254: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 252 252 12 12
253: 28(int) Load 98(gl_InvocationID)
Store 249(gl_ViewportIndex) 253
263: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 258 258 12 12
262: 28(int) Load 259(gl_PrimitiveIDIn)
Store 255(gl_PrimitiveID) 262
264: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 265 265 12 12
EmitVertex
Branch 45
45: Label
267: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
268: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 37 37 12 12
266: 28(int) Load 34(i)
269: 28(int) IAdd 266 95
Store 34(i) 269
Branch 42
44: Label
270: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
271: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 272 272 12 12
EndPrimitive EndPrimitive
Return Return
FunctionEnd FunctionEnd

File diff suppressed because it is too large Load diff

View file

@ -1,18 +1,18 @@
spv.debuginfo.glsl.tese spv.debuginfo.glsl.tese
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 355 // Id's are bound by 356
Capability Tessellation Capability Tessellation
Extension "SPV_KHR_non_semantic_info" Extension "SPV_KHR_non_semantic_info"
2: ExtInstImport "NonSemantic.Shader.DebugInfo.100" 1: ExtInstImport "NonSemantic.Shader.DebugInfo.100"
3: ExtInstImport "GLSL.std.450" 3: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint TessellationEvaluation 14 "main" 46 65 94 115 144 182 300 316 324 337 344 EntryPoint TessellationEvaluation 14 "main" 47 66 93 116 143 183 300 315 323 336 343
ExecutionMode 14 Quads ExecutionMode 14 Quads
ExecutionMode 14 SpacingEqual ExecutionMode 14 SpacingEqual
ExecutionMode 14 VertexOrderCw ExecutionMode 14 VertexOrderCw
1: String "" 2: String ""
8: String "uint" 8: String "uint"
16: String "main" 16: String "main"
19: String "// OpModuleProcessed auto-map-locations 19: String "// OpModuleProcessed auto-map-locations
@ -23,446 +23,446 @@ spv.debuginfo.glsl.tese
// OpModuleProcessed entry-point main // OpModuleProcessed entry-point main
#line 1 #line 1
" "
30: String "float" 29: String "float"
39: String "uv1" 38: String "uv1"
48: String "inUV" 49: String "inUV"
51: String "int" 52: String "int"
67: String "gl_TessCoord" 68: String "gl_TessCoord"
78: String "uv2" 77: String "uv2"
96: String "outUV" 95: String "outUV"
109: String "n1" 108: String "n1"
117: String "inNormal" 118: String "inNormal"
130: String "n2" 129: String "n2"
146: String "outNormal" 145: String "outNormal"
161: String "pos1" 160: String "pos1"
167: String "gl_Position" 168: String "gl_Position"
170: String "gl_PointSize" 171: String "gl_PointSize"
173: String "gl_CullDistance" 174: String "gl_CullDistance"
177: String "gl_PerVertex" 178: String "gl_PerVertex"
184: String "gl_in" 185: String "gl_in"
199: String "pos2" 198: String "pos2"
213: String "pos" 212: String "pos"
225: String "type.2d.image" 224: String "type.2d.image"
226: String "@type.2d.image" 226: String "@type.2d.image"
230: String "type.sampled.image" 230: String "type.sampled.image"
231: String "@type.sampled.image" 231: String "@type.sampled.image"
236: String "displacementMap" 236: String "displacementMap"
245: String "bool" 246: String "bool"
252: String "modelview" 253: String "modelview"
256: String "lightPos" 257: String "lightPos"
259: String "frustumPlanes" 260: String "frustumPlanes"
261: String "tessellatedEdgeSize" 262: String "tessellatedEdgeSize"
265: String "viewportDim" 266: String "viewportDim"
269: String "UBO" 270: String "UBO"
274: String "ubo" 275: String "ubo"
318: String "outViewVec" 317: String "outViewVec"
326: String "outLightVec" 325: String "outLightVec"
339: String "outWorldPos" 338: String "outWorldPos"
346: String "outEyePos" 345: String "outEyePos"
Name 14 "main" Name 14 "main"
Name 37 "uv1" Name 36 "uv1"
Name 46 "inUV" Name 47 "inUV"
Name 65 "gl_TessCoord" Name 66 "gl_TessCoord"
Name 76 "uv2" Name 75 "uv2"
Name 94 "outUV" Name 93 "outUV"
Name 107 "n1" Name 106 "n1"
Name 115 "inNormal" Name 116 "inNormal"
Name 128 "n2" Name 127 "n2"
Name 144 "outNormal" Name 143 "outNormal"
Name 159 "pos1" Name 158 "pos1"
Name 165 "gl_PerVertex" Name 166 "gl_PerVertex"
MemberName 165(gl_PerVertex) 0 "gl_Position" MemberName 166(gl_PerVertex) 0 "gl_Position"
MemberName 165(gl_PerVertex) 1 "gl_PointSize" MemberName 166(gl_PerVertex) 1 "gl_PointSize"
MemberName 165(gl_PerVertex) 2 "gl_ClipDistance" MemberName 166(gl_PerVertex) 2 "gl_ClipDistance"
MemberName 165(gl_PerVertex) 3 "gl_CullDistance" MemberName 166(gl_PerVertex) 3 "gl_CullDistance"
Name 182 "gl_in" Name 183 "gl_in"
Name 197 "pos2" Name 196 "pos2"
Name 211 "pos" Name 210 "pos"
Name 234 "displacementMap" Name 234 "displacementMap"
Name 250 "UBO" Name 251 "UBO"
MemberName 250(UBO) 0 "projection" MemberName 251(UBO) 0 "projection"
MemberName 250(UBO) 1 "modelview" MemberName 251(UBO) 1 "modelview"
MemberName 250(UBO) 2 "lightPos" MemberName 251(UBO) 2 "lightPos"
MemberName 250(UBO) 3 "frustumPlanes" MemberName 251(UBO) 3 "frustumPlanes"
MemberName 250(UBO) 4 "displacementFactor" MemberName 251(UBO) 4 "displacementFactor"
MemberName 250(UBO) 5 "tessellationFactor" MemberName 251(UBO) 5 "tessellationFactor"
MemberName 250(UBO) 6 "viewportDim" MemberName 251(UBO) 6 "viewportDim"
MemberName 250(UBO) 7 "tessellatedEdgeSize" MemberName 251(UBO) 7 "tessellatedEdgeSize"
Name 272 "ubo" Name 273 "ubo"
Name 289 "gl_PerVertex" Name 288 "gl_PerVertex"
MemberName 289(gl_PerVertex) 0 "gl_Position" MemberName 288(gl_PerVertex) 0 "gl_Position"
MemberName 289(gl_PerVertex) 1 "gl_PointSize" MemberName 288(gl_PerVertex) 1 "gl_PointSize"
MemberName 289(gl_PerVertex) 2 "gl_ClipDistance" MemberName 288(gl_PerVertex) 2 "gl_ClipDistance"
MemberName 289(gl_PerVertex) 3 "gl_CullDistance" MemberName 288(gl_PerVertex) 3 "gl_CullDistance"
Name 300 "" Name 300 ""
Name 316 "outViewVec" Name 315 "outViewVec"
Name 324 "outLightVec" Name 323 "outLightVec"
Name 337 "outWorldPos" Name 336 "outWorldPos"
Name 344 "outEyePos" Name 343 "outEyePos"
Decorate 46(inUV) Location 1 Decorate 47(inUV) Location 1
Decorate 65(gl_TessCoord) BuiltIn TessCoord Decorate 66(gl_TessCoord) BuiltIn TessCoord
Decorate 94(outUV) Location 1 Decorate 93(outUV) Location 1
Decorate 115(inNormal) Location 0 Decorate 116(inNormal) Location 0
Decorate 144(outNormal) Location 0 Decorate 143(outNormal) Location 0
MemberDecorate 165(gl_PerVertex) 0 BuiltIn Position MemberDecorate 166(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 165(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 166(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 165(gl_PerVertex) 2 BuiltIn ClipDistance MemberDecorate 166(gl_PerVertex) 2 BuiltIn ClipDistance
MemberDecorate 165(gl_PerVertex) 3 BuiltIn CullDistance MemberDecorate 166(gl_PerVertex) 3 BuiltIn CullDistance
Decorate 165(gl_PerVertex) Block Decorate 166(gl_PerVertex) Block
Decorate 234(displacementMap) DescriptorSet 0 Decorate 234(displacementMap) DescriptorSet 0
Decorate 234(displacementMap) Binding 1 Decorate 234(displacementMap) Binding 1
Decorate 248 ArrayStride 16 Decorate 249 ArrayStride 16
MemberDecorate 250(UBO) 0 ColMajor MemberDecorate 251(UBO) 0 ColMajor
MemberDecorate 250(UBO) 0 Offset 0 MemberDecorate 251(UBO) 0 Offset 0
MemberDecorate 250(UBO) 0 MatrixStride 16 MemberDecorate 251(UBO) 0 MatrixStride 16
MemberDecorate 250(UBO) 1 ColMajor MemberDecorate 251(UBO) 1 ColMajor
MemberDecorate 250(UBO) 1 Offset 64 MemberDecorate 251(UBO) 1 Offset 64
MemberDecorate 250(UBO) 1 MatrixStride 16 MemberDecorate 251(UBO) 1 MatrixStride 16
MemberDecorate 250(UBO) 2 Offset 128 MemberDecorate 251(UBO) 2 Offset 128
MemberDecorate 250(UBO) 3 Offset 144 MemberDecorate 251(UBO) 3 Offset 144
MemberDecorate 250(UBO) 4 Offset 240 MemberDecorate 251(UBO) 4 Offset 240
MemberDecorate 250(UBO) 5 Offset 244 MemberDecorate 251(UBO) 5 Offset 244
MemberDecorate 250(UBO) 6 Offset 248 MemberDecorate 251(UBO) 6 Offset 248
MemberDecorate 250(UBO) 7 Offset 256 MemberDecorate 251(UBO) 7 Offset 256
Decorate 250(UBO) Block Decorate 251(UBO) Block
Decorate 272(ubo) DescriptorSet 0 Decorate 273(ubo) DescriptorSet 0
Decorate 272(ubo) Binding 0 Decorate 273(ubo) Binding 0
MemberDecorate 289(gl_PerVertex) 0 BuiltIn Position MemberDecorate 288(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 289(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 288(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 289(gl_PerVertex) 2 BuiltIn ClipDistance MemberDecorate 288(gl_PerVertex) 2 BuiltIn ClipDistance
MemberDecorate 289(gl_PerVertex) 3 BuiltIn CullDistance MemberDecorate 288(gl_PerVertex) 3 BuiltIn CullDistance
Decorate 289(gl_PerVertex) Block Decorate 288(gl_PerVertex) Block
Decorate 316(outViewVec) Location 2 Decorate 315(outViewVec) Location 2
Decorate 324(outLightVec) Location 3 Decorate 323(outLightVec) Location 3
Decorate 337(outWorldPos) Location 5 Decorate 336(outWorldPos) Location 5
Decorate 344(outEyePos) Location 4 Decorate 343(outEyePos) Location 4
4: TypeVoid 4: TypeVoid
5: TypeFunction 4 5: TypeFunction 4
7: TypeInt 32 0 7: TypeInt 32 0
10: 7(int) Constant 32 10: 7(int) Constant 32
11: 7(int) Constant 6 11: 7(int) Constant 6
12: 7(int) Constant 0 12: 7(int) Constant 0
9: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12 9: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12
13: 7(int) Constant 3 13: 7(int) Constant 3
6: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4 6: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4
18: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 19 18: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 2 19
20: 7(int) Constant 53 20: 7(int) Constant 53
22: 7(int) Constant 1 22: 7(int) Constant 1
23: 7(int) Constant 4 23: 7(int) Constant 4
24: 7(int) Constant 2 24: 7(int) Constant 2
21: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 22 23 18 24 21: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 22 23 18 24
17: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 16 6 18 20 12 21 16 13 20 17: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 16 6 18 20 12 21 16 13 20
28: 7(int) Constant 56 28: TypeFloat 32
29: TypeFloat 32 30: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 29 10 13 12
31: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 30 10 13 12 31: TypeVector 28(float) 2
32: TypeVector 29(float) 2 32: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 30 24
33: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 31 24 33: TypePointer Function 31(fvec2)
34: TypePointer Function 32(fvec2) 34: 7(int) Constant 7
35: 7(int) Constant 7 35: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 32 34 12
36: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 33 35 12 39: 7(int) Constant 56
38: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 39 33 18 28 12 17 23 37: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 38 32 18 39 12 17 23
41: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression) 41: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
42: TypeArray 32(fvec2) 10 43: TypeArray 31(fvec2) 10
43: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 33 10 44: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 32 10
44: TypePointer Input 42 45: TypePointer Input 43
45: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 43 22 12 46: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 44 22 12
46(inUV): 44(ptr) Variable Input 47(inUV): 45(ptr) Variable Input
49: 7(int) Constant 8 50: 7(int) Constant 8
47: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 48 43 18 28 12 21 48 46(inUV) 49 48: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 49 44 18 39 12 21 49 47(inUV) 50
50: TypeInt 32 1 51: TypeInt 32 1
52: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 51 10 23 12 53: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 52 10 23 12
53: 50(int) Constant 0 54: 51(int) Constant 0
54: TypePointer Input 32(fvec2) 55: TypePointer Input 31(fvec2)
55: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 33 22 12 56: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 32 22 12
58: 50(int) Constant 1 59: 51(int) Constant 1
61: TypeVector 29(float) 3 62: TypeVector 28(float) 3
62: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 31 13 63: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 30 13
63: TypePointer Input 61(fvec3) 64: TypePointer Input 62(fvec3)
64: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 62 22 12 65: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 63 22 12
65(gl_TessCoord): 63(ptr) Variable Input 66(gl_TessCoord): 64(ptr) Variable Input
66: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 67 62 18 28 12 21 67 65(gl_TessCoord) 49 67: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 68 63 18 39 12 21 68 66(gl_TessCoord) 50
68: TypePointer Input 29(float) 69: TypePointer Input 28(float)
69: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 22 12 70: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 22 12
75: 7(int) Constant 57 78: 7(int) Constant 57
77: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 78 33 18 75 12 17 23 76: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 77 32 18 78 12 17 23
80: 50(int) Constant 3 81: 51(int) Constant 3
83: 50(int) Constant 2 84: 51(int) Constant 2
91: 7(int) Constant 58 91: TypePointer Output 31(fvec2)
92: TypePointer Output 32(fvec2) 92: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 32 13 12
93: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 33 13 12 93(outUV): 91(ptr) Variable Output
94(outUV): 92(ptr) Variable Output 96: 7(int) Constant 58
95: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 96 33 18 91 12 21 96 94(outUV) 49 94: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 95 32 18 96 12 21 95 93(outUV) 50
104: 7(int) Constant 60 104: TypePointer Function 62(fvec3)
105: TypePointer Function 61(fvec3) 105: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 63 34 12
106: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 62 35 12 109: 7(int) Constant 60
108: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 109 62 18 104 12 17 23 107: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 108 63 18 109 12 17 23
111: TypeArray 61(fvec3) 10 112: TypeArray 62(fvec3) 10
112: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 62 10 113: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 63 10
113: TypePointer Input 111 114: TypePointer Input 112
114: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 112 22 12 115: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 113 22 12
115(inNormal): 113(ptr) Variable Input 116(inNormal): 114(ptr) Variable Input
116: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 117 112 18 104 12 21 117 115(inNormal) 49 117: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 118 113 18 109 12 21 118 116(inNormal) 50
127: 7(int) Constant 61 130: 7(int) Constant 61
129: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 130 62 18 127 12 17 23 128: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 129 63 18 130 12 17 23
141: 7(int) Constant 62 141: TypePointer Output 62(fvec3)
142: TypePointer Output 61(fvec3) 142: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 63 13 12
143: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 62 13 12 143(outNormal): 141(ptr) Variable Output
144(outNormal): 142(ptr) Variable Output 146: 7(int) Constant 62
145: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 146 62 18 141 12 21 146 144(outNormal) 49 144: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 145 63 18 146 12 21 145 143(outNormal) 50
154: 7(int) Constant 65 154: TypeVector 28(float) 4
155: TypeVector 29(float) 4 155: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 30 23
156: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 31 23 156: TypePointer Function 154(fvec4)
157: TypePointer Function 155(fvec4) 157: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 155 34 12
158: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 156 35 12 161: 7(int) Constant 65
160: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 161 156 18 154 12 17 23 159: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 160 155 18 161 12 17 23
163: TypeArray 29(float) 22 164: TypeArray 28(float) 22
164: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 31 22 165: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 30 22
165(gl_PerVertex): TypeStruct 155(fvec4) 29(float) 163 163 166(gl_PerVertex): TypeStruct 154(fvec4) 28(float) 164 164
168: 7(int) Constant 1756 169: 7(int) Constant 1756
166: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 167 156 18 22 168 12 12 13 167: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 168 155 18 22 169 12 12 13
171: 7(int) Constant 1774 172: 7(int) Constant 1774
169: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 170 31 18 22 171 12 12 13 170: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 171 30 18 22 172 12 12 13
174: 7(int) Constant 1817 175: 7(int) Constant 1817
172: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 173 164 18 22 174 12 12 13 173: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 174 165 18 22 175 12 12 13
175: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 173 164 18 22 174 12 12 13 176: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 174 165 18 22 175 12 12 13
176: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 177 22 18 154 12 21 177 12 13 166 169 172 175 177: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 178 22 18 161 12 21 178 12 13 167 170 173 176
178: TypeArray 165(gl_PerVertex) 10 179: TypeArray 166(gl_PerVertex) 10
179: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 176 10 180: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 177 10
180: TypePointer Input 178 181: TypePointer Input 179
181: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 179 22 12 182: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 180 22 12
182(gl_in): 180(ptr) Variable Input 183(gl_in): 181(ptr) Variable Input
183: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 184 179 18 154 12 21 184 182(gl_in) 49 184: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 185 180 18 161 12 21 185 183(gl_in) 50
185: TypePointer Input 155(fvec4) 186: TypePointer Input 154(fvec4)
186: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 156 22 12 187: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 155 22 12
196: 7(int) Constant 66 199: 7(int) Constant 66
198: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 199 156 18 196 12 17 23 197: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 198 155 18 199 12 17 23
210: 7(int) Constant 67 213: 7(int) Constant 67
212: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 213 156 18 210 12 17 23 211: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 212 155 18 213 12 17 23
222: 7(int) Constant 69 222: TypeImage 28(float) 2D sampled format:Unknown
223: TypeImage 29(float) 2D sampled format:Unknown 225: 7(int) Constant 69
227: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone) 227: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
224: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 225 12 18 222 12 21 226 227 13 223: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 224 12 18 225 12 21 226 227 13
228: TypeSampledImage 223 228: TypeSampledImage 222
229: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 230 12 18 222 12 21 231 227 13 229: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 230 12 18 225 12 21 231 227 13
232: TypePointer UniformConstant 228 232: TypePointer UniformConstant 228
233: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 229 12 12 233: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 229 12 12
234(displacementMap): 232(ptr) Variable UniformConstant 234(displacementMap): 232(ptr) Variable UniformConstant
235: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 236 229 18 222 12 21 236 234(displacementMap) 49 235: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 236 229 18 225 12 21 236 234(displacementMap) 50
239: 29(float) Constant 0 240: 28(float) Constant 0
242: TypeMatrix 155(fvec4) 4 243: TypeMatrix 154(fvec4) 4
244: TypeBool 245: TypeBool
246: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 245 10 24 12 247: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 246 10 24 12
247: 244(bool) ConstantTrue 248: 245(bool) ConstantTrue
243: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 156 23 247 244: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 155 23 248
248: TypeArray 155(fvec4) 11 249: TypeArray 154(fvec4) 11
249: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 156 11 250: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 155 11
250(UBO): TypeStruct 242 242 155(fvec4) 248 29(float) 29(float) 32(fvec2) 29(float) 251(UBO): TypeStruct 243 243 154(fvec4) 249 28(float) 28(float) 31(fvec2) 28(float)
253: 7(int) Constant 30 254: 7(int) Constant 30
251: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 252 243 18 253 35 12 12 13 252: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 253 244 18 254 34 12 12 13
254: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 252 243 18 253 35 12 12 13 255: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 253 244 18 254 34 12 12 13
257: 7(int) Constant 31 258: 7(int) Constant 31
255: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 256 156 18 257 35 12 12 13 256: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 257 155 18 258 34 12 12 13
258: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 259 249 18 10 35 12 12 13 259: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 260 250 18 10 34 12 12 13
262: 7(int) Constant 36 263: 7(int) Constant 36
260: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 261 31 18 262 49 12 12 13 261: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 262 30 18 263 50 12 12 13
263: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 261 31 18 262 49 12 12 13 264: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 262 30 18 263 50 12 12 13
266: 7(int) Constant 35 267: 7(int) Constant 35
264: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 265 33 18 266 35 12 12 13 265: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 266 32 18 267 34 12 12 13
267: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 261 31 18 262 49 12 12 13 268: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 262 30 18 263 50 12 12 13
268: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 269 22 18 222 12 21 269 12 13 251 254 255 258 260 263 264 267 269: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 270 22 18 225 12 21 270 12 13 252 255 256 259 261 264 265 268
270: TypePointer Uniform 250(UBO) 271: TypePointer Uniform 251(UBO)
271: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 268 24 12 272: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 269 24 12
272(ubo): 270(ptr) Variable Uniform 273(ubo): 271(ptr) Variable Uniform
273: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 274 268 18 222 12 21 274 272(ubo) 49 274: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 275 269 18 225 12 21 275 273(ubo) 50
275: 50(int) Constant 4 276: 51(int) Constant 4
276: TypePointer Uniform 29(float) 277: TypePointer Uniform 28(float)
277: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 24 12 278: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 24 12
281: TypePointer Function 29(float) 282: TypePointer Function 28(float)
282: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 35 12 283: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 34 12
288: 7(int) Constant 71 288(gl_PerVertex): TypeStruct 154(fvec4) 28(float) 164 164
289(gl_PerVertex): TypeStruct 155(fvec4) 29(float) 163 163 290: 7(int) Constant 165
291: 7(int) Constant 165 289: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 168 155 18 22 290 12 12 13
290: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 167 156 18 22 291 12 12 13 292: 7(int) Constant 183
293: 7(int) Constant 183 291: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 171 30 18 22 292 12 12 13
292: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 170 31 18 22 293 12 12 13 294: 7(int) Constant 226
295: 7(int) Constant 226 293: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 174 165 18 22 294 12 12 13
294: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 173 164 18 22 295 12 12 13 295: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 174 165 18 22 294 12 12 13
296: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 173 164 18 22 295 12 12 13 297: 7(int) Constant 71
297: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 177 22 18 288 12 21 177 12 13 290 292 294 296 296: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 178 22 18 297 12 21 178 12 13 289 291 293 295
298: TypePointer Output 289(gl_PerVertex) 298: TypePointer Output 288(gl_PerVertex)
299: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 297 13 12 299: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 296 13 12
300: 298(ptr) Variable Output 300: 298(ptr) Variable Output
301: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 297 18 288 12 21 1 300 49 301: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 2 296 18 297 12 21 2 300 50
302: TypePointer Uniform 242 302: TypePointer Uniform 243
303: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 243 24 12 303: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 244 24 12
311: TypePointer Output 155(fvec4) 312: TypePointer Output 154(fvec4)
312: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 156 13 12 313: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 155 13 12
315: 7(int) Constant 74 315(outViewVec): 141(ptr) Variable Output
316(outViewVec): 142(ptr) Variable Output 318: 7(int) Constant 74
317: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 318 62 18 315 12 21 318 316(outViewVec) 49 316: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 317 63 18 318 12 21 317 315(outViewVec) 50
323: 7(int) Constant 75 323(outLightVec): 141(ptr) Variable Output
324(outLightVec): 142(ptr) Variable Output 326: 7(int) Constant 75
325: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 326 62 18 323 12 21 326 324(outLightVec) 49 324: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 325 63 18 326 12 21 325 323(outLightVec) 50
327: TypePointer Uniform 155(fvec4) 327: TypePointer Uniform 154(fvec4)
328: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 156 24 12 328: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 155 24 12
336: 7(int) Constant 76 336(outWorldPos): 141(ptr) Variable Output
337(outWorldPos): 142(ptr) Variable Output 339: 7(int) Constant 76
338: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 339 62 18 336 12 21 339 337(outWorldPos) 49 337: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 338 63 18 339 12 21 338 336(outWorldPos) 50
343: 7(int) Constant 77 343(outEyePos): 141(ptr) Variable Output
344(outEyePos): 142(ptr) Variable Output 346: 7(int) Constant 77
345: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 346 62 18 343 12 21 346 344(outEyePos) 49 344: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 345 63 18 346 12 21 345 343(outEyePos) 50
Line 1 53 11
14(main): 4 Function None 5 14(main): 4 Function None 5
15: Label 15: Label
37(uv1): 34(ptr) Variable Function 36(uv1): 33(ptr) Variable Function
76(uv2): 34(ptr) Variable Function 75(uv2): 33(ptr) Variable Function
107(n1): 105(ptr) Variable Function 106(n1): 104(ptr) Variable Function
128(n2): 105(ptr) Variable Function 127(n2): 104(ptr) Variable Function
159(pos1): 157(ptr) Variable Function 158(pos1): 156(ptr) Variable Function
197(pos2): 157(ptr) Variable Function 196(pos2): 156(ptr) Variable Function
211(pos): 157(ptr) Variable Function 210(pos): 156(ptr) Variable Function
25: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 17 14(main) 26: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
26: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17 27: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 20 20 12 12
27: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 28 28 12 12 25: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 17 14(main)
40: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 38 37(uv1) 41 42: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 39 39 12 12
56: 54(ptr) AccessChain 46(inUV) 53 40: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 37 36(uv1) 41
57: 32(fvec2) Load 56 57: 55(ptr) AccessChain 47(inUV) 54
59: 54(ptr) AccessChain 46(inUV) 58 58: 31(fvec2) Load 57
60: 32(fvec2) Load 59 60: 55(ptr) AccessChain 47(inUV) 59
70: 68(ptr) AccessChain 65(gl_TessCoord) 12 61: 31(fvec2) Load 60
71: 29(float) Load 70 71: 69(ptr) AccessChain 66(gl_TessCoord) 12
72: 32(fvec2) CompositeConstruct 71 71 72: 28(float) Load 71
73: 32(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 57 60 72 73: 31(fvec2) CompositeConstruct 72 72
Store 37(uv1) 73 74: 31(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 58 61 73
74: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 75 75 12 12 Store 36(uv1) 74
79: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 77 76(uv2) 41 80: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 78 78 12 12
81: 54(ptr) AccessChain 46(inUV) 80 79: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 76 75(uv2) 41
82: 32(fvec2) Load 81 82: 55(ptr) AccessChain 47(inUV) 81
84: 54(ptr) AccessChain 46(inUV) 83 83: 31(fvec2) Load 82
85: 32(fvec2) Load 84 85: 55(ptr) AccessChain 47(inUV) 84
86: 68(ptr) AccessChain 65(gl_TessCoord) 12 86: 31(fvec2) Load 85
87: 29(float) Load 86 87: 69(ptr) AccessChain 66(gl_TessCoord) 12
88: 32(fvec2) CompositeConstruct 87 87 88: 28(float) Load 87
89: 32(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 82 85 88 89: 31(fvec2) CompositeConstruct 88 88
Store 76(uv2) 89 90: 31(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 83 86 89
90: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 91 91 12 12 Store 75(uv2) 90
97: 32(fvec2) Load 37(uv1) 98: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 96 96 12 12
98: 32(fvec2) Load 76(uv2) 97: 31(fvec2) Load 36(uv1)
99: 68(ptr) AccessChain 65(gl_TessCoord) 22 99: 31(fvec2) Load 75(uv2)
100: 29(float) Load 99 100: 69(ptr) AccessChain 66(gl_TessCoord) 22
101: 32(fvec2) CompositeConstruct 100 100 101: 28(float) Load 100
102: 32(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 97 98 101 102: 31(fvec2) CompositeConstruct 101 101
Store 94(outUV) 102 103: 31(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 97 99 102
103: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 104 104 12 12 Store 93(outUV) 103
110: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 108 107(n1) 41 111: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 109 109 12 12
118: 63(ptr) AccessChain 115(inNormal) 53 110: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 107 106(n1) 41
119: 61(fvec3) Load 118 119: 64(ptr) AccessChain 116(inNormal) 54
120: 63(ptr) AccessChain 115(inNormal) 58 120: 62(fvec3) Load 119
121: 61(fvec3) Load 120 121: 64(ptr) AccessChain 116(inNormal) 59
122: 68(ptr) AccessChain 65(gl_TessCoord) 12 122: 62(fvec3) Load 121
123: 29(float) Load 122 123: 69(ptr) AccessChain 66(gl_TessCoord) 12
124: 61(fvec3) CompositeConstruct 123 123 123 124: 28(float) Load 123
125: 61(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 119 121 124 125: 62(fvec3) CompositeConstruct 124 124 124
Store 107(n1) 125 126: 62(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 120 122 125
126: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 127 127 12 12 Store 106(n1) 126
131: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 129 128(n2) 41 132: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 130 130 12 12
132: 63(ptr) AccessChain 115(inNormal) 80 131: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 128 127(n2) 41
133: 61(fvec3) Load 132 133: 64(ptr) AccessChain 116(inNormal) 81
134: 63(ptr) AccessChain 115(inNormal) 83 134: 62(fvec3) Load 133
135: 61(fvec3) Load 134 135: 64(ptr) AccessChain 116(inNormal) 84
136: 68(ptr) AccessChain 65(gl_TessCoord) 12 136: 62(fvec3) Load 135
137: 29(float) Load 136 137: 69(ptr) AccessChain 66(gl_TessCoord) 12
138: 61(fvec3) CompositeConstruct 137 137 137 138: 28(float) Load 137
139: 61(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 133 135 138 139: 62(fvec3) CompositeConstruct 138 138 138
Store 128(n2) 139 140: 62(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 134 136 139
140: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 141 141 12 12 Store 127(n2) 140
147: 61(fvec3) Load 107(n1) 148: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 146 146 12 12
148: 61(fvec3) Load 128(n2) 147: 62(fvec3) Load 106(n1)
149: 68(ptr) AccessChain 65(gl_TessCoord) 22 149: 62(fvec3) Load 127(n2)
150: 29(float) Load 149 150: 69(ptr) AccessChain 66(gl_TessCoord) 22
151: 61(fvec3) CompositeConstruct 150 150 150 151: 28(float) Load 150
152: 61(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 147 148 151 152: 62(fvec3) CompositeConstruct 151 151 151
Store 144(outNormal) 152 153: 62(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 147 149 152
153: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 154 154 12 12 Store 143(outNormal) 153
162: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 160 159(pos1) 41 163: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 161 161 12 12
187: 185(ptr) AccessChain 182(gl_in) 53 53 162: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 159 158(pos1) 41
188: 155(fvec4) Load 187 188: 186(ptr) AccessChain 183(gl_in) 54 54
189: 185(ptr) AccessChain 182(gl_in) 58 53 189: 154(fvec4) Load 188
190: 155(fvec4) Load 189 190: 186(ptr) AccessChain 183(gl_in) 59 54
191: 68(ptr) AccessChain 65(gl_TessCoord) 12 191: 154(fvec4) Load 190
192: 29(float) Load 191 192: 69(ptr) AccessChain 66(gl_TessCoord) 12
193: 155(fvec4) CompositeConstruct 192 192 192 192 193: 28(float) Load 192
194: 155(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 188 190 193 194: 154(fvec4) CompositeConstruct 193 193 193 193
Store 159(pos1) 194 195: 154(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 189 191 194
195: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 196 196 12 12 Store 158(pos1) 195
200: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 198 197(pos2) 41 201: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 199 199 12 12
201: 185(ptr) AccessChain 182(gl_in) 80 53 200: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 197 196(pos2) 41
202: 155(fvec4) Load 201 202: 186(ptr) AccessChain 183(gl_in) 81 54
203: 185(ptr) AccessChain 182(gl_in) 83 53 203: 154(fvec4) Load 202
204: 155(fvec4) Load 203 204: 186(ptr) AccessChain 183(gl_in) 84 54
205: 68(ptr) AccessChain 65(gl_TessCoord) 12 205: 154(fvec4) Load 204
206: 29(float) Load 205 206: 69(ptr) AccessChain 66(gl_TessCoord) 12
207: 155(fvec4) CompositeConstruct 206 206 206 206 207: 28(float) Load 206
208: 155(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 202 204 207 208: 154(fvec4) CompositeConstruct 207 207 207 207
Store 197(pos2) 208 209: 154(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 203 205 208
209: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 210 210 12 12 Store 196(pos2) 209
214: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 212 211(pos) 41 215: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 213 213 12 12
215: 155(fvec4) Load 159(pos1) 214: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 211 210(pos) 41
216: 155(fvec4) Load 197(pos2) 216: 154(fvec4) Load 158(pos1)
217: 68(ptr) AccessChain 65(gl_TessCoord) 22 217: 154(fvec4) Load 196(pos2)
218: 29(float) Load 217 218: 69(ptr) AccessChain 66(gl_TessCoord) 22
219: 155(fvec4) CompositeConstruct 218 218 218 218 219: 28(float) Load 218
220: 155(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 215 216 219 220: 154(fvec4) CompositeConstruct 219 219 219 219
Store 211(pos) 220 221: 154(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 216 217 220
221: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 222 222 12 12 Store 210(pos) 221
238: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 225 225 12 12
237: 228 Load 234(displacementMap) 237: 228 Load 234(displacementMap)
238: 32(fvec2) Load 94(outUV) 239: 31(fvec2) Load 93(outUV)
240: 155(fvec4) ImageSampleExplicitLod 237 238 Lod 239 241: 154(fvec4) ImageSampleExplicitLod 237 239 Lod 240
241: 29(float) CompositeExtract 240 0 242: 28(float) CompositeExtract 241 0
278: 276(ptr) AccessChain 272(ubo) 275 279: 277(ptr) AccessChain 273(ubo) 276
279: 29(float) Load 278 280: 28(float) Load 279
280: 29(float) FMul 241 279 281: 28(float) FMul 242 280
283: 281(ptr) AccessChain 211(pos) 22 284: 282(ptr) AccessChain 210(pos) 22
284: 29(float) Load 283 285: 28(float) Load 284
285: 29(float) FSub 284 280 286: 28(float) FSub 285 281
286: 281(ptr) AccessChain 211(pos) 22 287: 282(ptr) AccessChain 210(pos) 22
Store 286 285 Store 287 286
287: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 288 288 12 12 305: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 297 297 12 12
304: 302(ptr) AccessChain 272(ubo) 53 304: 302(ptr) AccessChain 273(ubo) 54
305: 242 Load 304 306: 243 Load 304
306: 302(ptr) AccessChain 272(ubo) 58 307: 302(ptr) AccessChain 273(ubo) 59
307: 242 Load 306 308: 243 Load 307
308: 242 MatrixTimesMatrix 305 307 309: 243 MatrixTimesMatrix 306 308
309: 155(fvec4) Load 211(pos) 310: 154(fvec4) Load 210(pos)
310: 155(fvec4) MatrixTimesVector 308 309 311: 154(fvec4) MatrixTimesVector 309 310
313: 311(ptr) AccessChain 300 53 314: 312(ptr) AccessChain 300 54
Store 313 310 Store 314 311
314: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 315 315 12 12 320: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 318 318 12 12
319: 155(fvec4) Load 211(pos) 319: 154(fvec4) Load 210(pos)
320: 61(fvec3) VectorShuffle 319 319 0 1 2 321: 62(fvec3) VectorShuffle 319 319 0 1 2
321: 61(fvec3) FNegate 320 322: 62(fvec3) FNegate 321
Store 316(outViewVec) 321 Store 315(outViewVec) 322
322: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 323 323 12 12 330: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 326 326 12 12
329: 327(ptr) AccessChain 272(ubo) 83 329: 327(ptr) AccessChain 273(ubo) 84
330: 155(fvec4) Load 329 331: 154(fvec4) Load 329
331: 61(fvec3) VectorShuffle 330 330 0 1 2 332: 62(fvec3) VectorShuffle 331 331 0 1 2
332: 61(fvec3) Load 316(outViewVec) 333: 62(fvec3) Load 315(outViewVec)
333: 61(fvec3) FAdd 331 332 334: 62(fvec3) FAdd 332 333
334: 61(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 333 335: 62(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 334
Store 324(outLightVec) 334 Store 323(outLightVec) 335
335: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 336 336 12 12 341: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 339 339 12 12
340: 155(fvec4) Load 211(pos) 340: 154(fvec4) Load 210(pos)
341: 61(fvec3) VectorShuffle 340 340 0 1 2 342: 62(fvec3) VectorShuffle 340 340 0 1 2
Store 337(outWorldPos) 341 Store 336(outWorldPos) 342
342: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 343 343 12 12 348: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 346 346 12 12
347: 302(ptr) AccessChain 272(ubo) 58 347: 302(ptr) AccessChain 273(ubo) 59
348: 242 Load 347 349: 243 Load 347
349: 155(fvec4) Load 211(pos) 350: 154(fvec4) Load 210(pos)
350: 155(fvec4) MatrixTimesVector 348 349 351: 154(fvec4) MatrixTimesVector 349 350
351: 29(float) CompositeExtract 350 0 352: 28(float) CompositeExtract 351 0
352: 29(float) CompositeExtract 350 1 353: 28(float) CompositeExtract 351 1
353: 29(float) CompositeExtract 350 2 354: 28(float) CompositeExtract 351 2
354: 61(fvec3) CompositeConstruct 351 352 353 355: 62(fvec3) CompositeConstruct 352 353 354
Store 344(outEyePos) 354 Store 343(outEyePos) 355
Return Return
FunctionEnd FunctionEnd

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,20 +1,20 @@
spv.debuginfo.hlsl.geom spv.debuginfo.hlsl.geom
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 367 // Id's are bound by 366
Capability Geometry Capability Geometry
Capability MultiViewport Capability MultiViewport
Extension "SPV_KHR_non_semantic_info" Extension "SPV_KHR_non_semantic_info"
2: ExtInstImport "NonSemantic.Shader.DebugInfo.100" 1: ExtInstImport "NonSemantic.Shader.DebugInfo.100"
3: ExtInstImport "GLSL.std.450" 3: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Geometry 6 "main" 267 274 279 286 291 296 301 316 323 328 352 355 EntryPoint Geometry 6 "main" 264 273 278 285 290 295 300 315 322 327 351 354
ExecutionMode 6 Triangles ExecutionMode 6 Triangles
ExecutionMode 6 Invocations 2 ExecutionMode 6 Invocations 2
ExecutionMode 6 OutputTriangleStrip ExecutionMode 6 OutputTriangleStrip
ExecutionMode 6 OutputVertices 3 ExecutionMode 6 OutputVertices 3
1: String "" 2: String ""
9: String "float" 9: String "float"
12: String "uint" 12: String "uint"
25: String "Pos" 25: String "Pos"
@ -33,28 +33,28 @@ spv.debuginfo.hlsl.geom
54: String "LightVec" 54: String "LightVec"
60: String "GSOutput" 60: String "GSOutput"
73: String "@main" 73: String "@main"
79: String "input" 77: String "input"
83: String "outStream" 83: String "outStream"
87: String "InvocationID" 87: String "InvocationID"
96: String "int" 93: String "int"
102: String "i" 99: String "i"
117: String "bool" 116: String "bool"
125: String "output" 121: String "output"
148: String "projection" 147: String "projection"
152: String "modelview" 151: String "modelview"
156: String "lightPos" 155: String "lightPos"
160: String "UBO" 159: String "UBO"
163: String "ubo" 162: String "ubo"
201: String "pos" 198: String "pos"
210: String "worldPos" 207: String "worldPos"
221: String "lPos" 218: String "lPos"
269: String "outStream.Pos" 266: String "outStream.Pos"
276: String "outStream.ViewportIndex" 275: String "outStream.ViewportIndex"
281: String "outStream.PrimitiveID" 280: String "outStream.PrimitiveID"
288: String "outStream.Normal" 287: String "outStream.Normal"
293: String "outStream.Color" 292: String "outStream.Color"
298: String "outStream.ViewVec" 297: String "outStream.ViewVec"
303: String "outStream.LightVec" 302: String "outStream.LightVec"
Name 6 "main" Name 6 "main"
Name 23 "VSOutput" Name 23 "VSOutput"
MemberName 23(VSOutput) 0 "Pos" MemberName 23(VSOutput) 0 "Pos"
@ -73,63 +73,63 @@ spv.debuginfo.hlsl.geom
Name 68 "outStream" Name 68 "outStream"
Name 69 "InvocationID" Name 69 "InvocationID"
Name 70 "PrimitiveID" Name 70 "PrimitiveID"
Name 100 "i" Name 97 "i"
Name 123 "output" Name 119 "output"
Name 146 "UBO" Name 145 "UBO"
MemberName 146(UBO) 0 "projection" MemberName 145(UBO) 0 "projection"
MemberName 146(UBO) 1 "modelview" MemberName 145(UBO) 1 "modelview"
MemberName 146(UBO) 2 "lightPos" MemberName 145(UBO) 2 "lightPos"
Name 161 "ubo" Name 160 "ubo"
MemberName 161(ubo) 0 "ubo" MemberName 160(ubo) 0 "ubo"
Name 168 "" Name 167 ""
Name 199 "pos" Name 196 "pos"
Name 208 "worldPos" Name 205 "worldPos"
Name 219 "lPos" Name 216 "lPos"
Name 267 "outStream.Pos" Name 264 "outStream.Pos"
Name 274 "outStream.ViewportIndex" Name 273 "outStream.ViewportIndex"
Name 279 "outStream.PrimitiveID" Name 278 "outStream.PrimitiveID"
Name 286 "outStream.Normal" Name 285 "outStream.Normal"
Name 291 "outStream.Color" Name 290 "outStream.Color"
Name 296 "outStream.ViewVec" Name 295 "outStream.ViewVec"
Name 301 "outStream.LightVec" Name 300 "outStream.LightVec"
Name 313 "input" Name 312 "input"
Name 316 "input.Pos" Name 315 "input.Pos"
Name 323 "input.Normal" Name 322 "input.Normal"
Name 328 "input.Color" Name 327 "input.Color"
Name 350 "InvocationID" Name 349 "InvocationID"
Name 352 "InvocationID" Name 351 "InvocationID"
Name 353 "PrimitiveID"
Name 354 "PrimitiveID" Name 354 "PrimitiveID"
Name 355 "PrimitiveID" Name 356 "outStream"
Name 357 "outStream" Name 357 "param"
Name 358 "param" Name 359 "param"
Name 360 "param" Name 360 "param"
Name 361 "param" Name 362 "param"
Name 363 "param" Decorate 141 ArrayStride 64
Decorate 142 ArrayStride 64 Decorate 143 ArrayStride 64
Decorate 144 ArrayStride 64 MemberDecorate 145(UBO) 0 RowMajor
MemberDecorate 146(UBO) 0 RowMajor MemberDecorate 145(UBO) 0 Offset 0
MemberDecorate 146(UBO) 0 Offset 0 MemberDecorate 145(UBO) 0 MatrixStride 16
MemberDecorate 146(UBO) 0 MatrixStride 16 MemberDecorate 145(UBO) 1 RowMajor
MemberDecorate 146(UBO) 1 RowMajor MemberDecorate 145(UBO) 1 Offset 128
MemberDecorate 146(UBO) 1 Offset 128 MemberDecorate 145(UBO) 1 MatrixStride 16
MemberDecorate 146(UBO) 1 MatrixStride 16 MemberDecorate 145(UBO) 2 Offset 256
MemberDecorate 146(UBO) 2 Offset 256 MemberDecorate 160(ubo) 0 Offset 0
MemberDecorate 161(ubo) 0 Offset 0 Decorate 160(ubo) Block
Decorate 161(ubo) Block Decorate 167 DescriptorSet 0
Decorate 168 DescriptorSet 0 Decorate 167 Binding 0
Decorate 168 Binding 0 Decorate 264(outStream.Pos) BuiltIn Position
Decorate 267(outStream.Pos) BuiltIn Position Decorate 273(outStream.ViewportIndex) BuiltIn ViewportIndex
Decorate 274(outStream.ViewportIndex) BuiltIn ViewportIndex Decorate 278(outStream.PrimitiveID) BuiltIn PrimitiveId
Decorate 279(outStream.PrimitiveID) BuiltIn PrimitiveId Decorate 285(outStream.Normal) Location 0
Decorate 286(outStream.Normal) Location 0 Decorate 290(outStream.Color) Location 1
Decorate 291(outStream.Color) Location 1 Decorate 295(outStream.ViewVec) Location 2
Decorate 296(outStream.ViewVec) Location 2 Decorate 300(outStream.LightVec) Location 3
Decorate 301(outStream.LightVec) Location 3 Decorate 315(input.Pos) BuiltIn Position
Decorate 316(input.Pos) BuiltIn Position Decorate 322(input.Normal) Location 0
Decorate 323(input.Normal) Location 0 Decorate 327(input.Color) Location 1
Decorate 328(input.Color) Location 1 Decorate 351(InvocationID) BuiltIn InvocationId
Decorate 352(InvocationID) BuiltIn InvocationId Decorate 354(PrimitiveID) BuiltIn PrimitiveId
Decorate 355(PrimitiveID) BuiltIn PrimitiveId
4: TypeVoid 4: TypeVoid
5: TypeFunction 4 5: TypeFunction 4
8: TypeFloat 32 8: TypeFloat 32
@ -137,377 +137,373 @@ spv.debuginfo.hlsl.geom
14: 11(int) Constant 32 14: 11(int) Constant 32
15: 11(int) Constant 6 15: 11(int) Constant 6
16: 11(int) Constant 0 16: 11(int) Constant 0
13: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 12 14 15 16 13: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 12 14 15 16
17: 11(int) Constant 3 17: 11(int) Constant 3
10: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 14 17 16 10: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 14 17 16
18: TypeVector 8(float) 4 18: TypeVector 8(float) 4
19: 11(int) Constant 4 19: 11(int) Constant 4
20: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 19 20: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 19
21: TypeVector 8(float) 3 21: TypeVector 8(float) 3
22: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 17 22: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 17
23(VSOutput): TypeStruct 18(fvec4) 21(fvec3) 21(fvec3) 23(VSOutput): TypeStruct 18(fvec4) 21(fvec3) 21(fvec3)
26: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 27 26: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 2 27
28: 11(int) Constant 37 28: 11(int) Constant 37
29: 11(int) Constant 13 29: 11(int) Constant 13
24: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 25 20 26 28 29 16 16 17 24: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 25 20 26 28 29 16 16 17
32: 11(int) Constant 39 32: 11(int) Constant 39
33: 11(int) Constant 34 33: 11(int) Constant 34
30: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 31 22 26 32 33 16 16 17 30: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 31 22 26 32 33 16 16 17
34: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 31 22 26 32 33 16 16 17 34: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 31 22 26 32 33 16 16 17
37: 11(int) Constant 1 37: 11(int) Constant 1
39: 11(int) Constant 5 39: 11(int) Constant 5
38: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 37 19 26 39 38: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 37 19 26 39
35: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 36 37 26 16 16 38 36 16 17 24 30 34 35: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 36 37 26 16 16 38 36 16 17 24 30 34
40: TypeArray 23(VSOutput) 17 40: TypeArray 23(VSOutput) 17
41: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 35 17 41: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 35 17
42: TypePointer Function 40 42: TypePointer Function 40
43: 11(int) Constant 7 43: 11(int) Constant 7
44: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 41 43 16 44: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 41 43 16
45(GSOutput): TypeStruct 18(fvec4) 11(int) 11(int) 21(fvec3) 21(fvec3) 21(fvec3) 21(fvec3) 45(GSOutput): TypeStruct 18(fvec4) 11(int) 11(int) 21(fvec3) 21(fvec3) 21(fvec3) 21(fvec3)
47: 11(int) Constant 44 47: 11(int) Constant 44
46: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 25 20 26 47 29 16 16 17 46: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 25 20 26 47 29 16 16 17
50: 11(int) Constant 46 50: 11(int) Constant 46
51: 11(int) Constant 19 51: 11(int) Constant 19
48: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 49 13 26 50 51 16 16 17 48: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 49 13 26 50 51 16 16 17
52: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 49 13 26 50 51 16 16 17 52: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 49 13 26 50 51 16 16 17
55: 11(int) Constant 50 55: 11(int) Constant 50
53: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 54 22 26 55 28 16 16 17 53: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 54 22 26 55 28 16 16 17
56: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 54 22 26 55 28 16 16 17 56: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 54 22 26 55 28 16 16 17
57: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 54 22 26 55 28 16 16 17 57: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 54 22 26 55 28 16 16 17
58: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 54 22 26 55 28 16 16 17 58: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 54 22 26 55 28 16 16 17
59: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 60 37 26 16 16 38 60 16 17 46 48 52 53 56 57 58 59: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 60 37 26 16 16 38 60 16 17 46 48 52 53 56 57 58
61: TypePointer Function 45(GSOutput) 61: TypePointer Function 45(GSOutput)
62: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 59 43 16 62: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 59 43 16
63: TypePointer Function 11(int) 63: TypePointer Function 11(int)
64: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 13 43 16 64: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 13 43 16
65: TypeFunction 4 42(ptr) 61(ptr) 63(ptr) 63(ptr) 65: TypeFunction 4 42(ptr) 61(ptr) 63(ptr) 63(ptr)
66: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 4 41 59 13 13 66: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 4 41 59 13 13
75: 11(int) Constant 56 75: 11(int) Constant 56
74: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 73 66 26 75 16 38 73 17 75 74: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 73 66 26 75 16 38 73 17 75
78: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 79 41 26 75 16 74 19 37 76: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 77 41 26 75 16 74 19 37
81: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression) 79: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
84: 11(int) Constant 2 84: 11(int) Constant 2
82: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 83 59 26 75 16 74 19 84 82: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 83 59 26 75 16 74 19 84
86: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 87 13 26 75 16 74 19 17 86: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 87 13 26 75 16 74 19 17
89: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 49 13 26 75 16 74 19 19 89: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 49 13 26 75 16 74 19 19
94: 11(int) Constant 57 92: TypeInt 32 1
95: TypeInt 32 1 94: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 93 14 19 16
97: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 96 14 19 16 95: TypePointer Function 92(int)
98: TypePointer Function 95(int) 96: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 94 43 16
99: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 97 43 16 100: 11(int) Constant 57
101: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 102 97 26 94 16 74 19 98: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 99 94 26 100 16 74 19
104: 95(int) Constant 0 103: 92(int) Constant 0
115: 95(int) Constant 3 114: 92(int) Constant 3
116: TypeBool 115: TypeBool
118: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 117 14 84 16 117: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 116 14 84 16
122: 11(int) Constant 59 122: 11(int) Constant 59
124: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 125 59 26 122 16 74 19 120: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 121 59 26 122 16 74 19
127: 8(float) Constant 0 126: 8(float) Constant 0
128: 18(fvec4) ConstantComposite 127 127 127 127 127: 18(fvec4) ConstantComposite 126 126 126 126
129: 21(fvec3) ConstantComposite 127 127 127 128: 21(fvec3) ConstantComposite 126 126 126
130:45(GSOutput) ConstantComposite 128 16 16 129 129 129 129 129:45(GSOutput) ConstantComposite 127 16 16 128 128 128 128
132: 11(int) Constant 60 132: 11(int) Constant 60
134: 95(int) Constant 1 133: 92(int) Constant 1
135: TypePointer Function 21(fvec3) 134: TypePointer Function 21(fvec3)
136: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 22 43 16 135: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 22 43 16
139: TypeMatrix 18(fvec4) 4 138: TypeMatrix 18(fvec4) 4
141: 116(bool) ConstantTrue 140: 115(bool) ConstantTrue
140: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 20 19 141 139: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 20 19 140
142: TypeArray 139 84 141: TypeArray 138 84
143: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 140 84 142: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 139 84
144: TypeArray 139 84 143: TypeArray 138 84
145: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 140 84 144: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 139 84
146(UBO): TypeStruct 142 144 18(fvec4) 145(UBO): TypeStruct 141 143 18(fvec4)
149: 11(int) Constant 28 148: 11(int) Constant 28
150: 11(int) Constant 21 149: 11(int) Constant 21
147: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 148 143 26 149 150 16 16 17 146: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 147 142 26 148 149 16 16 17
153: 11(int) Constant 29 152: 11(int) Constant 29
154: 11(int) Constant 20 153: 11(int) Constant 20
151: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 152 145 26 153 154 16 16 17 150: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 151 144 26 152 153 16 16 17
157: 11(int) Constant 30 156: 11(int) Constant 30
158: 11(int) Constant 17 157: 11(int) Constant 17
155: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 156 20 26 157 158 16 16 17 154: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 155 20 26 156 157 16 16 17
159: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 160 37 26 132 16 38 160 16 17 147 151 155 158: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 159 37 26 132 16 38 159 16 17 146 150 154
161(ubo): TypeStruct 146(UBO) 160(ubo): TypeStruct 145(UBO)
164: 11(int) Constant 33 163: 11(int) Constant 33
162: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 163 159 26 164 28 16 16 17 161: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 162 158 26 163 28 16 16 17
165: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 163 37 26 132 16 38 163 16 17 162 164: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 162 37 26 132 16 38 162 16 17 161
166: TypePointer Uniform 161(ubo) 165: TypePointer Uniform 160(ubo)
167: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 165 84 16 166: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 164 84 16
168: 166(ptr) Variable Uniform 167: 165(ptr) Variable Uniform
170: 11(int) Constant 8 169: 11(int) Constant 8
169: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 165 26 132 16 38 1 168 170 168: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 2 164 26 132 16 38 2 167 169
172: TypePointer Uniform 139 171: TypePointer Uniform 138
173: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 140 84 16 172: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 139 84 16
176: TypeMatrix 21(fvec3) 3 175: TypeMatrix 21(fvec3) 3
177: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 22 17 141 176: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 22 17 140
188: 11(int) Constant 61 186: 92(int) Constant 4
189: 95(int) Constant 4 189: 11(int) Constant 61
191: 95(int) Constant 2 190: 92(int) Constant 2
196: 11(int) Constant 63 194: TypePointer Function 18(fvec4)
197: TypePointer Function 18(fvec4) 195: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 20 43 16
198: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 20 43 16 199: 11(int) Constant 63
200: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 201 20 26 196 16 74 19 197: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 198 20 26 199 16 74 19
207: 11(int) Constant 64 208: 11(int) Constant 64
209: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 210 20 26 207 16 74 19 206: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 207 20 26 208 16 74 19
218: 11(int) Constant 66 219: 11(int) Constant 66
220: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 221 22 26 218 16 74 19 217: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 218 22 26 219 16 74 19
223: TypePointer Uniform 18(fvec4) 222: TypePointer Uniform 18(fvec4)
224: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 20 84 16 223: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 20 84 16
233: 11(int) Constant 67 231: 92(int) Constant 6
234: 95(int) Constant 6 234: 11(int) Constant 67
241: 11(int) Constant 68 239: 92(int) Constant 5
242: 95(int) Constant 5 242: 11(int) Constant 68
248: 11(int) Constant 70 248: 11(int) Constant 70
256: 11(int) Constant 73 256: 11(int) Constant 73
260: 11(int) Constant 74 260: 11(int) Constant 74
264: 11(int) Constant 75 262: TypePointer Output 18(fvec4)
265: TypePointer Output 18(fvec4) 263: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 20 17 16
266: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 20 17 16 264(outStream.Pos): 262(ptr) Variable Output
267(outStream.Pos): 265(ptr) Variable Output 267: 11(int) Constant 75
268: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 269 20 26 264 16 38 269 267(outStream.Pos) 170 265: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 266 20 26 267 16 38 266 264(outStream.Pos) 169
272: TypePointer Output 11(int) 271: TypePointer Output 11(int)
273: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 13 17 16 272: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 13 17 16
274(outStream.ViewportIndex): 272(ptr) Variable Output 273(outStream.ViewportIndex): 271(ptr) Variable Output
275: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 276 13 26 264 16 38 276 274(outStream.ViewportIndex) 170 274: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 275 13 26 267 16 38 275 273(outStream.ViewportIndex) 169
279(outStream.PrimitiveID): 272(ptr) Variable Output 278(outStream.PrimitiveID): 271(ptr) Variable Output
280: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 281 13 26 264 16 38 281 279(outStream.PrimitiveID) 170 279: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 280 13 26 267 16 38 280 278(outStream.PrimitiveID) 169
284: TypePointer Output 21(fvec3) 283: TypePointer Output 21(fvec3)
285: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 22 17 16 284: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 22 17 16
286(outStream.Normal): 284(ptr) Variable Output 285(outStream.Normal): 283(ptr) Variable Output
287: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 288 22 26 264 16 38 288 286(outStream.Normal) 170 286: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 287 22 26 267 16 38 287 285(outStream.Normal) 169
291(outStream.Color): 284(ptr) Variable Output 290(outStream.Color): 283(ptr) Variable Output
292: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 293 22 26 264 16 38 293 291(outStream.Color) 170 291: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 292 22 26 267 16 38 292 290(outStream.Color) 169
296(outStream.ViewVec): 284(ptr) Variable Output 295(outStream.ViewVec): 283(ptr) Variable Output
297: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 298 22 26 264 16 38 298 296(outStream.ViewVec) 170 296: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 297 22 26 267 16 38 297 295(outStream.ViewVec) 169
301(outStream.LightVec): 284(ptr) Variable Output 300(outStream.LightVec): 283(ptr) Variable Output
302: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 303 22 26 264 16 38 303 301(outStream.LightVec) 170 301: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 302 22 26 267 16 38 302 300(outStream.LightVec) 169
312: 11(int) Constant 78 311: 11(int) Constant 78
314: TypeArray 18(fvec4) 17 313: TypeArray 18(fvec4) 17
315: TypePointer Input 314 314: TypePointer Input 313
316(input.Pos): 315(ptr) Variable Input 315(input.Pos): 314(ptr) Variable Input
317: TypePointer Input 18(fvec4) 316: TypePointer Input 18(fvec4)
321: TypeArray 21(fvec3) 17 320: TypeArray 21(fvec3) 17
322: TypePointer Input 321 321: TypePointer Input 320
323(input.Normal): 322(ptr) Variable Input 322(input.Normal): 321(ptr) Variable Input
324: TypePointer Input 21(fvec3) 323: TypePointer Input 21(fvec3)
328(input.Color): 322(ptr) Variable Input 327(input.Color): 321(ptr) Variable Input
351: TypePointer Input 11(int) 350: TypePointer Input 11(int)
352(InvocationID): 351(ptr) Variable Input 351(InvocationID): 350(ptr) Variable Input
355(PrimitiveID): 351(ptr) Variable Input 354(PrimitiveID): 350(ptr) Variable Input
Line 1 56 1
6(main): 4 Function None 5 6(main): 4 Function None 5
7: Label 7: Label
313(input): 42(ptr) Variable Function 312(input): 42(ptr) Variable Function
350(InvocationID): 63(ptr) Variable Function 349(InvocationID): 63(ptr) Variable Function
354(PrimitiveID): 63(ptr) Variable Function 353(PrimitiveID): 63(ptr) Variable Function
357(outStream): 61(ptr) Variable Function 356(outStream): 61(ptr) Variable Function
358(param): 42(ptr) Variable Function 357(param): 42(ptr) Variable Function
360(param): 61(ptr) Variable Function 359(param): 61(ptr) Variable Function
361(param): 63(ptr) Variable Function 360(param): 63(ptr) Variable Function
363(param): 63(ptr) Variable Function 362(param): 63(ptr) Variable Function
Line 1 56 0 317: 316(ptr) AccessChain 315(input.Pos) 103
318: 317(ptr) AccessChain 316(input.Pos) 104 318: 18(fvec4) Load 317
319: 18(fvec4) Load 318 319: 194(ptr) AccessChain 312(input) 103 103
320: 197(ptr) AccessChain 313(input) 104 104 Store 319 318
Store 320 319 324: 323(ptr) AccessChain 322(input.Normal) 103
325: 324(ptr) AccessChain 323(input.Normal) 104 325: 21(fvec3) Load 324
326: 21(fvec3) Load 325 326: 134(ptr) AccessChain 312(input) 103 133
327: 135(ptr) AccessChain 313(input) 104 134 Store 326 325
Store 327 326 328: 323(ptr) AccessChain 327(input.Color) 103
329: 324(ptr) AccessChain 328(input.Color) 104 329: 21(fvec3) Load 328
330: 21(fvec3) Load 329 330: 134(ptr) AccessChain 312(input) 103 190
331: 135(ptr) AccessChain 313(input) 104 191 Store 330 329
Store 331 330 331: 316(ptr) AccessChain 315(input.Pos) 133
332: 317(ptr) AccessChain 316(input.Pos) 134 332: 18(fvec4) Load 331
333: 18(fvec4) Load 332 333: 194(ptr) AccessChain 312(input) 133 103
334: 197(ptr) AccessChain 313(input) 134 104 Store 333 332
Store 334 333 334: 323(ptr) AccessChain 322(input.Normal) 133
335: 324(ptr) AccessChain 323(input.Normal) 134 335: 21(fvec3) Load 334
336: 21(fvec3) Load 335 336: 134(ptr) AccessChain 312(input) 133 133
337: 135(ptr) AccessChain 313(input) 134 134 Store 336 335
Store 337 336 337: 323(ptr) AccessChain 327(input.Color) 133
338: 324(ptr) AccessChain 328(input.Color) 134 338: 21(fvec3) Load 337
339: 21(fvec3) Load 338 339: 134(ptr) AccessChain 312(input) 133 190
340: 135(ptr) AccessChain 313(input) 134 191 Store 339 338
Store 340 339 340: 316(ptr) AccessChain 315(input.Pos) 190
341: 317(ptr) AccessChain 316(input.Pos) 191 341: 18(fvec4) Load 340
342: 18(fvec4) Load 341 342: 194(ptr) AccessChain 312(input) 190 103
343: 197(ptr) AccessChain 313(input) 191 104 Store 342 341
Store 343 342 343: 323(ptr) AccessChain 322(input.Normal) 190
344: 324(ptr) AccessChain 323(input.Normal) 191 344: 21(fvec3) Load 343
345: 21(fvec3) Load 344 345: 134(ptr) AccessChain 312(input) 190 133
346: 135(ptr) AccessChain 313(input) 191 134 Store 345 344
Store 346 345 346: 323(ptr) AccessChain 327(input.Color) 190
347: 324(ptr) AccessChain 328(input.Color) 191 347: 21(fvec3) Load 346
348: 21(fvec3) Load 347 348: 134(ptr) AccessChain 312(input) 190 190
349: 135(ptr) AccessChain 313(input) 191 191 Store 348 347
Store 349 348 352: 11(int) Load 351(InvocationID)
353: 11(int) Load 352(InvocationID) Store 349(InvocationID) 352
Store 350(InvocationID) 353 355: 11(int) Load 354(PrimitiveID)
356: 11(int) Load 355(PrimitiveID) Store 353(PrimitiveID) 355
Store 354(PrimitiveID) 356 358: 40 Load 312(input)
359: 40 Load 313(input) Store 357(param) 358
Store 358(param) 359 361: 11(int) Load 349(InvocationID)
362: 11(int) Load 350(InvocationID) Store 360(param) 361
Store 361(param) 362 363: 11(int) Load 353(PrimitiveID)
364: 11(int) Load 354(PrimitiveID) Store 362(param) 363
Store 363(param) 364 364: 4 FunctionCall 71(@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;) 357(param) 359(param) 360(param) 362(param)
365: 4 FunctionCall 71(@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;) 358(param) 360(param) 361(param) 363(param) 365:45(GSOutput) Load 359(param)
366:45(GSOutput) Load 360(param) Store 356(outStream) 365
Store 357(outStream) 366
Return Return
FunctionEnd FunctionEnd
Line 1 56 1
71(@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;): 4 Function None 65 71(@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;): 4 Function None 65
67(input): 42(ptr) FunctionParameter 67(input): 42(ptr) FunctionParameter
68(outStream): 61(ptr) FunctionParameter 68(outStream): 61(ptr) FunctionParameter
69(InvocationID): 63(ptr) FunctionParameter 69(InvocationID): 63(ptr) FunctionParameter
70(PrimitiveID): 63(ptr) FunctionParameter 70(PrimitiveID): 63(ptr) FunctionParameter
72: Label 72: Label
100(i): 98(ptr) Variable Function 97(i): 95(ptr) Variable Function
123(output): 61(ptr) Variable Function 119(output): 61(ptr) Variable Function
199(pos): 197(ptr) Variable Function 196(pos): 194(ptr) Variable Function
208(worldPos): 197(ptr) Variable Function 205(worldPos): 194(ptr) Variable Function
219(lPos): 135(ptr) Variable Function 216(lPos): 134(ptr) Variable Function
76: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74 80: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74
77: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 75 75 16 16 81: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 75 75 16 16
80: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 78 67(input) 81 78: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 76 67(input) 79
85: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 82 68(outStream) 81 85: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 82 68(outStream) 79
88: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 86 69(InvocationID) 81 88: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 86 69(InvocationID) 79
90: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 89 70(PrimitiveID) 81 90: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 89 70(PrimitiveID) 79
91: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 74 71(@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;) 91: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 74 71(@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;)
92: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74 102: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 100 100 16 16
93: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 94 94 16 16 101: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 98 97(i) 79
103: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 101 100(i) 81 Store 97(i) 103
Store 100(i) 104 Branch 104
Branch 105 104: Label
108: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74
109: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 100 100 16 16
LoopMerge 106 107 None
Branch 110
110: Label
112: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74
113: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 100 100 16 16
111: 92(int) Load 97(i)
118: 115(bool) SLessThan 111 114
BranchConditional 118 105 106
105: Label 105: Label
109: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74 124: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74
110: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 94 94 16 16 125: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 122 122 16 16
LoopMerge 107 108 None 123: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 120 119(output) 79
Branch 111 Store 119(output) 129
111: Label 131: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 132 132 16 16
112: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74 130: 92(int) Load 97(i)
113: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 94 94 16 16 136: 134(ptr) AccessChain 67(input) 130 133
114: 95(int) Load 100(i) 137: 21(fvec3) Load 136
119: 116(bool) SLessThan 114 115 170: 11(int) Load 69(InvocationID)
BranchConditional 119 106 107 173: 171(ptr) AccessChain 167 103 133 170
106: Label 174: 138 Load 173
120: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74 177: 18(fvec4) CompositeExtract 174 0
121: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 122 122 16 16 178: 21(fvec3) VectorShuffle 177 177 0 1 2
126: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 124 123(output) 81 179: 18(fvec4) CompositeExtract 174 1
Store 123(output) 130 180: 21(fvec3) VectorShuffle 179 179 0 1 2
131: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 132 132 16 16 181: 18(fvec4) CompositeExtract 174 2
133: 95(int) Load 100(i) 182: 21(fvec3) VectorShuffle 181 181 0 1 2
137: 135(ptr) AccessChain 67(input) 133 134 183: 175 CompositeConstruct 178 180 182
138: 21(fvec3) Load 137 184: 21(fvec3) VectorTimesMatrix 137 183
171: 11(int) Load 69(InvocationID) 185: 134(ptr) AccessChain 119(output) 114
174: 172(ptr) AccessChain 168 104 134 171 Store 185 184
175: 139 Load 174 188: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 189 189 16 16
178: 18(fvec4) CompositeExtract 175 0 187: 92(int) Load 97(i)
179: 21(fvec3) VectorShuffle 178 178 0 1 2 191: 134(ptr) AccessChain 67(input) 187 190
180: 18(fvec4) CompositeExtract 175 1 192: 21(fvec3) Load 191
181: 21(fvec3) VectorShuffle 180 180 0 1 2 193: 134(ptr) AccessChain 119(output) 186
182: 18(fvec4) CompositeExtract 175 2 Store 193 192
183: 21(fvec3) VectorShuffle 182 182 0 1 2 201: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 199 199 16 16
184: 176 CompositeConstruct 179 181 183 200: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 197 196(pos) 79
185: 21(fvec3) VectorTimesMatrix 138 184 202: 92(int) Load 97(i)
186: 135(ptr) AccessChain 123(output) 115 203: 194(ptr) AccessChain 67(input) 202 103
Store 186 185 204: 18(fvec4) Load 203
187: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 188 188 16 16 Store 196(pos) 204
190: 95(int) Load 100(i) 210: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 208 208 16 16
192: 135(ptr) AccessChain 67(input) 190 191 209: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 206 205(worldPos) 79
193: 21(fvec3) Load 192 211: 18(fvec4) Load 196(pos)
194: 135(ptr) AccessChain 123(output) 189 212: 11(int) Load 69(InvocationID)
Store 194 193 213: 171(ptr) AccessChain 167 103 133 212
195: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 196 196 16 16 214: 138 Load 213
202: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 200 199(pos) 81 215: 18(fvec4) VectorTimesMatrix 211 214
203: 95(int) Load 100(i) Store 205(worldPos) 215
204: 197(ptr) AccessChain 67(input) 203 104 221: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 219 219 16 16
205: 18(fvec4) Load 204 220: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 217 216(lPos) 79
Store 199(pos) 205 224: 222(ptr) AccessChain 167 103 190
206: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 207 207 16 16 225: 18(fvec4) Load 224
211: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 209 208(worldPos) 81 226: 11(int) Load 69(InvocationID)
212: 18(fvec4) Load 199(pos) 227: 171(ptr) AccessChain 167 103 133 226
213: 11(int) Load 69(InvocationID) 228: 138 Load 227
214: 172(ptr) AccessChain 168 104 134 213 229: 18(fvec4) VectorTimesMatrix 225 228
215: 139 Load 214 230: 21(fvec3) VectorShuffle 229 229 0 1 2
216: 18(fvec4) VectorTimesMatrix 212 215 Store 216(lPos) 230
Store 208(worldPos) 216 233: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 234 234 16 16
217: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 218 218 16 16 232: 21(fvec3) Load 216(lPos)
222: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 220 219(lPos) 81 235: 18(fvec4) Load 205(worldPos)
225: 223(ptr) AccessChain 168 104 191 236: 21(fvec3) VectorShuffle 235 235 0 1 2
226: 18(fvec4) Load 225 237: 21(fvec3) FSub 232 236
227: 11(int) Load 69(InvocationID) 238: 134(ptr) AccessChain 119(output) 231
228: 172(ptr) AccessChain 168 104 134 227 Store 238 237
229: 139 Load 228 241: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 242 242 16 16
230: 18(fvec4) VectorTimesMatrix 226 229 240: 18(fvec4) Load 205(worldPos)
231: 21(fvec3) VectorShuffle 230 230 0 1 2 243: 21(fvec3) VectorShuffle 240 240 0 1 2
Store 219(lPos) 231 244: 21(fvec3) FNegate 243
232: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 233 233 16 16 245: 134(ptr) AccessChain 119(output) 239
235: 21(fvec3) Load 219(lPos) Store 245 244
236: 18(fvec4) Load 208(worldPos) 247: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 248 248 16 16
237: 21(fvec3) VectorShuffle 236 236 0 1 2 246: 18(fvec4) Load 205(worldPos)
238: 21(fvec3) FSub 235 237 249: 11(int) Load 69(InvocationID)
239: 135(ptr) AccessChain 123(output) 234 250: 171(ptr) AccessChain 167 103 103 249
Store 239 238 251: 138 Load 250
240: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 241 241 16 16 252: 18(fvec4) VectorTimesMatrix 246 251
243: 18(fvec4) Load 208(worldPos) 253: 194(ptr) AccessChain 119(output) 103
244: 21(fvec3) VectorShuffle 243 243 0 1 2 Store 253 252
245: 21(fvec3) FNegate 244 255: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 256 256 16 16
246: 135(ptr) AccessChain 123(output) 242 254: 11(int) Load 69(InvocationID)
Store 246 245 257: 63(ptr) AccessChain 119(output) 133
247: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 248 248 16 16 Store 257 254
249: 18(fvec4) Load 208(worldPos) 259: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 260 260 16 16
250: 11(int) Load 69(InvocationID) 258: 11(int) Load 70(PrimitiveID)
251: 172(ptr) AccessChain 168 104 104 250 261: 63(ptr) AccessChain 119(output) 190
252: 139 Load 251 Store 261 258
253: 18(fvec4) VectorTimesMatrix 249 252 269: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 267 267 16 16
254: 197(ptr) AccessChain 123(output) 104 268: 194(ptr) AccessChain 119(output) 103
Store 254 253 270: 18(fvec4) Load 268
255: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 256 256 16 16 Store 264(outStream.Pos) 270
257: 11(int) Load 69(InvocationID) 276: 63(ptr) AccessChain 119(output) 133
258: 63(ptr) AccessChain 123(output) 134 277: 11(int) Load 276
Store 258 257 Store 273(outStream.ViewportIndex) 277
259: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 260 260 16 16 281: 63(ptr) AccessChain 119(output) 190
261: 11(int) Load 70(PrimitiveID) 282: 11(int) Load 281
262: 63(ptr) AccessChain 123(output) 191 Store 278(outStream.PrimitiveID) 282
Store 262 261 288: 134(ptr) AccessChain 119(output) 114
263: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 264 264 16 16 289: 21(fvec3) Load 288
270: 197(ptr) AccessChain 123(output) 104 Store 285(outStream.Normal) 289
271: 18(fvec4) Load 270 293: 134(ptr) AccessChain 119(output) 186
Store 267(outStream.Pos) 271 294: 21(fvec3) Load 293
277: 63(ptr) AccessChain 123(output) 134 Store 290(outStream.Color) 294
278: 11(int) Load 277 298: 134(ptr) AccessChain 119(output) 239
Store 274(outStream.ViewportIndex) 278 299: 21(fvec3) Load 298
282: 63(ptr) AccessChain 123(output) 191 Store 295(outStream.ViewVec) 299
283: 11(int) Load 282 303: 134(ptr) AccessChain 119(output) 231
Store 279(outStream.PrimitiveID) 283 304: 21(fvec3) Load 303
289: 135(ptr) AccessChain 123(output) 115 Store 300(outStream.LightVec) 304
290: 21(fvec3) Load 289
Store 286(outStream.Normal) 290
294: 135(ptr) AccessChain 123(output) 189
295: 21(fvec3) Load 294
Store 291(outStream.Color) 295
299: 135(ptr) AccessChain 123(output) 242
300: 21(fvec3) Load 299
Store 296(outStream.ViewVec) 300
304: 135(ptr) AccessChain 123(output) 234
305: 21(fvec3) Load 304
Store 301(outStream.LightVec) 305
EmitVertex EmitVertex
Branch 108 Branch 107
108: Label
306: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74
307: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 94 94 16 16
308: 95(int) Load 100(i)
309: 95(int) IAdd 308 134
Store 100(i) 309
Branch 105
107: Label 107: Label
310: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74 306: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74
311: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 312 312 16 16 307: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 100 100 16 16
305: 92(int) Load 97(i)
308: 92(int) IAdd 305 133
Store 97(i) 308
Branch 104
106: Label
309: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74
310: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 311 311 16 16
EndPrimitive EndPrimitive
Return Return
FunctionEnd FunctionEnd

File diff suppressed because it is too large Load diff

View file

@ -5,12 +5,12 @@ spv.debuginfo.hlsl.tese
Capability Tessellation Capability Tessellation
Extension "SPV_KHR_non_semantic_info" Extension "SPV_KHR_non_semantic_info"
2: ExtInstImport "NonSemantic.Shader.DebugInfo.100" 1: ExtInstImport "NonSemantic.Shader.DebugInfo.100"
3: ExtInstImport "GLSL.std.450" 3: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint TessellationEvaluation 6 "main" 368 383 392 401 408 414 454 458 462 465 468 471 474 EntryPoint TessellationEvaluation 6 "main" 368 383 392 401 408 414 454 458 462 465 468 471 474
ExecutionMode 6 Quads ExecutionMode 6 Quads
1: String "" 2: String ""
9: String "float" 9: String "float"
12: String "uint" 12: String "uint"
26: String "TessLevelOuter" 26: String "TessLevelOuter"
@ -32,34 +32,34 @@ spv.debuginfo.hlsl.tese
71: String "WorldPos" 71: String "WorldPos"
81: String "DSOutput" 81: String "DSOutput"
89: String "@main" 89: String "@main"
95: String "input" 93: String "input"
99: String "TessCoord" 99: String "TessCoord"
102: String "patch" 102: String "patch"
112: String "output" 109: String "output"
123: String "uv1" 120: String "uv1"
126: String "int" 125: String "int"
143: String "uv2" 140: String "uv2"
167: String "n1" 164: String "n1"
179: String "n2" 176: String "n2"
202: String "pos1" 199: String "pos1"
214: String "pos2" 211: String "pos2"
226: String "pos" 223: String "pos"
238: String "type.2d.image" 235: String "type.2d.image"
239: String "@type.2d.image" 237: String "@type.2d.image"
245: String "displacementMapTexture" 243: String "displacementMapTexture"
250: String "type.sampler" 249: String "type.sampler"
251: String "@type.sampler" 250: String "@type.sampler"
256: String "displacementMapSampler" 255: String "displacementMapSampler"
260: String "type.sampled.image" 259: String "type.sampled.image"
261: String "@type.sampled.image" 260: String "@type.sampled.image"
270: String "bool" 269: String "bool"
277: String "modelview" 276: String "modelview"
282: String "lightPos" 281: String "lightPos"
286: String "frustumPlanes" 285: String "frustumPlanes"
289: String "tessellatedEdgeSize" 288: String "tessellatedEdgeSize"
293: String "viewportDim" 292: String "viewportDim"
297: String "UBO" 296: String "UBO"
300: String "ubo" 299: String "ubo"
Name 6 "main" Name 6 "main"
Name 24 "ConstantsHSOutput" Name 24 "ConstantsHSOutput"
MemberName 24(ConstantsHSOutput) 0 "TessLevelOuter" MemberName 24(ConstantsHSOutput) 0 "TessLevelOuter"
@ -80,28 +80,28 @@ spv.debuginfo.hlsl.tese
Name 84 "input" Name 84 "input"
Name 85 "TessCoord" Name 85 "TessCoord"
Name 86 "patch" Name 86 "patch"
Name 110 "output" Name 107 "output"
Name 121 "uv1" Name 118 "uv1"
Name 141 "uv2" Name 138 "uv2"
Name 165 "n1" Name 162 "n1"
Name 177 "n2" Name 174 "n2"
Name 200 "pos1" Name 197 "pos1"
Name 212 "pos2" Name 209 "pos2"
Name 224 "pos" Name 221 "pos"
Name 243 "displacementMapTexture" Name 241 "displacementMapTexture"
Name 254 "displacementMapSampler" Name 253 "displacementMapSampler"
Name 275 "UBO" Name 274 "UBO"
MemberName 275(UBO) 0 "projection" MemberName 274(UBO) 0 "projection"
MemberName 275(UBO) 1 "modelview" MemberName 274(UBO) 1 "modelview"
MemberName 275(UBO) 2 "lightPos" MemberName 274(UBO) 2 "lightPos"
MemberName 275(UBO) 3 "frustumPlanes" MemberName 274(UBO) 3 "frustumPlanes"
MemberName 275(UBO) 4 "displacementFactor" MemberName 274(UBO) 4 "displacementFactor"
MemberName 275(UBO) 5 "tessellationFactor" MemberName 274(UBO) 5 "tessellationFactor"
MemberName 275(UBO) 6 "viewportDim" MemberName 274(UBO) 6 "viewportDim"
MemberName 275(UBO) 7 "tessellatedEdgeSize" MemberName 274(UBO) 7 "tessellatedEdgeSize"
Name 298 "ubo" Name 297 "ubo"
MemberName 298(ubo) 0 "ubo" MemberName 297(ubo) 0 "ubo"
Name 304 "" Name 303 ""
Name 366 "input" Name 366 "input"
Name 368 "input.TessLevelOuter" Name 368 "input.TessLevelOuter"
Name 383 "input.TessLevelInner" Name 383 "input.TessLevelInner"
@ -121,27 +121,27 @@ spv.debuginfo.hlsl.tese
Name 468 "@entryPointOutput.LightVec" Name 468 "@entryPointOutput.LightVec"
Name 471 "@entryPointOutput.EyePos" Name 471 "@entryPointOutput.EyePos"
Name 474 "@entryPointOutput.WorldPos" Name 474 "@entryPointOutput.WorldPos"
Decorate 243(displacementMapTexture) DescriptorSet 0 Decorate 241(displacementMapTexture) DescriptorSet 0
Decorate 243(displacementMapTexture) Binding 1 Decorate 241(displacementMapTexture) Binding 1
Decorate 254(displacementMapSampler) DescriptorSet 0 Decorate 253(displacementMapSampler) DescriptorSet 0
Decorate 254(displacementMapSampler) Binding 1 Decorate 253(displacementMapSampler) Binding 1
Decorate 273 ArrayStride 16 Decorate 272 ArrayStride 16
MemberDecorate 275(UBO) 0 RowMajor MemberDecorate 274(UBO) 0 RowMajor
MemberDecorate 275(UBO) 0 Offset 0 MemberDecorate 274(UBO) 0 Offset 0
MemberDecorate 275(UBO) 0 MatrixStride 16 MemberDecorate 274(UBO) 0 MatrixStride 16
MemberDecorate 275(UBO) 1 RowMajor MemberDecorate 274(UBO) 1 RowMajor
MemberDecorate 275(UBO) 1 Offset 64 MemberDecorate 274(UBO) 1 Offset 64
MemberDecorate 275(UBO) 1 MatrixStride 16 MemberDecorate 274(UBO) 1 MatrixStride 16
MemberDecorate 275(UBO) 2 Offset 128 MemberDecorate 274(UBO) 2 Offset 128
MemberDecorate 275(UBO) 3 Offset 144 MemberDecorate 274(UBO) 3 Offset 144
MemberDecorate 275(UBO) 4 Offset 240 MemberDecorate 274(UBO) 4 Offset 240
MemberDecorate 275(UBO) 5 Offset 244 MemberDecorate 274(UBO) 5 Offset 244
MemberDecorate 275(UBO) 6 Offset 248 MemberDecorate 274(UBO) 6 Offset 248
MemberDecorate 275(UBO) 7 Offset 256 MemberDecorate 274(UBO) 7 Offset 256
MemberDecorate 298(ubo) 0 Offset 0 MemberDecorate 297(ubo) 0 Offset 0
Decorate 298(ubo) Block Decorate 297(ubo) Block
Decorate 304 DescriptorSet 0 Decorate 303 DescriptorSet 0
Decorate 304 Binding 0 Decorate 303 Binding 0
Decorate 368(input.TessLevelOuter) Patch Decorate 368(input.TessLevelOuter) Patch
Decorate 368(input.TessLevelOuter) BuiltIn TessLevelOuter Decorate 368(input.TessLevelOuter) BuiltIn TessLevelOuter
Decorate 383(input.TessLevelInner) Patch Decorate 383(input.TessLevelInner) Patch
@ -165,170 +165,170 @@ spv.debuginfo.hlsl.tese
14: 11(int) Constant 32 14: 11(int) Constant 32
15: 11(int) Constant 6 15: 11(int) Constant 6
16: 11(int) Constant 0 16: 11(int) Constant 0
13: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 12 14 15 16 13: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 12 14 15 16
17: 11(int) Constant 3 17: 11(int) Constant 3
10: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 14 17 16 10: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 14 17 16
18: 11(int) Constant 4 18: 11(int) Constant 4
19: TypeArray 8(float) 18 19: TypeArray 8(float) 18
20: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 10 18 20: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 10 18
21: 11(int) Constant 2 21: 11(int) Constant 2
22: TypeArray 8(float) 21 22: TypeArray 8(float) 21
23: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 10 21 23: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 10 21
24(ConstantsHSOutput): TypeStruct 19 22 24(ConstantsHSOutput): TypeStruct 19 22
27: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 28 27: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 2 28
29: 11(int) Constant 51 29: 11(int) Constant 51
30: 11(int) Constant 25 30: 11(int) Constant 25
25: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 26 20 27 29 30 16 16 17 25: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 26 20 27 29 30 16 16 17
33: 11(int) Constant 52 33: 11(int) Constant 52
31: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 32 23 27 33 30 16 16 17 31: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 32 23 27 33 30 16 16 17
36: 11(int) Constant 1 36: 11(int) Constant 1
38: 11(int) Constant 5 38: 11(int) Constant 5
37: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 36 18 27 38 37: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 36 18 27 38
34: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 35 36 27 16 16 37 35 16 17 25 31 34: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 35 36 27 16 16 37 35 16 17 25 31
39: TypePointer Function 24(ConstantsHSOutput) 39: TypePointer Function 24(ConstantsHSOutput)
40: 11(int) Constant 7 40: 11(int) Constant 7
41: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 34 40 16 41: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 34 40 16
42: TypeVector 8(float) 2 42: TypeVector 8(float) 2
43: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 21 43: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 21
44: TypePointer Function 42(fvec2) 44: TypePointer Function 42(fvec2)
45: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 43 40 16 45: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 43 40 16
46: TypeVector 8(float) 4 46: TypeVector 8(float) 4
47: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 18 47: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 18
48: TypeVector 8(float) 3 48: TypeVector 8(float) 3
49: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 17 49: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 17
50(HSOutput): TypeStruct 46(fvec4) 48(fvec3) 42(fvec2) 50(HSOutput): TypeStruct 46(fvec4) 48(fvec3) 42(fvec2)
53: 11(int) Constant 44 53: 11(int) Constant 44
51: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 52 47 27 53 14 16 16 17 51: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 52 47 27 53 14 16 16 17
56: 11(int) Constant 45 56: 11(int) Constant 45
57: 11(int) Constant 35 57: 11(int) Constant 35
54: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 55 49 27 56 57 16 16 17 54: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 55 49 27 56 57 16 16 17
60: 11(int) Constant 46 60: 11(int) Constant 46
61: 11(int) Constant 31 61: 11(int) Constant 31
58: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 59 43 27 60 61 16 16 17 58: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 59 43 27 60 61 16 16 17
62: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 63 36 27 16 16 37 63 16 17 51 54 58 62: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 63 36 27 16 16 37 63 16 17 51 54 58
64: TypeArray 50(HSOutput) 18 64: TypeArray 50(HSOutput) 18
65: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 62 18 65: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 62 18
66(DSOutput): TypeStruct 46(fvec4) 48(fvec3) 42(fvec2) 48(fvec3) 48(fvec3) 48(fvec3) 48(fvec3) 66(DSOutput): TypeStruct 46(fvec4) 48(fvec3) 42(fvec2) 48(fvec3) 48(fvec3) 48(fvec3) 48(fvec3)
68: 11(int) Constant 57 68: 11(int) Constant 57
69: 11(int) Constant 13 69: 11(int) Constant 13
67: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 52 47 27 68 69 16 16 17 67: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 52 47 27 68 69 16 16 17
72: 11(int) Constant 63 72: 11(int) Constant 63
73: 11(int) Constant 37 73: 11(int) Constant 37
70: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 49 27 72 73 16 16 17 70: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 49 27 72 73 16 16 17
75: 11(int) Constant 59 75: 11(int) Constant 59
74: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 59 43 27 75 61 16 16 17 74: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 59 43 27 75 61 16 16 17
76: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 49 27 72 73 16 16 17 76: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 49 27 72 73 16 16 17
77: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 49 27 72 73 16 16 17 77: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 49 27 72 73 16 16 17
78: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 49 27 72 73 16 16 17 78: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 49 27 72 73 16 16 17
79: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 49 27 72 73 16 16 17 79: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 49 27 72 73 16 16 17
80: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 81 36 27 16 16 37 81 16 17 67 70 74 76 77 78 79 80: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 81 36 27 16 16 37 81 16 17 67 70 74 76 77 78 79
82: TypeFunction 66(DSOutput) 39(ptr) 44(ptr) 64 82: TypeFunction 66(DSOutput) 39(ptr) 44(ptr) 64
83: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 80 34 43 62 83: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 80 34 43 62
91: 11(int) Constant 68 91: 11(int) Constant 68
90: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 89 83 27 91 16 37 89 17 91 90: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 89 83 27 91 16 37 89 17 91
94: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 95 34 27 91 16 90 18 36 92: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 93 34 27 91 16 90 18 36
97: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression) 95: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
98: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 99 43 27 91 16 90 18 21 98: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 99 43 27 91 16 90 18 21
101: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 102 62 27 91 16 90 18 17 101: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 102 62 27 91 16 90 18 17
107: 11(int) Constant 70 105: TypePointer Function 66(DSOutput)
108: TypePointer Function 66(DSOutput) 106: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 80 40 16
109: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 80 40 16 110: 11(int) Constant 70
111: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 112 80 27 107 16 90 18 108: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 109 80 27 110 16 90 18
114: 8(float) Constant 0 113: 8(float) Constant 0
115: 46(fvec4) ConstantComposite 114 114 114 114 114: 46(fvec4) ConstantComposite 113 113 113 113
116: 48(fvec3) ConstantComposite 114 114 114 115: 48(fvec3) ConstantComposite 113 113 113
117: 42(fvec2) ConstantComposite 114 114 116: 42(fvec2) ConstantComposite 113 113
118:66(DSOutput) ConstantComposite 115 116 117 116 116 116 116 117:66(DSOutput) ConstantComposite 114 115 116 115 115 115 115
120: 11(int) Constant 71 121: 11(int) Constant 71
122: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 123 43 27 120 16 90 18 119: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 120 43 27 121 16 90 18
125: TypeInt 32 1 124: TypeInt 32 1
127: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 126 14 18 16 126: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 125 14 18 16
128: 125(int) Constant 0 127: 124(int) Constant 0
129: 125(int) Constant 2 128: 124(int) Constant 2
131: 125(int) Constant 1 130: 124(int) Constant 1
133: TypePointer Function 8(float) 132: TypePointer Function 8(float)
134: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 10 40 16 133: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 10 40 16
140: 11(int) Constant 72 141: 11(int) Constant 72
142: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 143 43 27 140 16 90 18 139: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 140 43 27 141 16 90 18
145: 125(int) Constant 3 144: 124(int) Constant 3
153: 11(int) Constant 73 153: 11(int) Constant 73
162: 11(int) Constant 75 160: TypePointer Function 48(fvec3)
163: TypePointer Function 48(fvec3) 161: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 49 40 16
164: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 49 40 16 165: 11(int) Constant 75
166: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 167 49 27 162 16 90 18 163: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 164 49 27 165 16 90 18
176: 11(int) Constant 76 177: 11(int) Constant 76
178: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 179 49 27 176 16 90 18 175: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 176 49 27 177 16 90 18
188: 11(int) Constant 77 188: 11(int) Constant 77
197: 11(int) Constant 80 195: TypePointer Function 46(fvec4)
198: TypePointer Function 46(fvec4) 196: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 47 40 16
199: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 47 40 16 200: 11(int) Constant 80
201: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 202 47 27 197 16 90 18 198: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 199 47 27 200 16 90 18
211: 11(int) Constant 81 212: 11(int) Constant 81
213: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 214 47 27 211 16 90 18 210: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 211 47 27 212 16 90 18
223: 11(int) Constant 82 224: 11(int) Constant 82
225: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 226 47 27 223 16 90 18 222: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 223 47 27 224 16 90 18
235: 11(int) Constant 84 233: TypeImage 8(float) 2D sampled format:Unknown
236: TypeImage 8(float) 2D sampled format:Unknown 236: 11(int) Constant 84
240: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone) 238: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
237: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 238 16 27 235 16 37 239 240 17 234: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 235 16 27 236 16 37 237 238 17
241: TypePointer UniformConstant 236 239: TypePointer UniformConstant 233
242: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 237 16 16 240: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 234 16 16
243(displacementMapTexture): 241(ptr) Variable UniformConstant 241(displacementMapTexture): 239(ptr) Variable UniformConstant
246: 11(int) Constant 8 244: 11(int) Constant 8
244: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 245 237 27 235 16 37 245 243(displacementMapTexture) 246 242: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 243 234 27 236 16 37 243 241(displacementMapTexture) 244
248: TypeSampler 247: TypeSampler
249: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 250 36 27 235 16 37 251 240 17 248: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 249 36 27 236 16 37 250 238 17
252: TypePointer UniformConstant 248 251: TypePointer UniformConstant 247
253: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 249 16 16 252: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 248 16 16
254(displacementMapSampler): 252(ptr) Variable UniformConstant 253(displacementMapSampler): 251(ptr) Variable UniformConstant
255: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 256 249 27 235 16 37 256 254(displacementMapSampler) 246 254: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 255 248 27 236 16 37 255 253(displacementMapSampler) 244
258: TypeSampledImage 236 257: TypeSampledImage 233
259: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 260 16 27 235 16 37 261 240 17 258: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 259 16 27 236 16 37 260 238 17
267: TypeMatrix 46(fvec4) 4 266: TypeMatrix 46(fvec4) 4
269: TypeBool 268: TypeBool
271: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 270 14 21 16 270: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 269 14 21 16
272: 269(bool) ConstantTrue 271: 268(bool) ConstantTrue
268: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 47 18 272 267: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 47 18 271
273: TypeArray 46(fvec4) 15 272: TypeArray 46(fvec4) 15
274: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 47 15 273: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 47 15
275(UBO): TypeStruct 267 267 46(fvec4) 273 8(float) 8(float) 42(fvec2) 8(float) 274(UBO): TypeStruct 266 266 46(fvec4) 272 8(float) 8(float) 42(fvec2) 8(float)
278: 11(int) Constant 29 277: 11(int) Constant 29
279: 11(int) Constant 20 278: 11(int) Constant 20
276: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 277 268 27 278 279 16 16 17 275: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 276 267 27 277 278 16 16 17
280: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 277 268 27 278 279 16 16 17 279: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 276 267 27 277 278 16 16 17
283: 11(int) Constant 30 282: 11(int) Constant 30
284: 11(int) Constant 17 283: 11(int) Constant 17
281: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 282 47 27 283 284 16 16 17 280: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 281 47 27 282 283 16 16 17
287: 11(int) Constant 22 286: 11(int) Constant 22
285: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 286 274 27 61 287 16 16 17 284: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 285 273 27 61 286 16 16 17
290: 11(int) Constant 27 289: 11(int) Constant 27
288: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 289 10 27 57 290 16 16 17 287: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 288 10 27 57 289 16 16 17
291: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 289 10 27 57 290 16 16 17 290: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 288 10 27 57 289 16 16 17
294: 11(int) Constant 34 293: 11(int) Constant 34
292: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 293 43 27 294 279 16 16 17 291: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 292 43 27 293 278 16 16 17
295: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 289 10 27 57 290 16 16 17 294: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 288 10 27 57 289 16 16 17
296: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 297 36 27 235 16 37 297 16 17 276 280 281 285 288 291 292 295 295: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 296 36 27 236 16 37 296 16 17 275 279 280 284 287 290 291 294
298(ubo): TypeStruct 275(UBO) 297(ubo): TypeStruct 274(UBO)
299: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 300 296 27 73 73 16 16 17 298: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 299 295 27 73 73 16 16 17
301: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 300 36 27 235 16 37 300 16 17 299 300: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 299 36 27 236 16 37 299 16 17 298
302: TypePointer Uniform 298(ubo) 301: TypePointer Uniform 297(ubo)
303: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 301 21 16 302: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 300 21 16
304: 302(ptr) Variable Uniform 303: 301(ptr) Variable Uniform
305: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 301 27 235 16 37 1 304 246 304: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 2 300 27 236 16 37 2 303 244
306: 125(int) Constant 4 305: 124(int) Constant 4
307: TypePointer Uniform 8(float) 306: TypePointer Uniform 8(float)
308: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 10 21 16 307: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 10 21 16
317: 11(int) Constant 86 317: 11(int) Constant 86
319: TypePointer Uniform 267 318: TypePointer Uniform 266
320: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 268 21 16 319: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 267 21 16
329: 11(int) Constant 89 329: 11(int) Constant 89
335: 11(int) Constant 90 333: TypePointer Uniform 46(fvec4)
336: TypePointer Uniform 46(fvec4) 334: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 47 21 16
337: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 47 21 16 337: 11(int) Constant 90
347: 11(int) Constant 91 345: 124(int) Constant 6
348: 125(int) Constant 6 348: 11(int) Constant 91
353: 11(int) Constant 92 351: 124(int) Constant 5
354: 125(int) Constant 5 354: 11(int) Constant 92
362: 11(int) Constant 93 362: 11(int) Constant 93
367: TypePointer Input 19 367: TypePointer Input 19
368(input.TessLevelOuter): 367(ptr) Variable Input 368(input.TessLevelOuter): 367(ptr) Variable Input
@ -359,92 +359,90 @@ spv.debuginfo.hlsl.tese
468(@entryPointOutput.LightVec): 457(ptr) Variable Output 468(@entryPointOutput.LightVec): 457(ptr) Variable Output
471(@entryPointOutput.EyePos): 457(ptr) Variable Output 471(@entryPointOutput.EyePos): 457(ptr) Variable Output
474(@entryPointOutput.WorldPos): 457(ptr) Variable Output 474(@entryPointOutput.WorldPos): 457(ptr) Variable Output
Line 1 68 1
6(main): 4 Function None 5 6(main): 4 Function None 5
7: Label 7: Label
366(input): 39(ptr) Variable Function 366(input): 39(ptr) Variable Function
390(TessCoord): 44(ptr) Variable Function 390(TessCoord): 44(ptr) Variable Function
398(patch): 397(ptr) Variable Function 398(patch): 397(ptr) Variable Function
446(flattenTemp): 108(ptr) Variable Function 446(flattenTemp): 105(ptr) Variable Function
448(param): 39(ptr) Variable Function 448(param): 39(ptr) Variable Function
450(param): 44(ptr) Variable Function 450(param): 44(ptr) Variable Function
Line 1 68 0 370: 369(ptr) AccessChain 368(input.TessLevelOuter) 127
370: 369(ptr) AccessChain 368(input.TessLevelOuter) 128
371: 8(float) Load 370 371: 8(float) Load 370
372: 133(ptr) AccessChain 366(input) 128 128 372: 132(ptr) AccessChain 366(input) 127 127
Store 372 371 Store 372 371
373: 369(ptr) AccessChain 368(input.TessLevelOuter) 131 373: 369(ptr) AccessChain 368(input.TessLevelOuter) 130
374: 8(float) Load 373 374: 8(float) Load 373
375: 133(ptr) AccessChain 366(input) 128 131 375: 132(ptr) AccessChain 366(input) 127 130
Store 375 374 Store 375 374
376: 369(ptr) AccessChain 368(input.TessLevelOuter) 129 376: 369(ptr) AccessChain 368(input.TessLevelOuter) 128
377: 8(float) Load 376 377: 8(float) Load 376
378: 133(ptr) AccessChain 366(input) 128 129 378: 132(ptr) AccessChain 366(input) 127 128
Store 378 377 Store 378 377
379: 369(ptr) AccessChain 368(input.TessLevelOuter) 145 379: 369(ptr) AccessChain 368(input.TessLevelOuter) 144
380: 8(float) Load 379 380: 8(float) Load 379
381: 133(ptr) AccessChain 366(input) 128 145 381: 132(ptr) AccessChain 366(input) 127 144
Store 381 380 Store 381 380
384: 369(ptr) AccessChain 383(input.TessLevelInner) 128 384: 369(ptr) AccessChain 383(input.TessLevelInner) 127
385: 8(float) Load 384 385: 8(float) Load 384
386: 133(ptr) AccessChain 366(input) 131 128 386: 132(ptr) AccessChain 366(input) 130 127
Store 386 385 Store 386 385
387: 369(ptr) AccessChain 383(input.TessLevelInner) 131 387: 369(ptr) AccessChain 383(input.TessLevelInner) 130
388: 8(float) Load 387 388: 8(float) Load 387
389: 133(ptr) AccessChain 366(input) 131 131 389: 132(ptr) AccessChain 366(input) 130 130
Store 389 388 Store 389 388
393: 48(fvec3) Load 392(TessCoord) 393: 48(fvec3) Load 392(TessCoord)
394: 8(float) CompositeExtract 393 0 394: 8(float) CompositeExtract 393 0
395: 8(float) CompositeExtract 393 1 395: 8(float) CompositeExtract 393 1
396: 42(fvec2) CompositeConstruct 394 395 396: 42(fvec2) CompositeConstruct 394 395
Store 390(TessCoord) 396 Store 390(TessCoord) 396
403: 402(ptr) AccessChain 401(patch.Pos) 128 403: 402(ptr) AccessChain 401(patch.Pos) 127
404: 46(fvec4) Load 403 404: 46(fvec4) Load 403
405: 198(ptr) AccessChain 398(patch) 128 128 405: 195(ptr) AccessChain 398(patch) 127 127
Store 405 404 Store 405 404
409: 391(ptr) AccessChain 408(patch.Normal) 128 409: 391(ptr) AccessChain 408(patch.Normal) 127
410: 48(fvec3) Load 409 410: 48(fvec3) Load 409
411: 163(ptr) AccessChain 398(patch) 128 131 411: 160(ptr) AccessChain 398(patch) 127 130
Store 411 410 Store 411 410
416: 415(ptr) AccessChain 414(patch.UV) 128 416: 415(ptr) AccessChain 414(patch.UV) 127
417: 42(fvec2) Load 416 417: 42(fvec2) Load 416
418: 44(ptr) AccessChain 398(patch) 128 129 418: 44(ptr) AccessChain 398(patch) 127 128
Store 418 417 Store 418 417
419: 402(ptr) AccessChain 401(patch.Pos) 131 419: 402(ptr) AccessChain 401(patch.Pos) 130
420: 46(fvec4) Load 419 420: 46(fvec4) Load 419
421: 198(ptr) AccessChain 398(patch) 131 128 421: 195(ptr) AccessChain 398(patch) 130 127
Store 421 420 Store 421 420
422: 391(ptr) AccessChain 408(patch.Normal) 131 422: 391(ptr) AccessChain 408(patch.Normal) 130
423: 48(fvec3) Load 422 423: 48(fvec3) Load 422
424: 163(ptr) AccessChain 398(patch) 131 131 424: 160(ptr) AccessChain 398(patch) 130 130
Store 424 423 Store 424 423
425: 415(ptr) AccessChain 414(patch.UV) 131 425: 415(ptr) AccessChain 414(patch.UV) 130
426: 42(fvec2) Load 425 426: 42(fvec2) Load 425
427: 44(ptr) AccessChain 398(patch) 131 129 427: 44(ptr) AccessChain 398(patch) 130 128
Store 427 426 Store 427 426
428: 402(ptr) AccessChain 401(patch.Pos) 129 428: 402(ptr) AccessChain 401(patch.Pos) 128
429: 46(fvec4) Load 428 429: 46(fvec4) Load 428
430: 198(ptr) AccessChain 398(patch) 129 128 430: 195(ptr) AccessChain 398(patch) 128 127
Store 430 429 Store 430 429
431: 391(ptr) AccessChain 408(patch.Normal) 129 431: 391(ptr) AccessChain 408(patch.Normal) 128
432: 48(fvec3) Load 431 432: 48(fvec3) Load 431
433: 163(ptr) AccessChain 398(patch) 129 131 433: 160(ptr) AccessChain 398(patch) 128 130
Store 433 432 Store 433 432
434: 415(ptr) AccessChain 414(patch.UV) 129 434: 415(ptr) AccessChain 414(patch.UV) 128
435: 42(fvec2) Load 434 435: 42(fvec2) Load 434
436: 44(ptr) AccessChain 398(patch) 129 129 436: 44(ptr) AccessChain 398(patch) 128 128
Store 436 435 Store 436 435
437: 402(ptr) AccessChain 401(patch.Pos) 145 437: 402(ptr) AccessChain 401(patch.Pos) 144
438: 46(fvec4) Load 437 438: 46(fvec4) Load 437
439: 198(ptr) AccessChain 398(patch) 145 128 439: 195(ptr) AccessChain 398(patch) 144 127
Store 439 438 Store 439 438
440: 391(ptr) AccessChain 408(patch.Normal) 145 440: 391(ptr) AccessChain 408(patch.Normal) 144
441: 48(fvec3) Load 440 441: 48(fvec3) Load 440
442: 163(ptr) AccessChain 398(patch) 145 131 442: 160(ptr) AccessChain 398(patch) 144 130
Store 442 441 Store 442 441
443: 415(ptr) AccessChain 414(patch.UV) 145 443: 415(ptr) AccessChain 414(patch.UV) 144
444: 42(fvec2) Load 443 444: 42(fvec2) Load 443
445: 44(ptr) AccessChain 398(patch) 145 129 445: 44(ptr) AccessChain 398(patch) 144 128
Store 445 444 Store 445 444
447: 64 Load 398(patch) 447: 64 Load 398(patch)
449:24(ConstantsHSOutput) Load 366(input) 449:24(ConstantsHSOutput) Load 366(input)
@ -453,190 +451,188 @@ spv.debuginfo.hlsl.tese
Store 450(param) 451 Store 450(param) 451
452:66(DSOutput) FunctionCall 87(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];) 448(param) 450(param) 447 452:66(DSOutput) FunctionCall 87(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];) 448(param) 450(param) 447
Store 446(flattenTemp) 452 Store 446(flattenTemp) 452
455: 198(ptr) AccessChain 446(flattenTemp) 128 455: 195(ptr) AccessChain 446(flattenTemp) 127
456: 46(fvec4) Load 455 456: 46(fvec4) Load 455
Store 454(@entryPointOutput.Pos) 456 Store 454(@entryPointOutput.Pos) 456
459: 163(ptr) AccessChain 446(flattenTemp) 131 459: 160(ptr) AccessChain 446(flattenTemp) 130
460: 48(fvec3) Load 459 460: 48(fvec3) Load 459
Store 458(@entryPointOutput.Normal) 460 Store 458(@entryPointOutput.Normal) 460
463: 44(ptr) AccessChain 446(flattenTemp) 129 463: 44(ptr) AccessChain 446(flattenTemp) 128
464: 42(fvec2) Load 463 464: 42(fvec2) Load 463
Store 462(@entryPointOutput.UV) 464 Store 462(@entryPointOutput.UV) 464
466: 163(ptr) AccessChain 446(flattenTemp) 145 466: 160(ptr) AccessChain 446(flattenTemp) 144
467: 48(fvec3) Load 466 467: 48(fvec3) Load 466
Store 465(@entryPointOutput.ViewVec) 467 Store 465(@entryPointOutput.ViewVec) 467
469: 163(ptr) AccessChain 446(flattenTemp) 306 469: 160(ptr) AccessChain 446(flattenTemp) 305
470: 48(fvec3) Load 469 470: 48(fvec3) Load 469
Store 468(@entryPointOutput.LightVec) 470 Store 468(@entryPointOutput.LightVec) 470
472: 163(ptr) AccessChain 446(flattenTemp) 354 472: 160(ptr) AccessChain 446(flattenTemp) 351
473: 48(fvec3) Load 472 473: 48(fvec3) Load 472
Store 471(@entryPointOutput.EyePos) 473 Store 471(@entryPointOutput.EyePos) 473
475: 163(ptr) AccessChain 446(flattenTemp) 348 475: 160(ptr) AccessChain 446(flattenTemp) 345
476: 48(fvec3) Load 475 476: 48(fvec3) Load 475
Store 474(@entryPointOutput.WorldPos) 476 Store 474(@entryPointOutput.WorldPos) 476
Return Return
FunctionEnd FunctionEnd
Line 1 68 1
87(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];):66(DSOutput) Function None 82 87(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];):66(DSOutput) Function None 82
84(input): 39(ptr) FunctionParameter 84(input): 39(ptr) FunctionParameter
85(TessCoord): 44(ptr) FunctionParameter 85(TessCoord): 44(ptr) FunctionParameter
86(patch): 64 FunctionParameter 86(patch): 64 FunctionParameter
88: Label 88: Label
110(output): 108(ptr) Variable Function 107(output): 105(ptr) Variable Function
121(uv1): 44(ptr) Variable Function 118(uv1): 44(ptr) Variable Function
141(uv2): 44(ptr) Variable Function 138(uv2): 44(ptr) Variable Function
165(n1): 163(ptr) Variable Function 162(n1): 160(ptr) Variable Function
177(n2): 163(ptr) Variable Function 174(n2): 160(ptr) Variable Function
200(pos1): 198(ptr) Variable Function 197(pos1): 195(ptr) Variable Function
212(pos2): 198(ptr) Variable Function 209(pos2): 195(ptr) Variable Function
224(pos): 198(ptr) Variable Function 221(pos): 195(ptr) Variable Function
92: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 90 96: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 90
93: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 91 91 16 16 97: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 91 91 16 16
96: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 94 84(input) 97 94: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 92 84(input) 95
100: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 98 85(TessCoord) 97 100: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 98 85(TessCoord) 95
103: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 101 86(patch) 97 103: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 101 86(patch) 95
104: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 90 87(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];) 104: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 90 87(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];)
105: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 90 112: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 110 110 16 16
106: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 107 107 16 16 111: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 108 107(output) 95
113: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 111 110(output) 97 Store 107(output) 117
Store 110(output) 118 123: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 121 121 16 16
119: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 120 120 16 16 122: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 119 118(uv1) 95
124: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 122 121(uv1) 97 129: 42(fvec2) CompositeExtract 86(patch) 0 2
130: 42(fvec2) CompositeExtract 86(patch) 0 2 131: 42(fvec2) CompositeExtract 86(patch) 1 2
132: 42(fvec2) CompositeExtract 86(patch) 1 2 134: 132(ptr) AccessChain 85(TessCoord) 16
135: 133(ptr) AccessChain 85(TessCoord) 16 135: 8(float) Load 134
136: 8(float) Load 135 136: 42(fvec2) CompositeConstruct 135 135
137: 42(fvec2) CompositeConstruct 136 136 137: 42(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 129 131 136
138: 42(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 130 132 137 Store 118(uv1) 137
Store 121(uv1) 138 143: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 141 141 16 16
139: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 140 140 16 16 142: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 139 138(uv2) 95
144: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 142 141(uv2) 97 145: 42(fvec2) CompositeExtract 86(patch) 3 2
146: 42(fvec2) CompositeExtract 86(patch) 3 2 146: 42(fvec2) CompositeExtract 86(patch) 2 2
147: 42(fvec2) CompositeExtract 86(patch) 2 2 147: 132(ptr) AccessChain 85(TessCoord) 16
148: 133(ptr) AccessChain 85(TessCoord) 16 148: 8(float) Load 147
149: 8(float) Load 148 149: 42(fvec2) CompositeConstruct 148 148
150: 42(fvec2) CompositeConstruct 149 149 150: 42(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 145 146 149
151: 42(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 146 147 150 Store 138(uv2) 150
Store 141(uv2) 151 152: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 153 153 16 16
152: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 153 153 16 16 151: 42(fvec2) Load 118(uv1)
154: 42(fvec2) Load 121(uv1) 154: 42(fvec2) Load 138(uv2)
155: 42(fvec2) Load 141(uv2) 155: 132(ptr) AccessChain 85(TessCoord) 36
156: 133(ptr) AccessChain 85(TessCoord) 36 156: 8(float) Load 155
157: 8(float) Load 156 157: 42(fvec2) CompositeConstruct 156 156
158: 42(fvec2) CompositeConstruct 157 157 158: 42(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 151 154 157
159: 42(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 154 155 158 159: 44(ptr) AccessChain 107(output) 128
160: 44(ptr) AccessChain 110(output) 129 Store 159 158
Store 160 159 167: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 165 165 16 16
161: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 162 162 16 16 166: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 163 162(n1) 95
168: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 166 165(n1) 97 168: 48(fvec3) CompositeExtract 86(patch) 0 1
169: 48(fvec3) CompositeExtract 86(patch) 0 1 169: 48(fvec3) CompositeExtract 86(patch) 1 1
170: 48(fvec3) CompositeExtract 86(patch) 1 1 170: 132(ptr) AccessChain 85(TessCoord) 16
171: 133(ptr) AccessChain 85(TessCoord) 16 171: 8(float) Load 170
172: 8(float) Load 171 172: 48(fvec3) CompositeConstruct 171 171 171
173: 48(fvec3) CompositeConstruct 172 172 172 173: 48(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 168 169 172
174: 48(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 169 170 173 Store 162(n1) 173
Store 165(n1) 174 179: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 177 177 16 16
175: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 176 176 16 16 178: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 175 174(n2) 95
180: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 178 177(n2) 97 180: 48(fvec3) CompositeExtract 86(patch) 3 1
181: 48(fvec3) CompositeExtract 86(patch) 3 1 181: 48(fvec3) CompositeExtract 86(patch) 2 1
182: 48(fvec3) CompositeExtract 86(patch) 2 1 182: 132(ptr) AccessChain 85(TessCoord) 16
183: 133(ptr) AccessChain 85(TessCoord) 16 183: 8(float) Load 182
184: 8(float) Load 183 184: 48(fvec3) CompositeConstruct 183 183 183
185: 48(fvec3) CompositeConstruct 184 184 184 185: 48(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 180 181 184
186: 48(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 181 182 185 Store 174(n2) 185
Store 177(n2) 186 187: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 188 188 16 16
187: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 188 188 16 16 186: 48(fvec3) Load 162(n1)
189: 48(fvec3) Load 165(n1) 189: 48(fvec3) Load 174(n2)
190: 48(fvec3) Load 177(n2) 190: 132(ptr) AccessChain 85(TessCoord) 36
191: 133(ptr) AccessChain 85(TessCoord) 36 191: 8(float) Load 190
192: 8(float) Load 191 192: 48(fvec3) CompositeConstruct 191 191 191
193: 48(fvec3) CompositeConstruct 192 192 192 193: 48(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 186 189 192
194: 48(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 189 190 193 194: 160(ptr) AccessChain 107(output) 130
195: 163(ptr) AccessChain 110(output) 131 Store 194 193
Store 195 194 202: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 200 200 16 16
196: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 197 197 16 16 201: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 198 197(pos1) 95
203: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 201 200(pos1) 97 203: 46(fvec4) CompositeExtract 86(patch) 0 0
204: 46(fvec4) CompositeExtract 86(patch) 0 0 204: 46(fvec4) CompositeExtract 86(patch) 1 0
205: 46(fvec4) CompositeExtract 86(patch) 1 0 205: 132(ptr) AccessChain 85(TessCoord) 16
206: 133(ptr) AccessChain 85(TessCoord) 16 206: 8(float) Load 205
207: 8(float) Load 206 207: 46(fvec4) CompositeConstruct 206 206 206 206
208: 46(fvec4) CompositeConstruct 207 207 207 207 208: 46(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 203 204 207
209: 46(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 204 205 208 Store 197(pos1) 208
Store 200(pos1) 209 214: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 212 212 16 16
210: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 211 211 16 16 213: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 210 209(pos2) 95
215: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 213 212(pos2) 97 215: 46(fvec4) CompositeExtract 86(patch) 3 0
216: 46(fvec4) CompositeExtract 86(patch) 3 0 216: 46(fvec4) CompositeExtract 86(patch) 2 0
217: 46(fvec4) CompositeExtract 86(patch) 2 0 217: 132(ptr) AccessChain 85(TessCoord) 16
218: 133(ptr) AccessChain 85(TessCoord) 16 218: 8(float) Load 217
219: 8(float) Load 218 219: 46(fvec4) CompositeConstruct 218 218 218 218
220: 46(fvec4) CompositeConstruct 219 219 219 219 220: 46(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 215 216 219
221: 46(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 216 217 220 Store 209(pos2) 220
Store 212(pos2) 221 226: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 224 224 16 16
222: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 223 223 16 16 225: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 222 221(pos) 95
227: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 225 224(pos) 97 227: 46(fvec4) Load 197(pos1)
228: 46(fvec4) Load 200(pos1) 228: 46(fvec4) Load 209(pos2)
229: 46(fvec4) Load 212(pos2) 229: 132(ptr) AccessChain 85(TessCoord) 36
230: 133(ptr) AccessChain 85(TessCoord) 36 230: 8(float) Load 229
231: 8(float) Load 230 231: 46(fvec4) CompositeConstruct 230 230 230 230
232: 46(fvec4) CompositeConstruct 231 231 231 231 232: 46(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 227 228 231
233: 46(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 228 229 232 Store 221(pos) 232
Store 224(pos) 233 246: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 236 236 16 16
234: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 235 235 16 16 245: 233 Load 241(displacementMapTexture)
247: 236 Load 243(displacementMapTexture) 256: 247 Load 253(displacementMapSampler)
257: 248 Load 254(displacementMapSampler) 261: 257 SampledImage 245 256
262: 258 SampledImage 247 257 262: 44(ptr) AccessChain 107(output) 128
263: 44(ptr) AccessChain 110(output) 129 263: 42(fvec2) Load 262
264: 42(fvec2) Load 263 264: 46(fvec4) ImageSampleExplicitLod 261 263 Lod 113
265: 46(fvec4) ImageSampleExplicitLod 262 264 Lod 114 265: 8(float) CompositeExtract 264 0
266: 8(float) CompositeExtract 265 0 308: 306(ptr) AccessChain 303 127 305
309: 307(ptr) AccessChain 304 128 306 309: 8(float) Load 308
310: 8(float) Load 309 310: 8(float) FMul 265 309
311: 8(float) FMul 266 310 311: 132(ptr) AccessChain 221(pos) 36
312: 133(ptr) AccessChain 224(pos) 36 312: 8(float) Load 311
313: 8(float) Load 312 313: 8(float) FSub 312 310
314: 8(float) FSub 313 311 314: 132(ptr) AccessChain 221(pos) 36
315: 133(ptr) AccessChain 224(pos) 36 Store 314 313
Store 315 314 316: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 317 317 16 16
316: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 317 317 16 16 315: 46(fvec4) Load 221(pos)
318: 46(fvec4) Load 224(pos) 320: 318(ptr) AccessChain 303 127 130
321: 319(ptr) AccessChain 304 128 131 321: 266 Load 320
322: 267 Load 321 322: 46(fvec4) VectorTimesMatrix 315 321
323: 46(fvec4) VectorTimesMatrix 318 322 323: 318(ptr) AccessChain 303 127 127
324: 319(ptr) AccessChain 304 128 128 324: 266 Load 323
325: 267 Load 324 325: 46(fvec4) VectorTimesMatrix 322 324
326: 46(fvec4) VectorTimesMatrix 323 325 326: 195(ptr) AccessChain 107(output) 127
327: 198(ptr) AccessChain 110(output) 128 Store 326 325
Store 327 326 328: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 329 329 16 16
328: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 329 329 16 16 327: 46(fvec4) Load 221(pos)
330: 46(fvec4) Load 224(pos) 330: 48(fvec3) VectorShuffle 327 327 0 1 2
331: 48(fvec3) VectorShuffle 330 330 0 1 2 331: 48(fvec3) FNegate 330
332: 48(fvec3) FNegate 331 332: 160(ptr) AccessChain 107(output) 144
333: 163(ptr) AccessChain 110(output) 145 Store 332 331
Store 333 332 336: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 337 337 16 16
334: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 335 335 16 16 335: 333(ptr) AccessChain 303 127 128
338: 336(ptr) AccessChain 304 128 129 338: 46(fvec4) Load 335
339: 46(fvec4) Load 338 339: 48(fvec3) VectorShuffle 338 338 0 1 2
340: 48(fvec3) VectorShuffle 339 339 0 1 2 340: 160(ptr) AccessChain 107(output) 144
341: 163(ptr) AccessChain 110(output) 145 341: 48(fvec3) Load 340
342: 48(fvec3) Load 341 342: 48(fvec3) FAdd 339 341
343: 48(fvec3) FAdd 340 342 343: 48(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 342
344: 48(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 343 344: 160(ptr) AccessChain 107(output) 305
345: 163(ptr) AccessChain 110(output) 306 Store 344 343
Store 345 344 347: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 348 348 16 16
346: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 347 347 16 16 346: 46(fvec4) Load 221(pos)
349: 46(fvec4) Load 224(pos) 349: 48(fvec3) VectorShuffle 346 346 0 1 2
350: 48(fvec3) VectorShuffle 349 349 0 1 2 350: 160(ptr) AccessChain 107(output) 345
351: 163(ptr) AccessChain 110(output) 348 Store 350 349
Store 351 350 353: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 354 354 16 16
352: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 353 353 16 16 352: 46(fvec4) Load 221(pos)
355: 46(fvec4) Load 224(pos) 355: 318(ptr) AccessChain 303 127 130
356: 319(ptr) AccessChain 304 128 131 356: 266 Load 355
357: 267 Load 356 357: 46(fvec4) VectorTimesMatrix 352 356
358: 46(fvec4) VectorTimesMatrix 355 357 358: 48(fvec3) VectorShuffle 357 357 0 1 2
359: 48(fvec3) VectorShuffle 358 358 0 1 2 359: 160(ptr) AccessChain 107(output) 351
360: 163(ptr) AccessChain 110(output) 354 Store 359 358
Store 360 359 361: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 362 362 16 16
361: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 362 362 16 16 360:66(DSOutput) Load 107(output)
363:66(DSOutput) Load 110(output) ReturnValue 360
ReturnValue 363
FunctionEnd FunctionEnd

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,7 @@
spv.debuginfo.scalar_types.glsl.frag spv.debuginfo.scalar_types.glsl.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 8000b // Generated by (magic number): 8000b
// Id's are bound by 158 // Id's are bound by 159
Capability Shader Capability Shader
Capability Float16 Capability Float16
@ -10,12 +10,12 @@ spv.debuginfo.scalar_types.glsl.frag
Capability Int16 Capability Int16
Capability Int8 Capability Int8
Extension "SPV_KHR_non_semantic_info" Extension "SPV_KHR_non_semantic_info"
2: ExtInstImport "NonSemantic.Shader.DebugInfo.100" 1: ExtInstImport "NonSemantic.Shader.DebugInfo.100"
3: ExtInstImport "GLSL.std.450" 3: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 14 "main" EntryPoint Fragment 14 "main"
ExecutionMode 14 OriginUpperLeft ExecutionMode 14 OriginUpperLeft
1: String "" 2: String ""
8: String "uint" 8: String "uint"
16: String "main" 16: String "main"
19: String "// OpModuleProcessed auto-map-locations 19: String "// OpModuleProcessed auto-map-locations
@ -26,183 +26,183 @@ spv.debuginfo.scalar_types.glsl.frag
// OpModuleProcessed entry-point main // OpModuleProcessed entry-point main
#line 1 #line 1
" "
30: String "bool" 29: String "bool"
36: String "VAR_bool" 35: String "VAR_bool"
42: String "int" 41: String "int"
48: String "VAR_int" 47: String "VAR_int"
56: String "VAR_uint" 55: String "VAR_uint"
60: String "float" 59: String "float"
66: String "VAR_float" 65: String "VAR_float"
71: String "double" 70: String "double"
78: String "VAR_double" 77: String "VAR_double"
83: String "int8_t" 82: String "int8_t"
89: String "VAR_int8_t" 88: String "VAR_int8_t"
94: String "uint8_t" 93: String "uint8_t"
100: String "VAR_uint8_t" 99: String "VAR_uint8_t"
105: String "int16_t" 104: String "int16_t"
112: String "VAR_int16_t" 111: String "VAR_int16_t"
117: String "uint16_t" 116: String "uint16_t"
123: String "VAR_uint16_t" 122: String "VAR_uint16_t"
128: String "int64_t" 127: String "int64_t"
134: String "VAR_int64_t" 133: String "VAR_int64_t"
139: String "uint64_t" 138: String "uint64_t"
145: String "VAR_uint64_t" 144: String "VAR_uint64_t"
150: String "float16_t" 149: String "float16_t"
156: String "VAR_float16_t" 155: String "VAR_float16_t"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types" SourceExtension "GL_EXT_shader_explicit_arithmetic_types"
Name 14 "main" Name 14 "main"
Name 34 "VAR_bool" Name 33 "VAR_bool"
Name 46 "VAR_int" Name 45 "VAR_int"
Name 54 "VAR_uint" Name 53 "VAR_uint"
Name 64 "VAR_float" Name 63 "VAR_float"
Name 76 "VAR_double" Name 75 "VAR_double"
Name 87 "VAR_int8_t" Name 86 "VAR_int8_t"
Name 98 "VAR_uint8_t" Name 97 "VAR_uint8_t"
Name 110 "VAR_int16_t" Name 109 "VAR_int16_t"
Name 121 "VAR_uint16_t" Name 120 "VAR_uint16_t"
Name 132 "VAR_int64_t" Name 131 "VAR_int64_t"
Name 143 "VAR_uint64_t" Name 142 "VAR_uint64_t"
Name 154 "VAR_float16_t" Name 153 "VAR_float16_t"
4: TypeVoid 4: TypeVoid
5: TypeFunction 4 5: TypeFunction 4
7: TypeInt 32 0 7: TypeInt 32 0
10: 7(int) Constant 32 10: 7(int) Constant 32
11: 7(int) Constant 6 11: 7(int) Constant 6
12: 7(int) Constant 0 12: 7(int) Constant 0
9: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12 9: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12
13: 7(int) Constant 3 13: 7(int) Constant 3
6: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4 6: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4
18: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 19 18: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 2 19
20: 7(int) Constant 42 20: 7(int) Constant 42
22: 7(int) Constant 1 22: 7(int) Constant 1
23: 7(int) Constant 4 23: 7(int) Constant 4
24: 7(int) Constant 2 24: 7(int) Constant 2
21: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 22 23 18 24 21: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 22 23 18 24
17: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 16 6 18 20 12 21 16 13 20 17: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 16 6 18 20 12 21 16 13 20
28: 7(int) Constant 43 28: TypeBool
29: TypeBool 30: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 29 10 24 12
31: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 30 10 24 12 31: TypePointer Private 28(bool)
32: TypePointer Private 29(bool) 32: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 11 12
33: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 11 12 33(VAR_bool): 31(ptr) Variable Private
34(VAR_bool): 32(ptr) Variable Private 36: 7(int) Constant 43
37: 7(int) Constant 8 37: 7(int) Constant 8
35: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 36 31 18 28 12 21 36 34(VAR_bool) 37 34: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 35 30 18 36 12 21 35 33(VAR_bool) 37
38: 29(bool) ConstantFalse 38: 28(bool) ConstantFalse
40: 7(int) Constant 44 40: TypeInt 32 1
41: TypeInt 32 1 42: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 41 10 23 12
43: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 42 10 23 12 43: TypePointer Private 40(int)
44: TypePointer Private 41(int) 44: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 42 11 12
45: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 43 11 12 45(VAR_int): 43(ptr) Variable Private
46(VAR_int): 44(ptr) Variable Private 48: 7(int) Constant 44
47: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 48 43 18 40 12 21 48 46(VAR_int) 37 46: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 47 42 18 48 12 21 47 45(VAR_int) 37
49: 41(int) Constant 0 49: 40(int) Constant 0
51: 7(int) Constant 45 51: TypePointer Private 7(int)
52: TypePointer Private 7(int) 52: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 9 11 12
53: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 9 11 12 53(VAR_uint): 51(ptr) Variable Private
54(VAR_uint): 52(ptr) Variable Private 56: 7(int) Constant 45
55: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 56 9 18 51 12 21 56 54(VAR_uint) 37 54: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 55 9 18 56 12 21 55 53(VAR_uint) 37
58: 7(int) Constant 46 58: TypeFloat 32
59: TypeFloat 32 60: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 59 10 13 12
61: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 60 10 13 12 61: TypePointer Private 58(float)
62: TypePointer Private 59(float) 62: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 60 11 12
63: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 61 11 12 63(VAR_float): 61(ptr) Variable Private
64(VAR_float): 62(ptr) Variable Private 66: 7(int) Constant 46
65: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 66 61 18 58 12 21 66 64(VAR_float) 37 64: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 65 60 18 66 12 21 65 63(VAR_float) 37
67: 59(float) Constant 0 67: 58(float) Constant 0
69: 7(int) Constant 47 69: TypeFloat 64
70: TypeFloat 64 72: 7(int) Constant 64
73: 7(int) Constant 64 71: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 70 72 13 12
72: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 71 73 13 12 73: TypePointer Private 69(float64_t)
74: TypePointer Private 70(float64_t) 74: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 71 11 12
75: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 72 11 12 75(VAR_double): 73(ptr) Variable Private
76(VAR_double): 74(ptr) Variable Private 78: 7(int) Constant 47
77: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 78 72 18 69 12 21 78 76(VAR_double) 37 76: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 77 71 18 78 12 21 77 75(VAR_double) 37
79:70(float64_t) Constant 0 0 79:69(float64_t) Constant 0 0
81: 7(int) Constant 48 81: TypeInt 8 1
82: TypeInt 8 1 83: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 82 37 23 12
84: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 83 37 23 12 84: TypePointer Private 81(int8_t)
85: TypePointer Private 82(int8_t) 85: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 83 11 12
86: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 84 11 12 86(VAR_int8_t): 84(ptr) Variable Private
87(VAR_int8_t): 85(ptr) Variable Private 89: 7(int) Constant 48
88: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 89 84 18 81 12 21 89 87(VAR_int8_t) 37 87: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 88 83 18 89 12 21 88 86(VAR_int8_t) 37
90: 82(int8_t) Constant 0 90: 81(int8_t) Constant 0
92: 7(int) Constant 49 92: TypeInt 8 0
93: TypeInt 8 0 94: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 93 37 11 12
95: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 94 37 11 12 95: TypePointer Private 92(int8_t)
96: TypePointer Private 93(int8_t) 96: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 94 11 12
97: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 95 11 12 97(VAR_uint8_t): 95(ptr) Variable Private
98(VAR_uint8_t): 96(ptr) Variable Private 100: 7(int) Constant 49
99: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 100 95 18 92 12 21 100 98(VAR_uint8_t) 37 98: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 99 94 18 100 12 21 99 97(VAR_uint8_t) 37
101: 93(int8_t) Constant 0 101: 92(int8_t) Constant 0
103: 7(int) Constant 50 103: TypeInt 16 1
104: TypeInt 16 1 106: 7(int) Constant 16
107: 7(int) Constant 16 105: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 104 106 23 12
106: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 105 107 23 12 107: TypePointer Private 103(int16_t)
108: TypePointer Private 104(int16_t) 108: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 105 11 12
109: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 106 11 12 109(VAR_int16_t): 107(ptr) Variable Private
110(VAR_int16_t): 108(ptr) Variable Private 112: 7(int) Constant 50
111: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 112 106 18 103 12 21 112 110(VAR_int16_t) 37 110: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 111 105 18 112 12 21 111 109(VAR_int16_t) 37
113:104(int16_t) Constant 0 113:103(int16_t) Constant 0
115: 7(int) Constant 51 115: TypeInt 16 0
116: TypeInt 16 0 117: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 116 106 11 12
118: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 117 107 11 12 118: TypePointer Private 115(int16_t)
119: TypePointer Private 116(int16_t) 119: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 117 11 12
120: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 118 11 12 120(VAR_uint16_t): 118(ptr) Variable Private
121(VAR_uint16_t): 119(ptr) Variable Private 123: 7(int) Constant 51
122: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 123 118 18 115 12 21 123 121(VAR_uint16_t) 37 121: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 122 117 18 123 12 21 122 120(VAR_uint16_t) 37
124:116(int16_t) Constant 0 124:115(int16_t) Constant 0
126: 7(int) Constant 52 126: TypeInt 64 1
127: TypeInt 64 1 128: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 127 72 23 12
129: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 128 73 23 12 129: TypePointer Private 126(int64_t)
130: TypePointer Private 127(int64_t) 130: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 128 11 12
131: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 129 11 12 131(VAR_int64_t): 129(ptr) Variable Private
132(VAR_int64_t): 130(ptr) Variable Private 134: 7(int) Constant 52
133: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 134 129 18 126 12 21 134 132(VAR_int64_t) 37 132: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 133 128 18 134 12 21 133 131(VAR_int64_t) 37
135:127(int64_t) Constant 0 0 135:126(int64_t) Constant 0 0
137: 7(int) Constant 53 137: TypeInt 64 0
138: TypeInt 64 0 139: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 138 72 11 12
140: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 139 73 11 12 140: TypePointer Private 137(int64_t)
141: TypePointer Private 138(int64_t) 141: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 139 11 12
142: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 140 11 12 142(VAR_uint64_t): 140(ptr) Variable Private
143(VAR_uint64_t): 141(ptr) Variable Private 145: 7(int) Constant 53
144: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 145 140 18 137 12 21 145 143(VAR_uint64_t) 37 143: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 144 139 18 145 12 21 144 142(VAR_uint64_t) 37
146:138(int64_t) Constant 0 0 146:137(int64_t) Constant 0 0
148: 7(int) Constant 54 148: TypeFloat 16
149: TypeFloat 16 150: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 149 106 13 12
151: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 150 107 13 12 151: TypePointer Private 148(float16_t)
152: TypePointer Private 149(float16_t) 152: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 150 11 12
153: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 151 11 12 153(VAR_float16_t): 151(ptr) Variable Private
154(VAR_float16_t): 152(ptr) Variable Private 156: 7(int) Constant 54
155: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 156 151 18 148 12 21 156 154(VAR_float16_t) 37 154: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 155 150 18 156 12 21 155 153(VAR_float16_t) 37
157:149(float16_t) Constant 0 157:148(float16_t) Constant 0
Line 1 42 11
14(main): 4 Function None 5 14(main): 4 Function None 5
15: Label 15: Label
25: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 17 14(main) 26: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
26: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17 27: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 20 20 12 12
27: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 28 28 12 12 25: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 17 14(main)
Store 34(VAR_bool) 38 39: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 36 36 12 12
39: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 40 40 12 12 Store 33(VAR_bool) 38
Store 46(VAR_int) 49 50: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 48 48 12 12
50: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 51 51 12 12 Store 45(VAR_int) 49
Store 54(VAR_uint) 12 57: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 56 56 12 12
57: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 58 58 12 12 Store 53(VAR_uint) 12
Store 64(VAR_float) 67 68: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 66 66 12 12
68: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 69 69 12 12 Store 63(VAR_float) 67
Store 76(VAR_double) 79 80: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 78 78 12 12
80: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 81 81 12 12 Store 75(VAR_double) 79
Store 87(VAR_int8_t) 90 91: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 89 89 12 12
91: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 92 92 12 12 Store 86(VAR_int8_t) 90
Store 98(VAR_uint8_t) 101 102: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 100 100 12 12
102: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 103 103 12 12 Store 97(VAR_uint8_t) 101
Store 110(VAR_int16_t) 113 114: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 112 112 12 12
114: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 115 115 12 12 Store 109(VAR_int16_t) 113
Store 121(VAR_uint16_t) 124 125: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 123 123 12 12
125: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 126 126 12 12 Store 120(VAR_uint16_t) 124
Store 132(VAR_int64_t) 135 136: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 134 134 12 12
136: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 137 137 12 12 Store 131(VAR_int64_t) 135
Store 143(VAR_uint64_t) 146 147: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 145 145 12 12
147: 4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 148 148 12 12 Store 142(VAR_uint64_t) 146
Store 154(VAR_float16_t) 157 158: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 156 156 12 12
Store 153(VAR_float16_t) 157
Return Return
FunctionEnd FunctionEnd