100 Commits
Author SHA1 Message Date
Stenzek 315d30fe4c GS: Uncap upscale multiplier subject to GPU limits 2024-07-02 21:51:33 +10:00
Stenzek 46e30467de Config: Don't copy global WS/NI to game settings 2024-07-02 15:28:03 +10:00
Stenzek e7139ab801 Qt: Fix use-after-free in settings reopen() 2024-07-02 15:28:03 +10:00
Connor McLaughlin 5ff35927a7 GS: Remove unused enum 2024-06-30 23:03:28 +10:00
Stenzek d3bcfe0f5c GS/HW: Prefer already-RTA-target over SW blend for no-overlap
Saves barriers in Ace Combat and Metal Gear Solid games.
2024-06-29 11:14:34 +10:00
Stenzek 6600d09966 GS/HW: Prefer SW blend over HDR for colclip without overlap 2024-06-29 11:14:34 +10:00
Stenzek 51917c4461 GS/DX11: Fix downsample uniform unpack
Fixes #11482.
2024-06-29 01:15:25 +10:00
Stenzek 5b45913a6a GS/HW: Use box filtering for source downsampling 2024-06-27 10:49:46 +10:00
Stenzek 7f0ab1442e GS/HW: Clear instead of invalidating upscaled targets
This'll require a little more VRAM bandwidth, but it's better than
sampling random garbage because HPO pushes the coordinates down.
2024-06-26 21:22:36 +10:00
Stenzek 107c117a4e VMManager: Don't use achievements when playing GS dumps 2024-06-25 19:12:23 +10:00
Stenzek c44500ba0f Achievements: Fix async HC mode disable running on wrong thread 2024-06-25 19:12:23 +10:00
Stenzek d53b2ae104 ImGuiManager: Avoid invalid scale update on surfaceless 2024-06-25 19:12:23 +10:00
Stenzek f909282973 Achievements: Eliminate intermediate malloc on state save 2024-06-25 19:12:23 +10:00
Stenzek 46931072c7 3rdparty/rcheevos: Hash functions are not needed 2024-06-25 19:12:23 +10:00
Stenzek 9225fa9efd 3rdparty/rcheevos: Bump to d54cf8f 2024-06-25 19:12:23 +10:00
Stenzek 3040474f99 Qt: Fix duplicate log window when theme switching 2024-06-24 13:17:53 +10:00
Stenzek 02ef8098c9 Qt: Work around theme swap bug with Classic Windows 2024-06-24 13:17:53 +10:00
Stenzek 4924d8c984 GS/Vulkan: Release swap chain images on acquire fail 2024-06-24 10:16:04 +10:00
Stenzek 57d225437e GS/HW: Ensure mipmaps aren't generated on hash cache textures 2024-06-24 10:15:48 +10:00
Stenzek f6a7dc52e2 GS/HW: Better eliminate redundant clamps with mipmapped draws
TW/TH won't match when mipmap minimization eliminates the base level.
Use the TEX0 register from the context instead.
2024-06-24 10:15:48 +10:00
Stenzek ec8d5d1b71 GS/HW: Allow use of trilinear with shader sampling 2024-06-24 10:15:48 +10:00
Stenzek ab2874749e CI/AppImage: Explicitly remove libwayland-* 2024-06-16 16:05:25 +10:00
Stenzek 8766d0b676 VMManager: Refactor Affinity Control to Thread Pinning
Instead of having control over specific threads, thread pinning puts the
EE/VU/GS threads on the most performant cores, then the software threads
on the remaining cores, but only if they're in the same cluster.

This way we don't end up pinning across clusters with different
performance characteristics, which would harm instead of help software
renderer performance.

Also unpins on shutdown, that way we don't keep CPU cores awake.
2024-06-16 14:18:49 +10:00
Connor McLaughlin 707d61f54d CDVD: Remove leftover debug log
Didn't mean to commit this.
2024-06-16 00:06:55 +10:00
Connor McLaughlin 6fcd5d0aff GzippedFileReader: Don't write OOB in last chunk
zlib_indexed can write the full span to the block, despite the length being shorter. This code can die in a fire.

Closes #11398.
2024-06-15 17:42:56 +10:00
Connor McLaughlin 21df138833 MSBuild: RecStubs.cpp should be excluded 2024-06-15 15:18:38 +10:00
Stenzek 36f9715637 CDVD: Actually fix NVRAM open mode 2024-06-15 12:44:46 +10:00
Stenzek 480bd2da4b DarwinMisc: Use template sysctlbyname 2024-06-14 20:45:44 +10:00
Stenzek 8a18403fea arm64: Add stubs for EE/VU/IOP recs 2024-06-14 17:06:45 +10:00
Stenzek fe9399612d arm64: Add VIF dynarec 2024-06-14 17:06:45 +10:00
Stenzek 0a4c037898 GS: ARM64 compatibility 2024-06-14 17:06:45 +10:00
Stenzek 71036c95a4 Core: ARM64 compatibility 2024-06-14 17:06:45 +10:00
Stenzek 7d098674f2 IPU: ARM64 compatibility 2024-06-14 17:06:45 +10:00
Stenzek 4e0e8cef54 Common: ARM64 compatibility 2024-06-14 17:06:45 +10:00
Stenzek 6ee99d8b81 Build: Add ARM64 configurations 2024-06-14 17:06:45 +10:00
Stenzek 22d929d171 VTLB: Fix unmapping all pages with 16K host 2024-06-14 17:06:45 +10:00
Stenzek 122f1ec767 TextureDecompress: Re-add non-SSE code paths 2024-06-14 17:06:45 +10:00
Stenzek 04d7d1a1db 3rdparty/winpixeventruntime: Fix build with ARM64 clang-cl 2024-06-14 17:06:45 +10:00
Stenzek 3c69d5cf70 3rdparty/cubeb: Fix build for ARM64 2024-06-14 17:06:45 +10:00
Stenzek e03e8b602c 3rdparty/cpuinfo: Fix build for ARM64 2024-06-14 17:06:45 +10:00
Stenzek cc7b58eef0 3rdparty/lzma: Fix ARM64 build with clang-cl 2024-06-14 17:06:45 +10:00
Stenzek a703076720 3rdparty/soundtouch: Enable NEON on ARM64 2024-06-14 17:06:45 +10:00
Stenzek 21897414ac CI: Add required files for Windows ARM64 build 2024-06-14 17:06:45 +10:00
Stenzek 1a286b0bec CI: Add script for building universal Mac dependencies 2024-06-14 17:06:45 +10:00
Stenzek 94fc34dd62 GS: Tidy up shifts in GSVector4i 2024-06-14 11:54:17 +10:00
Stenzek 4731c6d290 GS: Fix a couple of non-immediate constant shifts 2024-06-14 11:54:17 +10:00
Stenzek 153b492a79 GS: Remove unordered runion()
We're working with rectangles everywhere.
2024-06-14 11:54:17 +10:00
Stenzek ccb23868e5 GSRunner: Enable the crash dump writer 2024-06-14 11:54:17 +10:00
Stenzek affbcfe135 GS/SW: Zero out texture cache buffers
This _shouldn't_ be necessary, but apparently our texture min/max is wrong
somewhere, and we end up sampling from "random" malloc memory, which breaks
GS dump runs.
2024-06-14 11:54:17 +10:00
Connor McLaughlin 08e824831b Achievements: Fix incorrect data source for mastery points 2024-06-12 14:44:54 +10:00
Stenzek 7ad27e6e9d CDVD: Add precaching option 2024-06-11 11:31:28 +10:00
Stenzek e1596c7911 FileSystem: Add ReadFileWithProgress() 2024-06-11 11:31:28 +10:00
Stenzek 8a3513f2ba 3rdparty/libchdr: Allow cancelling precache 2024-06-11 11:31:28 +10:00
Stenzek d43171454b CI: Disable repository submodule cloning
No longer needed.
2024-06-11 11:30:45 +10:00
Stenzek e5917fa47a GS/Vulkan: Disable unused-function warning for vk_mem_alloc 2024-06-11 11:30:45 +10:00
Stenzek 5ee751326a 3rdparty/fmt: Work around RTTI being disabled 2024-06-11 11:30:45 +10:00
Stenzek 226a02a770 MemoryCardFolder: Fix rapidyaml deprecation warnings 2024-06-11 11:30:45 +10:00
Stenzek 8cc7e60138 3rdparty: Move WIL v1.0.240122.1 in-tree
Renamed to winwil, because otherwise you won't be able to easily git
pull these changes.
2024-06-11 11:30:45 +10:00
Stenzek 5c59288b39 3rdparty: Move rapidyaml v0.6.0 in-tree
Also c4core v0.2.0, fast-float v6.1.1.
2024-06-11 11:30:45 +10:00
Stenzek d6c4a9a4d5 3rdparty: Move Vulkan-Headers v1.3.287 in-tree 2024-06-11 11:30:45 +10:00
Stenzek 08975bd9f1 3rdparty: Move googletest v1.14.0 in-tree 2024-06-11 11:30:45 +10:00
Stenzek cf475d961a 3rdparty: Move fmt v10.2.1 in-tree 2024-06-11 11:30:45 +10:00
Stenzek cb0f0b65cc DEV9: Add missing RedtapeWindows.h include 2024-06-11 11:30:45 +10:00
Stenzek cc7313bf32 Qt: Use 64-bit comparison for VC runtime check
Backport https://github.com/stenzek/duckstation/commit/484c1dccd4ca588ce8b9bd11481695669eb6f5bc
2024-06-10 16:48:35 +10:00
Stenzek e2a4d8f1e6 CDVD: Force initialized flag on NVRAM reads
Jak 1 crashes on boot if it's not set.
2024-06-10 12:51:18 +10:00
Stenzek b55ec3ae58 CDVD: Tidy up NVRAM read helpers
Get rid of the janky offsetof.
2024-06-10 12:51:18 +10:00
Stenzek 6220148be7 CDVD: Cache mechacon version 2024-06-10 12:51:18 +10:00
Stenzek 919da4d97a CDVD: Read NVRAM on startup, cache, and save on shutdown 2024-06-10 12:51:18 +10:00
Stenzek 4f5562ad3f GS: Swap to cpuinfo for checking CPU features 2024-06-09 22:18:59 +10:00
Stenzek 37df1adff6 Qt: Add very-early VC++ runtime version check
Backport of https://github.com/stenzek/duckstation/commit/a2e6a48d2eee2d863c8fc2dfce60a574b14f4048
2024-06-09 21:47:32 +10:00
Stenzek 1ec4c248fb CI/Windows: Disable Qt's PCRE2 JIT
Backport of https://github.com/stenzek/duckstation/commit/daed75de20e8d533bf0ef3a53b314780ba1d136e
2024-06-07 16:14:34 +10:00
Connor McLaughlin 91fbf1b22e CI/Windows: Uninstall system LLVM package
Instead of upgrading it, we haven't tested clang-18 with PCSX2 yet.
2024-06-07 15:56:53 +10:00
Connor McLaughlin 69c2c53ca7 CI/AppImage: QtNetwork is no longer needed 2024-05-31 13:39:51 +10:00
Stenzek d48f527d6d Common: Tidy up signal handlers
Move MacOS into its own file.
Fix assertion failure crash dumping.
2024-05-31 13:39:36 +10:00
Stenzek ecbe239c0b Common: Use Mach VM routines for memory mapping
MacOS does not support an equivalent of MAP_FIXED_NOREPLACE via mmap(),
which means that our usage for allocating PCSX2's memory map is not
thread-safe.
2024-05-30 13:39:07 +10:00
Stenzek 18665b81c4 3rdparty/vixl: Import @ 8eca2b7 2024-05-30 13:38:51 +10:00
Stenzek 94bd7c96b9 GS/HW: Use valid rect over size in CopyRGBFromDepthToColor()
Avoids a copy.
2024-05-28 12:44:27 +10:00
Stenzek e863da9490 GS/HW: Fix unscaled rect in CopyRGBFromDepthToColor()
Fixes fade transitions when upscaling in GT3.
2024-05-28 12:44:27 +10:00
Stenzek c94282ce5f GS/Vulkan: Purge threaded presentation 2024-05-27 21:10:59 +10:00
Stenzek d94f1dd9a3 GS: Add option to disable mailbox presentation
For those who like terrible frame pacing.
2024-05-27 21:10:59 +10:00
Stenzek 5dc1167fa8 GS/DX11: Don't spin on CPU when GPU results aren't available
Backport of https://github.com/stenzek/duckstation/commit/547587af111506376f3ab2ea0d4805d481bd0880
2024-05-27 21:10:59 +10:00
Stenzek 9187e7eb34 InputManager: Fix exit menu button forwarding to game
Backport of https://github.com/stenzek/duckstation/commit/a7f2ad37de936d68e8881aa6878e91ed213d228a
2024-05-27 00:18:53 +10:00
Stenzek 3928014e5c GS/Vulkan: Work around validation layer semaphore error 2024-05-25 14:06:50 +10:00
Stenzek c7a21a60cf GS: Improve vsync mode selection
All games use mailbox/triple buffering. Except when you enable sync to
host refresh, in which case FIFO/double buffering is used.

This means vsync enabled will ever tear, but at the same time, never
drop to 30fps on a missed frame due to frame rate differences.

To have the "best of both worlds", you should enable vsync and sync to
host refresh. Previously, this resulted in additional input lag, since
the host vsync would drive the EE frame timing. Now, this behaviour is
disabled by default, unless you enable "Use Host VSync Timing".
2024-05-25 14:06:50 +10:00
Stenzek 82fbf34f5b ImGuiOverlays: Display vsync queue size in OSD 2024-05-25 14:06:50 +10:00
Stenzek 99e38bc458 GS/Vulkan: Prefer mailbox presentation for vsync-on 2024-05-23 11:34:49 +10:00
Stenzek 68bbc2cc92 GS/Vulkan: Log any image acquire error 2024-05-23 11:34:49 +10:00
Connor McLaughlin 92b707db99 Common: Missed MAP_FIXED -> MAP_FIXED_NOREPLACE 2024-05-22 00:05:24 +10:00
Connor McLaughlin d765f2e15c Common: Fix Mac build 2024-05-21 23:14:47 +10:00
Stenzek e24d97bbe4 Common: Don't use MAP_FIXED on Linux
MAP_FIXED will clobber any existing memory mapping, and is not safe
to use in a multi-threaded environment. Whether we like it or not,
we are a multi-threaded environment, because Qt initializes before
we get to main(), so it's already too late to safely use MAP_FIXED
by the time we get there.

Use MAP_FIXED_NOREPLACE instead. This is how MAP_FIXED should have
behaved from the beginning.

Obviously this means you'll need Linux 4.17+ and a semi-recent libc
to use PCSX2 now. But if you're running a 6 year old unsupported
kernel, you have bigger problems.

Fixes "random" startup crashes.
2024-05-21 22:44:00 +10:00
Stenzek 2e882dfabc CI/Flatpak: libaio is no longer needed 2024-05-21 18:34:01 +10:00
Stenzek ff7995f0d6 Deps: Bump to shaderc 2024.1
And use dynamic loading.
2024-05-21 18:34:01 +10:00
Stenzek f11ef37745 Deps: Switch to sourceforge mirror for FreeType
The savannah.gnu.org link redirects to non-existant domains, at least in
Australia.
2024-05-21 18:34:01 +10:00
Stenzek 9044f54353 Deps: Apply qtbase commit 7b01862 2024-05-21 18:34:01 +10:00
Stenzek 475bd6ee7d Deps: Bump Qt to 6.7.1 2024-05-21 18:34:01 +10:00
Connor McLaughlin 7683674585 Qt: Fix default tab of Graphics Settings 2024-05-19 22:25:55 +10:00
Stenzek 81f1102809 Qt: Update base translation 2024-05-19 16:07:15 +10:00
Stenzek ebb315ab6f Qt: update_base_translation.sh should be executable 2024-05-19 16:06:48 +10:00
Connor McLaughlin 70b709a675 CI/Flatpak: Temporarily disable repo/appstream validation
pcsx2.net (cloudflare?) appears to be blocking the GitHub runner. Until this is resolved, disable runner-side validation.
2024-05-19 13:27:10 +10:00
Stenzek 31e935d831 GzippedFileReader: Don't clamp chunkID on read 2024-05-18 02:45:26 +10:00