Commit Graph

2309 Commits

Author SHA1 Message Date
bearoso 2dfdfa3b0d
Merge pull request #818 from snes9xgit/vulkan
Merge Vulkan branch into master.
2023-03-07 14:45:51 -06:00
BearOso 33cab01c15 SA1: Map 7e-7f to none. 2023-03-07 14:37:05 -06:00
BearOso e9f8b9925f Gtk: Refresh window canvas when first displayed.
Wayland/OpenGL doesn't receive a redraw cue after Gtk resizes the
window and it scales a 256x224 corner of the larger surface up with
the viewport extension.
2023-03-07 14:06:59 -06:00
BearOso b258636054 win32: Fix a couple of standards problems. 2023-03-07 14:01:29 -06:00
BearOso 1b10ca7ab0 Gtk/OpenGL: Remove npot variable. 2023-03-07 14:01:29 -06:00
BearOso 1f59744ab9 Gtk/Wayland: Don't require libwayland >= 1.20.
Used old version of wayland-scanner to generate protocol files.
2023-03-07 14:01:29 -06:00
BearOso 925c8ff2ea Pass offset onto patch function. 2023-03-07 14:01:29 -06:00
BearOso 790962f2bb Gtk: Add missing Wayland protocol files. 2023-03-07 14:01:29 -06:00
BearOso aa2a46f87b Gtk/OpenGL/Wayland: Support fractional scale. 2023-03-07 14:01:29 -06:00
BearOso f1286eda4c Gtk/Wayland: Support fractional scale. 2023-03-07 14:01:29 -06:00
BearOso 9972e2df56 Change S9xInterlaceField to an inline function. 2023-03-07 14:01:29 -06:00
BearOso daf8fba09c Remove extra variables for interlace field.
Keeping unsynchronized copies around is just asking for trouble.
Instead, use a macro to check the actual memory address.
2023-03-07 14:01:29 -06:00
BearOso 7a7e5226cc Gtk: Set auto_vrr to false by default. 2023-03-07 14:01:29 -06:00
BearOso 1434dce671 Gtk: Add setting to configure for VRR automatically.
Swaps to ideal config for VRR in fullscreen. Switches sound
input rate and frame rate to exact SNES rate and uses timers for
sync.
2023-03-07 14:01:29 -06:00
BearOso a6560f70b5 win32: Remove need for DirectXMath.
It only compiles with VC.
2023-03-07 14:01:29 -06:00
BearOso 6ae1a4478e Gtk/Vulkan: Handle failure to acquire swapchain image. 2023-03-07 14:01:29 -06:00
BearOso 39e21410d8 win32: Make changes to display driver not occur until restart. 2023-03-07 14:01:29 -06:00
BearOso 803125ffe9 win32: Move frame throttle into drivers for precision. 2023-03-07 14:01:29 -06:00
BearOso 309f9e650d vulkan: Move throttle out of swapchain.
Make the swapchain wrapper more flexible, allowing deferring the
swap from the end_frame function.
2023-03-07 14:01:29 -06:00
BearOso b82edaac96 vulkan: Add a throttler before present for precise frame rates. 2023-03-07 14:01:29 -06:00
BearOso 1d0dab45da win32: Flush message queue between driver changes. 2023-03-07 14:01:29 -06:00
BearOso d8584b9d94 slang: Fix race condition to initialize glslang. 2023-03-07 14:01:29 -06:00
BearOso 1907b9e25b win32: Tweak busy loop/sleep balance a bit. 2023-03-07 14:01:29 -06:00
BearOso daf4a60b65 win32: Fix CPU usage with new throttle. 2023-03-07 14:01:29 -06:00
BearOso e923382395 win32: Replace timer-based throttling.
The old code used low-res timers that would vary by at least 3ms and
couldn't handle freesync/gsync's needs. So I removed the old
time API calls and interrupt and did a rudimentary throttle with QPC.

This may break NetPlay. Nobody (sane) will ever notice.
2023-03-07 14:01:29 -06:00
BearOso 130e1509da Revert "vulkan/slang: Allow a cache for spv."
This reverts commit db554aa8cd62f083b93d4b2e7147c5d2500366d9.
2023-03-07 14:01:29 -06:00
BearOso 7e41394eea Revert "Add xxhash header."
This reverts commit 968dd520c25691388eebb8cdf31502814a540074.
2023-03-07 14:01:29 -06:00
BearOso e9ca336028 Add xxhash header. 2023-03-07 14:01:29 -06:00
BearOso 8907541f28 vulkan/slang: Allow a cache for spv. 2023-03-07 14:01:29 -06:00
BearOso 1c787cd309 slang: Remove remnants of using Snes9x's conffile. 2023-03-07 14:01:29 -06:00
BearOso 8e38e14ea9 Vulkan/Slang: Load shader files asynchronously. 2023-03-07 14:01:29 -06:00
BearOso 54770ef3cc win32: Try to handle race in changing drivers. 2023-03-07 14:01:29 -06:00
BearOso 4f08da4cd8 vulkan/win32: Provide reasonable default swapchain.
If extents are reported 0xffffffff, swapchain expects a provided
default size.
2023-03-07 14:01:29 -06:00
BearOso 19787b12f1 win32: Add default option to not add entries to registry. 2023-03-07 14:01:29 -06:00
BearOso 3c1d330169 Gtk: Make it possible to build without Slang/Vulkan. 2023-03-07 14:01:29 -06:00
BearOso 948506ad95 Gtk: Add dynamic rate control to SDL driver. 2023-03-07 14:01:29 -06:00
BearOso eb24fd599f apu: Clean up a bit.
Also fixes MSU not reflecting input rate setting.
2023-03-07 14:01:29 -06:00
BearOso 49b7d45fd0 libretro: Try c++14 for macOS. 2023-03-07 14:01:29 -06:00
BearOso 38603e8a0d libretro: Add -std=c++17 to macOS target. 2023-03-07 14:01:29 -06:00
BearOso cb8eae1486 cirrus.yml: Update targets.
Switch to arm and see if macos builds.
Remove psp target.
2023-03-07 14:00:36 -06:00
BearOso c7d4c2e478 win32: Clean up some warnings. 2023-03-07 13:58:22 -06:00
BearOso 2914fdf64c win32: Handle p.min properly in shader dialog.
Windows trackbars with integral values are annoying.
2023-03-07 13:58:22 -06:00
BearOso 8270c1c658 win32: Tweak the shader parameter dialog a bit. 2023-03-07 13:58:22 -06:00
BearOso 6ffca967f7 win32: Request 32-bit color on Win32/OpenGL. 2023-03-07 13:58:22 -06:00
BearOso 0bbecf042a win32: Use simple vulkan output. 2023-03-07 13:58:22 -06:00
BearOso bb210dc1a1 Gtk: Move simple vulkan output into separate class. 2023-03-07 13:58:22 -06:00
BearOso 410696ce4e Gtk: Remove SDL_GetDefaultAudioInfo. 2023-03-07 13:58:22 -06:00
BearOso 5a9e3a96b1 Oops. Don't free c, it's added to vector. 2023-03-07 13:58:22 -06:00
BearOso f67bdbef3f vulkan: Handle case when no vulkan library is available.
Use one copy of the dynamic loader, if it can't load a library,
drop out of instance creation.
2023-03-07 13:58:22 -06:00
BearOso edbffb9a53 vulkan: Keep dynamic loader around. 2023-03-07 13:58:22 -06:00