Conor McCarthy : vkd3d: Convert the descriptor handle to a pointer when the descriptor table is set.
Module: vkd3d Branch: master Commit: ffbbee92470e2826a6ffb3c2674c54ce227f4889 URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=ffbbee92470e2826a6ffb3c2... Author: Conor McCarthy <cmccarthy(a)codeweavers.com> Date: Fri Dec 10 15:07:11 2021 +1000 vkd3d: Convert the descriptor handle to a pointer when the descriptor table is set. Saves a couple of conversion calls later, and more when Vulkan-backed heaps are added. Signed-off-by: Conor McCarthy <cmccarthy(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- libs/vkd3d/command.c | 6 +++--- libs/vkd3d/vkd3d_private.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libs/vkd3d/command.c b/libs/vkd3d/command.c index 37159a7..9fbde80 100644 --- a/libs/vkd3d/command.c +++ b/libs/vkd3d/command.c @@ -2605,7 +2605,7 @@ static void d3d12_command_list_prepare_descriptors(struct d3d12_command_list *li if (unbounded_offset != UINT_MAX /* Descriptors may not be set, eg. WoW. */ - && (base_descriptor = d3d12_desc_from_gpu_handle(bindings->descriptor_tables[table_index]))) + && (base_descriptor = bindings->descriptor_tables[table_index])) { heap_size = vkd3d_gpu_descriptor_allocator_range_size_from_descriptor( &device->gpu_descriptor_allocator, base_descriptor); @@ -2981,7 +2981,7 @@ static void d3d12_command_list_update_descriptors(struct d3d12_command_list *lis { if (bindings->descriptor_table_dirty_mask & ((uint64_t)1 << i)) { - if ((base_descriptor = d3d12_desc_from_gpu_handle(bindings->descriptor_tables[i]))) + if ((base_descriptor = bindings->descriptor_tables[i])) d3d12_command_list_update_descriptor_table(list, bind_point, i, base_descriptor); else WARN("Descriptor table %u is not set.\n", i); @@ -4182,7 +4182,7 @@ static void d3d12_command_list_set_descriptor_table(struct d3d12_command_list *l assert(root_signature_get_descriptor_table(root_signature, index)); assert(index < ARRAY_SIZE(bindings->descriptor_tables)); - bindings->descriptor_tables[index] = base_descriptor; + bindings->descriptor_tables[index] = d3d12_desc_from_gpu_handle(base_descriptor); bindings->descriptor_table_dirty_mask |= (uint64_t)1 << index; bindings->descriptor_table_active_mask |= (uint64_t)1 << index; } diff --git a/libs/vkd3d/vkd3d_private.h b/libs/vkd3d/vkd3d_private.h index f83fd1a..1bccb35 100644 --- a/libs/vkd3d/vkd3d_private.h +++ b/libs/vkd3d/vkd3d_private.h @@ -957,7 +957,7 @@ struct vkd3d_pipeline_bindings VkDescriptorSet descriptor_sets[VKD3D_MAX_DESCRIPTOR_SETS]; bool in_use; - D3D12_GPU_DESCRIPTOR_HANDLE descriptor_tables[D3D12_MAX_ROOT_COST]; + struct d3d12_desc *descriptor_tables[D3D12_MAX_ROOT_COST]; uint64_t descriptor_table_dirty_mask; uint64_t descriptor_table_active_mask;
participants (1)
-
Alexandre Julliard