mirror of
https://github.com/love2d/love.git
synced 2026-08-14 10:13:46 +02:00
vulkan: when vsync is off prefer immediate instead of mailbox mode, for now.
Fixes #1852. This might be reevaluated in the future.
This commit is contained in:
@@ -1816,16 +1816,20 @@ VkPresentModeKHR Graphics::chooseSwapPresentMode(const std::vector<VkPresentMode
|
||||
else
|
||||
return VK_PRESENT_MODE_FIFO_KHR;
|
||||
case 0:
|
||||
if (std::find(begin, end, VK_PRESENT_MODE_MAILBOX_KHR) != end)
|
||||
// Mailbox mode might be better than immediate mode for a lot of people.
|
||||
// But on at least some systems it acts as if vsync is enabled
|
||||
// https://github.com/love2d/love/issues/1852
|
||||
// TODO: is that a bug in love's code or the graphics driver / compositor?
|
||||
// Should love expose mailbox mode in an API to users in some manner,
|
||||
// instead of trying to guess what to do?
|
||||
if (std::find(begin, end, VK_PRESENT_MODE_IMMEDIATE_KHR) != end)
|
||||
return VK_PRESENT_MODE_IMMEDIATE_KHR;
|
||||
else if (std::find(begin, end, VK_PRESENT_MODE_MAILBOX_KHR) != end)
|
||||
return VK_PRESENT_MODE_MAILBOX_KHR;
|
||||
else
|
||||
{
|
||||
if (std::find(begin, end, VK_PRESENT_MODE_IMMEDIATE_KHR) != end)
|
||||
return VK_PRESENT_MODE_IMMEDIATE_KHR;
|
||||
else
|
||||
return VK_PRESENT_MODE_FIFO_KHR;
|
||||
}
|
||||
return VK_PRESENT_MODE_FIFO_KHR;
|
||||
default:
|
||||
// TODO: support for swap interval = 2, etc?
|
||||
return VK_PRESENT_MODE_FIFO_KHR;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user