1
0
mirror of https://github.com/EduApps-CDG/OpenDX synced 2024-12-30 09:45:37 +01:00

[dxbc] Fixed bug in decoder that would return wrong component masks

This commit is contained in:
Philip Rebohle 2017-12-10 21:13:22 +01:00
parent 5739e2f60f
commit d941446ca0
2 changed files with 5 additions and 3 deletions

View File

@ -168,8 +168,9 @@ namespace dxvk {
uint32_t numOpcodeTokens = 1; uint32_t numOpcodeTokens = 1;
if (token.isExtended()) { if (token.isExtended()) {
while (DxbcOpcodeTokenExt(m_op.getWord(numOpcodeTokens++)).isExtended()) numOpcodeTokens += 1;
continue; while (DxbcOpcodeTokenExt(m_op.getWord(numOpcodeTokens)).isExtended())
numOpcodeTokens += 1;
} }
m_args = m_op + numOpcodeTokens; m_args = m_op + numOpcodeTokens;

View File

@ -284,7 +284,8 @@ namespace dxvk {
* \c DxbcComponentSelectionMode::Select1. * \c DxbcComponentSelectionMode::Select1.
*/ */
DxbcComponentMask componentSelection() const { DxbcComponentMask componentSelection() const {
return DxbcComponentMask(bit::extract(m_token, 4, 5)); uint32_t id = bit::extract(m_token, 4, 5);
return DxbcComponentMask(id == 0, id == 1, id == 2, id == 3);
} }
/** /**