Jump to content
  • Advertisement
Sign in to follow this  
sormjs

OpenGL OpenGL + Vista + ATI + Torque problem...

This topic is 4021 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi to all, I currently work on a bug with OpenGL under Vista using latest driver on an ATI video card (X1900) with the Torque engine. Some polygons are stretched to the infinite and I can't figure out why. As I did not work a lot on OpenGL debugging, I'm a little bit lost. I can confirm that this problem does not occur on XP nor under any NVidia card. I already ask ATI, but we must be business partner to get decent support... GarageGame does not seem's to care, although all their OpenGL applications got this problem. I figured out today (by debugging with GDEbugger) that calling glFlush() after each draw command seem's to resolve the issue. (But, obviously it's not a viable solution because of performance). Does anyone has an idea on what could cause this problem? If you don't, any idea on how to attack these kind of problem? Thank You! Jean-Sylvain

Share this post


Link to post
Share on other sites
Advertisement
What does "GarageGame does not seem's to care" mean?

I think the Garagegames.com forums should be more suited for this problem as this one. If it´s really a common problem i don´t think GG doesn´t care and someone in the forum will also have had this problem and prolly be able to help.

Share this post


Link to post
Share on other sites
It means that we already asked the development team and they answered that Vista is not in their target for now. They don't have ressource and they can't help. They are focussing on TGEA...

Anyway, I'm willing to spend some time on this problem, but I need help on "how to debug" these kind of graphical glitches (Torque or not). Obviously, values passed to the OpenGL library are valid. Has it work with other video cards, I suppose that OpenGL is also doing the good thing.

There is probably a call that the ATI X1000 series does not seem's to treat well, but identifying it seem's to be a difficult task without proper tools.

Thanks,

Js

Share this post


Link to post
Share on other sites
Not to sound rude but if it doesn't happen on any NVidia cards nor does it happen in XP, it sounds more like an ATI Vista OpenGL Driver problem or your code. Are you using hardware specific features (i.e. extensions that the video card supports exclusively) or generic functionality? If it is common functionality, it sounds more like a driver and your code is the problem (at first listening atleast). Please correct me if I'm wrong.

Share this post


Link to post
Share on other sites
Quote:
I figured out today (by debugging with GDEbugger) that calling glFlush() after each draw command seem's to resolve the issue. (But, obviously it's not a viable solution because of performance).


IMO, that's an indicator of something really strange.
If I were you, I would try fixed path, shader path, try different vertex formats.

try

struct vertex
{
x, y, z
s, t
nx, ny, nz
}

Draw 1 object, then 2, then more...See when it fails.

Share this post


Link to post
Share on other sites
I found out what instruction causes the problem today.

Torque use glDrawElements function to draw meshes on screen.

Before and after the loop of drawing primitives with DrawElements, it calls glLockArrayExt() and glUnlockArrayExt() functions.

I'm not sure to quite understand what is the purpose of these functions, but I can definitively says that, under Vista with an ATI card, it causes me a lot of troubles. Removing those call does not seem to affect the rendering and solve this issue.

Does someone know what thoses functions are meant for? Do I take a rick by removing them?

Thanks!

Share this post


Link to post
Share on other sites
Wow, their code is really old. It was to tell the driver you won't be changing those vertices when you locked them. It's called GL_EXT_compiled_vertex_array

But that functionality has been superceeded by VBOs for about 5 years.

Here is the spec for that GL_EXT_compiled_vertex_array
As you can see, it's from 1996
http://www.opengl.org/registry/specs/EXT/compiled_vertex_array.txt

Maybe you can turn that feature off and use something up to date.
Don't shoot yourself in the foot with old functionality that might be broken in todays drivers.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!