Stenzek
ddffc055b9
GPU/HW: Use sized tristrips instead of fullscreen quads
2025-01-07 19:25:11 +10:00
Stenzek
cae1ddc971
GPU: Ensure batches are flushed before presenting frame
...
Fixes occasional assertion failing when using the debugger.
2025-01-07 12:28:15 +10:00
Stenzek
b7832e609f
GPU/HW: Vectorize flipped sprite handling
2024-12-29 17:25:55 +10:00
Stenzek
799f5bdf97
GPU: Assume vertex commands are 8-byte aligned
2024-12-28 20:24:22 +10:00
Stenzek
74fd217afb
GPU/HW: Always update/load/save CLUT
...
We have the headroom with multithreading now, and it prevents issues
saving/loading state in loading screens in some games.
2024-12-28 20:24:21 +10:00
Stenzek
c99625e4c3
GPU: Move vertex culling to GPU thread
...
i.e. push all primitives through unless they are oversized, which the
GPU will definitely skip.
Needed because of coordinate truncation in Final Fantasy VIII, these
scenes will now render correctly with the software renderer again.
2024-12-28 20:24:09 +10:00
Stenzek
b8fa97e1a7
GPU: Fix sprite texture filtering with TC enabled
2024-12-24 00:24:37 +10:00
Stenzek
9a22ac3c70
GPU/HW: Download VRAM when enabling sw-for-readbacks
2024-12-23 17:55:47 +10:00
Stenzek
0b4e302c22
GPU: Implement PGXP for lines
2024-12-22 16:48:45 +10:00
Stenzek
62285dcf33
Settings: Split into GPU and main settings
...
That way the GPU thread copy doesn't need fields it never touches.
2024-12-21 14:53:15 +10:00
Stenzek
2d659fc3eb
GPU: Move backend work off CPU thread
2024-12-19 23:32:15 +10:00
Stenzek
831c982f3b
System: Rewrite memory save state handling
...
Makes it more friendly to GPU thread.
2024-12-19 22:42:28 +10:00
Stenzek
57595c47af
GPU/TextureCache: Move replacement cache onto the GPU
...
And enforce a maximum. Should sort out the upload spam.
2024-11-25 19:37:28 +10:00
Stenzek
3ff1b04576
GPUDevice: Support generating mipmaps
2024-11-24 23:29:28 +10:00
Stenzek
5c03e1d940
Misc: Fix alignment errors on ARM32
2024-11-23 18:52:45 +10:00
Stenzek
c6b74684de
GPU/HW: Split shaders into resolution independent/dependent
...
Avoids recompiling everything on resolution change.
2024-10-27 15:15:20 +10:00
Stenzek
1ae2dcf192
GPU: Propagate initialization error to caller
...
Avoids double error popup.
2024-10-26 01:41:29 +10:00
Stenzek
43ed92415d
GPU/HW: Fix assert triggering in debug mode
2024-10-19 17:05:06 +10:00
Stenzek
71bb953253
GPU/HW: Handle redundant texture window updates
...
Significantly reduces draw count in THPS2.
~150 draw calls per frame to ~70.
2024-10-05 13:06:45 +10:00
Stenzek
e06f1f1002
GPU: Add hardware texture cache
2024-09-29 13:37:47 +10:00
Stenzek
fd8f97f4d3
GPU/HW: Fix adaptive downsampling
...
Also rewrite shaders to improve blurring around edges of 3D objects
(e.g. FF7).
As a trade-off, the background does blur slightly less, but (imo)
it looks better overall, since you'll notice the foreground being
blurred much more than the background.
2024-09-26 13:25:53 +10:00
Stenzek
986e207cff
GPU/HW: Make batch shaders independent on resolution
...
Almost a 6x reduction in *compressed* shader cache size.
2024-09-22 21:06:05 +10:00
Stenzek
b5df06a54a
GPU/HW: Rewrite automatic internal resolution selection
...
Make it aspect ratio aware, as well as updating when/if the game changes
resolution. Also include the padding area in the OSD/status resolution.
2024-09-21 22:26:05 +10:00
Stenzek
7f4e5d55db
Misc: Update copyright headers
2024-09-01 22:08:31 +10:00
Stenzek
a2f98541b3
Misc: Slim down some header includes
2024-08-04 14:49:55 +10:00
Stenzek
2a617c505a
GPU/HW: Support using ROV for accurate blending
2024-07-23 14:46:06 +10:00
Stenzek
298f39a0c8
GPU/HW: Fully report shader/pipeline creation failures
2024-07-22 15:43:18 +10:00
Stenzek
59a2309a83
GPU: Use half width vector types where appropriate
2024-07-14 21:25:48 +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
87f2995f3d
TextureReplacements: Namespace-ify
2024-07-04 15:52:32 +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
044d7a4797
GPU: Eliminate heap allocation on state load
2024-07-03 00:24:12 +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
80d1056ddf
GPU: Add virtual call when buffers are swapped
2024-06-28 21:15:47 +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
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
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
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
fec210b1e1
GPU: Ensure coordinates are masked/clamped
2024-05-01 20:58:21 +10:00
Stenzek
99b0fb5911
GPU/HW: Move pipelines to end of struct
...
Helps keep the rest in range for ARM32's 4K displacement.
2024-04-06 21:51:52 +10:00
Stenzek
74f3c8d1aa
GPU/HW: Enable feedback loops for rendering
2024-04-01 18:12:52 +10:00
Stenzek
1ab7850ed0
GPU: Rewrite deinterlacing and add adaptive/blend modes
2024-03-16 14:14:15 +10:00
Stenzek
713d396a7e
GPU/HW: Add quad line detection (Wild Arms 2)
2024-03-02 17:13:19 +10:00
Stenzek
250fb56838
GPU/HW: Switch to indexed draws
2024-03-01 15:33:00 +10:00
Stenzek
b34742cdd2
GPU/HW: Slightly reduce struct size
2024-03-01 13:51:16 +10:00