From 6948d18f5f0c6a7c2f3c54f87d973ee2c8875da1 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Sun, 10 Nov 2019 22:37:11 +0100 Subject: [PATCH] [dxvk] Always align vertex buffer slices to 256 bytes Works around an unknown geometry rendering isssue in Warhammer Chaosbane. Should probably be investigated at some point. --- src/dxvk/dxvk_buffer.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/dxvk/dxvk_buffer.cpp b/src/dxvk/dxvk_buffer.cpp index 50a7cc251..1752653dd 100644 --- a/src/dxvk/dxvk_buffer.cpp +++ b/src/dxvk/dxvk_buffer.cpp @@ -133,6 +133,10 @@ namespace dxvk { && m_info.size > (devInfo.limits.optimalBufferCopyOffsetAlignment / 2)) result = std::max(result, devInfo.limits.optimalBufferCopyOffsetAlignment); + // For some reason, Warhammer Chaosbane breaks otherwise + if (m_info.usage & VK_BUFFER_USAGE_VERTEX_BUFFER_BIT) + result = 256; + if (m_memFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) { result = std::max(result, devInfo.limits.nonCoherentAtomSize); result = std::max(result, VkDeviceSize(64));