Henrik Rydgård
928cdea420
Fix vulkan validation error after #21616
...
See #21616
2026-06-05 10:09:23 +02:00
jasaaved
5e25118043
Fix the exclusive fullscreen config guard and switching the setting on/off
...
Previously the exclusive fullscreen option in the settings screen was
guarded by a compile-time #ifdef VK_EXT_full_screen_exclusive, which is
always true on Windows. It now uses a runtime fullScreenExclusiveSupported
cap derived from whether the extension is actually enabled by the driver.
Switching between borderless and exclusive fullscreen currently requires a
restart. This is because once DWM has claimed the window (any frames
presented), ALLOWED_EXT cannot re-engage exclusive mode on an existing
swapchain. A new process gets a fresh HWND that DWM has not claimed yet,
so ALLOWED_EXT works correctly at startup.
The proper fix is to use VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
with vkAcquireFullScreenExclusiveModeEXT/vkReleaseFullScreenExclusiveModeEXT
to explicitly negotiate exclusive mode with DWM mid-session without needing
a restart. To be done in a follow-up.
2026-06-03 17:15:13 -07:00
jasaaved
0c23cdaf3d
Windows Vulkan: default to borderless fullscreen, add exclusive option
...
Vulkan swapchain now explicitly sets VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT by default, enabling proper borderless fullscreen behavior with benefits including better Alt+Tab, VRR/G-Sync/FreeSync, and Auto HDR support.
2026-06-03 17:15:13 -07:00
Henrik Rydgård
85ddf03c4b
Vulkan: Remove deprecated use of device layers
2026-05-13 23:09:04 +02:00
Henrik Rydgård
4c2be7f8af
More work. Some initialization order problem.
2026-04-23 13:31:51 +02:00
Henrik Rydgård
317f811ca2
Slight improvement to our terrible GPU performance heuristic
2026-04-07 11:39:39 -06:00
Henrik Rydgård
845f9f3d55
Add missing check to Vulkan init. Disable validation on android-x86-64
...
The latter is broken in the Android SDK emulator.
2026-02-27 23:57:50 +01:00
Henrik Rydgård
236a0acf71
Minor tweaks
2026-02-06 11:37:09 +01:00
Henrik Rydgård
68a8ba856f
Warning fix, delete unused code
2026-01-24 10:43:48 +01:00
Henrik Rydgård
042cf87248
Rework the present mode settings, refactor.
2025-10-20 21:28:38 +02:00
Henrik Rydgård
b4f7635719
Vulkan: Check the available present modes right after initializing the surface
2025-10-20 19:52:24 +02:00
Henrik Rydgård
80bd32325c
Move the present mode from the CreateInfo to InitSwapchain
2025-10-20 16:33:34 +02:00
Henrik Rydgård
6338832015
Vulkan: Smoothly recreate the swapchain using oldSwapchain on "resize" on Windows
2025-10-20 15:42:34 +02:00
Henrik Rydgård
92f5db7445
Remove further references to the fixed ui_atlas. CMakeLists.txt improvements.
2025-09-17 09:56:17 -06:00
Henrik Rydgård
2cf0ffea73
Allow choosing the frame presentation mode in detail in Vulkan mode
2025-08-21 01:01:16 +02:00
Henrik Rydgård
c0b7ecc686
Refactor: Unify the Vulkan init info logic
2025-08-21 01:01:16 +02:00
Henrik Rydgård
5e05a6d0ac
Get rid of some more backward Common/Core dependencies
2025-08-06 00:16:35 +02:00
Henrik Rydgård
9137eedb7b
Windows/Vulkan: Correctly handle minimizing and restoring the window
...
We can't create a swapchain in this case but we still want emulation to
keep running. So we ditch the last renderpass in VulkanQueueRunner but
run all the rest (if PauseWhenMinimized isn't set).
Now works without any validation errors or hangs.
2025-07-18 20:01:48 +02:00
Henrik Rydgård
a36d3cf18d
Logging improvements / despam
2025-05-21 21:42:08 +02:00
Henrik Rydgård
7792e01545
Vulkan: RenderCompleteSemaphores are now per swapchain image, instead of per-buffered-frame.
2025-05-20 11:39:08 +02:00
Henrik Rydgård
50b604e010
Log fixes
2025-04-15 14:29:40 +02:00
Henrik Rydgård
6eefe8c982
Vulkan init: Slight logging reduction
2025-04-13 15:21:29 +02:00
Henrik Rydgård
67dfbfe97e
Add developer setting to prevent loading overlays (and other 'implicit' Vulkan layers)
2025-04-10 18:56:05 +02:00
Henrik Rydgård
670ff21529
Make the Vulkan init flags a proper enum class
2025-04-10 18:16:05 +02:00
Henrik Rydgård
85304d58a8
Warning fixes
2025-03-27 14:45:42 +01:00
Henrik Rydgård
948c38a034
Some more minor fixes
2025-02-04 10:24:55 -06:00
Henrik Rydgård
6e0cafccb9
Request Vulkan 1.4 if available.
2025-01-17 14:27:08 +01:00
Nukem
d3aeff861e
libretro: Restore Vulkan MSAA video option
2025-01-10 16:13:16 -05:00
Henrik Rydgård
f5a4669cb4
Remove obsolete ifdef
2024-11-07 10:17:56 +01:00
Henrik Rydgård
8c8b34aac4
Vulkan: Separate the instance and device API versions, for extension loading purposes
2024-09-25 18:38:31 +02:00
Henrik Rydgård
b2d9ac54dd
Make InfoField an "enum class", extract function FormatAPIVersion
2024-09-25 16:34:33 +02:00
Henrik Rydgård
144b3a8a98
Vulkan validation error cleanups
2024-07-28 08:08:48 -06:00
Henrik Rydgård
417d346e03
Vulkan validation warning fix
2024-07-19 11:43:35 +02:00
Henrik Rydgård
7c817f3ecd
Add helper for Vulkan struct chaining
2024-07-19 09:45:02 +02:00
Henrik Rydgård
138193a776
Add support for the EXT_provoking_vertex Vulkan extension, allowing us to skip software transform for this case.
2024-07-17 10:41:25 +02:00
Henrik Rydgård
2a35a92514
Vulkan: Check the device features *after* the extension checks. Necessary for the next step.
2024-07-17 10:32:47 +02:00
Henrik Rydgård
9f1f75ddab
Refactor: Merge the ChooseDevice function into CreateDevice
2024-07-17 10:31:49 +02:00
Henrik Rydgård
e01ca5b057
Logging API change (refactor) ( #19324 )
...
* Rename LogType to Log
* Explicitly use the Log:: enum when logging. Allows for autocomplete when editing.
* Mac/ARM64 buildfix
* Do the same with the hle result log macros
* Rename the log names to mixed case while at it.
* iOS buildfix
* Qt buildfix attempt, ARM32 buildfix
2024-07-14 14:42:59 +02:00
Henrik Rydgård
3e1d131754
Vulkan: Fall back to extension if core functions won't load.
2024-06-23 15:42:35 +02:00
Henrik Rydgård
5f79046e01
Get Vulkan rendering on iOS (still, need to hook up input etc)
2024-05-23 09:41:00 +02:00
Henrik Rydgård
fea6727ffd
Add a convenience method to VulkanContext to reduce code duplication
...
Will need the exact same code for iOS.
2024-05-23 02:13:54 +02:00
Henrik Rydgård
28ab4518ed
Add a workaround and an assert, trying to fix #18982
...
Not sure what it is if this doesn't fix #18982 .
We already seem to be doing things correctly.
2024-04-29 13:32:26 +02:00
Henrik Rydgård
d28e9dc006
Minor cleanup
2024-04-06 17:03:40 +02:00
Henrik Rydgård
ae6e0d182e
Vulkan: Fix function loading regression affecting MSAA
...
When loading function that have been merged into core, use the core
names.
2024-04-05 17:28:37 +02:00
Henrik Rydgård
9f9881dfe3
Move some code, minor cleanup.
...
See #18987
2024-04-04 12:30:41 +02:00
Henrik Rydgård
32fe47d761
Fix or ignore some various Vulkan validation errors
2024-04-03 13:37:40 +02:00
Henrik Rydgård
86ea5665f0
Show some more Vulkan extensions in sysinfo
2024-02-01 17:08:54 +01:00
Henrik Rydgård
9253bf9cb5
Add a new screen for managing installed Adreno drivers
2024-01-17 10:51:08 +01:00
Henrik Rydgård
e3177ac870
Make some global string pointers const, not just the strings.
...
Minor cleanup.
2023-12-29 14:09:45 +01:00
Henrik Rydgård
7634eba083
Merge pull request #18532 from dima-xd/adrenotools
...
Android: Implement custom driver loading for ARM64 Android devices
2023-12-14 15:54:24 +01:00