Module: wine Branch: master Commit: 69c219dd78ab8194b78e05571e60328031c36664 URL: https://gitlab.winehq.org/wine/wine/-/commit/69c219dd78ab8194b78e05571e60328...
Author: Zebediah Figura zfigura@codeweavers.com Date: Wed Aug 31 20:24:53 2022 -0500
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 {