Commit graph

2710 commits

Author SHA1 Message Date
Stenzek 4b61a3cbf3
Qt: Unrestrict resolution scale up to device limits 2024-07-04 13:25:27 +10:00
Stenzek 2bcb85d431
GPU/HW: Push all draws/writes through a common path 2024-07-03 15:44:12 +10:00
Stenzek 9ef7e8c5d0
GPU/HW: Use GSVector instead of Rectangle 2024-07-03 15:44:12 +10:00
Stenzek ef152c47a6
GPU/HW: Interpolate native texture coordinates when upscaling 2024-07-03 15:44:12 +10:00
Stenzek 044d7a4797
GPU: Eliminate heap allocation on state load 2024-07-03 00:24:12 +10:00
Stenzek f9bf2e8239
GPU: Use GSVector for SW scanout 2024-07-03 00:24:12 +10:00
Stenzek 0968610ba7
CDROM: Use GSVector 2024-07-03 00:24:12 +10:00
Stenzek 69471950f0
ImGuiOverlays: Use GSVector 2024-07-03 00:24:12 +10:00
Stenzek b094c9cd87
MDEC: Vectorize IDCT 2024-07-03 00:24:12 +10:00
Stenzek baab966b4e
System: Check for SSE4.1 in early hardware checks 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
Stenzek aabe39d0f8
GPU: Allow DMAs in Mode 1
Exact behaviour is still unknown, but it works on console (Nicolas
Noble's torus demo).
2024-07-02 16:56:11 +10:00
Stenzek e1f90e6baf
MDEC: Store scale/IDCT matrix transposed 2024-07-02 16:56:10 +10:00
Stenzek 6d6659c85e
MDEC: Increase intermediate IDCT precision 2024-07-02 16:56:07 +10:00
Stenzek e169189441
GPU/HW: Fix possible crash when changing texture filtering 2024-07-01 01:07:27 +10:00
Stenzek 44142ab4f9
CPU/Recompiler: Prefer adrp over trampoline for +/-4GB branches 2024-06-30 16:45:51 +10:00
Stenzek f3671d21f3
CPU/CodeCache: Reduce far code size when using NewRec 2024-06-30 16:45:51 +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 890f3fcf5d
Common/Log: Make actually writing unlikely
Move it out of the hot path.
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 e39a2d00bf
GPU/HW: Use D32F for PGXP depth
16-bit isn't accurate enough for post processing.
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 80d1056ddf
GPU: Add virtual call when buffers are swapped 2024-06-28 21:15:47 +10:00
Stenzek 0c3cf1f5f8
PostProcessing: Split into internal and display chains 2024-06-28 20:17:15 +10:00
Stenzek 810ce1ce57
GPU: Remove duplicate display params fields
And enable postfx when the DAC is turned off.
2024-06-28 20:17:15 +10:00
Stenzek 3877486712
System: Ensure titles are sanitized for screenshots 2024-06-28 19:44:27 +10:00
Stenzek a89ec0eaf9
Achievements: Always recompute state data size on save
It can be smaller, or, apparently fail in some cases...
2024-06-28 13:12:27 +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 db305660c1
Achievements: Implement disc change without state reset 2024-06-24 13:16:50 +10:00
Stenzek b9ff358ab3
Achievements: Support scratchpad memory 2024-06-24 13:16:50 +10:00
Stenzek e7e09023e2
Achievements: Avoid malloc on state save/load 2024-06-24 13:16:50 +10:00
Stenzek 63055f1e7f
FullscreenUI: Add sprite texture filtering option 2024-06-23 13:10:10 +10:00
Stenzek ccb76d1451
GameList: Add custom title/regions
Largely inspired by https://github.com/PCSX2/pcsx2/pull/9330, but almost
entirely rewritten.
2024-06-17 23:45:02 +10:00
Stenzek 01fc3258a3
CPU/Recompiler: Warning fix for ARM64/Clang 2024-06-17 17:13:23 +10:00
Stenzek 1ae79c89e3
System: Refactor unsafe settings warning
And warn about round upscaled texture coordinates option.
2024-06-17 17:02:55 +10:00
Stenzek a5f8684bcd
BIOS: Add further detail to missing BIOS message 2024-06-17 16:47:21 +10:00
Stenzek 34f20798a1
GPU/HW: Add separate 3D/2D (sprite) texture filtering 2024-06-17 15:56:56 +10:00
Stenzek be4abb016f
GPU/HW: Reduce multiple setting source of truth 2024-06-17 15:49:12 +10:00
Stenzek 6870010351
GPU/HW: Remove log spam 2024-06-16 21:15:37 +10:00
Stenzek 3d6b9e18c5
Settings: Include cheats in disable-all-enhancements 2024-06-16 19:22:09 +10:00
Stenzek 8455c9c3c6
GPU/HW: Add 'Force Round Upscaled Texture Coordinates' 2024-06-16 19:09:46 +10:00
Stenzek 1582b2ae5d
GPU/HW: Make texture filtering a fragment shadergen parameter 2024-06-16 19:09:46 +10:00
Stenzek c1792108f4
GPU/HW: Eliminate raw texture pipeline permutations 2024-06-16 17:09:24 +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 f0c2832d03
Dep: Update vixl to 662828c 2024-06-14 17:42:24 +10:00
Stenzek 8124fb2ef5
CDROM: Fix incorrect sector dropped log message 2024-06-13 18:35:02 +10:00
Stenzek 9a88cbce09
Pad: Fix incorrect card mismatch OSD message 2024-06-13 18:35:02 +10:00
Stenzek c86f6eb639
Achievements: Fix incorrect data source for mastery points 2024-06-13 18:35:02 +10:00
Stenzek ac1bb905fe
GPU: Set idle bit during VRAM upload
Tenga Seiha does a bunch of completely-invalid VRAM writes on boot, then
expects GPU idle to be set. It's unclear what actually happens, I need to
write another test, but for now, just skip these uploads. Not setting GPU
idle during the write command breaks Doom, so that's not an option.
2024-06-13 18:35:02 +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 b464b6d668
FullscreenUI: Fix loading undo state from menu 2024-06-11 13:07:47 +10:00
Stenzek 8595175267
CDROM: Improve accuracy of sector redelivery on DMA complete
Fixes hang in loading in Syphon Filter 2/3.
2024-06-09 19:47:51 +10:00
Stenzek 34861074c1
CDROM: Ensure complete IRQs for Init go through
Fixes booting games with OpenBIOS and its Init spam.
2024-06-08 16:58:08 +10:00
Stenzek 7222c21cd9
CDROM: Further refine interrupt delay 2024-05-31 23:59:44 +10:00
Stenzek 3e3572c410
DMA: Fix range check in mode0 when decrementing
Fixes lag on startup in Clone (Euro Demo 42).
2024-05-31 23:08:07 +10:00
Stenzek c637e2b337
System: Fix title after loading state for EXE-boot 2024-05-31 21:08:45 +10:00
Stenzek e70f155054
MemoryCard: Implement GetID command 2024-05-31 21:08:21 +10:00
Stenzek 8ef73203b2
Bus: Ignore SPU byte writes to unaligned addresses 2024-05-31 21:00:55 +10:00
Stenzek a7543ab365
GPU/HW: Fix crash on VRAM write/copy with mask test 2024-05-31 20:39:31 +10:00
Stenzek 627c12bebe
GPU: Fix IRQ request 2024-05-31 20:39:18 +10:00
Stenzek 73136d7dc4
GPU: Tie idle bit to FIFO emptyness on VRAM write
Fixes Tenga Seiha lockup on boot.
2024-05-31 20:12:59 +10:00
Stenzek 53600746c7
GPU: Cancel VRAM writes on Reset 2024-05-31 19:49:40 +10:00
Stenzek d013438810
CDROM: Rewrite BFRD handling
Fixes hang on startup in Unirom.
2024-05-31 19:45:42 +10:00
Stenzek 723af4de3a
Misc: Loading old save state versions is unlikely 2024-05-31 18:48:26 +10:00
Stenzek 3063101274
CDROM: Implement 0x60 test command
Apparently needed for unirom.
2024-05-30 22:34:06 +10:00
Stenzek 7682cd2c10
System: Generate hash serials when running PS-EXE
Allows for per-game settings.
2024-05-30 22:21:52 +10:00
Stenzek 25bf2b3adc
CDROM: Clear async interrupt on read/seek start
Fixes broken audio in Road Rash.
2024-05-30 20:49:58 +10:00
Stenzek 039796690c
GPU/HW: Fix a couple of out-of-order UBO pushes 2024-05-28 17:38:28 +10:00
Stenzek 2eb0085539
System: Fix inverted volume selection 2024-05-27 11:58:42 +10:00
Stenzek 015804c434
System: Move GDB server into core 2024-05-27 00:18:05 +10:00
Stenzek 55d96f86f0
System: Add "Disable Mailbox Presentation" option
Partial backport of https://github.com/PCSX2/pcsx2/pull/11296
2024-05-26 22:38:35 +10:00
Stenzek 83df785558
Settings: Default threaded presentation to off 2024-05-26 22:38:35 +10:00
Stenzek 4311e08726
System: Implement PINE server 2024-05-26 22:38:35 +10:00
Stenzek 328a3cd7af
System: Prevent save states while memory cards are being saved 2024-05-25 17:42:12 +10:00
Stenzek 2ff1f398a3
CDROM: Handle INT1 with pending command
Fixes lockup during track playback in Gokujou Parodius Da! Deluxe Pack.
2024-05-25 16:10:09 +10:00
Stenzek 60ee17e713
System: Fix regtest dumping 2024-05-25 15:58:41 +10:00
Stenzek 1565a2667d
Misc: More format string fixes 2024-05-25 15:48:31 +10:00
Stenzek 22c76d43c3
CPU/PGXP: Reduce vertex cache memory 2024-05-25 02:06:40 +10:00
Stenzek 0f9a255093
System: Fallback to FIFO on AMD (no mailbox support) 2024-05-24 22:48:26 +10:00
Stenzek 98520978a8
System: OSD message corrections 2024-05-24 22:13:35 +10:00
Stenzek 49e3663dfe
Settings: Purge max display FPS option
No longer needed since we pull it from the surface instead.
2024-05-24 02:33:33 +10:00
Stenzek 42a5fe0a6e
GPU: Further improve vsync handling 2024-05-24 02:33:33 +10:00
Stenzek 4e922a34a7
Log: Simplify macros 2024-05-24 02:08:14 +10:00
Stenzek 792717e03e
Misc: Get rid of format string for result logging 2024-05-24 00:30:06 +10:00
Stenzek 9f90f14c48
CPU/CodeCache: Only print code size stats on request 2024-05-24 00:30:06 +10:00
Stenzek b6d019db66
Misc: Replace log printf calls with fmt 2024-05-24 00:29:49 +10:00
Stenzek 49b2e76dea
GPU/HW: Warning fix 2024-05-23 20:08:14 +10:00
Stenzek d2f28b6926
GPU: Explicit RemovePathLimits() is no longer needed 2024-05-23 19:52:56 +10:00
Stenzek 10df7ba319
GPU/HW: Ensure CLUT cache is synced when using SW-for-readbacks 2024-05-23 14:30:18 +10:00
Stenzek 6cad97b404
GPUDevice: Make vsync actually tear-free
Apparently users prefer stutter over tearing...
2024-05-23 13:52:26 +10:00
Stenzek dd98b630ea
GameList: Treat disc sets and discs equally when sorting 2024-05-23 12:45:57 +10:00
Stenzek 8709624751
GameList: Fix disc set last played time 2024-05-22 22:46:09 +10:00
Stenzek 14ba3b7312
System: Fix sync to host refresh audio stretching 2024-05-22 22:32:51 +10:00
Stenzek d9cc80c7f9
WindowInfo: Get refresh rate from monitor config
DwmGetCompositionTimingInfo() returns a noisy refresh rate, at least on
Win11 22H2.
2024-05-22 22:16:31 +10:00
Stenzek 08125262bb
System: Fix Edit Memory Cards action for disc sets 2024-05-21 13:55:37 +10:00
Stenzek 1a4679def8
System: Use different conditions for frame dupe-skip 2024-05-20 01:32:33 +10:00
Stenzek ab4c6f2dde
CPU/NewRec: Enable delay slot swapping in more situations
Load delay is always updated, so don't need to swap when it's reading
from a delayed register. Branching on a delayed register will also be
fine, since it won't be flushed by the the branch executes.
2024-05-20 01:12:32 +10:00
Stenzek 09b43f962a
CPU/NewRec: Clear needed on swapped delay slot
Fixes panic in BIOS on x86_64 Linux with PGXP enabled.
2024-05-20 01:12:32 +10:00
Stenzek 5b4f74122c
System: Add "Skip Duplicate Frame Display" option
Skips the presentation/display of frames that are not unique.
Can be combined with driver-level frame generation to increase
perceptible frame rate. Can result in worse frame pacing, and is
not compatible with syncing to host refresh.
2024-05-20 01:12:32 +10:00
Stenzek 14c30dfa80
FullscreenUI: Update string list 2024-05-19 13:19:51 +10:00
Stenzek 1205b75c51
GameList: Reduce logging verbosity 2024-05-19 13:19:51 +10:00
Stenzek 1adaea9005
GameList: Merge multi-disc games 2024-05-18 15:21:44 +10:00
Stenzek 9bdf23cba7
System: Load game settings from first disc of multi-disc games 2024-05-18 15:21:44 +10:00
Stenzek 073ac87be2
GameList: Use string_view for GetEntryForPath() 2024-05-18 15:21:43 +10:00
Stenzek 9b086b7807
CPU: Fix disassembly of rtps/nclip 2024-05-18 00:33:22 +10:00
Stenzek 7476baced6
CPU/PGXP: Track valid Z for lower/upper halves of 32-bit values
Dragon Valor writes both lower and upper halfwords separately from
non-valid-Z values. The Z needs to be cleared out.
2024-05-18 00:33:22 +10:00
Stenzek ea4efb4e52
CPU/PGXP: Prefer fresh over tainted Z values
Fixes terrain polygon's Z in Wild Arms 2 after battles.
2024-05-18 00:33:22 +10:00
Stenzek 5672b0da95
CPU/PGXP: sub rd, rs, 0 => move rd, rs 2024-05-18 00:33:22 +10:00
Stenzek bbac7a60a0
CPU/PGXP: Don't set high bits of flags 2024-05-18 00:33:22 +10:00
Stenzek 37b1aa45dd
CPU/PGXP: Minor optimization to shift instructions 2024-05-18 00:33:22 +10:00
Stenzek 3fd86a69a4
CPU/PGXP: Use component enum 2024-05-18 00:33:22 +10:00
Stenzek e4bedbbbfa
CPU/PGXP: Readability improvements 2024-05-17 23:46:18 +10:00
Stenzek 29d4e04e3b
CPU/PGXP: Use bit math for flags instead of union 2024-05-17 23:46:18 +10:00
Stenzek 82f3e17b78
CPU: Value logging/tracing for PGXP 2024-05-17 23:46:18 +10:00
Stenzek a59a42f35b
Qt: Fix translation of %n hours 2024-05-17 14:23:41 +10:00
Stenzek 35bdbf2a55
System: Check host page size on startup 2024-05-16 17:37:23 +10:00
Stenzek c53717bbe4
System: Rewrite input profile hotkey priority logic 2024-05-16 16:53:13 +10:00
Stenzek f0a4ceb909
InputManager: Add push to toggle for macros 2024-05-15 21:17:26 +10:00
Stenzek 446750fb66
FullscreenUI: Correct heading sizes 2024-05-15 20:31:12 +10:00
Stenzek c116e5a1d5
Qt: Consider per-game overrides for Edit Memory Cards menu 2024-05-15 01:50:43 +10:00
Stenzek 18160a8e06
Qt: Add option to pause when controller is disconnected 2024-05-14 16:00:09 +10:00
Stenzek 8f415a44e6
CPU/NewRec: Fix register allocation crash on Linux 2024-05-14 15:13:18 +10:00
Stenzek e517581041
System: Tidy up some unused code 2024-05-14 15:13:18 +10:00
Stenzek f3aec0c965
Host: Re-introduce plural translation support 2024-05-13 01:46:45 +10:00
Stenzek 318fd0b0fd
System: Fix triple popup on missing BIOS 2024-05-13 00:07:47 +10:00
Stenzek be920acf38
System: Get rid of double popup on renderer create error 2024-05-13 00:06:56 +10:00
Stenzek 5808e14b7e
GameDatabase: Warning fix 2024-05-13 00:06:56 +10:00
Stenzek 522c2e3458
FullscreenUI: Use native file selector on Flatpak 2024-05-12 20:28:20 +10:00
Stenzek 37a76a020a
FullscreenUI: Add horizontal padding to menu windows 2024-05-12 18:14:51 +10:00
Stenzek 69e0c1681c
FullscreenUI: Correct pixel alignment of some UI elements
Fixes scrollbars showing up at some window sizes.
2024-05-12 17:57:18 +10:00
Stenzek 864b0ad5fe
Qt: Save audio output latency value separately to minimal flag 2024-05-12 17:36:15 +10:00
Stenzek e7765d26fb
System: Fix double popup on missing SBI file 2024-05-12 17:20:37 +10:00
Stenzek a4a35b7e58
GPU: Add Bilinear (Integer) scaling option 2024-05-12 15:32:21 +10:00
Stenzek d3546d18a1
Qt: Add compatibility report in game summary 2024-05-06 00:00:41 +10:00
Stenzek ffb5682b43
Qt: Add game list excluded folders as well as files
Backport of https://github.com/PCSX2/pcsx2/pull/9730
2024-05-05 22:29:26 +10:00
Stenzek fa104acdd1
Misc: Purge unused code and report startup error to host 2024-05-05 22:29:26 +10:00
Stenzek ca3cfbaa99
Misc: Pass string_view by value 2024-05-05 22:28:29 +10:00
xujibbs fea00d0149
FullscreenUI: Mark %d ms for translation (#3196) 2024-05-05 12:41:46 +10:00
Stenzek 1185f8f6aa
GPU: Implement CLUT cache (SW renderer only)
Fixes copyright screen in Shadow Master.
Fixes title splash in Castrol Honda Superbike Racing.
2024-05-02 01:03:58 +10:00
Stenzek d1483d8077
GPU: Rework pre-draw clipping 2024-05-02 01:03:58 +10:00
Stenzek 7e22fb08d2
GPU: Add #define'able PSX GPU stats 2024-05-01 23:00:10 +10:00
Stenzek fec210b1e1
GPU: Ensure coordinates are masked/clamped 2024-05-01 20:58:21 +10:00
Stenzek 25f725c263
GPU: Fix mask for drawing area coordinates 2024-04-28 15:44:41 +10:00
Stenzek d094978214
Justifier: Add controller implementation 2024-04-28 15:25:24 +10:00
Stenzek 3be02c53c1
GPU: Improve CRTC hblank accuracy
And implement Timer0 gating, it was missing previously.
2024-04-28 15:25:24 +10:00
Stenzek 295081fe62
Misc: Replace offsetof with constexpr-friendly OFFSETOF
Fixes build with clang-18.
2024-04-28 15:25:24 +10:00
Stenzek 3e99084770
Settings: Fix double source of truth for controller names 2024-04-27 13:21:11 +10:00
Stenzek d80aa91d49
ImGuiOverlays: Fix >1 controller display 2024-04-27 12:41:47 +10:00
Stenzek 2fc9a6d834
CPU/NewRec: Work around clang <16 structured binding capture bug 2024-04-26 19:23:46 +10:00