[vk, qcom] Adjusting Sampler Budget reserved value

This commit is contained in:
CamilleLaVey 2025-11-25 21:53:33 -04:00 committed by Caio Oliveira
parent c14175e481
commit d763cafca6
No known key found for this signature in database
GPG key ID: AAAE6C7FD4186B0C

View file

@ -586,13 +586,14 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
const size_t sampler_limit = properties.properties.limits.maxSamplerAllocationCount; const size_t sampler_limit = properties.properties.limits.maxSamplerAllocationCount;
if (sampler_limit > 0) { if (sampler_limit > 0) {
constexpr size_t MIN_SAMPLER_BUDGET = 1024U; constexpr size_t MIN_SAMPLER_BUDGET = 1024U;
const size_t reserved = sampler_limit / 4U;
const size_t derived_budget = const size_t derived_budget =
(std::max)(MIN_SAMPLER_BUDGET, sampler_limit / 4U); (std::max)(MIN_SAMPLER_BUDGET, sampler_limit - reserved);
sampler_heap_budget = derived_budget; sampler_heap_budget = derived_budget;
LOG_WARNING(Render_Vulkan, LOG_WARNING(Render_Vulkan,
"Qualcomm driver reports max {} samplers; clamping cache to {} (25%) to " "Qualcomm driver reports max {} samplers; reserving {} (25%) and "
"avoid heap exhaustion", "allowing Eden to use {} (75%) to avoid heap exhaustion",
sampler_limit, sampler_heap_budget); sampler_limit, reserved, sampler_heap_budget);
} }
} }