xserver/hw/kdrive/ati radeon_composite.c,1.17,1.18
Keith Packard <xserver-commit-u7BhqnqprCWvj1b/[email protected]> Tue, 8 Feb 2005 14:43:56 -0800 (PST)
| Newsgroups | gmane.comp.freedesktop.xserver.cvs |
|---|---|
| Message-ID | <[email protected]> |
Committed by: keithp Update of /cvs/xserver/xserver/hw/kdrive/ati In directory gabe:/tmp/cvs-serv18753/hw/kdrive/ati Modified Files: radeon_composite.c Log Message: 2005-02-08 Keith Packard <[email protected]> * hw/kdrive/ati/radeon_composite.c Support linear filtering * hw/kdrive/fbdev/fbinit.c: (InitInput): * hw/kdrive/ipaq/ipaq.c: (InitInput): * hw/kdrive/linux/Makefile.am: * hw/kdrive/linux/linux.c: (LinuxFini): * hw/kdrive/mach64/mach64stub.c: (InitCard): * hw/kdrive/src/kaa.c: (kaaFillTiled): * hw/kdrive/src/kaa.h: * hw/kdrive/src/kdrive.h: * hw/kdrive/src/kinput.c: (KdMouseProc), (KdAddMouseDriver), (KdInitInput): Change how touch screens work -- make them just another 'mouse' device. Add unfinished (and unused) code to accelerate tiled fills. Index: radeon_composite.c =================================================================== RCS file: /cvs/xserver/xserver/hw/kdrive/ati/radeon_composite.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- radeon_composite.c 27 Jan 2005 05:25:57 -0000 1.17 +++ radeon_composite.c 8 Feb 2005 22:43:53 -0000 1.18 @@ -164,7 +164,7 @@ { ATIScreenInfo *atis = accel_atis; KdScreenPriv(pPix->drawable.pScreen); - CARD32 txformat, txoffset, txpitch; + CARD32 txfilter, txformat, txoffset, txpitch; int w = pPict->pDrawable->width; int h = pPict->pDrawable->height; int i; @@ -196,10 +196,24 @@ if ((txpitch & 0x1f) != 0) ATI_FALLBACK(("Bad texture pitch 0x%x\n", txpitch)); + switch (pPict->filter) { + case PictFilterNearest: + txfilter = (RADEON_MAG_FILTER_NEAREST | + RADEON_MIN_FILTER_NEAREST); + break; + case PictFilterBilinear: + txfilter = (RADEON_MAG_FILTER_LINEAR | + RADEON_MIN_FILTER_LINEAR); + break; + default: + ATI_FALLBACK (("Bad filter 0x%x\n", pPict->filter)); + break; + } + BEGIN_DMA(7); if (unit == 0) { OUT_RING(DMA_PACKET0(RADEON_REG_PP_TXFILTER_0, 3)); - OUT_RING_REG(RADEON_REG_PP_TXFILTER_0, 0); + OUT_RING_REG(RADEON_REG_PP_TXFILTER_0, txfilter); OUT_RING_REG(RADEON_REG_PP_TXFORMAT_0, txformat); OUT_RING_REG(RADEON_REG_PP_TXOFFSET_0, txoffset); OUT_RING(DMA_PACKET0(RADEON_REG_PP_TEX_SIZE_0, 2)); @@ -209,7 +223,7 @@ OUT_RING_REG(RADEON_REG_PP_TEX_PITCH_0, txpitch - 32); } else { OUT_RING(DMA_PACKET0(RADEON_REG_PP_TXFILTER_1, 3)); - OUT_RING_REG(RADEON_REG_PP_TXFILTER_1, 0); + OUT_RING_REG(RADEON_REG_PP_TXFILTER_1, txfilter); OUT_RING_REG(RADEON_REG_PP_TXFORMAT_1, txformat); OUT_RING_REG(RADEON_REG_PP_TXOFFSET_1, txoffset); OUT_RING(DMA_PACKET0(RADEON_REG_PP_TEX_SIZE_1, 2));