[PATCH 6/8] wined3d: Make the entire surface current after clearing a discarded depth buffer.

Matteo Bruni mbruni at codeweavers.com
Tue Apr 9 18:35:44 CDT 2013


---
 dlls/wined3d/device.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index f94d77a..6b5c9dc 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -501,6 +501,14 @@ static void prepare_ds_clear(struct wined3d_surface *ds, struct wined3d_context
 {
     RECT current_rect, r;
 
+    if (ds->flags & SFLAG_DISCARDED)
+    {
+        /* Depth buffer was discarded, make it entirely current in its new location since
+         * there is no other place where we would get data anyway. */
+        SetRect(out_rect, 0, 0, ds->resource.width, ds->resource.height);
+        return;
+    }
+
     if (ds->flags & location)
         SetRect(&current_rect, 0, 0,
                 ds->ds_current_size.cx,
-- 
1.8.1.5




More information about the wine-patches mailing list