Add tracing. Hack Radeon cache registers to use 3D addresses. Works on M6
This commit is contained in:
parent
6eaca06dac
commit
3b1f1508b1
|
@ -343,6 +343,22 @@ ATIUnmapReg(KdCardInfo *card, ATICardInfo *atic);
|
||||||
void
|
void
|
||||||
R300CGWorkaround(ATIScreenInfo *atis);
|
R300CGWorkaround(ATIScreenInfo *atis);
|
||||||
|
|
||||||
|
#define ATI_TRACE 0
|
||||||
|
|
||||||
|
#if ATI_TRACE
|
||||||
|
#define ENTER_DRAW(pix) ATIEnterDraw(pix, __FUNCTION__)
|
||||||
|
#define LEAVE_DRAW(pix) ATILeaveDraw(pix, __FUNCTION__)
|
||||||
|
|
||||||
|
void
|
||||||
|
ATIEnterDraw (PixmapPtr pPixmap, char *function);
|
||||||
|
|
||||||
|
void
|
||||||
|
ATILeaveDraw (PixmapPtr pPixmap, char *function);
|
||||||
|
#else
|
||||||
|
#define ENTER_DRAW(pix)
|
||||||
|
#define LEAVE_DRAW(pix)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* ati_draw.c */
|
/* ati_draw.c */
|
||||||
void
|
void
|
||||||
ATIDrawSetup(ScreenPtr pScreen);
|
ATIDrawSetup(ScreenPtr pScreen);
|
||||||
|
|
|
@ -153,13 +153,16 @@ ATIDrawSetup(ScreenPtr pScreen)
|
||||||
END_DMA();
|
END_DMA();
|
||||||
|
|
||||||
if (atic->is_r100) {
|
if (atic->is_r100) {
|
||||||
BEGIN_DMA(4);
|
BEGIN_DMA(6);
|
||||||
OUT_REG(RADEON_REG_SE_CNTL_STATUS, RADEON_TCL_BYPASS);
|
OUT_REG(RADEON_REG_SE_CNTL_STATUS, RADEON_TCL_BYPASS);
|
||||||
OUT_REG(RADEON_REG_SE_COORD_FMT,
|
OUT_REG(RADEON_REG_SE_COORD_FMT,
|
||||||
RADEON_VTX_XY_PRE_MULT_1_OVER_W0 |
|
RADEON_VTX_XY_PRE_MULT_1_OVER_W0 |
|
||||||
RADEON_VTX_ST0_NONPARAMETRIC |
|
RADEON_VTX_ST0_NONPARAMETRIC |
|
||||||
RADEON_VTX_ST1_NONPARAMETRIC |
|
RADEON_VTX_ST1_NONPARAMETRIC |
|
||||||
RADEON_TEX1_W_ROUTING_USE_W0);
|
RADEON_TEX1_W_ROUTING_USE_W0);
|
||||||
|
OUT_REG(RADEON_REG_RB3D_DSTCACHE_MODE,
|
||||||
|
RADEON_RB2D_DC_2D_CACHE_AUTOFLUSH|
|
||||||
|
RADEON_RB2D_DC_3D_CACHE_AUTOFLUSH);
|
||||||
END_DMA();
|
END_DMA();
|
||||||
} else {
|
} else {
|
||||||
BEGIN_DMA(16);
|
BEGIN_DMA(16);
|
||||||
|
@ -186,12 +189,14 @@ RadeonSwitchTo2D(ATIScreenInfo *atis)
|
||||||
{
|
{
|
||||||
RING_LOCALS;
|
RING_LOCALS;
|
||||||
|
|
||||||
|
ENTER_DRAW(0);
|
||||||
BEGIN_DMA(4);
|
BEGIN_DMA(4);
|
||||||
OUT_REG(RADEON_REG_RB2D_DSTCACHE_CTLSTAT,
|
OUT_REG(RADEON_REG_RB2D_DSTCACHE_CTLSTAT,
|
||||||
RADEON_RB2D_DC_FLUSH);
|
RADEON_RB2D_DC_FLUSH);
|
||||||
OUT_REG(ATI_REG_WAIT_UNTIL,
|
OUT_REG(ATI_REG_WAIT_UNTIL,
|
||||||
RADEON_WAIT_HOST_IDLECLEAN | RADEON_WAIT_3D_IDLECLEAN);
|
RADEON_WAIT_HOST_IDLECLEAN | RADEON_WAIT_3D_IDLECLEAN);
|
||||||
END_DMA();
|
END_DMA();
|
||||||
|
LEAVE_DRAW(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -199,14 +204,52 @@ RadeonSwitchTo3D(ATIScreenInfo *atis)
|
||||||
{
|
{
|
||||||
RING_LOCALS;
|
RING_LOCALS;
|
||||||
|
|
||||||
|
ENTER_DRAW(0);
|
||||||
BEGIN_DMA(4);
|
BEGIN_DMA(4);
|
||||||
OUT_REG(RADEON_REG_RB2D_DSTCACHE_CTLSTAT,
|
OUT_REG(RADEON_REG_RB2D_DSTCACHE_CTLSTAT,
|
||||||
RADEON_RB2D_DC_FLUSH);
|
RADEON_RB2D_DC_FLUSH);
|
||||||
OUT_REG(ATI_REG_WAIT_UNTIL,
|
OUT_REG(ATI_REG_WAIT_UNTIL,
|
||||||
RADEON_WAIT_HOST_IDLECLEAN | RADEON_WAIT_2D_IDLECLEAN);
|
RADEON_WAIT_HOST_IDLECLEAN | RADEON_WAIT_2D_IDLECLEAN);
|
||||||
END_DMA();
|
END_DMA();
|
||||||
|
LEAVE_DRAW(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if ATI_TRACE
|
||||||
|
void
|
||||||
|
ATIEnterDraw (PixmapPtr pPix, char *function)
|
||||||
|
{
|
||||||
|
if (pPix)
|
||||||
|
{
|
||||||
|
KdScreenPriv(pPix->drawable.pScreen);
|
||||||
|
CARD32 offset;
|
||||||
|
|
||||||
|
offset = ((CARD8 *)pPix->devPrivate.ptr -
|
||||||
|
pScreenPriv->screen->memory_base);
|
||||||
|
|
||||||
|
ErrorF ("Enter %s 0x%x\n", function, offset);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ErrorF ("Enter %s\n", function);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ATILeaveDraw (PixmapPtr pPix, char *function)
|
||||||
|
{
|
||||||
|
if (pPix)
|
||||||
|
{
|
||||||
|
KdScreenPriv(pPix->drawable.pScreen);
|
||||||
|
CARD32 offset;
|
||||||
|
|
||||||
|
offset = ((CARD8 *)pPix->devPrivate.ptr -
|
||||||
|
pScreenPriv->screen->memory_base);
|
||||||
|
|
||||||
|
ErrorF ("Leave %s 0x%x\n", function, offset);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ErrorF ("Leave %s\n", function);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Assumes that depth 15 and 16 can be used as depth 16, which is okay since we
|
/* Assumes that depth 15 and 16 can be used as depth 16, which is okay since we
|
||||||
* require src and dest datatypes to be equal.
|
* require src and dest datatypes to be equal.
|
||||||
*/
|
*/
|
||||||
|
@ -310,6 +353,8 @@ ATIPrepareSolid(PixmapPtr pPix, int alu, Pixel pm, Pixel fg)
|
||||||
if (!ATIGetPixmapOffsetPitch(pPix, &dst_pitch_offset))
|
if (!ATIGetPixmapOffsetPitch(pPix, &dst_pitch_offset))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
ENTER_DRAW(pPix);
|
||||||
|
|
||||||
if (atic->is_radeon)
|
if (atic->is_radeon)
|
||||||
RadeonSwitchTo2D(atis);
|
RadeonSwitchTo2D(atis);
|
||||||
|
|
||||||
|
@ -344,12 +389,14 @@ ATIPrepareSolid(PixmapPtr pPix, int alu, Pixel pm, Pixel fg)
|
||||||
END_DMA();
|
END_DMA();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
LEAVE_DRAW(pPix);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
ATISolid(int x1, int y1, int x2, int y2)
|
ATISolid(int x1, int y1, int x2, int y2)
|
||||||
{
|
{
|
||||||
|
ENTER_DRAW(0);
|
||||||
ATIScreenInfo *atis = accel_atis;
|
ATIScreenInfo *atis = accel_atis;
|
||||||
RING_LOCALS;
|
RING_LOCALS;
|
||||||
|
|
||||||
|
@ -373,11 +420,14 @@ ATISolid(int x1, int y1, int x2, int y2)
|
||||||
OUT_RING(((y2 - y1) << 16) | (x2 - x1));
|
OUT_RING(((y2 - y1) << 16) | (x2 - x1));
|
||||||
END_DMA();
|
END_DMA();
|
||||||
#endif
|
#endif
|
||||||
|
LEAVE_DRAW(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
ATIDoneSolid(void)
|
ATIDoneSolid(void)
|
||||||
{
|
{
|
||||||
|
ENTER_DRAW(0);
|
||||||
|
LEAVE_DRAW(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Bool
|
static Bool
|
||||||
|
@ -405,6 +455,7 @@ ATIPrepareCopy(PixmapPtr pSrc, PixmapPtr pDst, int dx, int dy, int alu, Pixel pm
|
||||||
if (!ATIGetPixmapOffsetPitch(pDst, &dst_pitch_offset))
|
if (!ATIGetPixmapOffsetPitch(pDst, &dst_pitch_offset))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
ENTER_DRAW (pDst);
|
||||||
if (atic->is_radeon)
|
if (atic->is_radeon)
|
||||||
RadeonSwitchTo2D(atis);
|
RadeonSwitchTo2D(atis);
|
||||||
|
|
||||||
|
@ -442,6 +493,7 @@ ATIPrepareCopy(PixmapPtr pSrc, PixmapPtr pDst, int dx, int dy, int alu, Pixel pm
|
||||||
(dy >= 0 ? ATI_DST_Y_TOP_TO_BOTTOM : 0));
|
(dy >= 0 ? ATI_DST_Y_TOP_TO_BOTTOM : 0));
|
||||||
END_DMA();
|
END_DMA();
|
||||||
#endif
|
#endif
|
||||||
|
LEAVE_DRAW(pDst);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -508,6 +560,8 @@ ATIUploadToScreen(PixmapPtr pDst, char *src, int src_pitch)
|
||||||
Bool success;
|
Bool success;
|
||||||
RING_LOCALS;
|
RING_LOCALS;
|
||||||
|
|
||||||
|
ENTER_DRAW (pDst);
|
||||||
|
|
||||||
dst_offset = ((CARD8 *)pDst->devPrivate.ptr -
|
dst_offset = ((CARD8 *)pDst->devPrivate.ptr -
|
||||||
pScreenPriv->screen->memory_base);
|
pScreenPriv->screen->memory_base);
|
||||||
dst_pitch = pDst->devKind;
|
dst_pitch = pDst->devKind;
|
||||||
|
@ -534,6 +588,8 @@ ATIUploadToScreen(PixmapPtr pDst, char *src, int src_pitch)
|
||||||
if (atis->using_pio)
|
if (atis->using_pio)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
LEAVE_DRAW (pDst);
|
||||||
|
|
||||||
/* XXX: Hostdata uploads aren't working yet. */
|
/* XXX: Hostdata uploads aren't working yet. */
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
@ -545,7 +601,7 @@ ATIUploadToScreen(PixmapPtr pDst, char *src, int src_pitch)
|
||||||
if (atic->is_radeon) {
|
if (atic->is_radeon) {
|
||||||
BEGIN_DMA(4);
|
BEGIN_DMA(4);
|
||||||
OUT_REG(RADEON_REG_RB2D_DSTCACHE_CTLSTAT,
|
OUT_REG(RADEON_REG_RB2D_DSTCACHE_CTLSTAT,
|
||||||
RADEON_RB2D_DC_FLUSH);
|
RADEON_RB2D_DC_FLUSH_ALL);
|
||||||
OUT_REG(ATI_REG_WAIT_UNTIL,
|
OUT_REG(ATI_REG_WAIT_UNTIL,
|
||||||
RADEON_WAIT_2D_IDLECLEAN |
|
RADEON_WAIT_2D_IDLECLEAN |
|
||||||
RADEON_WAIT_3D_IDLECLEAN |
|
RADEON_WAIT_3D_IDLECLEAN |
|
||||||
|
@ -586,7 +642,7 @@ ATIUploadToScreen(PixmapPtr pDst, char *src, int src_pitch)
|
||||||
if (atic->is_radeon) {
|
if (atic->is_radeon) {
|
||||||
BEGIN_DMA(4);
|
BEGIN_DMA(4);
|
||||||
OUT_REG(RADEON_REG_RB2D_DSTCACHE_CTLSTAT,
|
OUT_REG(RADEON_REG_RB2D_DSTCACHE_CTLSTAT,
|
||||||
RADEON_RB2D_DC_FLUSH);
|
RADEON_RB2D_DC_FLUSH_ALL);
|
||||||
OUT_REG(ATI_REG_WAIT_UNTIL,
|
OUT_REG(ATI_REG_WAIT_UNTIL,
|
||||||
RADEON_WAIT_2D_IDLECLEAN |
|
RADEON_WAIT_2D_IDLECLEAN |
|
||||||
RADEON_WAIT_HOST_IDLECLEAN);
|
RADEON_WAIT_HOST_IDLECLEAN);
|
||||||
|
@ -615,6 +671,7 @@ ATIUploadToScratch(PixmapPtr pSrc, PixmapPtr pDst)
|
||||||
unsigned char *dst, *src;
|
unsigned char *dst, *src;
|
||||||
RING_LOCALS;
|
RING_LOCALS;
|
||||||
|
|
||||||
|
ENTER_DRAW(pSrc);
|
||||||
/* Align width to log 2, useful for R128 composite. This should be a
|
/* Align width to log 2, useful for R128 composite. This should be a
|
||||||
* KAA flag we check for (and supported in kaa.c in general) since many
|
* KAA flag we check for (and supported in kaa.c in general) since many
|
||||||
* older bits of hardware are going to want POT pitches.
|
* older bits of hardware are going to want POT pitches.
|
||||||
|
@ -669,6 +726,7 @@ ATIUploadToScratch(PixmapPtr pSrc, PixmapPtr pDst)
|
||||||
END_DMA();
|
END_DMA();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LEAVE_DRAW(pSrc);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -761,6 +819,7 @@ ATIDrawEnable(ScreenPtr pScreen)
|
||||||
ATIDMASetup(pScreen);
|
ATIDMASetup(pScreen);
|
||||||
ATIDrawSetup(pScreen);
|
ATIDrawSetup(pScreen);
|
||||||
|
|
||||||
|
atis->scratch_area = NULL;
|
||||||
atis->kaa.PrepareBlend = NULL;
|
atis->kaa.PrepareBlend = NULL;
|
||||||
atis->kaa.Blend = NULL;
|
atis->kaa.Blend = NULL;
|
||||||
atis->kaa.DoneBlend = NULL;
|
atis->kaa.DoneBlend = NULL;
|
||||||
|
@ -768,7 +827,10 @@ ATIDrawEnable(ScreenPtr pScreen)
|
||||||
atis->kaa.PrepareComposite = NULL;
|
atis->kaa.PrepareComposite = NULL;
|
||||||
atis->kaa.Composite = NULL;
|
atis->kaa.Composite = NULL;
|
||||||
atis->kaa.DoneComposite = NULL;
|
atis->kaa.DoneComposite = NULL;
|
||||||
|
atis->kaa.UploadToScreen = NULL;
|
||||||
|
atis->kaa.UploadToScratch = NULL;
|
||||||
|
|
||||||
|
#if 1
|
||||||
/* We can't dispatch 3d commands in PIO mode. */
|
/* We can't dispatch 3d commands in PIO mode. */
|
||||||
if (!atis->using_pio) {
|
if (!atis->using_pio) {
|
||||||
if (!atic->is_radeon) {
|
if (!atic->is_radeon) {
|
||||||
|
@ -813,8 +875,8 @@ ATIDrawEnable(ScreenPtr pScreen)
|
||||||
if (atis->scratch_area != NULL) {
|
if (atis->scratch_area != NULL) {
|
||||||
atis->scratch_next = atis->scratch_area->offset;
|
atis->scratch_next = atis->scratch_area->offset;
|
||||||
atis->kaa.UploadToScratch = ATIUploadToScratch;
|
atis->kaa.UploadToScratch = ATIUploadToScratch;
|
||||||
} else
|
}
|
||||||
atis->kaa.UploadToScratch = NULL;
|
#endif
|
||||||
|
|
||||||
KdMarkSync(pScreen);
|
KdMarkSync(pScreen);
|
||||||
}
|
}
|
||||||
|
@ -850,5 +912,7 @@ ATIDrawSync(ScreenPtr pScreen)
|
||||||
KdScreenPriv(pScreen);
|
KdScreenPriv(pScreen);
|
||||||
ATIScreenInfo(pScreenPriv);
|
ATIScreenInfo(pScreenPriv);
|
||||||
|
|
||||||
|
ENTER_DRAW(0);
|
||||||
ATIWaitIdle(atis);
|
ATIWaitIdle(atis);
|
||||||
|
LEAVE_DRAW(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1715,7 +1715,26 @@
|
||||||
# define R200_TXA_REPL_ARG_C_SHIFT 30
|
# define R200_TXA_REPL_ARG_C_SHIFT 30
|
||||||
# define R200_TXA_REPL_ARG_C_MASK (3 << 30)
|
# define R200_TXA_REPL_ARG_C_MASK (3 << 30)
|
||||||
|
|
||||||
#define RADEON_REG_RB2D_DSTCACHE_CTLSTAT 0x342c
|
#define RADEON_REG_RB2D_DSTCACHE_MODE 0x3428
|
||||||
|
#define RADEON_REG_RB3D_DSTCACHE_MODE 0x3258
|
||||||
|
# define RADEON_RB2D_DC_CACHE_ENABLE 0
|
||||||
|
# define RADEON_RB2D_DC_2D_CACHE_DISABLE 1
|
||||||
|
# define RADEON_RB2D_DC_3D_CACHE_DISABLE 1
|
||||||
|
# define RADEON_RB2D_DC_CACHE_DISABLE 3
|
||||||
|
# define RADEON_RB2D_DC_2D_CACHE_LINESIZE_128 4
|
||||||
|
# define RADEON_RB2D_DC_3D_CACHE_LINESIZE_128 8
|
||||||
|
# define RADEON_RB2D_DC_2D_CACHE_AUTOFLUSH 0x100
|
||||||
|
# define RADEON_RB2D_DC_3D_CACHE_AUTOFLUSH 0x200
|
||||||
|
# define RADEON_RB2D_DC_FORCE_RMW 0x10000
|
||||||
|
# define RADEON_RB2D_DC_DISABLE_RI_FILL 0x1000000
|
||||||
|
# define RADEON_RB2D_DC_DISABLE_RI_READ 0x2000000
|
||||||
|
|
||||||
|
/* XXX The 2D shadow isn't writable on the M6. The right fix is to rename
|
||||||
|
* all uses, but Eric is doing that
|
||||||
|
*/
|
||||||
|
/* #define RADEON_REG_RB2D_DSTCACHE_CTLSTAT 0x342C */
|
||||||
|
#define RADEON_REG_RB2D_DSTCACHE_CTLSTAT 0x325C
|
||||||
|
#define RADEON_REG_RB3D_DSTCACHE_CTLSTAT 0x325C
|
||||||
# define RADEON_RB2D_DC_FLUSH (3 << 0)
|
# define RADEON_RB2D_DC_FLUSH (3 << 0)
|
||||||
# define RADEON_RB2D_DC_FREE (3 << 2)
|
# define RADEON_RB2D_DC_FREE (3 << 2)
|
||||||
# define RADEON_RB2D_DC_FLUSH_ALL 0xf
|
# define RADEON_RB2D_DC_FLUSH_ALL 0xf
|
||||||
|
|
|
@ -251,6 +251,9 @@ R100CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture,
|
||||||
if (pMaskPicture != NULL && !R100CheckCompositeTexture(pMaskPicture, 1))
|
if (pMaskPicture != NULL && !R100CheckCompositeTexture(pMaskPicture, 1))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
if (pDstPicture->componentAlpha)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
if (!RadeonGetDestFormat(pDstPicture, &tmp1))
|
if (!RadeonGetDestFormat(pDstPicture, &tmp1))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
@ -293,6 +296,8 @@ R100PrepareComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture,
|
||||||
is_transform[1] = FALSE;
|
is_transform[1] = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ENTER_DRAW(pDst);
|
||||||
|
|
||||||
RadeonSwitchTo3D(atis);
|
RadeonSwitchTo3D(atis);
|
||||||
|
|
||||||
BEGIN_DMA(12);
|
BEGIN_DMA(12);
|
||||||
|
@ -357,6 +362,8 @@ R100PrepareComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture,
|
||||||
OUT_REG(RADEON_REG_RB3D_BLENDCNTL, blendcntl);
|
OUT_REG(RADEON_REG_RB3D_BLENDCNTL, blendcntl);
|
||||||
END_DMA();
|
END_DMA();
|
||||||
|
|
||||||
|
LEAVE_DRAW(pDst);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -621,6 +628,8 @@ RadeonComposite(int srcX, int srcY, int maskX, int maskY, int dstX, int dstY,
|
||||||
RING_LOCALS;
|
RING_LOCALS;
|
||||||
PictVector v;
|
PictVector v;
|
||||||
|
|
||||||
|
ENTER_DRAW(0);
|
||||||
|
|
||||||
/*ErrorF("RadeonComposite (%d,%d) (%d,%d) (%d,%d) (%d,%d)\n",
|
/*ErrorF("RadeonComposite (%d,%d) (%d,%d) (%d,%d) (%d,%d)\n",
|
||||||
srcX, srcY, maskX, maskY,dstX, dstY, w, h);*/
|
srcX, srcY, maskX, maskY,dstX, dstY, w, h);*/
|
||||||
|
|
||||||
|
@ -683,12 +692,16 @@ RadeonComposite(int srcX, int srcY, int maskX, int maskY, int dstX, int dstY,
|
||||||
VTX_OUT(dstX + w, dstY + h, srcXend, srcYend, maskXend, maskYend);
|
VTX_OUT(dstX + w, dstY + h, srcXend, srcYend, maskXend, maskYend);
|
||||||
VTX_OUT(dstX + w, dstY, srcXend, srcY, maskXend, maskY);
|
VTX_OUT(dstX + w, dstY, srcXend, srcY, maskXend, maskY);
|
||||||
|
|
||||||
|
LEAVE_DRAW(0);
|
||||||
|
|
||||||
END_DMA();
|
END_DMA();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
RadeonDoneComposite(void)
|
RadeonDoneComposite(void)
|
||||||
{
|
{
|
||||||
|
ENTER_DRAW(0);
|
||||||
|
LEAVE_DRAW(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
Bool
|
Bool
|
||||||
|
|
Loading…
Reference in New Issue