306 Commits

Author SHA1 Message Date
Stenzek
deed0c9713
GameDatabase: Merge compatibility messages 2024-07-22 14:59:55 +10:00
Stenzek
59a2309a83
GPU: Use half width vector types where appropriate 2024-07-14 21:25:48 +10:00
Stenzek
a5a320720a
GPU/HW: Fix incorrect dirty rect union
Reduces GPU usage during screen waves effect in Um Jammer Lammy from
over 70% down to 3% on my 7900GRE at 9x.
2024-07-14 18:26:02 +10:00
Stenzek
de27e5de92
GPU: Add option to disable PGXP on 2D polygons 2024-07-09 20:37:58 +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
4c0250716d
GPU/HW: Ensure buffers are freed prior to recreating 2024-07-04 21:54:44 +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
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
e169189441
GPU/HW: Fix possible crash when changing texture filtering 2024-07-01 01:07:27 +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
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
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
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
a7543ab365
GPU/HW: Fix crash on VRAM write/copy with mask test 2024-05-31 20:39:31 +10:00
Stenzek
53600746c7
GPU: Cancel VRAM writes on Reset 2024-05-31 19:49:40 +10:00
Stenzek
039796690c
GPU/HW: Fix a couple of out-of-order UBO pushes 2024-05-28 17:38:28 +10:00
Stenzek
4e922a34a7
Log: Simplify macros 2024-05-24 02:08:14 +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
10df7ba319
GPU/HW: Ensure CLUT cache is synced when using SW-for-readbacks 2024-05-23 14:30:18 +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
fec210b1e1
GPU: Ensure coordinates are masked/clamped 2024-05-01 20:58:21 +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
be1d558be1
GPU/HW: Fix black screen in Metal after vertex ID wraparound 2024-04-15 23:30:58 +10:00
Stenzek
e5a024ba85
MetalDevice: Add support for framebuffer fetch 2024-04-12 21:07:16 +10:00
Stenzek
1097eab600
GPU/HW: Don't create shader blend pipelines if disallowed 2024-04-04 13:25:33 +10:00
Stenzek
74f3c8d1aa
GPU/HW: Enable feedback loops for rendering 2024-04-01 18:12:52 +10:00
Stenzek
72ab669e70
GPUDevice: Add support for feedback loops 2024-04-01 13:55:19 +10:00
Stenzek
2b7008bd93
GPU/HW: Fix box downsampling with FMVs 2024-03-29 12:37:10 +10:00
Stenzek
e54ad1956a
GPU/HW: Fix height incorrect doubling in interleaved 480i mode 2024-03-29 12:17:13 +10:00
Stenzek
1ab7850ed0
GPU: Rewrite deinterlacing and add adaptive/blend modes 2024-03-16 14:14:15 +10:00
Stenzek
8fe86ff690
GPU/HW: Fix another buffer unmapping case 2024-03-08 21:16:00 +10:00
Stenzek
7159330f63
GPU/HW: Ensure buffers are unmapped before present
Darn DX11...
2024-03-08 13:43:22 +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
Stenzek
f936a36c85
GPUDevice: Add GPUDownloadTexture
Which can also be based in host/client memory.
Use it for screenshots and VRAM downloads.
2024-02-29 18:56:50 +10:00
Stenzek
411213d6a0
GPU: Make VRAM a global object 2024-02-29 17:00:51 +10:00
Stenzek
cdb614a51f
GPU/HW: Fix possible crash (again) 2024-02-03 16:00:24 +10:00
Stenzek
cdea4eb68b
GPU/HW: Fix possible crash on setting change 2024-01-31 20:02:34 +10:00
Stenzek
af2042e713
GPU/HW: Fix toggling PGXP depth buffer causing black screen 2024-01-31 00:53:30 +10:00
Stenzek
14e3969736
Misc: Warning fixes 2024-01-26 14:31:03 +10:00
Hugo Locurcio
1b8e75e90b
Take widescreen hack into account when determining automatic resolution scale
At widescreen aspect ratios, a greater resolution scale factor is required
to maintain crisp visuals. For instance, a 16:9 output requires ~1.333×
the resolution scale of a 4:3 output (as 16:9 is ~1.333× wider than 4:3).

This improves visuals at widescreen aspect ratios when the widescreen hack
is enabled, especially for ultrawide.
2024-01-22 14:41:19 +10:00
Stenzek
37e8d1ab86
GPU/HW: Fix VRAM write replacements 2024-01-22 14:41:19 +10:00
Stenzek
150ab8f4af
GPU: Add host/hardware stats 2024-01-22 14:41:19 +10:00
Hugo Locurcio
cc94b76037
Add debanding option to improve gradient smoothness with truecolor
This option only has an effect if true color is also enabled.
2024-01-19 01:05:21 +01:00
Stenzek
fcbae6cef3
GPU/HW: Fix off-by-one in dirty rect checks
Fixes transitions in Crash 3.
2024-01-08 15:49:05 +10:00
Stenzek
98d5b98ab1
GPU/HW: Fix incorrect pipeline layout with texture buffers disabled 2023-12-27 02:03:50 +10:00
Stenzek
48a1282a08
GPU/HW: Fix incorrect layout for non-buffer VRAM write 2023-12-20 22:42:32 +10:00
Stenzek
5ef2ba0eb2
GPU/HW: Add fallback path for no-texture-buffers
Yay, old Mali drivers without SSBOs...
2023-12-19 22:38:36 +10:00
Stenzek
87a7c09466
GPU/HW: Improve heuristics for draw/write when copying 2023-12-15 16:05:44 +10:00
Stenzek
98a96db1bd
GPU: Remove redundant fields 2023-12-14 20:23:49 +10:00
Stenzek
23d5b20da6
GPU/HW: Split dirty rect into draw/write
Significant performance improvement in Persona 2.
2023-12-14 20:23:49 +10:00
Stenzek
5218ac6944
GPU/HW: Fix incorrect mask in VRAM offset calc 2023-12-14 20:23:48 +10:00
Stenzek
f1604db4a3
GPU/HW: Dynamically size downsampling textures 2023-12-09 22:08:14 +10:00
Stenzek
6b00bf016d
GPU/HW: Dynamically size display texture 2023-12-09 22:08:14 +10:00
Stenzek
a907e1f550
GPUDevice: Pool textures 2023-12-09 22:08:13 +10:00
Stenzek
3b2c70cda5
GPUDevice: Get rid of framebuffer abstraction 2023-12-09 22:08:13 +10:00
Stenzek
61783d4a34
GPU/HW: Remove unused variable 2023-12-08 20:24:59 +10:00
Stenzek
185af2b039
CPU/NewRec: Fix lui/mfc0 not getting called in CPU PGXP mode 2023-12-06 20:12:20 +10:00
Stenzek
90b14d6237
GPU/HW: Skip per-primitive flush for BG-FB with fbfetch 2023-12-03 21:37:26 +10:00
Stenzek
2ca503639d
GPU/HW: Avoid extra texture copy in Vulkan/GL 2023-12-01 19:08:50 +10:00
Stenzek
dc72f7a7af
GPU/HW: Fix texturing-and-drawing overlap
Worms Pinball.
2023-12-01 17:36:23 +10:00
Stenzek
8446856ecf
GPU/HW: Trace min/max UVs for hazards 2023-11-26 17:35:48 +10:00
Stenzek
dc75afeb3d
RegTest: Fix directory creation always failing 2023-11-25 22:04:05 +10:00
Stenzek
ff17444074
GPU/HW: Add framebuffer fetch blending path 2023-11-25 21:22:35 +10:00
Stenzek
a456741ae6
GPU/HW: Don't blend binary alpha texture filters 2023-11-25 19:49:05 +10:00
Stenzek
ad1716e376
GPU/HW: Correct OSD message 2023-11-15 19:26:02 +10:00
Stenzek
5fff97c9e1
GPU/HW: Clear instead of invalidating adaptive downsample RTs 2023-11-15 19:14:27 +10:00
Stenzek
06c4dc5e1b
GPU/OpenGL: Fix incorrect 1/4 blend on Mali 2023-10-22 00:07:46 +10:00
Stenzek
ce7f6128e9
OpenGLDevice: Cache intermediate state 2023-10-08 01:47:29 +10:00
Stenzek
eb080834ad
OpenGLDevice: Actually check max texture buffer size 2023-10-08 01:10:52 +10:00
Stenzek
d5608bf12d GPU: Fix crash with Box Downsampling/Auto Resolution Scale 2023-09-30 23:20:09 +10:00
Stenzek
b678fcd874 GPUDevice: Move debug messages over to fmt 2023-09-23 14:14:52 +10:00
Stenzek
18ae01bedb GPU/HW: Tidying up 2023-09-20 18:54:26 +10:00
Stenzek
2818eb2199 GPU/HW: Fix copy pipeline not getting destroyed 2023-09-18 22:38:15 +10:00
Stenzek
a2f19143da MetalDevice: Support multisampling 2023-09-16 19:00:28 +10:00
Stenzek
605aa3c53a Misc: Swap gsl::span for std::span 2023-09-05 22:10:50 +10:00
Stenzek
4974a8015f GPU/HW: Fix texture filtering making everything transparent 2023-09-03 18:06:27 +10:00
Stenzek
585cf25ac4 GPU: Add downsample scale option 2023-09-03 17:10:40 +10:00
Stenzek
0076ab5cc4 System: Restore context after pumping messages 2023-09-03 13:14:22 +10:00
Stenzek
7ad1b8d093 GPU: Add wireframe rendering/overlay 2023-09-02 22:26:03 +10:00
Stenzek
e804b5e701 GPUDevice: Support geometry shaders 2023-09-02 22:09:22 +10:00
Stenzek
0da14a5442 GPU/Vulkan: Fix MSAA
And disable sample rate shading ("SSAA") on AMD, Intel, and broken
mobile drivers, because it doesn't work.
2023-09-01 21:25:12 +10:00
Stenzek
09e7a5843f GPU: Add scaling shader support
Currently only Bilinear (Sharp).
2023-08-31 23:38:11 +10:00
Stenzek
8db8baf33f GPUDevice: Move display logic to GPU 2023-08-30 00:44:00 +10:00
Stenzek
39b8dcda6e GPU/HW: Fix wrapped image writes 2023-08-30 00:44:00 +10:00
Stenzek
e23c9875d5 Misc: Split core and util Host 2023-08-30 00:44:00 +10:00