From 69c219dd78ab8194b78e05571e60328031c36664 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Wed, 31 Aug 2022 20:24:53 -0500 Subject: [PATCH] wined3d: Pass a draw count of 1 to Vulkan indirect draw commands. Spotted by Philip Rebohle. This fixes rendering in "Discovery Tour by Assassin's Creed: Ancient Egypt". --- dlls/wined3d/adapter_vk.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/dlls/wined3d/adapter_vk.c b/dlls/wined3d/adapter_vk.c index bf93e4a1c19..90ffec4b1f7 100644 --- a/dlls/wined3d/adapter_vk.c +++ b/dlls/wined3d/adapter_vk.c @@ -1813,23 +1813,14 @@ static void adapter_vk_draw_primitive(struct wined3d_device *device, if (parameters->indirect) { struct wined3d_bo_vk *bo = wined3d_bo_vk(indirect_vk->b.buffer_object); - uint32_t stride, size; wined3d_context_vk_reference_bo(context_vk, bo); - size = indirect_vk->b.resource.size - parameters->u.indirect.offset; - if (parameters->indexed) - { - stride = sizeof(VkDrawIndexedIndirectCommand); VK_CALL(vkCmdDrawIndexedIndirect(vk_command_buffer, bo->vk_buffer, - bo->b.buffer_offset + parameters->u.indirect.offset, size / stride, stride)); - } + bo->b.buffer_offset + parameters->u.indirect.offset, 1, sizeof(VkDrawIndexedIndirectCommand))); else - { - stride = sizeof(VkDrawIndirectCommand); VK_CALL(vkCmdDrawIndirect(vk_command_buffer, bo->vk_buffer, - bo->b.buffer_offset + parameters->u.indirect.offset, size / stride, stride)); - } + bo->b.buffer_offset + parameters->u.indirect.offset, 1, sizeof(VkDrawIndirectCommand))); } else {