Add some optional (disabled) fallback debugging code to the async code, for
better tracking of when we're hitting software.
This commit is contained in:
parent
1c003ccf5d
commit
b0f6fe1f38
|
@ -23,6 +23,17 @@
|
||||||
|
|
||||||
#include "exaPriv.h"
|
#include "exaPriv.h"
|
||||||
|
|
||||||
|
#define EXA_TRACE_FALL 0
|
||||||
|
|
||||||
|
#if EXA_TRACE_FALL
|
||||||
|
#define EXA_FALLBACK(x) \
|
||||||
|
do { \
|
||||||
|
ErrorF("EXA fallback at %s: ", __FUNCTION__); \
|
||||||
|
ErrorF x; \
|
||||||
|
} while (0)
|
||||||
|
#else
|
||||||
|
#define EXA_FALLBACK(x)
|
||||||
|
#endif
|
||||||
/*
|
/*
|
||||||
* These functions wrap the low-level fb rendering functions and
|
* These functions wrap the low-level fb rendering functions and
|
||||||
* synchronize framebuffer/accelerated drawing by stalling until
|
* synchronize framebuffer/accelerated drawing by stalling until
|
||||||
|
@ -33,6 +44,7 @@ void
|
||||||
ExaCheckFillSpans (DrawablePtr pDrawable, GCPtr pGC, int nspans,
|
ExaCheckFillSpans (DrawablePtr pDrawable, GCPtr pGC, int nspans,
|
||||||
DDXPointPtr ppt, int *pwidth, int fSorted)
|
DDXPointPtr ppt, int *pwidth, int fSorted)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbFillSpans (pDrawable, pGC, nspans, ppt, pwidth, fSorted);
|
fbFillSpans (pDrawable, pGC, nspans, ppt, pwidth, fSorted);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -42,6 +54,7 @@ void
|
||||||
ExaCheckSetSpans (DrawablePtr pDrawable, GCPtr pGC, char *psrc,
|
ExaCheckSetSpans (DrawablePtr pDrawable, GCPtr pGC, char *psrc,
|
||||||
DDXPointPtr ppt, int *pwidth, int nspans, int fSorted)
|
DDXPointPtr ppt, int *pwidth, int nspans, int fSorted)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbSetSpans (pDrawable, pGC, psrc, ppt, pwidth, nspans, fSorted);
|
fbSetSpans (pDrawable, pGC, psrc, ppt, pwidth, nspans, fSorted);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -52,6 +65,7 @@ ExaCheckPutImage (DrawablePtr pDrawable, GCPtr pGC, int depth,
|
||||||
int x, int y, int w, int h, int leftPad, int format,
|
int x, int y, int w, int h, int leftPad, int format,
|
||||||
char *bits)
|
char *bits)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPutImage (pDrawable, pGC, depth, x, y, w, h, leftPad, format, bits);
|
fbPutImage (pDrawable, pGC, depth, x, y, w, h, leftPad, format, bits);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -63,6 +77,7 @@ ExaCheckCopyArea (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
|
||||||
{
|
{
|
||||||
RegionPtr ret;
|
RegionPtr ret;
|
||||||
|
|
||||||
|
EXA_FALLBACK(("from 0x%lx to 0x%lx\n", (long)pSrc, (long)pDst));
|
||||||
exaPrepareAccess (pDst, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDst, EXA_PREPARE_DEST);
|
||||||
exaPrepareAccess (pSrc, EXA_PREPARE_SRC);
|
exaPrepareAccess (pSrc, EXA_PREPARE_SRC);
|
||||||
ret = fbCopyArea (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty);
|
ret = fbCopyArea (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty);
|
||||||
|
@ -79,6 +94,7 @@ ExaCheckCopyPlane (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
|
||||||
{
|
{
|
||||||
RegionPtr ret;
|
RegionPtr ret;
|
||||||
|
|
||||||
|
EXA_FALLBACK(("from 0x%lx to 0x%lx\n", (long)pSrc, (long)pDst));
|
||||||
exaPrepareAccess (pDst, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDst, EXA_PREPARE_DEST);
|
||||||
exaPrepareAccess (pSrc, EXA_PREPARE_SRC);
|
exaPrepareAccess (pSrc, EXA_PREPARE_SRC);
|
||||||
ret = fbCopyPlane (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty,
|
ret = fbCopyPlane (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty,
|
||||||
|
@ -93,6 +109,7 @@ void
|
||||||
ExaCheckPolyPoint (DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
|
ExaCheckPolyPoint (DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
|
||||||
DDXPointPtr pptInit)
|
DDXPointPtr pptInit)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPolyPoint (pDrawable, pGC, mode, npt, pptInit);
|
fbPolyPoint (pDrawable, pGC, mode, npt, pptInit);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -102,6 +119,7 @@ void
|
||||||
ExaCheckPolylines (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckPolylines (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int mode, int npt, DDXPointPtr ppt)
|
int mode, int npt, DDXPointPtr ppt)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
|
|
||||||
if (pGC->lineWidth == 0) {
|
if (pGC->lineWidth == 0) {
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -116,6 +134,7 @@ void
|
||||||
ExaCheckPolySegment (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckPolySegment (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int nsegInit, xSegment *pSegInit)
|
int nsegInit, xSegment *pSegInit)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
if (pGC->lineWidth == 0) {
|
if (pGC->lineWidth == 0) {
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPolySegment (pDrawable, pGC, nsegInit, pSegInit);
|
fbPolySegment (pDrawable, pGC, nsegInit, pSegInit);
|
||||||
|
@ -129,6 +148,7 @@ void
|
||||||
ExaCheckPolyRectangle (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckPolyRectangle (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int nrects, xRectangle *prect)
|
int nrects, xRectangle *prect)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
if (pGC->lineWidth == 0) {
|
if (pGC->lineWidth == 0) {
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPolyRectangle (pDrawable, pGC, nrects, prect);
|
fbPolyRectangle (pDrawable, pGC, nrects, prect);
|
||||||
|
@ -142,6 +162,7 @@ void
|
||||||
ExaCheckPolyArc (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckPolyArc (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int narcs, xArc *pArcs)
|
int narcs, xArc *pArcs)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
if (pGC->lineWidth == 0)
|
if (pGC->lineWidth == 0)
|
||||||
{
|
{
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -157,6 +178,7 @@ void
|
||||||
ExaCheckFillPolygon (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckFillPolygon (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int shape, int mode, int count, DDXPointPtr pPts)
|
int shape, int mode, int count, DDXPointPtr pPts)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbFillPolygon (pDrawable, pGC, mode, count, pPts);
|
fbFillPolygon (pDrawable, pGC, mode, count, pPts);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -167,6 +189,7 @@ void
|
||||||
ExaCheckPolyFillRect (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckPolyFillRect (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int nrect, xRectangle *prect)
|
int nrect, xRectangle *prect)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPolyFillRect (pDrawable, pGC, nrect, prect);
|
fbPolyFillRect (pDrawable, pGC, nrect, prect);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -176,6 +199,7 @@ void
|
||||||
ExaCheckPolyFillArc (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckPolyFillArc (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int narcs, xArc *pArcs)
|
int narcs, xArc *pArcs)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPolyFillArc (pDrawable, pGC, narcs, pArcs);
|
fbPolyFillArc (pDrawable, pGC, narcs, pArcs);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -186,6 +210,7 @@ ExaCheckImageGlyphBlt (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int x, int y, unsigned int nglyph,
|
int x, int y, unsigned int nglyph,
|
||||||
CharInfoPtr *ppci, pointer pglyphBase)
|
CharInfoPtr *ppci, pointer pglyphBase)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbImageGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
|
fbImageGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -196,6 +221,7 @@ ExaCheckPolyGlyphBlt (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int x, int y, unsigned int nglyph,
|
int x, int y, unsigned int nglyph,
|
||||||
CharInfoPtr *ppci, pointer pglyphBase)
|
CharInfoPtr *ppci, pointer pglyphBase)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPolyGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
|
fbPolyGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -206,6 +232,7 @@ ExaCheckPushPixels (GCPtr pGC, PixmapPtr pBitmap,
|
||||||
DrawablePtr pDrawable,
|
DrawablePtr pDrawable,
|
||||||
int w, int h, int x, int y)
|
int w, int h, int x, int y)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("from 0x%lx to 0x%lx\n", (long)pBitmap, (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPushPixels (pGC, pBitmap, pDrawable, w, h, x, y);
|
fbPushPixels (pGC, pBitmap, pDrawable, w, h, x, y);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -217,6 +244,7 @@ ExaCheckGetImage (DrawablePtr pDrawable,
|
||||||
unsigned int format, unsigned long planeMask,
|
unsigned int format, unsigned long planeMask,
|
||||||
char *d)
|
char *d)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("from 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_SRC);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_SRC);
|
||||||
fbGetImage (pDrawable, x, y, w, h, format, planeMask, d);
|
fbGetImage (pDrawable, x, y, w, h, format, planeMask, d);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_SRC);
|
exaFinishAccess (pDrawable, EXA_PREPARE_SRC);
|
||||||
|
@ -230,6 +258,7 @@ ExaCheckGetSpans (DrawablePtr pDrawable,
|
||||||
int nspans,
|
int nspans,
|
||||||
char *pdstStart)
|
char *pdstStart)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("from 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_SRC);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_SRC);
|
||||||
fbGetSpans (pDrawable, wMax, ppt, pwidth, nspans, pdstStart);
|
fbGetSpans (pDrawable, wMax, ppt, pwidth, nspans, pdstStart);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_SRC);
|
exaFinishAccess (pDrawable, EXA_PREPARE_SRC);
|
||||||
|
@ -242,6 +271,7 @@ ExaCheckSaveAreas (PixmapPtr pPixmap,
|
||||||
int yorg,
|
int yorg,
|
||||||
WindowPtr pWin)
|
WindowPtr pWin)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("from 0x%lx\n", (long)&pPixmap->drawable));
|
||||||
exaPrepareAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
exaPrepareAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
||||||
fbSaveAreas (pPixmap, prgnSave, xorg, yorg, pWin);
|
fbSaveAreas (pPixmap, prgnSave, xorg, yorg, pWin);
|
||||||
exaFinishAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
exaFinishAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
||||||
|
@ -254,6 +284,7 @@ ExaCheckRestoreAreas (PixmapPtr pPixmap,
|
||||||
int yorg,
|
int yorg,
|
||||||
WindowPtr pWin)
|
WindowPtr pWin)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)&pPixmap->drawable));
|
||||||
exaPrepareAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
exaPrepareAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
||||||
fbRestoreAreas (pPixmap, prgnSave, xorg, yorg, pWin);
|
fbRestoreAreas (pPixmap, prgnSave, xorg, yorg, pWin);
|
||||||
exaFinishAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
exaFinishAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
||||||
|
@ -262,6 +293,7 @@ ExaCheckRestoreAreas (PixmapPtr pPixmap,
|
||||||
void
|
void
|
||||||
ExaCheckPaintWindow (WindowPtr pWin, RegionPtr pRegion, int what)
|
ExaCheckPaintWindow (WindowPtr pWin, RegionPtr pRegion, int what)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("from 0x%lx\n", (long)pWin));
|
||||||
exaPrepareAccess (&pWin->drawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (&pWin->drawable, EXA_PREPARE_DEST);
|
||||||
fbPaintWindow (pWin, pRegion, what);
|
fbPaintWindow (pWin, pRegion, what);
|
||||||
exaFinishAccess (&pWin->drawable, EXA_PREPARE_DEST);
|
exaFinishAccess (&pWin->drawable, EXA_PREPARE_DEST);
|
||||||
|
@ -281,6 +313,8 @@ ExaCheckComposite (CARD8 op,
|
||||||
CARD16 width,
|
CARD16 width,
|
||||||
CARD16 height)
|
CARD16 height)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("from picts 0x%lx/0x%lx to pict 0x%lx\n",
|
||||||
|
(long)pSrc, (long)pMask, (long)pDst));
|
||||||
exaPrepareAccess (pDst->pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDst->pDrawable, EXA_PREPARE_DEST);
|
||||||
exaPrepareAccess (pSrc->pDrawable, EXA_PREPARE_SRC);
|
exaPrepareAccess (pSrc->pDrawable, EXA_PREPARE_SRC);
|
||||||
if (pMask)
|
if (pMask)
|
||||||
|
|
|
@ -23,6 +23,17 @@
|
||||||
|
|
||||||
#include "exaPriv.h"
|
#include "exaPriv.h"
|
||||||
|
|
||||||
|
#define EXA_TRACE_FALL 0
|
||||||
|
|
||||||
|
#if EXA_TRACE_FALL
|
||||||
|
#define EXA_FALLBACK(x) \
|
||||||
|
do { \
|
||||||
|
ErrorF("EXA fallback at %s: ", __FUNCTION__); \
|
||||||
|
ErrorF x; \
|
||||||
|
} while (0)
|
||||||
|
#else
|
||||||
|
#define EXA_FALLBACK(x)
|
||||||
|
#endif
|
||||||
/*
|
/*
|
||||||
* These functions wrap the low-level fb rendering functions and
|
* These functions wrap the low-level fb rendering functions and
|
||||||
* synchronize framebuffer/accelerated drawing by stalling until
|
* synchronize framebuffer/accelerated drawing by stalling until
|
||||||
|
@ -33,6 +44,7 @@ void
|
||||||
ExaCheckFillSpans (DrawablePtr pDrawable, GCPtr pGC, int nspans,
|
ExaCheckFillSpans (DrawablePtr pDrawable, GCPtr pGC, int nspans,
|
||||||
DDXPointPtr ppt, int *pwidth, int fSorted)
|
DDXPointPtr ppt, int *pwidth, int fSorted)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbFillSpans (pDrawable, pGC, nspans, ppt, pwidth, fSorted);
|
fbFillSpans (pDrawable, pGC, nspans, ppt, pwidth, fSorted);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -42,6 +54,7 @@ void
|
||||||
ExaCheckSetSpans (DrawablePtr pDrawable, GCPtr pGC, char *psrc,
|
ExaCheckSetSpans (DrawablePtr pDrawable, GCPtr pGC, char *psrc,
|
||||||
DDXPointPtr ppt, int *pwidth, int nspans, int fSorted)
|
DDXPointPtr ppt, int *pwidth, int nspans, int fSorted)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbSetSpans (pDrawable, pGC, psrc, ppt, pwidth, nspans, fSorted);
|
fbSetSpans (pDrawable, pGC, psrc, ppt, pwidth, nspans, fSorted);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -52,6 +65,7 @@ ExaCheckPutImage (DrawablePtr pDrawable, GCPtr pGC, int depth,
|
||||||
int x, int y, int w, int h, int leftPad, int format,
|
int x, int y, int w, int h, int leftPad, int format,
|
||||||
char *bits)
|
char *bits)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPutImage (pDrawable, pGC, depth, x, y, w, h, leftPad, format, bits);
|
fbPutImage (pDrawable, pGC, depth, x, y, w, h, leftPad, format, bits);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -63,6 +77,7 @@ ExaCheckCopyArea (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
|
||||||
{
|
{
|
||||||
RegionPtr ret;
|
RegionPtr ret;
|
||||||
|
|
||||||
|
EXA_FALLBACK(("from 0x%lx to 0x%lx\n", (long)pSrc, (long)pDst));
|
||||||
exaPrepareAccess (pDst, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDst, EXA_PREPARE_DEST);
|
||||||
exaPrepareAccess (pSrc, EXA_PREPARE_SRC);
|
exaPrepareAccess (pSrc, EXA_PREPARE_SRC);
|
||||||
ret = fbCopyArea (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty);
|
ret = fbCopyArea (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty);
|
||||||
|
@ -79,6 +94,7 @@ ExaCheckCopyPlane (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
|
||||||
{
|
{
|
||||||
RegionPtr ret;
|
RegionPtr ret;
|
||||||
|
|
||||||
|
EXA_FALLBACK(("from 0x%lx to 0x%lx\n", (long)pSrc, (long)pDst));
|
||||||
exaPrepareAccess (pDst, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDst, EXA_PREPARE_DEST);
|
||||||
exaPrepareAccess (pSrc, EXA_PREPARE_SRC);
|
exaPrepareAccess (pSrc, EXA_PREPARE_SRC);
|
||||||
ret = fbCopyPlane (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty,
|
ret = fbCopyPlane (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty,
|
||||||
|
@ -93,6 +109,7 @@ void
|
||||||
ExaCheckPolyPoint (DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
|
ExaCheckPolyPoint (DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
|
||||||
DDXPointPtr pptInit)
|
DDXPointPtr pptInit)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPolyPoint (pDrawable, pGC, mode, npt, pptInit);
|
fbPolyPoint (pDrawable, pGC, mode, npt, pptInit);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -102,6 +119,7 @@ void
|
||||||
ExaCheckPolylines (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckPolylines (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int mode, int npt, DDXPointPtr ppt)
|
int mode, int npt, DDXPointPtr ppt)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
|
|
||||||
if (pGC->lineWidth == 0) {
|
if (pGC->lineWidth == 0) {
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -116,6 +134,7 @@ void
|
||||||
ExaCheckPolySegment (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckPolySegment (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int nsegInit, xSegment *pSegInit)
|
int nsegInit, xSegment *pSegInit)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
if (pGC->lineWidth == 0) {
|
if (pGC->lineWidth == 0) {
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPolySegment (pDrawable, pGC, nsegInit, pSegInit);
|
fbPolySegment (pDrawable, pGC, nsegInit, pSegInit);
|
||||||
|
@ -129,6 +148,7 @@ void
|
||||||
ExaCheckPolyRectangle (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckPolyRectangle (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int nrects, xRectangle *prect)
|
int nrects, xRectangle *prect)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
if (pGC->lineWidth == 0) {
|
if (pGC->lineWidth == 0) {
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPolyRectangle (pDrawable, pGC, nrects, prect);
|
fbPolyRectangle (pDrawable, pGC, nrects, prect);
|
||||||
|
@ -142,6 +162,7 @@ void
|
||||||
ExaCheckPolyArc (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckPolyArc (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int narcs, xArc *pArcs)
|
int narcs, xArc *pArcs)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
if (pGC->lineWidth == 0)
|
if (pGC->lineWidth == 0)
|
||||||
{
|
{
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -157,6 +178,7 @@ void
|
||||||
ExaCheckFillPolygon (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckFillPolygon (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int shape, int mode, int count, DDXPointPtr pPts)
|
int shape, int mode, int count, DDXPointPtr pPts)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbFillPolygon (pDrawable, pGC, mode, count, pPts);
|
fbFillPolygon (pDrawable, pGC, mode, count, pPts);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -167,6 +189,7 @@ void
|
||||||
ExaCheckPolyFillRect (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckPolyFillRect (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int nrect, xRectangle *prect)
|
int nrect, xRectangle *prect)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPolyFillRect (pDrawable, pGC, nrect, prect);
|
fbPolyFillRect (pDrawable, pGC, nrect, prect);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -176,6 +199,7 @@ void
|
||||||
ExaCheckPolyFillArc (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckPolyFillArc (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int narcs, xArc *pArcs)
|
int narcs, xArc *pArcs)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPolyFillArc (pDrawable, pGC, narcs, pArcs);
|
fbPolyFillArc (pDrawable, pGC, narcs, pArcs);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -186,6 +210,7 @@ ExaCheckImageGlyphBlt (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int x, int y, unsigned int nglyph,
|
int x, int y, unsigned int nglyph,
|
||||||
CharInfoPtr *ppci, pointer pglyphBase)
|
CharInfoPtr *ppci, pointer pglyphBase)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbImageGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
|
fbImageGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -196,6 +221,7 @@ ExaCheckPolyGlyphBlt (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int x, int y, unsigned int nglyph,
|
int x, int y, unsigned int nglyph,
|
||||||
CharInfoPtr *ppci, pointer pglyphBase)
|
CharInfoPtr *ppci, pointer pglyphBase)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPolyGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
|
fbPolyGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -206,6 +232,7 @@ ExaCheckPushPixels (GCPtr pGC, PixmapPtr pBitmap,
|
||||||
DrawablePtr pDrawable,
|
DrawablePtr pDrawable,
|
||||||
int w, int h, int x, int y)
|
int w, int h, int x, int y)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("from 0x%lx to 0x%lx\n", (long)pBitmap, (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPushPixels (pGC, pBitmap, pDrawable, w, h, x, y);
|
fbPushPixels (pGC, pBitmap, pDrawable, w, h, x, y);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -217,6 +244,7 @@ ExaCheckGetImage (DrawablePtr pDrawable,
|
||||||
unsigned int format, unsigned long planeMask,
|
unsigned int format, unsigned long planeMask,
|
||||||
char *d)
|
char *d)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("from 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_SRC);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_SRC);
|
||||||
fbGetImage (pDrawable, x, y, w, h, format, planeMask, d);
|
fbGetImage (pDrawable, x, y, w, h, format, planeMask, d);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_SRC);
|
exaFinishAccess (pDrawable, EXA_PREPARE_SRC);
|
||||||
|
@ -230,6 +258,7 @@ ExaCheckGetSpans (DrawablePtr pDrawable,
|
||||||
int nspans,
|
int nspans,
|
||||||
char *pdstStart)
|
char *pdstStart)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("from 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_SRC);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_SRC);
|
||||||
fbGetSpans (pDrawable, wMax, ppt, pwidth, nspans, pdstStart);
|
fbGetSpans (pDrawable, wMax, ppt, pwidth, nspans, pdstStart);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_SRC);
|
exaFinishAccess (pDrawable, EXA_PREPARE_SRC);
|
||||||
|
@ -242,6 +271,7 @@ ExaCheckSaveAreas (PixmapPtr pPixmap,
|
||||||
int yorg,
|
int yorg,
|
||||||
WindowPtr pWin)
|
WindowPtr pWin)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("from 0x%lx\n", (long)&pPixmap->drawable));
|
||||||
exaPrepareAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
exaPrepareAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
||||||
fbSaveAreas (pPixmap, prgnSave, xorg, yorg, pWin);
|
fbSaveAreas (pPixmap, prgnSave, xorg, yorg, pWin);
|
||||||
exaFinishAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
exaFinishAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
||||||
|
@ -254,6 +284,7 @@ ExaCheckRestoreAreas (PixmapPtr pPixmap,
|
||||||
int yorg,
|
int yorg,
|
||||||
WindowPtr pWin)
|
WindowPtr pWin)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)&pPixmap->drawable));
|
||||||
exaPrepareAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
exaPrepareAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
||||||
fbRestoreAreas (pPixmap, prgnSave, xorg, yorg, pWin);
|
fbRestoreAreas (pPixmap, prgnSave, xorg, yorg, pWin);
|
||||||
exaFinishAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
exaFinishAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
||||||
|
@ -262,6 +293,7 @@ ExaCheckRestoreAreas (PixmapPtr pPixmap,
|
||||||
void
|
void
|
||||||
ExaCheckPaintWindow (WindowPtr pWin, RegionPtr pRegion, int what)
|
ExaCheckPaintWindow (WindowPtr pWin, RegionPtr pRegion, int what)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("from 0x%lx\n", (long)pWin));
|
||||||
exaPrepareAccess (&pWin->drawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (&pWin->drawable, EXA_PREPARE_DEST);
|
||||||
fbPaintWindow (pWin, pRegion, what);
|
fbPaintWindow (pWin, pRegion, what);
|
||||||
exaFinishAccess (&pWin->drawable, EXA_PREPARE_DEST);
|
exaFinishAccess (&pWin->drawable, EXA_PREPARE_DEST);
|
||||||
|
@ -281,6 +313,8 @@ ExaCheckComposite (CARD8 op,
|
||||||
CARD16 width,
|
CARD16 width,
|
||||||
CARD16 height)
|
CARD16 height)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("from picts 0x%lx/0x%lx to pict 0x%lx\n",
|
||||||
|
(long)pSrc, (long)pMask, (long)pDst));
|
||||||
exaPrepareAccess (pDst->pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDst->pDrawable, EXA_PREPARE_DEST);
|
||||||
exaPrepareAccess (pSrc->pDrawable, EXA_PREPARE_SRC);
|
exaPrepareAccess (pSrc->pDrawable, EXA_PREPARE_SRC);
|
||||||
if (pMask)
|
if (pMask)
|
||||||
|
|
|
@ -23,6 +23,17 @@
|
||||||
|
|
||||||
#include "exaPriv.h"
|
#include "exaPriv.h"
|
||||||
|
|
||||||
|
#define EXA_TRACE_FALL 0
|
||||||
|
|
||||||
|
#if EXA_TRACE_FALL
|
||||||
|
#define EXA_FALLBACK(x) \
|
||||||
|
do { \
|
||||||
|
ErrorF("EXA fallback at %s: ", __FUNCTION__); \
|
||||||
|
ErrorF x; \
|
||||||
|
} while (0)
|
||||||
|
#else
|
||||||
|
#define EXA_FALLBACK(x)
|
||||||
|
#endif
|
||||||
/*
|
/*
|
||||||
* These functions wrap the low-level fb rendering functions and
|
* These functions wrap the low-level fb rendering functions and
|
||||||
* synchronize framebuffer/accelerated drawing by stalling until
|
* synchronize framebuffer/accelerated drawing by stalling until
|
||||||
|
@ -33,6 +44,7 @@ void
|
||||||
ExaCheckFillSpans (DrawablePtr pDrawable, GCPtr pGC, int nspans,
|
ExaCheckFillSpans (DrawablePtr pDrawable, GCPtr pGC, int nspans,
|
||||||
DDXPointPtr ppt, int *pwidth, int fSorted)
|
DDXPointPtr ppt, int *pwidth, int fSorted)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbFillSpans (pDrawable, pGC, nspans, ppt, pwidth, fSorted);
|
fbFillSpans (pDrawable, pGC, nspans, ppt, pwidth, fSorted);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -42,6 +54,7 @@ void
|
||||||
ExaCheckSetSpans (DrawablePtr pDrawable, GCPtr pGC, char *psrc,
|
ExaCheckSetSpans (DrawablePtr pDrawable, GCPtr pGC, char *psrc,
|
||||||
DDXPointPtr ppt, int *pwidth, int nspans, int fSorted)
|
DDXPointPtr ppt, int *pwidth, int nspans, int fSorted)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbSetSpans (pDrawable, pGC, psrc, ppt, pwidth, nspans, fSorted);
|
fbSetSpans (pDrawable, pGC, psrc, ppt, pwidth, nspans, fSorted);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -52,6 +65,7 @@ ExaCheckPutImage (DrawablePtr pDrawable, GCPtr pGC, int depth,
|
||||||
int x, int y, int w, int h, int leftPad, int format,
|
int x, int y, int w, int h, int leftPad, int format,
|
||||||
char *bits)
|
char *bits)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPutImage (pDrawable, pGC, depth, x, y, w, h, leftPad, format, bits);
|
fbPutImage (pDrawable, pGC, depth, x, y, w, h, leftPad, format, bits);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -63,6 +77,7 @@ ExaCheckCopyArea (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
|
||||||
{
|
{
|
||||||
RegionPtr ret;
|
RegionPtr ret;
|
||||||
|
|
||||||
|
EXA_FALLBACK(("from 0x%lx to 0x%lx\n", (long)pSrc, (long)pDst));
|
||||||
exaPrepareAccess (pDst, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDst, EXA_PREPARE_DEST);
|
||||||
exaPrepareAccess (pSrc, EXA_PREPARE_SRC);
|
exaPrepareAccess (pSrc, EXA_PREPARE_SRC);
|
||||||
ret = fbCopyArea (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty);
|
ret = fbCopyArea (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty);
|
||||||
|
@ -79,6 +94,7 @@ ExaCheckCopyPlane (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
|
||||||
{
|
{
|
||||||
RegionPtr ret;
|
RegionPtr ret;
|
||||||
|
|
||||||
|
EXA_FALLBACK(("from 0x%lx to 0x%lx\n", (long)pSrc, (long)pDst));
|
||||||
exaPrepareAccess (pDst, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDst, EXA_PREPARE_DEST);
|
||||||
exaPrepareAccess (pSrc, EXA_PREPARE_SRC);
|
exaPrepareAccess (pSrc, EXA_PREPARE_SRC);
|
||||||
ret = fbCopyPlane (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty,
|
ret = fbCopyPlane (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty,
|
||||||
|
@ -93,6 +109,7 @@ void
|
||||||
ExaCheckPolyPoint (DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
|
ExaCheckPolyPoint (DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
|
||||||
DDXPointPtr pptInit)
|
DDXPointPtr pptInit)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPolyPoint (pDrawable, pGC, mode, npt, pptInit);
|
fbPolyPoint (pDrawable, pGC, mode, npt, pptInit);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -102,6 +119,7 @@ void
|
||||||
ExaCheckPolylines (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckPolylines (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int mode, int npt, DDXPointPtr ppt)
|
int mode, int npt, DDXPointPtr ppt)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
|
|
||||||
if (pGC->lineWidth == 0) {
|
if (pGC->lineWidth == 0) {
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -116,6 +134,7 @@ void
|
||||||
ExaCheckPolySegment (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckPolySegment (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int nsegInit, xSegment *pSegInit)
|
int nsegInit, xSegment *pSegInit)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
if (pGC->lineWidth == 0) {
|
if (pGC->lineWidth == 0) {
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPolySegment (pDrawable, pGC, nsegInit, pSegInit);
|
fbPolySegment (pDrawable, pGC, nsegInit, pSegInit);
|
||||||
|
@ -129,6 +148,7 @@ void
|
||||||
ExaCheckPolyRectangle (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckPolyRectangle (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int nrects, xRectangle *prect)
|
int nrects, xRectangle *prect)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
if (pGC->lineWidth == 0) {
|
if (pGC->lineWidth == 0) {
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPolyRectangle (pDrawable, pGC, nrects, prect);
|
fbPolyRectangle (pDrawable, pGC, nrects, prect);
|
||||||
|
@ -142,6 +162,7 @@ void
|
||||||
ExaCheckPolyArc (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckPolyArc (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int narcs, xArc *pArcs)
|
int narcs, xArc *pArcs)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
if (pGC->lineWidth == 0)
|
if (pGC->lineWidth == 0)
|
||||||
{
|
{
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -157,6 +178,7 @@ void
|
||||||
ExaCheckFillPolygon (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckFillPolygon (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int shape, int mode, int count, DDXPointPtr pPts)
|
int shape, int mode, int count, DDXPointPtr pPts)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbFillPolygon (pDrawable, pGC, mode, count, pPts);
|
fbFillPolygon (pDrawable, pGC, mode, count, pPts);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -167,6 +189,7 @@ void
|
||||||
ExaCheckPolyFillRect (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckPolyFillRect (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int nrect, xRectangle *prect)
|
int nrect, xRectangle *prect)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPolyFillRect (pDrawable, pGC, nrect, prect);
|
fbPolyFillRect (pDrawable, pGC, nrect, prect);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -176,6 +199,7 @@ void
|
||||||
ExaCheckPolyFillArc (DrawablePtr pDrawable, GCPtr pGC,
|
ExaCheckPolyFillArc (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int narcs, xArc *pArcs)
|
int narcs, xArc *pArcs)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPolyFillArc (pDrawable, pGC, narcs, pArcs);
|
fbPolyFillArc (pDrawable, pGC, narcs, pArcs);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -186,6 +210,7 @@ ExaCheckImageGlyphBlt (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int x, int y, unsigned int nglyph,
|
int x, int y, unsigned int nglyph,
|
||||||
CharInfoPtr *ppci, pointer pglyphBase)
|
CharInfoPtr *ppci, pointer pglyphBase)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbImageGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
|
fbImageGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -196,6 +221,7 @@ ExaCheckPolyGlyphBlt (DrawablePtr pDrawable, GCPtr pGC,
|
||||||
int x, int y, unsigned int nglyph,
|
int x, int y, unsigned int nglyph,
|
||||||
CharInfoPtr *ppci, pointer pglyphBase)
|
CharInfoPtr *ppci, pointer pglyphBase)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPolyGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
|
fbPolyGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -206,6 +232,7 @@ ExaCheckPushPixels (GCPtr pGC, PixmapPtr pBitmap,
|
||||||
DrawablePtr pDrawable,
|
DrawablePtr pDrawable,
|
||||||
int w, int h, int x, int y)
|
int w, int h, int x, int y)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("from 0x%lx to 0x%lx\n", (long)pBitmap, (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
fbPushPixels (pGC, pBitmap, pDrawable, w, h, x, y);
|
fbPushPixels (pGC, pBitmap, pDrawable, w, h, x, y);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
|
||||||
|
@ -217,6 +244,7 @@ ExaCheckGetImage (DrawablePtr pDrawable,
|
||||||
unsigned int format, unsigned long planeMask,
|
unsigned int format, unsigned long planeMask,
|
||||||
char *d)
|
char *d)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("from 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_SRC);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_SRC);
|
||||||
fbGetImage (pDrawable, x, y, w, h, format, planeMask, d);
|
fbGetImage (pDrawable, x, y, w, h, format, planeMask, d);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_SRC);
|
exaFinishAccess (pDrawable, EXA_PREPARE_SRC);
|
||||||
|
@ -230,6 +258,7 @@ ExaCheckGetSpans (DrawablePtr pDrawable,
|
||||||
int nspans,
|
int nspans,
|
||||||
char *pdstStart)
|
char *pdstStart)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("from 0x%lx\n", (long)pDrawable));
|
||||||
exaPrepareAccess (pDrawable, EXA_PREPARE_SRC);
|
exaPrepareAccess (pDrawable, EXA_PREPARE_SRC);
|
||||||
fbGetSpans (pDrawable, wMax, ppt, pwidth, nspans, pdstStart);
|
fbGetSpans (pDrawable, wMax, ppt, pwidth, nspans, pdstStart);
|
||||||
exaFinishAccess (pDrawable, EXA_PREPARE_SRC);
|
exaFinishAccess (pDrawable, EXA_PREPARE_SRC);
|
||||||
|
@ -242,6 +271,7 @@ ExaCheckSaveAreas (PixmapPtr pPixmap,
|
||||||
int yorg,
|
int yorg,
|
||||||
WindowPtr pWin)
|
WindowPtr pWin)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("from 0x%lx\n", (long)&pPixmap->drawable));
|
||||||
exaPrepareAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
exaPrepareAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
||||||
fbSaveAreas (pPixmap, prgnSave, xorg, yorg, pWin);
|
fbSaveAreas (pPixmap, prgnSave, xorg, yorg, pWin);
|
||||||
exaFinishAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
exaFinishAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
||||||
|
@ -254,6 +284,7 @@ ExaCheckRestoreAreas (PixmapPtr pPixmap,
|
||||||
int yorg,
|
int yorg,
|
||||||
WindowPtr pWin)
|
WindowPtr pWin)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("to 0x%lx\n", (long)&pPixmap->drawable));
|
||||||
exaPrepareAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
exaPrepareAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
||||||
fbRestoreAreas (pPixmap, prgnSave, xorg, yorg, pWin);
|
fbRestoreAreas (pPixmap, prgnSave, xorg, yorg, pWin);
|
||||||
exaFinishAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
exaFinishAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
|
||||||
|
@ -262,6 +293,7 @@ ExaCheckRestoreAreas (PixmapPtr pPixmap,
|
||||||
void
|
void
|
||||||
ExaCheckPaintWindow (WindowPtr pWin, RegionPtr pRegion, int what)
|
ExaCheckPaintWindow (WindowPtr pWin, RegionPtr pRegion, int what)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("from 0x%lx\n", (long)pWin));
|
||||||
exaPrepareAccess (&pWin->drawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (&pWin->drawable, EXA_PREPARE_DEST);
|
||||||
fbPaintWindow (pWin, pRegion, what);
|
fbPaintWindow (pWin, pRegion, what);
|
||||||
exaFinishAccess (&pWin->drawable, EXA_PREPARE_DEST);
|
exaFinishAccess (&pWin->drawable, EXA_PREPARE_DEST);
|
||||||
|
@ -281,6 +313,8 @@ ExaCheckComposite (CARD8 op,
|
||||||
CARD16 width,
|
CARD16 width,
|
||||||
CARD16 height)
|
CARD16 height)
|
||||||
{
|
{
|
||||||
|
EXA_FALLBACK(("from picts 0x%lx/0x%lx to pict 0x%lx\n",
|
||||||
|
(long)pSrc, (long)pMask, (long)pDst));
|
||||||
exaPrepareAccess (pDst->pDrawable, EXA_PREPARE_DEST);
|
exaPrepareAccess (pDst->pDrawable, EXA_PREPARE_DEST);
|
||||||
exaPrepareAccess (pSrc->pDrawable, EXA_PREPARE_SRC);
|
exaPrepareAccess (pSrc->pDrawable, EXA_PREPARE_SRC);
|
||||||
if (pMask)
|
if (pMask)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user