Skip to content

Commit ddda909

Browse files
committed
Don't crash when disassembling an unknown SPIR-V extension operation
1 parent e946e9a commit ddda909

1 file changed

Lines changed: 13 additions & 2 deletions

File tree

renderdoc/driver/shaders/spirv/spirv_disassemble.cpp

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1416,10 +1416,21 @@ struct SPVInstruction
14161416

14171417
#if USE_CANONICAL_EXT_INST_NAMES
14181418
ret += op->arguments[0]->ext->setname + "::";
1419-
ret += op->arguments[0]->ext->canonicalNames[op->literals[0]];
1419+
const char **names = op->arguments[0]->ext->canonicalNames;
14201420
#else
1421-
ret += op->arguments[0]->ext->friendlyNames[op->literals[0]];
1421+
const char **names = op->arguments[0]->ext->friendlyNames;
14221422
#endif
1423+
if(names)
1424+
{
1425+
ret += names[op->literals[0]];
1426+
}
1427+
else
1428+
{
1429+
#if !USE_CANONICAL_EXT_INST_NAMES
1430+
ret += op->arguments[0]->ext->setname + "::";
1431+
#endif
1432+
ret += StringFormat::Fmt("op%u", op->literals[0]);
1433+
}
14231434

14241435
ret += "(";
14251436

0 commit comments

Comments
 (0)