Stenzek
2b280bddd0
GPU/TextureCache: Display replacement info on game start
2025-05-13 21:21:16 +10:00
Stenzek
751d81eff0
GPU/TextureCache: Handle FetchTexture() fails
2025-04-14 22:19:17 +10:00
Stenzek
6437a5db60
GPU/TextureCache: Dump textures asynchronously
...
Saves lagging the emulation.
2025-03-07 16:05:36 +10:00
Stenzek
36d5708391
GPU/HW: Fall back to replacements from first disc
...
So you only need one copy.
2025-02-10 23:45:24 +10:00
Stenzek
4ce48abfc1
GPU/HW: Fix incorrect source rect for page replacements
2025-02-09 17:45:16 +10:00
Stenzek
b01c06b412
GPU/TextureCache: Prevent wrapping for replacement lookup
...
Fixes replacements for 8 and 16-bit textures placed in the right-most
page of VRAM.
2025-01-31 20:56:11 +10:00
Stenzek
d65c4efdd8
GPU/TextureCache: Prefill dumped texture list with replacements
...
Allows skipping dumping replaced textures without replacements enabled.
2025-01-31 15:47:22 +10:00
Stenzek
f7d7eecb6c
GPU/TextureCache: Fix replacements starting in second page
2025-01-30 13:33:00 +10:00
Stenzek
70c45f7cf8
GPU/TextureCache: Handle replacements larger than 256x256
...
I left this unfinished because it was a pain...
2025-01-28 17:36:00 +10:00
Stenzek
f58fa2297e
GPU/TextureCache: Only use a single palette record for C16
...
Stops C16 textures larger than 256x256 being split up.
2025-01-28 17:36:00 +10:00
Stenzek
b0c0d6444c
GPU/TextureCache: Fix parsing of C16 replacement names
2025-01-28 17:36:00 +10:00
Stenzek
df8822760a
GPU/HW: Further tweaks to replacement alpha handling
...
We can't simply clear the alpha channel unconditionally here, because that
would result in any black pixels with zero alpha being transparency-culled.
Instead, we set it to a minimum value (2/255 in case of rounding error, I
don't trust drivers here) so that transparent polygons in the source still
set bit 15 to zero in the framebuffer, but are not transparency-culled.
Silent Hill needs it to be zero, I'm not aware of anything that needs
specific values yet. If it did, we'd need a different dumping technique.
2025-01-23 12:12:58 +10:00
Stenzek
6cba825bac
System: Add fatal error shutdown path
...
Switch to a null backend and shut down the system instead of crashing.
2025-01-18 22:59:48 +10:00
Stenzek
4449ae7904
Settings: Rearrange fields to avoid padding
2025-01-09 21:21:12 +10:00
Stenzek
8c2fe430d8
GPU/TextureCache: Apply 'Dump Replaced Textures' option to backgrounds too
2024-12-25 15:53:53 +10:00
Stenzek
6f3e9913f5
GPU/HW: Fix VRAM write dumping only first row
...
Still has race conditions.
2024-12-25 15:53:53 +10:00
Stenzek
86d78e5eca
GPU/TextureCache: Only use shader bilinear for initial pagefill
...
Make bilinear replacements behave the same as nearest.
2024-12-24 13:05:38 +10:00
Stenzek
9e04b0bf55
GPU/TextureCache: Add 'Always Track Uploads' option
2024-12-23 13:52:23 +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
26db661a05
GPU: Remove global indirection
2024-12-21 14:35:12 +10:00
Stenzek
2d659fc3eb
GPU: Move backend work off CPU thread
2024-12-19 23:32:15 +10:00
Stenzek
69947fb907
GPU/TextureCache: Look for replacements outside of subdirectory
...
i.e. old setups that do not have the `replacements` subdirectory.
2024-12-11 15:02:55 +10:00
Stenzek
5725a0360b
GPU: Use A1BGR5 format for SW/HashCache if available
2024-12-06 18:28:09 +10:00
Stenzek
3959c83bd4
GPU/TextureCache: Fix split writes not dumping
2024-12-02 20:12:40 +10:00
Stenzek
e9848a6182
Misc: Collapse more niche log channels
2024-12-01 23:21:33 +10:00
Stenzek
0faa9cf650
Build: Add Devel configuration
...
Gets you debug assertions and logging, while still producing an
optimized executable.
2024-12-01 23:21:33 +10:00
Stenzek
53008eb34a
GPU/HW: Allow use of RGB5A1 for texture cache
...
Reduces bandwidth and storage requirements by 50%.
2024-11-30 14:36:07 +10:00
Stenzek
c6e2235ee2
GPU/HW: Vectorize texture conversion routines
...
~100% speed up for RGBA8, ~50% for RGB5A1.
2024-11-30 14:36:07 +10:00
Stenzek
aafc029682
Misc: Un-namespace Timer
2024-11-29 20:13:37 +10:00
Stenzek
eb390a9b5d
GPU/TextureCache: Specify max hash cache size/memory in config
2024-11-27 17:52:31 +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
24dfd30839
Image: Refactor to a more generic class
2024-11-24 23:29:29 +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
4b71428846
GPU/TextureCache: Fix tracking getting enabled without TC
2024-11-18 23:34:24 +10:00
Stenzek
1451e968d5
GPU/TextureCache: Pack state in struct
2024-11-18 14:19:47 +10:00
Stenzek
9838dd9df2
GPU/TextureCache: Purge copy-target sources from hash cache
...
Saves some VRAM/hash cache usage by disacarding hash cache entries that
are discarded by a copy, but unfortunately cannot stop the uploads.
2024-11-18 14:19:47 +10:00
Stenzek
aa0c0068ce
GPU/HW: Move shadergen parameters to functions
2024-10-27 13:50:47 +10:00
Stenzek
08bdffac64
GPU/HW: Fix toggling texture replacement settings
2024-10-05 13:50:36 +10:00
Stenzek
c740fd9e11
GPU/TextureCache: Disable bilinear page upscaling by default
...
And fix it.
2024-10-04 14:48:10 +10:00
Stenzek
7e72b9fb7b
GPU/TextureCache: Fix palette reduction in C4 mode
...
It was only looking at the first row...
2024-10-01 23:01:19 +10:00
Stenzek
0730a361a3
GPU/HW: Fix batch shader compiling with GLSL ES
2024-10-01 21:14:58 +10:00
Stenzek
73fd97e770
GPUTextureCache: Fix reload replacements hotkey/menu action
2024-09-29 16:13:31 +10:00
Stenzek
e06f1f1002
GPU: Add hardware texture cache
2024-09-29 13:37:47 +10:00