On Thu, 19 Aug 2004 09:13:44 -0400, Robert S. Kerr <[EMAIL PROTECTED]> wrote: > > >Yep. In a small window the image shows right. In medium windows there are 2 > >"zones". In a fullscreen window (1024x768) I can see 3 zones. > >It's strange that nobody noticed it before. > > > > > > I've been experimenting with this problem a bit and I'm pretty sure at > this point it relates to something in the horizontal scaling portions of > the savage Xv stuff. I found a simple program > (http://www.xfree86.org/~mvojkovi/suzi.tar.gz, makes an executable > called rotyuv) that repeatably demonstrates the issue and allows me to > explore it a bit more. > > Running it shows an image (redrawn constantly so it is a 'still' video) > that you can stretch and resize and the program scales the image > accordingly. You can stretch the image full screen vertically and no > artifacts appear. However when you stretch it past 703 pixels wide on > my machine it flips into the 2 zone mode.
AH! nice work! I think I know exactly where the problem is. Take a look at savage_video.c WHich driver are you working on? xorg cvs with my patch or DRI cvs? there are two possible spots. 1. Look for the section that starts: /* * Process horizontal scaling * upscaling and downscaling smaller than 2:1 controled by MM8198 * MM8190 controls downscaling mode larger than 2:1 */ this is where the hoziontal scaling is done. 2. this block: /* Calculate horizontal scale factor. */ if (S3_MOBILE_TWISTER_SERIES(psav->Chipset) && psav->FPExpansion) { drw_w = (((float)(drw_w * psav->XExp1)/(float)psav->XExp2)+1); drw_h = (float)(drw_h * psav->YExp1)/(float)psav->YExp2+1; dstBox->x1 = (float)(dstBox->x1 * psav->XExp1)/(float)psav->XExp2; dstBox->y1 = (float)(dstBox->y1 * psav->YExp1)/(float)psav->YExp2; dstBox->x1 += psav->displayXoffset; dstBox->y1 += psav->displayYoffset; } This came from S3/VIA's code. I don't have a mobile twister so I can't really test, however it seemed to work based on reports using the DRI DDX. > > The program uses XvShmPutImage to draw. I'm still trying to track down > into the savage driver to see which method that ends up in when it gets > down to the savage code. I think it is 'SavagePutImage' in the savage > Xserver driver. (Alex could you point me in the right direction?) > > If that turns out to be right, my next adventure is to figure out how to > debug a running driver. Pointing gdb at my rotyuv process doesn't let > me look down into the XvShmPutImage method. Suggestions are welcome. > > Rob > > > ------------------------------------------------------- SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift. http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 -- _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel