Module Name: xsrc Committed By: macallan Date: Tue Jul 8 17:05:27 UTC 2014
Modified Files: xsrc/external/mit/xf86-video-suntcx/dist/src: tcx.h tcx_accel.c tcx_driver.c Log Message: if the hardware supports stipples with ROPs, use them while there, downgrade some config output from X_ERROR to X_PROBED To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 xsrc/external/mit/xf86-video-suntcx/dist/src/tcx.h cvs rdiff -u -r1.8 -r1.9 \ xsrc/external/mit/xf86-video-suntcx/dist/src/tcx_accel.c \ xsrc/external/mit/xf86-video-suntcx/dist/src/tcx_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: xsrc/external/mit/xf86-video-suntcx/dist/src/tcx.h diff -u xsrc/external/mit/xf86-video-suntcx/dist/src/tcx.h:1.6 xsrc/external/mit/xf86-video-suntcx/dist/src/tcx.h:1.7 --- xsrc/external/mit/xf86-video-suntcx/dist/src/tcx.h:1.6 Wed Jul 2 11:54:48 2014 +++ xsrc/external/mit/xf86-video-suntcx/dist/src/tcx.h Tue Jul 8 17:05:26 2014 @@ -59,6 +59,7 @@ typedef struct { CloseScreenProcPtr CloseScreen; Bool HWCursor; Bool Is8bit; + Bool HasStipROP; int vramsize; /* size of the 8bit fb */ uint64_t *rblit; uint64_t *rstip; Index: xsrc/external/mit/xf86-video-suntcx/dist/src/tcx_accel.c diff -u xsrc/external/mit/xf86-video-suntcx/dist/src/tcx_accel.c:1.8 xsrc/external/mit/xf86-video-suntcx/dist/src/tcx_accel.c:1.9 --- xsrc/external/mit/xf86-video-suntcx/dist/src/tcx_accel.c:1.8 Wed Jul 2 11:54:48 2014 +++ xsrc/external/mit/xf86-video-suntcx/dist/src/tcx_accel.c Tue Jul 8 17:05:26 2014 @@ -21,7 +21,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/* $NetBSD: tcx_accel.c,v 1.8 2014/07/02 11:54:48 macallan Exp $ */ +/* $NetBSD: tcx_accel.c,v 1.9 2014/07/08 17:05:26 macallan Exp $ */ #include <sys/types.h> @@ -178,22 +178,29 @@ TcxPrepareSolid( { ScrnInfoPtr pScreenInfo = xf86Screens[pPixmap->drawable.pScreen->myNum]; TcxPtr pTcx = GET_TCX_FROM_SCRN(pScreenInfo); + uint32_t hwfg; ENTER; + /* weed out the cases we can't accelerate */ - if (alu != GXcopy) + if (pTcx->HasStipROP) { + hwfg = alu << 28; + } else if (alu == GXcopy) { + hwfg = 0x30000000; + } else return FALSE; + if ((planemask != 0xffffffff) && (planemask != 0x00ffffff)) return FALSE; if (exaGetPixmapOffset(pPixmap) != 0) return FALSE; pTcx->fg = (fg & 0x00ffffff); - if (pTcx->pitchshift == 0) { - pTcx->fg |= 0x30000000; - } else - pTcx->fg |= 0x33000000; + /* set colour space ID if we're in 24bit mode */ + if (pTcx->pitchshift != 0) + hwfg |= 0x03000000; + pTcx->fg |= hwfg; #ifdef DEBUG - xf86Msg(X_ERROR, "fg: %08x\n", fg); + xf86Msg(X_ERROR, "fg: %08x\n", hwfg); #endif LEAVE; return TRUE; Index: xsrc/external/mit/xf86-video-suntcx/dist/src/tcx_driver.c diff -u xsrc/external/mit/xf86-video-suntcx/dist/src/tcx_driver.c:1.8 xsrc/external/mit/xf86-video-suntcx/dist/src/tcx_driver.c:1.9 --- xsrc/external/mit/xf86-video-suntcx/dist/src/tcx_driver.c:1.8 Wed Jul 2 11:54:48 2014 +++ xsrc/external/mit/xf86-video-suntcx/dist/src/tcx_driver.c Tue Jul 8 17:05:26 2014 @@ -345,7 +345,9 @@ TCXPreInit(ScrnInfoPtr pScrn, int flags) prom = sparcPromInit(); hwCursor = sparcPromGetBool(&psdp->node, "hw-cursor"); lowDepth = sparcPromGetBool(&psdp->node, "tcx-8-bit"); - + if (pTcx->HasStipROP = sparcPromGetBool(&psdp->node, "stip-rop")) { + xf86Msg(X_PROBED, "stipple space supports ROPs\n"); + } pTcx->Is8bit = (lowDepth != 0); /* all S24 support a hardware cursor */ if (!lowDepth) { @@ -362,13 +364,14 @@ TCXPreInit(ScrnInfoPtr pScrn, int flags) if ((v > 0) && (v < 3)) pTcx->vramsize = 0x100000 * v; } - xf86Msg(X_ERROR, "found %d MB video memory\n", v); + xf86Msg(X_PROBED, "found %d MB video memory\n", v); } if (prom) sparcPromClose(); - xf86Msg(X_ERROR, "hw-cursor: %d\n", hwCursor); + xf86Msg(X_PROBED, "hardware cursor support %s\n", + hwCursor ? "found" : "not found"); /********************* deal with depth