Implement support for (de)serialising VkPipelineCaches to/from storage

Significantly improves launch times in games with many shader combinations, giving an 5x speedup in some cases.
This commit is contained in:
Billy Laws
2023-01-18 19:49:55 +00:00
parent db173083d7
commit dd92cb1536
12 changed files with 327 additions and 480 deletions

View File

@ -54,6 +54,11 @@ namespace skyline::gpu {
u32 hostVisibleCoherentCachedMemoryType{std::numeric_limits<u32>::max()};
u32 minimumStorageBufferAlignment{}; //!< Minimum alignment for storage buffers passed to shaders
u32 vendorId{}; //!< The `vendorID` Vulkan property
u32 deviceId{}; //!< The `deviceID` Vulkan property
u32 driverVersion{}; //!< The `driverVersion` Vulkan property
std::array<u8, VK_UUID_SIZE> pipelineCacheUuid{}; //!< The `pipelineCacheUUID` Vulkan property
std::bitset<7> bcnSupport{}; //!< Bitmask of BCn texture formats supported, it is ordered as BC1, BC2, BC3, BC4, BC5, BC6H and BC7
bool supportsAdrenoDirectMemoryImport{};