diff options
| author | 2024-01-30 13:46:01 +0100 | |
|---|---|---|
| committer | 2024-01-31 16:38:51 +0100 | |
| commit | aaab11e36f55f6b06f08b10aeca4b14f112914ee (patch) | |
| tree | 8a9ee6cafe07cbd4123b8490cc181e945011d78c | |
| parent | smmu: use new range mutex construction for protecting counters (diff) | |
| download | yuzu-aaab11e36f55f6b06f08b10aeca4b14f112914ee.tar.gz yuzu-aaab11e36f55f6b06f08b10aeca4b14f112914ee.tar.xz yuzu-aaab11e36f55f6b06f08b10aeca4b14f112914ee.zip | |
NVDRV: Join the heaper optimization blocks
| -rw-r--r-- | src/core/hle/service/nvdrv/core/container.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/core/hle/service/nvdrv/core/container.cpp b/src/core/hle/service/nvdrv/core/container.cpp index dc1b4d5be..e89cca6f2 100644 --- a/src/core/hle/service/nvdrv/core/container.cpp +++ b/src/core/hle/service/nvdrv/core/container.cpp | |||
| @@ -83,7 +83,9 @@ SessionId Container::OpenSession(Kernel::KProcess* process) { | |||
| 83 | 83 | ||
| 84 | // Check if this memory block is heap. | 84 | // Check if this memory block is heap. |
| 85 | if (svc_mem_info.state == Kernel::Svc::MemoryState::Normal) { | 85 | if (svc_mem_info.state == Kernel::Svc::MemoryState::Normal) { |
| 86 | if (svc_mem_info.size > region_size) { | 86 | if (region_start + region_size == svc_mem_info.base_address) { |
| 87 | region_size += svc_mem_info.size; | ||
| 88 | } else if (svc_mem_info.size > region_size) { | ||
| 87 | region_size = svc_mem_info.size; | 89 | region_size = svc_mem_info.size; |
| 88 | region_start = svc_mem_info.base_address; | 90 | region_start = svc_mem_info.base_address; |
| 89 | } | 91 | } |