27/05/2011 May 2011 OpenGL drivers status

Last month, I didn't bother writing an OpenGL drivers status as both AMD and NVIDIA drivers reports were exactly the same as March. This month is completely different music as both AMD and NVIDIA has make good progress in their drivers, Catalyst 11.5b hotfix and Forceware 275.27. Both drivers have been tested against a version of the OpenGL Samples Pack still in development and to be released.

  • White: Unsupported or untested.
  • 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 11.4 preview 2 (23/03/2011)AMD Catalyst 11.5a hotfix (26/05/2011)NVIDIA Forceware 270.51 (30/03/2011)NVIDIA Forceware 275.27 (17/05/2011)
410-texture-image-extNo even nearly workingBlack screen
410-texture-barrier-nv
410-sampler-fetch-dsa-ext
410-program-varying
410-program-separate
410-program-binary
410-program-64
410-primitive-tessellation-5Lot of error C5041: cannot locate suitable resource to bind paramter "null atom"Rendezvous by location not supported on blocks
410-primitive-tessellation-2Rendezvous by location not supported on blocksRendezvous by location not supported on blocksLot of error C5041: cannot locate suitable resource to bind paramter "null atom"Rendezvous by location not supported on blocks
410-primitive-bindless-nv
410-fbo-rtt-dsa-ext
410-fbo-multisample-dsa-ext
410-fbo-layeredUnexpected warning
410-debug-output-arbAMD_debug_output support only
400-transform-feedback-object
400-texture-compression-arb
400-texture-buffer-rgb
400-sampler-gather
400-sampler-fetch
400-sampler-array
400-program-varying-structs
400-program-varying-blocksUnexpected warning / gl_in.length() not fully supported
400-program-subroutine
400-program-64
400-primitive-tessellationUnexpected warning
400-primitive-smooth-shadingUnexpected warning
400-primitive-instancedUnexpected 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 unsupported
330-sampler-objectDoesn't handle more than one slot
330-fbo-srgbAn scissor test optimizations introduce a rendering bugAn scissor test optimizations introduce a rendering bug
330-fbo-multisample
330-fbo-multisample-custom-resolveDrivers high on drugs with "optimizations"
330-fbo-mipmapsAn scissor test optimizations introduce a rendering bug
AMD: Sampler object fixed, clear buffer in progress

On AMD side the great news is that the sampler object is finally 100% functional! The clear buffer + scissor test issues has been fixed for one part but when it comes to rendering to a sRGB framebuffer rendering bugs appears showing some block of 8 by 8 pixels whose conversions to the linear space haven't been performed. Uniform block array remains a problem but even if these tests doesn't show it, some problems as been fixed.

GL_ARB_debug_output available on AMD as well!

With the sampler object being fixed, the best news with this release comes from the support support of ARB_debug_output extension. It behaves exactly the NVIDIA implementation so there is no surprise here: The extension is only available when a debug OpenGL context is created. The asynchrone mode isn't actually supported so that when we call glEnable(GL_ARB_DEBUG_OUTPUT_SYNCHRONIZE) the output stream is returned like it was before, synchronized. However enabliing the debug context involves many GLSL compiler crashes and working with ARB_debug_output will imply a serie of ping-pong between debug mode or not.

Rendezvous by location in seperate program in progress

On NVIDIA side the support of OpenGL 4.1 is nearly completed or actually maybe complete already but I am being peaky. Effectively the OpenGL 4.1 specification is really inacurate when it comes to shader matching rules, that is to say how the output of a program stage match with the input of the program stage. This is actually true especially for separate programs and matching by location introduced in OpenGL 4.1. On the current release, so far the only remaining issues are matching by location on in/out block and structures. If we match by name it works and we can expect this to be fixed shortly. Separate programs are in many ways left unspecify and just like I was expecting in the conclusion of my OpenGL 4.1 review, we can expect many divergences from implementation to implementation and it might be what happen for AMD and NVIDIA but this is also something that would required to be checked carefully in aother future implementations.

GLM 0.9.2.2 released >
< GLM 0.9.2.1 released
Copyright Christophe Riccio 2002-2016 all rights reserved
Designed for Chrome 9, Firefox 4, Opera 11 and Safari 5