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
Stenzek
e34d23c8e7
FullscreenUI: Implicitly close non-multichoice dialogs
...
Also fixes disc swap using a multichoice instead of single.
2025-01-18 22:59:47 +10:00
Stenzek
227c249d7f
FullscreenUI: Skip SVG prefix if image is not a SVG
2025-01-18 22:59:47 +10:00
Stenzek
c34dda39b7
FullscreenUI: Fix invalidating images with size hints
2025-01-18 22:59:11 +10:00
Stenzek
79245b6cd6
FullscreenUI: Make footer text background semitransparent
2025-01-16 01:14:22 +10:00
Stenzek
7973a91438
FullscreenUI: Make menu item backgrounds slightly transparent
...
Blends with background.
2025-01-14 21:07:00 +10:00
Stenzek
3130e16438
FullscreenUI: Add user-selectable backgrounds
2025-01-14 18:59:42 +10:00
Stenzek
88e18a8659
Image: Fix crash on loading corrupted JPEG file
2025-01-14 13:29:14 +10:00
Stenzek
d3854d095e
AnalogController: Use variant vibration icon for large motor
2025-01-13 19:49:56 +10:00
Stenzek
aaf2a4b614
InputManager: Adjust scope of constants
2025-01-13 16:35:40 +10:00
Stenzek
462a4a3b50
Controller: Refactor so that GetControllerInfo() can't return null
2025-01-13 16:07:43 +10:00
Stenzek
062776c1c7
ImGuiManager: Map left stick to dpad
2025-01-13 14:28:39 +10:00
Stenzek
c45e59fe22
SDLInputSource: Arrays to std::array and forward generic axis
2025-01-13 14:28:28 +10:00
Stenzek
21aef088ed
XInputSource: Arrays to std::array and forward generic axis
2025-01-13 14:25:51 +10:00
Stenzek
9d3c56fe6c
ImGuiManager: Fix data races in input forwarding
2025-01-13 13:52:07 +10:00
Stenzek
17e8930e94
ImGuiManager: Pack state based on thread access
2025-01-13 13:33:15 +10:00
Stenzek
3621705933
Achievements: Ensure loading old states behave the same as new
2025-01-13 13:13:15 +10:00
Stenzek
19ee37cd10
FullscreenUI: Render notifications on top of OSD
2025-01-12 19:14:59 +10:00
Stenzek
e43d7046ba
Achievements: Attempt relogin on system boot
...
And display an error notification if login fails, instead of
invalidating the token.
2025-01-12 17:50:33 +10:00
Stenzek
c43533f8d8
FullscreenUI: Extend achievement overlays to screen margins
...
Fixes overlays getting caught in rounded corners on Android.
2025-01-12 01:02:58 +10:00
Stenzek
36590f3c71
InputManager: Fix crash on controller connect on Windows
2025-01-11 23:29:55 +10:00
Stenzek
234e1f721f
FullscreenUI: Improve controller settings page
...
- Add 'Clear Bindings' menu item.
- Show icons in controller types.
- Add confirmation to Reset Settings.
2025-01-11 21:29:04 +10:00
Stenzek
d6ce322eba
Controller: Use additional icons
2025-01-11 20:51:16 +10:00
Stenzek
e6c0725656
InputManager: Hold lock while manipulating devices/sources
...
Since we're enumerating on the GPU thread now, need to protect it.
2025-01-11 20:28:00 +10:00
Stenzek
2d63b34d48
Qt: Add icons/decorations to input devices
2025-01-11 20:25:11 +10:00
Stenzek
6f9caa6b12
InputManager: Add proper binds for vibration motors
...
Instead of the janky "vibration capabilities" flag.
Fixes the "Clear Mappings" button not applying to vibration motors.
2025-01-11 20:25:11 +10:00
Stenzek
13b85728a0
Qt: Refactor input device/motor tracking
...
Remove multiple sources of truth.
2025-01-11 20:25:11 +10:00
Stenzek
844287b722
FullscreenUI: Fix scrollbar on choice dialog at some screen sizes
...
e.g. game list right click
2025-01-11 20:25:11 +10:00
Stenzek
4b0bb9f70d
FullscreenUI: Increase input dialog padding
...
Way too small.
2025-01-11 20:13:53 +10:00
Stenzek
440aaf2644
FullscreenUI: Modernize achievement popup a bit
2025-01-11 15:07:17 +10:00
Stenzek
ee33044f3d
InputManager: Fix SDL sub-options not copying to profile
2025-01-10 20:42:17 +10:00
Stenzek
7ac4a85765
InputManager: Fix per-bind sensitivity/deadzone not copying to profile
2025-01-10 20:14:21 +10:00
Stenzek
d25cffebd5
GPU/HW: Disable depth testing with semitransparency
...
But provide an option to enable it.
2025-01-09 21:45:14 +10:00
Stenzek
9b339d4bff
PostProcessing: Remove StageCount key for game settings
...
Potentially removes the ini file if it's otherwise empty.
2025-01-09 21:21:12 +10:00
Stenzek
2b4e60a5bf
FullscreenUI: Fix loading screen font
2025-01-09 21:21:12 +10:00
Stenzek
b76ebd2a7b
FullscreenUI: Fix scrollbar rounding in choice dialogs
2025-01-09 17:53:52 +10:00
Stenzek
45afc8f7b1
OpenGLDevice: Add map-based stream buffer paths
...
MapAndSync ends up around 25% faster on ancient Mali drivers without
ARB_buffer_storage support.
2025-01-08 14:14:06 +10:00
Stenzek
0030bc2699
GPUDevice: Ensure 16 byte minimum UBO alignment
2025-01-07 23:20:25 +10:00
Stenzek
4c801c3ff3
GPUDevice: Move size-matches check into ResizeTexture()
2025-01-07 23:20:25 +10:00
Stenzek
0a124ee839
SDLInputSource: Support forwarding touchpad to pointer
2025-01-07 13:40:42 +10:00
Stenzek
2b7b3d8729
SDLInputSource: Allow inverting pad axes
...
Not really sure where this would happen, but whatever.
2025-01-07 13:01:37 +10:00
Stenzek
092e819a07
ImGuiFullscreen: Move texture loading to async tasks
...
Two threads instead of one, speeds things up a bit.
2025-01-07 12:40:08 +10:00
Stenzek
1765590a6f
Qt: Add 'Disable Window Rounded Corners' option
2025-01-05 16:39:57 +10:00
Stenzek
5ee069fc63
FullscreenUI: Add option to display PS buttons instead of Xbox
2025-01-05 16:00:15 +10:00
Stenzek
4d6124d41b
Platform: Fix AppImage dbus library mismatch
2025-01-05 14:08:22 +10:00
Stenzek
6043b2331f
Platform: Fix incorrect dbus shared library name
...
Fixes screensaver inhibit on Linux.
2025-01-04 21:14:46 +10:00
Stenzek
8353a33e89
X11Tools: Fix refresh rate query failing with XLib handle
2025-01-04 18:35:15 +10:00
Stenzek
9054801341
ImGuiManager: Update viewport and display size
...
Fixes the single frame of incorrect draw size when resizing
the window with the Big Picture UI.
2025-01-03 20:16:38 +10:00
Stenzek
52e6e8ff1e
PostProcessing: Compile warning fix
2025-01-03 18:19:12 +10:00
Stenzek
87e367076d
PostProcessing: Get rid of Timer global
2025-01-02 21:40:01 +10:00
Stenzek
ba15a76d7b
ImGuiManager: Pack state in struct
2025-01-02 21:33:53 +10:00
Stenzek
d3fe1dfc2c
ImGuiManager: Separate debug and OSD fonts
...
Don't need to rasterize the former if it's not used, and saves blowing
up the debug window font size if the OSD scale is not 100%.
2025-01-02 21:25:25 +10:00
Stenzek
08cd649187
InputManager: Fix pointer-bound bind movement
...
i.e. psmouse
Regression from c4e0e7fadea0bf4f9da7bdea4335f619a6f14385
2025-01-02 02:10:31 +10:00
Stenzek
1d63648d68
Qt: Forward text input to aux render windows
...
Fixes text input in freecam window.
2025-01-01 22:02:55 +10:00
Stenzek
f51dda3e66
GPUDevice: Allow this-frame pooled textures when not uploading data
...
It won't break the render pass.
2025-01-01 19:38:48 +10:00
Stenzek
d69d25431e
VulkanDevice: Hopefully fix init under Vulkan 1.0 drivers
2024-12-31 23:43:38 +10:00
Stenzek
1bf076c74f
VulkanDevice: Fix crash on shutdown if swapchain creation fails
2024-12-31 15:10:55 +10:00
Stenzek
401582bb2b
PlatformMisc: Load libdbus at runtime
...
The static library can't link to the ARM binary when cross-compiling.
2024-12-30 01:57:08 +10:00
Stenzek
8c807118c0
GPUDevice: End timer on command flush
...
Fixes incorrect GPU usage readings in OpenGL, D3D11 is still
problematic, at least on AMD.
2024-12-28 20:24:21 +10:00
Stenzek
7bb0c7d1fb
InputManager: Fix pointer scale loading
2024-12-28 20:24:21 +10:00
Stenzek
272aa4f933
ImGuiManager: Add Begin/EndTextInput()
2024-12-26 18:00:29 +10:00
Stenzek
00eb54cd15
Achievements: Refactor state serialization
...
Fix load failures, and eliminate the buffer copy.
2024-12-25 22:23:09 +10:00
Stenzek
d010f768c4
FullscreenUI: Fix smooth scrolling in game/state/etc lists
2024-12-25 15:02:09 +10:00
Stenzek
0565320036
ImGuiFullscreen: Enable smooth scrolling for file/choice selectors
2024-12-24 13:54:23 +10:00
Stenzek
c4e0e7fade
InputManager: Fix mouse-mapped axes getting stuck
...
Regression from f0deab2.
2024-12-24 13:52:04 +10:00
Stenzek
f3f99f7eac
FullscreenUI: Support renderer swapping without restart
2024-12-23 14:37:38 +10:00
Stenzek
406cd1b6a1
Qt: Shuffle a couple of graphics options
...
Save a tiny bit of vertical space.
2024-12-23 14:24:17 +10:00
Stenzek
7f1ebd3767
PageFaultHandler: Warning fix
2024-12-22 16:48:45 +10:00
Stenzek
2d659fc3eb
GPU: Move backend work off CPU thread
2024-12-19 23:32:15 +10:00
Stenzek
f010d81652
ISOReader: Add XA and raw extraction modes
2024-12-17 14:19:41 +10:00
Stenzek
b634eecd21
System: Allow separate configuration for multi-disc games
2024-12-16 01:22:48 +10:00
Stenzek
1f1a664908
InputManager: Add missing call to UpdateHostMouseMode()
2024-12-15 22:12:43 +10:00
Stenzek
6e2223b517
OpenGLDevice: Fix surfaceless context switch
2024-12-15 22:09:21 +10:00
Stenzek
fbb411a946
OpenGLDevice: Blacklist fbfetch on PowerVR as well
...
Apparently it's broken, and I don't have any devices with this chip
so I can't find a potential workaround anyway.
2024-12-15 22:07:47 +10:00
Stenzek
5687dd22bd
PIO: Add basic flash cartridge support
2024-12-13 23:22:57 +10:00
Stenzek
8f19912c64
GPU/ShaderGen: Use sample instead of load at 1x as well
...
Consistency. Mali ends up ever-so-slightly faster with sample versus
texel loads, apparently.
Also fixes compile errors when using texture filtering on GLSL ES.
2024-12-13 14:36:21 +10:00
Stenzek
9743ce01a0
OpenGLDevice: Support GLES 3.0
...
Android emulator still doesn't have GLES 3.1...
2024-12-11 22:04:21 +10:00
Stenzek
5eac1e4800
VulkanDevice: Blacklist FSI on AMD Windows
...
Yay for random GPU resets, it's fine on NVIDIA.
2024-12-11 12:46:25 +10:00
Stenzek
0bb83f6fd7
OpenGLDevice: Fix inverted cache file lock
2024-12-10 13:17:06 +10:00
Stenzek
2e6deca76f
FileSystem: Don't use POSIX locks on Android
...
Requires SDK 24, and it's pointless anyway.
2024-12-10 02:26:54 +10:00
Stenzek
1bea8817f1
Host: Add ConfirmMessageAsync()
2024-12-10 02:26:45 +10:00
Stenzek
42535591bc
HTTPDownloader: Log errors on request failure
2024-12-10 02:26:45 +10:00
Stenzek
53c08c52ed
ImGuiFullscreen: Pack state in struct
2024-12-09 15:01:57 +10:00
Stenzek
3a661a1c3d
Cheats: Move file clearing into core
...
Needed for Android.
2024-12-08 02:58:50 +10:00
Stenzek
8c5fadafba
GPUTexture: Add A1BGR5 format
...
Needed for GLES, since RGB5A1 + BGRA + REV isn't listed as
a valid format.
2024-12-06 18:28:09 +10:00
Stenzek
f0c456893c
GPUDevice: Support pre-rotating swap chains
2024-12-06 15:38:51 +10:00
Stenzek
acf04ed67a
GPUDevice: Use row-major matrix packing
...
With column vectors. mul() turns into dot products instead of madds.
2024-12-06 15:10:15 +10:00
Stenzek
9c327af280
GPUDevice: Typedef auto-recycled texture
2024-12-06 15:10:15 +10:00
Stenzek
52feb1a37d
PostProcessing: Improve compile error reporting
2024-12-06 15:10:15 +10:00
Stenzek
c9c4307871
FileSystem: Android build fix
2024-12-06 15:10:15 +10:00
Stenzek
e9644c7eeb
ISOReader: Add file extraction helpers
2024-12-05 16:30:21 +10:00
Stenzek
fe3b4154b7
PostProcessing: Fix crash on UI open with OpenGL
2024-12-03 22:35:49 +10:00
Stenzek
84a1e209ea
OpenGLDevice: Lock pipeline cache on Linux
...
Prevents multiple processes from trampling on one another.
2024-12-03 17:35:07 +10:00
Stenzek
14ff89d0c0
MetalDevice: Fix incorrect pixel format for RGB5A1
2024-12-03 13:28:19 +10:00
Stenzek
e9848a6182
Misc: Collapse more niche log channels
2024-12-01 23:21:33 +10:00
Stenzek
9df59713da
GPUDevice: Put debug messages/scopes behind conditions
...
And completely compile them out in Release builds.
Gets Devel close to Release in terms of performance.
2024-12-01 23:21:33 +10:00
Stenzek
0faa9cf650
Build: Add Devel configuration
...
Gets you debug assertions and logging, while still producing an
optimized executable.
2024-12-01 23:21:33 +10:00
Stenzek
7c627a8c83
Controller: Add JogCon
...
This is probably wrong, but I have no way of testing it with an actual
force feedback wheel.
PRs welcome to improve it further.
2024-12-01 21:17:54 +10:00
Stenzek
f9c125c1a1
InputManager: Add ForceFeedbackDevice interface
2024-12-01 21:08:52 +10:00
Stenzek
145ad2db27
GameList: Fix scanning of ELF files
2024-12-01 13:10:20 +10:00
Stenzek
fa4dc381ed
GPUDevice: Rename RGBA5551 to RGB5A1
...
And fix the incorrect format for Vulkan.
2024-11-30 14:36:07 +10:00
Stenzek
dfacf9e8db
VulkanDevice: Only create swap chain framebuffer without dynamic rendering
2024-11-30 01:09:41 +10:00
Stenzek
aafc029682
Misc: Un-namespace Timer
2024-11-29 20:13:37 +10:00
Stenzek
6cbfab6eca
MetalDevice: Warning fix
2024-11-29 17:13:21 +10:00
Stenzek
dac5dd562b
HTTPDownloader: Improve error reporting
...
Give something human-readable when an error occurs.
2024-11-29 14:00:55 +10:00
Stenzek
b97788a35a
PostProcessing/FX: Force native paths for includes
2024-11-27 13:18:11 +10:00
Stenzek
57595c47af
GPU/TextureCache: Move replacement cache onto the GPU
...
And enforce a maximum. Should sort out the upload spam.
2024-11-25 19:37:28 +10:00
Stenzek
4a650fcce2
GPUDevice: Fix VRAM usage calculation for compressed textures
2024-11-25 18:44:35 +10:00
Stenzek
982dccb990
D3D12Device: Clang warning fixes
2024-11-25 16:30:23 +10:00
Stenzek
ae14c8715d
Image: Support decompressing BC1-7
2024-11-24 23:29:29 +10:00
Stenzek
8567293103
Util: Add TextureDecompress
2024-11-24 23:29:29 +10:00
Stenzek
7eb1d4e092
GPUDevice: Support compressed textures
2024-11-24 23:29:29 +10:00
Stenzek
24dfd30839
Image: Refactor to a more generic class
2024-11-24 23:29:29 +10:00
Stenzek
3ff1b04576
GPUDevice: Support generating mipmaps
2024-11-24 23:29:28 +10:00
Stenzek
e647192437
GPUDevice: Add compute shader support
2024-11-24 23:29:28 +10:00
Stenzek
c970740d12
InputManager: Workaround macro chord trigger issue
2024-11-24 21:54:43 +10:00
Stenzek
e987b56aae
Log: Remove unused ISOReader channel
2024-11-23 18:59:10 +10:00
Stenzek
5bcf99fc11
CDImage: Merge bin/ecm handling into one class
...
Means that cuesheets with ECM tracks will now load as expected.
2024-11-23 18:52:46 +10:00
Stenzek
5c03e1d940
Misc: Fix alignment errors on ARM32
2024-11-23 18:52:45 +10:00