diff --git a/libs/vkd3d/command.c b/libs/vkd3d/command.c index 99b8123a..845e075b 100644 --- a/libs/vkd3d/command.c +++ b/libs/vkd3d/command.c @@ -3132,9 +3132,8 @@ static void d3d12_command_list_update_descriptor_table_offsets(struct d3d12_comm static bool vk_write_descriptor_set_from_root_descriptor(struct d3d12_command_list *list, VkWriteDescriptorSet *vk_descriptor_write, const struct d3d12_root_parameter *root_parameter, - VkDescriptorSet vk_descriptor_set, const struct vkd3d_root_descriptor_info *descriptors) + VkDescriptorSet vk_descriptor_set, const struct vkd3d_root_descriptor_info *descriptor) { - const struct vkd3d_root_descriptor_info *descriptor = &descriptors[root_parameter->descriptor.packed_descriptor]; bool is_buffer, is_defined; is_buffer = descriptor->vk_descriptor_type == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER @@ -3309,7 +3308,7 @@ static void d3d12_command_list_update_root_descriptors(struct d3d12_command_list if (!vk_write_descriptor_set_from_root_descriptor(list, &descriptor_writes[descriptor_write_count], root_parameter, - descriptor_set, bindings->root_descriptors)) + descriptor_set, &bindings->root_descriptors[root_parameter_index])) continue; descriptor_write_count += 1; @@ -5164,7 +5163,7 @@ static void d3d12_command_list_set_root_descriptor(struct d3d12_command_list *li ssbo = d3d12_device_use_ssbo_root_descriptors(list->device); root_parameter = root_signature_get_root_descriptor(root_signature, index); - descriptor = &bindings->root_descriptors[root_parameter->descriptor.packed_descriptor]; + descriptor = &bindings->root_descriptors[index]; null_descriptors = list->device->device_info.robustness2_features.nullDescriptor; if (ssbo || root_parameter->parameter_type == D3D12_ROOT_PARAMETER_TYPE_CBV) diff --git a/libs/vkd3d/state.c b/libs/vkd3d/state.c index 8aeb15b5..d12d7619 100644 --- a/libs/vkd3d/state.c +++ b/libs/vkd3d/state.c @@ -482,7 +482,6 @@ static HRESULT d3d12_root_signature_init_push_constants(struct d3d12_root_signat struct vkd3d_descriptor_set_context { - uint32_t packed_descriptor_index; uint32_t binding_index; uint32_t vk_set; uint32_t vk_binding; @@ -665,9 +664,7 @@ static HRESULT d3d12_root_signature_init_root_descriptors(struct d3d12_root_sign param = &root_signature->parameters[i]; param->parameter_type = p->ParameterType; param->descriptor.binding = binding; - param->descriptor.packed_descriptor = context->packed_descriptor_index; - context->packed_descriptor_index += 1; context->binding_index += 1; context->vk_binding += 1; } @@ -821,7 +818,6 @@ static HRESULT d3d12_root_signature_init(struct d3d12_root_signature *root_signa set_layouts[context.vk_set] = root_signature->vk_sampler_descriptor_layout; root_signature->sampler_descriptor_set = context.vk_set; - context.packed_descriptor_index = 0; context.vk_binding = 0; context.vk_set += 1; } @@ -880,7 +876,6 @@ static HRESULT d3d12_root_signature_init(struct d3d12_root_signature *root_signa set_layouts[context.vk_set] = root_signature->vk_root_descriptor_layout; root_signature->root_descriptor_set = context.vk_set; - context.packed_descriptor_index = 0; context.vk_binding = 0; context.vk_set += 1; } diff --git a/libs/vkd3d/vkd3d_private.h b/libs/vkd3d/vkd3d_private.h index a5e3982b..d7b7be22 100644 --- a/libs/vkd3d/vkd3d_private.h +++ b/libs/vkd3d/vkd3d_private.h @@ -818,7 +818,6 @@ struct d3d12_root_constant struct d3d12_root_descriptor { struct vkd3d_shader_resource_binding *binding; - uint32_t packed_descriptor; }; struct d3d12_root_parameter @@ -1200,7 +1199,7 @@ struct vkd3d_pipeline_bindings uint64_t descriptor_heap_dirty_mask; /* Needed when VK_KHR_push_descriptor is not available. */ - struct vkd3d_root_descriptor_info root_descriptors[D3D12_MAX_ROOT_COST / 2]; + struct vkd3d_root_descriptor_info root_descriptors[D3D12_MAX_ROOT_COST]; uint64_t root_descriptor_dirty_mask; uint64_t root_descriptor_active_mask;