libs/vkd3d: Delete DXGI_FORMAT_UNKNOWN from the formats table again.

Put it into a local in GetCopyableFootprints() instead.
This commit is contained in:
Sven Hesse 2017-08-09 17:15:05 +02:00
parent 2f5ba3509d
commit 4d540d5b45
2 changed files with 13 additions and 4 deletions

View File

@ -1121,6 +1121,8 @@ static void STDMETHODCALLTYPE d3d12_device_GetCopyableFootprints(ID3D12Device *i
UINT64 base_offset, D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
UINT *row_counts, UINT64 *row_sizes, UINT64 *total_bytes)
{
static const struct vkd3d_format vkd3d_format_unknown = {DXGI_FORMAT_UNKNOWN, VK_FORMAT_UNDEFINED, 1, 1, 1, 1, 0};
unsigned int i, sub_resource_idx, miplevel_idx, width, height, row_count, row_size, row_pitch;
unsigned int array_size, depth;
const struct vkd3d_format *format;
@ -1139,10 +1141,18 @@ static void STDMETHODCALLTYPE d3d12_device_GetCopyableFootprints(ID3D12Device *i
memset(row_sizes, 0xff, sizeof(*row_sizes) * sub_resource_count);
if (total_bytes)
*total_bytes = ~(UINT64)0;
if (!(format = vkd3d_get_format(desc->Format)))
if (desc->Dimension != D3D12_RESOURCE_DIMENSION_BUFFER)
{
WARN("Invalid format %#x.\n", desc->Format);
return;
if (!(format = vkd3d_get_format(desc->Format)))
{
WARN("Invalid format %#x.\n", desc->Format);
return;
}
}
else
{
format = &vkd3d_format_unknown;
}
switch (desc->Dimension)

View File

@ -20,7 +20,6 @@
static const struct vkd3d_format vkd3d_formats[] =
{
{DXGI_FORMAT_UNKNOWN, VK_FORMAT_UNDEFINED, 1, 1, 1, 1, 0},
{DXGI_FORMAT_R32G32B32A32_FLOAT, VK_FORMAT_R32G32B32A32_SFLOAT, 16, 1, 1, 1, VK_IMAGE_ASPECT_COLOR_BIT},
{DXGI_FORMAT_R32G32B32A32_UINT, VK_FORMAT_R32G32B32A32_UINT, 16, 1, 1, 1, VK_IMAGE_ASPECT_COLOR_BIT},
{DXGI_FORMAT_R32G32B32A32_SINT, VK_FORMAT_R32G32B32A32_SINT, 16, 1, 1, 1, VK_IMAGE_ASPECT_COLOR_BIT},