Commit Graph

10992 Commits

Author SHA1 Message Date
Connor McLaughlin
4ad2d60dca
Qt; Remove updateDisplayWindow on unexpected ID change
Some checks are pending
Automated Builds / 💻 Windows (push) Waiting to run
Automated Builds / 🐧 Linux AppImage (push) Waiting to run
Automated Builds / 🐧 Linux Cross-Compiled AppImage (push) Waiting to run
Automated Builds / 🍎 MacOS (push) Waiting to run
Automated Builds / 📤 Create Release (push) Blocked by required conditions
Removed call to updateDisplayWindow when window ID changes unexpectedly.

Wrong thread. I'll think about this later.
2025-12-28 03:13:15 +10:00
Stenzek
c1b970cc06
Qt: Hopefully avoid some false positive error logs 2025-12-28 01:57:52 +10:00
Stenzek
5346a274ae
Qt: Cache window handle for size updates
Apparently calling winId() during window resizes ends up with a bad
m_surface pointer inside the QWindowsWindow...

I don't feel like debugging Qt any further, so this will be sufficient.
Plus it's faster.
2025-12-28 01:37:20 +10:00
Davide Pesavento
a2d95a1ba5
FullscreenUI: Change a few icons 2025-12-27 23:51:53 +10:00
Davide Pesavento
6c46b0cfe8
Deps: Update FontAwesome to 7.1.0 2025-12-27 23:51:50 +10:00
Davide Pesavento
84ff881721 Deps: Remove version number from FontAwesome header
Reduces code churn on version bumps.
2025-12-27 23:42:26 +10:00
Stenzek
f07b726c67
Qt: Sync after creating widget on Linux
We want to avoid nested event loops as much as possible because it's problematic on MacOS.
I removed the sync/processEvents() here for this reason, except of course fucking Linux throws
a wrench in the plan. On Windows and MacOS, calling show() and showFullscreen() will send resize
events with the correct size before returning. On Linux with X11 and Wankland, it doesn't.

So we have to force a processEvents() here to ensure the display widget is the correct size,
otherwise we'll see a glitched frame at the windowed size when starting fullscreen. Linux is
the odd one out again, as usual. Note: QGuiApplication::sync() is supposed to pump events
before and after syncing, but it seems this alone is not sufficient for getting the resize.
2025-12-27 23:35:47 +10:00
Stenzek
a4657fbcbb
Qt: Catch show events for resize too 2025-12-27 23:35:19 +10:00
Stenzek
570a7042a6
OpenGLContextAGL: Compile fix
Not built on CI, so didn't notice.
2025-12-27 23:34:57 +10:00
Stenzek
213d3efdf7
GPUDevice: Unload persistent libraries on shutdown
Some checks are pending
Automated Builds / 💻 Windows (push) Waiting to run
Automated Builds / 🐧 Linux AppImage (push) Waiting to run
Automated Builds / 🐧 Linux Cross-Compiled AppImage (push) Waiting to run
Automated Builds / 🍎 MacOS (push) Waiting to run
Automated Builds / 📤 Create Release (push) Blocked by required conditions
2025-12-27 23:02:55 +10:00
Stenzek
739b0734bc
CodeCache: Don't try to handle page faults when shutting down 2025-12-27 23:00:02 +10:00
Stenzek
21abd24870
Deps: Ensure PDBs get generated for Qt plugins
Some checks are pending
Automated Builds / 💻 Windows (push) Waiting to run
Automated Builds / 🐧 Linux AppImage (push) Waiting to run
Automated Builds / 🐧 Linux Cross-Compiled AppImage (push) Waiting to run
Automated Builds / 🍎 MacOS (push) Waiting to run
Automated Builds / 📤 Create Release (push) Blocked by required conditions
Need to debug a crash in Qt...
2025-12-26 23:23:01 +10:00
Stenzek
c206bd6311
FullscreenUI: Fix incorrect icon for macro buttons
Some checks are pending
Automated Builds / 💻 Windows (push) Waiting to run
Automated Builds / 🐧 Linux AppImage (push) Waiting to run
Automated Builds / 🐧 Linux Cross-Compiled AppImage (push) Waiting to run
Automated Builds / 🍎 MacOS (push) Waiting to run
Automated Builds / 📤 Create Release (push) Blocked by required conditions
2025-12-26 16:20:23 +10:00
Stenzek
d2c8df97f9
FullscreenUI: Fix sound on mouse click for some popups
Should only play sound effect using keyboard/gamepad navigation.
2025-12-26 16:20:23 +10:00
Stenzek
9904c5fbb3
FullscreenUI: Fix macro pressure/deadzone dialogs 2025-12-26 16:20:23 +10:00
Stenzek
7c401777a8
Deps: Build Brotli
For woff2 font loading.
2025-12-26 16:20:23 +10:00
Stenzek
c20f8d1ec4
Deps: Version updates
libjpeg-turbo: 3.1.3
libpng: 1.6.53
zlib-ng: 2.3.2
ffmpeg: 8.0.1
2025-12-26 16:20:23 +10:00
Stenzek
ef2cf6e223
System: Fix missing subchannel not blocking startup
Some checks failed
Translation Lint / translation-lint (push) Has been cancelled
GameDB Lint / gamedb-lint (push) Has been cancelled
Automated Builds / 💻 Windows (push) Has been cancelled
Automated Builds / 🐧 Linux AppImage (push) Has been cancelled
Automated Builds / 🐧 Linux Cross-Compiled AppImage (push) Has been cancelled
Automated Builds / 🍎 MacOS (push) Has been cancelled
Automated Builds / 📤 Create Release (push) Has been cancelled
I only tested the escape hatch, not the intended path...
2025-12-26 02:09:06 +10:00
Stenzek
682a3b3eb9
FullscreenUI: Only delete sound stream on full shutdown
Not when changing renderers.
2025-12-26 01:57:17 +10:00
Stenzek
5933489456
ImGuiManager: Reduce possible false sharing when adding events 2025-12-26 01:57:15 +10:00
Stenzek
6146769d85
Settings: Restore a few missing defaults in Safe Mode 2025-12-26 01:57:07 +10:00
Víctor "IlDucci
e70ae0be06
Spanish (Spain) translation update 2025/12/25 (#3669)
- Translated the latest batch of strings.
- Minor additional tweaks.
2025-12-26 01:57:00 +10:00
Stenzek
e2aa1ae24c
Qt: Fix handling of mouse double-click events
Some checks failed
Automated Builds / 💻 Windows (push) Waiting to run
Automated Builds / 🐧 Linux AppImage (push) Waiting to run
Automated Builds / 🐧 Linux Cross-Compiled AppImage (push) Waiting to run
Automated Builds / 🍎 MacOS (push) Waiting to run
Automated Builds / 📤 Create Release (push) Blocked by required conditions
GameDB Lint / gamedb-lint (push) Has been cancelled
- Fixes double-click events with mouse binds getting dropped.
- Fixes early release event when toggling fullscreen.
2025-12-25 19:56:26 +10:00
Davide Pesavento
182075675d CI: Minimize workflow permissions 2025-12-25 17:29:46 +10:00
Davide Pesavento
9aaaf14e85 CI: Stricter yamllint config 2025-12-25 17:29:46 +10:00
Davide Pesavento
ff747dde38 CI: Use ubuntu-slim runner for lint jobs 2025-12-25 17:29:46 +10:00
Davide Pesavento
1bc30de66f CI: Update actions 2025-12-25 17:29:46 +10:00
Stenzek
25790d704b
InputManager: Register for device notifications with XInput
Some checks are pending
Automated Builds / 💻 Windows (push) Waiting to run
Automated Builds / 🐧 Linux AppImage (push) Waiting to run
Automated Builds / 🐧 Linux Cross-Compiled AppImage (push) Waiting to run
Automated Builds / 🍎 MacOS (push) Waiting to run
Automated Builds / 📤 Create Release (push) Blocked by required conditions
Translation Lint / translation-lint (push) Waiting to run
I forgot that I apparently don't poll active controllers.

Fixes controller hotplugging with XInput.
2025-12-25 13:52:30 +10:00
Stenzek
31764738c6
InputSource: Remove before calling OnInputDeviceDisconnected()
Fixes background polling interval not decreasing after last device
disconnects.
2025-12-25 13:51:29 +10:00
Anderson Cardoso
3253cc5bed
Atualização Português do Brasil (#3667)
Atualizado para a última versão.
2025-12-25 13:50:32 +10:00
Stenzek
4b9154b45d
Hotkeys: Add hotkey to toggle texture modulation cropping
Some checks failed
Automated Builds / 💻 Windows (push) Has been cancelled
Automated Builds / 🐧 Linux AppImage (push) Has been cancelled
Automated Builds / 🐧 Linux Cross-Compiled AppImage (push) Has been cancelled
Automated Builds / 🍎 MacOS (push) Has been cancelled
Automated Builds / 📤 Create Release (push) Has been cancelled
2025-12-24 02:00:06 +10:00
Stenzek
88ca6cf40a
README: Add instructions for resource overrides 2025-12-24 01:51:45 +10:00
Stenzek
b55f4041bf
GPU: Add option to crop vertex colours before modulation
aka "old" GPU.
2025-12-24 01:23:01 +10:00
Stenzek
ad0312ec82
Settings: Free up space in GPUSettings struct 2025-12-24 00:16:44 +10:00
Stenzek
56d79c76a7
GPU: Extract heavier helper functions to own header
Some checks failed
Automated Builds / 💻 Windows (push) Waiting to run
Automated Builds / 🐧 Linux AppImage (push) Waiting to run
Automated Builds / 🐧 Linux Cross-Compiled AppImage (push) Waiting to run
Automated Builds / 🍎 MacOS (push) Waiting to run
Automated Builds / 📤 Create Release (push) Blocked by required conditions
GameDB Lint / gamedb-lint (push) Has been cancelled
2025-12-23 20:00:58 +10:00
Stenzek
095fef524d
GPUDevice: Extract enums to own file
Further reduction of indirect includes.
2025-12-23 19:52:33 +10:00
Stenzek
9370642434
Deps: Update rcheevos to v12.2.0 2025-12-23 19:34:29 +10:00
Stenzek
7bc32cdfa2
VulkanDevice: Swap EXT for KHR in structure type
No net difference.
2025-12-23 18:27:01 +10:00
Stenzek
822d756538
CubebAudioStream: Add missing layout mapping
Not actually used in DuckStation but one fewer patch I have to maintain.
2025-12-23 18:24:21 +10:00
Stenzek
9bcf23fa9b
GameDB: Set PGXP-CPU for Vagrant Story
Fixes jitter in attack outline.
2025-12-23 18:24:05 +10:00
Stenzek
a1aa038623
VulkanDevice: Use KHR variants of surface/swapchain maintenance
AMD doesn't support the EXT variant.
2025-12-23 16:43:21 +10:00
Stenzek
41a000c0f1
Deps: Update Vulkan-Headers to v1.4.337 2025-12-23 16:36:17 +10:00
Stenzek
69458bd90b
VulkanDevice: Persist instance throughout launches
Testing with AMD on Windows and LLVMPipe on Linux, creating and
destroying a Vulkan instance appears to leak around 20-30MB of memory.

Just keep the thing around for the whole time. Reduces startup time too,
so everyone wins. Unless you're switching renderers all the time, then
you lose a bit of memory.
2025-12-23 16:22:33 +10:00
Stenzek
e13b9a0c17
WindowInfo: Extract type into global namespace 2025-12-23 16:10:45 +10:00
Stenzek
f4c752a99f
Qt: Extract window info functions to own file
More include reduction.
2025-12-23 16:10:45 +10:00
Stenzek
5b789be901
GPUDevice: Extract texture format to global namespace
Avoid pulling in gpu_texture.h and indirect includes just for this.
2025-12-23 16:10:45 +10:00
Stenzek
c3415c4891
VulkanDevice: Rearrange fields for locality 2025-12-23 12:50:16 +10:00
Stenzek
5a7acfe730
Qt: Populate graphics adapters asynchronously
Some checks are pending
Automated Builds / 💻 Windows (push) Waiting to run
Automated Builds / 🐧 Linux AppImage (push) Waiting to run
Automated Builds / 🐧 Linux Cross-Compiled AppImage (push) Waiting to run
Automated Builds / 🍎 MacOS (push) Waiting to run
Automated Builds / 📤 Create Release (push) Blocked by required conditions
More time saved when opening the settings window.
2025-12-23 01:52:06 +10:00
Stenzek
fbdd2689b1
Qt: Populate audio devices asynchronously
Save another 40-60ms when opening the window on my system. That's a few
frames at least!
2025-12-23 01:52:06 +10:00
Stenzek
edd3df899a
Qt: Fix noreturn warning in Host::ReportFatalError() 2025-12-23 01:52:06 +10:00