Does the via driver support 3D with dualhead? It seems to. I noticed the following code in via_context.c:
GLboolean saam; int count = 0, fbSize; saam = XineramaIsActive(vmesa->display); if (saam && vmesa->viaScreen->drixinerama) { vmesa->xsi = XineramaQueryScreens(vmesa->display, &count); /* Test RightOf or Down */ if (vmesa->xsi[0].x_org == 0 && vmesa->xsi[0].y_org == 0) { if (vmesa->xsi[1].x_org == vmesa->xsi[1].width) { vmesa->saam = RightOf; } else { vmesa->saam = Down; } } /* Test LeftOf or Up */ else if (vmesa->xsi[0].x_org == vmesa->xsi[0].width) { vmesa->saam = LeftOf; } else if (vmesa->xsi[0].y_org == vmesa->xsi[0].height) { vmesa->saam = Up; } else vmesa->saam = 0; fbSize = vmesa->viaScreen->fbSize; } else vmesa->saam = 0; } vmesa->pSaamRects = (XF86DRIClipRectPtr) malloc(sizeof(XF86DRIClipRectRec)); return GL_TRUE; and later: switch (side) { case RightOf: /* full in screen 1 */ if (vmesa->drawX >= vmesa->xsi[0].width) { vmesa->viaScreen->fbOffset = vmesa->viaScreen->fbSize; vmesa->drawX = vmesa->drawX - vmesa->xsi[1].width; vmesa->numClipRects = dPriv->numBackClipRects; vmesa->pClipRects = dPriv->pBackClipRects; vmesa->drawX = dPriv->backX; vmesa->drawY = dPriv->backY; vmesa->saam &= ~S0; vmesa->saam |= S1; } /* full in screen 0 */ else if ((vmesa->drawX + vmesa->drawW) <= vmesa->xsi[0].width) { vmesa->viaScreen->fbOffset = 0; vmesa->saam &= ~S1; vmesa->saam |= S0; } /* between screen 0 && screen 1 */ else { vmesa->numSaamRects = dPriv->numBackClipRects; vmesa->pSaamRects = dPriv->pBackClipRects; vmesa->drawXSaam = dPriv->backX; vmesa->drawYSaam = dPriv->backY; vmesa->viaScreen->fbOffset = 0; vmesa->saam |= S0; vmesa->saam |= S1; } break; etc. This looks like a an interesting approach and perhaps a better one than mergedfb. Correct me if I'm wrong but it looks like the code checks to see what head should be rendered to and then adjusts the offsets and X/Y stuff accordingly. what does "saam" stand for? that would help clarify things for me. perhaps this is a better approach for dualhead cards going forward. I may try and give it a shot on radeon/r200 if I can figure out exactly how it's working. This would also avoid the some of the current limitations of mergedfb and the need for a pseudo-xinerama extension in the driver. thoughts? has anyone actually tested this on cle266 hardware? Alex --- Alan Cox <[EMAIL PROTECTED]> wrote: > - 3D now works with 2D acceleration enabled > - Chromium BSU runs entirely > - Window overlapping now works > - Tuxracer works except that the initial screen has a pale brown > not a pale blue background (any ideas anyone ?) > - Most screensavers run - morph3d and pipes crash > - Several screensavers (but not tuxracer) don't render polygons > that are clipped. > > Code drop available at > http://www.linux.org.uk/~alan/via-dri-20040102.tar.gz > > Alan > > > __________________________________ Do you Yahoo!? Find out what made the Top Yahoo! Searches of 2003 http://search.yahoo.com/top2003 ------------------------------------------------------- This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click -- _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel