summaryrefslogtreecommitdiffstats
path: root/src/video_core/engines/engine_upload.cpp
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2022-01-29 22:00:49 +0100
committerFernando Sahmkow <fsahmkow27@gmail.com>2022-01-29 22:53:27 +0100
commit4258d515e69d5f2d40301a1d1592304c12fd8126 (patch)
tree7b9ac154bb75d9ea79e0425fda2ee3db587d6d2e /src/video_core/engines/engine_upload.cpp
parentInline2Memory: Flush before writting buffer. (diff)
downloadyuzu-4258d515e69d5f2d40301a1d1592304c12fd8126.tar
yuzu-4258d515e69d5f2d40301a1d1592304c12fd8126.tar.gz
yuzu-4258d515e69d5f2d40301a1d1592304c12fd8126.tar.bz2
yuzu-4258d515e69d5f2d40301a1d1592304c12fd8126.tar.lz
yuzu-4258d515e69d5f2d40301a1d1592304c12fd8126.tar.xz
yuzu-4258d515e69d5f2d40301a1d1592304c12fd8126.tar.zst
yuzu-4258d515e69d5f2d40301a1d1592304c12fd8126.zip
Diffstat (limited to 'src/video_core/engines/engine_upload.cpp')
-rw-r--r--src/video_core/engines/engine_upload.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/video_core/engines/engine_upload.cpp b/src/video_core/engines/engine_upload.cpp
index 9ac0e533c..4eb9a094d 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,8 +37,7 @@ void State::ProcessData(const u32 data, const bool is_last_call) {
}
const GPUVAddr address{regs.dest.Address()};
if (is_linear) {
- memory_manager.FlushRegion(address, copy_size);
- memory_manager.WriteBlock(address, inner_buffer.data(), copy_size);
+ rasterizer->AccelerateInline2Memory(address, copy_size, inner_buffer);
} else {
UNIMPLEMENTED_IF(regs.dest.z != 0);
UNIMPLEMENTED_IF(regs.dest.depth != 1);