diff options
author | Michel Dänzer <michel@tungstengraphics.com> | 2006-09-30 19:25:20 +0200 |
---|---|---|
committer | Michel Dänzer <michel@tungstengraphics.com> | 2006-09-30 19:25:20 +0200 |
commit | d43ad88fa3913437f6987ab5ab46a38f0cb555a8 (patch) | |
tree | ecf6c5c7334fc3a7fd16a8fd65bd24a2c6d582bb /src/radeon.h | |
parent | 146ea328b7962f56c6ab47fbe2adc7561b36189c (diff) |
radeon: Add support for page flipping with EXA.
Also use the damage layer directly instead of via shadowfb and blit dirty
rectangles to the second page in LeaveServer in order to try and improve the
tradeoff between performance and correctness.
Diffstat (limited to 'src/radeon.h')
-rw-r--r-- | src/radeon.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/radeon.h b/src/radeon.h index 73b3538..8068cd9 100644 --- a/src/radeon.h +++ b/src/radeon.h @@ -71,6 +71,10 @@ #include "radeon_dripriv.h" #include "dri.h" #include "GL/glxint.h" +#ifdef DAMAGE +#include "damage.h" +#include "globals.h" +#endif #endif /* Render support */ @@ -599,6 +603,9 @@ typedef struct { Bool depthMoves; /* Enable depth moves -- slow! */ Bool allowPageFlip; /* Enable 3d page flipping */ +#ifdef DAMAGE + DamagePtr pDamage; +#endif Bool have3DWindows; /* Are there any 3d clients? */ drmSize gartSize; @@ -847,7 +854,17 @@ extern Bool RADEONAccelInit(ScreenPtr pScreen); extern Bool RADEONSetupMemEXA (ScreenPtr pScreen); extern Bool RADEONDrawInitMMIO(ScreenPtr pScreen); #ifdef XF86DRI +extern Bool RADEONGetDatatypeBpp(int bpp, CARD32 *type); +extern Bool RADEONGetPixmapOffsetPitch(PixmapPtr pPix, + CARD32 *pitch_offset); extern Bool RADEONDrawInitCP(ScreenPtr pScreen); +extern void RADEONDoPrepareCopyCP(ScrnInfoPtr pScrn, + CARD32 src_pitch_offset, + CARD32 dst_pitch_offset, + CARD32 datatype, int rop, + Pixel planemask); +extern void RADEONCopyCP(PixmapPtr pDst, int srcX, int srcY, int dstX, + int dstY, int w, int h); #endif #endif #ifdef USE_XAA @@ -898,7 +915,6 @@ extern void RADEONDRICloseScreen(ScreenPtr pScreen); extern void RADEONDRIResume(ScreenPtr pScreen); extern Bool RADEONDRIFinishScreenInit(ScreenPtr pScreen); extern void RADEONDRIAllocatePCIGARTTable(ScreenPtr pScreen); -extern void RADEONDRIInitPageFlip(ScreenPtr pScreen); extern void RADEONDRIStop(ScreenPtr pScreen); extern drmBufPtr RADEONCPGetBuffer(ScrnInfoPtr pScrn); |