diff options
| author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2022-11-27 00:58:06 +0100 |
|---|---|---|
| committer | Fernando Sahmkow <fsahmkow27@gmail.com> | 2023-01-01 16:43:57 -0500 |
| commit | cb1497d0d7711a1c0e527aaa3e1dc3f95e5a6644 (patch) | |
| tree | 46e00278c6265ed501488e7c6f02fc4c12a6af6c /src/video_core/engines/maxwell_dma.cpp | |
| parent | ce448ce770b6c329caec7ad1ae00e01dddb67b03 (diff) | |
DMAPusher: Improve collection of non executing methods
Diffstat (limited to 'src/video_core/engines/maxwell_dma.cpp')
| -rw-r--r-- | src/video_core/engines/maxwell_dma.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/video_core/engines/maxwell_dma.cpp b/src/video_core/engines/maxwell_dma.cpp index f73d7bf0f..01f70ea9e 100644 --- a/src/video_core/engines/maxwell_dma.cpp +++ b/src/video_core/engines/maxwell_dma.cpp @@ -21,7 +21,10 @@ namespace Tegra::Engines { using namespace Texture; MaxwellDMA::MaxwellDMA(Core::System& system_, MemoryManager& memory_manager_) - : system{system_}, memory_manager{memory_manager_} {} + : system{system_}, memory_manager{memory_manager_} { + execution_mask.reset(); + execution_mask[offsetof(Regs, launch_dma) / sizeof(u32)] = true; +} MaxwellDMA::~MaxwellDMA() = default; @@ -29,6 +32,13 @@ void MaxwellDMA::BindRasterizer(VideoCore::RasterizerInterface* rasterizer_) { rasterizer = rasterizer_; } +void MaxwellDMA::ConsumeSinkImpl() { + for (auto [method, value] : method_sink) { + regs.reg_array[method] = value; + } + method_sink.clear(); +} + void MaxwellDMA::CallMethod(u32 method, u32 method_argument, bool is_last_call) { ASSERT_MSG(method < NUM_REGS, "Invalid MaxwellDMA register"); |
