Daemon News Ezine BSD News BSD Mall BSD Support Forum BSD Advocacy BSD Updates

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[no subject]



Hope this helps.

Randall


Michael G. Petry:
 |A couple of us with Matrox cardsan 8meg have seen a strange shifting of
 |the video image when running fxtv. I'm running it at 1280x1024 in 24 bit
 |mode with a Bpp of 4. In the course of trying to understand the problem,
 |it seems the image is shifted by 256 pixels.  What concerns me is 1280 -
 |1024 is where I came up with the guess of 256. (it use to run justfine in
 |1024x768)
 |
 |In TVCAPTUREStart of tvcapture.c I changed the folowing:
 |
 |      video.addr = x->base_addr + (((g.y * x->pitch) + g.x + 256 ) * Bpp);
 |                                                          ^^^^^
 |This is a real hack at looking for the root cause. I don't know if this is a 
 |Matrox peculiarity or not. Are any others running in a higher than 1024xXXXX 
 |mode on their video boards and experiencing an image shift?

Randall Hopper:
 |Michael G Petry:
 | |Randall Hopper:
 | |>      I gather the video block on the Millenium @ 1280 looks fine
 | |> (solid, rectangular, correct colors); it just not in the window
 | |> frame.  It's off to the left.  And only does this in 1280x1024, not
 | |> 1024x768.
 | |
 | |Yep.  That's it.
 |
 | |      video.addr = x->base_addr + (((g.y * x->pitch) + g.x + 256 ) * Bpp);
 |
 |Interesting.  That means pitch and Bpp (4) are right.  The g.y and g.x
 |nums you reported looked right.  That only leaves base_addr.  Sounds like
 |what DGA's reporting is less by 1024 bytes from what that hardware is
 |configured for.

Randall Hopper:
 |Tomi Vainio:
 | |Igor Nikolaev writes:
 | | > I have fxtv Version 0.46 and (working) milennium II AGP (Xfree 3.3.2).
 | | > My videocard works in 32bpp mode (in 16bpp all o'k)
 | | > 
 | | > This is well know bug or unknown feature?
 | | > 
 | |
 | |This is known feature and Randall is trying to find out why this
 | |happens.  You can "fix" it by adding 256 to picture position.
 | |tvcapture.c line 1509: 
 | |video.addr      = x->base_addr + (g.y * x->pitch + g.x) * Bpp; ====>
 | |video.addr      = x->base_addr + (g.y * x->pitch + g.x + 256) * Bpp;
 |
 |Not much else I can do.  From what we've seen, sounds like an XFree86 bug
 |related to the Matrox 8Meg cards at 32bpp at desktops larger than 1024x768.
 |
 |You and Michael needed the "+256" for 1280.  From Igor's pic, looks like
 |for 1600x1200 he needs (and likely you'd need) +640:
 |
 |  video.addr      = x->base_addr + (g.y * x->pitch + g.x + 640) * Bpp;



--KsGdsel6WgEHnImy--


To Unsubscribe: send mail to majordomo@xxxxxxxxxxx
with "unsubscribe freebsd-multimedia" in the body of the message