Congratulation to NVIDIA which new drivers 280.19 run all the OpenGL 4.1 samples successfully. The last bug on the shader interface matching has been fix to archive this result.
I am not going to say that everything is perfect, it would be the duty of a conformance test suite but as far as this one hundred samples goes, NVIDIA OpenGL 4.1 drivers works and I believe ready for production.
There is maybe one hiccup regarding the way NVIDIA drivers clip point sprites. According to the specification the point pritimitive must be clipped at vertex position but this approach leads to disturbing popping artefact when the size of the point is higher than one pixel. An easy workaround is to take into account the derived size of the point for the clipping using the value output in gl_PointSize. I don't if it'a what NVIDIA does but their rendering is pop free which is a feature to me. It might be useful to have a glPointParameter*(GL_CLIPPING, value="") where values could be either GL_VERTEX_POSITION or GL_POINT_SIZE or something like that.
On AMD OpenGL drivers side, no change this month beside a new bug detected on point sprite rendering. A lot of improvements are to be released but until then this is all we got.
These tests built in 64 bits and ran on Windows Seven 64 using the OpenGL Samples Pack 4.1.7.2, minor update to be release soon.
OpenGL Samples Pack 4.1.7.2, OpenGL specification tests | AMD Catalyst 11.7 preview (29/06/2011) | AMD Catalyst 11.8 preview (26/07/2011) | NVIDIA Forceware 275.50 (21/06/2011) | NVIDIA Forceware 280.19 (27/07/2011) |
---|---|---|---|---|
410-texture-image-ext | Black screen | Black screen | ||
410-sampler-fetch-dsa-ext | ||||
410-program-separate-dsa-ext | ||||
410-program-binary | ||||
410-program-64 | ||||
410-primitive-tessellation-5 | Block member not active with linked sperated program | Block member not active with linked sperated program | ||
410-primitive-tessellation-2 | Rendezvous by location not supported on structures | |||
410-primitive-instanced | layout(location = 0) flat out vec4 Color; generates a parsing error. | layout(location = 0) flat out vec4 Color; generates a parsing error. | ||
410-fbo-rtt-dsa-ext | ||||
410-fbo-multisample-dsa-ext | ||||
410-fbo-layered | ||||
410-debug-output-arb | Provide a nice and explicit error message | Provide a nice and explicit error message | ||
400-transform-feedback-stream | layout(location = 0, stream = 0) result in error: layout location can only set once. Only half of the geometry rendered | layout(location = 0, stream = 0) result in error: layout location can only set once. Only half of the geometry rendered | ||
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-blocks | ||||
400-program-subroutine | ||||
400-program-64 | ||||
400-primitive-tessellation | ||||
400-primitive-smooth-shading | ||||
400-primitive-instanced | ||||
400-fbo-rtt-texture-array | ||||
400-fbo-rtt | ||||
400-fbo-multisample | ||||
400-fbo-layered | ||||
400-draw-indirect | ||||
400-buffer-uniform | Unsupported uniform block array | Unsupported uniform block array | ||
400-blend-rtt | ||||
330-texture-pixel-store | ||||
330-transform-feedback-separated | GetTransformFeedbackVarying returns the wrong value for the size parameter | GetTransformFeedbackVarying returns the wrong value for the size parameter | ||
330-transform-feedback-interleaved | GetTransformFeedbackVarying returns the wrong value for the size parameter | GetTransformFeedbackVarying returns the wrong value for the size parameter | ||
330-fbo-srgb | A scissor test optimizations introduce a rendering bug | A scissor test optimizations introduce a rendering bug | ||
330-error-sampler-offset | GLSL compiler crash | GLSL compiler crash | ||
330-draw-empty | Location 0 must be bound | Location 0 must be bound |
OpenGL Samples Pack 4.1.7.2, proprietary features | AMD Catalyst 11.7 preview (29/06/2011) | AMD Catalyst 11.8 preview (26/07/2011) | NVIDIA Forceware 275.50 (21/06/2011) | NVIDIA Forceware 280.19 (27/07/2011) |
---|---|---|---|---|
410-texture-copy-nv | NV_copy_image not supported | NV_copy_image not supported | ||
410-texture-barrier-nv | ||||
410-primitive-bindless-nv | NV_shader_buffer_load not supported | NV_shader_buffer_load not supported | ||
410-fbo-multisample-amd | AMD_sample_positions not supported | AMD_sample_positions not supported | ||
410-fbo-multisample-dsa-nv | NV_texture_multisample not supported | NV_texture_multisample not supported | ||
410-draw-instanced-amd | Render only 1 primitive over 2 | Render only 1 primitive over 2 | AMD_multi_draw_indirect not supported | AMD_multi_draw_indirect not supported |
OpenGL Samples Pack 4.1.7.2, specification bugs workaround | AMD Catalyst 11.7 preview (29/06/2011) | AMD Catalyst 11.8 preview (26/07/2011) | NVIDIA Forceware 275.50 (21/06/2011) | NVIDIA Forceware 280.19 (27/07/2011) |
---|---|---|---|---|
400-sampler-array-gtc | No workaround for this specification bug | No workaround for this specification bug | Allows dynamic indexing of the sampler array | Allows dynamic indexing of the sampler array |
400-buffer-uniform-shared-gtc | No workaround for this specification bug | No workaround for this specification bug | Provide a workaround for this specification bug | Provide a workaround for this specification bug |
330-primitive-point-sprite-gtc | glPointParameteri (GL_POINT_SPRITE_COORD_ORIGIN, ...) ignored | glPointParameteri (GL_POINT_SPRITE_COORD_ORIGIN, ...) ignored | Pop free clipping | Pop free clipping |
330-draw-instanced-array-dsa-gtc | No workaround for this specification bug | No workaround for this specification bug | No workaround for this specification bug | No workaround for this specification bug |