forked from ShuriZma/suyu
device_memory: Enable direct mapped addresses for nce
This commit is contained in:
parent
2e02efbdd0
commit
4838837620
|
@ -156,8 +156,14 @@ bool IsFastmemEnabled() {
|
|||
return true;
|
||||
}
|
||||
|
||||
bool IsNceEnabled(bool is_64bit) {
|
||||
return values.cpu_backend.GetValue() == CpuBackend::Nce && is_64bit;
|
||||
static bool is_nce_enabled = false;
|
||||
|
||||
void SetNceEnabled(bool is_64bit) {
|
||||
is_nce_enabled = values.cpu_backend.GetValue() == CpuBackend::Nce && is_64bit;
|
||||
}
|
||||
|
||||
bool IsNceEnabled() {
|
||||
return is_nce_enabled;
|
||||
}
|
||||
|
||||
bool IsDockedMode() {
|
||||
|
|
|
@ -573,7 +573,8 @@ bool IsGPULevelExtreme();
|
|||
bool IsGPULevelHigh();
|
||||
|
||||
bool IsFastmemEnabled();
|
||||
bool IsNceEnabled(bool is_64bit = true);
|
||||
void SetNceEnabled(bool is_64bit);
|
||||
bool IsNceEnabled();
|
||||
|
||||
bool IsDockedMode();
|
||||
|
||||
|
|
|
@ -136,7 +136,8 @@ struct System::Impl {
|
|||
}
|
||||
|
||||
void Initialize(System& system) {
|
||||
device_memory = std::make_unique<Core::DeviceMemory>();
|
||||
const bool direct_mapped_address = Settings::IsNceEnabled();
|
||||
device_memory = std::make_unique<Core::DeviceMemory>(direct_mapped_address);
|
||||
|
||||
is_multicore = Settings::values.use_multi_core.GetValue();
|
||||
extended_memory_layout =
|
||||
|
|
|
@ -6,15 +6,20 @@
|
|||
|
||||
namespace Core {
|
||||
|
||||
#ifdef ANDROID
|
||||
#ifdef ARCHITECTURE_arm64
|
||||
constexpr size_t VirtualReserveSize = 1ULL << 38;
|
||||
#else
|
||||
constexpr size_t VirtualReserveSize = 1ULL << 39;
|
||||
#endif
|
||||
|
||||
DeviceMemory::DeviceMemory()
|
||||
DeviceMemory::DeviceMemory(bool direct_mapped_address)
|
||||
: buffer{Kernel::Board::Nintendo::Nx::KSystemControl::Init::GetIntendedMemorySize(),
|
||||
VirtualReserveSize} {}
|
||||
VirtualReserveSize} {
|
||||
if (direct_mapped_address) {
|
||||
buffer.EnableDirectMappedAddress();
|
||||
}
|
||||
}
|
||||
|
||||
DeviceMemory::~DeviceMemory() = default;
|
||||
|
||||
} // namespace Core
|
||||
|
|
|
@ -18,7 +18,7 @@ enum : u64 {
|
|||
|
||||
class DeviceMemory {
|
||||
public:
|
||||
explicit DeviceMemory();
|
||||
explicit DeviceMemory(bool direct_mapped_address);
|
||||
~DeviceMemory();
|
||||
|
||||
DeviceMemory& operator=(const DeviceMemory&) = delete;
|
||||
|
|
Loading…
Reference in New Issue