summaryrefslogtreecommitdiff
path: root/src/core/memory.cpp
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2023-05-04 03:16:57 +0200
committerGravatar Fernando Sahmkow2023-05-07 23:46:12 +0200
commit6f90dff2938b5bd5e9311e924e8a29945f16ac18 (patch)
tree60d757ecc85615cf846b20a8d392261645a997ab /src/core/memory.cpp
parentQuery cache: stop updating pages as it's not affected by cpu writes (diff)
downloadyuzu-6f90dff2938b5bd5e9311e924e8a29945f16ac18.tar.gz
yuzu-6f90dff2938b5bd5e9311e924e8a29945f16ac18.tar.xz
yuzu-6f90dff2938b5bd5e9311e924e8a29945f16ac18.zip
Address feedback, add CR notice, etc
Diffstat (limited to 'src/core/memory.cpp')
-rw-r--r--src/core/memory.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/core/memory.cpp b/src/core/memory.cpp
index 549b64ac4..514ba0d66 100644
--- a/src/core/memory.cpp
+++ b/src/core/memory.cpp
@@ -20,7 +20,6 @@
20#include "video_core/gpu.h" 20#include "video_core/gpu.h"
21#include "video_core/rasterizer_download_area.h" 21#include "video_core/rasterizer_download_area.h"
22 22
23
24namespace Core::Memory { 23namespace Core::Memory {
25 24
26// Implementation class used to keep the specifics of the memory subsystem hidden 25// Implementation class used to keep the specifics of the memory subsystem hidden
@@ -465,7 +464,8 @@ struct Memory::Impl {
465 } 464 }
466 465
467 if (Settings::IsFastmemEnabled()) { 466 if (Settings::IsFastmemEnabled()) {
468 const bool is_read_enable = !Settings::values.use_reactive_flushing.GetValue() || !cached; 467 const bool is_read_enable =
468 !Settings::values.use_reactive_flushing.GetValue() || !cached;
469 system.DeviceMemory().buffer.Protect(vaddr, size, is_read_enable, !cached); 469 system.DeviceMemory().buffer.Protect(vaddr, size, is_read_enable, !cached);
470 } 470 }
471 471
@@ -654,9 +654,7 @@ struct Memory::Impl {
654 LOG_ERROR(HW_Memory, "Unmapped Read{} @ 0x{:016X}", sizeof(T) * 8, 654 LOG_ERROR(HW_Memory, "Unmapped Read{} @ 0x{:016X}", sizeof(T) * 8,
655 GetInteger(vaddr)); 655 GetInteger(vaddr));
656 }, 656 },
657 [&]() { 657 [&]() { HandleRasterizerDownload(GetInteger(vaddr), sizeof(T)); });
658 HandleRasterizerDownload(GetInteger(vaddr), sizeof(T));
659 });
660 if (ptr) { 658 if (ptr) {
661 std::memcpy(&result, ptr, sizeof(T)); 659 std::memcpy(&result, ptr, sizeof(T));
662 } 660 }
@@ -721,7 +719,8 @@ struct Memory::Impl {
721 const size_t core = system.GetCurrentHostThreadID(); 719 const size_t core = system.GetCurrentHostThreadID();
722 auto& current_area = rasterizer_areas[core]; 720 auto& current_area = rasterizer_areas[core];
723 const VAddr end_address = address + size; 721 const VAddr end_address = address + size;
724 if (current_area.start_address <= address && end_address <= current_area.end_address) [[likely]] { 722 if (current_area.start_address <= address && end_address <= current_area.end_address)
723 [[likely]] {
725 return; 724 return;
726 } 725 }
727 current_area = system.GPU().OnCPURead(address, size); 726 current_area = system.GPU().OnCPURead(address, size);