diff --git a/src/nouveau/vulkan/nvk_cmd_pool.c b/src/nouveau/vulkan/nvk_cmd_pool.c index 6a1e1177f92..e16a02682f6 100644 --- a/src/nouveau/vulkan/nvk_cmd_pool.c +++ b/src/nouveau/vulkan/nvk_cmd_pool.c @@ -21,7 +21,7 @@ nvk_cmd_mem_create(struct nvk_cmd_pool *pool, bool force_gart, struct nvk_cmd_me if (mem == NULL) return vk_error(pool, VK_ERROR_OUT_OF_HOST_MEMORY); - uint32_t flags = NVKMD_MEM_GART | NVKMD_MEM_CAN_MAP | NVKMD_MEM_NO_SHARE; + uint32_t flags = NVKMD_MEM_GART; if (force_gart) assert(flags & NVKMD_MEM_GART); result = nvkmd_dev_alloc_mapped_mem(dev->nvkmd, &pool->vk.base, diff --git a/src/nouveau/vulkan/nvk_descriptor_set.c b/src/nouveau/vulkan/nvk_descriptor_set.c index 082013ba604..e67f3510008 100644 --- a/src/nouveau/vulkan/nvk_descriptor_set.c +++ b/src/nouveau/vulkan/nvk_descriptor_set.c @@ -540,8 +540,7 @@ nvk_CreateDescriptorPool(VkDevice _device, if (mem_size) { result = nvkmd_dev_alloc_mapped_mem(dev->nvkmd, &dev->vk.base, - mem_size, 0, - NVKMD_MEM_GART | NVKMD_MEM_NO_SHARE, + mem_size, 0, NVKMD_MEM_GART, NVKMD_MEM_MAP_WR, &pool->mem); if (result != VK_SUCCESS) { nvk_destroy_descriptor_pool(dev, pAllocator, pool); diff --git a/src/nouveau/vulkan/nvk_descriptor_table.c b/src/nouveau/vulkan/nvk_descriptor_table.c index 64b9544292e..eb24a9b8fcc 100644 --- a/src/nouveau/vulkan/nvk_descriptor_table.c +++ b/src/nouveau/vulkan/nvk_descriptor_table.c @@ -23,8 +23,7 @@ nvk_descriptor_table_grow_locked(struct nvk_device *dev, const uint32_t new_mem_size = new_alloc * table->desc_size; result = nvkmd_dev_alloc_mapped_mem(dev->nvkmd, &dev->vk.base, new_mem_size, 256, - NVKMD_MEM_LOCAL | NVKMD_MEM_NO_SHARE, - NVKMD_MEM_MAP_WR, + NVKMD_MEM_LOCAL, NVKMD_MEM_MAP_WR, &new_mem); if (result != VK_SUCCESS) return result; diff --git a/src/nouveau/vulkan/nvk_device.c b/src/nouveau/vulkan/nvk_device.c index d1b28956f36..c6611b4f3c4 100644 --- a/src/nouveau/vulkan/nvk_device.c +++ b/src/nouveau/vulkan/nvk_device.c @@ -96,7 +96,7 @@ nvk_slm_area_ensure(struct nvk_device *dev, struct nvkmd_mem *mem; result = nvkmd_dev_alloc_mem(dev->nvkmd, &dev->vk.base, size, 0, - NVKMD_MEM_LOCAL | NVKMD_MEM_NO_SHARE, &mem); + NVKMD_MEM_LOCAL, &mem); if (result != VK_SUCCESS) return result; @@ -190,16 +190,14 @@ nvk_CreateDevice(VkPhysicalDevice physicalDevice, if (pdev->info.bar_size_B >= pdev->info.vram_size_B) shader_map_flags = NVKMD_MEM_MAP_WR; result = nvk_heap_init(dev, &dev->shader_heap, - NVKMD_MEM_LOCAL | NVKMD_MEM_NO_SHARE, - shader_map_flags, + NVKMD_MEM_LOCAL, shader_map_flags, 4096 /* overalloc */, pdev->info.cls_eng3d < VOLTA_A); if (result != VK_SUCCESS) goto fail_samplers; result = nvk_heap_init(dev, &dev->event_heap, - NVKMD_MEM_LOCAL | NVKMD_MEM_NO_SHARE, - NVKMD_MEM_MAP_WR, + NVKMD_MEM_LOCAL, NVKMD_MEM_MAP_WR, 0 /* overalloc */, false /* contiguous */); if (result != VK_SUCCESS) goto fail_shader_heap; @@ -207,8 +205,7 @@ nvk_CreateDevice(VkPhysicalDevice physicalDevice, nvk_slm_area_init(&dev->slm); result = nvkmd_dev_alloc_mapped_mem(dev->nvkmd, &pdev->vk.base, - 0x1000, 0, - NVKMD_MEM_LOCAL | NVKMD_MEM_NO_SHARE, + 0x1000, 0, NVKMD_MEM_LOCAL, NVKMD_MEM_MAP_WR, &dev->zero_page); if (result != VK_SUCCESS) goto fail_slm; @@ -220,8 +217,7 @@ nvk_CreateDevice(VkPhysicalDevice physicalDevice, pdev->info.cls_eng3d < MAXWELL_A) { /* max size is 256k */ result = nvkmd_dev_alloc_mem(dev->nvkmd, &pdev->vk.base, - 1 << 17, 1 << 20, - NVKMD_MEM_LOCAL | NVKMD_MEM_NO_SHARE, + 1 << 17, 1 << 20, NVKMD_MEM_LOCAL, &dev->vab_memory); if (result != VK_SUCCESS) goto fail_zero_page; diff --git a/src/nouveau/vulkan/nvk_device_memory.c b/src/nouveau/vulkan/nvk_device_memory.c index fe989e8f802..8fec848e5d1 100644 --- a/src/nouveau/vulkan/nvk_device_memory.c +++ b/src/nouveau/vulkan/nvk_device_memory.c @@ -58,8 +58,8 @@ nvk_memory_type_flags(const VkMemoryType *type, if (handle_types & VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT) flags |= NVKMD_MEM_GART; - if (handle_types == 0) - flags |= NVKMD_MEM_NO_SHARE; + if (handle_types != 0) + flags |= NVKMD_MEM_SHARED; return flags; } diff --git a/src/nouveau/vulkan/nvk_query_pool.c b/src/nouveau/vulkan/nvk_query_pool.c index 6faa8b18d69..8a87b1efeac 100644 --- a/src/nouveau/vulkan/nvk_query_pool.c +++ b/src/nouveau/vulkan/nvk_query_pool.c @@ -78,7 +78,7 @@ nvk_CreateQueryPool(VkDevice device, pool->query_stride * pool->vk.query_count; result = nvkmd_dev_alloc_mapped_mem(dev->nvkmd, &dev->vk.base, mem_size, 0 /* align_B */, - NVKMD_MEM_GART | NVKMD_MEM_NO_SHARE, + NVKMD_MEM_GART, NVKMD_MEM_MAP_RDWR, &pool->mem); if (result != VK_SUCCESS) { diff --git a/src/nouveau/vulkan/nvk_queue.c b/src/nouveau/vulkan/nvk_queue.c index 5af5edbdba5..18a8bec2273 100644 --- a/src/nouveau/vulkan/nvk_queue.c +++ b/src/nouveau/vulkan/nvk_queue.c @@ -114,9 +114,7 @@ nvk_queue_state_update(struct nvk_device *dev, struct nvkmd_mem *push_mem; VkResult result = nvkmd_dev_alloc_mapped_mem(dev->nvkmd, &dev->vk.base, - 256 * 4, 0, - NVKMD_MEM_GART | - NVKMD_MEM_NO_SHARE, + 256 * 4, 0, NVKMD_MEM_GART, NVKMD_MEM_MAP_WR, &push_mem); if (result != VK_SUCCESS) return result; @@ -421,7 +419,7 @@ nvk_queue_submit_simple(struct nvk_queue *queue, struct nvkmd_mem *push_mem; result = nvkmd_dev_alloc_mapped_mem(dev->nvkmd, &dev->vk.base, dw_count * 4, 0, - NVKMD_MEM_GART | NVKMD_MEM_NO_SHARE, + NVKMD_MEM_GART, NVKMD_MEM_MAP_WR, &push_mem); if (result != VK_SUCCESS) return result; @@ -533,8 +531,7 @@ nvk_queue_init(struct nvk_device *dev, struct nvk_queue *queue, goto fail_init; result = nvkmd_dev_alloc_mem(dev->nvkmd, &dev->vk.base, - 4096, 0, - NVKMD_MEM_LOCAL | NVKMD_MEM_NO_SHARE, + 4096, 0, NVKMD_MEM_LOCAL, &queue->draw_cb0); if (result != VK_SUCCESS) goto fail_exec_ctx; diff --git a/src/nouveau/vulkan/nvk_upload_queue.c b/src/nouveau/vulkan/nvk_upload_queue.c index 2d1673305f9..ac07c1b7132 100644 --- a/src/nouveau/vulkan/nvk_upload_queue.c +++ b/src/nouveau/vulkan/nvk_upload_queue.c @@ -37,10 +37,9 @@ nvk_upload_mem_create(struct nvk_device *dev, if (mem == NULL) return vk_error(dev, VK_ERROR_OUT_OF_HOST_MEMORY); - uint32_t flags = NVKMD_MEM_GART | NVKMD_MEM_CAN_MAP | NVKMD_MEM_NO_SHARE; result = nvkmd_dev_alloc_mapped_mem(dev->nvkmd, &dev->vk.base, - NVK_UPLOAD_MEM_SIZE, 0, - flags, NVKMD_MEM_MAP_WR, &mem->mem); + NVK_UPLOAD_MEM_SIZE, 0, NVKMD_MEM_GART, + NVKMD_MEM_MAP_WR, &mem->mem); if (result != VK_SUCCESS) { vk_free(&dev->vk.alloc, mem); return result; diff --git a/src/nouveau/vulkan/nvkmd/nouveau/nvkmd_nouveau_mem.c b/src/nouveau/vulkan/nvkmd/nouveau/nvkmd_nouveau_mem.c index 51309bf9294..a7eb850ae52 100644 --- a/src/nouveau/vulkan/nvkmd/nouveau/nvkmd_nouveau_mem.c +++ b/src/nouveau/vulkan/nvkmd/nouveau/nvkmd_nouveau_mem.c @@ -90,7 +90,8 @@ nvkmd_nouveau_alloc_tiled_mem(struct nvkmd_dev *_dev, nouveau_flags |= NOUVEAU_WS_BO_GART; if (flags & NVKMD_MEM_CAN_MAP) nouveau_flags |= NOUVEAU_WS_BO_MAP; - if (flags & NVKMD_MEM_NO_SHARE) + + if (!(flags & NVKMD_MEM_SHARED)) nouveau_flags |= NOUVEAU_WS_BO_NO_SHARE; struct nouveau_ws_bo *bo = nouveau_ws_bo_new_tiled(dev->ws_dev, @@ -115,15 +116,13 @@ nvkmd_nouveau_import_dma_buf(struct nvkmd_dev *_dev, if (bo == NULL) return vk_errorf(log_obj, VK_ERROR_INVALID_EXTERNAL_HANDLE, "%m"); - enum nvkmd_mem_flags flags = 0; + enum nvkmd_mem_flags flags = NVKMD_MEM_SHARED; if (bo->flags & NOUVEAU_WS_BO_LOCAL) flags |= NVKMD_MEM_LOCAL; if (bo->flags & NOUVEAU_WS_BO_GART) flags |= NVKMD_MEM_GART; if (bo->flags & NOUVEAU_WS_BO_MAP) flags |= NVKMD_MEM_CAN_MAP; - if (bo->flags & NOUVEAU_WS_BO_NO_SHARE) - flags |= NVKMD_MEM_NO_SHARE; return create_mem_or_close_bo(dev, log_obj, 0 /* align_B */, diff --git a/src/nouveau/vulkan/nvkmd/nvkmd.h b/src/nouveau/vulkan/nvkmd/nvkmd.h index 9b08a285b28..ed551e73b88 100644 --- a/src/nouveau/vulkan/nvkmd/nvkmd.h +++ b/src/nouveau/vulkan/nvkmd/nvkmd.h @@ -39,7 +39,8 @@ enum nvkmd_mem_flags { /** This memory object may be mapped */ NVKMD_MEM_CAN_MAP = 1 << 2, - NVKMD_MEM_NO_SHARE = 1 << 3, + /** This memory object may be shared with other processes */ + NVKMD_MEM_SHARED = 1 << 3, }; enum nvkmd_mem_map_flags { @@ -452,7 +453,7 @@ nvkmd_mem_export_dma_buf(struct nvkmd_mem *mem, struct vk_object_base *log_obj, int *fd_out) { - assert(!(mem->flags & NVKMD_MEM_NO_SHARE)); + assert(mem->flags & NVKMD_MEM_SHARED); return mem->ops->export_dma_buf(mem, log_obj, fd_out); }