summaryrefslogtreecommitdiff
path: root/src/radeon.h
diff options
context:
space:
mode:
authorMichel Dänzer <michel@tungstengraphics.com>2006-09-30 19:25:20 +0200
committerMichel Dänzer <michel@tungstengraphics.com>2006-09-30 19:25:20 +0200
commitd43ad88fa3913437f6987ab5ab46a38f0cb555a8 (patch)
treeecf6c5c7334fc3a7fd16a8fd65bd24a2c6d582bb /src/radeon.h
parent146ea328b7962f56c6ab47fbe2adc7561b36189c (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.h18
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);