godot/drivers/vulkan
Matias N. Goldberg 0b09fdd96c Fix validation error when resizing window
Sometimes when resizing the window we may get the following validation
error:

ERROR: VALIDATION - Message Id Number: -370888023 | Message Id Name:
VUID-vkAcquireNextImageKHR-semaphore-01286
	Validation Error: [ VUID-vkAcquireNextImageKHR-semaphore-01286 ]
Object 0: handle = 0xdcc8fd0000000012, type = VK_OBJECT_TYPE_SEMAPHORE;
| MessageID = 0xe9e4b2a9 | vkAcquireNextImageKHR: Semaphore must not be
currently signaled or in a wait state. The Vulkan spec states: If
semaphore is not VK_NULL_HANDLE it must be unsignaled
(https://vulkan.lunarg.com/doc/view/1.2.198.1/linux/1.2-extensions/vkspec.html#VUID-vkAcquireNextImageKHR-semaphore-01286)

In VulkanContext::prepare_buffers the problem was that
vkAcquireNextImageKHR returned VK_SUBOPTIMAL_KHR but it already signaled
the semaphore (because it is possible to continue normally with a
VK_SUBOPTIMAL_KHR result).

Then we recreate the swapchain and reuse the
w->image_acquired_semaphores[frame_index] which is in an inconsistent
state.

Fixed by recreating the semamphores along the swapchain.

Fix #80570
2023-08-15 20:57:49 -03:00
..
rendering_device_vulkan.cpp Initialize shader placeholders up front 2023-08-03 16:13:33 +02:00
rendering_device_vulkan.h Merge pull request #79606 from clayjohn/ShaderRD-compilation-groups 2023-08-01 17:25:16 +02:00
SCsub Rename OSX to macOS and iPhoneOS to iOS. 2022-07-21 09:37:52 +03:00
vulkan_context.cpp Fix validation error when resizing window 2023-08-15 20:57:49 -03:00
vulkan_context.h Enabling additional vulkan extension and adding further checks 2023-01-15 14:49:15 +11:00
vulkan_hooks.h One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00