exa: only setup offscreen allocator if driver doesn't provide CreatePixmap
This commit is contained in:
parent
ffb58f4fa8
commit
f15af2ae60
62
exa/exa.c
62
exa/exa.c
|
@ -755,22 +755,24 @@ exaDriverInit (ScreenPtr pScreen,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!pScreenInfo->memoryBase) {
|
if (!pScreenInfo->CreatePixmap) {
|
||||||
LogMessage(X_ERROR, "EXA(%d): ExaDriverRec::memoryBase must be "
|
if (!pScreenInfo->memoryBase) {
|
||||||
"non-zero\n", pScreen->myNum);
|
LogMessage(X_ERROR, "EXA(%d): ExaDriverRec::memoryBase "
|
||||||
return FALSE;
|
"must be non-zero\n", pScreen->myNum);
|
||||||
}
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
if (!pScreenInfo->memorySize) {
|
if (!pScreenInfo->memorySize) {
|
||||||
LogMessage(X_ERROR, "EXA(%d): ExaDriverRec::memorySize must be "
|
LogMessage(X_ERROR, "EXA(%d): ExaDriverRec::memorySize must be "
|
||||||
"non-zero\n", pScreen->myNum);
|
"non-zero\n", pScreen->myNum);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pScreenInfo->offScreenBase > pScreenInfo->memorySize) {
|
if (pScreenInfo->offScreenBase > pScreenInfo->memorySize) {
|
||||||
LogMessage(X_ERROR, "EXA(%d): ExaDriverRec::offScreenBase must be <= "
|
LogMessage(X_ERROR, "EXA(%d): ExaDriverRec::offScreenBase must "
|
||||||
"ExaDriverRec::memorySize\n", pScreen->myNum);
|
"be <= ExaDriverRec::memorySize\n", pScreen->myNum);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!pScreenInfo->PrepareSolid) {
|
if (!pScreenInfo->PrepareSolid) {
|
||||||
|
@ -881,8 +883,7 @@ exaDriverInit (ScreenPtr pScreen,
|
||||||
/*
|
/*
|
||||||
* Hookup offscreen pixmaps
|
* Hookup offscreen pixmaps
|
||||||
*/
|
*/
|
||||||
if ((pExaScr->info->flags & EXA_OFFSCREEN_PIXMAPS) &&
|
if (pExaScr->info->flags & EXA_OFFSCREEN_PIXMAPS)
|
||||||
pExaScr->info->offScreenBase < pExaScr->info->memorySize)
|
|
||||||
{
|
{
|
||||||
if (!AllocatePixmapPrivate(pScreen, exaPixmapPrivateIndex,
|
if (!AllocatePixmapPrivate(pScreen, exaPixmapPrivateIndex,
|
||||||
sizeof (ExaPixmapPrivRec))) {
|
sizeof (ExaPixmapPrivRec))) {
|
||||||
|
@ -899,10 +900,15 @@ exaDriverInit (ScreenPtr pScreen,
|
||||||
|
|
||||||
pExaScr->SavedModifyPixmapHeader = pScreen->ModifyPixmapHeader;
|
pExaScr->SavedModifyPixmapHeader = pScreen->ModifyPixmapHeader;
|
||||||
pScreen->ModifyPixmapHeader = exaModifyPixmapHeader;
|
pScreen->ModifyPixmapHeader = exaModifyPixmapHeader;
|
||||||
|
if (!pExaScr->info->CreatePixmap) {
|
||||||
|
LogMessage(X_INFO, "EXA(%d): Offscreen pixmap area of %lu bytes\n",
|
||||||
|
pScreen->myNum,
|
||||||
|
pExaScr->info->memorySize - pExaScr->info->offScreenBase);
|
||||||
|
} else {
|
||||||
|
LogMessage(X_INFO, "EXA(%d): Driver allocated offscreen pixmaps\n",
|
||||||
|
pScreen->myNum);
|
||||||
|
|
||||||
LogMessage(X_INFO, "EXA(%d): Offscreen pixmap area of %d bytes\n",
|
}
|
||||||
pScreen->myNum,
|
|
||||||
pExaScr->info->memorySize - pExaScr->info->offScreenBase);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -911,14 +917,16 @@ exaDriverInit (ScreenPtr pScreen,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
DBG_PIXMAP(("============== %ld < %ld\n", pExaScr->info->offScreenBase,
|
if (!pExaScr->info->CreatePixmap) {
|
||||||
pExaScr->info->memorySize));
|
DBG_PIXMAP(("============== %ld < %ld\n", pExaScr->info->offScreenBase,
|
||||||
if (pExaScr->info->offScreenBase < pExaScr->info->memorySize) {
|
pExaScr->info->memorySize));
|
||||||
if (!exaOffscreenInit (pScreen)) {
|
if (pExaScr->info->offScreenBase < pExaScr->info->memorySize) {
|
||||||
LogMessage(X_WARNING, "EXA(%d): Offscreen pixmap setup failed\n",
|
if (!exaOffscreenInit (pScreen)) {
|
||||||
pScreen->myNum);
|
LogMessage(X_WARNING, "EXA(%d): Offscreen pixmap setup failed\n",
|
||||||
return FALSE;
|
pScreen->myNum);
|
||||||
}
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LogMessage(X_INFO, "EXA(%d): Driver registered support for the following"
|
LogMessage(X_INFO, "EXA(%d): Driver registered support for the following"
|
||||||
|
|
Loading…
Reference in New Issue