diff options
| author | 2019-07-18 18:15:53 -0400 | |
|---|---|---|
| committer | 2019-07-19 10:06:08 -0400 | |
| commit | 9bede4eeed523f9707a989f1297279c006086e76 (patch) | |
| tree | 2acfabeff5f7f449bcdb22563f5ad66f7fa5f414 /src/core/hle/kernel/process.cpp | |
| parent | Merge pull request #2687 from lioncash/tls-process (diff) | |
| download | yuzu-9bede4eeed523f9707a989f1297279c006086e76.tar.gz yuzu-9bede4eeed523f9707a989f1297279c006086e76.tar.xz yuzu-9bede4eeed523f9707a989f1297279c006086e76.zip | |
VM_Manager: Align allocated memory to 256bytes
This commit ensures that all backing memory allocated for the Guest CPU
is aligned to 256 bytes. This due to how gpu memory works and the heavy
constraints it has in the alignment of physical memory.
Diffstat (limited to 'src/core/hle/kernel/process.cpp')
| -rw-r--r-- | src/core/hle/kernel/process.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/core/hle/kernel/process.cpp b/src/core/hle/kernel/process.cpp index 92169a97b..e80a12ac3 100644 --- a/src/core/hle/kernel/process.cpp +++ b/src/core/hle/kernel/process.cpp | |||
| @@ -247,7 +247,7 @@ VAddr Process::CreateTLSRegion() { | |||
| 247 | ASSERT(region_address.Succeeded()); | 247 | ASSERT(region_address.Succeeded()); |
| 248 | 248 | ||
| 249 | const auto map_result = vm_manager.MapMemoryBlock( | 249 | const auto map_result = vm_manager.MapMemoryBlock( |
| 250 | *region_address, std::make_shared<std::vector<u8>>(Memory::PAGE_SIZE), 0, | 250 | *region_address, std::make_shared<PhysicalMemory>(Memory::PAGE_SIZE), 0, |
| 251 | Memory::PAGE_SIZE, MemoryState::ThreadLocal); | 251 | Memory::PAGE_SIZE, MemoryState::ThreadLocal); |
| 252 | ASSERT(map_result.Succeeded()); | 252 | ASSERT(map_result.Succeeded()); |
| 253 | 253 | ||
| @@ -277,7 +277,7 @@ void Process::FreeTLSRegion(VAddr tls_address) { | |||
| 277 | } | 277 | } |
| 278 | 278 | ||
| 279 | void Process::LoadModule(CodeSet module_, VAddr base_addr) { | 279 | void Process::LoadModule(CodeSet module_, VAddr base_addr) { |
| 280 | const auto memory = std::make_shared<std::vector<u8>>(std::move(module_.memory)); | 280 | const auto memory = std::make_shared<PhysicalMemory>(std::move(module_.memory)); |
| 281 | 281 | ||
| 282 | const auto MapSegment = [&](const CodeSet::Segment& segment, VMAPermission permissions, | 282 | const auto MapSegment = [&](const CodeSet::Segment& segment, VMAPermission permissions, |
| 283 | MemoryState memory_state) { | 283 | MemoryState memory_state) { |
| @@ -327,7 +327,7 @@ void Process::AllocateMainThreadStack(u64 stack_size) { | |||
| 327 | // Allocate and map the main thread stack | 327 | // Allocate and map the main thread stack |
| 328 | const VAddr mapping_address = vm_manager.GetTLSIORegionEndAddress() - main_thread_stack_size; | 328 | const VAddr mapping_address = vm_manager.GetTLSIORegionEndAddress() - main_thread_stack_size; |
| 329 | vm_manager | 329 | vm_manager |
| 330 | .MapMemoryBlock(mapping_address, std::make_shared<std::vector<u8>>(main_thread_stack_size), | 330 | .MapMemoryBlock(mapping_address, std::make_shared<PhysicalMemory>(main_thread_stack_size), |
| 331 | 0, main_thread_stack_size, MemoryState::Stack) | 331 | 0, main_thread_stack_size, MemoryState::Stack) |
| 332 | .Unwrap(); | 332 | .Unwrap(); |
| 333 | } | 333 | } |