Browse Source

Only enable heaptracker on android

pull/3001/head
lizzie 3 months ago
committed by crueter
parent
commit
ae6c3fe049
  1. 11
      src/core/memory.cpp

11
src/core/memory.cpp

@ -60,7 +60,7 @@ struct Memory::Impl {
current_page_table->fastmem_arena = nullptr;
}
#ifdef __linux__
#ifdef __ANDROID__
heap_tracker.emplace(system.DeviceMemory().buffer);
buffer = std::addressof(*heap_tracker);
#else
@ -73,8 +73,7 @@ struct Memory::Impl {
bool separate_heap) {
ASSERT_MSG((size & YUZU_PAGEMASK) == 0, "non-page aligned size: {:016X}", size);
ASSERT_MSG((base & YUZU_PAGEMASK) == 0, "non-page aligned base: {:016X}", GetInteger(base));
ASSERT_MSG(target >= DramMemoryMap::Base, "Out of bounds target: {:016X}",
GetInteger(target));
ASSERT_MSG(target >= DramMemoryMap::Base, "Out of bounds target: {:016X}", GetInteger(target));
MapPages(page_table, base / YUZU_PAGESIZE, size / YUZU_PAGESIZE, target,
Common::PageType::Memory);
@ -1025,7 +1024,7 @@ struct Memory::Impl {
std::mutex sys_core_guard;
std::optional<Common::HeapTracker> heap_tracker;
#ifdef __linux__
#ifdef __ANDROID__
Common::HeapTracker* buffer{};
#else
Common::HostMemory* buffer{};
@ -1231,7 +1230,7 @@ bool Memory::InvalidateNCE(Common::ProcessAddress vaddr, size_t size) {
impl->InvalidateGPUMemory(ptr, size);
}
#ifdef __linux__
#ifdef __ANDROID__
if (!rasterizer && mapped) {
impl->buffer->DeferredMapSeparateHeap(GetInteger(vaddr));
}
@ -1241,7 +1240,7 @@ bool Memory::InvalidateNCE(Common::ProcessAddress vaddr, size_t size) {
}
bool Memory::InvalidateSeparateHeap(void* fault_address) {
#ifdef __linux__
#ifdef __ANDROID__
return impl->buffer->DeferredMapSeparateHeap(static_cast<u8*>(fault_address));
#else
return false;

Loading…
Cancel
Save