aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpineappleEA <pineaea@gmail.com>2022-01-29 18:52:22 +0100
committerpineappleEA <pineaea@gmail.com>2022-01-29 18:52:22 +0100
commitb9da2703ada0c066448a730f2145aa6352af7f0c (patch)
tree8095e83fe09e5ba32ec44220044127faf336caa7
parentfc6a463ba9c3875935af5b40567d72e4e593c4a6 (diff)
early-access version 2445EA-2445
-rwxr-xr-xREADME.md2
-rwxr-xr-xsrc/video_core/engines/engine_upload.cpp1
-rwxr-xr-xsrc/video_core/memory_manager.h4
3 files changed, 4 insertions, 3 deletions
diff --git a/README.md b/README.md
index 691ce0c7d..0719abf35 100755
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
1yuzu emulator early access 1yuzu emulator early access
2============= 2=============
3 3
4This is the source code for early-access 2444. 4This is the source code for early-access 2445.
5 5
6## Legal Notice 6## Legal Notice
7 7
diff --git a/src/video_core/engines/engine_upload.cpp b/src/video_core/engines/engine_upload.cpp
index 71d7e1473..9ac0e533c 100755
--- a/src/video_core/engines/engine_upload.cpp
+++ b/src/video_core/engines/engine_upload.cpp
@@ -32,6 +32,7 @@ void State::ProcessData(const u32 data, const bool is_last_call) {
32 } 32 }
33 const GPUVAddr address{regs.dest.Address()}; 33 const GPUVAddr address{regs.dest.Address()};
34 if (is_linear) { 34 if (is_linear) {
35 memory_manager.FlushRegion(address, copy_size);
35 memory_manager.WriteBlock(address, inner_buffer.data(), copy_size); 36 memory_manager.WriteBlock(address, inner_buffer.data(), copy_size);
36 } else { 37 } else {
37 UNIMPLEMENTED_IF(regs.dest.z != 0); 38 UNIMPLEMENTED_IF(regs.dest.z != 0);
diff --git a/src/video_core/memory_manager.h b/src/video_core/memory_manager.h
index 38d8d9d74..61bfe47c7 100755
--- a/src/video_core/memory_manager.h
+++ b/src/video_core/memory_manager.h
@@ -143,6 +143,8 @@ public:
143 [[nodiscard]] GPUVAddr Allocate(std::size_t size, std::size_t align); 143 [[nodiscard]] GPUVAddr Allocate(std::size_t size, std::size_t align);
144 void Unmap(GPUVAddr gpu_addr, std::size_t size); 144 void Unmap(GPUVAddr gpu_addr, std::size_t size);
145 145
146 void FlushRegion(GPUVAddr gpu_addr, size_t size) const;
147
146private: 148private:
147 [[nodiscard]] PageEntry GetPageEntry(GPUVAddr gpu_addr) const; 149 [[nodiscard]] PageEntry GetPageEntry(GPUVAddr gpu_addr) const;
148 void SetPageEntry(GPUVAddr gpu_addr, PageEntry page_entry, std::size_t size = page_size); 150 void SetPageEntry(GPUVAddr gpu_addr, PageEntry page_entry, std::size_t size = page_size);
@@ -153,8 +155,6 @@ private:
153 void TryLockPage(PageEntry page_entry, std::size_t size); 155 void TryLockPage(PageEntry page_entry, std::size_t size);
154 void TryUnlockPage(PageEntry page_entry, std::size_t size); 156 void TryUnlockPage(PageEntry page_entry, std::size_t size);
155 157
156 void FlushRegion(GPUVAddr gpu_addr, size_t size) const;
157
158 void ReadBlockImpl(GPUVAddr gpu_src_addr, void* dest_buffer, std::size_t size, 158 void ReadBlockImpl(GPUVAddr gpu_src_addr, void* dest_buffer, std::size_t size,
159 bool is_safe) const; 159 bool is_safe) const;
160 void WriteBlockImpl(GPUVAddr gpu_dest_addr, const void* src_buffer, std::size_t size, 160 void WriteBlockImpl(GPUVAddr gpu_dest_addr, const void* src_buffer, std::size_t size,