From 199620cdc924e6aa98683e305843ea91c7e1771d Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 30 Jul 2004 20:30:52 +0000 Subject: [PATCH] Bug #400 (partial): Driver fixes for the dlloader. When using dlloader, all framebuffer formats except cfb and the overlay modes should work, and r128 and radeon need to be loaded from the ati driver (both issues to be fixed soon). Tested on i740, s3virge, mach64, tdfx, vesa, and vga drivers. elfloader users shouldn't be affected. --- src/i810_accel.c | 8 ++++---- src/i810_driver.c | 4 ++-- src/i830_accel.c | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/i810_accel.c b/src/i810_accel.c index ca74f966..2b0b594a 100644 --- a/src/i810_accel.c +++ b/src/i810_accel.c @@ -293,7 +293,7 @@ I810SetupForSolidFill(ScrnInfoPtr pScrn, int color, int rop, /* Color blit, p166 */ pI810->BR[13] = (BR13_SOLID_PATTERN | - (XAAPatternROP[rop] << 16) | + (XAAGetPatternROP(rop) << 16) | (pScrn->displayWidth * pI810->cpp)); pI810->BR[16] = color; } @@ -339,7 +339,7 @@ I810SetupForScreenToScreenCopy(ScrnInfoPtr pScrn, int xdir, int ydir, int rop, if (xdir == -1) pI810->BR[13] |= BR13_RIGHT_TO_LEFT; - pI810->BR[13] |= XAACopyROP[rop] << 16; + pI810->BR[13] |= XAAGetCopyROP(rop) << 16; pI810->BR[18] = 0; } @@ -425,7 +425,7 @@ I810SetupForMono8x8PatternFill(ScrnInfoPtr pScrn, int pattx, int patty, pI810->BR[18] = bg; pI810->BR[19] = fg; pI810->BR[13] = (pScrn->displayWidth * pI810->cpp); - pI810->BR[13] |= XAAPatternROP[rop] << 16; + pI810->BR[13] |= XAAGetPatternROP(rop) << 16; if (bg == -1) pI810->BR[13] |= BR13_MONO_PATN_TRANS; } @@ -489,7 +489,7 @@ I810SetupForScanlineCPUToScreenColorExpandFill(ScrnInfoPtr pScrn, fg, bg, rop, planemask); pI810->BR[13] = (pScrn->displayWidth * pI810->cpp); - pI810->BR[13] |= XAACopyROP[rop] << 16; + pI810->BR[13] |= XAAGetCopyROP(rop) << 16; pI810->BR[13] |= (1 << 27); if (bg == -1) pI810->BR[13] |= BR13_MONO_TRANSPCY; diff --git a/src/i810_driver.c b/src/i810_driver.c index 8a6b4e02..f97bacf6 100644 --- a/src/i810_driver.c +++ b/src/i810_driver.c @@ -250,8 +250,8 @@ const char *I810xaaSymbols[] = { "XAACreateInfoRec", "XAADestroyInfoRec", "XAAInit", - "XAACopyROP", - "XAAPatternROP", + "XAAGetCopyROP", + "XAAGetPatternROP", NULL }; diff --git a/src/i830_accel.c b/src/i830_accel.c index 84012fac..d6c2d384 100644 --- a/src/i830_accel.c +++ b/src/i830_accel.c @@ -392,7 +392,7 @@ I830SetupForSolidFill(ScrnInfoPtr pScrn, int color, int rop, ErrorF("I830SetupForFillRectSolid color: %x rop: %x mask: %x\n", color, rop, planemask); - pI830->BR[13] = ((XAAPatternROP[rop] << 16) | + pI830->BR[13] = ((XAAGetPatternROP(rop) << 16) | (pScrn->displayWidth * pI830->cpp)); pI830->BR[16] = color; @@ -448,7 +448,7 @@ I830SetupForScreenToScreenCopy(ScrnInfoPtr pScrn, int xdir, int ydir, int rop, xdir, ydir, rop, planemask, transparency_color); pI830->BR[13] = (pScrn->displayWidth * pI830->cpp); - pI830->BR[13] |= XAACopyROP[rop] << 16; + pI830->BR[13] |= XAAGetCopyROP(rop) << 16; switch (pScrn->bitsPerPixel) { case 8: @@ -514,7 +514,7 @@ I830SetupForMono8x8PatternFill(ScrnInfoPtr pScrn, int pattx, int patty, pI830->BR[19] = fg; pI830->BR[13] = (pScrn->displayWidth * pI830->cpp); /* In bytes */ - pI830->BR[13] |= XAAPatternROP[rop] << 16; + pI830->BR[13] |= XAAGetPatternROP(rop) << 16; if (bg == -1) pI830->BR[13] |= (1 << 28); @@ -603,7 +603,7 @@ I830SetupForScanlineCPUToScreenColorExpandFill(ScrnInfoPtr pScrn, /* Fill out register values */ pI830->BR[13] = (pScrn->displayWidth * pI830->cpp); - pI830->BR[13] |= XAACopyROP[rop] << 16; + pI830->BR[13] |= XAAGetCopyROP(rop) << 16; if (bg == -1) pI830->BR[13] |= (1 << 29); @@ -701,7 +701,7 @@ I830SetupForScanlineImageWrite(ScrnInfoPtr pScrn, int rop, /* Fill out register values */ pI830->BR[13] = (pScrn->displayWidth * pI830->cpp); - pI830->BR[13] |= XAACopyROP[rop] << 16; + pI830->BR[13] |= XAAGetCopyROP(rop) << 16; switch (pScrn->bitsPerPixel) { case 8: