configure_graphics: Actively find present modes

When Vulkan devices are enumerated, this also determines the available
present modes for each device, maps them to a vector, and gives
those options to the user.
OpenGL options are limited to On/Off.

Required creating a VkSurfaceKHR during device enumeration, which
may or may not be desireable. For the sake of a less confusing UI.

Also fixes a bug where if a graphics device disappears on the host, we
don't try and select the non-existant devices.

configure_graphics: Remove vsync runtime lock for Vulkan

configure_graphics: Recommend Mailbox present mode

configure_graphics: Fix type-limits warning

configure_graphics: Clean up includes

configure_graphics: Add tooltip
This commit is contained in:
lat9nq
2023-05-01 20:36:23 -04:00
parent 952b271092
commit a546ecbb12
3 changed files with 162 additions and 28 deletions

View File

@ -212,24 +212,15 @@
</item>
<item>
<widget class="QComboBox" name="vsync_mode_combobox">
<property name="currentText">
<string>Off (Immediate)</string>
<property name="toolTip">
<string>FIFO (V-Sync) does not drop frames or exhibit tearing but is limited by the screen refresh rate.
FIFO Relaxed is similar to FIFO but allows tearing as it recovers from a slow down.
Mailbox can have lower latency than FIFO and does not tear but may drop frames.
Immediate (no synchronization) just presents whatever is available and can exhibit tearing.</string>
</property>
<property name="currentText">
<string/>
</property>
<item>
<property name="text">
<string>Off (Immediate)</string>
</property>
</item>
<item>
<property name="text">
<string>Double Buffering (FIFO)</string>
</property>
</item>
<item>
<property name="text">
<string>Triple Buffering (Mailbox)</string>
</property>
</item>
</widget>
</item>
</layout>