EXA: No longer use the driver UploadToScratch hook.
See http://bugs.freedesktop.org/show_bug.cgi?id=20213 . Signed-off-by: Michel Dänzer <daenzer@vmware.com>
This commit is contained in:
parent
4cfb36f6ad
commit
9d5141f7bc
23
exa/exa.h
23
exa/exa.h
|
@ -499,27 +499,8 @@ typedef struct _ExaDriver {
|
||||||
int src_pitch);
|
int src_pitch);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* UploadToScratch() is used to upload a pixmap to a scratch area for
|
* UploadToScratch() is no longer used and will be removed next time the EXA
|
||||||
* acceleration.
|
* major version needs to be bumped.
|
||||||
*
|
|
||||||
* @param pSrc source pixmap in host memory
|
|
||||||
* @param pDst fake, scratch pixmap to be set up in offscreen memory.
|
|
||||||
*
|
|
||||||
* The UploadToScratch() call was added to support Xati before Xati had
|
|
||||||
* support for hostdata uploads and before exaGlyphs() was written. It
|
|
||||||
* behaves incorrectly (uses an invalid pixmap as pDst),
|
|
||||||
* and UploadToScreen() should be implemented instead.
|
|
||||||
*
|
|
||||||
* Drivers implementing UploadToScratch() had to set up space (likely in a
|
|
||||||
* statically allocated area) in offscreen memory, copy pSrc to that
|
|
||||||
* scratch area, and adust pDst->devKind for the pitch and
|
|
||||||
* pDst->devPrivate.ptr for the pointer to that scratch area. The driver
|
|
||||||
* was responsible for syncing (as it was implemented using memcpy() in
|
|
||||||
* Xati), and only the data from the last UploadToScratch() was guaranteed
|
|
||||||
* to be valid at any given time.
|
|
||||||
*
|
|
||||||
* UploadToScratch() should not be implemented by drivers, and will likely
|
|
||||||
* be removed in a future version of EXA.
|
|
||||||
*/
|
*/
|
||||||
Bool (*UploadToScratch) (PixmapPtr pSrc,
|
Bool (*UploadToScratch) (PixmapPtr pSrc,
|
||||||
PixmapPtr pDst);
|
PixmapPtr pDst);
|
||||||
|
|
|
@ -343,7 +343,6 @@ exaTryDriverCompositeRects(CARD8 op,
|
||||||
int src_off_x, src_off_y, mask_off_x, mask_off_y, dst_off_x, dst_off_y;
|
int src_off_x, src_off_y, mask_off_x, mask_off_y, dst_off_x, dst_off_y;
|
||||||
PixmapPtr pSrcPix, pMaskPix = NULL, pDstPix;
|
PixmapPtr pSrcPix, pMaskPix = NULL, pDstPix;
|
||||||
ExaPixmapPrivPtr pSrcExaPix, pMaskExaPix = NULL, pDstExaPix;
|
ExaPixmapPrivPtr pSrcExaPix, pMaskExaPix = NULL, pDstExaPix;
|
||||||
struct _Pixmap scratch;
|
|
||||||
ExaMigrationRec pixmaps[3];
|
ExaMigrationRec pixmaps[3];
|
||||||
|
|
||||||
if (!pExaScr->info->PrepareComposite)
|
if (!pExaScr->info->PrepareComposite)
|
||||||
|
@ -399,13 +398,6 @@ exaTryDriverCompositeRects(CARD8 op,
|
||||||
|
|
||||||
pSrcPix = exaGetOffscreenPixmap (pSrc->pDrawable, &src_off_x, &src_off_y);
|
pSrcPix = exaGetOffscreenPixmap (pSrc->pDrawable, &src_off_x, &src_off_y);
|
||||||
|
|
||||||
if (!pSrcPix && pExaScr->info->UploadToScratch)
|
|
||||||
{
|
|
||||||
pSrcPix = exaGetDrawablePixmap (pSrc->pDrawable);
|
|
||||||
if ((*pExaScr->info->UploadToScratch) (pSrcPix, &scratch))
|
|
||||||
pSrcPix = &scratch;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!pSrcPix)
|
if (!pSrcPix)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -623,7 +615,6 @@ exaTryDriverComposite(CARD8 op,
|
||||||
int src_off_x, src_off_y, mask_off_x, mask_off_y, dst_off_x, dst_off_y;
|
int src_off_x, src_off_y, mask_off_x, mask_off_y, dst_off_x, dst_off_y;
|
||||||
PixmapPtr pSrcPix, pMaskPix = NULL, pDstPix;
|
PixmapPtr pSrcPix, pMaskPix = NULL, pDstPix;
|
||||||
ExaPixmapPrivPtr pSrcExaPix, pMaskExaPix = NULL, pDstExaPix;
|
ExaPixmapPrivPtr pSrcExaPix, pMaskExaPix = NULL, pDstExaPix;
|
||||||
struct _Pixmap scratch;
|
|
||||||
ExaMigrationRec pixmaps[3];
|
ExaMigrationRec pixmaps[3];
|
||||||
|
|
||||||
pSrcPix = exaGetDrawablePixmap(pSrc->pDrawable);
|
pSrcPix = exaGetDrawablePixmap(pSrc->pDrawable);
|
||||||
|
@ -702,16 +693,6 @@ exaTryDriverComposite(CARD8 op,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!pSrcPix && (!pMask || pMaskPix) && pExaScr->info->UploadToScratch) {
|
|
||||||
pSrcPix = exaGetDrawablePixmap (pSrc->pDrawable);
|
|
||||||
if ((*pExaScr->info->UploadToScratch) (pSrcPix, &scratch))
|
|
||||||
pSrcPix = &scratch;
|
|
||||||
} else if (pSrcPix && pMask && !pMaskPix && pExaScr->info->UploadToScratch) {
|
|
||||||
pMaskPix = exaGetDrawablePixmap (pMask->pDrawable);
|
|
||||||
if ((*pExaScr->info->UploadToScratch) (pMaskPix, &scratch))
|
|
||||||
pMaskPix = &scratch;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!pSrcPix || (pMask && !pMaskPix)) {
|
if (!pSrcPix || (pMask && !pMaskPix)) {
|
||||||
REGION_UNINIT(pDst->pDrawable->pScreen, ®ion);
|
REGION_UNINIT(pDst->pDrawable->pScreen, ®ion);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue