Commit Graph
108 Commits
Author SHA1 Message Date
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årdandGitHub 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årdandGitHub 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
Herman Semenov 5a0d54be83 [Common/Data/GPU/Input/System/UI] Added const reference for function params 2023-12-14 14:21:11 +03:00
Dzmitry Dubrova a461800973 Implement custom driver loading for ARM64 Android devices 2023-12-14 08:53:03 +03:00
Henrik Rydgård 2c751d39f8 Vulkan: Add simple delete count to GPU profiler, to make sure we don't have more resource churn
Also fix the render pass type name lookup table.
2023-10-12 09:02:45 +02:00
Henrik Rydgård d9e9bde596 Vulkan: Fix disabling VSync on SDL platforms that support IMMEDIATE but not MAILBOX
Fixes #18084
2023-09-06 18:46:19 +02:00
Henrik Rydgård 13cfd9c3d6 Add Mesa as a known GPU driver "vendor". 2023-08-17 22:06:03 +02:00
Henrik Rydgård aadb700505 Fix turning off VSync on Android, logic fix 2023-08-14 11:02:29 +02:00
Henrik Rydgård 8e74907710 Don't try to use VK_GOOGLE_display_timing on Mac/iOS. MoltenVK has an implementation that seems broken. 2023-08-08 11:46:36 +02:00
Henrik Rydgård a6b5340d97 Don't crash if VK_KHR_present_id / VK_KHR_present_wait are not exposed (but feature still reported available)
Fixes the new crash in #17858
2023-08-07 11:36:49 +02:00
Henrik Rydgård e16cac6548 Initial work on supporting VK_GOOGLE_display_timing. Not working yet. 2023-08-03 11:11:16 +02:00
Henrik Rydgård 14377259b5 Use VK_KHR_present_wait to get numbers on how much latency we have to screen
This extension is not available on Android, there they have
VK_GOOGLE_display_timing, which they also have an abstraction library
for, so will look at that later.

Early part of work on #17685
2023-08-02 20:34:22 +02:00
Henrik Rydgård 1c83c4a1fe Vulkan: Enable the present-id/present-wait/display-timing extensions
Doesn't actually use any of them yet, just making sure enabling them
doesn't cause any weird issues. They will be used for the future display
timing rewrite.
2023-07-14 10:43:47 +02:00
Henrik Rydgård 38178d34b5 Sanity checks in InitSwapchain 2023-05-05 00:03:20 +02:00
Henrik Rydgård c81ec8c74d List Vulkan present modes in system info, show the current one 2023-04-20 00:21:06 +02:00
Henrik Rydgård f376f3cb5f Another piece of the fix for #17250 (opensuse build error) 2023-04-09 16:57:39 +02:00