summaryrefslogtreecommitdiffstats
path: root/src/video_core/dma_pusher.h
diff options
context:
space:
mode:
authorameerj <52414509+ameerj@users.noreply.github.com>2022-12-07 06:45:06 +0100
committerameerj <52414509+ameerj@users.noreply.github.com>2022-12-20 00:08:04 +0100
commit61e4f2d931449e60d8d720862997ac565fce6634 (patch)
tree9bb7071fdf11dbe8a86d25c7f819c66d5dc127f4 /src/video_core/dma_pusher.h
parentbuffer_cache: Use Common::ScratchBuffer for ImmediateBuffer usage (diff)
downloadyuzu-61e4f2d931449e60d8d720862997ac565fce6634.tar
yuzu-61e4f2d931449e60d8d720862997ac565fce6634.tar.gz
yuzu-61e4f2d931449e60d8d720862997ac565fce6634.tar.bz2
yuzu-61e4f2d931449e60d8d720862997ac565fce6634.tar.lz
yuzu-61e4f2d931449e60d8d720862997ac565fce6634.tar.xz
yuzu-61e4f2d931449e60d8d720862997ac565fce6634.tar.zst
yuzu-61e4f2d931449e60d8d720862997ac565fce6634.zip
Diffstat (limited to 'src/video_core/dma_pusher.h')
-rw-r--r--src/video_core/dma_pusher.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/video_core/dma_pusher.h b/src/video_core/dma_pusher.h
index 938f0f11c..6f00de937 100644
--- a/src/video_core/dma_pusher.h
+++ b/src/video_core/dma_pusher.h
@@ -4,11 +4,13 @@
#pragma once
#include <array>
+#include <span>
#include <vector>
#include <queue>
#include "common/bit_field.h"
#include "common/common_types.h"
+#include "common/scratch_buffer.h"
#include "video_core/engines/engine_interface.h"
#include "video_core/engines/puller.h"
@@ -136,13 +138,15 @@ private:
static constexpr u32 non_puller_methods = 0x40;
static constexpr u32 max_subchannels = 8;
bool Step();
+ void ProcessCommands(std::span<const CommandHeader> commands);
void SetState(const CommandHeader& command_header);
void CallMethod(u32 argument) const;
void CallMultiMethod(const u32* base_start, u32 num_methods) const;
- std::vector<CommandHeader> command_headers; ///< Buffer for list of commands fetched at once
+ Common::ScratchBuffer<CommandHeader>
+ command_headers; ///< Buffer for list of commands fetched at once
std::queue<CommandList> dma_pushbuffer; ///< Queue of command lists to be processed
std::size_t dma_pushbuffer_subindex{}; ///< Index within a command list within the pushbuffer
@@ -159,7 +163,7 @@ private:
DmaState dma_state{};
bool dma_increment_once{};
- bool ib_enable{true}; ///< IB mode enabled
+ const bool ib_enable{true}; ///< IB mode enabled
std::array<Engines::EngineInterface*, max_subchannels> subchannels{};