The presentation by Barthold Lichtenbelt (Senior Manager of NVIDIA OpenGL core driver team) and Mark Kilgard (Principal system software engineer at NVIDIA) is available here:
OpenGL 4.0 for 2010, NVIDIA – SIGGRAPH 2010, Los Angeles, CA
And here’s some interesting screenshots:
OpenGL 4 version progression – Click to enlarge
OpenGL 3.2 Data flow – Click to enlarge
OpenGL 4 data flow – Click to enlarge
OpenGL 4 tessellation data flow – Click to enlarge
Unfortunately this presentation includes about 10 minutes of nVidia marketing speech bollocks at the beginning and 5 minutes of nVidia marketing speech bollocks at the end. And the reason why it is beyond DX11 are rather dubious and not actual of any technical nature at all! If you look more deeply it is still behind. Because Direct3D11 SM5 allows to use some of the DXCompute datastructures in Pixelshader’s as well.
> If you look more deeply it is still behind.
Really? What feature of DirectX 11 isn’t available with OpenGL 4.1 + CUDA or OpenCL? The only item you go on to mention isn’t a good example:
> Because Direct3D11 SM5 allows to use some of the DXCompute datastructures in Pixelshader’s as well.
NVIDIA’s OpenGL can inter-operate with buffers and textures for either CUDA or OpenCL or DirectX or even OptiX. DirectX 11 can only interop with DirectX buffers and surfaces. This seems like a situation where OpenGL is clearly MORE functional than Direct3D. You can look at the NV_gpu_program5, NV_shader_buffer_load, and ARB_texture_buffer_object extensions to see how an OpenGL shader can read, and yes, even STORE to buffers.
OpenGL has plenty of features not available in DirectX 11 such as line stipple, accumulation buffers, immediate mode, display lists, smooth lines, access to shaders through both high-level shading languages (Cg or GLSL) as well as assembly language (NV_gpu_program5, NV_gpu_program4, ARB_fragment_program, etc.). And this all comes with cross-operating system portability, something DirectX 11 will never offer.
For example, OpenGL 4.1’s entire feature set, including programmable geometry and tessellation shaders and all the other DirectX 10 and 11 features are available on Windows XP as well as Vista and Windows 7.
OpenGL 4.1 supports both OpenGL and Direct3D conventions. So in Direct3D, you are stuck with the Direct3D provoking vertex or shader window origin convention, but with OpenGL 4.1 you can now pick your convention.
NVIDIA OpenGL has lots of ways it surpasses DirectX 11 in functionality such as support for bindless graphics (NV_vertex_buffer_unified_memory & NV_shader_buffer_load), arbitrary texture format swizzling (EXT_texture_swizzle), Serial Digital Interface (SDI) video support (NV_present_video) including video capture (NV_video_capture).
BTW, you can get the actual PowerPoint slides from here:
http://www.slideshare.net/Mark_Kilgard/opengl-4-for-2010
(This slides are corrected and slightly expanded from the recorded presentation. For example, they include code for implementing adaptive PN triangles.)
– Mark
Very interesting reading Mark. I feel your comment will be the source of a post very very shortly 😉
Pingback: Why OpenGL is Superior to Direct3D? - 3D Tech News, Pixel Hacking, Data Visualization and 3D Programming - Geeks3D.com
“line stipple, accumulation buffers, immediate mode”
Yeah, I think line stipple is the killer app for OpenGL, Mark! Just kidding 🙂
yeah hooray for NVIDIA OpenGL, sadly we don’t want our apps to run on NVIDIA only