Commit graph

53 commits

Author SHA1 Message Date
Henrik Rydgård
c91169e702 Restore removed <algorithm> includes.
Turns out these were needed after all. For some reason, on Windows and
Mac, <algorithm> gets auto-included by something else so I don't notice
when it's missing, and MSVC's include dependency tracker doesn't see it
either.
2024-12-19 09:53:07 +01:00
Henrik Rydgård
45cf6d423e Buildfixes 2024-12-18 13:57:29 +01:00
Henrik Rydgård
3e198c53b2 More include cleanup 2024-12-18 13:57:26 +01:00
Henrik Rydgård
7992ff4627 Make CBreakpoints an object 2024-11-25 00:22:53 +01:00
Henrik Rydgård
fd9daf7594 Fix some minor issues found by --sanitize. Add --sanitizeub.
Unfortunately the ub (undefined behavior) sanitizer has some bugs, it doesn't
understand pointers to member functions, so can't use it in-game (due to the
vertex decoder).

Thanks Nemoumbra for the reminder.
2024-07-22 11:37:18 +02:00
Henrik Rydgård
01c2ffd5f5 Add a missing thread name 2024-01-29 13:52:38 +01:00
Henrik Rydgård
6aaf9b0fc8 Remove unmotivated check
See comments on #18543

I don't see how we ever ran out of bounds there.
2023-12-29 08:54:58 +01:00
Henrik Rydgård
2f1389233e MemBlockInfo: Fix potential out-of-bounds in the slab map, reported by Nemoumbra 2023-12-13 21:53:16 +01:00
Unknown W. Brackets
0668a60406 Debugger: Improve savestate load performance. 2023-09-30 15:53:41 -07:00
Unknown W. Brackets
fc133f4994 Debugger: Use a thread to flush meminfo. 2023-09-24 20:03:27 -07:00
Unknown W. Brackets
b0da32f41f Debugger: Defer copy src tag lookups. 2023-09-24 19:07:45 -07:00
Unknown W. Brackets
a416478780 Debugger: Skip tag copy on READ notify. 2023-09-24 19:07:45 -07:00
Unknown W. Brackets
810d8c0890 Debugger: Use dedicated func to notify mem copy. 2023-09-24 19:07:36 -07:00
Unknown W. Brackets
d5c91fa02c Debugger: Reduce cost of small copy tracking.
This uses another 400KB RAM and does a bit more writing, but makes lookups
faster.
2023-08-31 00:17:30 -07:00
Unknown W. Brackets
3d61f97b81 Debugger: Fix allocs+writes collapsing together. 2023-05-06 13:39:31 -07:00
Henrik Rydgård
dc74778dea Do the last ones too 2023-02-09 10:27:29 +01:00
Unknown W. Brackets
3938c0a3af Debugger: Combine mem info on duplicates.
Gran Turismo does some churn on texture sizes, we can combine them and
reduce the speed hit even when detailed.
2022-11-18 23:11:11 -08:00
Unknown W. Brackets
58a4376998 GPU: Normalize framebuf addresses.
In VRAM, always store without mirror.  In RAM, always store without
cache/kernel bits.
2022-10-02 21:28:53 -07:00
Henrik Rydgård
ecb84987ef Remove allocation from the heaviest MemBlockInfo path (BlockTransfer). Required some refactoring. 2022-09-01 11:59:35 +02:00
Unknown W. Brackets
7f07b4154a Debugger: Keep separate tag dirty for RAM.
VRAM and RAM can often be separately dirty, so keeping two ranges helps
reduce flushing, and flushing things together is more efficient.
2022-03-20 13:24:42 -07:00
Unknown W. Brackets
7eafbb54bd Debugger: Fast path write tag lookup. 2022-03-20 13:19:13 -07:00
Unknown W. Brackets
6945151384 Debugger: Improve tag on copies.
MemInit shows up sometimes when the allocation would be more useful.
2022-03-20 12:05:31 -07:00
Unknown W. Brackets
80e054b797 Debugger: Avoid write tag lookup on small alloc. 2022-02-06 09:28:48 -08:00
Unknown W. Brackets
664d18cc9d Debugger: Encourage better meminfo accounting.
This makes MSVC generate a tighter loop and inline.
2022-01-30 08:03:54 -08:00
Unknown W. Brackets
0f2fc00f1b Debugger: Avoid flushing meminfo on write lookup.
Small improvement on frequent block transfers, etc.
2022-01-15 19:43:16 -08:00
Unknown W. Brackets
9155cd7491 Debugger: Reduce meminfo block check hazard.
If a debugger (i.e. the memory view) checks for memory block info while a
save state is being loaded, it can crash.  This was already rare, but this
change makes it significantly rarer.

Of course, it's still possible without a mutex, but I'm wanting to avoid
slowing down the lookups as they are used at runtime within emulation.
2021-12-04 14:51:02 -08:00
Unknown W. Brackets
5904900d37 Debugger: Add APIs to set/list/search mem tags. 2021-04-06 12:09:39 -07:00
Unknown W. Brackets
7a1398844a Debugger: Add simple API to control tagging detail.
In case a client requires it.
2021-04-04 20:23:51 -07:00
Unknown W. Brackets
ee749804fc Debugger: Note GPU block transfer src as well. 2021-04-03 18:11:44 -07:00
Unknown W. Brackets
aa89ed5111 Debugger: Include source tag in memcpys. 2021-04-03 18:11:44 -07:00
Unknown W. Brackets
c88757b3e7 Debugger: Make memory tags longer.
Need more space for better information.
2021-04-03 16:04:07 -07:00
Henrik Rydgård
ecad18a4f0
Merge pull request #14293 from unknownbrackets/debugger
Debugger: Ignore small memory info by default
2021-03-16 08:59:35 +01:00
Unknown W. Brackets
b93e02ad73 Debugger: Ignore small memory info by default.
The ini can be updated to enable higher resolution data.  Allocations are
always at least 0x100, so this is still pretty useful.
2021-03-14 15:10:35 -07:00
Henrik Rydgård
63a94ceebb Fix performance regression from failing to optimize the new mem tracker.. 2021-03-14 21:27:20 +01:00
Unknown W. Brackets
8d6c1c6d9b Debugger: Fix save state compat for slab info. 2021-03-13 10:03:02 -08:00
Henrik Rydgård
0780976fe7 Remove static assert on struct size, we don't really care that much.
Caused problems on 32-bit.
2021-03-13 17:36:10 +01:00
Henrik Rydgård
3c211a6b99 Buildfix 2021-03-13 17:28:47 +01:00
Henrik Rydgård
797cc41a1c Remove std::string from memblockinfo 2021-03-13 17:12:30 +01:00
Unknown W. Brackets
ee71ef961f Debugger: Keep char *s for memchecks. 2021-02-20 16:16:43 -08:00
Unknown W. Brackets
07de2e5401 Debugger: Prevent thread errors on mem alloc info. 2021-02-15 15:01:23 -08:00
Unknown W. Brackets
8d58bbb634 Debugger: Correct merging fragmented blocks.
Oops, wasn't clearing them so was eventually maxing out fragmentation.
2021-02-15 15:01:23 -08:00
Unknown W. Brackets
a4ed6eb167 Debugger: Fix memory lookup in mirrors/uncached.
Oops, was crashing before since it's outside the index.
2021-02-15 15:01:23 -08:00
Unknown W. Brackets
d48bb7e105 Debugger: Show memory tag info in status bar. 2021-02-15 15:01:23 -08:00
Unknown W. Brackets
595a17e9bc Debugger: Ignore unmarked mem block info in find.
We start with a large unmarked region which we break up.  Ignore this.
2021-02-15 15:01:23 -08:00
Unknown W. Brackets
f95fdf3dfd Debugger: Optimize linear marking.
This is a very common case, so helps skip ahead.
2021-02-15 15:01:23 -08:00
Unknown W. Brackets
53b8b8721e Debugger: Track slabs by end, not size.
This is simpler, we're always comparing the end anyway.
2021-02-15 15:01:23 -08:00
Unknown W. Brackets
7ccb432a97 Debugger: Defer memory map calculations.
It's not so slow, but let's defer (could even use a thread.)
2021-02-15 15:01:23 -08:00
Unknown W. Brackets
a62aa4746b Debugger: Speed up lookup using an index. 2021-02-15 15:01:23 -08:00
Unknown W. Brackets
c128df5c75 Debugger: Track ticks of allocation/write/etc. 2021-02-15 15:01:23 -08:00
Unknown W. Brackets
10a77d29ab Debugger: Track texture usage too. 2021-02-15 15:01:23 -08:00