=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: dxgi: Add some asserts for Vulkan swapchains.

Alexandre Julliard julliard at winehq.org
Mon May 6 15:38:50 CDT 2019


Module: wine
Branch: master
Commit: 711e68c9b8819219aeff7e3a9d819728276dd6a5
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=711e68c9b8819219aeff7e3a9d819728276dd6a5

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Mon May  6 11:46:02 2019 +0200

dxgi: Add some asserts for Vulkan swapchains.

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>

---

 dlls/dxgi/swapchain.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/dlls/dxgi/swapchain.c b/dlls/dxgi/swapchain.c
index b4404e2..dbb3f34 100644
--- a/dlls/dxgi/swapchain.c
+++ b/dlls/dxgi/swapchain.c
@@ -1231,6 +1231,7 @@ static HRESULT d3d12_swapchain_create_user_buffers(struct d3d12_swapchain *swapc
 
     for (i = 0; i < swapchain->desc.BufferCount; ++i)
     {
+        assert(swapchain->vk_images[i] == VK_NULL_HANDLE);
         if ((vr = vk_funcs->p_vkCreateImage(vk_device, &image_info, NULL, &swapchain->vk_images[i])) < 0)
         {
             WARN("Failed to create Vulkan image, vr %d.\n", vr);
@@ -1265,6 +1266,7 @@ static HRESULT d3d12_swapchain_create_user_buffers(struct d3d12_swapchain *swapc
             memory_type_mask, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, &allocate_info.memoryTypeIndex)))
         return hr;
 
+    assert(swapchain->vk_memory == VK_NULL_HANDLE);
     if ((vr = vk_funcs->p_vkAllocateMemory(vk_device, &allocate_info, NULL, &swapchain->vk_memory)) < 0)
     {
         WARN("Failed to allocate device memory, vr %d.\n", vr);
@@ -1392,6 +1394,7 @@ static HRESULT d3d12_swapchain_prepare_command_buffers(struct d3d12_swapchain *s
     pool_info.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT;
     pool_info.queueFamilyIndex = queue_family_index;
 
+    assert(swapchain->vk_cmd_pool == VK_NULL_HANDLE);
     if ((vr = vk_funcs->p_vkCreateCommandPool(vk_device, &pool_info,
             NULL, &swapchain->vk_cmd_pool)) < 0)
     {
@@ -1419,6 +1422,7 @@ static HRESULT d3d12_swapchain_prepare_command_buffers(struct d3d12_swapchain *s
         semaphore_info.pNext = NULL;
         semaphore_info.flags = 0;
 
+        assert(swapchain->vk_semaphores[i] == VK_NULL_HANDLE);
         if ((vr = vk_funcs->p_vkCreateSemaphore(vk_device, &semaphore_info,
                 NULL, &swapchain->vk_semaphores[i])) < 0)
         {
@@ -2075,6 +2079,7 @@ static HRESULT STDMETHODCALLTYPE d3d12_swapchain_GetBuffer(IDXGISwapChain3 *ifac
         return DXGI_ERROR_INVALID_CALL;
     }
 
+    assert(swapchain->buffers[buffer_idx]);
     return ID3D12Resource_QueryInterface(swapchain->buffers[buffer_idx], iid, surface);
 }
 
@@ -2423,6 +2428,7 @@ static UINT STDMETHODCALLTYPE d3d12_swapchain_GetCurrentBackBufferIndex(IDXGISwa
     TRACE("iface %p.\n", iface);
 
     TRACE("Current back buffer index %u.\n", swapchain->current_buffer_index);
+    assert(swapchain->current_buffer_index < swapchain->desc.BufferCount);
     return swapchain->current_buffer_index;
 }
 




More information about the wine-cvs mailing list