862 Commits

Author SHA1 Message Date
Stenzek
f55961593a
PostProcessing: Display compile errors in OSD 2025-04-06 23:16:03 +10:00
Stenzek
979ad979b9
PostProcessing/FX: Add support for compute shaders 2025-04-06 23:16:03 +10:00
Stenzek
1aabcf1ba7
PostProcessing/FX: Alternate between two 'backbuffers'
Saves video memory, and also fixes shaders that expect each pass's input
to be the output of the previous path without explicitly referencing the
render target.
2025-04-06 23:16:03 +10:00
Stenzek
80cfe59dbe
PostProcessing/FX: Allow use of fixed-size render targets
Also obey the ClearRenderTarget flag.
2025-04-06 23:16:03 +10:00
Stenzek
4e7fdc8dbd
PostProcessing/FX: Allow frametime as int
But the value will be bogus.
2025-04-06 23:16:03 +10:00
Stenzek
eca113cd76
GPUDevice: Fix/improve compute shader support
Add multiple texture layout with/without UBO.
2025-04-06 23:16:02 +10:00
Stenzek
bbdc6ab4e0
Misc: Fix a bunch of code analysis warnings
Quite a few of these were legitimate.
2025-04-03 19:29:03 +10:00
Stenzek
acd684bca2
D3D12Device: Fix a couple of errors in ROV handling 2025-03-30 23:41:51 +10:00
Stenzek
b798d8f1aa
Settings: Add option for enabling GPU-based validation 2025-03-30 23:20:39 +10:00
Stenzek
3292833fb8
FullscreenUI: Add option to turn off animations 2025-03-30 15:58:48 +10:00
Stenzek
04c5a9f1b2
FullscreenUI: Improve leaderboard text contrast 2025-03-30 15:43:15 +10:00
Stenzek
e6e6313219
FullscreenUI: Add offscreen-based screen fade 2025-03-30 15:22:46 +10:00
Stenzek
4e2872f248
FullscreenUI: Fix consecutive choice dialogs 2025-03-30 14:45:26 +10:00
Stenzek
9bcd738f5c
FullscreenUI: Make save state selector a main window
More reliable, saves messing around with popups.
2025-03-30 14:45:26 +10:00
Stenzek
37230107f4
FullscreenUI: Run idle while notifications/toasts are onscreen 2025-03-29 20:06:09 +10:00
Stenzek
730fa67952
FullscreenUI: Darken titled toast text 2025-03-29 20:06:09 +10:00
Stenzek
3cf2f41723
FullscreenUI: Fix crash changing renderer 2025-03-29 20:06:09 +10:00
Stenzek
0687e59bda
FullscreenUI: Rewrite popup dialog handling
Add animations, fix background dimming.
2025-03-29 17:57:37 +10:00
Stenzek
9ef7f54f19
FullscreenUI: Enable all windows to nav-wrap
i.e. when pressing down at the end, it wraps to the top.
2025-03-28 20:38:31 +10:00
Stenzek
6f2225fb61
FullscreenUI: Remove redundant ActiveButton() and friends 2025-03-28 19:45:52 +10:00
Stenzek
f80a77fa27
FullscreenUI: Fix popup item border going outside of window 2025-03-28 19:27:24 +10:00
Stenzek
03d7af2efc
FullscreenUI: Add border rounding to menu items 2025-03-23 16:42:24 +10:00
Stenzek
2d477f80b0
Qt: Add tooltips to setup wizard graphics settings
Same strings as the main graphics settings page, so translation should
be just a matter of accepting them as-is.
2025-03-22 18:32:31 +10:00
Stenzek
3ab3e4be06
ImGuiManager: Tweak OSD message rounding 2025-03-22 18:20:51 +10:00
Stenzek
6eddc0b982
GPUDevice: Don't allow copy-resize between different formats
That's a spec violation.
2025-03-22 01:11:23 +10:00
KamFretoZ
e5cec05633
Qt/BPM: Add Green Giant Theme (#3390)
WHAT ARE YE DOING IN MY SWAMP???
2025-03-20 21:16:45 +10:00
Stenzek
27fc7de07a
FullscreenUI: Add translucency/shadow to achievement notifications 2025-03-15 16:27:43 +10:00
Stenzek
61de096d26
FullscreenUI: Add status text (left side of footer) 2025-03-15 15:58:22 +10:00
Stenzek
2a86faa51e
FullscreenUI: Replace landing icons with colourable icons 2025-03-15 13:56:29 +10:00
Stenzek
4bac7cb79e
FullscreenUI: Fix some dialogs not being cancellable
i.e. exitable with right mouse click/B button.
2025-03-15 02:18:20 +10:00
KamFretoZ
db3b689166
FullscreenUI: Add Dark Ruby theme (#3389) 2025-03-15 02:17:54 +10:00
Stenzek
1189f53840
FullscreenUI: Add 'Automatic' theme that syncs with Qt 2025-03-15 00:42:02 +10:00
Stenzek
3d0f038697
FullscreenUI: Move game list settings to main tab
And add resume to game list/grid.
2025-03-14 23:53:50 +10:00
Stenzek
6c867859bf
FullscreenUI: Apply theme to loading screen 2025-03-14 23:07:14 +10:00
Stenzek
cffafad2ca
ImGuiManager: Use fullscreen UI theme for OSD 2025-03-14 22:36:14 +10:00
Stenzek
b6fa2cecd3
FullscreenUI: Fix shadowed text alpha again 2025-03-14 22:36:14 +10:00
Stenzek
c57689cc90
FullscreenUI: Inherit colour alpha for shadowed text 2025-03-14 21:21:56 +10:00
Stenzek
e422afdec1
FullscreenUI: Improve achievements pause menu overlays
- Add most recent unlock/nearest completion.
- Make it look nicer and better fit with the rest of the interface.
2025-03-14 20:50:20 +10:00
Stenzek
ba3295930c
VulkanDevice: Allow 0x0 window size
Fixes minimizing in render-to-separate-window mode.
2025-03-12 23:54:25 +10:00
KamFretoZ
4fc49ee0ca
FullscreenUI: Tweak the highlight background color (#3387) 2025-03-12 23:54:15 +10:00
Stenzek
44af55a77f
FullscreenUI: Differentiate title/subtitle colours
Makes it easier to read.
2025-03-12 01:46:04 +10:00
Stenzek
72a0ba1e8e
FullscreenUI: Fix pause menu light theme shadow colour 2025-03-12 00:19:32 +10:00
Stenzek
aeadd4c280
FullscreenUI: Move game info to top of pause menu 2025-03-11 23:19:00 +10:00
Stenzek
492a55ee8b
FullscreenUI: Add icons to achievement list categories 2025-03-11 22:27:08 +10:00
Stenzek
160f1ea8a0
Qt: Fix vibration motor binding not showing some devices 2025-03-06 22:41:09 +10:00
KamFretoZ
38146f2023
FullscreenUI: Fix toast colors and add more themes (#3381) 2025-03-02 12:01:27 +10:00
Stenzek
34fdbafe85
FullscreenUI: Add drop shadows to most text
Improves readability with custom backgrounds.
2025-03-01 16:00:05 +10:00
Stenzek
9bfc3e90cc
FullscreenUI: Hook up dynamic toast colour 2025-03-01 13:10:50 +10:00
Stenzek
9d9da94b7b
FullscreenUI: Default to dark theme on unknown value 2025-03-01 13:10:50 +10:00
KamFretoZ
5dc0a3630a
FullscreenUI: Add Themes (#3380) 2025-03-01 12:41:06 +10:00
Stenzek
89d9842c7e
FullscreenUI: Fix popup title colours 2025-03-01 01:11:26 +10:00
Stenzek
ec7c83a58e
Settings: Fix race toggling OSD messages 2025-02-28 16:29:18 +10:00
Stenzek
df9f15eb68
OpenGLDevice: Support SDL window type 2025-02-28 16:29:18 +10:00
Stenzek
ee1a3b904e
VulkanDevice: Support SDL window type 2025-02-28 15:46:53 +10:00
Stenzek
4bddd38d70
WindowInfo: Add SDL window type 2025-02-28 15:46:53 +10:00
Stenzek
498e7aac56
X11Tools: Load libxcb and friends dynamically 2025-02-28 15:46:53 +10:00
Stenzek
bceadadcb4
Image: Fix possible unaligned movaps 2025-02-14 22:51:29 +10:00
Stenzek
dc6d6b91d4
PostProcessing: Fix abort on slow compile in big picture 2025-02-14 19:01:40 +10:00
Stenzek
b68d7c8adb
Image: Vectorize RGBA8 conversion and add A1BGR5 2025-02-14 19:01:40 +10:00
Stenzek
9b2cf0abbd
InputSource: Fix Wcast-function-type-mismatch 2025-02-14 19:01:40 +10:00
Stenzek
5913de947f
VulkanDevice: Fix incorrect texture format for A1BGR5 2025-02-14 19:01:40 +10:00
Stenzek
7bc18c8538
DDGoController: Rewrite to support axis input
And add virtual buttons for each of the possible states.
2025-02-12 21:52:02 +10:00
Stenzek
2663ac9666
CDImage: Improve PBP load error reporting 2025-02-08 17:33:58 +10:00
Stenzek
acb355a8c3
CDImage: Make .bin loader track length match .cue
Fixes different hashes for loading single-track .bin games directly.
2025-02-08 15:02:56 +10:00
Stenzek
f2cca01e29
ImGuiManager: Fix achievement unlock icon not showing 2025-02-08 01:46:44 +10:00
Stenzek
063bb96e5d
D3D11Device: Always query timestamp before present start
Fixes high GPU usage reporting in D3D11 with AMD GPUs + Optimal Frame
Pacing.
2025-02-07 15:58:35 +10:00
Stenzek
bee2dabc77
Misc: Replace stringstream str() with C++20 move str()
No extra heap allocation/copy.
2025-02-05 22:38:48 +10:00
Stenzek
c6563a4656
VulkanDevice: Require Vulkan 1.1 for most extension probing
Too much of a headache to deal with these ancient Mali drivers that
support some extensions but not full Vulkan 1.1, and VMA does not
support this scenario.
2025-02-04 17:15:29 +10:00
Stenzek
64d3716cfd
GPU: Further simplify draw rect calculation
Remove "Stretch Vertically" option, it was very confusing to users.

Integer scale will prefer whichever direction gets a larger draw
rectangle/preserves as much detail.
2025-02-02 17:02:58 +10:00
Stenzek
b5925ab139
Achievements: Include any codepoints above 0x100 in dynamic range 2025-01-31 13:48:57 +10:00
Stenzek
9b6021b79e
FullscreenUI: Fix progress bar padding in loading screen 2025-01-30 01:43:22 +10:00
Stenzek
128bab29f8
Host: Allow button title override in ConfirmMessageAsync() 2025-01-29 19:19:53 +10:00
Stenzek
4da7692a2d
System: Adjust initialization order to better fit FullscreenUI
Fixes jankyness of rendering the landing page when trying to resume
a game with achievements active, or when loading state.
2025-01-29 19:19:53 +10:00
Stenzek
1b678d0ebc
FullscreenUI: Allow using right mouse button for 'back' 2025-01-29 19:19:53 +10:00
Stenzek
231ba050a2
GPUThread: Switch to borderless if exclusive fullscreen fails
Better than ending up windowed.
2025-01-29 18:20:41 +10:00
Stenzek
5630f3958b
Qt: Fix loading webp images on Windows 2025-01-26 14:01:42 +10:00
Stenzek
0e3668a7bb
GameList: Show achievement information in game list 2025-01-26 13:49:08 +10:00
Stenzek
543704d57c
HTTPDownloader: Drop some log messages to debug 2025-01-25 22:35:06 +10:00
Stenzek
4e97420b3b
InputManager: Switch to SDL3 2025-01-24 15:54:31 +10:00
Stenzek
9113a6e6a6
Qt: Add 'Multiple Devices' to automatic mapping
Also populate the "current device" label with the device from
the config when running the setup wizard, instead of always setting
the label to Keyboard.
2025-01-22 18:38:37 +10:00
Stenzek
0166939609
PostProcessing/GLSL: Clear alpha to 1.0 2025-01-22 18:23:12 +10:00
Stenzek
be75a97efe
GPUDevice: Fix swap chain clear colour normalization 2025-01-22 18:23:11 +10:00
Stenzek
fb3e290133
GPUDevice: Move exclusive fullscreen to features
Also fixes it not enabling in D3D12 renderer.
2025-01-21 19:12:44 +10:00
Stenzek
389276bb03
GPUDevice: Normalize supports_texture_buffers => texture_buffers 2025-01-21 19:06:59 +10:00
Stenzek
f219b47e98
FullscreenUI: Use constant width/height scale on Android
Fixes achievement notifications being differently sized
depending on the screen rotation.
2025-01-20 00:01:46 +10:00
Stenzek
7c2488c942
PostProcessing/GLSL: Fix image moved off-screen with alignment 2025-01-19 21:40:38 +10:00
Stenzek
c03b6f3d84
Misc: Replace isspace() usage with StringUtil::IsWhitespace()
Avoids the UB if the character is negative (e.g. reading from a binary
file), as well as locale-specific rubbish.
2025-01-19 21:29:14 +10:00
Stenzek
21b167d382
CDImage: Tidy up Open() method 2025-01-19 21:29:14 +10:00
Stenzek
9fdeeb3fb6
GPU: Add alpha blending support to overlay 2025-01-19 16:37:51 +10:00
Stenzek
e1cbb50c64
GPU: Fix various capture/screenshot issues
- Simplify functions for rendering display.

- Post-processing should only when the target size matches the window.
  Otherwise the shaders are constantly recompiled.

- Include border overlay in capture/screenshots when above condition
  is satisfied.

- Relax video alignment size when using screen resolution + auto.

- Fix "Internal Resolution (Uncorrected)" capture mode.
2025-01-19 13:42:38 +10:00
Stenzek
6131ddbefe
GPU: Fill in unused/padded area in overlays 2025-01-18 22:59:49 +10:00
Stenzek
88b43370dc
GPUDevice: Replace explicit GL_PUSH/GL_POP with nested GL_SCOPE 2025-01-18 22:59:49 +10:00
Stenzek
d62261e7a4
GPUDevice: Allow nested GL_SCOPE macros 2025-01-18 22:59:49 +10:00
Stenzek
e0a9bbe600
PostProcessing: Move into GPU presenter
Means that the renderer can be changed without reloading shaders,
and speeds up config change detection.
2025-01-18 22:59:48 +10:00
Stenzek
d589696eff
PostProcessing: Get rid of GPU-dependent globals 2025-01-18 22:59:48 +10:00
Stenzek
338d29d271
GPUDevice: Move empty/null texture to base class 2025-01-18 22:59:48 +10:00
Stenzek
609fa5c7d7
GPUDevice: Add sampler cache to base class
Removes per-backend bookkeeping in D3D12 and Vulkan.
2025-01-18 22:59:48 +10:00
Stenzek
dd9788262e
GPU: Refactor display presentation workflow
Adds the ability to set overlays, and fixes postfx with prerotation.
2025-01-18 22:59:48 +10:00
Stenzek
e41f179108
PostProcessing: Fix erroneous reload message 2025-01-18 22:59:48 +10:00
Stenzek
7cc47551a4
FullscreenUI: Fix parent scroll resetting on directory change 2025-01-18 22:59:48 +10:00