Setting up a GL capabilities database

Started by
9 comments, last by AndyEsser 13 years, 1 month ago
For 0 A.D. I was interested in what kind of hardware is common among players, and what gives acceptable performance in the game, so I've set up a system where the game can report various details back to a server. (It's disabled by default and opt-in - there's a button on the main menu screen which enables the automatic sending of anonymous feedback while the game is running). A large part of that information is OpenGL extensions and implementation limits, and I'm thinking it would be useful for others if we published that information, so I wanted to check for input before finishing the work on this.

The game currently seems to have something like 10K downloads per month of the alpha releases, so I expect this could collect a lot of data. A fairly large proportion of users are on Linux so we can get data for those drivers too. (Some are on OS X, but not many, since we're lacking good packaging support there). The game runs on fairly low-end hardware (GeForce 4 should be okay, Intel 965 might be bearable, etc) so hopefully it'll get relatively broad data.

The current data is like this. (This comes from users of the SVN version, and there's some gaps and bugs since the code's still being worked on, and the report UI isn't great). In particular it's got the basic device-identifier strings, driver version numbers (only on Windows), list of GL extensions, and the values from various glGet* calls. It should include all the implementation-dependent state from GL 1.3 (unless I missed any), plus all the ARB extensions included up to GL 2.0, plus a few other extensions. (The exact details are here). Rows that are identical except for driver version are merged together, but otherwise nothing is discarded, since it seems useful to know the limits of not-the-most-recent drivers. The full data is downloadable as JSON from that page.

The other GL databases I've seen so far are typically limited in size, or scope (not many data fields, no Linux, etc), or are no longer online, and they rarely make the data downloadable, so I'm hoping this can provide something new and useful. Would people really be interested in it? If so, is there more data you'd find useful (e.g. implementation limits for other extensions), or any particular dangers to watch out for when doing this?
Advertisement
Your table looks messed up for me in Firefox, it doesn't R90 the title text for each of the columns, so it just puts all the text horizontal and you can't read anything.
[size=2]My Projects:
[size=2]Portfolio Map for Android - Free Visual Portfolio Tracker
[size=2]Electron Flux for Android - Free Puzzle/Logic Game
What version of Firefox? It works for me in 3.6, and apparently it should work in 3.5 too. (I'm not good at designing an interface that looks okay in modern browsers, so I don't really want to make it harder for myself by supporting much older ones too :))
Oh ok, I guess I have 3.0.11, didn't realize there were so many new versions. It's certainly up to you if you want to fix it, but just thought I'd let you know.

Just checked and it doesn't work either in IE8, but I guess you already knew that.
[size=2]My Projects:
[size=2]Portfolio Map for Android - Free Visual Portfolio Tracker
[size=2]Electron Flux for Android - Free Puzzle/Logic Game
It's better to have it in different pages rather than every graphics card on the same page. I didn't understand what the red and green blocks are for.
Anyway, the important is I suppose the GL version.
Sig: http://glhlib.sourceforge.net
an open source GLU replacement library. Much more modern than GLU.
float matrix[16], inverse_matrix[16];
glhLoadIdentityf2(matrix);
glhTranslatef2(matrix, 0.0, 0.0, 5.0);
glhRotateAboutXf2(matrix, angleInRadians);
glhScalef2(matrix, 1.0, 1.0, -1.0);
glhQuickInvertMatrixf2(matrix, inverse_matrix);
glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);
Yeah, the giant table was getting a bit unmanageable :). I've redesigned the interface now so you can view the devices supporting a given extension, or the range of implementation-dependent values for a given feature, or the features supported by a given device, which is hopefully a more helpful presentation.
That's a lot better.
Sig: http://glhlib.sourceforge.net
an open source GLU replacement library. Much more modern than GLU.
float matrix[16], inverse_matrix[16];
glhLoadIdentityf2(matrix);
glhTranslatef2(matrix, 0.0, 0.0, 5.0);
glhRotateAboutXf2(matrix, angleInRadians);
glhScalef2(matrix, 1.0, 1.0, -1.0);
glhQuickInvertMatrixf2(matrix, inverse_matrix);
glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);
Useful information, thanks for sharing!

Rows that are identical except for driver version are merged together, but otherwise nothing is discarded, since it seems useful to know the limits of not-the-most-recent drivers. The full data is downloadable as JSON from that page.


Thanks for the info. I could have used this just a week ago :D I'd also see the value in what driver versions support what extensions, so I'm wondering if you've got a specific reason for merging driver version together?
Man, I wish one could rate +10 ... awesome.

This topic is closed to new replies.

Advertisement