diff options
| author | 2021-11-05 15:52:31 +0100 | |
|---|---|---|
| committer | 2022-10-06 21:00:51 +0200 | |
| commit | 139ea93512aeead8a4aee3910a3de86eb109a838 (patch) | |
| tree | 857643fc08617b7035656a51728c399f30c8c2cb /src/video_core/dma_pusher.h | |
| parent | NVASGPU: Fix Remap. (diff) | |
| download | yuzu-139ea93512aeead8a4aee3910a3de86eb109a838.tar.gz yuzu-139ea93512aeead8a4aee3910a3de86eb109a838.tar.xz yuzu-139ea93512aeead8a4aee3910a3de86eb109a838.zip | |
VideoCore: implement channels on gpu caches.
Diffstat (limited to 'src/video_core/dma_pusher.h')
| -rw-r--r-- | src/video_core/dma_pusher.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/video_core/dma_pusher.h b/src/video_core/dma_pusher.h index 872fd146a..fd7c936c4 100644 --- a/src/video_core/dma_pusher.h +++ b/src/video_core/dma_pusher.h | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | #include "common/bit_field.h" | 10 | #include "common/bit_field.h" |
| 11 | #include "common/common_types.h" | 11 | #include "common/common_types.h" |
| 12 | #include "video_core/engines/engine_interface.h" | 12 | #include "video_core/engines/engine_interface.h" |
| 13 | #include "video_core/engines/puller.h" | ||
| 13 | 14 | ||
| 14 | namespace Core { | 15 | namespace Core { |
| 15 | class System; | 16 | class System; |
| @@ -17,7 +18,12 @@ class System; | |||
| 17 | 18 | ||
| 18 | namespace Tegra { | 19 | namespace Tegra { |
| 19 | 20 | ||
| 21 | namespace Control { | ||
| 22 | struct ChannelState; | ||
| 23 | } | ||
| 24 | |||
| 20 | class GPU; | 25 | class GPU; |
| 26 | class MemoryManager; | ||
| 21 | 27 | ||
| 22 | enum class SubmissionMode : u32 { | 28 | enum class SubmissionMode : u32 { |
| 23 | IncreasingOld = 0, | 29 | IncreasingOld = 0, |
| @@ -102,7 +108,8 @@ struct CommandList final { | |||
| 102 | */ | 108 | */ |
| 103 | class DmaPusher final { | 109 | class DmaPusher final { |
| 104 | public: | 110 | public: |
| 105 | explicit DmaPusher(Core::System& system_, GPU& gpu_); | 111 | explicit DmaPusher(Core::System& system_, GPU& gpu_, MemoryManager& memory_manager_, |
| 112 | Control::ChannelState& channel_state_); | ||
| 106 | ~DmaPusher(); | 113 | ~DmaPusher(); |
| 107 | 114 | ||
| 108 | void Push(CommandList&& entries) { | 115 | void Push(CommandList&& entries) { |
| @@ -115,6 +122,8 @@ public: | |||
| 115 | subchannels[subchannel_id] = engine; | 122 | subchannels[subchannel_id] = engine; |
| 116 | } | 123 | } |
| 117 | 124 | ||
| 125 | void BindRasterizer(VideoCore::RasterizerInterface* rasterizer); | ||
| 126 | |||
| 118 | private: | 127 | private: |
| 119 | static constexpr u32 non_puller_methods = 0x40; | 128 | static constexpr u32 non_puller_methods = 0x40; |
| 120 | static constexpr u32 max_subchannels = 8; | 129 | static constexpr u32 max_subchannels = 8; |
| @@ -148,6 +157,8 @@ private: | |||
| 148 | 157 | ||
| 149 | GPU& gpu; | 158 | GPU& gpu; |
| 150 | Core::System& system; | 159 | Core::System& system; |
| 160 | MemoryManager& memory_manager; | ||
| 161 | mutable Engines::Puller puller; | ||
| 151 | }; | 162 | }; |
| 152 | 163 | ||
| 153 | } // namespace Tegra | 164 | } // namespace Tegra |