@@ -433,8 +433,7 @@ I830DRI2CopyRegion(DrawablePtr drawable, RegionPtr pRegion,
/* Wait for the scanline to be outside the region to be copied */
if (pixmap_is_scanout(get_drawable_pixmap(dst)) &&
- intel->swapbuffers_wait &&
- scrn->currentMode) {
+ intel->swapbuffers_wait) {
BoxPtr box;
BoxRec crtcbox;
int y1, y2;
@@ -449,7 +448,7 @@ I830DRI2CopyRegion(DrawablePtr drawable, RegionPtr pRegion,
* Make sure the CRTC is valid and this is the real front
* buffer
*/
- if (crtc != NULL && !crtc->rotatedData) {
+ if (crtc != NULL && crtc->mode && !crtc->rotatedData) {
pipe = intel_crtc_to_pipe(crtc);
/*
@@ -485,7 +484,7 @@ I830DRI2CopyRegion(DrawablePtr drawable, RegionPtr pRegion,
event = MI_WAIT_FOR_PIPEB_SVBLANK;
}
- if (scrn->currentMode->Flags & V_INTERLACE) {
+ if (crtc->mode->Flags & V_INTERLACE) {
/* DSL count field lines */
y1 /= 2;
y2 /= 2;