Fix vsync disabled
This commit is contained in:
parent
a7994c02d8
commit
c19327aaeb
@ -788,27 +788,33 @@ void GEVulkanDriver::createSwapChain()
|
|||||||
|
|
||||||
VkPresentModeKHR present_mode = VK_PRESENT_MODE_FIFO_KHR;
|
VkPresentModeKHR present_mode = VK_PRESENT_MODE_FIFO_KHR;
|
||||||
if (m_params.SwapInterval == 0)
|
if (m_params.SwapInterval == 0)
|
||||||
{
|
|
||||||
for (VkPresentModeKHR& available_mode : m_present_modes)
|
|
||||||
{
|
|
||||||
if (available_mode == VK_PRESENT_MODE_IMMEDIATE_KHR)
|
|
||||||
{
|
|
||||||
present_mode = available_mode;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
for (VkPresentModeKHR& available_mode : m_present_modes)
|
for (VkPresentModeKHR& available_mode : m_present_modes)
|
||||||
{
|
{
|
||||||
if (available_mode == VK_PRESENT_MODE_MAILBOX_KHR)
|
if (available_mode == VK_PRESENT_MODE_MAILBOX_KHR)
|
||||||
{
|
{
|
||||||
present_mode = available_mode;
|
present_mode = available_mode;
|
||||||
break;
|
goto found_mode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (VkPresentModeKHR& available_mode : m_present_modes)
|
||||||
|
{
|
||||||
|
if (available_mode == VK_PRESENT_MODE_IMMEDIATE_KHR)
|
||||||
|
{
|
||||||
|
present_mode = available_mode;
|
||||||
|
goto found_mode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (VkPresentModeKHR& available_mode : m_present_modes)
|
||||||
|
{
|
||||||
|
if (available_mode == VK_PRESENT_MODE_FIFO_RELAXED_KHR)
|
||||||
|
{
|
||||||
|
present_mode = available_mode;
|
||||||
|
goto found_mode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
found_mode:
|
||||||
|
|
||||||
VkExtent2D image_extent = m_surface_capabilities.currentExtent;
|
VkExtent2D image_extent = m_surface_capabilities.currentExtent;
|
||||||
if (m_surface_capabilities.currentExtent.width == std::numeric_limits<uint32_t>::max())
|
if (m_surface_capabilities.currentExtent.width == std::numeric_limits<uint32_t>::max())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user