diff options
author | bunnei <bunneidev@gmail.com> | 2022-02-01 02:08:21 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-01 02:08:21 +0100 |
commit | 34dc1c8bc2fc7d837787a4e779f354b339b12799 (patch) | |
tree | 5bbbdf9b9e67a8374c9b19cb2166d817abe60a9b /src/video_core/engines/engine_upload.cpp | |
parent | Merge pull request #7791 from german77/wall_clock (diff) | |
parent | Rasterizer: Refactor inlineToMemory. (diff) | |
download | yuzu-34dc1c8bc2fc7d837787a4e779f354b339b12799.tar yuzu-34dc1c8bc2fc7d837787a4e779f354b339b12799.tar.gz yuzu-34dc1c8bc2fc7d837787a4e779f354b339b12799.tar.bz2 yuzu-34dc1c8bc2fc7d837787a4e779f354b339b12799.tar.lz yuzu-34dc1c8bc2fc7d837787a4e779f354b339b12799.tar.xz yuzu-34dc1c8bc2fc7d837787a4e779f354b339b12799.tar.zst yuzu-34dc1c8bc2fc7d837787a4e779f354b339b12799.zip |
Diffstat (limited to 'src/video_core/engines/engine_upload.cpp')
-rw-r--r-- | src/video_core/engines/engine_upload.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/video_core/engines/engine_upload.cpp b/src/video_core/engines/engine_upload.cpp index 71d7e1473..351b110fe 100644 --- a/src/video_core/engines/engine_upload.cpp +++ b/src/video_core/engines/engine_upload.cpp @@ -7,6 +7,7 @@ #include "common/assert.h" #include "video_core/engines/engine_upload.h" #include "video_core/memory_manager.h" +#include "video_core/rasterizer_interface.h" #include "video_core/textures/decoders.h" namespace Tegra::Engines::Upload { @@ -16,6 +17,10 @@ State::State(MemoryManager& memory_manager_, Registers& regs_) State::~State() = default; +void State::BindRasterizer(VideoCore::RasterizerInterface* rasterizer_) { + rasterizer = rasterizer_; +} + void State::ProcessExec(const bool is_linear_) { write_offset = 0; copy_size = regs.line_length_in * regs.line_count; @@ -32,7 +37,7 @@ void State::ProcessData(const u32 data, const bool is_last_call) { } const GPUVAddr address{regs.dest.Address()}; if (is_linear) { - memory_manager.WriteBlock(address, inner_buffer.data(), copy_size); + rasterizer->AccelerateInlineToMemory(address, copy_size, inner_buffer); } else { UNIMPLEMENTED_IF(regs.dest.z != 0); UNIMPLEMENTED_IF(regs.dest.depth != 1); |