mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2026-04-26 16:25:58 +03:00
[PR #3932] [MERGED] Kernel.Vmm: Handle sparse physical memory usage + other fixes #3810
Labels
No labels
Bloodborne
bug
contributor wanted
documentation
enhancement
frontend
good first issue
help wanted
linux
pull-request
question
release
verification progress
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/shadPS4#3810
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/shadps4-emu/shadPS4/pull/3932
Author: @StevenMiller123
Created: 1/17/2026
Status: ✅ Merged
Merged: 1/21/2026
Merged by: @georgemoralis
Base:
main← Head:sparse-phys-mem📝 Commits (10+)
760ac1dInitial workf4a7e10Bug fixinge45268cFix more bugsfadae1cMore bug fixing6dddf4fEven more bug fixingb031b9cMore bugfixing697ff90Update memory.cppb7c5868Rewrite startc647e0fFix for oversized unmaps4d9613aOops📊 Changes
7 files changed (+692 additions, -523 deletions)
View changed files
📝
src/core/address_space.cpp(+180 -125)📝
src/core/address_space.h(+10 -12)📝
src/core/devtools/widget/memory_map.cpp(+4 -3)📝
src/core/devtools/widget/memory_map.h(+2 -2)📝
src/core/libraries/kernel/memory.cpp(+1 -0)📝
src/core/memory.cpp(+449 -300)📝
src/core/memory.h(+46 -81)📄 Description
This PR rewrites chunks of address space and memory code to properly handle sparse physical memory usage for pool and flexible memory.
Notable changes:
This PR affects a lot of code, so this probably needs a lot of testing before any merging can happen. I would especially like to see performance tests from games that spam memory calls, as I've made various changes that can both hurt and improve performance here.
I've tested a couple of notable edge cases in my games, and this code seems to function at least.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.