I've been looking into the scaling behavior on the ProsavageDDR
I'm using Alex's patch on the Xorg cvs tree.
Based on a recommendation from Alex, I've been looking in the savage_video.c file and I'm starting to make some progress. Currently I think I have hardware downscaling almost working. I can now hardware downscale to the point that the sources that I have are difficult to see (although I think that downscaling by 16, 32 and 64 might still be off). Plus I'm still not sure I'm doing it quite right (because the register settings I'm using don't seem to make sense compared to any of the older versions of the driver I've seen. But at least I'm getting somewhere.
What I haven't been successfull at accomplishing is any hardware upscaling. If I upscale an image at all, then I get corrupted results. There is a comment in savage_video.c that offers me some clue:
/* * Process horizontal scaling * upscaling and downscaling smaller than 2:1 controled by MM8198 * MM8190 controls downscaling mode larger than 2:1 */
The MM8198 is (I think) the memory mapped register at offset 0x8198. The driver refers to this elsewhere as SSTREAM_STRETCH_REG. The MM8190 is (I think) the memory mapped register at offset 0x8198. The driver refers to this elsewhere as SSTREAM_CONTROL_REG.
I haven't been able to figure out how to get the stretch register to do any stretching though. I did find this:
#define S_Filter_Shift 28 #define S_Filter_Mask (7L << S_Filter_Shift) #define S_1x (0L << S_Filter_Shift) #define S_Upto2x (1L << S_Filter_Shift) #define S_2xTo4x (2L << S_Filter_Shift) #define S_Beyond4x (3L << S_Filter_Shift)
in the sddata.h file in the XvMC section of the updated VIA/S3 driver. This appears to be what I need, but ORing that into the SSTREAM_STRETCH_REG doesn't seem to help.
Any ideas?
Rob
begin:vcard fn:Robert S. Kerr n:Kerr;Robert org:Digital Sandbox, Inc. adr;dom:Suite 501;;12355 Sunrise Valley Drive;Reston;VA;20191 email;internet:[EMAIL PROTECTED] title:Chief Software Architect tel;work:703-390-9770 tel;fax:703-390-9778 tel;cell:703-861-0510 url:http://www.dsbox.com version:2.1 end:vcard