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

Reply via email to