vkd3d: Always copy offset buffer descriptor info.

Offset buffer state might be the only relevant difference between two
descriptors. We won't need to copy descriptors, but the offsets must be.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
Hans-Kristian Arntzen 2020-10-30 10:19:46 +01:00
parent 572ea9da7f
commit d23c7200a2
1 changed files with 7 additions and 7 deletions

View File

@ -3514,16 +3514,16 @@ void d3d12_desc_copy(struct d3d12_desc *dst, struct d3d12_desc *src,
}
}
if (metadata.flags & VKD3D_DESCRIPTOR_FLAG_BUFFER_OFFSET)
{
const struct vkd3d_bound_buffer_range *src_buffer_ranges = src->heap->buffer_ranges.host_ptr;
struct vkd3d_bound_buffer_range *dst_buffer_ranges = dst->heap->buffer_ranges.host_ptr;
dst_buffer_ranges[dst->heap_offset] = src_buffer_ranges[src->heap_offset];
}
if (copy_count)
VK_CALL(vkUpdateDescriptorSets(device->vk_device, 0, NULL, copy_count, vk_copies));
}
if (metadata.flags & VKD3D_DESCRIPTOR_FLAG_BUFFER_OFFSET)
{
const struct vkd3d_bound_buffer_range *src_buffer_ranges = src->heap->buffer_ranges.host_ptr;
struct vkd3d_bound_buffer_range *dst_buffer_ranges = dst->heap->buffer_ranges.host_ptr;
dst_buffer_ranges[dst->heap_offset] = src_buffer_ranges[src->heap_offset];
}
}
static VkDeviceSize vkd3d_get_required_texel_buffer_alignment(const struct d3d12_device *device,