From f6d2737e621470a3f80e238f49e00b5a54856569 Mon Sep 17 00:00:00 2001 From: Matteo Bruni Date: Wed, 10 Apr 2013 01:35:44 +0200 Subject: [PATCH] wined3d: Make the entire surface current after clearing a discarded depth buffer. --- dlls/wined3d/device.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index f94d77a1dda..6b5c9dcdc44 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(¤t_rect, 0, 0, ds->ds_current_size.cx,