diff --git a/src/intel/vulkan/anv_cmd_buffer.c b/src/intel/vulkan/anv_cmd_buffer.c index b4968e8a907..ac263d78f95 100644 --- a/src/intel/vulkan/anv_cmd_buffer.c +++ b/src/intel/vulkan/anv_cmd_buffer.c @@ -253,14 +253,11 @@ static VkResult anv_create_cmd_buffer( struct anv_cmd_buffer *cmd_buffer; VkResult result; - cmd_buffer = vk_alloc(&pool->alloc, sizeof(*cmd_buffer), 8, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); + cmd_buffer = vk_object_alloc(&device->vk, &pool->alloc, sizeof(*cmd_buffer), + VK_OBJECT_TYPE_COMMAND_BUFFER); if (cmd_buffer == NULL) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); - vk_object_base_init(&device->vk, &cmd_buffer->base, - VK_OBJECT_TYPE_COMMAND_BUFFER); - cmd_buffer->batch.status = VK_SUCCESS; cmd_buffer->device = device; @@ -341,8 +338,7 @@ anv_cmd_buffer_destroy(struct anv_cmd_buffer *cmd_buffer) vk_free(&cmd_buffer->pool->alloc, cmd_buffer->self_mod_locations); - vk_object_base_finish(&cmd_buffer->base); - vk_free(&cmd_buffer->pool->alloc, cmd_buffer); + vk_object_free(&cmd_buffer->device->vk, &cmd_buffer->pool->alloc, cmd_buffer); } void anv_FreeCommandBuffers( @@ -1137,13 +1133,11 @@ VkResult anv_CreateCommandPool( ANV_FROM_HANDLE(anv_device, device, _device); struct anv_cmd_pool *pool; - pool = vk_alloc2(&device->vk.alloc, pAllocator, sizeof(*pool), 8, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); + pool = vk_object_alloc(&device->vk, pAllocator, sizeof(*pool), + VK_OBJECT_TYPE_COMMAND_POOL); if (pool == NULL) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); - vk_object_base_init(&device->vk, &pool->base, VK_OBJECT_TYPE_COMMAND_POOL); - if (pAllocator) pool->alloc = *pAllocator; else @@ -1174,8 +1168,7 @@ void anv_DestroyCommandPool( anv_cmd_buffer_destroy(cmd_buffer); } - vk_object_base_finish(&pool->base); - vk_free2(&device->vk.alloc, pAllocator, pool); + vk_object_free(&device->vk, pAllocator, pool); } VkResult anv_ResetCommandPool( diff --git a/src/intel/vulkan/anv_descriptor_set.c b/src/intel/vulkan/anv_descriptor_set.c index 2028f7ee0cc..c8075c5d4c8 100644 --- a/src/intel/vulkan/anv_descriptor_set.c +++ b/src/intel/vulkan/anv_descriptor_set.c @@ -385,13 +385,10 @@ VkResult anv_CreateDescriptorSetLayout( VK_MULTIALLOC_DECL(&ma, struct anv_sampler *, samplers, immutable_sampler_count); - if (!vk_multialloc_alloc(&ma, &device->vk.alloc, - VK_SYSTEM_ALLOCATION_SCOPE_DEVICE)) + if (!vk_object_multizalloc(&device->vk, &ma, NULL, + VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT)) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); - memset(set_layout, 0, sizeof(*set_layout)); - vk_object_base_init(&device->vk, &set_layout->base, - VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT); set_layout->ref_cnt = 1; set_layout->binding_count = num_bindings; @@ -553,8 +550,7 @@ anv_descriptor_set_layout_destroy(struct anv_device *device, struct anv_descriptor_set_layout *layout) { assert(layout->ref_cnt == 0); - vk_object_base_finish(&layout->base); - vk_free(&device->vk.alloc, layout); + vk_object_free(&device->vk, NULL, layout); } static const struct anv_descriptor_set_binding_layout * @@ -711,13 +707,11 @@ VkResult anv_CreatePipelineLayout( assert(pCreateInfo->sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO); - layout = vk_alloc2(&device->vk.alloc, pAllocator, sizeof(*layout), 8, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); + layout = vk_object_alloc(&device->vk, pAllocator, sizeof(*layout), + VK_OBJECT_TYPE_PIPELINE_LAYOUT); if (layout == NULL) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); - vk_object_base_init(&device->vk, &layout->base, - VK_OBJECT_TYPE_PIPELINE_LAYOUT); layout->num_sets = pCreateInfo->setLayoutCount; unsigned dynamic_offset_count = 0; @@ -767,8 +761,7 @@ void anv_DestroyPipelineLayout( for (uint32_t i = 0; i < pipeline_layout->num_sets; i++) anv_descriptor_set_layout_unref(device, pipeline_layout->set[i].layout); - vk_object_base_finish(&pipeline_layout->base); - vk_free2(&device->vk.alloc, pAllocator, pipeline_layout); + vk_object_free(&device->vk, pAllocator, pipeline_layout); } /* @@ -860,13 +853,11 @@ VkResult anv_CreateDescriptorPool( buffer_view_count * sizeof(struct anv_buffer_view); const size_t total_size = sizeof(*pool) + pool_size; - pool = vk_alloc2(&device->vk.alloc, pAllocator, total_size, 8, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); + pool = vk_object_alloc(&device->vk, pAllocator, total_size, + VK_OBJECT_TYPE_DESCRIPTOR_POOL); if (!pool) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); - vk_object_base_init(&device->vk, &pool->base, - VK_OBJECT_TYPE_DESCRIPTOR_POOL); pool->size = pool_size; pool->next = 0; pool->free_list = EMPTY; @@ -880,8 +871,7 @@ VkResult anv_CreateDescriptorPool( 0 /* explicit_address */, &pool->bo); if (result != VK_SUCCESS) { - vk_object_base_finish(&pool->base); - vk_free2(&device->vk.alloc, pAllocator, pool); + vk_object_free(&device->vk, pAllocator, pool); return result; } @@ -923,8 +913,7 @@ void anv_DestroyDescriptorPool( } anv_state_stream_finish(&pool->surface_state_stream); - vk_object_base_finish(&pool->base); - vk_free2(&device->vk.alloc, pAllocator, pool); + vk_object_free(&device->vk, pAllocator, pool); } VkResult anv_ResetDescriptorPool( @@ -1768,13 +1757,11 @@ VkResult anv_CreateDescriptorUpdateTemplate( size_t size = sizeof(*template) + pCreateInfo->descriptorUpdateEntryCount * sizeof(template->entries[0]); - template = vk_alloc2(&device->vk.alloc, pAllocator, size, 8, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); + template = vk_object_alloc(&device->vk, pAllocator, size, + VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE); if (template == NULL) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); - vk_object_base_init(&device->vk, &template->base, - VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE); template->bind_point = pCreateInfo->pipelineBindPoint; if (pCreateInfo->templateType == VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET) @@ -1813,8 +1800,7 @@ void anv_DestroyDescriptorUpdateTemplate( if (!template) return; - vk_object_base_finish(&template->base); - vk_free2(&device->vk.alloc, pAllocator, template); + vk_object_free(&device->vk, pAllocator, template); } void anv_UpdateDescriptorSetWithTemplate( diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 78d3288127d..a53b4e315cf 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -3702,13 +3702,11 @@ VkResult anv_AllocateMemory( if (mem_heap_used + aligned_alloc_size > mem_heap->size) return vk_error(VK_ERROR_OUT_OF_DEVICE_MEMORY); - mem = vk_alloc2(&device->vk.alloc, pAllocator, sizeof(*mem), 8, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); + mem = vk_object_alloc(&device->vk, pAllocator, sizeof(*mem), + VK_OBJECT_TYPE_DEVICE_MEMORY); if (mem == NULL) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); - assert(pAllocateInfo->memoryTypeIndex < pdevice->memory.type_count); - vk_object_base_init(&device->vk, &mem->base, VK_OBJECT_TYPE_DEVICE_MEMORY); mem->type = mem_type; mem->map = NULL; mem->map_size = 0; @@ -3935,8 +3933,7 @@ VkResult anv_AllocateMemory( return VK_SUCCESS; fail: - vk_object_base_finish(&mem->base); - vk_free2(&device->vk.alloc, pAllocator, mem); + vk_object_free(&device->vk, pAllocator, mem); return result; } @@ -4036,8 +4033,7 @@ void anv_FreeMemory( AHardwareBuffer_release(mem->ahw); #endif - vk_object_base_finish(&mem->base); - vk_free2(&device->vk.alloc, pAllocator, mem); + vk_object_free(&device->vk, pAllocator, mem); } VkResult anv_MapMemory( @@ -4295,12 +4291,11 @@ VkResult anv_CreateEvent( assert(pCreateInfo->sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO); - event = vk_alloc2(&device->vk.alloc, pAllocator, sizeof(*event), 8, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); + event = vk_object_alloc(&device->vk, pAllocator, sizeof(*event), + VK_OBJECT_TYPE_EVENT); if (event == NULL) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); - vk_object_base_init(&device->vk, &event->base, VK_OBJECT_TYPE_EVENT); event->state = anv_state_pool_alloc(&device->dynamic_state_pool, sizeof(uint64_t), 8); *(uint64_t *)event->state.map = VK_EVENT_RESET; @@ -4323,8 +4318,7 @@ void anv_DestroyEvent( anv_state_pool_free(&device->dynamic_state_pool, event->state); - vk_object_base_finish(&event->base); - vk_free2(&device->vk.alloc, pAllocator, event); + vk_object_free(&device->vk, pAllocator, event); } VkResult anv_GetEventStatus( @@ -4383,12 +4377,11 @@ VkResult anv_CreateBuffer( assert(pCreateInfo->sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO); - buffer = vk_alloc2(&device->vk.alloc, pAllocator, sizeof(*buffer), 8, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); + buffer = vk_object_alloc(&device->vk, pAllocator, sizeof(*buffer), + VK_OBJECT_TYPE_BUFFER); if (buffer == NULL) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); - vk_object_base_init(&device->vk, &buffer->base, VK_OBJECT_TYPE_BUFFER); buffer->create_flags = pCreateInfo->flags; buffer->size = pCreateInfo->size; buffer->usage = pCreateInfo->usage; @@ -4410,8 +4403,7 @@ void anv_DestroyBuffer( if (!buffer) return; - vk_object_base_finish(&buffer->base); - vk_free2(&device->vk.alloc, pAllocator, buffer); + vk_object_free(&device->vk, pAllocator, buffer); } VkDeviceAddress anv_GetBufferDeviceAddress( @@ -4483,8 +4475,7 @@ void anv_DestroySampler( sampler->custom_border_color); } - vk_object_base_finish(&sampler->base); - vk_free2(&device->vk.alloc, pAllocator, sampler); + vk_object_free(&device->vk, pAllocator, sampler); } VkResult anv_CreateFramebuffer( @@ -4508,14 +4499,11 @@ VkResult anv_CreateFramebuffer( if (!(pCreateInfo->flags & VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR)) size += sizeof(struct anv_image_view *) * pCreateInfo->attachmentCount; - framebuffer = vk_alloc2(&device->vk.alloc, pAllocator, size, 8, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); + framebuffer = vk_object_alloc(&device->vk, pAllocator, size, + VK_OBJECT_TYPE_FRAMEBUFFER); if (framebuffer == NULL) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); - vk_object_base_init(&device->vk, &framebuffer->base, - VK_OBJECT_TYPE_FRAMEBUFFER); - framebuffer->width = pCreateInfo->width; framebuffer->height = pCreateInfo->height; framebuffer->layers = pCreateInfo->layers; @@ -4544,8 +4532,7 @@ void anv_DestroyFramebuffer( if (!fb) return; - vk_object_base_finish(&fb->base); - vk_free2(&device->vk.alloc, pAllocator, fb); + vk_object_free(&device->vk, pAllocator, fb); } static const VkTimeDomainEXT anv_time_domains[] = { diff --git a/src/intel/vulkan/anv_formats.c b/src/intel/vulkan/anv_formats.c index 4a6d8ffa4d9..6cc79b97845 100644 --- a/src/intel/vulkan/anv_formats.c +++ b/src/intel/vulkan/anv_formats.c @@ -1564,15 +1564,11 @@ VkResult anv_CreateSamplerYcbcrConversion( assert(pCreateInfo->sType == VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO); - conversion = vk_alloc2(&device->vk.alloc, pAllocator, sizeof(*conversion), 8, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); + conversion = vk_object_zalloc(&device->vk, pAllocator, sizeof(*conversion), + VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION); if (!conversion) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); - memset(conversion, 0, sizeof(*conversion)); - - vk_object_base_init(&device->vk, &conversion->base, - VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION); conversion->format = anv_get_format(pCreateInfo->format); conversion->ycbcr_model = pCreateInfo->ycbcrModel; conversion->ycbcr_range = pCreateInfo->ycbcrRange; @@ -1622,6 +1618,5 @@ void anv_DestroySamplerYcbcrConversion( if (!conversion) return; - vk_object_base_finish(&conversion->base); - vk_free2(&device->vk.alloc, pAllocator, conversion); + vk_object_free(&device->vk, pAllocator, conversion); } diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c index 09e18a5f187..2cc7d5b6fa7 100644 --- a/src/intel/vulkan/anv_image.c +++ b/src/intel/vulkan/anv_image.c @@ -1278,12 +1278,11 @@ anv_image_create(VkDevice _device, anv_assert(pCreateInfo->extent.height > 0); anv_assert(pCreateInfo->extent.depth > 0); - image = vk_zalloc2(&device->vk.alloc, alloc, sizeof(*image), 8, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); + image = vk_object_zalloc(&device->vk, alloc, sizeof(*image), + VK_OBJECT_TYPE_IMAGE); if (!image) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); - vk_object_base_init(&device->vk, &image->base, VK_OBJECT_TYPE_IMAGE); image->type = pCreateInfo->imageType; image->extent = anv_sanitize_image_extent(pCreateInfo->imageType, pCreateInfo->extent); @@ -1373,8 +1372,7 @@ anv_image_create(VkDevice _device, return VK_SUCCESS; fail: - vk_object_base_finish(&image->base); - vk_free2(&device->vk.alloc, alloc, image); + vk_object_free(&device->vk, alloc, image); return r; } @@ -1517,8 +1515,7 @@ anv_DestroyImage(VkDevice _device, VkImage _image, if (private_bo) anv_device_release_bo(device, private_bo); - vk_object_base_finish(&image->base); - vk_free2(&device->vk.alloc, pAllocator, image); + vk_object_free(&device->vk, pAllocator, image); } /* We are binding AHardwareBuffer. Get a description, resolve the @@ -2678,13 +2675,11 @@ anv_CreateImageView(VkDevice _device, ANV_FROM_HANDLE(anv_image, image, pCreateInfo->image); struct anv_image_view *iview; - iview = vk_zalloc2(&device->vk.alloc, pAllocator, sizeof(*iview), 8, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); + iview = vk_object_zalloc(&device->vk, pAllocator, sizeof(*iview), + VK_OBJECT_TYPE_IMAGE_VIEW); if (iview == NULL) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); - vk_object_base_init(&device->vk, &iview->base, VK_OBJECT_TYPE_IMAGE_VIEW); - const VkImageSubresourceRange *range = &pCreateInfo->subresourceRange; assert(range->layerCount > 0); @@ -2938,8 +2933,7 @@ anv_DestroyImageView(VkDevice _device, VkImageView _iview, } } - vk_object_base_finish(&iview->base); - vk_free2(&device->vk.alloc, pAllocator, iview); + vk_object_free(&device->vk, pAllocator, iview); } @@ -2953,14 +2947,13 @@ anv_CreateBufferView(VkDevice _device, ANV_FROM_HANDLE(anv_buffer, buffer, pCreateInfo->buffer); struct anv_buffer_view *view; - view = vk_alloc2(&device->vk.alloc, pAllocator, sizeof(*view), 8, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); + view = vk_object_alloc(&device->vk, pAllocator, sizeof(*view), + VK_OBJECT_TYPE_BUFFER_VIEW); if (!view) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); /* TODO: Handle the format swizzle? */ - vk_object_base_init(&device->vk, &view->base, VK_OBJECT_TYPE_BUFFER_VIEW); view->format = anv_get_isl_format(&device->info, pCreateInfo->format, VK_IMAGE_ASPECT_COLOR_BIT, VK_IMAGE_TILING_LINEAR); @@ -3038,6 +3031,5 @@ anv_DestroyBufferView(VkDevice _device, VkBufferView bufferView, anv_state_pool_free(&device->surface_state_pool, view->writeonly_storage_surface_state); - vk_object_base_finish(&view->base); - vk_free2(&device->vk.alloc, pAllocator, view); + vk_object_free(&device->vk, pAllocator, view); } diff --git a/src/intel/vulkan/anv_pass.c b/src/intel/vulkan/anv_pass.c index a4158b81d5d..634a3a3e24e 100644 --- a/src/intel/vulkan/anv_pass.c +++ b/src/intel/vulkan/anv_pass.c @@ -328,15 +328,13 @@ VkResult anv_CreateRenderPass2( VK_MULTIALLOC_DECL(&ma, struct anv_subpass_attachment, subpass_attachments, subpass_attachment_count); - if (!vk_multialloc_alloc2(&ma, &device->vk.alloc, pAllocator, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT)) + if (!vk_object_multizalloc(&device->vk, &ma, pAllocator, + VK_OBJECT_TYPE_RENDER_PASS)) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); /* Clear the subpasses along with the parent pass. This required because * each array member of anv_subpass must be a valid pointer if not NULL. */ - memset(pass, 0, ma.size); - vk_object_base_init(&device->vk, &pass->base, VK_OBJECT_TYPE_RENDER_PASS); pass->attachment_count = pCreateInfo->attachmentCount; pass->subpass_count = pCreateInfo->subpassCount; pass->attachments = attachments; @@ -468,8 +466,7 @@ void anv_DestroyRenderPass( if (!pass) return; - vk_object_base_finish(&pass->base); - vk_free2(&device->vk.alloc, pAllocator, pass); + vk_object_free(&device->vk, pAllocator, pass); } void anv_GetRenderAreaGranularity( diff --git a/src/intel/vulkan/anv_perf.c b/src/intel/vulkan/anv_perf.c index df573017970..1c21faf9101 100644 --- a/src/intel/vulkan/anv_perf.c +++ b/src/intel/vulkan/anv_perf.c @@ -218,8 +218,8 @@ VkResult anv_AcquirePerformanceConfigurationINTEL( ANV_FROM_HANDLE(anv_device, device, _device); struct anv_performance_configuration_intel *config; - config = vk_alloc(&device->vk.alloc, sizeof(*config), 8, - VK_SYSTEM_ALLOCATION_SCOPE_DEVICE); + config = vk_object_alloc(&device->vk, NULL, sizeof(*config), + VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL); if (!config) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); @@ -228,7 +228,7 @@ VkResult anv_AcquirePerformanceConfigurationINTEL( gen_perf_load_configuration(device->physical->perf, device->fd, GEN_PERF_QUERY_GUID_MDAPI); if (!config->register_config) { - vk_free(&device->vk.alloc, config); + vk_object_free(&device->vk, NULL, config); return VK_INCOMPLETE; } @@ -237,16 +237,13 @@ VkResult anv_AcquirePerformanceConfigurationINTEL( config->register_config, NULL /* guid */); if (ret < 0) { ralloc_free(config->register_config); - vk_free(&device->vk.alloc, config); + vk_object_free(&device->vk, NULL, config); return VK_INCOMPLETE; } config->config_id = ret; } - vk_object_base_init(&device->vk, &config->base, - VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL); - *pConfiguration = anv_performance_configuration_intel_to_handle(config); return VK_SUCCESS; @@ -263,8 +260,8 @@ VkResult anv_ReleasePerformanceConfigurationINTEL( intel_ioctl(device->fd, DRM_IOCTL_I915_PERF_REMOVE_CONFIG, &config->config_id); ralloc_free(config->register_config); - vk_object_base_finish(&config->base); - vk_free(&device->vk.alloc, config); + + vk_object_free(&device->vk, NULL, config); return VK_SUCCESS; } diff --git a/src/intel/vulkan/anv_queue.c b/src/intel/vulkan/anv_queue.c index 884bd3defdb..f790291e86b 100644 --- a/src/intel/vulkan/anv_queue.c +++ b/src/intel/vulkan/anv_queue.c @@ -1465,13 +1465,11 @@ VkResult anv_CreateFence( assert(pCreateInfo->sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO); - fence = vk_zalloc2(&device->vk.alloc, pAllocator, sizeof(*fence), 8, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); + fence = vk_object_zalloc(&device->vk, pAllocator, sizeof(*fence), + VK_OBJECT_TYPE_FENCE); if (fence == NULL) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); - vk_object_base_init(&device->vk, &fence->base, VK_OBJECT_TYPE_FENCE); - if (device->physical->has_syncobj_wait) { fence->permanent.type = ANV_FENCE_TYPE_SYNCOBJ; @@ -1558,8 +1556,7 @@ void anv_DestroyFence( anv_fence_impl_cleanup(device, &fence->temporary); anv_fence_impl_cleanup(device, &fence->permanent); - vk_object_base_finish(&fence->base); - vk_free2(&device->vk.alloc, pAllocator, fence); + vk_object_free(&device->vk, pAllocator, fence); } VkResult anv_ResetFences( @@ -2228,13 +2225,11 @@ VkResult anv_CreateSemaphore( uint64_t timeline_value = 0; VkSemaphoreTypeKHR sem_type = get_semaphore_type(pCreateInfo->pNext, &timeline_value); - semaphore = vk_alloc(&device->vk.alloc, sizeof(*semaphore), 8, - VK_SYSTEM_ALLOCATION_SCOPE_DEVICE); + semaphore = vk_object_alloc(&device->vk, NULL, sizeof(*semaphore), + VK_OBJECT_TYPE_SEMAPHORE); if (semaphore == NULL) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); - vk_object_base_init(&device->vk, &semaphore->base, VK_OBJECT_TYPE_SEMAPHORE); - p_atomic_set(&semaphore->refcount, 1); const VkExportSemaphoreCreateInfo *export = @@ -2249,8 +2244,7 @@ VkResult anv_CreateSemaphore( else result = timeline_semaphore_create(device, &semaphore->permanent, timeline_value); if (result != VK_SUCCESS) { - vk_object_base_finish(&semaphore->base); - vk_free2(&device->vk.alloc, pAllocator, semaphore); + vk_object_free(&device->vk, pAllocator, semaphore); return result; } } else if (handleTypes & VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT) { @@ -2260,8 +2254,7 @@ VkResult anv_CreateSemaphore( else result = timeline_semaphore_create(device, &semaphore->permanent, timeline_value); if (result != VK_SUCCESS) { - vk_object_base_finish(&semaphore->base); - vk_free2(&device->vk.alloc, pAllocator, semaphore); + vk_object_free(&device->vk, pAllocator, semaphore); return result; } } else if (handleTypes & VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT) { @@ -2271,8 +2264,7 @@ VkResult anv_CreateSemaphore( semaphore->permanent.type = ANV_SEMAPHORE_TYPE_DRM_SYNCOBJ; semaphore->permanent.syncobj = anv_gem_syncobj_create(device, 0); if (!semaphore->permanent.syncobj) { - vk_object_base_finish(&semaphore->base); - vk_free2(&device->vk.alloc, pAllocator, semaphore); + vk_object_free(&device->vk, pAllocator, semaphore); return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); } } else { @@ -2281,8 +2273,7 @@ VkResult anv_CreateSemaphore( } } else { assert(!"Unknown handle type"); - vk_object_base_finish(&semaphore->base); - vk_free2(&device->vk.alloc, pAllocator, semaphore); + vk_object_free(&device->vk, pAllocator, semaphore); return vk_error(VK_ERROR_INVALID_EXTERNAL_HANDLE); } @@ -2356,8 +2347,7 @@ anv_semaphore_unref(struct anv_device *device, struct anv_semaphore *semaphore) anv_semaphore_impl_cleanup(device, &semaphore->temporary); anv_semaphore_impl_cleanup(device, &semaphore->permanent); - vk_object_base_finish(&semaphore->base); - vk_free(&device->vk.alloc, semaphore); + vk_object_free(&device->vk, NULL, semaphore); } void anv_DestroySemaphore( diff --git a/src/intel/vulkan/genX_query.c b/src/intel/vulkan/genX_query.c index 3ddf34eb5a3..23e3d1a9f60 100644 --- a/src/intel/vulkan/genX_query.c +++ b/src/intel/vulkan/genX_query.c @@ -161,12 +161,10 @@ VkResult genX(CreateQueryPool)( assert(!"Invalid query type"); } - if (!vk_multialloc_alloc2(&ma, &device->vk.alloc, - pAllocator, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT)) + if (!vk_object_multialloc(&device->vk, &ma, pAllocator, + VK_OBJECT_TYPE_QUERY_POOL)) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); - vk_object_base_init(&device->vk, &pool->base, VK_OBJECT_TYPE_QUERY_POOL); pool->type = pCreateInfo->queryType; pool->pipeline_statistics = pipeline_statistics; pool->stride = uint64s_per_slot * sizeof(uint64_t); @@ -255,8 +253,7 @@ void genX(DestroyQueryPool)( return; anv_device_release_bo(device, pool->bo); - vk_object_base_finish(&pool->base); - vk_free2(&device->vk.alloc, pAllocator, pool); + vk_object_free(&device->vk, pAllocator, pool); } #if GFX_VER >= 8 diff --git a/src/intel/vulkan/genX_state.c b/src/intel/vulkan/genX_state.c index 87fa690a5f7..25647c82a2b 100644 --- a/src/intel/vulkan/genX_state.c +++ b/src/intel/vulkan/genX_state.c @@ -649,12 +649,11 @@ VkResult genX(CreateSampler)( assert(pCreateInfo->sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO); - sampler = vk_zalloc2(&device->vk.alloc, pAllocator, sizeof(*sampler), 8, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); + sampler = vk_object_zalloc(&device->vk, pAllocator, sizeof(*sampler), + VK_OBJECT_TYPE_SAMPLER); if (!sampler) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); - vk_object_base_init(&device->vk, &sampler->base, VK_OBJECT_TYPE_SAMPLER); sampler->n_planes = 1; uint32_t border_color_stride = GFX_VERx10 == 75 ? 512 : 64;