- Fix a segfault on VT switch with DRI. Still dies due to cursor allocation
troubles. - Move the RemoveBlockAndWakeupHandlers to match RegisterBlockAndWakeupHandlers. - Enable R100 trapezoid "acceleration" when DRI is working, so that it can be exposed and worked on.
This commit is contained in:
parent
ab50679aab
commit
80dc84d067
|
@ -677,7 +677,8 @@ ATIBlockHandler(pointer blockData, OSTimePtr timeout, pointer readmask)
|
||||||
/* When the server is going to sleep, make sure that all DMA data has
|
/* When the server is going to sleep, make sure that all DMA data has
|
||||||
* been flushed.
|
* been flushed.
|
||||||
*/
|
*/
|
||||||
ATIFlushIndirect(atis, 1);
|
if (atis->indirectBuffer)
|
||||||
|
ATIFlushIndirect(atis, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -770,17 +771,11 @@ ATIDrawEnable(ScreenPtr pScreen)
|
||||||
atis->kaa.PrepareComposite = R128PrepareComposite;
|
atis->kaa.PrepareComposite = R128PrepareComposite;
|
||||||
atis->kaa.Composite = R128Composite;
|
atis->kaa.Composite = R128Composite;
|
||||||
atis->kaa.DoneComposite = R128DoneComposite;
|
atis->kaa.DoneComposite = R128DoneComposite;
|
||||||
/*atis->kaa.PrepareTrapezoids = R128PrepareTrapezoids;
|
|
||||||
atis->kaa.Trapezoids = R128Trapezoids;
|
|
||||||
atis->kaa.DoneTrapezoids = R128DoneTrapezoids;*/
|
|
||||||
} else if (atic->is_r100) {
|
} else if (atic->is_r100) {
|
||||||
atis->kaa.CheckComposite = R100CheckComposite;
|
atis->kaa.CheckComposite = R100CheckComposite;
|
||||||
atis->kaa.PrepareComposite = R100PrepareComposite;
|
atis->kaa.PrepareComposite = R100PrepareComposite;
|
||||||
atis->kaa.Composite = RadeonComposite;
|
atis->kaa.Composite = RadeonComposite;
|
||||||
atis->kaa.DoneComposite = RadeonDoneComposite;
|
atis->kaa.DoneComposite = RadeonDoneComposite;
|
||||||
/*atis->kaa.PrepareTrapezoids = RadeonPrepareTrapezoids;
|
|
||||||
atis->kaa.Trapezoids = RadeonTrapezoids;
|
|
||||||
atis->kaa.DoneTrapezoids = RadeonDoneTrapezoids;*/
|
|
||||||
} else if (0 && atic->is_r200) { /* XXX */
|
} else if (0 && atic->is_r200) { /* XXX */
|
||||||
atis->kaa.CheckComposite = R200CheckComposite;
|
atis->kaa.CheckComposite = R200CheckComposite;
|
||||||
atis->kaa.PrepareComposite = R200PrepareComposite;
|
atis->kaa.PrepareComposite = R200PrepareComposite;
|
||||||
|
@ -788,6 +783,19 @@ ATIDrawEnable(ScreenPtr pScreen)
|
||||||
atis->kaa.DoneComposite = RadeonDoneComposite;
|
atis->kaa.DoneComposite = RadeonDoneComposite;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef USE_DRI
|
||||||
|
if (atis->using_dri) {
|
||||||
|
if (!atic->is_radeon) {
|
||||||
|
/*atis->kaa.PrepareTrapezoids = R128PrepareTrapezoids;
|
||||||
|
atis->kaa.Trapezoids = R128Trapezoids;
|
||||||
|
atis->kaa.DoneTrapezoids = R128DoneTrapezoids;*/
|
||||||
|
} else if (atic->is_r100) {
|
||||||
|
atis->kaa.PrepareTrapezoids = RadeonPrepareTrapezoids;
|
||||||
|
atis->kaa.Trapezoids = RadeonTrapezoids;
|
||||||
|
atis->kaa.DoneTrapezoids = RadeonDoneTrapezoids;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif /* USE_DRI */
|
||||||
|
|
||||||
atis->kaa.UploadToScreen = ATIUploadToScreen;
|
atis->kaa.UploadToScreen = ATIUploadToScreen;
|
||||||
|
|
||||||
|
@ -809,8 +817,6 @@ ATIDrawEnable(ScreenPtr pScreen)
|
||||||
void
|
void
|
||||||
ATIDrawDisable(ScreenPtr pScreen)
|
ATIDrawDisable(ScreenPtr pScreen)
|
||||||
{
|
{
|
||||||
RemoveBlockAndWakeupHandlers (ATIBlockHandler, ATIWakeupHandler,
|
|
||||||
pScreen);
|
|
||||||
|
|
||||||
ATIDMATeardown(pScreen);
|
ATIDMATeardown(pScreen);
|
||||||
}
|
}
|
||||||
|
@ -827,6 +833,9 @@ ATIDrawFini(ScreenPtr pScreen)
|
||||||
}
|
}
|
||||||
#endif /* USE_DRI */
|
#endif /* USE_DRI */
|
||||||
|
|
||||||
|
RemoveBlockAndWakeupHandlers(ATIBlockHandler, ATIWakeupHandler,
|
||||||
|
pScreen);
|
||||||
|
|
||||||
kaaDrawFini(pScreen);
|
kaaDrawFini(pScreen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue