Henrik Rydgård
0049b19fbf
Fix OOB in texture replacer mip mixing and non-DXT texture decode
...
Vuln 17: ReplacedTexture::LoadLevelData let a KTX2/DDS file at a higher
mip level resize the shared data_ vector to its own (attacker-controlled)
mip count, so data_[mipLevel + i] indexed out of bounds and the KTX2
branch resized a different element than it wrote to. Disallow mixing
image formats across mip levels, cap the container mip count, and resize
the same element that is used as the transcode destination.
Vuln 18: DecodeTextureLevel only validated the start address for
non-DXT textures, so guest-controlled w/h/bufw could drive reads past
mapped RAM. Validate the needed range like the DXT path does and clamp
the height; ReadIndexedTex now takes the clamped w/h.
2026-08-01 13:16:22 +02:00
Henrik Rydgård
90d922226f
Correct maxSeenV handling
2026-07-18 12:31:01 +02:00
Henrik Rydgård
63331fd6d1
Remove DeleteTexture function, only made the code less clear
2026-07-18 12:08:50 +02:00
Henrik Rydgård
ee1314f803
Add new TexCache logging channel
2026-07-18 11:57:56 +02:00
Henrik Rydgård
cff09041c9
Completely rework the flow in TextureCacheCommon::ApplyTexture
2026-07-18 11:57:48 +02:00
Henrik Rydgård
b9b2b2b61e
Reindent some code, do checks in a more logical order
2026-07-18 11:57:48 +02:00
Henrik Rydgård
1ffdc52111
Remove another "next" variable, cleanup
2026-07-18 11:57:48 +02:00
Henrik Rydgård
3b58242063
More cleanup
2026-07-16 20:54:58 +02:00
Henrik Rydgård
31c32c0ee0
Remove the "nextFramebufferTexture_" variable
2026-07-16 20:30:01 +02:00
Henrik Rydgård
40bce17f53
Some cleanup
2026-07-16 20:27:44 +02:00
Henrik Rydgård
130fad6876
Split out a function to finish up binding of framebuffers
2026-07-16 20:15:51 +02:00
Henrik Rydgård
0528646ea3
Invert the relationship between the two functions
2026-07-16 19:08:18 +02:00
Henrik Rydgård
e81055db16
Remove the need to call SetTexture() externally.
2026-07-16 18:32:47 +02:00
Henrik Rydgård
92ec6a992b
Remove "pixelMapped" from gstate_c.
2026-07-16 17:45:22 +02:00
Henrik Rydgård
6f4f0c41b4
Split ApplyTexture into ApplyTexture and ApplySampler
2026-07-16 17:45:22 +02:00
Henrik Rydgård
2e012b8966
Unify the "BindSampler" function between the backends
2026-07-16 17:45:22 +02:00
Henrik Rydgård
57e6bafb62
Remove largely ineffective and nearly not functional "low memory mode". Unlikely to save us.
2026-07-16 15:28:40 +02:00
Henrik Rydgård
672b549109
Make GetFramebufferSamplingParams a loose function.
2026-07-16 15:28:33 +02:00
Henrik Rydgård
d2ae8af2bf
Start splitting apart Texture vs Sampler binding code
2026-07-16 15:03:23 +02:00
Henrik Rydgård
615815e9ab
Minor code cleanup
2026-07-16 15:03:23 +02:00
Henrik Rydgård
c278fdf5a3
Rename some vars, move a function from header to cpp
2026-07-16 15:03:20 +02:00
Henrik Rydgård
90c48671d7
D3D11: Remove support for BGRA textures and preferred framebuffer formats
2026-07-03 16:20:22 +02:00
Henrik Rydgård
49b3b4462c
ImGeDebugger: Allow viewing the alpha channel (so you can compare it to stencil...)
2026-06-14 13:23:49 +02:00
Henrik Rydgård
f3e590b059
Experiment with a compat flag that forces shader depal
2026-06-12 12:19:17 +02:00
Henrik Rydgård
87cc608df1
Add the necessary logic to use in-shader CLUT lookups for regular textures
2026-06-11 12:42:16 +02:00
Henrik Rydgård
4f925fa5f2
Minor code cleanup
2026-06-11 11:59:00 +02:00
Henrik Rydgård
0bf1d12053
Prepare for shader depal (CLUT palette lookup) for ordinary textures
2026-06-11 11:58:58 +02:00
Henrik Rydgård
d33425d01d
Split out the CLUT texture cache from "TextureShaderCache"
2026-06-11 10:57:30 +02:00
Henrik Rydgård
f034cb45bb
Unify UpdateCurrentClut between D3D11 and Vulkan (GLES is still different)
2026-06-11 10:40:21 +02:00
Henrik Rydgård
9c9e709bfa
Restore and plug back in some of the texture invalidation logic. Fixes GT, not much other impact.
2026-06-09 23:49:54 +02:00
Henrik Rydgård
5691440442
Clean out some more stuff we don't need anymore
2026-06-09 23:49:54 +02:00
Henrik Rydgård
1781f693b5
Implement the new SyncDomain concept for texture hashing, remove minihash
2026-06-09 23:49:54 +02:00
Henrik Rydgård
36bdde68f9
Delete the "Lazy texture cache" option
2026-06-09 23:49:54 +02:00
Henrik Rydgård
c300c8fa82
Shrink the TexCacheEntry struct a bit
2026-06-09 11:25:51 +02:00
Henrik Rydgård
a38c52601c
Turn TexCacheEntry::TexStatus into an enum class
2026-06-09 11:25:51 +02:00
Henrik Rydgård
7ced074154
Rearrange the texture status flags, rename Full alpha to Solid alpha for textures
2026-06-09 11:25:50 +02:00
Henrik Rydgård
ec6c7b08f5
Add a common TextureAlpha enum, replacing CheckAlphaResult and ReplacedTextureAlpha.
2026-06-09 11:25:50 +02:00
Henrik Rydgård
fdcf923c75
TexCache: Stop bitpacking the hash status into the status flags
2026-06-09 11:25:50 +02:00
Henrik Rydgård
54d5c1d5e3
Improve some initialization in CrossSIMD.h. Add comments about CLUT variants
2026-06-09 10:15:08 +02:00
Henrik Rydgård
e0a961ddc5
Just some basic code cleanup in TextureCacheCommon.
2026-06-08 22:51:00 +02:00
Henrik Rydgård
2534eb4480
Disable anisotropic filtering for all flat draws.
...
May improve performance slightly, and should fix the last instances of #19555
2026-06-08 15:28:58 +02:00
Henrik Rydgård
a317890c08
Remove the GPUDebugInterface class
...
Just a pointless extra layer in the class hiearchy, making it
unnecessarily hard to modify the interface.
Might as well hit GPUCommon directly.
2026-06-02 11:15:08 +02:00
Henrik Rydgård
f60e27a9b7
Just some refactoring of the GPUStatistics struct, and more use of StringWriter
2026-05-29 14:40:31 +02:00
Henrik Rydgård
6919d8a764
ImGeDebugger: In the textures window, properly write out the status flags.
2026-04-07 11:39:16 -06:00
Henrik Rydgård
475390a968
Add workaround for Tales of Phantasia X.
...
Fixes #21162
2026-01-29 23:16:51 +01:00
Henrik Rydgård
bdf08c84fd
Move the ImGui texture cache viewer out of core
2025-05-26 19:02:57 +02:00
Henrik Rydgård
0f18f054ab
Make the frame-time budget for uploading replacement textures take framerate into account
2025-04-22 20:19:43 +02:00
Henrik Rydgård
b097a54ee0
Don't assert when using the old Ge debugger in OpenGL
2025-01-05 09:28:34 +01:00
Henrik Rydgård
638607d29a
Refactor: Make GPUCommon own the framedump "recorder".
2024-12-15 12:07:44 +01:00
Henrik Rydgård
27122a9e64
Work on previews
2024-12-10 22:09:51 +01:00