Commit Graph
212 Commits
Author SHA1 Message Date
Henrik Rydgård 5cffcd34ad Get rid of the confusing old USING_WIN_UI define. Make a more clear system property for headless. 2026-08-16 12:19:41 +02:00
Henrik Rydgård 933751e2a9 Windows: Avoid POSIX error codes leaking into our WSA socket error codes 2026-08-10 10:04:21 +02:00
Henrik Rydgård 8cd7e1b2c0 Delete all support for Qt
Our Qt backend has long been left behind and doesn't even support Vulkan
currently. There would be a lot of work to make it viable, and I don't
think anyone is really interested.

ImGui on SDL will soon fulfill the need for a more classic user interface
with a menu bar on Linux, and on Mac we already have a native UI.
2026-08-08 18:18:28 +02:00
Henrik Rydgård 4160414b31 Vulkan: remove libretro's global function-pointer wrapper hack
libretro/libretro_vulkan.cpp got PPSSPP's libretro core working with
RetroArch's Vulkan integration by globally monkey-patching PPSSPP's Vulkan
loader function pointers (vkCreateInstance, vkCreateDevice,
vkCreateSwapchainKHR, vkAcquireNextImageKHR, vkQueuePresentKHR,
vkQueueSubmit, etc.) so the unmodified VulkanContext class would end up
wrapping RetroArch's already-existing VkInstance/VkDevice instead of
creating its own, and so a fake VkSwapchainKHR (a self-managed array of
images synced against RetroArch's retro_hw_render_interface_vulkan
callbacks) could stand in for the real swapchain that libretro's Vulkan
model doesn't have. Flagged in-code as "a wacky wrapper".

Replaces that with first-class support in VulkanContext for the two things
libretro actually needs:

- Adopting an externally-created instance/device instead of faking
  vkCreateInstance/vkCreateDevice: VulkanContext::CreateInstanceExternal()
  adopts RetroArch's VkInstance; CreateDevice() gained optional
  extraDeviceExtensions/extraRequiredFeatures params so RetroArch's
  requirements get merged into a real vkCreateDevice() call;
  ownsInstance_/ownsDevice_ flags (the latter set via
  SetDeviceExternallyOwned()) mean DestroyInstance()/DestroyDevice() skip
  the real vkDestroy* calls when something else owns the object, without
  needing to intercept anything. VulkanLoader gained
  VulkanLoadFromGetInstanceProcAddr() for bootstrapping from a
  host-supplied proc-addr getter instead of dlopen/dlsym-ing the loader
  ourselves - vkGetDeviceProcAddr is resolved via the real instance handle
  (not NULL), since per the Vulkan spec it's not one of the handful of
  commands queryable with a NULL instance.
- A pluggable presentation backend (Common/GPU/Vulkan/VulkanPresentation.h)
  for hosts with no real VK_KHR_swapchain, replacing the fake-swapchain-
  handle trick. VulkanContext::GetPresentation() is null by default, so
  every existing platform's real-swapchain code path is untouched;
  libretro/LibretroVulkanPresentation implements this interface directly
  against retro_hw_render_interface_vulkan, as real class state instead of
  file-scope globals. Several pieces of state that are normally only
  populated as a side effect of ReinitSurface()/InitSwapchain() - the
  graphics queue/queue family index (ChooseQueue() is entangled with
  real-surface presentation-support checks), the swapchain format, and
  the available present modes - needed presentation-aware fallbacks since
  libretro never calls that real-surface path at all.

libretro/LibretroVulkanContext.cpp now drives VulkanContext's real, public
API directly - no more hijacked function pointers, no more fake surface or
swapchain. libretro/libretro_vulkan.cpp is deleted.

Verified with a full build+run in RetroArch (not just compile-time
checks): the libretro Makefile doesn't track header dependencies
(cl.exe doesn't support -MMD/-MP, and Makefile.common never sets up an
equivalent), so a `make clean` full rebuild is required after any header
change to avoid linking stale object code from before the change - several
of the fixes above were initially masked by exactly that.
2026-08-06 17:07:05 +02:00
Henrik Rydgård ccff34b431 Reuse the AndroidJavaGLContext as the new generic OpenGLGraphicsContext 2026-07-26 20:07:14 +02:00
Henrik Rydgård cb623f725c Get rid of the SDL-specific Vulkan graphics context 2026-07-26 19:10:46 +02:00
Henrik Rydgård 3784bbe0e6 Delete the AndroidVulkanContext, replace with the generic VulkanGraphicsContext 2026-07-26 19:10:46 +02:00
Henrik Rydgård e3d36e2741 Move the VulkanGraphicsContext to its correct location in Common/GPU/Vulkan 2026-07-26 14:15:15 +02:00
Henrik Rydgård 7f218acc53 Change the GraphicsContext interface to be more consistent 2026-07-26 10:22:00 +02:00
Henrik Rydgård c2c0fa3634 Remove the AndroidGraphicsContext middle-level class 2026-07-26 10:21:59 +02:00
Henrik Rydgård 221aba92da Move EmuThread.cpp/h to Core, in preparation for sharing logic 2026-07-21 12:50:22 +02:00
Henrik Rydgård 16c7ec390f Headless: Start taking logic out of the "HeadlessHost"
Also update some agent files
2026-07-21 11:01:48 +02:00
Henrik Rydgård 1e62cb7fc1 Finish the SDL3 port on Mac, update CI to 26.04 2026-06-16 11:39:57 +02:00
Henrik Rydgård 3aa4714ce0 Merge draw_text_win with draw_text_uwp. 2026-05-18 14:11:22 +02:00
Henrik Rydgård 91b3741a57 Implement a simple cheat database download facility 2026-05-16 22:31:13 +02:00
Henrik Rydgård d2c2ee337e Remove the mfplat.dll hard dependency (now dynamic). 2026-05-11 16:09:22 +02:00
Henrik Rydgård 4c2be7f8af More work. Some initialization order problem. 2026-04-23 13:31:51 +02:00
Henrik Rydgård 61e76fcf68 Add the ability to hide adhoc servers using a "hidden" entry in the json.
Useful when servers are temporarily down.
2026-04-23 11:12:58 +02:00
Henrik Rydgård d6ca0378b6 Move DarwinFileSystemServices.mm/h to Core/Util 2026-03-07 11:35:34 +01:00
Henrik Rydgård 8e06e4c5c2 iOS: Delete untested multi-screen-management code that uses deprecated APIs 2026-02-13 18:16:26 +01:00
Henrik Rydgård 7b1ba55e72 Prevent touch controls from fading away while being held.
Fixes #20531
2026-02-04 00:00:38 +01:00
Henrik Rydgård 1f43b1cf23 Split the Hid code up in a few files to make it more practical to work on 2026-02-03 00:30:19 +01:00
Henrik Rydgård 612e9263d4 Windows ARM64: Set linker log output to normal (not verbose) 2025-10-07 09:50:05 -06: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 aaa4f9d72e Add websocket testing script 2025-08-26 10:26:35 +02:00
Henrik Rydgård f44b4e31e6 Merge pull request #20281 from NABN00B/atlas-symbols
Add handpicked symbols group to atlastool
2025-07-10 22:43:36 +02:00
Henrik Rydgård 6b0e9b0989 Implement initial native DualShock/DualSense support 2025-07-03 09:41:03 +02:00
Nab 53ac90e824 Update buildatlas shell scripts 2025-07-02 20:26:22 +00:00
Henrik Rydgård c311cb9fdf Delete WindowsHost.cpp/h 2025-06-28 14:02:12 +02:00
Henrik Rydgård 6271af52e9 Add the new low-latency WASAPI backend. Implement audio device selection on Windows 2025-06-16 22:40:13 +02:00
Henrik Rydgård 990b74cc17 More audio refactoring 2025-06-16 18:48:53 +02:00
Henrik Rydgård db1b87aad1 Remove DirectSound support
Since we no longer support pre-Vista Windows, DirectSound support is no
longer needed. WASAPI is always going to be best.

Soon I'll upgrade our WASAPI backend with a new low-latency mode.
2025-06-16 14:50:48 +02:00
Henrik Rydgård ad00c20660 Windows: Remove ARM32 configurations from project files.
These will never be supported again (and never really were, only used
for Windows Phone testing a long time ago)
2025-06-11 08:55:13 +02:00
Henrik Rydgård 6cfea96e58 Remove D3D9 support, to make future changes easier 2025-06-10 15:07:16 +02:00
Henrik Rydgård 30e0834c0a Remove the legacy CPU test runner from developer tools 2025-05-19 10:47:33 +02:00
Henrik Rydgård a58e24838b PPSSPP.vcxproj: Add a library dependency we'll need later 2025-05-16 22:20:56 +02:00
Henrik Rydgård 670ff21529 Make the Vulkan init flags a proper enum class 2025-04-10 18:16:05 +02:00
oltolm fd8e877591 ppsspp.rc: remove mingw32 specific code
# Conflicts:
#	Windows/aboutbox.rc
2025-01-19 10:32:58 +01:00
oltolm 2d9f5ecc8f dx9sdk: do not use submodule 2025-01-18 11:28:59 +01: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 2cb3bd1cbe Use the dwmapi to disable rounded corners on Windows 11.
Hopefully just ignored on lower windows versions...
2024-04-28 14:27:58 +02:00
Henrik Rydgård e188f3cadc Fix camera on Windows. Forgot to re-enable USE_FFMPEG in the project.
We use FFMPEG's swscaler system for scaling camera images (this should
be changed at some point, though).
2024-04-15 21:23:19 +02:00
Henrik Rydgård 33ba30694a Revert "Disable FFMPEG temporarily to avoid symbol clashes"
This reverts commit 14222f5977e8aa0c167e8879450d84d77df3b1a2.
2024-04-11 14:39:59 +02:00
Henrik Rydgård 8fbc4a3379 Ultra-gross hackery, but works! Now, need to pare it down, heavily... 2024-04-11 14:39:59 +02:00
Henrik Rydgård fb906481cc Disable FFMPEG temporarily to avoid symbol clashes 2024-04-11 14:39:59 +02:00
Henrik Rydgård f680b0bb86 Set USE_FFMPEG in the Windows project (for CaptureDevice.cpp) 2024-04-10 18:40:56 +02:00
Henrik Rydgård 5a8140c301 Initialize RAIntegration support if available. Untested. 2024-04-05 18:15:10 +02:00
Henrik Rydgård ade64171ce Proof-of-concept: libchdr works on Windows 2023-09-29 10:05:19 +02:00
Henrik Rydgård 83e3cf7872 Add winhttp.lib dependency 2023-07-21 10:27:40 +02:00
Nemoumbra 5ca099a747 Scan/remove -> edit symbols 2023-07-17 16:38:24 +03:00