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:
parent
572ea9da7f
commit
d23c7200a2
|
@ -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)
|
if (copy_count)
|
||||||
VK_CALL(vkUpdateDescriptorSets(device->vk_device, 0, NULL, copy_count, vk_copies));
|
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,
|
static VkDeviceSize vkd3d_get_required_texel_buffer_alignment(const struct d3d12_device *device,
|
||||||
|
|
Loading…
Reference in New Issue