Add subpass limit quirk to fix Adreno driver bug

Older Adreno proprietary drivers (5xx and below) will segfault while destroying the renderpass and associated objects if more than 64 subpasses are within a renderpass due to internal driver implementation details. This commit introduces checks to automatically break up a renderpass when that limit is hit.
This commit is contained in:
PixelyIon
2022-03-28 14:41:37 +05:30
parent 65d5a3bce5
commit e294fa8c91
6 changed files with 13 additions and 5 deletions

View File

@ -529,7 +529,7 @@ namespace skyline::gpu {
}
if (gpu.traits.quirks.vkImageMutableFormatCostly && pFormat->vkFormat != format->vkFormat)
Logger::Warn("Creating a view of a texture with a different format without mutable format");
Logger::Warn("Creating a view of a texture with a different format without mutable format: {} - {}", vk::to_string(pFormat->vkFormat), vk::to_string(format->vkFormat));
auto view{std::make_shared<TextureView>(shared_from_this(), type, range, pFormat, mapping)};
views.push_back(view);