vkd3d: Remove VKD3D_DESCRIPTOR_FLAG_DEFINED.

This is redundant now since this information is carried by set_info_mask.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
Hans-Kristian Arntzen 2021-01-13 12:04:18 +01:00
parent 1bddaa0fff
commit dbbde3c6f1
2 changed files with 26 additions and 31 deletions

View File

@ -3476,8 +3476,7 @@ static void d3d12_desc_copy_single(struct d3d12_desc *dst, struct d3d12_desc *sr
{ {
needs_update = true; needs_update = true;
} }
else if ((metadata.flags & VKD3D_DESCRIPTOR_FLAG_DEFINED) != 0 && else if ((metadata.flags & VKD3D_DESCRIPTOR_FLAG_VIEW) == 0)
(metadata.flags & VKD3D_DESCRIPTOR_FLAG_VIEW) == 0)
{ {
needs_update = needs_update =
dst->info.buffer.offset != src->info.buffer.offset || dst->info.buffer.offset != src->info.buffer.offset ||
@ -3491,26 +3490,23 @@ static void d3d12_desc_copy_single(struct d3d12_desc *dst, struct d3d12_desc *sr
dst_sets = dst->heap->vk_descriptor_sets; dst_sets = dst->heap->vk_descriptor_sets;
dst->metadata = metadata; dst->metadata = metadata;
dst->info = src->info; dst->info = src->info;
set_mask = metadata.set_info_mask;
if (metadata.flags & VKD3D_DESCRIPTOR_FLAG_DEFINED) while (set_mask)
{ {
set_mask = metadata.set_info_mask; set_info_index = vkd3d_bitmask_iter32(&set_mask);
while (set_mask) binding = vkd3d_bindless_state_binding_from_info_index(&device->bindless_state, set_info_index);
{
set_info_index = vkd3d_bitmask_iter32(&set_mask);
binding = vkd3d_bindless_state_binding_from_info_index(&device->bindless_state, set_info_index);
vk_copy = &vk_copies[copy_count++]; vk_copy = &vk_copies[copy_count++];
vk_copy->sType = VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET; vk_copy->sType = VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET;
vk_copy->pNext = NULL; vk_copy->pNext = NULL;
vk_copy->srcSet = src_sets[binding.set]; vk_copy->srcSet = src_sets[binding.set];
vk_copy->srcBinding = binding.binding; vk_copy->srcBinding = binding.binding;
vk_copy->srcArrayElement = src->heap_offset; vk_copy->srcArrayElement = src->heap_offset;
vk_copy->dstSet = dst_sets[binding.set]; vk_copy->dstSet = dst_sets[binding.set];
vk_copy->dstBinding = binding.binding; vk_copy->dstBinding = binding.binding;
vk_copy->dstArrayElement = dst->heap_offset; vk_copy->dstArrayElement = dst->heap_offset;
vk_copy->descriptorCount = 1; vk_copy->descriptorCount = 1;
}
} }
if (metadata.flags & VKD3D_DESCRIPTOR_FLAG_UAV_COUNTER) if (metadata.flags & VKD3D_DESCRIPTOR_FLAG_UAV_COUNTER)
@ -4068,7 +4064,7 @@ void d3d12_desc_create_cbv(struct d3d12_desc *descriptor,
descriptor->metadata.cookie = resource ? resource->cookie : 0; descriptor->metadata.cookie = resource ? resource->cookie : 0;
descriptor->metadata.set_info_mask = 1u << info_index; descriptor->metadata.set_info_mask = 1u << info_index;
descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_DEFINED; descriptor->metadata.flags = 0;
descriptor->info.buffer = descriptor_info.buffer; descriptor->info.buffer = descriptor_info.buffer;
vkd3d_init_write_descriptor_set(&vk_write, descriptor, vkd3d_init_write_descriptor_set(&vk_write, descriptor,
@ -4264,7 +4260,7 @@ static void vkd3d_create_buffer_srv(struct d3d12_desc *descriptor,
descriptor->info.buffer = descriptor_info.buffer; descriptor->info.buffer = descriptor_info.buffer;
descriptor->metadata.cookie = resource ? resource->cookie : 0; descriptor->metadata.cookie = resource ? resource->cookie : 0;
descriptor->metadata.set_info_mask = 1u << info_index; descriptor->metadata.set_info_mask = 1u << info_index;
descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_DEFINED; descriptor->metadata.flags = 0;
if (device->bindless_state.flags & VKD3D_SSBO_OFFSET_BUFFER) if (device->bindless_state.flags & VKD3D_SSBO_OFFSET_BUFFER)
descriptor->metadata.flags |= VKD3D_DESCRIPTOR_FLAG_BUFFER_OFFSET; descriptor->metadata.flags |= VKD3D_DESCRIPTOR_FLAG_BUFFER_OFFSET;
@ -4300,7 +4296,7 @@ static void vkd3d_create_buffer_srv(struct d3d12_desc *descriptor,
descriptor->info.view = view; descriptor->info.view = view;
descriptor->metadata.cookie = view ? view->cookie : 0; descriptor->metadata.cookie = view ? view->cookie : 0;
descriptor->metadata.set_info_mask = 1u << info_index; descriptor->metadata.set_info_mask = 1u << info_index;
descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_DEFINED | VKD3D_DESCRIPTOR_FLAG_VIEW; descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_VIEW;
if (device->bindless_state.flags & VKD3D_TYPED_OFFSET_BUFFER) if (device->bindless_state.flags & VKD3D_TYPED_OFFSET_BUFFER)
descriptor->metadata.flags |= VKD3D_DESCRIPTOR_FLAG_BUFFER_OFFSET; descriptor->metadata.flags |= VKD3D_DESCRIPTOR_FLAG_BUFFER_OFFSET;
@ -4473,7 +4469,7 @@ static void vkd3d_create_texture_srv(struct d3d12_desc *descriptor,
descriptor->info.view = view; descriptor->info.view = view;
descriptor->metadata.cookie = view ? view->cookie : 0; descriptor->metadata.cookie = view ? view->cookie : 0;
descriptor->metadata.set_info_mask = 1u << info_index; descriptor->metadata.set_info_mask = 1u << info_index;
descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_DEFINED | VKD3D_DESCRIPTOR_FLAG_VIEW; descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_VIEW;
vkd3d_init_write_descriptor_set(&vk_write, descriptor, vkd3d_init_write_descriptor_set(&vk_write, descriptor,
vkd3d_bindless_state_binding_from_info_index(&device->bindless_state, info_index), vkd3d_bindless_state_binding_from_info_index(&device->bindless_state, info_index),
@ -4588,7 +4584,7 @@ static void vkd3d_create_buffer_uav(struct d3d12_desc *descriptor, struct d3d12_
descriptor->info.buffer = *buffer_info; descriptor->info.buffer = *buffer_info;
descriptor->metadata.cookie = resource ? resource->cookie : 0; descriptor->metadata.cookie = resource ? resource->cookie : 0;
descriptor->metadata.set_info_mask = 1u << info_index; descriptor->metadata.set_info_mask = 1u << info_index;
descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_DEFINED | VKD3D_DESCRIPTOR_FLAG_UAV_COUNTER; descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_UAV_COUNTER;
if (device->bindless_state.flags & VKD3D_SSBO_OFFSET_BUFFER) if (device->bindless_state.flags & VKD3D_SSBO_OFFSET_BUFFER)
descriptor->metadata.flags |= VKD3D_DESCRIPTOR_FLAG_BUFFER_OFFSET; descriptor->metadata.flags |= VKD3D_DESCRIPTOR_FLAG_BUFFER_OFFSET;
@ -4622,7 +4618,7 @@ static void vkd3d_create_buffer_uav(struct d3d12_desc *descriptor, struct d3d12_
descriptor->info.view = view; descriptor->info.view = view;
descriptor->metadata.cookie = view ? view->cookie : 0; descriptor->metadata.cookie = view ? view->cookie : 0;
descriptor->metadata.set_info_mask = 1u << info_index; descriptor->metadata.set_info_mask = 1u << info_index;
descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_DEFINED | VKD3D_DESCRIPTOR_FLAG_VIEW | VKD3D_DESCRIPTOR_FLAG_UAV_COUNTER; descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_VIEW | VKD3D_DESCRIPTOR_FLAG_UAV_COUNTER;
if (device->bindless_state.flags & VKD3D_TYPED_OFFSET_BUFFER) if (device->bindless_state.flags & VKD3D_TYPED_OFFSET_BUFFER)
descriptor->metadata.flags |= VKD3D_DESCRIPTOR_FLAG_BUFFER_OFFSET; descriptor->metadata.flags |= VKD3D_DESCRIPTOR_FLAG_BUFFER_OFFSET;
@ -4807,7 +4803,7 @@ static void vkd3d_create_texture_uav(struct d3d12_desc *descriptor,
descriptor->info.view = view; descriptor->info.view = view;
descriptor->metadata.cookie = view ? view->cookie : 0; descriptor->metadata.cookie = view ? view->cookie : 0;
descriptor->metadata.set_info_mask = 1u << info_index; descriptor->metadata.set_info_mask = 1u << info_index;
descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_DEFINED | VKD3D_DESCRIPTOR_FLAG_VIEW; descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_VIEW;
vkd3d_init_write_descriptor_set(&vk_write, descriptor, vkd3d_init_write_descriptor_set(&vk_write, descriptor,
vkd3d_bindless_state_binding_from_info_index(&device->bindless_state, info_index), vkd3d_bindless_state_binding_from_info_index(&device->bindless_state, info_index),
@ -5115,7 +5111,7 @@ void d3d12_desc_create_sampler(struct d3d12_desc *sampler,
sampler->info.view = view; sampler->info.view = view;
sampler->metadata.cookie = view->cookie; sampler->metadata.cookie = view->cookie;
sampler->metadata.set_info_mask = 1u << info_index; sampler->metadata.set_info_mask = 1u << info_index;
sampler->metadata.flags = VKD3D_DESCRIPTOR_FLAG_DEFINED | VKD3D_DESCRIPTOR_FLAG_VIEW; sampler->metadata.flags = VKD3D_DESCRIPTOR_FLAG_VIEW;
descriptor_info.image.sampler = view->vk_sampler; descriptor_info.image.sampler = view->vk_sampler;
descriptor_info.image.imageView = VK_NULL_HANDLE; descriptor_info.image.imageView = VK_NULL_HANDLE;

View File

@ -633,10 +633,9 @@ bool vkd3d_create_texture_view(struct d3d12_device *device,
enum vkd3d_descriptor_flag enum vkd3d_descriptor_flag
{ {
VKD3D_DESCRIPTOR_FLAG_DEFINED = (1 << 0), VKD3D_DESCRIPTOR_FLAG_VIEW = (1 << 0),
VKD3D_DESCRIPTOR_FLAG_VIEW = (1 << 1), VKD3D_DESCRIPTOR_FLAG_UAV_COUNTER = (1 << 1),
VKD3D_DESCRIPTOR_FLAG_UAV_COUNTER = (1 << 2), VKD3D_DESCRIPTOR_FLAG_BUFFER_OFFSET = (1 << 2),
VKD3D_DESCRIPTOR_FLAG_BUFFER_OFFSET = (1 << 3),
}; };
struct vkd3d_descriptor_binding struct vkd3d_descriptor_binding