From a16308277063f5825b0f0c0ae00ca4cfb163548d Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Tue, 19 Mar 2024 19:31:42 +0100 Subject: [PATCH] [dxvk] Align index buffer size to index size Fixes validation errors in FFXIV. --- src/dxvk/dxvk_context.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/dxvk/dxvk_context.cpp b/src/dxvk/dxvk_context.cpp index bbd139ed..9bb9c92c 100644 --- a/src/dxvk/dxvk_context.cpp +++ b/src/dxvk/dxvk_context.cpp @@ -5594,11 +5594,13 @@ namespace dxvk { auto bufferInfo = m_state.vi.indexBuffer.getDescriptor(); if (m_features.test(DxvkContextFeature::IndexBufferRobustness)) { + VkDeviceSize align = m_state.vi.indexType == VK_INDEX_TYPE_UINT16 ? 2 : 4; + VkDeviceSize range = bufferInfo.buffer.range & ~(align - 1); + m_cmd->cmdBindIndexBuffer2( bufferInfo.buffer.buffer, bufferInfo.buffer.offset, - bufferInfo.buffer.range, - m_state.vi.indexType); + range, m_state.vi.indexType); } else { m_cmd->cmdBindIndexBuffer( bufferInfo.buffer.buffer,