Fix #138140: Vulkan: First few frames squashed on X11
Previous swapchain fixes didn't solve the issue on X11 so for X11 we still need to disable VK_EXT_swapchain_maintenance1. Pull Request: https://projects.blender.org/blender/blender/pulls/139270
This commit is contained in:
@@ -1098,17 +1098,16 @@ GHOST_TSuccess GHOST_ContextVK::initializeDrawingContext()
|
||||
const char *native_surface_extension_name = getPlatformSpecificSurfaceExtension();
|
||||
requireExtension(extensions_available, extensions_enabled, VK_KHR_SURFACE_EXTENSION_NAME);
|
||||
requireExtension(extensions_available, extensions_enabled, native_surface_extension_name);
|
||||
required_device_extensions.push_back(VK_KHR_SWAPCHAIN_EXTENSION_NAME);
|
||||
|
||||
/* TODO: VK_EXT_swapchain_maintenance1 needs to be reviewed. It has several issues including
|
||||
* - X11 doesn't use the correct swapchain offset, flipping can squash the first frames.
|
||||
* - VVL complains of incorrect usage of fences.
|
||||
*
|
||||
* For now disabling it until we have figured out what is wrong.
|
||||
*/
|
||||
/* Required instance extension dependency of VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME */
|
||||
if (contains_extension(extensions_available, VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME) &&
|
||||
contains_extension(extensions_available, VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME))
|
||||
{
|
||||
/* X11 doesn't use the correct swapchain offset, flipping can squash the first frames. */
|
||||
const bool use_swapchain_maintenance1 =
|
||||
#ifdef WITH_GHOST_X11
|
||||
m_platform != GHOST_kVulkanPlatformX11 &&
|
||||
#endif
|
||||
contains_extension(extensions_available, VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME) &&
|
||||
contains_extension(extensions_available, VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME);
|
||||
if (use_swapchain_maintenance1) {
|
||||
requireExtension(
|
||||
extensions_available, extensions_enabled, VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME);
|
||||
requireExtension(extensions_available,
|
||||
@@ -1116,8 +1115,6 @@ GHOST_TSuccess GHOST_ContextVK::initializeDrawingContext()
|
||||
VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME);
|
||||
optional_device_extensions.push_back(VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME);
|
||||
}
|
||||
|
||||
required_device_extensions.push_back(VK_KHR_SWAPCHAIN_EXTENSION_NAME);
|
||||
}
|
||||
|
||||
/* External memory extensions. */
|
||||
|
||||
Reference in New Issue
Block a user