summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/i915tex/intel_blit.c
diff options
context:
space:
mode:
authorKeith Whitwell <keith@tungstengraphics.com>2007-07-11 17:01:30 +0100
committerKeith Whitwell <keith@tungstengraphics.com>2007-07-11 17:01:30 +0100
commit20cf13e03b1703937b4228aba8355b34d664aafb (patch)
treee1ae513db5f98028291bf3d43ab2b6eea8db4582 /src/mesa/drivers/dri/i915tex/intel_blit.c
parentfb67b1609e211ed16828e10ffc1c36e54f655112 (diff)
Fix screen corruption on resize.
Move buffer resize check to immediately after swapbuffers. Update cliprects inside the locked region of swapbuffers.
Diffstat (limited to 'src/mesa/drivers/dri/i915tex/intel_blit.c')
-rw-r--r--src/mesa/drivers/dri/i915tex/intel_blit.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i915tex/intel_blit.c b/src/mesa/drivers/dri/i915tex/intel_blit.c
index d6651f62be..c755eac6b2 100644
--- a/src/mesa/drivers/dri/i915tex/intel_blit.c
+++ b/src/mesa/drivers/dri/i915tex/intel_blit.c
@@ -79,6 +79,13 @@ intelCopyBuffer(const __DRIdrawablePrivate * dPriv,
*/
LOCK_HARDWARE(intel);
+ if (intel->revalidateDrawable) {
+ __DRIscreenPrivate *sPriv = intel->driScreen;
+ if (dPriv) {
+ DRI_VALIDATE_DRAWABLE_INFO(sPriv, dPriv);
+ }
+ }
+
if (dPriv && dPriv->numClipRects) {
struct intel_framebuffer *intel_fb = dPriv->driverPrivate;
const struct intel_region *frontRegion
@@ -171,6 +178,12 @@ intelCopyBuffer(const __DRIdrawablePrivate * dPriv,
}
UNLOCK_HARDWARE(intel);
+
+ if (intel->revalidateDrawable) {
+ intel->revalidateDrawable = GL_FALSE;
+ intelWindowMoved(intel);
+ }
+
}