Henri Verbeet : wined3d: Handle WINED3D_POOL_SYSTEM_MEM resources in ffp_blitter_use_cpu_clear().

Alexandre Julliard julliard at winehq.org
Mon Jul 17 15:37:19 CDT 2017


Module: wine
Branch: master
Commit: 95e42a8d19a748af012bd0194035e0463a8d050e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=95e42a8d19a748af012bd0194035e0463a8d050e

Author: Henri Verbeet <hverbeet at 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 at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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);




More information about the wine-cvs mailing list