mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-02 13:50:09 +01:00
nvk/cmd_pool: NVK_DEBUG=trash_mem for alloc_mem
These buffers get recycled, so we can't rely on their contents. Unfortunately, conditional rendering was relying on these buffers being all zero, implicitly, because we didn't fully understand the hardware. By supporting this debug flag here, we add a way to check for code that accidentally assumes zero-initialization. Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com> Reviewed-by: Mary Guillemard <mary@mary.zone> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37153>
This commit is contained in:
parent
2dbe981513
commit
27ca1c28c0
1 changed files with 14 additions and 3 deletions
|
|
@ -129,7 +129,10 @@ VkResult
|
|||
nvk_cmd_pool_alloc_mem(struct nvk_cmd_pool *pool, bool force_gart,
|
||||
struct nvk_cmd_mem **mem_out)
|
||||
{
|
||||
const struct nvk_device *dev = nvk_cmd_pool_device(pool);
|
||||
const struct nvk_physical_device *pdev = nvk_device_physical(dev);
|
||||
struct nvk_cmd_mem *mem = NULL;
|
||||
|
||||
if (force_gart) {
|
||||
if (!list_is_empty(&pool->free_gart_mem))
|
||||
mem = list_first_entry(&pool->free_gart_mem, struct nvk_cmd_mem, link);
|
||||
|
|
@ -137,13 +140,21 @@ nvk_cmd_pool_alloc_mem(struct nvk_cmd_pool *pool, bool force_gart,
|
|||
if (!list_is_empty(&pool->free_mem))
|
||||
mem = list_first_entry(&pool->free_mem, struct nvk_cmd_mem, link);
|
||||
}
|
||||
|
||||
if (mem) {
|
||||
list_del(&mem->link);
|
||||
*mem_out = mem;
|
||||
return VK_SUCCESS;
|
||||
} else {
|
||||
VkResult result = nvk_cmd_mem_create(pool, force_gart, &mem);
|
||||
if (result != VK_SUCCESS)
|
||||
return result;
|
||||
}
|
||||
|
||||
return nvk_cmd_mem_create(pool, force_gart, mem_out);
|
||||
if (unlikely(pdev->debug_flags & NVK_DEBUG_TRASH_MEMORY)) {
|
||||
memset(mem->mem->map, 0xF1, mem->mem->size_B);
|
||||
}
|
||||
|
||||
*mem_out = mem;
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
VkResult
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue