Jump to content

  • Log In with Google      Sign In   
  • Create Account






ATI hate me, I think.

Posted by ObsidianBlk, in Linux, Archetype Engine, Personal Side, Python 27 January 2011 · 403 views

ATI NVidia OpenGL pyopengl VBO vertex buffer open hardware graphics graphic card gumstix
[BLURB:] A choice made 5 years ago is not effecting my 3D ENGINE!!! Grrrrr.... Have to put VBO development on hold! Grrrrr.... Vertex Array Object works like a charm... YAY!

[DEVELOPMENT: Archetype Engine]

Ok, I busted my mental hump trying to figure out VBOs. For PyOpenGL, most documentation on the subject is almost three years old and given as a code snippet at this website. The problem is, when I tried using that code, glGenBuffers would fail. It's either claim I was passing 2 arguments when it only wanted 1, or that the function didn't exist at all! Grrrrrr!!!!! After well over five hours of painful googling (all hail the Google) AND upgrading my copy of pyopengl from 3.0.0 to 3.0.1 I have generally narrowed the issue down to my ATI drivers... or, at least I believe that to be the case.

See... I'm running on Linux; Ubuntu 10.04 to be exact, and, in general, ATI doesn't think very much about us Linux people. Arguments for the ATI mentality aside, the result is, the ATI drivers for Linux are not as good or as up to date as those on Windows. As such, I wouldn't be surprised if the implementation for VBOs wasn't completed in the Linux ATI driver and that is what's giving me my issue. I could be wrong, but I can't think of an alternate reason at the moment.

So what does that mean over all? Does that mean I cannot code VBOs into my engine? HELL NO it doesn't mean that! It just means I have more research to do. I'll have to look into the extensions method for vertex buffer objects and do something like:

if not bool(glGenBuffers):
	glGenBuffersARB(1, buff)

Not to mention having to deal with the case of whether or not the extension exists or not. There's ways around it, I suspect, but to get VBOs up and running, I have a lot more reading to do.


[RANDOM THOUGHTS:]

Open Hardware! We have open source software and open hardware exists to a degree (gumstixfor instance). I would LOVE to see an open hardware graphics card! I know, I know... that's a hugely tall order, but think of the total win factor such a device (and the company that produces it) would have if it were done! A hardware device that could be plugged into any computer (mac/windows/linux/other) and have drivers available. If drivers aren't immediately available, the specs are open for driver developers to plunge right in and code some up! No more half-assed features from one OS to another.

Yes... before anyone decides to flame me for what I'm saying, I'm well aware that this is more a dream than anything that could be set into motion. I'd love to take a crack at it, but I am so completely not a hardware guy. Not even to mention ATI and NVidia are so far ahead of the game in terms of graphic processing hardware that any small time company looking to start would be entering with hardware, more than likely, a couple generations behind (or more) and would more than likely collapse due to the imbalance of those who would buy the hardware to support it and the ideals, and those that wouldn't because it wouldn't be able to run the top tier games.

I CAN DREAM, THOUGH, DAMMIT!

...
...
*cough*
...
...

Thank you for playing, please come again :D




Actually, ATI's opened up their GPU driver specs specifically so that open source people can write their own driver for it (so people don't have to try and reverse engineer everything). The radeon driver is currently being developed, but not yet good enough for high performance accelerated 3d, but it is coming on nicely. The plan is that in a few years ATI will have a full open source driver that works with their cards.

Anyway, I can't say that I've had the same problems that you've had with VBO and the catalyst driver. My main machine (which currently doesn't have linux installed as I mainly use it for games) never had a problem using them with my projects, but that was a little while ago and could be an older driver. I also wasn't developing in python, but I'm not sure that would be an issue. Unfortunately I can't test because linux isn't installed on the machine with an ATI card.
Perhaps you stay abreast on the topic more so than I, but, as I recall the situation, there is an open source driver for ATI, but it's completely 3rd party. The only full ATI driver is their proprietary driver (catalyst) which is, for many, sub-par, especially compared to the proprietary driver offered by NVidia for their graphics cards. As for a full, open source ATI driver being developed within a few years... that sounds more like the open source driver developers talking, not ATI themselves, for if it were ATI helping to develop the driver, why would it take them years to develop a driver for a device they, themselves, made? If ATI were to bother with an open source driver it's be available in a matter of months, not years.

I say all of the above, however, with the bits of information on the subject I've encountered over the last few years (most from Linux related magazine articles) and not on any solid proof to the contrary. If what you said was true and ATI is planning on releasing an Open Source driver, then I'd be far more comfortable sticking with the company. As it stands, though, from everything I've seen and read between ATI and NVidia and Linux, NVidia is far an away the best option to go for.

As for my VBO issues in relation to yours, you specifically point out you're not using Linux, but windows. It almost goes without saying the catalyst driver would have far more complete support for features on Windows than it would on Linux. That's been one of the major issues in the Linux world... historically, ATI and NVidia never took the OS seriously. That's changed recently (last half decade, perhaps), but between Windows and Linux, both companies give more support for their Windows version of their driver than they do their Linux version. As such, My VBO issue would probably disappear completely if I were to boot my machine into Windows instead of Linux and run my code there.

None-the-less I may have stumbled upon a solution to my VBO issues in the realm of openGL extension. Simply put, if glGenBuffers doesn't exist, check for glGenBuffersARB. Need to research that and give it a shot. :)
Sorry, I think I didn't really explain myself very well. Yes, the radeon driver is completely 3rd party, what I meant was ATI released documentation to help the 3rd party developers with their driver. You can download the information for free from ATI's site: http://developer.amd.com/documentation/guides/Pages/default.aspx#open_gpu . As for the time frame for a good working open source driver, that was more my own speculation than anything backed up by fact, so you should probably ignore that.

I completely agree that the open source driver is not ready for games as it isn't fast enough, but it does support enough to run compiz and also has the advantage of kernel mode setting. I also completely agree that the catalyst driver from ATI is not perfect and Nvidia's one is much much better.

As for my VBO stuff, my main ATI machine was running linux using the catalyst driver when I was working with VBOs. I never had any problems with it, but then I was using GLEW to handle my extensions, so possibly if glGenBuffers was the problem then GLEW was automatically also checking for glGenBuffersARB.

Anyway, good luck for sorting out your VBO issues :).
Thanks :)

I'm not using GLEW at all and, doing some experimentation, glGenBuffersARB isn't available to me either. I think I'm just not loading any extensions at all, but the end result is VBOs are still a no-go on this machine. I do have another machine with a 10 year old NVidia card. Even at it's age, it may be able to deal with VBOs, so, perhaps I can use that machine to test.

Thanks for the link and the comments!!

July 2014 »

S M T W T F S
  12345
6789101112
13141516171819
20212223 24 2526
2728293031  

Recent Comments

PARTNERS