aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/dma_pusher.cpp
diff options
context:
space:
mode:
authorCamilleLaVey <camillelavey99@gmail.com>2026-01-18 03:45:18 +0100
committercrueter <crueter@eden-emu.dev>2026-01-18 03:45:18 +0100
commit51cc1bc6be93eb674dfc4499a298a115ff665d13 (patch)
tree9801ab949cab91dc8414d1cebbbcdfa5e53792c5 /src/video_core/dma_pusher.cpp
parent6ec6ca7c3798e3f7c8c57ee2e8462705bebebc20 (diff)
[scheduler, dma, maxwell] Reduce CPU stalls in the GPU command processing pipeline through multiple targeted optimizations (#3296)
- Scheduler: Reduced lock scope to allow parallel command preparation across channels - DmaPusher: Added command prefetching (16-command lookahead) to improve cache hit rate - Maxwell3D: Pre-allocated macro parameter vectors to eliminate dynamic allocations and unrolls dirty register tracking loop for better cache locality - MacroEngine: Added last-executed macro cache to skip hash table lookups on hot path Co-authored-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3296 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: DraVee <dravee@eden-emu.dev> Co-authored-by: CamilleLaVey <camillelavey99@gmail.com> Co-committed-by: CamilleLaVey <camillelavey99@gmail.com>
Diffstat (limited to 'src/video_core/dma_pusher.cpp')
-rw-r--r--src/video_core/dma_pusher.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/video_core/dma_pusher.cpp b/src/video_core/dma_pusher.cpp
index 03b2e3fdf9..3844a8e2f9 100644
--- a/src/video_core/dma_pusher.cpp
+++ b/src/video_core/dma_pusher.cpp
@@ -14,6 +14,10 @@
#include "video_core/rasterizer_interface.h"
#include "video_core/texture_cache/util.h"
+#ifdef _MSC_VER
+#include <intrin.h>
+#endif
+
namespace Tegra {
constexpr u32 MacroRegistersStart = 0xE00;