diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index f0622e10b40..f0f2cd44326 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -428,7 +428,7 @@ radv_destroy_cmd_buffer(struct radv_cmd_buffer *cmd_buffer) struct radv_descriptor_set_header *set = &cmd_buffer->descriptors[i].push_set.set; free(set->mapped_ptr); if (set->layout) - radv_descriptor_set_layout_unref(cmd_buffer->device, set->layout); + vk_descriptor_set_layout_unref(&cmd_buffer->device->vk, &set->layout->vk); vk_object_base_finish(&set->base); } @@ -5294,8 +5294,8 @@ radv_init_push_descriptor_set(struct radv_cmd_buffer *cmd_buffer, struct radv_de if (set->header.layout != layout) { if (set->header.layout) - radv_descriptor_set_layout_unref(cmd_buffer->device, set->header.layout); - radv_descriptor_set_layout_ref(layout); + vk_descriptor_set_layout_unref(&cmd_buffer->device->vk, &set->header.layout->vk); + vk_descriptor_set_layout_ref(&layout->vk); set->header.layout = layout; } diff --git a/src/amd/vulkan/radv_descriptor_set.c b/src/amd/vulkan/radv_descriptor_set.c index d71de46003d..8153498e4c4 100644 --- a/src/amd/vulkan/radv_descriptor_set.c +++ b/src/amd/vulkan/radv_descriptor_set.c @@ -107,15 +107,6 @@ radv_mutable_descriptor_type_size_alignment(const VkMutableDescriptorTypeListVAL return true; } -void -radv_descriptor_set_layout_destroy(struct radv_device *device, - struct radv_descriptor_set_layout *set_layout) -{ - assert(set_layout->ref_cnt == 0); - vk_object_base_finish(&set_layout->base); - vk_free2(&device->vk.alloc, NULL, set_layout); -} - VKAPI_ATTR VkResult VKAPI_CALL radv_CreateDescriptorSetLayout(VkDevice _device, const VkDescriptorSetLayoutCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, @@ -166,13 +157,10 @@ radv_CreateDescriptorSetLayout(VkDevice _device, const VkDescriptorSetLayoutCrea * they are reference counted and may not be destroyed when vkDestroyDescriptorSetLayout is * called. */ - set_layout = - vk_zalloc(&device->vk.alloc, size, 8, VK_SYSTEM_ALLOCATION_SCOPE_DEVICE); + set_layout = vk_descriptor_set_layout_zalloc(&device->vk, size); if (!set_layout) return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY); - vk_object_base_init(&device->vk, &set_layout->base, VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT); - set_layout->flags = pCreateInfo->flags; set_layout->layout_size = size; @@ -197,11 +185,10 @@ radv_CreateDescriptorSetLayout(VkDevice _device, const VkDescriptorSetLayoutCrea VkResult result = vk_create_sorted_bindings(pCreateInfo->pBindings, pCreateInfo->bindingCount, &bindings); if (result != VK_SUCCESS) { - radv_descriptor_set_layout_destroy(device, set_layout); + vk_descriptor_set_layout_unref(&device->vk, &set_layout->vk); return vk_error(device, result); } - set_layout->ref_cnt = 1; set_layout->binding_count = num_bindings; set_layout->shader_stages = 0; set_layout->dynamic_shader_stages = 0; @@ -365,19 +352,6 @@ radv_CreateDescriptorSetLayout(VkDevice _device, const VkDescriptorSetLayoutCrea return VK_SUCCESS; } -VKAPI_ATTR void VKAPI_CALL -radv_DestroyDescriptorSetLayout(VkDevice _device, VkDescriptorSetLayout _set_layout, - const VkAllocationCallbacks *pAllocator) -{ - RADV_FROM_HANDLE(radv_device, device, _device); - RADV_FROM_HANDLE(radv_descriptor_set_layout, set_layout, _set_layout); - - if (!set_layout) - return; - - radv_descriptor_set_layout_unref(device, set_layout); -} - VKAPI_ATTR void VKAPI_CALL radv_GetDescriptorSetLayoutSupport(VkDevice device, const VkDescriptorSetLayoutCreateInfo *pCreateInfo, @@ -517,7 +491,7 @@ radv_pipeline_layout_add_set(struct radv_pipeline_layout *layout, uint32_t set_i layout->num_sets = MAX2(set_idx + 1, layout->num_sets); layout->set[set_idx].layout = set_layout; - radv_descriptor_set_layout_ref(set_layout); + vk_descriptor_set_layout_ref(&set_layout->vk); for (uint32_t b = 0; b < set_layout->binding_count; b++) { dynamic_offset_count += set_layout->binding[b].array_size * set_layout->binding[b].dynamic_offset_count; @@ -560,7 +534,7 @@ radv_pipeline_layout_finish(struct radv_device *device, struct radv_pipeline_lay if (!layout->set[i].layout) continue; - radv_descriptor_set_layout_unref(device, layout->set[i].layout); + vk_descriptor_set_layout_unref(&device->vk, &layout->set[i].layout->vk); } vk_object_base_finish(&layout->base); @@ -750,7 +724,7 @@ radv_descriptor_set_create(struct radv_device *device, struct radv_descriptor_po } pool->entry_count++; - radv_descriptor_set_layout_ref(layout); + vk_descriptor_set_layout_ref(&layout->vk); *out_set = set; return VK_SUCCESS; } @@ -759,7 +733,7 @@ static void radv_descriptor_set_destroy(struct radv_device *device, struct radv_descriptor_pool *pool, struct radv_descriptor_set *set, bool free_bo) { - radv_descriptor_set_layout_unref(device, set->header.layout); + vk_descriptor_set_layout_unref(&device->vk, &set->header.layout->vk); if (pool->host_memory_base) return; diff --git a/src/amd/vulkan/radv_descriptor_set.h b/src/amd/vulkan/radv_descriptor_set.h index aaee6eacbf2..fcab5f1cd87 100644 --- a/src/amd/vulkan/radv_descriptor_set.h +++ b/src/amd/vulkan/radv_descriptor_set.h @@ -26,6 +26,7 @@ #include "radv_constants.h" +#include "vulkan/runtime/vk_descriptor_set_layout.h" #include "vulkan/runtime/vk_object.h" #include @@ -51,10 +52,7 @@ struct radv_descriptor_set_binding_layout { }; struct radv_descriptor_set_layout { - struct vk_object_base base; - - /* Descriptor set layouts can be destroyed at almost any time */ - uint32_t ref_cnt; + struct vk_descriptor_set_layout vk; /* Everything below is hashed and shouldn't contain any pointers. Be careful when modifying this * structure. diff --git a/src/amd/vulkan/radv_device_generated_commands.c b/src/amd/vulkan/radv_device_generated_commands.c index b0b7d88495a..8d402b39621 100644 --- a/src/amd/vulkan/radv_device_generated_commands.c +++ b/src/amd/vulkan/radv_device_generated_commands.c @@ -914,9 +914,9 @@ radv_device_finish_dgc_prepare_state(struct radv_device *device) &device->meta_state.alloc); radv_DestroyPipelineLayout(radv_device_to_handle(device), device->meta_state.dgc_prepare.p_layout, &device->meta_state.alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), - device->meta_state.dgc_prepare.ds_layout, - &device->meta_state.alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout(radv_device_to_handle(device), + device->meta_state.dgc_prepare.ds_layout, + &device->meta_state.alloc); } VkResult diff --git a/src/amd/vulkan/radv_meta_blit.c b/src/amd/vulkan/radv_meta_blit.c index be419bddc02..c07d86f242c 100644 --- a/src/amd/vulkan/radv_meta_blit.c +++ b/src/amd/vulkan/radv_meta_blit.c @@ -647,8 +647,8 @@ radv_device_finish_meta_blit_state(struct radv_device *device) radv_DestroyPipelineLayout(radv_device_to_handle(device), state->blit.pipeline_layout, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), state->blit.ds_layout, - &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout(radv_device_to_handle(device), + state->blit.ds_layout, &state->alloc); } static VkResult diff --git a/src/amd/vulkan/radv_meta_blit2d.c b/src/amd/vulkan/radv_meta_blit2d.c index f8bc5580450..7580e6b0fd2 100644 --- a/src/amd/vulkan/radv_meta_blit2d.c +++ b/src/amd/vulkan/radv_meta_blit2d.c @@ -601,9 +601,9 @@ radv_device_finish_meta_blit2d_state(struct radv_device *device) for (unsigned src = 0; src < BLIT2D_NUM_SRC_TYPES; src++) { radv_DestroyPipelineLayout(radv_device_to_handle(device), state->blit2d[log2_samples].p_layouts[src], &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), - state->blit2d[log2_samples].ds_layouts[src], - &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout( + radv_device_to_handle(device), state->blit2d[log2_samples].ds_layouts[src], + &state->alloc); for (unsigned j = 0; j < NUM_META_FS_KEYS; ++j) { radv_DestroyPipeline(radv_device_to_handle(device), diff --git a/src/amd/vulkan/radv_meta_bufimage.c b/src/amd/vulkan/radv_meta_bufimage.c index df14fe7cbf8..bccfaf0e29e 100644 --- a/src/amd/vulkan/radv_meta_bufimage.c +++ b/src/amd/vulkan/radv_meta_bufimage.c @@ -198,8 +198,8 @@ radv_device_finish_meta_itob_state(struct radv_device *device) radv_DestroyPipelineLayout(radv_device_to_handle(device), state->itob.img_p_layout, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), state->itob.img_ds_layout, - &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout(radv_device_to_handle(device), + state->itob.img_ds_layout, &state->alloc); radv_DestroyPipeline(radv_device_to_handle(device), state->itob.pipeline, &state->alloc); radv_DestroyPipeline(radv_device_to_handle(device), state->itob.pipeline_3d, &state->alloc); } @@ -374,8 +374,8 @@ radv_device_finish_meta_btoi_state(struct radv_device *device) radv_DestroyPipelineLayout(radv_device_to_handle(device), state->btoi.img_p_layout, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), state->btoi.img_ds_layout, - &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout(radv_device_to_handle(device), + state->btoi.img_ds_layout, &state->alloc); radv_DestroyPipeline(radv_device_to_handle(device), state->btoi.pipeline, &state->alloc); radv_DestroyPipeline(radv_device_to_handle(device), state->btoi.pipeline_3d, &state->alloc); } @@ -523,8 +523,8 @@ radv_device_finish_meta_btoi_r32g32b32_state(struct radv_device *device) radv_DestroyPipelineLayout(radv_device_to_handle(device), state->btoi_r32g32b32.img_p_layout, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), - state->btoi_r32g32b32.img_ds_layout, &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout( + radv_device_to_handle(device), state->btoi_r32g32b32.img_ds_layout, &state->alloc); radv_DestroyPipeline(radv_device_to_handle(device), state->btoi_r32g32b32.pipeline, &state->alloc); } @@ -718,8 +718,8 @@ radv_device_finish_meta_itoi_state(struct radv_device *device) radv_DestroyPipelineLayout(radv_device_to_handle(device), state->itoi.img_p_layout, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), state->itoi.img_ds_layout, - &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout(radv_device_to_handle(device), + state->itoi.img_ds_layout, &state->alloc); for (uint32_t i = 0; i < MAX_SAMPLES_LOG2; ++i) { radv_DestroyPipeline(radv_device_to_handle(device), state->itoi.pipeline[i], &state->alloc); @@ -878,8 +878,8 @@ radv_device_finish_meta_itoi_r32g32b32_state(struct radv_device *device) radv_DestroyPipelineLayout(radv_device_to_handle(device), state->itoi_r32g32b32.img_p_layout, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), - state->itoi_r32g32b32.img_ds_layout, &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout( + radv_device_to_handle(device), state->itoi_r32g32b32.img_ds_layout, &state->alloc); radv_DestroyPipeline(radv_device_to_handle(device), state->itoi_r32g32b32.pipeline, &state->alloc); } @@ -1032,8 +1032,8 @@ radv_device_finish_meta_cleari_state(struct radv_device *device) radv_DestroyPipelineLayout(radv_device_to_handle(device), state->cleari.img_p_layout, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), state->cleari.img_ds_layout, - &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout(radv_device_to_handle(device), + state->cleari.img_ds_layout, &state->alloc); for (uint32_t i = 0; i < MAX_SAMPLES_LOG2; ++i) { radv_DestroyPipeline(radv_device_to_handle(device), state->cleari.pipeline[i], &state->alloc); @@ -1149,8 +1149,8 @@ radv_device_finish_meta_cleari_r32g32b32_state(struct radv_device *device) radv_DestroyPipelineLayout(radv_device_to_handle(device), state->cleari_r32g32b32.img_p_layout, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), - state->cleari_r32g32b32.img_ds_layout, &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout( + radv_device_to_handle(device), state->cleari_r32g32b32.img_ds_layout, &state->alloc); radv_DestroyPipeline(radv_device_to_handle(device), state->cleari_r32g32b32.pipeline, &state->alloc); } diff --git a/src/amd/vulkan/radv_meta_clear.c b/src/amd/vulkan/radv_meta_clear.c index d909e28ace9..e0e7c82363b 100644 --- a/src/amd/vulkan/radv_meta_clear.c +++ b/src/amd/vulkan/radv_meta_clear.c @@ -245,8 +245,8 @@ finish_meta_clear_htile_mask_state(struct radv_device *device) &state->alloc); radv_DestroyPipelineLayout(radv_device_to_handle(device), state->clear_htile_mask_p_layout, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), state->clear_htile_mask_ds_layout, - &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout( + radv_device_to_handle(device), state->clear_htile_mask_ds_layout, &state->alloc); } static void @@ -260,8 +260,8 @@ finish_meta_clear_dcc_comp_to_single_state(struct radv_device *device) } radv_DestroyPipelineLayout(radv_device_to_handle(device), state->clear_dcc_comp_to_single_p_layout, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), state->clear_dcc_comp_to_single_ds_layout, - &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout( + radv_device_to_handle(device), state->clear_dcc_comp_to_single_ds_layout, &state->alloc); } void diff --git a/src/amd/vulkan/radv_meta_copy_vrs_htile.c b/src/amd/vulkan/radv_meta_copy_vrs_htile.c index 2793aeb8c93..871d1c5bc6e 100644 --- a/src/amd/vulkan/radv_meta_copy_vrs_htile.c +++ b/src/amd/vulkan/radv_meta_copy_vrs_htile.c @@ -37,8 +37,8 @@ radv_device_finish_meta_copy_vrs_htile_state(struct radv_device *device) &state->alloc); radv_DestroyPipelineLayout(radv_device_to_handle(device), state->copy_vrs_htile_p_layout, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), state->copy_vrs_htile_ds_layout, - &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout( + radv_device_to_handle(device), state->copy_vrs_htile_ds_layout, &state->alloc); } static nir_shader * diff --git a/src/amd/vulkan/radv_meta_dcc_retile.c b/src/amd/vulkan/radv_meta_dcc_retile.c index 8a79393c495..1f4aca28355 100644 --- a/src/amd/vulkan/radv_meta_dcc_retile.c +++ b/src/amd/vulkan/radv_meta_dcc_retile.c @@ -91,8 +91,8 @@ radv_device_finish_meta_dcc_retile_state(struct radv_device *device) } radv_DestroyPipelineLayout(radv_device_to_handle(device), state->dcc_retile.p_layout, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), state->dcc_retile.ds_layout, - &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout(radv_device_to_handle(device), + state->dcc_retile.ds_layout, &state->alloc); /* Reset for next finish. */ memset(&state->dcc_retile, 0, sizeof(state->dcc_retile)); diff --git a/src/amd/vulkan/radv_meta_decompress.c b/src/amd/vulkan/radv_meta_decompress.c index 97d2ce5d501..d72346e8239 100644 --- a/src/amd/vulkan/radv_meta_decompress.c +++ b/src/amd/vulkan/radv_meta_decompress.c @@ -320,8 +320,8 @@ radv_device_finish_meta_depth_decomp_state(struct radv_device *device) state->expand_depth_stencil_compute_pipeline, &state->alloc); radv_DestroyPipelineLayout(radv_device_to_handle(device), state->expand_depth_stencil_compute_p_layout, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), - state->expand_depth_stencil_compute_ds_layout, &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout( + radv_device_to_handle(device), state->expand_depth_stencil_compute_ds_layout, &state->alloc); } VkResult diff --git a/src/amd/vulkan/radv_meta_etc_decode.c b/src/amd/vulkan/radv_meta_etc_decode.c index 4ce0de464d7..89b3b4f4cce 100644 --- a/src/amd/vulkan/radv_meta_etc_decode.c +++ b/src/amd/vulkan/radv_meta_etc_decode.c @@ -635,8 +635,8 @@ radv_device_finish_meta_etc_decode_state(struct radv_device *device) radv_DestroyPipeline(radv_device_to_handle(device), state->etc_decode.pipeline, &state->alloc); radv_DestroyPipelineLayout(radv_device_to_handle(device), state->etc_decode.p_layout, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), state->etc_decode.ds_layout, - &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout(radv_device_to_handle(device), + state->etc_decode.ds_layout, &state->alloc); } static VkPipeline diff --git a/src/amd/vulkan/radv_meta_fast_clear.c b/src/amd/vulkan/radv_meta_fast_clear.c index 4a62d0f7ed7..d901fbd9473 100644 --- a/src/amd/vulkan/radv_meta_fast_clear.c +++ b/src/amd/vulkan/radv_meta_fast_clear.c @@ -405,9 +405,9 @@ radv_device_finish_meta_fast_clear_flush_state(struct radv_device *device) radv_DestroyPipelineLayout(radv_device_to_handle(device), state->fast_clear_flush.dcc_decompress_compute_p_layout, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), - state->fast_clear_flush.dcc_decompress_compute_ds_layout, - &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout( + radv_device_to_handle(device), state->fast_clear_flush.dcc_decompress_compute_ds_layout, + &state->alloc); } static VkResult diff --git a/src/amd/vulkan/radv_meta_fmask_copy.c b/src/amd/vulkan/radv_meta_fmask_copy.c index a2814453bb4..a13f3ac43c3 100644 --- a/src/amd/vulkan/radv_meta_fmask_copy.c +++ b/src/amd/vulkan/radv_meta_fmask_copy.c @@ -132,8 +132,8 @@ radv_device_finish_meta_fmask_copy_state(struct radv_device *device) radv_DestroyPipelineLayout(radv_device_to_handle(device), state->fmask_copy.p_layout, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), state->fmask_copy.ds_layout, - &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout(radv_device_to_handle(device), + state->fmask_copy.ds_layout, &state->alloc); for (uint32_t i = 0; i < MAX_SAMPLES_LOG2; ++i) { radv_DestroyPipeline(radv_device_to_handle(device), state->fmask_copy.pipeline[i], &state->alloc); diff --git a/src/amd/vulkan/radv_meta_fmask_expand.c b/src/amd/vulkan/radv_meta_fmask_expand.c index d45fcc9293c..f2e11d0873c 100644 --- a/src/amd/vulkan/radv_meta_fmask_expand.c +++ b/src/amd/vulkan/radv_meta_fmask_expand.c @@ -178,8 +178,8 @@ radv_device_finish_meta_fmask_expand_state(struct radv_device *device) radv_DestroyPipelineLayout(radv_device_to_handle(device), state->fmask_expand.p_layout, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), state->fmask_expand.ds_layout, - &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout( + radv_device_to_handle(device), state->fmask_expand.ds_layout, &state->alloc); } static VkResult diff --git a/src/amd/vulkan/radv_meta_resolve_cs.c b/src/amd/vulkan/radv_meta_resolve_cs.c index f6d924b6d84..8bcaec767f1 100644 --- a/src/amd/vulkan/radv_meta_resolve_cs.c +++ b/src/amd/vulkan/radv_meta_resolve_cs.c @@ -474,8 +474,8 @@ radv_device_finish_meta_resolve_compute_state(struct radv_device *device) radv_DestroyPipeline(radv_device_to_handle(device), state->resolve_compute.stencil_zero_pipeline, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), state->resolve_compute.ds_layout, - &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout( + radv_device_to_handle(device), state->resolve_compute.ds_layout, &state->alloc); radv_DestroyPipelineLayout(radv_device_to_handle(device), state->resolve_compute.p_layout, &state->alloc); } diff --git a/src/amd/vulkan/radv_meta_resolve_fs.c b/src/amd/vulkan/radv_meta_resolve_fs.c index c58eaaf131e..59c24b83be1 100644 --- a/src/amd/vulkan/radv_meta_resolve_fs.c +++ b/src/amd/vulkan/radv_meta_resolve_fs.c @@ -601,8 +601,8 @@ radv_device_finish_meta_resolve_fragment_state(struct radv_device *device) radv_DestroyPipeline(radv_device_to_handle(device), state->resolve_fragment.stencil_zero_pipeline, &state->alloc); - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), state->resolve_fragment.ds_layout, - &state->alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout( + radv_device_to_handle(device), state->resolve_fragment.ds_layout, &state->alloc); radv_DestroyPipelineLayout(radv_device_to_handle(device), state->resolve_fragment.p_layout, &state->alloc); } diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index f2b1fbf7a04..caf2bbadab0 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -1047,25 +1047,6 @@ struct radv_descriptor_update_template { struct radv_descriptor_update_template_entry entry[0]; }; -void radv_descriptor_set_layout_destroy(struct radv_device *device, - struct radv_descriptor_set_layout *set_layout); - -static inline void -radv_descriptor_set_layout_ref(struct radv_descriptor_set_layout *set_layout) -{ - assert(set_layout && set_layout->ref_cnt >= 1); - p_atomic_inc(&set_layout->ref_cnt); -} - -static inline void -radv_descriptor_set_layout_unref(struct radv_device *device, - struct radv_descriptor_set_layout *set_layout) -{ - assert(set_layout && set_layout->ref_cnt >= 1); - if (p_atomic_dec_zero(&set_layout->ref_cnt)) - radv_descriptor_set_layout_destroy(device, set_layout); -} - struct radv_buffer { struct vk_buffer vk; @@ -3333,8 +3314,7 @@ VK_DEFINE_NONDISP_HANDLE_CASTS(radv_descriptor_pool, base, VkDescriptorPool, VK_OBJECT_TYPE_DESCRIPTOR_POOL) VK_DEFINE_NONDISP_HANDLE_CASTS(radv_descriptor_set, header.base, VkDescriptorSet, VK_OBJECT_TYPE_DESCRIPTOR_SET) -VK_DEFINE_NONDISP_HANDLE_CASTS(radv_descriptor_set_layout, base, - VkDescriptorSetLayout, +VK_DEFINE_NONDISP_HANDLE_CASTS(radv_descriptor_set_layout, vk.base, VkDescriptorSetLayout, VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT) VK_DEFINE_NONDISP_HANDLE_CASTS(radv_descriptor_update_template, base, VkDescriptorUpdateTemplate, diff --git a/src/amd/vulkan/radv_query.c b/src/amd/vulkan/radv_query.c index 4ad698009ce..229a640d295 100644 --- a/src/amd/vulkan/radv_query.c +++ b/src/amd/vulkan/radv_query.c @@ -958,9 +958,9 @@ radv_device_finish_meta_query_state(struct radv_device *device) &device->meta_state.alloc); if (device->meta_state.query.ds_layout) - radv_DestroyDescriptorSetLayout(radv_device_to_handle(device), - device->meta_state.query.ds_layout, - &device->meta_state.alloc); + device->vk.dispatch_table.DestroyDescriptorSetLayout(radv_device_to_handle(device), + device->meta_state.query.ds_layout, + &device->meta_state.alloc); } static void