diff --git a/src/dxso/dxso_decoder.cpp b/src/dxso/dxso_decoder.cpp index fa207395..42d8d64b 100644 --- a/src/dxso/dxso_decoder.cpp +++ b/src/dxso/dxso_decoder.cpp @@ -175,6 +175,8 @@ namespace dxvk { bool DxsoDecodeContext::decodeInstruction(DxsoCodeIter& iter) { uint32_t token = iter.read(); + m_ctx.instructionIdx++; + m_ctx.instruction.opcode = static_cast( token & 0x0000ffff); diff --git a/src/dxso/dxso_decoder.h b/src/dxso/dxso_decoder.h index e788412d..178f8075 100644 --- a/src/dxso/dxso_decoder.h +++ b/src/dxso/dxso_decoder.h @@ -193,6 +193,8 @@ namespace dxvk { }; struct DxsoInstructionContext { + uint32_t instructionIdx; + DxsoShaderInstruction instruction; DxsoRegister pred; @@ -212,7 +214,9 @@ namespace dxvk { public: DxsoDecodeContext(const DxsoProgramInfo& programInfo) - : m_programInfo( programInfo ) { } + : m_programInfo( programInfo ) { + m_ctx.instructionIdx = 0; + } /** * \brief Retrieves current instruction context