Commit Graph

74 Commits

Author SHA1 Message Date
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
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 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 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 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 a1efed31b9 GPU: Use flags to fix triggered upload/download.
No longer using mirror hacks.
2022-10-03 20:17:25 -07:00
Unknown W. Brackets 73040ebb8f GE Debugger: Ignore mirrors for target in record. 2022-10-02 20:48:28 -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
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 86085335ca GE Debugger: Record 1 flip if no display calls.
Before we were waiting 4 flips before ending recording.
2022-08-23 19:20:14 -07:00
Unknown W. Brackets 229c944208 GE Debugger: Include extended CLUT in frame dumps.
Not available on a real PSP, but used in an enhancement (see #15727.)
2022-08-20 17:35:06 -07:00
Henrik Rydgård 2f3cad9964 After recording a GE dump, open an explorer window pointing at the file 2022-08-16 21:54:36 +02:00
Unknown W. Brackets c74d69bc2d Debugger: Correct GE frame dump VRAM dirty flag.
Was just wrong before, causing incorrect ignoring in some cases.
2022-08-11 20:25:01 -07:00
Unknown W. Brackets 539e2bbbf8 Debugger: Track unchanged VRAM to avoid copy.
See #15251, the framedump here reused a VRAM texture for many draws, and
this caused it to recopy the texture over and over again.  Use a flag to
skip if possible.
2022-02-20 13:51:40 -08:00
Unknown W. Brackets 2479d52202 Global: Reduce includes of common headers.
In many places, string, map, or Common.h were included but not needed.
2022-01-30 16:35:33 -08:00
Henrik Rydgård f991f6a789 Remove the old allocator visualizer. Keep the setting but hide it. Other feedback 2021-11-23 08:55:12 +01:00
Unknown W. Brackets a0599f70c4 GE Debugger: Record until some drawing.
Otherwise, we end up with empty frame dumps if games call display twice.
2021-11-03 17:40:20 -07:00
Henrik Rydgård 73871b9b7e Implement new thread manager, port stuff to it. 2021-06-12 13:03:53 +02:00
Henrik Rydgård 025bcb1673 Introduce Path, start using it all over the place.
Still lots left to convert!

Convert GetSysDirectory to return Path.

More buildfixing

Remove unnecessary Path( constructors
2021-05-13 10:39:16 +02:00
Unknown W. Brackets 086b8229f5 GE Debugger: Keep dump generation deterministic. 2021-04-17 16:25:36 -07:00
Unknown W. Brackets abb7b83fee GE Debugger: Thread dedupe pushbuf lookups.
This improves time especially for larger dumps.
2021-04-16 00:00:56 -07:00
Unknown W. Brackets a97030068c GE Debugger: Use zstd for save states. 2021-04-11 09:13:10 -07:00
Henrik Rydgård 4f43cff5ca Move fileutil, net, image loaders, ui to Common. (#13506)
* Move and rename file_util/fd_util to Common/File/FileUtil and DirListing

Let's also move net while we're at it.

Move the ZIM/PNG loaders over to Common.

Move the UI framework into Common

iOS buildfix

* Buildfix

* Buildfixes

* Apple buildfix

* This typo again..

* UWP buildfix

* Fix build of PPSSPPQt, such as it is (it's not in good condition...)

* Guess what? Another buildfix.
2020-10-04 20:48:47 +02:00
Henrik Rydgård ed88761ecc Merge ext/native/stringutil.cpp/h into Common/StringUtils.cpp/h. 2020-09-29 15:51:51 +02:00
Unknown W. Brackets 815580533c GE Debugger: Include game ID inside dump file.
Just so we're not relying on filename parsing.  It's useful information.
2020-09-06 14:38:56 -07:00
Unknown W. Brackets 61f907fd18 GE Debugger: Fix alignment in GE dumps. 2020-05-24 19:06:20 -07:00
Unknown W. Brackets 93069756e6 GE Debugger: Split playback into a separate file. 2019-06-23 18:49:27 -07:00
Unknown W. Brackets 9e98642258 GE Debugger: Cache decompressed frame commands.
This adds to noise in profiling the frame dump.
2019-06-23 18:29:36 -07:00
Unknown W. Brackets df6c5f38dc Core: Use readable names for failed backends. 2019-06-22 12:48:56 -07:00
Unknown W. Brackets bb7d9646f2 GE Debugger: Fix dump replay ticks accounting.
Sometimes a list ends earlier than now, we don't need to eat cycles then.
Fixes #11655.
2018-12-10 23:05:42 -08:00
Unknown W. Brackets 3cf3985c8d GE Debugger: Support record for more render types.
This should handle both games that use display, and games that don't.
2018-11-17 22:12:45 -08:00
Unknown W. Brackets 179514e8d7 GE Debugger: Avoid writing 0 sized packets.
This causes errors on allocation sometimes due to things like count=0 in a
prim command.
2018-11-17 22:01:14 -08:00
Henrik Rydgård 036556c371 Merge pull request #11564 from unknownbrackets/ge-dump
GE Debugger: Preserve VRAM textures / render-to-texture in dumps
2018-11-17 23:32:20 +01:00
Unknown W. Brackets 2d3885fc1a GE Debugger: Fix display event record timing.
When the display happens mid frame, this fixes it so you can see the
result easily when running the dump, without manually stepping through.
2018-11-17 11:14:10 -08:00
Unknown W. Brackets 6383f407d1 GE Debugger: Avoid overwriting in softgpu playback. 2018-11-17 10:06:31 -08:00
Unknown W. Brackets 169d2fa444 GE Debugger: Preserve VRAM textures in dumps.
Should allow for (some) reproduction of render-to-texture behavior.
2018-11-17 10:06:31 -08:00
Unknown W. Brackets 653129c528 Debugger: Add an event for GE dump recording. 2018-09-01 10:59:37 -07:00
Unknown W. Brackets c10b2035b5 Debugger: Prevent record with no commands.
Should cut down on empty dumps, at least.
2018-09-01 09:51:04 -07:00
Unknown W. Brackets 582bc2d60a GE Debugger: Stall less liberally on GE dump exec.
This makes it easier to compare performance and flushing bugs.
2018-06-11 15:14:18 -07:00
Unknown W. Brackets f7443aaa15 GE Debugger: Use a class for dump execution. 2018-06-11 15:06:40 -07:00
Henrik Rydgård ca6865b323 GE Record: After recording a frame, log the filename of the output file. 2017-12-04 15:15:55 +01:00
Unknown W. Brackets 14cf862e22 GE Debugger: Gah, fix some pointer size errors.
Happened to be 8 bytes, but not on 32-bit, of course.
2017-06-06 19:49:10 -07:00
Henrik Rydgård b5ed8de9e5 Warning fix 2017-06-05 13:39:06 +02:00