=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: vkd3d: Avoid using VK_WHOLE_SIZE for uniform buffer descriptors.

Alexandre Julliard julliard at winehq.org
Thu Feb 14 16:02:22 CST 2019


Module: vkd3d
Branch: master
Commit: 22330b541446b62f10ef7d03dff709318420757a
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=22330b541446b62f10ef7d03dff709318420757a

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Thu Feb 14 12:22:32 2019 +0100

vkd3d: Avoid using VK_WHOLE_SIZE for uniform buffer descriptors.

It is invalid to use VK_WHOLE_SIZE when a buffer is larger than
maxUniformBufferRange.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 libs/vkd3d/command.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libs/vkd3d/command.c b/libs/vkd3d/command.c
index 22a568f..4a9f7c4 100644
--- a/libs/vkd3d/command.c
+++ b/libs/vkd3d/command.c
@@ -3404,7 +3404,8 @@ static void d3d12_command_list_set_root_cbv(struct d3d12_command_list *list,
     resource = vkd3d_gpu_va_allocator_dereference(&list->device->gpu_va_allocator, gpu_address);
     buffer_info.buffer = resource->u.vk_buffer;
     buffer_info.offset = gpu_address - resource->gpu_address;
-    buffer_info.range = VK_WHOLE_SIZE;
+    buffer_info.range = resource->desc.Width - buffer_info.offset;
+    buffer_info.range = min(buffer_info.range, vk_info->device_limits.maxUniformBufferRange);
 
     if (vk_info->KHR_push_descriptor)
     {




More information about the wine-cvs mailing list