From cee7db1c5729e2cc2a4452689ad2b35658faccf0 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Mon, 18 Nov 2019 13:45:35 +0100 Subject: [PATCH] [dxvk] Always align texel buffers to at least 16 bytes Since we don't know the view format in advance, and some drivers require single-texel alignment. --- src/dxvk/dxvk_buffer.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/dxvk/dxvk_buffer.cpp b/src/dxvk/dxvk_buffer.cpp index 8a15a5fa7..d31455182 100644 --- a/src/dxvk/dxvk_buffer.cpp +++ b/src/dxvk/dxvk_buffer.cpp @@ -126,8 +126,10 @@ namespace dxvk { if (m_info.usage & VK_BUFFER_USAGE_STORAGE_BUFFER_BIT) result = std::max(result, devInfo.limits.minStorageBufferOffsetAlignment); - if (m_info.usage & (VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT | VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT)) + if (m_info.usage & (VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT | VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT)) { result = std::max(result, devInfo.limits.minTexelBufferOffsetAlignment); + result = std::max(result, VkDeviceSize(16)); + } if (m_info.usage & (VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT) && m_info.size > (devInfo.limits.optimalBufferCopyOffsetAlignment / 2))