diff --git a/src/nouveau/vulkan/nvk_descriptor_set.c b/src/nouveau/vulkan/nvk_descriptor_set.c index cb78ab3a91b..2d1b97d0a47 100644 --- a/src/nouveau/vulkan/nvk_descriptor_set.c +++ b/src/nouveau/vulkan/nvk_descriptor_set.c @@ -436,17 +436,14 @@ nvk_CreateDescriptorPool(VkDevice _device, return vk_error(dev, VK_ERROR_OUT_OF_HOST_MEMORY); if (bo_size) { - uint32_t flags = NOUVEAU_WS_BO_GART | NOUVEAU_WS_BO_MAP | NOUVEAU_WS_BO_NO_SHARE; - pool->bo = nouveau_ws_bo_new(dev->ws_dev, bo_size, 0, flags); + uint32_t flags = NOUVEAU_WS_BO_GART | NOUVEAU_WS_BO_NO_SHARE; + pool->bo = nouveau_ws_bo_new_mapped(dev->ws_dev, bo_size, 0, flags, + NOUVEAU_WS_BO_WR, + (void **)&pool->mapped_ptr); if (!pool->bo) { nvk_destroy_descriptor_pool(dev, pAllocator, pool); return vk_error(dev, VK_ERROR_OUT_OF_DEVICE_MEMORY); } - pool->mapped_ptr = nouveau_ws_bo_map(pool->bo, NOUVEAU_WS_BO_WR); - if (!pool->mapped_ptr) { - nvk_destroy_descriptor_pool(dev, pAllocator, pool); - return vk_error(dev, VK_ERROR_OUT_OF_DEVICE_MEMORY); - } } pool->size = bo_size; diff --git a/src/nouveau/vulkan/nvk_descriptor_table.c b/src/nouveau/vulkan/nvk_descriptor_table.c index 853f5b40ccf..adc35f1265a 100644 --- a/src/nouveau/vulkan/nvk_descriptor_table.c +++ b/src/nouveau/vulkan/nvk_descriptor_table.c @@ -21,22 +21,16 @@ nvk_descriptor_table_grow_locked(struct nvk_device *dev, assert(new_alloc > table->alloc && new_alloc <= table->max_alloc); const uint32_t new_bo_size = new_alloc * table->desc_size; - new_bo = nouveau_ws_bo_new(dev->ws_dev, new_bo_size, 256, - NOUVEAU_WS_BO_LOCAL | - NOUVEAU_WS_BO_MAP | - NOUVEAU_WS_BO_NO_SHARE); + new_bo = nouveau_ws_bo_new_mapped(dev->ws_dev, new_bo_size, 256, + NOUVEAU_WS_BO_LOCAL | + NOUVEAU_WS_BO_NO_SHARE, + NOUVEAU_WS_BO_WR, + &new_map); if (new_bo == NULL) { return vk_errorf(dev, VK_ERROR_OUT_OF_DEVICE_MEMORY, "Failed to allocate the image descriptor table"); } - new_map = nouveau_ws_bo_map(new_bo, NOUVEAU_WS_BO_WR); - if (new_map == NULL) { - nouveau_ws_bo_destroy(new_bo); - return vk_errorf(dev, VK_ERROR_OUT_OF_DEVICE_MEMORY, - "Failed to map the image descriptor table"); - } - if (table->bo) { assert(new_bo_size >= table->bo->size); memcpy(new_map, table->map, table->bo->size);