| author | Ian Romanick <ian.d.romanick@intel.com> | 2009-04-27 22:11:10 (GMT) |
|---|---|---|
| committer | Ian Romanick <ian.d.romanick@intel.com> | 2009-05-01 16:47:12 (GMT) |
| commit | 0d9d3f3e361f769822caedccf4c2a58cc9930ecc (patch) (side-by-side diff) | |
| tree | 15ba254a8a0b036de90045d0b7867a276f4618f6 | |
| parent | 57aff88c7d0761e590806d07bee1c9410680c89f (diff) | |
| download | xserver-0d9d3f3e361f769822caedccf4c2a58cc9930ecc.zip xserver-0d9d3f3e361f769822caedccf4c2a58cc9930ecc.tar.gz | |
DRI2: Force allocation of real-front buffer for non-windows as well
For redirected rendering we end up with pixmaps (which the app thinks are
windows) that are double buffered.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Tested-by: Pierre Willenbrock <pierre@pirsoft.de>
| -rw-r--r-- | hw/xfree86/dri2/dri2.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c index 9ded048..1d49d7c 100644 --- a/hw/xfree86/dri2/dri2.c +++ b/hw/xfree86/dri2/dri2.c @@ -206,18 +206,21 @@ do_get_buffers(DrawablePtr pDraw, int *width, int *height, * attachments. The counting logic in the loop accounts for the case * where the client requests both the fake and real front-buffer. */ - if (pDraw->type == DRAWABLE_WINDOW) { - if (attachment == DRI2BufferBackLeft) { - need_real_front++; - front_format = format; - } + if (attachment == DRI2BufferBackLeft) { + need_real_front++; + front_format = format; + } - if (attachment == DRI2BufferFrontLeft) { - need_real_front--; + if (attachment == DRI2BufferFrontLeft) { + need_real_front--; + front_format = format; + + if (pDraw->type == DRAWABLE_WINDOW) { need_fake_front++; - front_format = format; } + } + if (pDraw->type == DRAWABLE_WINDOW) { if (attachment == DRI2BufferFakeFrontLeft) { need_fake_front--; have_fake_front = 1; |
