nvk: Add NVK_DEBUG=trash_memory

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33947>
This commit is contained in:
Mel Henning 2025-03-07 15:14:10 -05:00 committed by Marge Bot
parent cab80223fd
commit 0dad7857d8
3 changed files with 12 additions and 4 deletions

View file

@ -20,9 +20,13 @@ enum nvk_debug {
*/
NVK_DEBUG_ZERO_MEMORY = 1ull << 2,
/* Write repeating nonzero patterns to client memory allocations
*/
NVK_DEBUG_TRASH_MEMORY = 1ull << 3,
/* Dump VM bind/unbinds
*/
NVK_DEBUG_VM = 1ull << 3,
NVK_DEBUG_VM = 1ull << 4,
/* Disable most cbufs
*

View file

@ -189,7 +189,9 @@ nvk_AllocateMemory(VkDevice device,
goto fail_alloc;
}
if ((pdev->debug_flags & NVK_DEBUG_ZERO_MEMORY) && !is_import) {
if (!is_import && (pdev->debug_flags & (NVK_DEBUG_ZERO_MEMORY |
NVK_DEBUG_TRASH_MEMORY))) {
bool use_zero = (pdev->debug_flags & NVK_DEBUG_ZERO_MEMORY) != 0;
if (type->propertyFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) {
void *map;
result = nvkmd_mem_map(mem->mem, &dev->vk.base,
@ -197,12 +199,13 @@ nvk_AllocateMemory(VkDevice device,
if (result != VK_SUCCESS)
goto fail_mem;
memset(map, 0, mem->mem->size_B);
memset(map, use_zero ? 0 : 0xF1, mem->mem->size_B);
nvkmd_mem_unmap(mem->mem, 0);
} else {
result = nvk_upload_queue_fill(dev, &dev->upload,
mem->mem->va->addr,
0, mem->mem->size_B);
use_zero ? 0 : 0xCAFEF00D,
mem->mem->size_B);
if (result != VK_SUCCESS)
goto fail_mem;

View file

@ -89,6 +89,7 @@ nvk_init_debug_flags(struct nvk_instance *instance)
{ "push", NVK_DEBUG_PUSH_DUMP },
{ "push_sync", NVK_DEBUG_PUSH_SYNC },
{ "zero_memory", NVK_DEBUG_ZERO_MEMORY },
{ "trash_memory", NVK_DEBUG_TRASH_MEMORY },
{ "vm", NVK_DEBUG_VM },
{ "no_cbuf", NVK_DEBUG_NO_CBUF },
{ "edb_bview", NVK_DEBUG_FORCE_EDB_BVIEW },