diff options
| author | 2022-02-05 18:15:26 +0100 | |
|---|---|---|
| committer | 2022-10-06 21:00:52 +0200 | |
| commit | 4d60410dd979fb688de7735d2b4b25a557bdeac7 (patch) | |
| tree | b472c870acc010ef938f8d0d478d5e511f94aa11 /src/common | |
| parent | Vulkan: Fix Scissor on Clears (diff) | |
| download | yuzu-4d60410dd979fb688de7735d2b4b25a557bdeac7.tar.gz yuzu-4d60410dd979fb688de7735d2b4b25a557bdeac7.tar.xz yuzu-4d60410dd979fb688de7735d2b4b25a557bdeac7.zip | |
MemoryManager: initial multi paging system implementation.
Diffstat (limited to 'src/common')
| -rw-r--r-- | src/common/multi_level_page_table.inc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/common/multi_level_page_table.inc b/src/common/multi_level_page_table.inc index 7fbcb908a..9a68cad93 100644 --- a/src/common/multi_level_page_table.inc +++ b/src/common/multi_level_page_table.inc | |||
| @@ -19,6 +19,9 @@ MultiLevelPageTable<BaseAddr>::MultiLevelPageTable(std::size_t address_space_bit | |||
| 19 | std::size_t page_bits_) | 19 | std::size_t page_bits_) |
| 20 | : address_space_bits{address_space_bits_}, | 20 | : address_space_bits{address_space_bits_}, |
| 21 | first_level_bits{first_level_bits_}, page_bits{page_bits_} { | 21 | first_level_bits{first_level_bits_}, page_bits{page_bits_} { |
| 22 | if (page_bits == 0) { | ||
| 23 | return; | ||
| 24 | } | ||
| 22 | first_level_shift = address_space_bits - first_level_bits; | 25 | first_level_shift = address_space_bits - first_level_bits; |
| 23 | first_level_chunk_size = (1ULL << (first_level_shift - page_bits)) * sizeof(BaseAddr); | 26 | first_level_chunk_size = (1ULL << (first_level_shift - page_bits)) * sizeof(BaseAddr); |
| 24 | alloc_size = (1ULL << (address_space_bits - page_bits)) * sizeof(BaseAddr); | 27 | alloc_size = (1ULL << (address_space_bits - page_bits)) * sizeof(BaseAddr); |