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