Commit graph

2694 commits

Author SHA1 Message Date
Stenzek 11f7bfc461
CPU/PGXP: Refactor add/sub for small speedup 2024-07-10 20:56:42 +10:00
Stenzek e5c62b8baf
CPU/PGXP: Fix incorrect Y on invalid add/sub 2024-07-10 20:56:21 +10:00
Stenzek 5881133cf5
CPU/PGXP: Set valid on bitwise ops from lowprec 2024-07-10 19:10:56 +10:00
Stenzek 9be7a37416
GSVector: SIMD-ify YUVToRGB
Almost 10x speedup on the function alone, 15% in practice ingame.
2024-07-10 15:18:42 +10:00
Stenzek 8659c8cca6
Core: Add MemoryCardIconCache 2024-07-09 21:38:38 +10:00
Stenzek de27e5de92
GPU: Add option to disable PGXP on 2D polygons 2024-07-09 20:37:58 +10:00
Stenzek f0e2d1a9fa
CPU/PGXP: Rewrite SLTI/SLTIU handlers
Don't read uninitialized memory...
2024-07-09 20:14:08 +10:00
Stenzek d922a43127
CPU/PGXP: Don't force valid input on slt/sltu 2024-07-09 19:45:44 +10:00
Stenzek 3b7844be5a
CPU/PGXP: Don't force valid inputs on mult/div 2024-07-09 19:21:47 +10:00
Stenzek d831cb69a9
CPU/PGXP: Normalize variable names 2024-07-09 19:16:16 +10:00
Stenzek 5410a42fd7
CPU/PGXP: Explicitly handle addi rt, zero, nnnn 2024-07-09 19:07:17 +10:00
Stenzek b6f7420018
CPU/PGXP: Don't force inputs to valid on add/sub 2024-07-08 17:18:27 +10:00
Stenzek 7f21226a99
GameDatabase: Warn if vertex cache is enabled but unnecessary 2024-07-07 14:29:29 +10:00
Stenzek d63ae8718f
GPU: Always calculate draw rect
Stops postfx shaders that depend on the draw rect going into NaN
territory.
2024-07-07 12:46:09 +10:00
Nik Chizhov a3d600d5c3 fix: moved vairable access 2024-07-07 12:45:49 +10:00
Nik Chizhov 5cdcdb565f fix: string to c-string to string 2024-07-07 12:45:49 +10:00
PugsyMAME d372609bdc
Add memory contents to "Addr=" string in debugger
Tweaks the format of the addr= string in the debugger/trace so that it includes the memory contents.
It will also take the 2nd character of the opcode and if it's b or h it will size it accordingly.
so
addr=800BC2D0
becomes
addr=800BC2D0[00000000]  or addr=800BC2D0[0000]  or addr=800BC2D0[00]

This change amongst other things will facilitate a widescreen cheat scanner, that will take a lot of the work away from making widescreen cheats.
2024-07-06 22:51:59 +10:00
Stenzek ed5a99066f
GPU: Cull off-screen sprites/lines
And further optimizations to culling in general.
2024-07-06 22:13:46 +10:00
Stenzek bc73dacea4
System: Use socket multiplier for sleeping when connected
Should significantly reduce PINE latency.
2024-07-06 21:56:30 +10:00
Stenzek b06fceffa4
GDB/PINE: Fix listen socket leak on shutdown 2024-07-06 21:56:30 +10:00
Stenzek 9a70003b70
MSBuild: Silence MSVC warning C4324 2024-07-06 19:45:16 +10:00
Stenzek 23962fd07e
GTE: Pack local config in struct 2024-07-06 19:33:38 +10:00
Stenzek b6a264b8b4
TimingEvents: Pack state in struct 2024-07-06 19:18:25 +10:00
Stenzek a57101c1f0
Timers: Pack state in struct 2024-07-06 19:18:25 +10:00
Stenzek f5cae1957b
MDEC: Pack state in struct 2024-07-06 19:18:25 +10:00
Stenzek e1a4c7dfdd
DMA: Pack state in struct 2024-07-06 19:18:25 +10:00
Stenzek 536b48d706
SPU: Pack state in struct 2024-07-06 19:18:25 +10:00
Stenzek 77488db3dc
Misc: Align CPU state and SPU voices to cache lines
Fixes the ~12% performance regression from the texture replacement
namespace'ify commit. Apparently LTO was placing the CPU struct in the
middle of a cache line...
2024-07-06 18:49:37 +10:00
Stenzek 4c0250716d
GPU/HW: Ensure buffers are freed prior to recreating 2024-07-04 21:54:44 +10:00
Stenzek c02bf0f662
CPU/NewRec/RV64: Compile fix 2024-07-04 21:40:19 +10:00
Stenzek 87f2995f3d
TextureReplacements: Namespace-ify 2024-07-04 15:52:32 +10:00
Stenzek 69c35c9fcd
Deps: Remove rapidjson from in-tree 2024-07-04 15:52: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 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