The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

c/util: Improve error paths in swapchain creation

authored by

Jakob Bornecrantz and committed by
Simon Zeni
add64c15 c6a4f62e

+8 -11
+8 -11
src/xrt/compositor/util/comp_swapchain.c
··· 397 397 398 398 // Now lets create the command buffer. 399 399 ret = vk_cmd_pool_create_and_begin_cmd_buffer_locked(vk, pool, 0, &cmd_buffer); 400 - if (ret != VK_SUCCESS) { 401 - VK_ERROR(vk, "Failed to barrier images"); 402 - vk_cmd_pool_unlock(pool); 403 - cleanup_post_create_vulkan_setup(vk, sc); 404 - return XRT_ERROR_VULKAN; 405 - } 400 + VK_CHK_WITH_GOTO(ret, "vk_cmd_pool_create_and_begin_cmd_buffer_locked", error_unlock); 406 401 407 402 // Name it for debugging. 408 403 VK_NAME_COMMAND_BUFFER(vk, cmd_buffer, "comp_swapchain command buffer"); ··· 436 431 vk_cmd_pool_unlock(pool); 437 432 438 433 // Check results from submit. 439 - if (ret != VK_SUCCESS) { 440 - VK_ERROR(vk, "Failed to barrier images"); 441 - cleanup_post_create_vulkan_setup(vk, sc); 442 - return XRT_ERROR_VULKAN; 443 - } 434 + VK_CHK_WITH_GOTO(ret, "vk_cmd_pool_end_submit_wait_and_free_cmd_buffer_locked", error); 444 435 445 436 // Init all of the threading objects. 446 437 for (uint32_t i = 0; i < image_count; i++) { ··· 462 453 sc->images[i].use_count = 0; 463 454 } 464 455 456 + if (xret != XRT_SUCCESS) { 457 + cleanup_post_create_vulkan_setup(vk, sc); 458 + } 459 + 465 460 return xret; 466 461 462 + error_unlock: 463 + vk_cmd_pool_unlock(pool); 467 464 error: 468 465 cleanup_post_create_vulkan_setup(vk, sc); 469 466