I’ve probably messed something up in my code but I was wondering if anyone
else had come across the following before:
I’m using Xfree86 4.0.3 with the standard nv.o driver. I’m also using DGA
with double buffers. I get great frame rates with no tearing from vertical
retrace sync. The problem is that “every now and then” one frame will be
shown that is messed up. It’s very hard to actually see what the image is
but it appears to be the correct image ( guessing ) that is perhaps
positioned wrong, ie. down 100 pixels. It’s very hard to see what’s wrong
but you can tell it’s not right and I’m a pretty fussy bugger.
Could there be a problem with SDL or perhaps the DGA code in XFree86 has a
problem?..any feedback would be appreciated.
I’m using Xfree86 4.0.3 with the standard nv.o driver. I’m also using DGA
with double buffers. I get great frame rates with no tearing from vertical
retrace sync. The problem is that “every now and then” one frame will be
shown that is messed up. It’s very hard to actually see what the image is
but it appears to be the correct image ( guessing ) that is perhaps
positioned wrong, ie. down 100 pixels. It’s very hard to see what’s wrong
but you can tell it’s not right and I’m a pretty fussy bugger.
I’ve seen this too with Simcity 3000 Unlimited when running the dynamically
linked version against SDL1.2.3, it’s blazing fast, but every once in a while
there will be a small ‘glitch’ as you describe.
Could there be a problem with SDL or perhaps the DGA code in XFree86 has a
problem?..any feedback would be appreciated.
I wish I knew. However, I do know that the NVidia drivers, (not the nvidia
driver that comes with xfree86, the one you’re using nv.o) don’t work with DGA
for me currently. It’s sad too because DGA performance is blazing for 2d
compared to xlib (yuck).
-EvilTypeGuyOn Tue, Nov 27, 2001 at 08:08:18AM +1000, Paul wrote:
“Paul” wrote in message
news:mailman.1006812125.11509.sdl at libsdl.org…
I’m using Xfree86 4.0.3 with the standard nv.o driver. I’m also using DGA
with double buffers. I get great frame rates with no tearing from
vertical
retrace sync. The problem is that “every now and then” one frame will be
shown that is messed up. It’s very hard to actually see what the image is
but it appears to be the correct image ( guessing ) that is perhaps
positioned wrong, ie. down 100 pixels. It’s very hard to see what’s
wrong
but you can tell it’s not right and I’m a pretty fussy bugger.
When page flipping, the CPU has to tell the graphics card where in video
memory the current page is located. If the graphics card starts rendering
at the exact wrong moment, the page start register can be in an inconsistent
state (i.e. high byte of old page, low byte of new page or vice versa).
This causes a visible glitch similar to what you describe.–
Rainer Deyke (root at rainerdeyke.com)
Shareware computer games - http://rainerdeyke.com
"In ihren Reihen zu stehen heisst unter Feinden zu kaempfen" - Abigor
Thanks Rainer, do you know of a fix for this??On Tue, 27 Nov 2001 08:30, you wrote:
“Paul” <@Paul> wrote in message
news:mailman.1006812125.11509.sdl at libsdl.org…
I’m using Xfree86 4.0.3 with the standard nv.o driver. I’m also using
DGA with double buffers. I get great frame rates with no tearing from
vertical
retrace sync. The problem is that “every now and then” one frame will be
shown that is messed up. It’s very hard to actually see what the image
is but it appears to be the correct image ( guessing ) that is perhaps
positioned wrong, ie. down 100 pixels. It’s very hard to see what’s
wrong
but you can tell it’s not right and I’m a pretty fussy bugger.
When page flipping, the CPU has to tell the graphics card where in video
memory the current page is located. If the graphics card starts rendering
at the exact wrong moment, the page start register can be in an
inconsistent state (i.e. high byte of old page, low byte of new page or
vice versa). This causes a visible glitch similar to what you describe.
–
Rainer Deyke (root at rainerdeyke.com)
Shareware computer games - http://rainerdeyke.com
"In ihren Reihen zu stehen heisst unter Feinden zu kaempfen" - Abigor
“Paul” wrote in message
news:mailman.1006839724.23351.sdl at libsdl.org…
When page flipping, the CPU has to tell the graphics card where in video
memory the current page is located. If the graphics card starts
rendering
at the exact wrong moment, the page start register can be in an
inconsistent state (i.e. high byte of old page, low byte of new page or
vice versa). This causes a visible glitch similar to what you describe.
Thanks Rainer, do you know of a fix for this??
Some ideas:
Don’t flip pages at the end of a vertical retrace. This would probably
need to be implemented at the driver level.
Place both pages in video memory such that their start address only
differs in a single byte. This would also probably need to be implemented
at the driver level.
Don’t use page flipping.> On Tue, 27 Nov 2001 08:30, you wrote:
–
Rainer Deyke (root at rainerdeyke.com)
Shareware computer games - http://rainerdeyke.com
"In ihren Reihen zu stehen heisst unter Feinden zu kaempfen" - Abigor