Module: wine Branch: master Commit: 95e42a8d19a748af012bd0194035e0463a8d050e URL: http://source.winehq.org/git/wine.git/?a=commit;h=95e42a8d19a748af012bd01940...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Mon Jul 17 14:01:37 2017 +0200
wined3d: Handle WINED3D_POOL_SYSTEM_MEM resources in ffp_blitter_use_cpu_clear().
Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/wined3d/surface.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index c914e8d..d000e5c 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -2551,6 +2551,9 @@ static BOOL ffp_blitter_use_cpu_clear(struct wined3d_rendertarget_view *view) struct wined3d_texture *texture;
resource = view->resource; + if (resource->pool == WINED3D_POOL_SYSTEM_MEM) + return TRUE; + if (resource->type == WINED3D_RTYPE_BUFFER) return FALSE;
@@ -2578,9 +2581,6 @@ static void ffp_blitter_clear(struct wined3d_blitter *blitter, struct wined3d_de continue;
resource = view->resource; - if (resource->pool == WINED3D_POOL_SYSTEM_MEM) - goto next; - if (!(flags & (WINED3DCLEAR_ZBUFFER | WINED3DCLEAR_STENCIL)) && ffp_blitter_use_cpu_clear(view)) goto next; @@ -2601,13 +2601,9 @@ static void ffp_blitter_clear(struct wined3d_blitter *blitter, struct wined3d_de } }
- if (flags & (WINED3DCLEAR_ZBUFFER | WINED3DCLEAR_STENCIL)) - { - view = fb->depth_stencil; - if (view && (view->resource->pool == WINED3D_POOL_SYSTEM_MEM - || ffp_blitter_use_cpu_clear(view))) - goto next; - } + if ((flags & (WINED3DCLEAR_ZBUFFER | WINED3DCLEAR_STENCIL)) + && (view = fb->depth_stencil) && ffp_blitter_use_cpu_clear(view)) + goto next;
device_clear_render_targets(device, rt_count, fb, rect_count, clear_rects, draw_rect, flags, colour, depth, stencil);