700 Commits

Author SHA1 Message Date
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
Stenzek
5d8519897d
Image: Fix uninitialized read without SIMD 2024-11-23 18:52:45 +10:00
Stenzek
0079f7a285
CDImageCue: Support reading .wav files (WAVE cuesheet files) 2024-11-23 18:52:43 +10:00
Stenzek
ca9af62f92
FullscreenUI: Add a BP achievements login dialog 2024-11-20 13:44:39 +10:00
Stenzek
b59f9a1270
ImGuiManager: Plumb through clipboard access 2024-11-20 13:38:52 +10:00
Stenzek
81e2619e91
FullscreenUI: Add missing icon 2024-11-19 20:35:07 +10:00
Stenzek
ed78a20ea7
FullscreenUI: More icon replacements 2024-11-17 13:23:03 +10:00
Stenzek
725530984c
FullscreenUI: Move remaining OSD settings to main page 2024-11-16 22:03:58 +10:00
Stenzek
49a6ef7aca
FullscreenUI: Add icons to remaining options 2024-11-16 21:56:32 +10:00
Stenzek
854319441c
ImGuiFullscreen: Fix position resetting to top of list on popup close 2024-11-16 19:36:12 +10:00
Stenzek
d5e2db0dee
Misc: Fix new clang-cl warnings 2024-11-16 14:06:14 +10:00
Stenzek
49b669c8be
Qt: Make image verification cancellable 2024-11-16 14:01:44 +10:00
Stenzek
41a89123c9
VulkanDevice: Work around older NVIDIA driver present bug 2024-11-16 00:19:03 +10:00
Stenzek
c2316dfdc8
InputManager: Fix relative mode engaging for gun controllers
It still needs to activate when using raw input.
2024-11-14 00:17:28 +10:00
Stenzek
e69f0d3cce
OpenGLDevice: Support both XCB and Xlib
Required for NVIDIA+XWayland.
2024-11-11 20:12:26 +10:00
Stenzek
816ef45199
OpenGLDevice: Fix possible missing eglMakeCurrent() after FS 2024-11-11 20:12:23 +10:00
Stenzek
92bcf64fe8
VulkanDevice: Refactor present failure handling
Shouldn't deadlock anymore...
2024-11-10 17:52:12 +10:00
Stenzek
0234137be4
VulkanDevice: Use VK_EXT_surface_maintenance1
NVIDIA drivers return a minImageCount of 3 with the base surface query
capability, but require 4 images for XWayland in immediate present mode.
2024-11-10 17:52:12 +10:00
Stenzek
b70a8482bd
OpenGLDevice: More verbose logging of surface creation failure 2024-11-10 17:52:12 +10:00
Stenzek
2bf0838634
MetalDevice: Fix import of non-page-aligned buffers 2024-11-10 14:01:54 +10:00
Stenzek
a6c19cc90b
OpenGLContext: Compile fix on MacOS 2024-11-08 18:05:26 +10:00
Stenzek
c461ad7b44
D3D11Device: Ensure we don't drop to feature level 10 on query failure 2024-11-07 22:24:33 +10:00
Stenzek
886ef4cc59
WAVWriter: Add matching reader class 2024-11-06 13:46:48 +10:00
Stenzek
ead9e56c4d
System: Support loading ELF files 2024-11-05 17:54:12 +10:00
Stenzek
57ca5dd2c2
ImGuiFullscreen: Default input source to keyboard if none 2024-11-05 14:12:43 +10:00
Stenzek
f889136227
PostProcessing: Don't try other types after first failure 2024-11-05 13:26:32 +10:00
Stenzek
bcd5cd0027
GPU/ShaderGen: Fix debug assert tripping with fbfetch 2024-11-05 13:13:29 +10:00
Stenzek
bb740499a5
CDImageCHD: Show precaching in MB 2024-11-04 12:34:49 +10:00
Stenzek
8c4d595a89
Qt: Make input source selection non-inheritable
Makes sense to set this in the profile specifically,
given it is tied to devices.
2024-11-03 20:17:56 +10:00
Stenzek
6551358212
Log: Replace channel string search with bitset
Knocks off around ~20KB of code.
2024-10-31 14:41:33 +10:00
Stenzek
d24e8fda83
GPU/HW: Only enable fbfetch/DSB when needed
Thanks Adreno...
2024-10-30 15:19:10 +10:00
Stenzek
aa0c0068ce
GPU/HW: Move shadergen parameters to functions 2024-10-27 13:50:47 +10:00
Stenzek
080807e557
CDROM: Move subchannel replacement from CDImage
This will allow you to use SBI/LSD files with real discs, if your
drive does not support reading subchannels, or has an incorrect
skew.
2024-10-25 15:35:12 +10:00
Stenzek
a8d846ac8f
Cheats: Use libzip for reading archive 2024-10-22 21:25:27 +10:00
Stenzek
4963dc1759
Host: Make resource routines fill error object 2024-10-22 20:41:33 +10:00
Stenzek
3a76485e4b
CompressHelpers: Support XZ compression/decompression 2024-10-22 19:40:02 +10:00
Stenzek
164c043e1b
InputManager: Add pressure/deadzone to macros
Arguably less useful than on the PS2, but is still applicable
to the left/right analog sticks.
2024-10-22 19:39:56 +10:00
Stenzek
0d3501d435
Misc: Pass SettingsInterface by const reference 2024-10-20 23:59:47 +10:00
Stenzek
056b629837
ImGuiManager: Add 'Screen Margins' (i.e. safe zone) 2024-10-20 13:17:22 +10:00
Stenzek
41c709ef6f
CMake: Reference shaderc/spirv-cross unconditionally
Should fix build with Vulkan disabled.
2024-10-19 13:15:00 +10:00
Stenzek
854a109a0f
Qt: Qt 6.8 deprecation fixes 2024-10-18 22:25:31 +10:00
Stenzek
6dc2f0a60b
Host: Add 'Auxiliary Render Windows'
i.e. debugging windows
2024-10-18 20:48:30 +10:00
Stenzek
eb46142ee7
GPUDevice: Extract swap chain to separate class 2024-10-18 20:48:29 +10:00
Stenzek
c6055affbf
OpenGLDevice: Fix invalidating pipeline cache on Windows 2024-10-18 20:48:29 +10:00
Stenzek
e0b6f6f1b2
Cheats: Rewrite cheat management system 2024-10-13 16:43:22 +10:00
Stenzek
38a331fde4
ImGuiFullscreen: Support loading SVGs 2024-10-11 22:52:11 +10:00
Stenzek
3e26b7ab73
Image: Support rendering SVGs 2024-10-11 22:52:11 +10:00
Stenzek
3d5503612b
Image: Span and Error-ify 2024-10-11 22:52:11 +10:00
Stenzek
8680900788
ImGuiFullscreen: Fix horizontal menu items getting clipped 2024-10-11 22:52:11 +10:00
Stenzek
83a1386d0b
FullscreenUI: Collapse macro button settings by default 2024-10-11 21:40:35 +10:00
Stenzek
7ce4c34936
VulkanDevice: Scissor rect should never be negative 2024-10-11 21:19:16 +10:00
Stenzek
26b6c704f0
MemMap: Support dynamic page size selection
i.e. 4K to 16K on ARM64.
2024-10-05 19:25:23 +10:00
Stenzek
bd050ebb63
OpenGLDevice: Fix 16-bit texture uploads without PBOs 2024-10-01 22:02:27 +10:00
Stenzek
45c8f6ea56
BIOS: Make GetInfoForHash() public
And it should take a const span.
2024-10-01 21:14:43 +10:00
Stenzek
08fe20ad76
CMake: Add spirv-cross include path to util 2024-10-01 21:13:12 +10:00
Stenzek
060146a37a
CDROM: Add SubQ Skew option
Fixes corrupted boss sprites in Captain Commando.

One day I'll refactor things to fix this properly.
2024-09-29 17:11:52 +10:00
Stenzek
73fd97e770
GPUTextureCache: Fix reload replacements hotkey/menu action 2024-09-29 16:13:31 +10:00
Stenzek
d32143b319
ImGuiOverlays: Make escape close save state selector 2024-09-29 15:29:40 +10:00
Stenzek
7d8ae9aa11
Packaging: Add SPEC and PKGBUILD 2024-09-28 22:07:14 +10:00
Stenzek
4d74b203af
System: Don't try to read SYSTEM.CNF from Audio CD 2024-09-26 13:39:01 +10:00
Stenzek
d67b826033
CI/Flatpak: Improve install behaviour
Use "standard" install path.
2024-09-23 19:21:14 +10:00
Stenzek
3dca598063
Log: Switch to enum class
Need to change the channel to a bitset too.. the string lookups are
horribly slow, and conflict when one is a prefix of another.
2024-09-21 22:26:06 +10:00
Stenzek
ac8461a28b
System: Fix bogus SW thread CPU in OSD 2024-09-21 22:26:05 +10:00
Stenzek
e056bcb5ff
AudioStream: Fix incorrect padding 2024-09-21 22:26:05 +10:00
Stenzek
96ece5de1c
SmallString: MSVC warning fix 2024-09-19 22:25:35 +10:00
Stenzek
350cf7ee32
GPUDevice: Use suffixed shaderc libname
Avoids conflicts with other installations of shaderc, e.g. the Vulkan
SDK, which might be in the user's LD_LIBRARY_PATH.
2024-09-13 23:05:01 +10:00
Stenzek
e17eaf77dd
ImGuiFullscreen: Disable border animation when smooth scrolling is off 2024-09-13 21:14:07 +10:00
Stenzek
d330dca38a
MetalDevice: Use CocoaTools methods 2024-09-13 19:52:09 +10:00
Stenzek
d981dc7471
MetalDevice: Implement pipeline cache 2024-09-13 19:26:44 +10:00
Stenzek
ad67ab7ec3
MetalDevice: Use TranspileAndCreateShaderFromSource() 2024-09-13 17:31:59 +10:00
Stenzek
6f31e562a0
MetalDevice: Implement timed present 2024-09-13 15:19:29 +10:00
Stenzek
ddcb0cb541
Misc: Warning fixes 2024-09-10 23:53:27 +10:00
Stenzek
20b4581bbe
Settings: Remove second source of truth for OSD notifications
And split it into warnings/messages. Warnings are always displayed
regardless of the "Show OSD Messages" setting, because they're critical
and users forget they disable messages.
2024-09-10 22:10:42 +10:00
Stenzek
6c3f33804f
ImGuiFullscreen: Fix whole menu being unscrollable
If the first/last menu items were not enabled, e.g. settings pages
2024-09-09 21:37:52 +10:00
Stenzek
891d5cefbe
ImGuiFullscreen: Allow smooth scrolling 2024-09-09 21:57:08 +10:00
Stenzek
7bcdf11240
MediaCapture: Fix audio timestamp drift
Fixes capture lag after approximately 10 minutes.
2024-09-09 17:27:22 +10:00
Stenzek
de551c1836
D3D12Device: Fix crash when using media capture 2024-09-09 17:27:10 +10:00
Stenzek
559aff0ad5
D3D12Device: Use DXC and 12.0 feature level 2024-09-09 00:23:30 +10:00
Stenzek
4c31218d2b
GPUDevice: Add API version field
Also tie shader caches to API version and device LUID. That way we don't
have tons of cache files, and they're regenerated if the GPU/driver
changes.
2024-09-08 23:33:05 +10:00
Stenzek
c42fb7c16e
GPUDevice: Support ingesting SPIR-V
Will be transpiled to HLSL -> DXBC for DirectX backends.
2024-09-08 22:11:58 +10:00
Stenzek
6a5f16d89a
VulkanDevice: Handle rare case of unaligned SPIR-V 2024-09-08 21:55:51 +10:00
Stenzek
432fd80f3d
PostProcessing/FX: Use SPIR-V instead of GLSL for Vulkan 2024-09-08 19:43:18 +10:00
Stenzek
86bff869bc
dep/reshadefx: Update to 7bdfb03 2024-09-08 19:19:58 +10:00
Stenzek
af777c16ff
MediaCapture: Log video size 2024-09-07 20:19:07 +10:00
Stenzek
1b2ff7e0e8
CDImage: Support reading MODE1 sectors 2024-09-07 16:05:43 +10:00
Stenzek
ac5a2a153a
GPUDevice: Remove BeginPresent() skip parameter
It wasn't used - System does its own present skipping.
2024-09-07 12:53:55 +10:00
Stenzek
4b0c1fdbf2
GPUDevice: Add recovery from lost device 2024-09-07 12:48:44 +10:00
Stenzek
1c1b82ed66
GPUDevice: Purge threaded presentation
Worse frame pacing, and GPU thread (when I finish it) will give
significantly faster performance on mobile anyway.
2024-09-07 12:15:42 +10:00
Stenzek
ab1c85790c
CPU: Refactor execution mode switching
Fixes single step breaking in branch delay slots with recompiler.
Simplifies initialization.
Removes multiple sources of truth for fastmem.
2024-09-06 20:00:30 +10:00
Stenzek
4c59513c79
GPUDevice: Fix pipeline cache loading
(again)
2024-09-06 18:00:00 +10:00
Stenzek
129df8410e
PostProcessing/FX: Log pipeline creation error description 2024-09-03 23:28:27 +10:00
Stenzek
a53dc85035
GPUDevice: Fix initial pipeline cache not being created 2024-09-03 22:45:42 +10:00
Stenzek
a7d8e6d018
Host: Add disambiguation variants for translations 2024-09-03 21:39:00 +10:00
Stenzek
060c5553c0
INISettingsInterface: Use FileSystem atomic update routines 2024-09-03 20:43:42 +10:00
Stenzek
6d0f92d4fb
dep/fmt: Bump to v11.0.2 2024-09-03 17:54:43 +10:00
Stenzek
4c51337edd
ImGuiManager: Don't rasterize full glyph range for debug font 2024-09-02 12:37:58 +10:00
Stenzek
51cfea49fe
ImGuiManager: Split OSD and debug window fonts
Fixes the latter not fitting on screen anymore.
2024-09-02 00:27:48 +10:00
Stenzek
88ee70ef8a
Misc: Remove unused files 2024-09-01 23:17:17 +10:00
Stenzek
7f4e5d55db
Misc: Update copyright headers 2024-09-01 22:08:31 +10:00
Stenzek
3fbdcdb4ff
AudioStream: Rewrite and integrate expander 2024-09-01 13:16:10 +10:00
Stenzek
ac139d96f1
CDImage/ECM: Use EDC/ECC functions from libchdr 2024-09-01 19:43:39 +10:00
Stenzek
542ef3a6c0
GPUDevice: Warning fix 2024-08-26 21:37:29 +10:00
Stenzek
667d1bf7c8
GPUDevice: Use CompressHelpers
And compress the pipeline cache. Saves a fair bit of disk space.
2024-08-26 21:33:28 +10:00
Stenzek
ae2e79f401
Util: Add CompressHelpers 2024-08-26 21:27:30 +10:00
Stenzek
2c27b20090
ImGuiManager: Remove unused function 2024-08-26 18:53:30 +10:00
Stenzek
63bf64b05d
ImGuiOverlays: Use actual recording icon 2024-08-26 18:55:15 +10:00
Stenzek
05c7e6009c
InputManager: Don't set key down for binds when ImGui has focus
Fixes unpausing etc when alt-tabbing.
2024-08-26 17:57:28 +10:00
Stenzek
940200f7f3
FullscreenUI: More animation fixes 2024-08-26 17:56:47 +10:00
Stenzek
344a4a6215
FullscreenUI: Navigation improvements
Improve default item focus, eliminate some animation glitches.
2024-08-26 15:47:50 +10:00
Stenzek
e54c4c8101
ImGuiManager: Tweak OSD message size 2024-08-26 14:41:58 +10:00
Stenzek
7a05d5aca5
Achievements: Reset focus when opening windows 2024-08-26 14:21:09 +10:00
Stenzek
b04f721d55
Achievements: Use plural form for points 2024-08-26 14:07:07 +10:00
Stenzek
c9f5cfc1bc
Host: Add TranslatePluralToSmallString() 2024-08-26 14:06:57 +10:00
Stenzek
a7f3d7b02d
ImGuiManager: Add CompactFontRange() 2024-08-25 23:39:14 +10:00
Stenzek
e8b787fb57
Misc: Change various icons 2024-08-25 23:17:05 +10:00
Stenzek
f30844cc40
ImGuiManager: Move glyph ranges to separate file 2024-08-25 22:52:21 +10:00
Stenzek
f37a97bf18
Host: Add ReadCompressedResourceFile() 2024-08-25 17:48:12 +10:00
Stenzek
707453b596
FileSystem: Swap vector for DynamicHeapArray
No point zeroing it out.
2024-08-25 22:13:18 +10:00
Stenzek
b378ffb975
ImGui: Enable lunasvg 2024-08-25 14:39:59 +10:00
Stenzek
f2c0303875
Misc: Use lightgun controller icon 2024-08-25 13:57:05 +10:00
Stenzek
096a0811bf
dep/imgui: Bump to v1.91.0 2024-08-25 18:17:45 +10:00
Stenzek
72fc81a705
CMake: Add install target
Do **not** use this with /usr or /usr/local. It creates subdirectories
for resources/translations in the install prefix.

It's intended for creating a relocatable, self-contained bundle, which
can be packaged.
2024-08-12 18:49:28 +10:00
Stenzek
873b540b82
Deps: Switch to libjpeg-turbo 2024-08-24 18:08:15 +10:00
Stenzek
96b8e53fbf
Deps: Bump shaderc 2024-08-24 18:08:53 +10:00
Stenzek
9dd83c4f9f
InputManager: Remove unused pointer type 2024-08-24 14:23:32 +10:00
Stenzek
f0deab2131
InputManager: Fix wheel scrolling in Big Picture 2024-08-24 14:15:27 +10:00
Stenzek
bda6869084
Qt: Implement per-game controller configuration 2024-08-24 14:10:25 +10:00
Stenzek
9e3507e0f4
InputManager: Support multiple mice via raw input
Only on Windows for now.
2024-08-23 22:31:59 +10:00
Stenzek
417c1e43dd
MediaCapture: Load media foundation on-demand
Saves loading a few megabytes worth of DLLs for a feature most users are
not going to use.
2024-08-23 15:41:54 +10:00
Stenzek
6dd29eb88f
VulkanDevice: Fix incorrect log 2024-08-20 11:54:16 +10:00
Stenzek
aa9a5e383d
ImGuiOverlays: Change icon colour depending on controller mode 2024-08-18 20:30:45 +10:00
Stenzek
3175214c92
MediaCapture: Fix MP3 audio encoding 2024-08-18 15:52:54 +10:00
Stenzek
b274bf4d57
System: Switch to new capture file on video FPS change 2024-08-18 12:34:25 +10:00
Stenzek
f5815f3183
ImGuiFullscreen: Display checkmark on right of choice dialog 2024-08-13 18:09:30 +10:00
Stenzek
05f9f33ec6
ImGuiFullscreen: Fix choice popup selected drawing over border 2024-08-13 18:09:30 +10:00
Stenzek
13a37418e6
FullscreenUI: Fix popup close resetting window scroll 2024-08-13 18:09:30 +10:00
Stenzek
f48d3b4636
CMake: Copy FFmpeg dylibs into Mac bundle 2024-08-12 22:17:45 +10:00
Stenzek
da4b5df656
MediaCapture: Add FFmpeg backend 2024-08-12 16:29:03 +10:00
Stenzek
8ad912c340
MediaCapture: Handle BGRA for MediaFoundation 2024-08-12 15:20:32 +10:00
Stenzek
422a0a0ead
MediaCapture: Fix OpenGL capture 2024-08-12 14:48:21 +10:00
Stenzek
62eb557832
MediaCapture: Warning fix 2024-08-11 23:50:37 +10:00
Stenzek
af47eb6956
System: Add video capture feature 2024-08-11 21:06:58 +10:00
Stenzek
5f8082734e
VulkanDevice: Fix download inside render pass 2024-08-11 20:44:16 +10:00
Stenzek
8295fd9c3a
GPUDevice: Fix debug assertion tripping in Vulkan 2024-08-10 14:05:30 +10:00
Stenzek
b72e622ae0
CubebAudioStream: Remove leftover field 2024-08-10 13:15:55 +10:00