wined3d: Check if destination texture has GPU access in glsl_blitter_supported().

Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Paul Gofman 2019-11-08 14:57:22 +03:00 committed by Alexandre Julliard
parent 8d54ca4f4e
commit 3c9b843175

View file

@ -12937,14 +12937,20 @@ static BOOL glsl_blitter_supported(enum wined3d_blit_op blit_op, const struct wi
return FALSE;
}
if (!(dst_resource->access & WINED3D_RESOURCE_ACCESS_GPU))
{
TRACE("Destination resource does not have GPU access.\n");
return FALSE;
}
/* We don't necessarily want to blit from resources without
* WINED3D_RESOURCE_ACCESS_GPU, but that may be the only way to decompress
* compressed textures. */
decompress = (src_format->flags[WINED3D_GL_RES_TYPE_TEX_2D] & WINED3DFMT_FLAG_COMPRESSED)
&& !(dst_format->flags[WINED3D_GL_RES_TYPE_TEX_2D] & WINED3DFMT_FLAG_COMPRESSED);
if (!decompress && !(src_resource->access & dst_resource->access & WINED3D_RESOURCE_ACCESS_GPU))
if (!decompress && !(src_resource->access & WINED3D_RESOURCE_ACCESS_GPU))
{
TRACE("Source or destination resource does not have GPU access.\n");
TRACE("Source resource does not have GPU access.\n");
return FALSE;
}