609 Commits

Author SHA1 Message Date
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
Stenzek
34df233a95
VulkanDevice: Enable VK_KHR_maintenance4 and 5 2024-08-10 12:33:01 +10:00
Stenzek
010c7dea33
dep: Bump vk_mem_alloc to 871913d 2024-08-10 12:21:51 +10:00
Stenzek
4f16cb61b4
GPUDevice: Expose swap chain clear colour 2024-08-06 17:35:27 +10:00
Stenzek
efc821bc84
VulkanDevice: Fix incorrect condition in UnbindTexture() 2024-08-06 15:32:40 +10:00
Stenzek
79bb5f079c
GPUDevice: Fix SPIRV-Cross load error on Mac 2024-08-05 01:12:17 +10:00
Stenzek
6e795c8977
CMake: Fix duplicate SPIRV-Cross library on MacOS 2024-08-05 00:05:03 +10:00
Stenzek
a2f98541b3
Misc: Slim down some header includes 2024-08-04 14:49:55 +10:00
Stenzek
143acca03b
Core: Purge resources.cpp
Save around 64KB in binary size.
2024-08-04 14:13:15 +10:00
Stenzek
5b590d434b
D3D11Device: Fix blend state not applying to MRTs 2024-08-03 02:06:20 +10:00
Stenzek
30c5ebae72
GPUDevice: Fix instances of RWTexture not clearing 2024-08-03 02:05:21 +10:00
Stenzek
7cbd67ecf1
MSBuild: Remove redundant include 2024-08-03 01:19:04 +10:00
Stenzek
3a83c4265c
Misc: Fix a bunch of code analysis warnings
Some of which were even actual errors.
2024-08-02 23:56:07 +10:00
Stenzek
4eb3b2a9a7
dep: Remove soundtouch 2024-08-02 21:59:57 +10:00
Stenzek
6d70d24bc4
AudioStream: Swap to shared soundtouch library
Yay licensing requirements.
2024-08-02 21:49:19 +10:00
Stenzek
410cea0f12
PostProcessing/FX: Use ToChars instead of to_string()
More locale mess.
2024-07-29 20:38:55 +10:00
Stenzek
0321a2cdc4
Common: Purge ByteStream 2024-07-29 17:27:32 +10:00
Stenzek
6ce9e571ed
Misc: Purge remaining ByteStream references 2024-07-29 17:27:32 +10:00
Stenzek
a6518ff9dc
System: Rewrite save state I/O
No more ByteStream or virtual calls for every piece of data.
2024-07-29 17:27:32 +10:00
Stenzek
b6b0997e70
Build: Favor git repositories over in-tree patches
Too messy.
2024-07-28 19:06:18 +10:00
Stenzek
3282366ea7
PostProcessing/FX: Preserve option declaration order 2024-07-26 15:34:49 +10:00
Stenzek
e455a5e371
ImGuiFullscreen: Fix incorrect notification width 2024-07-26 14:16:23 +10:00
Stenzek
0f4af03730
CMake: FreeBSD build fix
cpuinfo is still broken, will fix that another day.
2024-07-24 01:28:28 +10:00
Stenzek
5ec9c8a397
CDROM: Fix handling of 8-bit ADPCM and decoder overruns
Fixes pops in menu music in Simple 1500 Series Vol. 92 - The Tozan
RPG - Ginrei no Hasha.

I haven't seen anything that _properly_ uses 8-bit ADPCM yet. The above
game does, but only in the inaudible portion of the start of the track.
2024-07-23 21:54:22 +10:00
Stenzek
5e8870ec69
D3D12: Avoid redundant render pass restarts 2024-07-23 21:11:01 +10:00
Stenzek
2a617c505a
GPU/HW: Support using ROV for accurate blending 2024-07-23 14:46:06 +10:00
Stenzek
1006fa00da
GPUDevice: Add support for Raster Ordered Views 2024-07-23 14:46:06 +10:00
Stenzek
ba6b65401d
GPUDevice: Improve pipeline error reporting 2024-07-22 15:43:06 +10:00
Stenzek
deed0c9713
GameDatabase: Merge compatibility messages 2024-07-22 14:59:55 +10:00
Stenzek
fe55446c25
ImGuiManager: Fix stutter when multiple OSD messages lapse 2024-07-22 14:59:55 +10:00
Stenzek
ad374ef5e2
Sockets: Use epoll on Linux 2024-07-21 16:10:39 +10:00
Stenzek
78800870bc
Sockets: Properly handle POLLHUP events
Stops client socket leaking.
2024-07-21 16:10:39 +10:00
Stenzek
6b78364eab
Sockets: Ignore SIGPIPE on Linux
Stops our process terminating if the socket is disconnected
mid-write.
2024-07-21 16:10:39 +10:00
dreamsyntax
d9ada75d4f
Qt: Toggle for DualSense Player LED (#3254) 2024-07-21 16:07:36 +10:00
Stenzek
cc667cd88c
Sockets: Add SetNagleBuffering() 2024-07-21 13:43:14 +10:00
Stenzek
4f7ddfaae6
TimingEvents: Remove pointer indirection
Probably should move this to one big array for locality.
2024-07-19 22:56:41 +10:00
Stenzek
7217536fdd
MD5Digest: Span-ify 2024-07-19 15:51:25 +10:00
Stenzek
6176a21ff1
ProgressCallback: Eliminate redundancy and drop C format strings 2024-07-19 15:51:25 +10:00
Stenzek
ca2a8f1e1f
Host: Purge C format string error overloads 2024-07-19 13:45:33 +10:00
Stenzek
00ccea84b8
GPUDevice: Replace remaining StdStringFromFromFormat() with fmt 2024-07-19 13:44:09 +10:00
Stenzek
154a5b35b8
CDImageCHD: Refactor mode conversion to string_view
Incorrect length found by PVS-Studio.
2024-07-14 21:29:57 +10:00
Stenzek
df979d4648
Build: Fix DiscordRPC not being included in Mac bundle 2024-07-14 21:25:26 +10:00
Stenzek
ff77bd029f
ImGuiFullscreen: Don't upload failed-loaded images 2024-07-14 00:01:06 +10:00
Stenzek
afea18f65e
Image: Fix crash loading corrupted/invalid JPEG files 2024-07-14 00:00:48 +10:00
Stenzek
6f50e12ea2
PostProcessing/FX: Remove debug shader dump 2024-07-07 12:46:09 +10:00
Nik Chizhov
e4470a9929 fix: out-of-border access 2024-07-07 12:45:49 +10:00
Stenzek
1fd8d2701d
Sockets: Add HasAnyClientSockets() 2024-07-06 21:56:30 +10:00
Stenzek
9a70003b70
MSBuild: Silence MSVC warning C4324 2024-07-06 19:45:16 +10:00
Stenzek
3749b812a3
GPUDevice: Add ExecuteAndWaitForGPUIdle() 2024-07-04 21:54:19 +10:00
Stenzek
9fcc98a60a
InputSource: Explicitly construct binding key 2024-07-04 21:40:32 +10:00
Stenzek
f6d3a7987d
System: Load discord-rpc dynamically 2024-07-04 15:52:32 +10:00
Stenzek
00d2d862c2
Build: Use shared discord-rpc 2024-07-04 15:52:32 +10:00
Stenzek
4b61a3cbf3
Qt: Unrestrict resolution scale up to device limits 2024-07-04 13:25:27 +10:00
Stenzek
7927ec647f
Qt: Fix a couple of instances of inconsistent sorting 2024-07-04 13:25:26 +10:00
Stenzek
d178853392
PostProcessing/FX: Fix incorrect draw rect 2024-07-04 00:32:22 +10:00
Stenzek
3c230ba1bf
PlatformMisc: Swap include order for Mac 2024-07-03 16:04:05 +10:00
Stenzek
29533650a8
MetalDevice: Rectangle -> GSVector4i 2024-07-03 15:54:32 +10:00
Stenzek
9ef7e8c5d0
GPU/HW: Use GSVector instead of Rectangle 2024-07-03 15:44:12 +10:00
Stenzek
faa151d5ad
CDImageCHD: Use GSVector 2024-07-03 00:24:12 +10:00
Stenzek
0654b2dc43
AudioStream: Use GSVector 2024-07-03 00:24:12 +10:00
Stenzek
173a61039c
System: Use cpuinfo for cache line size check 2024-07-03 00:24:12 +10:00
Nikolai Chizhov
037519936a
GL/ContextEGL: Fix red_size to blue_size (#3238) 2024-07-01 00:28:05 +10:00
Stenzek
9b42ad3859
CPU/CodeCache: Purge JitCodeBuffer 2024-06-30 16:45:51 +10:00
Stenzek
be8fbafd71
CPU/CodeCache: Always dynamically allocate code buffer
Reduces .bss size.
2024-06-30 16:45:51 +10:00
Stenzek
34d5cdec96
GPU/HW: Expose depth buffer to internal postprocessing 2024-06-29 14:25:36 +10:00
Stenzek
d8bd35e8d6
GPUDevice: Add D24S8/D32F/D32FS8 types 2024-06-29 13:09:45 +10:00
Stenzek
3f25db79b8
D3D11Device: Make depth targets sampleable 2024-06-29 13:09:45 +10:00
Stenzek
1cb3e6bd49
ShaderGen: Support multiple render target output 2024-06-29 13:09:45 +10:00
Stenzek
0c3cf1f5f8
PostProcessing: Split into internal and display chains 2024-06-28 20:17:15 +10:00
Stenzek
8c72fd57f1
GPUDevice: Disable SPIR-V optimization on GLSL output
SSO causes SPIRV-Cross to redeclare builtins, which we don't want
(breaks on Mesa).
2024-06-28 13:52:01 +10:00
Stenzek
ebf50edb79
System: Allocate JIT space before fastmem area
On Intel MacOS 14, the fastmem area gets allocated close to the
executable base, leaving no region free +/- 2GB for the JIT area.
2024-06-26 17:11:27 +10:00
Stenzek
6bfd862cb3
GPUDevice: Fix transpiled interface linking with OpenGL 2024-06-23 23:39:56 +10:00
Stenzek
1797050f97
VulkanDevice: Release swap chain images on resize 2024-06-23 16:17:31 +10:00
Stenzek
966cce1581
Postprocessing: Sort shader list lexiographically 2024-06-23 13:20:47 +10:00
Stenzek
ea3fa7fe3d
Postprocessing/FX: Fix locating shaders in subdirectories 2024-06-23 13:20:47 +10:00
Stenzek
70d7d4ab67
MSBuild: Enable Vulkan on Windows ARM64
Apparently there are drivers now/in the works.
2024-06-17 17:13:23 +10:00
Stenzek
e9a47233f7
GPUDevice: Compile warning fix 2024-06-16 20:49:30 +10:00
Stenzek
54097fc14e
Postprocessing/FX: Expose 'viewportoffset' uniform 2024-06-16 00:00:01 +10:00
Stenzek
964b94960e
Postprocessing/FX: Ensure RT isn't bound as sampler
Prevents possible Vulkan spec violation in some shaders.
2024-06-15 23:55:33 +10:00
Stenzek
ef69c31e9f
GPUDevice: Support transpiling shaders at compile time
And use it for GLSL postprocessing shaders.
2024-06-14 21:21:34 +10:00
Stenzek
d51b880052
Postprocessing/FX: Fix incorrect pixel size uniforms 2024-06-14 00:38:08 +10:00
Stenzek
facce0d8cb
PostProcessing: Expose aspect-correct pixel sizes
That consider the display aspect ratio/padding when sampling pixels in
the input (window size).
2024-06-11 23:32:19 +10:00
Stenzek
354b250642
PostProcessing: Add native width/height inputs
Available in GLSL as GetNativeSize(), GetUpscaleMultiplier(), and in
reshade as native_width/native_height/upscale_multiplier.

GetPaddedOriginalSize() is now deprecated, as it does not make since
since the postfx shader runs with a window-sized off-screen target as an
input, not the internal render texture.
2024-06-11 14:04:45 +10:00
Stenzek
bac2ac0151
FullscreenUI: Fix incorrect padding calculation in pause menu
Fixes scrollbars appearing in menu.
2024-06-11 13:12:37 +10:00
Stenzek
f41c238c53
VulkanDevice: Disable VK_KHR_dynamic_rendering_local_read on AMD
Like everything else on RDNA3, it appears to be broken and causes GPU
hangs/resets.
2024-06-10 17:44:10 +10:00
Stenzek
0675716162
D3D11Device: Fix redundant SRV set on RT change 2024-06-07 12:07:58 +10:00
Stenzek
723af4de3a
Misc: Loading old save state versions is unlikely 2024-05-31 18:48:26 +10:00
Stenzek
f1465ddf43
Memmap: Use Mach VM routines for memory mapping 2024-05-29 22:49:32 +10:00
Stenzek
619688a135
Qt: Add per-bind sensitivity/deadzone controls (shift-click) 2024-05-28 18:17:46 +10:00
Stenzek
015804c434
System: Move GDB server into core 2024-05-27 00:18:05 +10:00
Stenzek
4e905a63ec
Util: Add socket helper classes 2024-05-26 22:20:29 +10:00
Stenzek
0240ea8b49
PageFaultHandler: Simplifications 2024-05-25 17:42:12 +10:00