Henrik Rydgård and Claude Opus 5.5
e108e41675
GPU: Fix assorted leaks, null derefs and small rendering bugs
...
- Put the anisotropy level in the sampler key, so changing it applies on
Vulkan and D3D11.
- Release CLUT textures at shutdown on GLES and D3D11.
- Fix the depth readback viewport, which squeezed the image whenever the
read rectangle was smaller than the fbo.
- Test the computed depth, not the unset result, in the equal-depth clear
check.
- Don't read back a CLUT from a framebuffer without an fbo.
- Tolerate null entries when releasing post-shader objects and CLUT
textures after a failed creation.
- ImGe: Don't crash on a framebuffer without an fbo, or on GetVFB under the
software renderer.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected] >
2026-09-29 10:33:32 -06:00
Henrik Rydgård and Claude Opus 5.5
242ef0a984
GPU: Track video frames in GPUCommon, so they expire for the blit cost too
...
The blit cost remembered only the last buffer a decoder wrote into, forever.
Move the texture cache's video list (with its ageing out a few flips after
the last write) into GPUCommon, so the texture cache, the blit cost and
SoftGPU all share one. That also counts both of a double-buffered player's
frames, which exposed that a clear drawn with texturing still enabled was
being charged as a blit - skip clears and draws without texture coordinates.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected] >
2026-09-25 17:00:11 -06:00
Henrik Rydgård
8a26e39792
Fix ImDebugger bug
2026-08-24 09:53:40 +02:00
Henrik Rydgård
a44c2c0bde
Replace System_SendDebugOutput with a registered callback
...
I normally try to avoid registrations when not needed, but in this case
only headless uses this, so it's motivated.
2026-08-11 22:36:47 +02:00
Henrik Rydgård
d7c8d6bd80
Clean up cachekey handling in texture replacer
2026-07-18 18:00:51 +02:00
Henrik Rydgård
e81055db16
Remove the need to call SetTexture() externally.
2026-07-16 18:32:47 +02:00
Henrik Rydgård
6f4f0c41b4
Split ApplyTexture into ApplyTexture and ApplySampler
2026-07-16 17:45:22 +02:00
Henrik Rydgård
e3f656539b
ImDebugger: Move a button
2026-07-16 15:03:20 +02:00
Henrik Rydgård
3e393d99e1
GeDebugger: Add some sanity checks in the vertex preview to avoid crashes
2026-07-14 14:15:32 +02:00
Henrik Rydgård
1b2f87bf1a
Rename GPUgstate to GEState
2026-07-02 20:34:09 +02:00
Henrik Rydgård
d3039271c2
Assorted warning fixes
2026-06-16 11:39:24 +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
59a21e11fd
Code cleanup and improvements in ImGe
2026-06-12 23:51:43 +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
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
a38c52601c
Turn TexCacheEntry::TexStatus into an enum class
2026-06-09 11:25:51 +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
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
00d201b216
Correct software transform stats in all-cull and through mode cases
2026-06-04 12:45:17 +02:00
Henrik Rydgård
d0f4e5c2d1
Visualize bounding boxes in ImGe debugger by drawing their corners
2026-06-03 13:46:30 +02:00
Henrik Rydgård
79328a99b3
Vertex preview works again in both debuggers.
2026-06-02 15:40:37 +02:00
Henrik Rydgård
c46774c923
Fix the ImGe debugger vertex list
2026-06-02 14:53:37 +02:00
Henrik Rydgård
bb573e6e0c
Well, it builds, but doesn't work yet.
2026-06-02 12:33:53 +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
f0d715feaa
During culling, evaluate minZ,maxZ,minW,maxW, and use them to cull some things. Also, assorted vshader work.
2026-05-30 19:07:58 +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
10b6c14a9e
Avoid memory access functions that can cause memory exceptions in ImDebugger. Minor opt.
2026-03-31 17:53:00 -06:00
Henrik Rydgård
b4a6764a53
Fix null pointer deref in ImGe, thanks fcrwr
2026-02-23 15:13:46 +01:00
Henrik Rydgård
8ceffa08cb
Ignore extreme Y offsets when matching framebuffers.
...
Fixes #15828
2026-02-12 11:03:46 +01:00
Henrik Rydgård
430cb28237
GEDebugger crashfix on framebuffer recreation
2026-02-11 09:41:57 +01:00
Henrik Rydgård
d6ebfed432
Fix some bugs and warnings from a pass of static analysis
2026-01-29 17:41:54 +01:00
Henrik Rydgård
8a431e2ec2
Add zoom feature to framebuffer list view in ImDebugger
2026-01-28 23:49:00 +01:00
Henrik Rydgård
026ea6e197
imgui debugger: Make the repeat button capable of returning values > 1
...
(for very fast repeats, but the caller must support it)
Also just increase the repeat rates in the ge debugger
2026-01-22 13:47:14 +01:00
Henrik Rydgård
5f7a937466
Rename ValidSize to ClampValidSizeAt
2025-12-30 20:31:07 +01:00
Henrik Rydgård
4c8aae50b2
Remove dead code, minor ge debugger change
2025-06-06 13:50:35 +02:00
Henrik Rydgård
d07a542d85
Fix strings pointed out by TotalCaesar659
...
See #20402
2025-05-26 20:23:46 +02:00
Henrik Rydgård
2e7f2ffcd4
Same as previous commit for the framebuffermanager debug UI
2025-05-26 19:39:51 +02: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
77d9c769fa
ImDebugger: Fix a couple of software rendering-related crashes
2025-04-30 11:50:43 +02:00
Henrik Rydgård
a97ea04827
ImGui: Add "repeatshift" buttons that auto-repeat if you hold shift.
2025-04-09 11:58:31 +02:00
Henrik Rydgård
3676f4792e
GE debugger: Split out the vertices window, show matrices in state window
2025-04-09 11:58:31 +02:00
Henrik Rydgård
c1ae455ce8
Fix ImDebugger cleanup on exit
2025-04-07 13:03:33 +02:00
Henrik Rydgård
fd09a2be27
OpenGL crashfix in dump replay
2025-03-06 10:33:45 +01:00
Henrik Rydgård
99fa1d12fc
ImDebugger: Fix various problems with dupe menu items and coloring of popups
2025-02-24 11:43:32 -06:00
Henrik Rydgård
d89eba1fca
Add simple zoom functionality to ImDebugger ge preview
2025-02-13 15:26:53 -06:00
Henrik Rydgård
d58138c585
SDL: Enable KEY_CHAR processing when imgui is active
2025-01-09 14:41:39 +01:00
Henrik Rydgård
b442183259
Add "Realtime" checkbox to pixel viewer
2024-12-21 14:19:50 +01:00