Module: wine Branch: master Commit: f6d2737e621470a3f80e238f49e00b5a54856569 URL: http://source.winehq.org/git/wine.git/?a=commit;h=f6d2737e621470a3f80e238f49...
Author: Matteo Bruni mbruni@codeweavers.com Date: Wed Apr 10 01:35:44 2013 +0200
wined3d: Make the entire surface current after clearing a discarded depth buffer.
---
dlls/wined3d/device.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-)
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(¤t_rect, 0, 0, ds->ds_current_size.cx,