diff options
Diffstat (limited to 'layers/draw_state.cpp')
| -rw-r--r-- | layers/draw_state.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp index 45d2217e..4ec408ae 100644 --- a/layers/draw_state.cpp +++ b/layers/draw_state.cpp @@ -346,6 +346,7 @@ build_def_index(shader_module *module) { for (auto insn : *module) { switch (insn.opcode()) { + /* Types */ case spv::OpTypeVoid: case spv::OpTypeBool: case spv::OpTypeInt: @@ -369,8 +370,27 @@ build_def_index(shader_module *module) module->def_index[insn.word(1)] = insn.offset(); break; + /* Fixed constants */ + case spv::OpConstantTrue: + case spv::OpConstantFalse: + case spv::OpConstant: + case spv::OpConstantComposite: + case spv::OpConstantSampler: + case spv::OpConstantNull: + module->def_index[insn.word(2)] = insn.offset(); + break; + + /* Specialization constants */ + case spv::OpSpecConstantTrue: + case spv::OpSpecConstantFalse: + case spv::OpSpecConstant: + case spv::OpSpecConstantComposite: + case spv::OpSpecConstantOp: + module->def_index[insn.word(2)] = insn.offset(); + break; + default: - /* We only care about type definitions */ + /* We don't care about any other defs for now. */ break; } } |
