wined3d: Allow multisample resolve for typeless resources.
It may perform an undesired format conversion in rare cases. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=39754 Signed-off-by: Józef Kucia <jkucia@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
bc5e9207d9
commit
24e609735b
|
@ -16862,12 +16862,12 @@ static void test_multisample_resolve(void)
|
|||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
&green, 0xff00ff00, TRUE},
|
||||
&green, 0xff00ff00},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
&green, 0xff00ff00, TRUE},
|
||||
&green, 0xff00ff00},
|
||||
{DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
|
@ -16877,69 +16877,69 @@ static void test_multisample_resolve(void)
|
|||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
&color, 0xffe1bc89, TRUE},
|
||||
&color, 0xffe1bc89},
|
||||
|
||||
{DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
&green, 0xff00ff00, TRUE},
|
||||
&green, 0xff00ff00},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
&green, 0xff00ff00, TRUE},
|
||||
&green, 0xff00ff00},
|
||||
{DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
&color, 0xffbf7f40, TRUE},
|
||||
&color, 0xffbf7f40},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
&color, 0xffbf7f40, TRUE},
|
||||
&color, 0xffbf7f40},
|
||||
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
&green, 0xff00ff00, TRUE},
|
||||
&green, 0xff00ff00},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
&color, 0xffbf7f40, TRUE},
|
||||
&color, 0xffbf7f40},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
&green, 0xff00ff00, TRUE},
|
||||
&green, 0xff00ff00},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
&color, 0xffe1bc89, TRUE},
|
||||
&color, 0xffe1bc89},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
&green, 0xff00ff00, TRUE},
|
||||
&green, 0xff00ff00},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
&color, 0xffe1bc89, TRUE},
|
||||
&color, 0xffe1bc89},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
&green, 0xff00ff00, TRUE},
|
||||
&green, 0xff00ff00},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
&color, 0xffbf7f40, TRUE},
|
||||
&color, 0xffbf7f40},
|
||||
};
|
||||
|
||||
if (!init_test_context(&test_context))
|
||||
|
|
|
@ -27295,12 +27295,12 @@ static void test_multisample_resolve(void)
|
|||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
&green, 0xff00ff00, TRUE},
|
||||
&green, 0xff00ff00},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
&green, 0xff00ff00, TRUE},
|
||||
&green, 0xff00ff00},
|
||||
{DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
|
@ -27310,69 +27310,69 @@ static void test_multisample_resolve(void)
|
|||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
&color, 0xffe1bc89, TRUE},
|
||||
&color, 0xffe1bc89},
|
||||
|
||||
{DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
&green, 0xff00ff00, TRUE},
|
||||
&green, 0xff00ff00},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
&green, 0xff00ff00, TRUE},
|
||||
&green, 0xff00ff00},
|
||||
{DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
&color, 0xffbf7f40, TRUE},
|
||||
&color, 0xffbf7f40},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
&color, 0xffbf7f40, TRUE},
|
||||
&color, 0xffbf7f40},
|
||||
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
&green, 0xff00ff00, TRUE},
|
||||
&green, 0xff00ff00},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
&color, 0xffbf7f40, TRUE},
|
||||
&color, 0xffbf7f40},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
&green, 0xff00ff00, TRUE},
|
||||
&green, 0xff00ff00},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
&color, 0xffe1bc89, TRUE},
|
||||
&color, 0xffe1bc89},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
&green, 0xff00ff00, TRUE},
|
||||
&green, 0xff00ff00},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
&color, 0xffe1bc89, TRUE},
|
||||
&color, 0xffe1bc89},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
&green, 0xff00ff00, TRUE},
|
||||
&green, 0xff00ff00},
|
||||
{DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM,
|
||||
&color, 0xffbf7f40, TRUE},
|
||||
&color, 0xffbf7f40},
|
||||
};
|
||||
|
||||
if (!init_test_context(&test_context, NULL))
|
||||
|
|
|
@ -4293,10 +4293,10 @@ void CDECL wined3d_device_resolve_sub_resource(struct wined3d_device *device,
|
|||
if (wined3d_format_is_typeless(dst_resource->format)
|
||||
|| wined3d_format_is_typeless(src_resource->format))
|
||||
{
|
||||
FIXME("Unhandled multisample resolve, dst_format %s, src_format %s, format %s.\n",
|
||||
FIXME("Multisample resolve is not fully supported for typeless formats "
|
||||
"(dst_format %s, src_format %s, format %s).\n",
|
||||
debug_d3dformat(dst_resource->format->id), debug_d3dformat(src_resource->format->id),
|
||||
debug_d3dformat(format_id));
|
||||
return;
|
||||
}
|
||||
if (dst_resource->type != WINED3D_RTYPE_TEXTURE_2D)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue