Commit graph

41415 commits

Author SHA1 Message Date
Henrik Rydgård
a5a3401bae
Merge pull request #19710 from Kethen/macos_amd_workaround
Work around metal buffer bug on MacOS + AMD GPU
2024-12-09 14:39:34 +01:00
Katharine Chui
49553bcf8d Simplify MacOS AMD GPU workaround
Based on https://github.com/KhronosGroup/MoltenVK/issues/960,
expand MacOS AMD GPU workaround to all dGPU and instead of
changing usage, just append VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
2024-12-09 14:22:56 +01:00
Katharine Chui
286580a6a0 Switch to VMA_MEMORY_USAGE_CPU_ONLY on MacOS AMD
The ideal allocation would be VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
like in 1.12.3, but vma picked an index that's actually not mappable

VMA_MEMORY_USAGE_GPU_TO_CPU selects VK_MEMORY_PROPERTY_HOST_CACHED_BIT,
which seems to hurt performance

VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT + VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
selection with VMA_MEMORY_USAGE_CPU_ONLY would suffice for the
workaround, and get better performance
2024-12-09 12:32:31 +01:00
Katharine Chui
93009a3178 Work around metal buffer bug on MacOS + AMD GPU
With VMA_MEMORY_USAGE_CPU_TO_GPU buffers, metal buffer appears 0
filled in metal trace during vkCmdCopyBufferToImage triggered
MTLBlitCommandEncoder instance method.

Allocate VMA_MEMORY_USAGE_GPU_TO_CPU instead on MacOS + AMD GPU
2024-12-08 22:13:33 +01:00
Henrik Rydgård
d21de81826
Merge pull request #19707 from hrydgard/core-improvements
Core improvements: Run-from-breakpoint fix, add two new step types
2024-12-08 16:15:31 +01:00
Henrik Rydgård
e0a1d658ea ImDebugger thread window: Visualize the wait ID when possible 2024-12-08 15:41:13 +01:00
Henrik Rydgård
93baf22369 ImDebugger: Add frame-stepping and a "skim" button (single-steps while held down) 2024-12-08 15:12:13 +01:00
Henrik Rydgård
f74e7fb6f5 Fix running when pc is at breakpoint. Fix issue when stepping through Ge-enqueuing functions. 2024-12-08 15:00:11 +01:00
Henrik Rydgård
50fadd1a4e
Merge pull request #19706 from hrydgard/core-cleanup
Core.cpp cleanup
2024-12-08 12:38:06 +01:00
Henrik Rydgård
080798b5dd Move out two more functions from Core.cpp. Clean up Windows includes 2024-12-08 12:12:02 +01:00
Henrik Rydgård
83af54950f Move more core-related stuff into Core.cpp/h 2024-12-08 11:54:58 +01:00
Henrik Rydgård
df91f699fc Move the core loop to Core.cpp 2024-12-08 11:47:12 +01:00
Henrik Rydgård
b3d08977d5 Delete unused code 2024-12-08 11:25:00 +01:00
Henrik Rydgård
59ddc7f568 Add wait id column 2024-12-08 11:13:23 +01:00
Henrik Rydgård
739a32324d Thread view: Show wait type 2024-12-08 11:13:21 +01:00
Henrik Rydgård
b3227e527b
Merge pull request #19705 from hrydgard/debugger-core-timing
ImDebugger: Add a window to inspect upcoming CoreTiming events
2024-12-07 16:49:13 +01:00
Henrik Rydgård
b3346df646 ImDebugger: Add a window to inspect upcoming CoreTiming events 2024-12-07 16:28:27 +01:00
Henrik Rydgård
3ca3a797c9
Merge pull request #19703 from hrydgard/ge-debugger-disasm
Im Ge Debugger: Add basic disassembly view
2024-12-06 13:47:00 +01:00
Henrik Rydgård
86cdd47fa2 Im Ge Debugger: Add basic disassembly view 2024-12-06 12:52:31 +01:00
Henrik Rydgård
246e2695b7
Merge pull request #19702 from hrydgard/ge-debugger-vertices
ImDebugger GE: Add vertex data viewer
2024-12-06 11:00:03 +01:00
Henrik Rydgård
5f83e48280 Move the ge debugger window back out from GPUCommon 2024-12-06 09:50:00 +01:00
Henrik Rydgård
2c8e78408b Add basic vertex data viewer (with the same flaws as the old one) 2024-12-06 09:29:12 +01:00
Henrik Rydgård
dab40ab602
Merge pull request #19700 from hrydgard/fix-break-on-load
Fix regression in break-on-load functionality
2024-12-06 00:44:46 +01:00
Henrik Rydgård
6adf8cabae Fix regression in break-on-load functionality 2024-12-06 00:40:21 +01:00
Henrik Rydgård
9297d2fc49
Merge pull request #19699 from hrydgard/more-ge-debugger
More Im GE debugger: State window, extract more code from the Windows GE debugger
2024-12-05 18:54:13 +01:00
Henrik Rydgård
51ae6ce898 Small simplification 2024-12-05 10:55:19 +01:00
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
47c98a9135 Add barebones GE state display window 2024-12-05 10:25:40 +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
0c524b712e
Merge pull request #19693 from hrydgard/debugger-refactor
More GE debugger refactoring, initial work on the new debugger
2024-12-05 09:07:07 +01:00
Henrik Rydgård
37f61bff5d Remove unused code. Activate split syscalls (for Ge stepping) when the Ge debugger is "active" 2024-12-05 00:52:21 +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
ea43e07cce Move some stuff around, rename some stuff 2024-12-05 00:36:48 +01:00
Henrik Rydgård
45dc5f640c
Merge pull request #19697 from hrydgard/split-syscalls
Add "Split syscall" mechanism
2024-12-05 00:34:55 +01:00
Henrik Rydgård
c25e6b3933 Add "Split syscall" mechanism 2024-12-05 00:05:39 +01:00
Henrik Rydgård
90d833be86
Merge pull request #19695 from hrydgard/more-ge-refactor
More GE refactor
2024-12-04 10:00:49 +01:00
Henrik Rydgård
2a7a2021fc
Merge pull request #19694 from hrydgard/log-manager-refactor
Minor log manager refactor
2024-12-03 22:35:45 +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
63c0305301 Delete unused enum, add a new parameter bool 2024-12-03 22:35:36 +01:00
Henrik Rydgård
9b1d077943 Comment updates 2024-12-03 22:35:36 +01:00
Henrik Rydgård
5d0316db6f Tune some log verbosity, remove timestamp on outputdebugstring logs 2024-12-03 22:11:01 +01:00
Henrik Rydgård
3ffff831c7 Refactor LogManager (remove GetInstance()). In headless, add option to log to OutputDebugString on Windows. 2024-12-03 21:39:42 +01:00
Henrik Rydgård
0f97578a35 Replace a bad function 2024-12-03 20:33:12 +01:00
Henrik Rydgård
9f344be824
Merge pull request #19691 from hrydgard/core-cleanup
Move irrelevant code out of Core.cpp
2024-12-02 13:49:36 +01:00
Henrik Rydgård
2b8414b437 Move irrelevant code out of Core.cpp 2024-12-02 13:26:41 +01:00
Henrik Rydgård
7926696913
Merge pull request #19690 from hrydgard/more-ge-debugger-prep
More ge debugger prep - some code reorganization
2024-12-02 12:09:22 +01:00