mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-01-29 17:48:37 +00:00
core: Add support for Neo mode memory size. (#1196)
This commit is contained in:
parent
f139762c64
commit
20915eb5b8
|
@ -25,7 +25,7 @@ asm(".zerofill GUEST_SYSTEM,GUEST_SYSTEM,__guest_system,0xFBFC00000");
|
|||
|
||||
namespace Core {
|
||||
|
||||
static constexpr size_t BackingSize = SCE_KERNEL_MAIN_DMEM_SIZE;
|
||||
static constexpr size_t BackingSize = SCE_KERNEL_MAIN_DMEM_SIZE_PRO;
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
#include "common/types.h"
|
||||
|
||||
constexpr u64 SCE_KERNEL_MAIN_DMEM_SIZE = 5056_MB; // ~ 5GB
|
||||
// TODO: Confirm this value on hardware.
|
||||
constexpr u64 SCE_KERNEL_MAIN_DMEM_SIZE_PRO = 5568_MB; // ~ 5.5GB
|
||||
|
||||
namespace Libraries::Kernel {
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include "common/alignment.h"
|
||||
#include "common/assert.h"
|
||||
#include "common/config.h"
|
||||
#include "common/debug.h"
|
||||
#include "core/libraries/error_codes.h"
|
||||
#include "core/libraries/kernel/memory_management.h"
|
||||
|
@ -39,8 +40,10 @@ MemoryManager::MemoryManager() {
|
|||
MemoryManager::~MemoryManager() = default;
|
||||
|
||||
void MemoryManager::SetupMemoryRegions(u64 flexible_size) {
|
||||
const auto total_size =
|
||||
Config::isNeoMode() ? SCE_KERNEL_MAIN_DMEM_SIZE_PRO : SCE_KERNEL_MAIN_DMEM_SIZE;
|
||||
total_flexible_size = flexible_size;
|
||||
total_direct_size = SCE_KERNEL_MAIN_DMEM_SIZE - flexible_size;
|
||||
total_direct_size = total_size - flexible_size;
|
||||
|
||||
// Insert an area that covers direct memory physical block.
|
||||
// Note that this should never be called after direct memory allocations have been made.
|
||||
|
|
|
@ -142,6 +142,9 @@ struct PageManager::Impl {
|
|||
}
|
||||
|
||||
void Protect(VAddr address, size_t size, bool allow_write) {
|
||||
ASSERT_MSG(owned_ranges.find(address) != owned_ranges.end(),
|
||||
"Attempted to track non-GPU memory at address {:#x}, size {:#x}.", address,
|
||||
size);
|
||||
#ifdef _WIN32
|
||||
DWORD prot = allow_write ? PAGE_READWRITE : PAGE_READONLY;
|
||||
DWORD old_prot{};
|
||||
|
|
Loading…
Reference in a new issue