108 Commits

Author SHA1 Message Date
jasaaved 95006cf1d3 Changed bFullScreenExclusive to bAllowFullScreenExclusive
There's no guarantee VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT will enter Fullscreen exclusive (FSE). Under the right conditions, the driver and/or DWM can grant FSE. Adding "allow" to the FSE setting should make this a bit clearer.
2026-06-04 12:54:52 -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 042cf87248 Rework the present mode settings, refactor. 2025-10-20 21:28:38 +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 c0b7ecc686 Refactor: Unify the Vulkan init info logic 2025-08-21 01:01:16 +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 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 9f1f75ddab Refactor: Merge the ChooseDevice function into CreateDevice 2024-07-17 10:31:49 +02:00
Henrik Rydgård 0caebbfaa6 Add a way to pass out error messages from VulkanLoad 2024-01-15 11:22:33 +01:00
Henrik Rydgård ffd5e57a20 Vulkan: Don't use multithreaded rendering if frames-in-flight is set to 1
It has no benefit, and loses by a few percent in simple benchmarking.
2023-08-01 21:08:07 +02:00
Henrik Rydgård b118e25b6a Vulkan: Make multithreaded rendering an option.
Multi-threaded rendering is good for smoothing out performance spikes
and increasing performance on low-power devices. However, the way we use
it it doesn't benefit latency (input lag) at all, rather the opposite.

So make it an option.
2023-07-23 22:06:01 +02:00
Henrik Rydgård 242efba6f7 Remove splitSubmit setting. Now we submit init commands before the acquire. 2022-09-17 01:07:30 +02:00
Henrik Rydgård 0e3a84b4a8 Move most GPU things to Common.
It works after the move, on Windows and Android at least.

Deletes the D3DX9 shader compiler loader, which was not used.
2020-10-04 23:39:02 +02:00
Henrik Rydgård ff8148dd92 Move native/util, native/data and native/i18 to Common/Data.
Also move colorutil.cpp/h

linking build fix experiment

Delete a bunch of unused CMakeLists.txt files

CMakeLists.txt linking fix

Don't include NativeApp.h from any headers.

Android.mk buildfix

Half of the UWP fix

Buildfix

Minor project file cleanup

Buildfixes

Guess what? More buildfixes!
2020-10-04 07:28:29 +02:00
Henrik Rydgård ed88761ecc Merge ext/native/stringutil.cpp/h into Common/StringUtils.cpp/h. 2020-09-29 15:51:51 +02:00
Henrik Rydgård 5d64fc5ff1 Switch to PPSSPP's assert functions (don't use the system's) 2020-08-16 10:01:10 +02:00
Henrik Rydgård c5e0b799d9 Remove category from _assert_msg_ functions. We don't filter these by category anyway.
Fixes the inconsistency where we _assert_ didn't take a category but
_assert_msg_ did.
2020-07-19 20:33:25 +02:00
Henrik Rydgård 21f99259f3 Eliminate an unnecessary global g_Vulkan. 2020-07-18 22:50:26 +02:00
Henrik Rydgård 05ba88d20c Windows/Vulkan: Don't destroy the surface during resize, no need. 2020-07-18 21:43:27 +02:00
Henrik Rydgård 1897eed9b4 More buildfixes 2020-07-18 21:43:13 +02:00
Henrik Rydgård e48cb916dd Buildfix 2020-07-18 20:43:47 +02:00
Henrik Rydgård 697c3b8b36 Cleanup log output on swapchain/surface recreation. 2020-07-18 20:35:39 +02:00
Henrik Rydgård cd1d73436d Vulkan: Recreate the swapchain if we get too many "out of date" frames.
Should help an issue on my Linux laptop with Intel GPU.
2020-06-22 00:45:05 +02:00
Henrik Rydgård fbc4fa5bca Move the responsibility to register the debugutils callback to the VulkanContext. We only use one anyway. 2020-06-21 23:04:51 +02:00
Henrik Rydgård 6532c345c8 Simplify the validation interface code, bugfixes 2020-06-21 23:04:51 +02:00
Henrik Rydgård 1793b65ec1 Vulkan: Remove support for the old VK_EXT_debug_report extension 2020-06-21 23:04:51 +02:00
Unknown W. Brackets 051a84e9bd GPU: Restart when changing inflight frames setting.
We need to keep the push and pull in step, so changing at runtime is
messy.
2020-03-02 19:21:15 -08:00
Unknown W. Brackets 2a3fd05651 Vulkan: Present using FIFO for vsync.
This allows the setting to be changed at runtime in Vulkan too.

Should help #10105.
2020-02-29 22:48:59 -08:00
Henrik Rydgård 4f7c23fe79 DarkStalkers: Fix display on OpenGL ES. 2019-10-27 20:54:36 +01:00
Henrik Rydgård 7610220b30 Vulkan: Prepare for adding a second init path for VulkanContext.
Will eventually be used for libretro.
2019-09-01 22:21:19 +02:00
Henrik Rydgård 8adb0dfd61 Vulkan validation: INFO level has gotten too spammy, turn it off. 2019-03-24 11:56:51 +01:00
Henrik Rydgård 0cd3ac06d0 Avoid trying to create a FileLoader for empty filenames
Assorted cleanup
2019-02-25 21:35:51 +01:00
Henrik Rydgard 478b0b4278 Further improve VK extension loading. Switch to VK_EXT_debug_utils (but fallback to VK_EXT_debug_report if only that is available). 2019-02-05 21:31:38 +01:00
Henrik Rydgard 8e1a5ef3d6 Minor refactor of physical device property/feature detection, to allow for more extension use. 2019-02-05 18:07:17 +01:00
Henrik Rydgard f339a0c15b VK: Minor cleanup, turn off unfinished and probably wrong use of dedicated allocation feature 2019-01-31 14:09:21 +01:00
Henrik Rydgård 429a1fce01 Assert even in release mode if preset shaders fail to compile. This is just to help track down a Play crash. 2018-11-21 18:14:26 +01:00
Unknown W. Brackets 7ee4d2d5a1 UI: Ask for restart when changing graphics device.
Only for D3D11 and Vulkan.

Also, makes Vulkan follow D3D11 in not changing the setting if the device
is not found on startup.
2018-09-30 00:53:21 -07:00
Unknown W. Brackets b4496f1975 Core: Move config enums to separate file.
These are a bit strewn about and there are constants that aren't
consistently used, which just adds confusion.
2018-06-23 10:59:18 -07:00
Henrik Rydgård 238521a297 Rename device choice config options as requested. 2018-06-06 10:24:16 +02:00
Henrik Rydgård b037efdb55 If there are multiple Vulkan devices, show a setting to allow the user to choose. 2018-06-06 10:20:12 +02:00
Henrik Rydgård 5f8118b82b Separate T3DCreate* into its own header to avoid including Windows.h etc in some cases. 2018-02-25 10:27:59 +01:00
Unknown W. Brackets 766b40aad8 GPU: Reset GPUBackend on graphics init.
This way, when using a port that doesn't support Vulkan, it doesn't just
silently use upside down GL, etc.
2017-12-26 16:02:55 -08:00
Henrik Rydgård 2250ef799c Avoid including platform-specific headers in VulkanContext.h 2017-12-18 12:54:25 +01:00
Henrik Rydgård 6f0b382d9e Move vulkan debug callback out from WindowsVulkanContext into a file that can be shared with other platforms later. 2017-12-13 19:29:42 +01:00
Henrik Rydgård b6911d2764 Add a hidden debug option [Graphics]GfxDebugSplitSubmit to try to narrow down some Vulkan issues, see #10163. Also improve some asserts. 2017-11-22 10:47:04 +01:00
Henrik Rydgård 506c4eef17 Win32: Improvements to vulkan init error handling 2017-11-16 21:55:06 +01:00
Unknown W. Brackets b1554ef061 Vulkan: Cut down on asserts during init.
In case something is horribly wrong, or our desired settings aren't
compatible, let's try to stumble our way out.

More things can fail, but the goal is to detect failure or at least be
able to render UI settings to swap out of Vulkan.
2017-11-12 21:56:55 -08:00
Henrik Rydgård 05930ea32e MotoGP: Compat hack to disable framebuffer readbacks.
This is the only known game to copy its framebufer to RAM before display on every frame and we already have a
hack so we can display the high resolution framebuffer, but we still did the readback for no good reason.

This eliminates the readback.
2017-11-10 16:32:56 +01:00