From 77eba0980b4ade823200dd587751f3c6abd1a4b1 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Wed, 28 May 2025 12:02:39 -0400 Subject: [PATCH] nvk: Don't assert memory placement on import Instead, we assert that the non-placement flags match, which is currently CAN_MAP and SHARED. Part-of: --- src/nouveau/vulkan/nvk_device_memory.c | 3 +-- src/nouveau/vulkan/nvkmd/nvkmd.h | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/nouveau/vulkan/nvk_device_memory.c b/src/nouveau/vulkan/nvk_device_memory.c index fe8a6fd1eb0..b8a6a1f7e1a 100644 --- a/src/nouveau/vulkan/nvk_device_memory.c +++ b/src/nouveau/vulkan/nvk_device_memory.c @@ -178,8 +178,7 @@ nvk_AllocateMemory(VkDevice device, /* We can't really assert anything for dma-bufs because they could come * in from some other device. */ - if (fd_info->handleType == VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT) - assert(!(flags & ~mem->mem->flags)); + assert(!(flags & ~mem->mem->flags & ~NVKMD_MEM_PLACEMENT_FLAGS)); } else if (pte_kind != 0 || tile_mode != 0) { result = nvkmd_dev_alloc_tiled_mem(dev->nvkmd, &dev->vk.base, aligned_size, alignment, diff --git a/src/nouveau/vulkan/nvkmd/nvkmd.h b/src/nouveau/vulkan/nvkmd/nvkmd.h index e6ef8296e08..1aa990e1b09 100644 --- a/src/nouveau/vulkan/nvkmd/nvkmd.h +++ b/src/nouveau/vulkan/nvkmd/nvkmd.h @@ -55,6 +55,9 @@ enum nvkmd_mem_flags { NVKMD_MEM_SHARED = 1 << 4, }; +#define NVKMD_MEM_PLACEMENT_FLAGS \ + (NVKMD_MEM_LOCAL | NVKMD_MEM_GART | NVKMD_MEM_VRAM) + enum nvkmd_mem_map_flags { NVKMD_MEM_MAP_RD = 1 << 0, NVKMD_MEM_MAP_WR = 1 << 1,