vkd3d: Fix copies between footprint and DS aspects.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
parent
fa1d82e141
commit
a3267ba8e5
|
@ -6059,22 +6059,12 @@ static void STDMETHODCALLTYPE d3d12_command_list_CopyTextureRegion(d3d12_command
|
||||||
assert(d3d12_resource_is_texture(src_resource));
|
assert(d3d12_resource_is_texture(src_resource));
|
||||||
|
|
||||||
if (!(dst_format = vkd3d_format_from_d3d12_resource_desc(list->device,
|
if (!(dst_format = vkd3d_format_from_d3d12_resource_desc(list->device,
|
||||||
&src_resource->desc, dst->PlacedFootprint.Footprint.Format)))
|
&src_resource->desc, DXGI_FORMAT_UNKNOWN)))
|
||||||
{
|
{
|
||||||
WARN("Invalid format %#x.\n", dst->PlacedFootprint.Footprint.Format);
|
WARN("Invalid format %#x.\n", dst->PlacedFootprint.Footprint.Format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dst_format->is_emulated)
|
|
||||||
{
|
|
||||||
FIXME("Format %#x is not supported yet.\n", dst_format->dxgi_format);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((dst_format->vk_aspect_mask & VK_IMAGE_ASPECT_DEPTH_BIT)
|
|
||||||
&& (dst_format->vk_aspect_mask & VK_IMAGE_ASPECT_STENCIL_BIT))
|
|
||||||
FIXME("Destination depth-stencil format %#x not fully supported yet.\n", dst_format->dxgi_format);
|
|
||||||
|
|
||||||
vk_image_buffer_copy_from_d3d12(&buffer_image_copy, &dst->PlacedFootprint,
|
vk_image_buffer_copy_from_d3d12(&buffer_image_copy, &dst->PlacedFootprint,
|
||||||
src->SubresourceIndex, &src_resource->desc, dst_format, src_box, dst_x, dst_y, dst_z);
|
src->SubresourceIndex, &src_resource->desc, dst_format, src_box, dst_x, dst_y, dst_z);
|
||||||
buffer_image_copy.bufferOffset += dst_resource->mem.offset;
|
buffer_image_copy.bufferOffset += dst_resource->mem.offset;
|
||||||
|
@ -6101,18 +6091,12 @@ static void STDMETHODCALLTYPE d3d12_command_list_CopyTextureRegion(d3d12_command
|
||||||
assert(d3d12_resource_is_buffer(src_resource));
|
assert(d3d12_resource_is_buffer(src_resource));
|
||||||
|
|
||||||
if (!(src_format = vkd3d_format_from_d3d12_resource_desc(list->device,
|
if (!(src_format = vkd3d_format_from_d3d12_resource_desc(list->device,
|
||||||
&dst_resource->desc, src->PlacedFootprint.Footprint.Format)))
|
&dst_resource->desc, DXGI_FORMAT_UNKNOWN)))
|
||||||
{
|
{
|
||||||
WARN("Invalid format %#x.\n", src->PlacedFootprint.Footprint.Format);
|
WARN("Invalid format %#x.\n", src->PlacedFootprint.Footprint.Format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (src_format->is_emulated)
|
|
||||||
{
|
|
||||||
FIXME("Format %#x is not supported yet.\n", src_format->dxgi_format);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
vk_buffer_image_copy_from_d3d12(&buffer_image_copy, &src->PlacedFootprint,
|
vk_buffer_image_copy_from_d3d12(&buffer_image_copy, &src->PlacedFootprint,
|
||||||
dst->SubresourceIndex, &dst_resource->desc, src_format, src_box, dst_x, dst_y, dst_z);
|
dst->SubresourceIndex, &dst_resource->desc, src_format, src_box, dst_x, dst_y, dst_z);
|
||||||
buffer_image_copy.bufferOffset += src_resource->mem.offset;
|
buffer_image_copy.bufferOffset += src_resource->mem.offset;
|
||||||
|
|
Loading…
Reference in New Issue