From: Elizabeth Figura zfigura@codeweavers.com
Fixes: d58e917e2cb36c6ffcb259356c06171d8f6d4dcc --- dlls/wined3d/surface.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index 4ad1e65fafb..26f130654c1 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -1498,6 +1498,14 @@ HRESULT texture2d_blt(struct wined3d_texture *dst_texture, unsigned int dst_sub_ { blit_op = WINED3D_BLIT_OP_COLOR_BLIT_ALPHATEST; } + else if (src_sub_resource->locations & WINED3D_LOCATION_CLEARED) + { + TRACE("Source is cleared.\n"); + wined3d_texture_validate_location(dst_texture, dst_sub_resource_idx, WINED3D_LOCATION_CLEARED); + wined3d_texture_invalidate_location(dst_texture, dst_sub_resource_idx, ~WINED3D_LOCATION_CLEARED); + dst_sub_resource->clear_value.colour = src_sub_resource->clear_value.colour; + return WINED3D_OK; + } else if (sub_resource_is_on_cpu(src_texture, src_sub_resource_idx) && !sub_resource_is_on_cpu(dst_texture, dst_sub_resource_idx) && (dst_texture->resource.access & WINED3D_RESOURCE_ACCESS_GPU))