mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-07-07 01:26:20 +00:00
memory: Fixes for direct memory allocation. (#615)
* memory: Size direct memory based on requested flexible memory. * memory: Guard against OrbisProcParam without an OrbisKernelMemParam. * memory: Account for alignment in direct memory suitability checks and add more debugging.
This commit is contained in:
parent
dcc4762c7e
commit
905d49fd96
5 changed files with 60 additions and 22 deletions
|
@ -68,11 +68,19 @@ void Linker::Execute() {
|
|||
}
|
||||
|
||||
// Configure used flexible memory size.
|
||||
// if (auto* mem_param = GetProcParam()->mem_param) {
|
||||
// if (u64* flexible_size = mem_param->flexible_memory_size) {
|
||||
// memory->SetTotalFlexibleSize(*flexible_size);
|
||||
// }
|
||||
// }
|
||||
if (const auto* proc_param = GetProcParam()) {
|
||||
if (proc_param->size >=
|
||||
offsetof(OrbisProcParam, mem_param) + sizeof(OrbisKernelMemParam*)) {
|
||||
if (const auto* mem_param = proc_param->mem_param) {
|
||||
if (mem_param->size >=
|
||||
offsetof(OrbisKernelMemParam, flexible_memory_size) + sizeof(u64*)) {
|
||||
if (const auto* flexible_size = mem_param->flexible_memory_size) {
|
||||
memory->SetupMemoryRegions(*flexible_size);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Init primary thread.
|
||||
Common::SetCurrentThreadName("GAME_MainThread");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue