From d118d3582076b0a8e1ebca2ad520f23ab541269b Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Fri, 26 Feb 2021 02:38:26 +0100 Subject: [PATCH] [d3d11] Fix IAGetIndexBuffer with optimized index buffers --- src/d3d11/d3d11_context.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/d3d11/d3d11_context.cpp b/src/d3d11/d3d11_context.cpp index f9c685400..b051b5e28 100644 --- a/src/d3d11/d3d11_context.cpp +++ b/src/d3d11/d3d11_context.cpp @@ -1740,8 +1740,12 @@ namespace dxvk { if (pFormat != nullptr) *pFormat = m_state.ia.indexBuffer.format; - if (pOffset != nullptr) - *pOffset = m_state.ia.indexBuffer.offset; + if (pOffset != nullptr) { + uint32_t shift = m_state.ia.indexBuffer.format == DXGI_FORMAT_R16_UINT ? 1 : 2; + *pOffset = m_state.ia.indexBuffer.optimized + ? m_state.ia.indexBuffer.firstIndex << shift + : m_state.ia.indexBuffer.offset; + } }