13/12/2010 December 2010 OpenGL drivers status

With the unexpected interest for the OpenGL drivers status, I thought it could be a good idea to make it a monthly thing to reach some visibility over OpenGL drivers development.

There are multiple issues to make this visibility relevant: First, this status is based on an always too limited number of samples but also my knowledge of specification details and drivers implementations. Usually, with my samples if it's reasonable to update them to make them work on either AMD or nVidia drivers, I don't hesitate to make these changes so that a maximum of samples actually work. If I reach a point of dilemma between AMD and nVidia, I always choose a solution as close as the specification says because in the end the specification is nothing else than the bible for OpenGL programmers.

  • White: Unsupported.
  • Blue: The sample works but it doesn't follow the OpenGL specification.
  • Green: The sample works following the OpenGL specification.
  • Orange: The sample doesn't work correctly but a workaround is possible.
  • Red: The sample does't work and I haven't found any workaround.
  • Black: Really distubing problem!
Drivers: AMD Catalyst 10.10c (26/10/2010)AMD Catalyst 10.12 ccc (13/12/2010)nVidia Forceware 260.93 (17/10/2010)nVidia Forceware 265.90 (01/12/2010)
410-debug-output-arbAMD_debug_output support onlyAMD_debug_output support only
410-program-varyinggl_PerVertex redeclaration involves compiler errors...gl_PerVertex redeclaration involves compiler errors...
410-program-separategl_PerVertex redeclaration involves compiler errors...gl_PerVertex redeclaration involves compiler errors...
410-program-binaryWill crash after enough load and save instead of returning GL_FALSE.Will crash after enough load and save instead of returning GL_FALSE.
410-program-64glVertexAttribLPointer is null but glVertexAttribLPointerARB available
410-primitive-tessellation-5gl_PerVertex redeclaration involves compiler errors...gl_PerVertex redeclaration involves compiler errors...
410-primitive-tessellation-2gl_PerVertex redeclaration involves compiler errors...gl_PerVertex redeclaration involves compiler errors...
410-primitive-instancedUsing explicit location silently ignore throw a parsing error.Unexpected warningUnexpected warning
410-fbo-layeredUnexpected warningUnexpected warning
400-transform-feedback-object
400-texture-compression-arb
400-texture-buffer-rgb
400-sampler-gather
400-sampler-fetch
400-sampler-array
400-program-varying-structsDoesn't support varying struct and offensive error message
400-program-varying-blocksUnexpected warning / gl_in.length() not fully supportedUnexpected warning / gl_in.length() not fully supported
400-program-subroutine
400-program-64
400-primitive-tessellationUnexpected warningUnexpected warning
400-primitive-smooth-shadingUnexpected warningUnexpected warning
400-primitive-instancedUnexpected warningUnexpected warning
400-fbo-rtt-texture-array
400-fbo-rtt
400-fbo-multisample
400-fbo-layered
400-draw-indirect
400-buffer-uniformUnsupported uniform block arrayUnsupported uniform block array
400-blend-rtt
330-texture-arrayRequired glTexParameteri to setup filtering, sampler unsupportedRequired glTexParameteri to setup filtering, sampler unsupported
330-sampler-objectSampler object doesn't always oversede texture parametersSampler object doesn't always oversede texture parameters

Following some samples that illustrates some OpenGL 4.2+ feature requests I made and taking the "gtc" post-fix. I wrote these samples as I think they show either specification bugs, design mistakes, lack of arrucacy or perspectives.

Drivers: AMD Catalyst 10.10c (26/10/2010)AMD Catalyst 10.12 ccc (13/12/2010)nVidia Forceware 260.93 (17/10/2010)nVidia Forceware 265.90 (01/12/2010)
410-program-varying-gtcNot supported as OpenGL specify...Not supported as OpenGL specify...A GLSL compiler warning would be niceA GLSL compiler warning would be nice
410-program-separate-dsa-gtcA debug output warning would be niceA debug output warning would be niceA debug output warning would be niceA debug output warning would be nice
400-sampler-array-gtcNot supported as OpenGL specify...Not supported as OpenGL specify...A GLSL compiler warning would be niceA GLSL compiler warning would be nice
400-buffer-uniform-shared-gtcNot supported as OpenGL specify...Not supported as OpenGL specify...A GLSL compiler warning would be niceA GLSL compiler warning would be nice

Since last OpenGL drivers status

On the nVidia side the only change I notice is on the regard of the support of varying structures. I have been told my some developers that the support is still not perfect but my OpenGL sample is working correctly. The drivers are still fully of "'variable' might be used before being initialized" but I have no idea how to fix this or the nature of the problem.

On the AMD side it's very surprising that the sampler objects problems still remains. The sampler object implementation seems to have been rushed at the beginning but not AMD seems to struggle to fix it. Not shown in the OpenGL Samples Pack 4.1.3.3, the AMD drivers also have multiple issues on the regard of glClear* functions. On the OpenGL 4 side, some trivial issues have been fixed but the support of uniform arrays is still lacking.

At that date, I would say that nVidia drivers are OpenGL 4.0 'production ready' while AMD implementation is barely OpenGL 3.2 'production ready'. It's quite unfortunate to see on one hand AMD much more involve toward specification conformance but in other hand still suffering of a bad OpenGL implementation legacy. At nVidia's, the attitude is more pragmatic and I don't think that we can really rely on nVidia implementation as an OpenGL reference implementation but the team is so fast to fix the reported issues that nVidia approach remains incredibly effective.

x86 instruction sets >
< G-Truc Creation 7.0.1.0 released
Copyright Christophe Riccio 2002-2013 all rights reserved
Designed for Chrome 9, Firefox 4, Opera 11 and Safari 5