Commit Graph

219 Commits

Author SHA1 Message Date
Henrik Rydgård 95b7db99ed Extract the vertex formatting code from the Windows GE Debugger 2024-12-05 10:47:49 +01:00
Henrik Rydgård 6d33408da6 Move the state tab definitions to GPU/Debugger 2024-12-05 10:13:25 +01:00
Henrik Rydgård 21997784bf Extract FormatStateRow() from the Win32 GE debugger to GPU/Debugger/Registers 2024-12-05 10:07:29 +01:00
Henrik Rydgård 474e7acf54 Hook up the new (bare-bones) ImGui debug window to GPU stepping, fix stepping. 2024-12-05 00:51:59 +01:00
Henrik Rydgård 11819e87cf PauseAction readbacks now work again 2024-12-05 00:36:49 +01:00
Henrik Rydgård f8af4906f5 Ge debugger: Better solution for draw notifications 2024-12-05 00:36:49 +01:00
Henrik Rydgård 9ed8d8871e Ge stepping without wait: Tex/Prim stepping works. Draw/Single have issues. 2024-12-05 00:36:48 +01:00
Henrik Rydgård c25e6b3933 Add "Split syscall" mechanism 2024-12-05 00:05:39 +01:00
Henrik Rydgård e977906d75 Lift out running the display list to the callers.
This has one tricky case though...
2024-12-03 22:35:36 +01:00
Henrik Rydgård 0df2a40487 Remove the "GPUInterface" base class. Not really useful, GPUCommon is pretty much the same thing. 2024-12-02 11:12:14 +01:00
Henrik Rydgård 35f9b9d0d8 Qt buildfix, assorted warning fixes 2024-12-02 09:14:10 +01:00
Henrik Rydgård 96c4a10e8c Add two new core states, rename RUNNING to RUNNING_CPU and similar for stepping. 2024-12-01 21:04:21 +01:00
Henrik Rydgård 3a5968ba33 Don't block the render thread while the CPU is paused. This is a prereq for imgui debuggers. 2024-11-05 12:53:21 +01:00
Henrik Rydgård dd8f9b682f Don't crash on trying to re-record a GE dump 2024-11-01 20:27:09 +01:00
Henrik Rydgård e01ca5b057 Logging API change (refactor) (#19324)
* Rename LogType to Log

* Explicitly use the Log:: enum when logging. Allows for autocomplete when editing.

* Mac/ARM64 buildfix

* Do the same with the hle result log macros

* Rename the log names to mixed case while at it.

* iOS buildfix

* Qt buildfix attempt, ARM32 buildfix
2024-07-14 14:42:59 +02:00
Henrik Rydgård 8b99c9f9d9 GE dump playback: Don't flip unless DISPLAY is the last command. This messes up the frame structure. 2024-01-30 11:14:38 +01:00
Henrik Rydgård e3177ac870 Make some global string pointers const, not just the strings.
Minor cleanup.
2023-12-29 14:09:45 +01:00
Henrik Rydgård acbd32c5f1 Fix GE frame dumps, no longer produces only 1kb files.
Broke in ca94de8d4b
2023-12-28 20:27:32 +01:00
Herman Semenov ca94de8d4b [GPU/Common/DX9/GLES/Software] Object out of scope optimization for better codegeneration (lower level scope) 2023-12-20 12:34:34 +03:00
Herman Semenov 309f0d97f2 [Common Data Net/Core Debugger HLE/GPU Debugger] Fixed reduction data type size to strict 32-bit integer 2023-12-14 19:26:10 +03:00
Unknown W. Brackets cec9dbbdf7 Build: Add some missing include guards. 2023-09-07 17:14:58 -07:00
Henrik Rydgård d2d8688e47 Add "Create frame dump" to the in-game developer menu (that can be enabled in dev settings)
Makes it possible to create one without connecting the websocket
debugger, even on non-Windows platforms.
2023-08-24 14:41:35 +02:00
Unknown W. Brackets 3b03c1ca85 GE Debugger: Make step tex jump to first prim. 2023-07-16 11:34:51 -07:00
Unknown W. Brackets 88ba003f46 ThreadManager: Add a simple priority field.
Currently, not actually respected.
2023-02-02 17:08:24 -08:00
Unknown W. Brackets 860be93c0c GE Debugger: Prevent double init.
If you were mashing record, it was possible to add two inits to the
recording, which caused playback issues.
2022-12-18 14:53:11 -08:00
Unknown W. Brackets 9cfcbc46e6 Global: Cleanup initialization/pointer checks.
Cleaning up a lot of cases of uninitialized data, unchecked return values
for failures, and similar.
2022-12-10 21:13:36 -08:00
Unknown W. Brackets d7224a8401 GE Debugger: Cleanup logspam on game exit.
If you're stopped on a frame and quit, it was previously logging every
command as it exited, thinking it was waiting on each.
2022-12-01 23:12:14 -08:00
Unknown W. Brackets a6bc9acf16 GE Debugger: Correct LastVRAM mirror wrap around.
Oops, this fixes crashes when textures are used near the edge of VRAM.
2022-11-27 19:59:57 -08:00
Unknown W. Brackets 6c2001d12d GE Debugger: Correct texture address corruption.
Happened when playing back frame dumps that set bufw after specifying the
texture address, but before drawing.

Seen in Syphon Filter.
2022-11-19 14:59:52 -08:00
Unknown W. Brackets 1ffdf0d5b8 GE Debugger: Respect unchanged VRAM each frame.
Oops, wasn't setting the version each run after caching the frame dump
data.
2022-11-01 22:56:29 -07:00
Unknown W. Brackets 00e8720749 GE Debugger: Try harder to identify unchanged VRAM.
If we exit to the CPU (stall), we don't know if VRAM gets changed by the
CPU.  We can check to avoid making the dump require unnecessary copying.
2022-11-01 22:47:46 -07:00
Unknown W. Brackets 5afb009b56 GE Debugger: Dump textures only if possibly used. 2022-11-01 22:15:11 -07:00
Unknown W. Brackets e7185f93b3 GE Debugger: Restrict marking of dirty VRAM better. 2022-11-01 22:14:23 -07:00
Unknown W. Brackets 416265431b GE Debugger: Display if tex is framebuf.
Rather than guessing based on size, let's show explicitly.
2022-10-10 22:35:42 -07:00
Unknown W. Brackets 55d5dc3834 GPU: Rename readback and buffer write operations.
Avoid download/upload and pack, which don't have clear directions.
2022-10-09 13:49:41 -07:00
Henrik Rydgård b333695cd1 Merge pull request #16160 from unknownbrackets/vram-mirrors
GPU: Use flags to fix triggered upload/download
2022-10-04 08:45:06 +02:00
Unknown W. Brackets a1efed31b9 GPU: Use flags to fix triggered upload/download.
No longer using mirror hacks.
2022-10-03 20:17:25 -07:00
Henrik Rydgård ed3cd1dc26 Merge pull request #16150 from unknownbrackets/vram-mirrors
GPU: Mask away unused bits in framebuf/zbuf ptr, cleanup
2022-10-03 11:56:24 +02:00
Herman Semenov 29b87e0c0b Merge branch 'master' into master 2022-10-03 07:49:13 +00:00
Unknown W. Brackets 73040ebb8f GE Debugger: Ignore mirrors for target in record. 2022-10-02 20:48:28 -07:00
Unknown W. Brackets 4a17ab8070 GE Debugger: Correct mask in target breakpoints. 2022-10-02 20:47:12 -07:00
Unknown W. Brackets fcc877a0f3 GE Debugger: Fix memcpy/memset recording.
Uhh, oops.  I'm surprised I didn't notice these were broken for so long.
2022-10-01 23:48:23 -07:00
Unknown W. Brackets 978fd9fc60 GE Debugger: Record the Edram translation value. 2022-10-01 23:48:06 -07:00
lainon 3cdf72b68b Better readability and optimization insertion into container by replacing 'insert' -> 'emplace', 'push_back' -> 'emplace_back' 2022-09-30 12:35:28 +03:00
Unknown W. Brackets 7ff5434968 GE Debugger: Tag frame dump replay VRAM writes.
Just for debugging, it's helpful especially paired with softgpu tagging.
2022-09-23 21:20:14 -07:00
Unknown W. Brackets c3c5450b8f GE Debugger: Fix small tex/clut recopying.
If it's less than 256 bytes, we can't mark the entire VRAM area copied.
This still helps frame dumps avoid excessively slow VRAM recopying
situations, but fixes issues like missing trees in #12738.
2022-09-23 21:18:39 -07:00
Unknown W. Brackets fddcbfc5fa GE Debugger: Include rendered CLUTs in frame dumps.
Like with textures, this uses the VRAM address directly.
2022-09-19 12:01:34 -07:00
Unknown W. Brackets 7b4cc3334b GE Debugger: Save current clut in frame dumps.
For example, #14465 shows a case where the frame relies on a previously
loaded CLUT.
2022-09-19 08:30:12 -07:00
Unknown W. Brackets 5b5529b390 GE Debugger: Show time spent stepping. 2022-09-18 09:52:15 -07:00
Unknown W. Brackets 7d07e4e75d GE Debugger: Add fields to register expressions.
This means a conditional breakpoint can now use, for example,
vtype.through == 1 to check the through mode flag.

No constants, but this makes it easier to get right.  Would be nice to
have an autocomplete of the field names, of course...
2022-09-11 13:09:03 -07:00