diff options
author | ameerj <52414509+ameerj@users.noreply.github.com> | 2022-12-07 06:45:06 +0100 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2022-12-20 00:08:04 +0100 |
commit | 61e4f2d931449e60d8d720862997ac565fce6634 (patch) | |
tree | 9bb7071fdf11dbe8a86d25c7f819c66d5dc127f4 /src/video_core/dma_pusher.h | |
parent | buffer_cache: Use Common::ScratchBuffer for ImmediateBuffer usage (diff) | |
download | yuzu-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.h | 8 |
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{}; |