forked from eden-emu/eden
		
	Merge pull request #6519 from Wunkolo/mem-size-literal
common: Replace common_sizes into user-literals
This commit is contained in:
		
						commit
						b9c2732121
					
				
					 19 changed files with 152 additions and 126 deletions
				
			
		|  | @ -110,7 +110,6 @@ add_library(common STATIC | ||||||
|     cityhash.cpp |     cityhash.cpp | ||||||
|     cityhash.h |     cityhash.h | ||||||
|     common_funcs.h |     common_funcs.h | ||||||
|     common_sizes.h |  | ||||||
|     common_types.h |     common_types.h | ||||||
|     concepts.h |     concepts.h | ||||||
|     div_ceil.h |     div_ceil.h | ||||||
|  | @ -134,6 +133,7 @@ add_library(common STATIC | ||||||
|     host_memory.cpp |     host_memory.cpp | ||||||
|     host_memory.h |     host_memory.h | ||||||
|     intrusive_red_black_tree.h |     intrusive_red_black_tree.h | ||||||
|  |     literals.h | ||||||
|     logging/backend.cpp |     logging/backend.cpp | ||||||
|     logging/backend.h |     logging/backend.h | ||||||
|     logging/filter.cpp |     logging/filter.cpp | ||||||
|  |  | ||||||
|  | @ -1,44 +0,0 @@ | ||||||
| // Copyright 2021 yuzu Emulator Project
 |  | ||||||
| // Licensed under GPLv2 or any later version
 |  | ||||||
| // Refer to the license.txt file included.
 |  | ||||||
| 
 |  | ||||||
| #pragma once |  | ||||||
| 
 |  | ||||||
| #include <limits> |  | ||||||
| 
 |  | ||||||
| #include "common/common_types.h" |  | ||||||
| 
 |  | ||||||
| namespace Common { |  | ||||||
| 
 |  | ||||||
| enum : u64 { |  | ||||||
|     Size_1_KB = 0x400ULL, |  | ||||||
|     Size_64_KB = 64ULL * Size_1_KB, |  | ||||||
|     Size_128_KB = 128ULL * Size_1_KB, |  | ||||||
|     Size_1_MB = 0x100000ULL, |  | ||||||
|     Size_2_MB = 2ULL * Size_1_MB, |  | ||||||
|     Size_4_MB = 4ULL * Size_1_MB, |  | ||||||
|     Size_5_MB = 5ULL * Size_1_MB, |  | ||||||
|     Size_14_MB = 14ULL * Size_1_MB, |  | ||||||
|     Size_32_MB = 32ULL * Size_1_MB, |  | ||||||
|     Size_33_MB = 33ULL * Size_1_MB, |  | ||||||
|     Size_128_MB = 128ULL * Size_1_MB, |  | ||||||
|     Size_448_MB = 448ULL * Size_1_MB, |  | ||||||
|     Size_507_MB = 507ULL * Size_1_MB, |  | ||||||
|     Size_512_MB = 512ULL * Size_1_MB, |  | ||||||
|     Size_562_MB = 562ULL * Size_1_MB, |  | ||||||
|     Size_1554_MB = 1554ULL * Size_1_MB, |  | ||||||
|     Size_2048_MB = 2048ULL * Size_1_MB, |  | ||||||
|     Size_2193_MB = 2193ULL * Size_1_MB, |  | ||||||
|     Size_3285_MB = 3285ULL * Size_1_MB, |  | ||||||
|     Size_4916_MB = 4916ULL * Size_1_MB, |  | ||||||
|     Size_1_GB = 0x40000000ULL, |  | ||||||
|     Size_2_GB = 2ULL * Size_1_GB, |  | ||||||
|     Size_4_GB = 4ULL * Size_1_GB, |  | ||||||
|     Size_6_GB = 6ULL * Size_1_GB, |  | ||||||
|     Size_8_GB = 8ULL * Size_1_GB, |  | ||||||
|     Size_64_GB = 64ULL * Size_1_GB, |  | ||||||
|     Size_512_GB = 512ULL * Size_1_GB, |  | ||||||
|     Size_Invalid = std::numeric_limits<u64>::max(), |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| } // namespace Common
 |  | ||||||
							
								
								
									
										31
									
								
								src/common/literals.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								src/common/literals.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,31 @@ | ||||||
|  | // Copyright 2021 yuzu emulator team
 | ||||||
|  | // Licensed under GPLv2 or any later version
 | ||||||
|  | // Refer to the license.txt file included.
 | ||||||
|  | 
 | ||||||
|  | #pragma once | ||||||
|  | 
 | ||||||
|  | #include "common/common_types.h" | ||||||
|  | 
 | ||||||
|  | namespace Common::Literals { | ||||||
|  | 
 | ||||||
|  | constexpr u64 operator""_KiB(unsigned long long int x) { | ||||||
|  |     return 1024ULL * x; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | constexpr u64 operator""_MiB(unsigned long long int x) { | ||||||
|  |     return 1024_KiB * x; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | constexpr u64 operator""_GiB(unsigned long long int x) { | ||||||
|  |     return 1024_MiB * x; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | constexpr u64 operator""_TiB(unsigned long long int x) { | ||||||
|  |     return 1024_GiB * x; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | constexpr u64 operator""_PiB(unsigned long long int x) { | ||||||
|  |     return 1024_TiB * x; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | } // namespace Common::Literals
 | ||||||
|  | @ -19,6 +19,8 @@ | ||||||
| #include "common/assert.h" | #include "common/assert.h" | ||||||
| #include "common/fs/file.h" | #include "common/fs/file.h" | ||||||
| #include "common/fs/fs.h" | #include "common/fs/fs.h" | ||||||
|  | #include "common/literals.h" | ||||||
|  | 
 | ||||||
| #include "common/logging/backend.h" | #include "common/logging/backend.h" | ||||||
| #include "common/logging/log.h" | #include "common/logging/log.h" | ||||||
| #include "common/logging/text_formatter.h" | #include "common/logging/text_formatter.h" | ||||||
|  | @ -98,8 +100,8 @@ private: | ||||||
|                 write_logs(entry); |                 write_logs(entry); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             // Drain the logging queue. Only writes out up to MAX_LOGS_TO_WRITE to prevent a case
 |             // Drain the logging queue. Only writes out up to MAX_LOGS_TO_WRITE to prevent a
 | ||||||
|             // where a system is repeatedly spamming logs even on close.
 |             // case where a system is repeatedly spamming logs even on close.
 | ||||||
|             const int MAX_LOGS_TO_WRITE = filter.IsDebug() ? INT_MAX : 100; |             const int MAX_LOGS_TO_WRITE = filter.IsDebug() ? INT_MAX : 100; | ||||||
|             int logs_written = 0; |             int logs_written = 0; | ||||||
|             while (logs_written++ < MAX_LOGS_TO_WRITE && message_queue.Pop(entry)) { |             while (logs_written++ < MAX_LOGS_TO_WRITE && message_queue.Pop(entry)) { | ||||||
|  | @ -169,10 +171,11 @@ FileBackend::FileBackend(const std::filesystem::path& filename) { | ||||||
| FileBackend::~FileBackend() = default; | FileBackend::~FileBackend() = default; | ||||||
| 
 | 
 | ||||||
| void FileBackend::Write(const Entry& entry) { | void FileBackend::Write(const Entry& entry) { | ||||||
|  |     using namespace Common::Literals; | ||||||
|     // prevent logs from going over the maximum size (in case its spamming and the user doesn't
 |     // prevent logs from going over the maximum size (in case its spamming and the user doesn't
 | ||||||
|     // know)
 |     // know)
 | ||||||
|     constexpr std::size_t MAX_BYTES_WRITTEN = 100 * 1024 * 1024; |     constexpr std::size_t MAX_BYTES_WRITTEN = 100_MiB; | ||||||
|     constexpr std::size_t MAX_BYTES_WRITTEN_EXTENDED = 1024 * 1024 * 1024; |     constexpr std::size_t MAX_BYTES_WRITTEN_EXTENDED = 1_GiB; | ||||||
| 
 | 
 | ||||||
|     if (!file->IsOpen()) { |     if (!file->IsOpen()) { | ||||||
|         return; |         return; | ||||||
|  |  | ||||||
|  | @ -8,6 +8,7 @@ | ||||||
| #include <dynarmic/interface/A32/config.h> | #include <dynarmic/interface/A32/config.h> | ||||||
| #include <dynarmic/interface/A32/context.h> | #include <dynarmic/interface/A32/context.h> | ||||||
| #include "common/assert.h" | #include "common/assert.h" | ||||||
|  | #include "common/literals.h" | ||||||
| #include "common/logging/log.h" | #include "common/logging/log.h" | ||||||
| #include "common/page_table.h" | #include "common/page_table.h" | ||||||
| #include "common/settings.h" | #include "common/settings.h" | ||||||
|  | @ -22,6 +23,8 @@ | ||||||
| 
 | 
 | ||||||
| namespace Core { | namespace Core { | ||||||
| 
 | 
 | ||||||
|  | using namespace Common::Literals; | ||||||
|  | 
 | ||||||
| class DynarmicCallbacks32 : public Dynarmic::A32::UserCallbacks { | class DynarmicCallbacks32 : public Dynarmic::A32::UserCallbacks { | ||||||
| public: | public: | ||||||
|     explicit DynarmicCallbacks32(ARM_Dynarmic_32& parent_) |     explicit DynarmicCallbacks32(ARM_Dynarmic_32& parent_) | ||||||
|  | @ -143,8 +146,8 @@ std::shared_ptr<Dynarmic::A32::Jit> ARM_Dynarmic_32::MakeJit(Common::PageTable* | ||||||
|     config.wall_clock_cntpct = uses_wall_clock; |     config.wall_clock_cntpct = uses_wall_clock; | ||||||
| 
 | 
 | ||||||
|     // Code cache size
 |     // Code cache size
 | ||||||
|     config.code_cache_size = 512 * 1024 * 1024; |     config.code_cache_size = 512_MiB; | ||||||
|     config.far_code_offset = 400 * 1024 * 1024; |     config.far_code_offset = 400_MiB; | ||||||
| 
 | 
 | ||||||
|     // Safe optimizations
 |     // Safe optimizations
 | ||||||
|     if (Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::DebugMode) { |     if (Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::DebugMode) { | ||||||
|  |  | ||||||
|  | @ -7,6 +7,7 @@ | ||||||
| #include <dynarmic/interface/A64/a64.h> | #include <dynarmic/interface/A64/a64.h> | ||||||
| #include <dynarmic/interface/A64/config.h> | #include <dynarmic/interface/A64/config.h> | ||||||
| #include "common/assert.h" | #include "common/assert.h" | ||||||
|  | #include "common/literals.h" | ||||||
| #include "common/logging/log.h" | #include "common/logging/log.h" | ||||||
| #include "common/page_table.h" | #include "common/page_table.h" | ||||||
| #include "common/settings.h" | #include "common/settings.h" | ||||||
|  | @ -24,6 +25,7 @@ | ||||||
| namespace Core { | namespace Core { | ||||||
| 
 | 
 | ||||||
| using Vector = Dynarmic::A64::Vector; | using Vector = Dynarmic::A64::Vector; | ||||||
|  | using namespace Common::Literals; | ||||||
| 
 | 
 | ||||||
| class DynarmicCallbacks64 : public Dynarmic::A64::UserCallbacks { | class DynarmicCallbacks64 : public Dynarmic::A64::UserCallbacks { | ||||||
| public: | public: | ||||||
|  | @ -184,8 +186,8 @@ std::shared_ptr<Dynarmic::A64::Jit> ARM_Dynarmic_64::MakeJit(Common::PageTable* | ||||||
|     config.wall_clock_cntpct = uses_wall_clock; |     config.wall_clock_cntpct = uses_wall_clock; | ||||||
| 
 | 
 | ||||||
|     // Code cache size
 |     // Code cache size
 | ||||||
|     config.code_cache_size = 512 * 1024 * 1024; |     config.code_cache_size = 512_MiB; | ||||||
|     config.far_code_offset = 400 * 1024 * 1024; |     config.far_code_offset = 400_MiB; | ||||||
| 
 | 
 | ||||||
|     // Safe optimizations
 |     // Safe optimizations
 | ||||||
|     if (Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::DebugMode) { |     if (Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::DebugMode) { | ||||||
|  |  | ||||||
|  | @ -4,7 +4,8 @@ | ||||||
| 
 | 
 | ||||||
| #include <random> | #include <random> | ||||||
| 
 | 
 | ||||||
| #include "common/common_sizes.h" | #include "common/literals.h" | ||||||
|  | 
 | ||||||
| #include "core/hle/kernel/board/nintendo/nx/k_system_control.h" | #include "core/hle/kernel/board/nintendo/nx/k_system_control.h" | ||||||
| #include "core/hle/kernel/board/nintendo/nx/secure_monitor.h" | #include "core/hle/kernel/board/nintendo/nx/secure_monitor.h" | ||||||
| #include "core/hle/kernel/k_trace.h" | #include "core/hle/kernel/k_trace.h" | ||||||
|  | @ -25,6 +26,8 @@ constexpr const std::size_t RequiredNonSecureSystemMemorySize = | ||||||
| 
 | 
 | ||||||
| namespace { | namespace { | ||||||
| 
 | 
 | ||||||
|  | using namespace Common::Literals; | ||||||
|  | 
 | ||||||
| u32 GetMemoryModeForInit() { | u32 GetMemoryModeForInit() { | ||||||
|     return 0x01; |     return 0x01; | ||||||
| } | } | ||||||
|  | @ -57,11 +60,11 @@ size_t KSystemControl::Init::GetIntendedMemorySize() { | ||||||
|     switch (GetMemorySizeForInit()) { |     switch (GetMemorySizeForInit()) { | ||||||
|     case Smc::MemorySize_4GB: |     case Smc::MemorySize_4GB: | ||||||
|     default: // All invalid modes should go to 4GB.
 |     default: // All invalid modes should go to 4GB.
 | ||||||
|         return Common::Size_4_GB; |         return 4_GiB; | ||||||
|     case Smc::MemorySize_6GB: |     case Smc::MemorySize_6GB: | ||||||
|         return Common::Size_6_GB; |         return 6_GiB; | ||||||
|     case Smc::MemorySize_8GB: |     case Smc::MemorySize_8GB: | ||||||
|         return Common::Size_8_GB; |         return 8_GiB; | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -79,17 +82,17 @@ std::size_t KSystemControl::Init::GetApplicationPoolSize() { | ||||||
|         switch (GetMemoryArrangeForInit()) { |         switch (GetMemoryArrangeForInit()) { | ||||||
|         case Smc::MemoryArrangement_4GB: |         case Smc::MemoryArrangement_4GB: | ||||||
|         default: |         default: | ||||||
|             return Common::Size_3285_MB; |             return 3285_MiB; | ||||||
|         case Smc::MemoryArrangement_4GBForAppletDev: |         case Smc::MemoryArrangement_4GBForAppletDev: | ||||||
|             return Common::Size_2048_MB; |             return 2048_MiB; | ||||||
|         case Smc::MemoryArrangement_4GBForSystemDev: |         case Smc::MemoryArrangement_4GBForSystemDev: | ||||||
|             return Common::Size_3285_MB; |             return 3285_MiB; | ||||||
|         case Smc::MemoryArrangement_6GB: |         case Smc::MemoryArrangement_6GB: | ||||||
|             return Common::Size_4916_MB; |             return 4916_MiB; | ||||||
|         case Smc::MemoryArrangement_6GBForAppletDev: |         case Smc::MemoryArrangement_6GBForAppletDev: | ||||||
|             return Common::Size_3285_MB; |             return 3285_MiB; | ||||||
|         case Smc::MemoryArrangement_8GB: |         case Smc::MemoryArrangement_8GB: | ||||||
|             return Common::Size_4916_MB; |             return 4916_MiB; | ||||||
|         } |         } | ||||||
|     }(); |     }(); | ||||||
| 
 | 
 | ||||||
|  | @ -103,22 +106,22 @@ size_t KSystemControl::Init::GetAppletPoolSize() { | ||||||
|         switch (GetMemoryArrangeForInit()) { |         switch (GetMemoryArrangeForInit()) { | ||||||
|         case Smc::MemoryArrangement_4GB: |         case Smc::MemoryArrangement_4GB: | ||||||
|         default: |         default: | ||||||
|             return Common::Size_507_MB; |             return 507_MiB; | ||||||
|         case Smc::MemoryArrangement_4GBForAppletDev: |         case Smc::MemoryArrangement_4GBForAppletDev: | ||||||
|             return Common::Size_1554_MB; |             return 1554_MiB; | ||||||
|         case Smc::MemoryArrangement_4GBForSystemDev: |         case Smc::MemoryArrangement_4GBForSystemDev: | ||||||
|             return Common::Size_448_MB; |             return 448_MiB; | ||||||
|         case Smc::MemoryArrangement_6GB: |         case Smc::MemoryArrangement_6GB: | ||||||
|             return Common::Size_562_MB; |             return 562_MiB; | ||||||
|         case Smc::MemoryArrangement_6GBForAppletDev: |         case Smc::MemoryArrangement_6GBForAppletDev: | ||||||
|             return Common::Size_2193_MB; |             return 2193_MiB; | ||||||
|         case Smc::MemoryArrangement_8GB: |         case Smc::MemoryArrangement_8GB: | ||||||
|             return Common::Size_2193_MB; |             return 2193_MiB; | ||||||
|         } |         } | ||||||
|     }(); |     }(); | ||||||
| 
 | 
 | ||||||
|     // Return (possibly) adjusted size.
 |     // Return (possibly) adjusted size.
 | ||||||
|     constexpr size_t ExtraSystemMemoryForAtmosphere = Common::Size_33_MB; |     constexpr size_t ExtraSystemMemoryForAtmosphere = 33_MiB; | ||||||
|     return base_pool_size - ExtraSystemMemoryForAtmosphere - KTraceBufferSize; |     return base_pool_size - ExtraSystemMemoryForAtmosphere - KTraceBufferSize; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -5,34 +5,37 @@ | ||||||
| #include <array> | #include <array> | ||||||
| 
 | 
 | ||||||
| #include "common/assert.h" | #include "common/assert.h" | ||||||
| #include "common/common_sizes.h" | #include "common/literals.h" | ||||||
| #include "core/hle/kernel/k_address_space_info.h" | #include "core/hle/kernel/k_address_space_info.h" | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
| 
 | 
 | ||||||
| namespace { | namespace { | ||||||
| 
 | 
 | ||||||
|  | using namespace Common::Literals; | ||||||
|  | 
 | ||||||
|  | constexpr u64 Size_Invalid = UINT64_MAX; | ||||||
|  | 
 | ||||||
| // clang-format off
 | // clang-format off
 | ||||||
| constexpr std::array<KAddressSpaceInfo, 13> AddressSpaceInfos{{ | constexpr std::array<KAddressSpaceInfo, 13> AddressSpaceInfos{{ | ||||||
|    { .bit_width = 32, .address = Common::Size_2_MB   , .size = Common::Size_1_GB   - Common::Size_2_MB  , .type = KAddressSpaceInfo::Type::MapSmall, }, |    { .bit_width = 32, .address = 2_MiB       , .size = 1_GiB   - 2_MiB  , .type = KAddressSpaceInfo::Type::MapSmall, }, | ||||||
|    { .bit_width = 32, .address = Common::Size_1_GB   , .size = Common::Size_4_GB   - Common::Size_1_GB  , .type = KAddressSpaceInfo::Type::MapLarge, }, |    { .bit_width = 32, .address = 1_GiB       , .size = 4_GiB   - 1_GiB  , .type = KAddressSpaceInfo::Type::MapLarge, }, | ||||||
|    { .bit_width = 32, .address = Common::Size_Invalid, .size = Common::Size_1_GB                        , .type = KAddressSpaceInfo::Type::Alias,    }, |    { .bit_width = 32, .address = Size_Invalid, .size = 1_GiB            , .type = KAddressSpaceInfo::Type::Alias,    }, | ||||||
|    { .bit_width = 32, .address = Common::Size_Invalid, .size = Common::Size_1_GB                        , .type = KAddressSpaceInfo::Type::Heap,     }, |    { .bit_width = 32, .address = Size_Invalid, .size = 1_GiB            , .type = KAddressSpaceInfo::Type::Heap,     }, | ||||||
|    { .bit_width = 36, .address = Common::Size_128_MB , .size = Common::Size_2_GB   - Common::Size_128_MB, .type = KAddressSpaceInfo::Type::MapSmall, }, |    { .bit_width = 36, .address = 128_MiB     , .size = 2_GiB   - 128_MiB, .type = KAddressSpaceInfo::Type::MapSmall, }, | ||||||
|    { .bit_width = 36, .address = Common::Size_2_GB   , .size = Common::Size_64_GB  - Common::Size_2_GB  , .type = KAddressSpaceInfo::Type::MapLarge, }, |    { .bit_width = 36, .address = 2_GiB       , .size = 64_GiB  - 2_GiB  , .type = KAddressSpaceInfo::Type::MapLarge, }, | ||||||
|    { .bit_width = 36, .address = Common::Size_Invalid, .size = Common::Size_6_GB                        , .type = KAddressSpaceInfo::Type::Heap,     }, |    { .bit_width = 36, .address = Size_Invalid, .size = 6_GiB            , .type = KAddressSpaceInfo::Type::Heap,     }, | ||||||
|    { .bit_width = 36, .address = Common::Size_Invalid, .size = Common::Size_6_GB                        , .type = KAddressSpaceInfo::Type::Alias,    }, |    { .bit_width = 36, .address = Size_Invalid, .size = 6_GiB            , .type = KAddressSpaceInfo::Type::Alias,    }, | ||||||
|    { .bit_width = 39, .address = Common::Size_128_MB , .size = Common::Size_512_GB - Common::Size_128_MB, .type = KAddressSpaceInfo::Type::Map39Bit, }, |    { .bit_width = 39, .address = 128_MiB     , .size = 512_GiB - 128_MiB, .type = KAddressSpaceInfo::Type::Map39Bit, }, | ||||||
|    { .bit_width = 39, .address = Common::Size_Invalid, .size = Common::Size_64_GB                       , .type = KAddressSpaceInfo::Type::MapSmall  }, |    { .bit_width = 39, .address = Size_Invalid, .size = 64_GiB           , .type = KAddressSpaceInfo::Type::MapSmall  }, | ||||||
|    { .bit_width = 39, .address = Common::Size_Invalid, .size = Common::Size_6_GB                        , .type = KAddressSpaceInfo::Type::Heap,     }, |    { .bit_width = 39, .address = Size_Invalid, .size = 6_GiB            , .type = KAddressSpaceInfo::Type::Heap,     }, | ||||||
|    { .bit_width = 39, .address = Common::Size_Invalid, .size = Common::Size_64_GB                       , .type = KAddressSpaceInfo::Type::Alias,    }, |    { .bit_width = 39, .address = Size_Invalid, .size = 64_GiB           , .type = KAddressSpaceInfo::Type::Alias,    }, | ||||||
|    { .bit_width = 39, .address = Common::Size_Invalid, .size = Common::Size_2_GB                        , .type = KAddressSpaceInfo::Type::Stack,    }, |    { .bit_width = 39, .address = Size_Invalid, .size = 2_GiB            , .type = KAddressSpaceInfo::Type::Stack,    }, | ||||||
| }}; | }}; | ||||||
| // clang-format on
 | // clang-format on
 | ||||||
| 
 | 
 | ||||||
| constexpr bool IsAllowedIndexForAddress(std::size_t index) { | constexpr bool IsAllowedIndexForAddress(std::size_t index) { | ||||||
|     return index < AddressSpaceInfos.size() && |     return index < AddressSpaceInfos.size() && AddressSpaceInfos[index].address != Size_Invalid; | ||||||
|            AddressSpaceInfos[index].address != Common::Size_Invalid; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| using IndexArray = | using IndexArray = | ||||||
|  |  | ||||||
|  | @ -3,6 +3,7 @@ | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/alignment.h" | #include "common/alignment.h" | ||||||
|  | #include "common/literals.h" | ||||||
| #include "core/hle/kernel/k_memory_layout.h" | #include "core/hle/kernel/k_memory_layout.h" | ||||||
| #include "core/hle/kernel/k_memory_manager.h" | #include "core/hle/kernel/k_memory_manager.h" | ||||||
| #include "core/hle/kernel/k_system_control.h" | #include "core/hle/kernel/k_system_control.h" | ||||||
|  | @ -12,8 +13,10 @@ namespace Kernel { | ||||||
| 
 | 
 | ||||||
| namespace { | namespace { | ||||||
| 
 | 
 | ||||||
|  | using namespace Common::Literals; | ||||||
|  | 
 | ||||||
| constexpr size_t CarveoutAlignment = 0x20000; | constexpr size_t CarveoutAlignment = 0x20000; | ||||||
| constexpr size_t CarveoutSizeMax = (512ULL * 1024 * 1024) - CarveoutAlignment; | constexpr size_t CarveoutSizeMax = (512_MiB) - CarveoutAlignment; | ||||||
| 
 | 
 | ||||||
| bool SetupPowerManagementControllerMemoryRegion(KMemoryLayout& memory_layout) { | bool SetupPowerManagementControllerMemoryRegion(KMemoryLayout& memory_layout) { | ||||||
|     // Above firmware 2.0.0, the PMC is not mappable.
 |     // Above firmware 2.0.0, the PMC is not mappable.
 | ||||||
|  |  | ||||||
|  | @ -7,8 +7,7 @@ | ||||||
| #include <utility> | #include <utility> | ||||||
| 
 | 
 | ||||||
| #include "common/alignment.h" | #include "common/alignment.h" | ||||||
| #include "common/common_sizes.h" | #include "common/literals.h" | ||||||
| #include "common/common_types.h" |  | ||||||
| #include "core/device_memory.h" | #include "core/device_memory.h" | ||||||
| #include "core/hle/kernel/k_memory_region.h" | #include "core/hle/kernel/k_memory_region.h" | ||||||
| #include "core/hle/kernel/k_memory_region_type.h" | #include "core/hle/kernel/k_memory_region_type.h" | ||||||
|  | @ -16,20 +15,22 @@ | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
| 
 | 
 | ||||||
| constexpr std::size_t L1BlockSize = Common::Size_1_GB; | using namespace Common::Literals; | ||||||
| constexpr std::size_t L2BlockSize = Common::Size_2_MB; | 
 | ||||||
|  | constexpr std::size_t L1BlockSize = 1_GiB; | ||||||
|  | constexpr std::size_t L2BlockSize = 2_MiB; | ||||||
| 
 | 
 | ||||||
| constexpr std::size_t GetMaximumOverheadSize(std::size_t size) { | constexpr std::size_t GetMaximumOverheadSize(std::size_t size) { | ||||||
|     return (Common::DivideUp(size, L1BlockSize) + Common::DivideUp(size, L2BlockSize)) * PageSize; |     return (Common::DivideUp(size, L1BlockSize) + Common::DivideUp(size, L2BlockSize)) * PageSize; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| constexpr std::size_t MainMemorySize = Common::Size_4_GB; | constexpr std::size_t MainMemorySize = 4_GiB; | ||||||
| constexpr std::size_t MainMemorySizeMax = Common::Size_8_GB; | constexpr std::size_t MainMemorySizeMax = 8_GiB; | ||||||
| 
 | 
 | ||||||
| constexpr std::size_t ReservedEarlyDramSize = 0x60000; | constexpr std::size_t ReservedEarlyDramSize = 384_KiB; | ||||||
| constexpr std::size_t DramPhysicalAddress = 0x80000000; | constexpr std::size_t DramPhysicalAddress = 0x80000000; | ||||||
| 
 | 
 | ||||||
| constexpr std::size_t KernelAslrAlignment = Common::Size_2_MB; | constexpr std::size_t KernelAslrAlignment = 2_MiB; | ||||||
| constexpr std::size_t KernelVirtualAddressSpaceWidth = 1ULL << 39; | constexpr std::size_t KernelVirtualAddressSpaceWidth = 1ULL << 39; | ||||||
| constexpr std::size_t KernelPhysicalAddressSpaceWidth = 1ULL << 48; | constexpr std::size_t KernelPhysicalAddressSpaceWidth = 1ULL << 48; | ||||||
| 
 | 
 | ||||||
|  | @ -40,7 +41,7 @@ constexpr std::size_t KernelVirtualAddressSpaceLast = KernelVirtualAddressSpaceE | ||||||
| constexpr std::size_t KernelVirtualAddressSpaceSize = | constexpr std::size_t KernelVirtualAddressSpaceSize = | ||||||
|     KernelVirtualAddressSpaceEnd - KernelVirtualAddressSpaceBase; |     KernelVirtualAddressSpaceEnd - KernelVirtualAddressSpaceBase; | ||||||
| constexpr std::size_t KernelVirtualAddressCodeBase = KernelVirtualAddressSpaceBase; | constexpr std::size_t KernelVirtualAddressCodeBase = KernelVirtualAddressSpaceBase; | ||||||
| constexpr std::size_t KernelVirtualAddressCodeSize = 0x62000; | constexpr std::size_t KernelVirtualAddressCodeSize = 392_KiB; | ||||||
| constexpr std::size_t KernelVirtualAddressCodeEnd = | constexpr std::size_t KernelVirtualAddressCodeEnd = | ||||||
|     KernelVirtualAddressCodeBase + KernelVirtualAddressCodeSize; |     KernelVirtualAddressCodeBase + KernelVirtualAddressCodeSize; | ||||||
| 
 | 
 | ||||||
|  | @ -53,14 +54,14 @@ constexpr std::size_t KernelPhysicalAddressSpaceSize = | ||||||
| constexpr std::size_t KernelPhysicalAddressCodeBase = DramPhysicalAddress + ReservedEarlyDramSize; | constexpr std::size_t KernelPhysicalAddressCodeBase = DramPhysicalAddress + ReservedEarlyDramSize; | ||||||
| 
 | 
 | ||||||
| constexpr std::size_t KernelPageTableHeapSize = GetMaximumOverheadSize(MainMemorySizeMax); | constexpr std::size_t KernelPageTableHeapSize = GetMaximumOverheadSize(MainMemorySizeMax); | ||||||
| constexpr std::size_t KernelInitialPageHeapSize = Common::Size_128_KB; | constexpr std::size_t KernelInitialPageHeapSize = 128_KiB; | ||||||
| 
 | 
 | ||||||
| constexpr std::size_t KernelSlabHeapDataSize = Common::Size_5_MB; | constexpr std::size_t KernelSlabHeapDataSize = 5_MiB; | ||||||
| constexpr std::size_t KernelSlabHeapGapsSize = Common::Size_2_MB - Common::Size_64_KB; | constexpr std::size_t KernelSlabHeapGapsSize = 2_MiB - 64_KiB; | ||||||
| constexpr std::size_t KernelSlabHeapSize = KernelSlabHeapDataSize + KernelSlabHeapGapsSize; | constexpr std::size_t KernelSlabHeapSize = KernelSlabHeapDataSize + KernelSlabHeapGapsSize; | ||||||
| 
 | 
 | ||||||
| // NOTE: This is calculated from KThread slab counts, assuming KThread size <= 0x860.
 | // NOTE: This is calculated from KThread slab counts, assuming KThread size <= 0x860.
 | ||||||
| constexpr std::size_t KernelSlabHeapAdditionalSize = 0x68000ULL; | constexpr std::size_t KernelSlabHeapAdditionalSize = 416_KiB; | ||||||
| 
 | 
 | ||||||
| constexpr std::size_t KernelResourceSize = | constexpr std::size_t KernelResourceSize = | ||||||
|     KernelPageTableHeapSize + KernelInitialPageHeapSize + KernelSlabHeapSize; |     KernelPageTableHeapSize + KernelInitialPageHeapSize + KernelSlabHeapSize; | ||||||
|  |  | ||||||
|  | @ -4,6 +4,7 @@ | ||||||
| 
 | 
 | ||||||
| #include "common/alignment.h" | #include "common/alignment.h" | ||||||
| #include "common/assert.h" | #include "common/assert.h" | ||||||
|  | #include "common/literals.h" | ||||||
| #include "common/scope_exit.h" | #include "common/scope_exit.h" | ||||||
| #include "core/core.h" | #include "core/core.h" | ||||||
| #include "core/hle/kernel/k_address_space_info.h" | #include "core/hle/kernel/k_address_space_info.h" | ||||||
|  | @ -23,6 +24,8 @@ namespace Kernel { | ||||||
| 
 | 
 | ||||||
| namespace { | namespace { | ||||||
| 
 | 
 | ||||||
|  | using namespace Common::Literals; | ||||||
|  | 
 | ||||||
| constexpr std::size_t GetAddressSpaceWidthFromType(FileSys::ProgramAddressSpaceType as_type) { | constexpr std::size_t GetAddressSpaceWidthFromType(FileSys::ProgramAddressSpaceType as_type) { | ||||||
|     switch (as_type) { |     switch (as_type) { | ||||||
|     case FileSys::ProgramAddressSpaceType::Is32Bit: |     case FileSys::ProgramAddressSpaceType::Is32Bit: | ||||||
|  | @ -89,7 +92,7 @@ ResultCode KPageTable::InitializeForProcess(FileSys::ProgramAddressSpaceType as_ | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // Set code regions and determine remaining
 |     // Set code regions and determine remaining
 | ||||||
|     constexpr std::size_t RegionAlignment{2 * 1024 * 1024}; |     constexpr std::size_t RegionAlignment{2_MiB}; | ||||||
|     VAddr process_code_start{}; |     VAddr process_code_start{}; | ||||||
|     VAddr process_code_end{}; |     VAddr process_code_end{}; | ||||||
|     std::size_t stack_region_size{}; |     std::size_t stack_region_size{}; | ||||||
|  |  | ||||||
|  | @ -4,9 +4,13 @@ | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
|  | #include "common/common_funcs.h" | ||||||
|  | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
| 
 | 
 | ||||||
|  | using namespace Common::Literals; | ||||||
|  | 
 | ||||||
| constexpr bool IsKTraceEnabled = false; | constexpr bool IsKTraceEnabled = false; | ||||||
| constexpr std::size_t KTraceBufferSize = IsKTraceEnabled ? 16 * 1024 * 1024 : 0; | constexpr std::size_t KTraceBufferSize = IsKTraceEnabled ? 16_MiB : 0; | ||||||
| 
 | 
 | ||||||
| } // namespace Kernel
 | } // namespace Kernel
 | ||||||
|  |  | ||||||
|  | @ -12,7 +12,6 @@ | ||||||
| #include <utility> | #include <utility> | ||||||
| 
 | 
 | ||||||
| #include "common/assert.h" | #include "common/assert.h" | ||||||
| #include "common/common_sizes.h" |  | ||||||
| #include "common/logging/log.h" | #include "common/logging/log.h" | ||||||
| #include "common/microprofile.h" | #include "common/microprofile.h" | ||||||
| #include "common/thread.h" | #include "common/thread.h" | ||||||
|  | @ -180,7 +179,7 @@ struct KernelCore::Impl { | ||||||
|         system_resource_limit->Reserve(LimitableResource::PhysicalMemory, kernel_size); |         system_resource_limit->Reserve(LimitableResource::PhysicalMemory, kernel_size); | ||||||
| 
 | 
 | ||||||
|         // Reserve secure applet memory, introduced in firmware 5.0.0
 |         // Reserve secure applet memory, introduced in firmware 5.0.0
 | ||||||
|         constexpr u64 secure_applet_memory_size{Common::Size_4_MB}; |         constexpr u64 secure_applet_memory_size{4_MiB}; | ||||||
|         ASSERT(system_resource_limit->Reserve(LimitableResource::PhysicalMemory, |         ASSERT(system_resource_limit->Reserve(LimitableResource::PhysicalMemory, | ||||||
|                                               secure_applet_memory_size)); |                                               secure_applet_memory_size)); | ||||||
| 
 | 
 | ||||||
|  | @ -320,8 +319,8 @@ struct KernelCore::Impl { | ||||||
|         const VAddr code_end_virt_addr = KernelVirtualAddressCodeEnd; |         const VAddr code_end_virt_addr = KernelVirtualAddressCodeEnd; | ||||||
| 
 | 
 | ||||||
|         // Setup the containing kernel region.
 |         // Setup the containing kernel region.
 | ||||||
|         constexpr size_t KernelRegionSize = Common::Size_1_GB; |         constexpr size_t KernelRegionSize = 1_GiB; | ||||||
|         constexpr size_t KernelRegionAlign = Common::Size_1_GB; |         constexpr size_t KernelRegionAlign = 1_GiB; | ||||||
|         constexpr VAddr kernel_region_start = |         constexpr VAddr kernel_region_start = | ||||||
|             Common::AlignDown(code_start_virt_addr, KernelRegionAlign); |             Common::AlignDown(code_start_virt_addr, KernelRegionAlign); | ||||||
|         size_t kernel_region_size = KernelRegionSize; |         size_t kernel_region_size = KernelRegionSize; | ||||||
|  | @ -368,7 +367,7 @@ struct KernelCore::Impl { | ||||||
| 
 | 
 | ||||||
|         // Decide on the actual size for the misc region.
 |         // Decide on the actual size for the misc region.
 | ||||||
|         constexpr size_t MiscRegionAlign = KernelAslrAlignment; |         constexpr size_t MiscRegionAlign = KernelAslrAlignment; | ||||||
|         constexpr size_t MiscRegionMinimumSize = Common::Size_32_MB; |         constexpr size_t MiscRegionMinimumSize = 32_MiB; | ||||||
|         const size_t misc_region_size = Common::AlignUp( |         const size_t misc_region_size = Common::AlignUp( | ||||||
|             std::max(misc_region_needed_size, MiscRegionMinimumSize), MiscRegionAlign); |             std::max(misc_region_needed_size, MiscRegionMinimumSize), MiscRegionAlign); | ||||||
|         ASSERT(misc_region_size > 0); |         ASSERT(misc_region_size > 0); | ||||||
|  | @ -381,7 +380,7 @@ struct KernelCore::Impl { | ||||||
|             misc_region_start, misc_region_size, KMemoryRegionType_KernelMisc)); |             misc_region_start, misc_region_size, KMemoryRegionType_KernelMisc)); | ||||||
| 
 | 
 | ||||||
|         // Setup the stack region.
 |         // Setup the stack region.
 | ||||||
|         constexpr size_t StackRegionSize = Common::Size_14_MB; |         constexpr size_t StackRegionSize = 14_MiB; | ||||||
|         constexpr size_t StackRegionAlign = KernelAslrAlignment; |         constexpr size_t StackRegionAlign = KernelAslrAlignment; | ||||||
|         const VAddr stack_region_start = |         const VAddr stack_region_start = | ||||||
|             memory_layout.GetVirtualMemoryRegionTree().GetRandomAlignedRegion( |             memory_layout.GetVirtualMemoryRegionTree().GetRandomAlignedRegion( | ||||||
|  | @ -414,7 +413,7 @@ struct KernelCore::Impl { | ||||||
|             slab_region_start, slab_region_size, KMemoryRegionType_KernelSlab)); |             slab_region_start, slab_region_size, KMemoryRegionType_KernelSlab)); | ||||||
| 
 | 
 | ||||||
|         // Setup the temp region.
 |         // Setup the temp region.
 | ||||||
|         constexpr size_t TempRegionSize = Common::Size_128_MB; |         constexpr size_t TempRegionSize = 128_MiB; | ||||||
|         constexpr size_t TempRegionAlign = KernelAslrAlignment; |         constexpr size_t TempRegionAlign = KernelAslrAlignment; | ||||||
|         const VAddr temp_region_start = |         const VAddr temp_region_start = | ||||||
|             memory_layout.GetVirtualMemoryRegionTree().GetRandomAlignedRegion( |             memory_layout.GetVirtualMemoryRegionTree().GetRandomAlignedRegion( | ||||||
|  | @ -470,7 +469,7 @@ struct KernelCore::Impl { | ||||||
|         // Determine size available for kernel page table heaps, requiring > 8 MB.
 |         // Determine size available for kernel page table heaps, requiring > 8 MB.
 | ||||||
|         const PAddr resource_end_phys_addr = slab_start_phys_addr + resource_region_size; |         const PAddr resource_end_phys_addr = slab_start_phys_addr + resource_region_size; | ||||||
|         const size_t page_table_heap_size = resource_end_phys_addr - slab_end_phys_addr; |         const size_t page_table_heap_size = resource_end_phys_addr - slab_end_phys_addr; | ||||||
|         ASSERT(page_table_heap_size / Common::Size_4_MB > 2); |         ASSERT(page_table_heap_size / 4_MiB > 2); | ||||||
| 
 | 
 | ||||||
|         // Insert a physical region for the kernel page table heap region
 |         // Insert a physical region for the kernel page table heap region
 | ||||||
|         ASSERT(memory_layout.GetPhysicalMemoryRegionTree().Insert( |         ASSERT(memory_layout.GetPhysicalMemoryRegionTree().Insert( | ||||||
|  | @ -495,7 +494,7 @@ struct KernelCore::Impl { | ||||||
|         ASSERT(linear_extents.GetEndAddress() != 0); |         ASSERT(linear_extents.GetEndAddress() != 0); | ||||||
| 
 | 
 | ||||||
|         // Setup the linear mapping region.
 |         // Setup the linear mapping region.
 | ||||||
|         constexpr size_t LinearRegionAlign = Common::Size_1_GB; |         constexpr size_t LinearRegionAlign = 1_GiB; | ||||||
|         const PAddr aligned_linear_phys_start = |         const PAddr aligned_linear_phys_start = | ||||||
|             Common::AlignDown(linear_extents.GetAddress(), LinearRegionAlign); |             Common::AlignDown(linear_extents.GetAddress(), LinearRegionAlign); | ||||||
|         const size_t linear_region_size = |         const size_t linear_region_size = | ||||||
|  |  | ||||||
|  | @ -5,11 +5,13 @@ | ||||||
| #include <catch2/catch.hpp> | #include <catch2/catch.hpp> | ||||||
| 
 | 
 | ||||||
| #include "common/host_memory.h" | #include "common/host_memory.h" | ||||||
|  | #include "common/literals.h" | ||||||
| 
 | 
 | ||||||
| using Common::HostMemory; | using Common::HostMemory; | ||||||
|  | using namespace Common::Literals; | ||||||
| 
 | 
 | ||||||
| static constexpr size_t VIRTUAL_SIZE = 1ULL << 39; | static constexpr size_t VIRTUAL_SIZE = 1ULL << 39; | ||||||
| static constexpr size_t BACKING_SIZE = 4ULL * 1024 * 1024 * 1024; | static constexpr size_t BACKING_SIZE = 4_GiB; | ||||||
| 
 | 
 | ||||||
| TEST_CASE("HostMemory: Initialize and deinitialize", "[common]") { | TEST_CASE("HostMemory: Initialize and deinitialize", "[common]") { | ||||||
|     { HostMemory mem(BACKING_SIZE, VIRTUAL_SIZE); } |     { HostMemory mem(BACKING_SIZE, VIRTUAL_SIZE); } | ||||||
|  |  | ||||||
|  | @ -16,9 +16,9 @@ | ||||||
| 
 | 
 | ||||||
| #include <boost/container/small_vector.hpp> | #include <boost/container/small_vector.hpp> | ||||||
| 
 | 
 | ||||||
| #include "common/common_sizes.h" |  | ||||||
| #include "common/common_types.h" | #include "common/common_types.h" | ||||||
| #include "common/div_ceil.h" | #include "common/div_ceil.h" | ||||||
|  | #include "common/literals.h" | ||||||
| #include "common/microprofile.h" | #include "common/microprofile.h" | ||||||
| #include "common/scope_exit.h" | #include "common/scope_exit.h" | ||||||
| #include "common/settings.h" | #include "common/settings.h" | ||||||
|  | @ -48,8 +48,11 @@ constexpr u32 NUM_COMPUTE_UNIFORM_BUFFERS = 8; | ||||||
| constexpr u32 NUM_STORAGE_BUFFERS = 16; | constexpr u32 NUM_STORAGE_BUFFERS = 16; | ||||||
| constexpr u32 NUM_STAGES = 5; | constexpr u32 NUM_STAGES = 5; | ||||||
| 
 | 
 | ||||||
|  | using namespace Common::Literals; | ||||||
|  | 
 | ||||||
| template <typename P> | template <typename P> | ||||||
| class BufferCache { | class BufferCache { | ||||||
|  | 
 | ||||||
|     // Page size for caching purposes.
 |     // Page size for caching purposes.
 | ||||||
|     // This is unrelated to the CPU page size and it can be changed as it seems optimal.
 |     // This is unrelated to the CPU page size and it can be changed as it seems optimal.
 | ||||||
|     static constexpr u32 PAGE_BITS = 16; |     static constexpr u32 PAGE_BITS = 16; | ||||||
|  | @ -66,8 +69,8 @@ class BufferCache { | ||||||
| 
 | 
 | ||||||
|     static constexpr BufferId NULL_BUFFER_ID{0}; |     static constexpr BufferId NULL_BUFFER_ID{0}; | ||||||
| 
 | 
 | ||||||
|     static constexpr u64 EXPECTED_MEMORY = Common::Size_512_MB; |     static constexpr u64 EXPECTED_MEMORY = 512_MiB; | ||||||
|     static constexpr u64 CRITICAL_MEMORY = Common::Size_1_GB; |     static constexpr u64 CRITICAL_MEMORY = 1_GiB; | ||||||
| 
 | 
 | ||||||
|     using Maxwell = Tegra::Engines::Maxwell3D::Regs; |     using Maxwell = Tegra::Engines::Maxwell3D::Regs; | ||||||
| 
 | 
 | ||||||
|  | @ -96,7 +99,7 @@ class BufferCache { | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
| public: | public: | ||||||
|     static constexpr u32 DEFAULT_SKIP_CACHE_SIZE = 4096; |     static constexpr u32 DEFAULT_SKIP_CACHE_SIZE = 4_KiB; | ||||||
| 
 | 
 | ||||||
|     explicit BufferCache(VideoCore::RasterizerInterface& rasterizer_, |     explicit BufferCache(VideoCore::RasterizerInterface& rasterizer_, | ||||||
|                          Tegra::Engines::Maxwell3D& maxwell3d_, |                          Tegra::Engines::Maxwell3D& maxwell3d_, | ||||||
|  |  | ||||||
|  | @ -12,12 +12,15 @@ | ||||||
| #include <glad/glad.h> | #include <glad/glad.h> | ||||||
| 
 | 
 | ||||||
| #include "common/common_types.h" | #include "common/common_types.h" | ||||||
|  | #include "common/literals.h" | ||||||
| #include "video_core/renderer_opengl/gl_resource_manager.h" | #include "video_core/renderer_opengl/gl_resource_manager.h" | ||||||
| 
 | 
 | ||||||
| namespace OpenGL { | namespace OpenGL { | ||||||
| 
 | 
 | ||||||
|  | using namespace Common::Literals; | ||||||
|  | 
 | ||||||
| class StreamBuffer { | class StreamBuffer { | ||||||
|     static constexpr size_t STREAM_BUFFER_SIZE = 64 * 1024 * 1024; |     static constexpr size_t STREAM_BUFFER_SIZE = 64_MiB; | ||||||
|     static constexpr size_t NUM_SYNCS = 16; |     static constexpr size_t NUM_SYNCS = 16; | ||||||
|     static constexpr size_t REGION_SIZE = STREAM_BUFFER_SIZE / NUM_SYNCS; |     static constexpr size_t REGION_SIZE = STREAM_BUFFER_SIZE / NUM_SYNCS; | ||||||
|     static constexpr size_t MAX_ALIGNMENT = 256; |     static constexpr size_t MAX_ALIGNMENT = 256; | ||||||
|  |  | ||||||
|  | @ -12,6 +12,7 @@ | ||||||
| #include "common/assert.h" | #include "common/assert.h" | ||||||
| #include "common/bit_util.h" | #include "common/bit_util.h" | ||||||
| #include "common/common_types.h" | #include "common/common_types.h" | ||||||
|  | #include "common/literals.h" | ||||||
| #include "video_core/renderer_vulkan/vk_scheduler.h" | #include "video_core/renderer_vulkan/vk_scheduler.h" | ||||||
| #include "video_core/renderer_vulkan/vk_staging_buffer_pool.h" | #include "video_core/renderer_vulkan/vk_staging_buffer_pool.h" | ||||||
| #include "video_core/vulkan_common/vulkan_device.h" | #include "video_core/vulkan_common/vulkan_device.h" | ||||||
|  | @ -19,12 +20,15 @@ | ||||||
| 
 | 
 | ||||||
| namespace Vulkan { | namespace Vulkan { | ||||||
| namespace { | namespace { | ||||||
|  | 
 | ||||||
|  | using namespace Common::Literals; | ||||||
|  | 
 | ||||||
| // Maximum potential alignment of a Vulkan buffer
 | // Maximum potential alignment of a Vulkan buffer
 | ||||||
| constexpr VkDeviceSize MAX_ALIGNMENT = 256; | constexpr VkDeviceSize MAX_ALIGNMENT = 256; | ||||||
| // Maximum size to put elements in the stream buffer
 | // Maximum size to put elements in the stream buffer
 | ||||||
| constexpr VkDeviceSize MAX_STREAM_BUFFER_REQUEST_SIZE = 8 * 1024 * 1024; | constexpr VkDeviceSize MAX_STREAM_BUFFER_REQUEST_SIZE = 8_MiB; | ||||||
| // Stream buffer size in bytes
 | // Stream buffer size in bytes
 | ||||||
| constexpr VkDeviceSize STREAM_BUFFER_SIZE = 128 * 1024 * 1024; | constexpr VkDeviceSize STREAM_BUFFER_SIZE = 128_MiB; | ||||||
| constexpr VkDeviceSize REGION_SIZE = STREAM_BUFFER_SIZE / StagingBufferPool::NUM_SYNCS; | constexpr VkDeviceSize REGION_SIZE = STREAM_BUFFER_SIZE / StagingBufferPool::NUM_SYNCS; | ||||||
| 
 | 
 | ||||||
| constexpr VkMemoryPropertyFlags HOST_FLAGS = | constexpr VkMemoryPropertyFlags HOST_FLAGS = | ||||||
|  |  | ||||||
|  | @ -10,6 +10,7 @@ | ||||||
| 
 | 
 | ||||||
| #include "common/alignment.h" | #include "common/alignment.h" | ||||||
| #include "common/assert.h" | #include "common/assert.h" | ||||||
|  | #include "common/literals.h" | ||||||
| #include "video_core/renderer_vulkan/vk_scheduler.h" | #include "video_core/renderer_vulkan/vk_scheduler.h" | ||||||
| #include "video_core/renderer_vulkan/vk_stream_buffer.h" | #include "video_core/renderer_vulkan/vk_stream_buffer.h" | ||||||
| #include "video_core/vulkan_common/vulkan_device.h" | #include "video_core/vulkan_common/vulkan_device.h" | ||||||
|  | @ -19,6 +20,8 @@ namespace Vulkan { | ||||||
| 
 | 
 | ||||||
| namespace { | namespace { | ||||||
| 
 | 
 | ||||||
|  | using namespace Common::Literals; | ||||||
|  | 
 | ||||||
| constexpr VkBufferUsageFlags BUFFER_USAGE = | constexpr VkBufferUsageFlags BUFFER_USAGE = | ||||||
|     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT | |     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT | | ||||||
|     VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT; |     VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT; | ||||||
|  | @ -26,7 +29,7 @@ constexpr VkBufferUsageFlags BUFFER_USAGE = | ||||||
| constexpr u64 WATCHES_INITIAL_RESERVE = 0x4000; | constexpr u64 WATCHES_INITIAL_RESERVE = 0x4000; | ||||||
| constexpr u64 WATCHES_RESERVE_CHUNK = 0x1000; | constexpr u64 WATCHES_RESERVE_CHUNK = 0x1000; | ||||||
| 
 | 
 | ||||||
| constexpr u64 PREFERRED_STREAM_BUFFER_SIZE = 256 * 1024 * 1024; | constexpr u64 PREFERRED_STREAM_BUFFER_SIZE = 256_MiB; | ||||||
| 
 | 
 | ||||||
| /// Find a memory type with the passed requirements
 | /// Find a memory type with the passed requirements
 | ||||||
| std::optional<u32> FindMemoryType(const VkPhysicalDeviceMemoryProperties& properties, | std::optional<u32> FindMemoryType(const VkPhysicalDeviceMemoryProperties& properties, | ||||||
|  |  | ||||||
|  | @ -19,9 +19,8 @@ | ||||||
| #include <boost/container/small_vector.hpp> | #include <boost/container/small_vector.hpp> | ||||||
| 
 | 
 | ||||||
| #include "common/alignment.h" | #include "common/alignment.h" | ||||||
| #include "common/common_funcs.h" |  | ||||||
| #include "common/common_sizes.h" |  | ||||||
| #include "common/common_types.h" | #include "common/common_types.h" | ||||||
|  | #include "common/literals.h" | ||||||
| #include "common/logging/log.h" | #include "common/logging/log.h" | ||||||
| #include "common/settings.h" | #include "common/settings.h" | ||||||
| #include "video_core/compatible_formats.h" | #include "video_core/compatible_formats.h" | ||||||
|  | @ -59,6 +58,7 @@ using VideoCore::Surface::PixelFormat; | ||||||
| using VideoCore::Surface::PixelFormatFromDepthFormat; | using VideoCore::Surface::PixelFormatFromDepthFormat; | ||||||
| using VideoCore::Surface::PixelFormatFromRenderTargetFormat; | using VideoCore::Surface::PixelFormatFromRenderTargetFormat; | ||||||
| using VideoCore::Surface::SurfaceType; | using VideoCore::Surface::SurfaceType; | ||||||
|  | using namespace Common::Literals; | ||||||
| 
 | 
 | ||||||
| template <class P> | template <class P> | ||||||
| class TextureCache { | class TextureCache { | ||||||
|  | @ -79,8 +79,8 @@ class TextureCache { | ||||||
|     /// Sampler ID for bugged sampler ids
 |     /// Sampler ID for bugged sampler ids
 | ||||||
|     static constexpr SamplerId NULL_SAMPLER_ID{0}; |     static constexpr SamplerId NULL_SAMPLER_ID{0}; | ||||||
| 
 | 
 | ||||||
|     static constexpr u64 DEFAULT_EXPECTED_MEMORY = Common::Size_1_GB; |     static constexpr u64 DEFAULT_EXPECTED_MEMORY = 1_GiB; | ||||||
|     static constexpr u64 DEFAULT_CRITICAL_MEMORY = Common::Size_2_GB; |     static constexpr u64 DEFAULT_CRITICAL_MEMORY = 2_GiB; | ||||||
| 
 | 
 | ||||||
|     using Runtime = typename P::Runtime; |     using Runtime = typename P::Runtime; | ||||||
|     using Image = typename P::Image; |     using Image = typename P::Image; | ||||||
|  | @ -400,8 +400,8 @@ TextureCache<P>::TextureCache(Runtime& runtime_, VideoCore::RasterizerInterface& | ||||||
|         minimum_memory = 0; |         minimum_memory = 0; | ||||||
|     } else { |     } else { | ||||||
|         // on OGL we can be more conservatives as the driver takes care.
 |         // on OGL we can be more conservatives as the driver takes care.
 | ||||||
|         expected_memory = DEFAULT_EXPECTED_MEMORY + Common::Size_512_MB; |         expected_memory = DEFAULT_EXPECTED_MEMORY + 512_MiB; | ||||||
|         critical_memory = DEFAULT_CRITICAL_MEMORY + Common::Size_1_GB; |         critical_memory = DEFAULT_CRITICAL_MEMORY + 1_GiB; | ||||||
|         minimum_memory = expected_memory; |         minimum_memory = expected_memory; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 bunnei
						bunnei