Alex Deucher wrote:

On Thu, 19 Aug 2004 09:13:44 -0400, Robert S. Kerr <[EMAIL PROTECTED]> wrote:


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?


I'm using xorg cvs with your patch.  I haven't updated CVS in a week or so.

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.



I'm using a Prosavage DDR KM266.

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