NVIDIA 364.12 release: Vulkan, GLVND, DRM KMS

Forum for all the nVidia video cards from the past, present and future!
Post Reply
Legit Little One
Legit Little One
Posts: 1
Joined: Fri Jul 05, 2019 1:15 am

NVIDIA 364.12 release: Vulkan, GLVND, DRM KMS

Post by Laurent596 » Fri Jul 05, 2019 1:19 am

Support for Vulkan
OpenGL Vendor-Neutral Dispatch ( https://github.com/NVIDIA/libglvnd )
Support for DRM KMS
Many new EGL extensions

First, 364.12 is the first mainline NVIDIA GPU driver release to include Vulkan support. We're fully commited to supporting all of OpenGL, GLX, EGL, and Vulkan. But, Vulkan is definitely the most forward-looking www.upsers.com The full 1.0 spec, including the Window System Integration (WSI) extensions, is here:

https://www.khronos.org/registry/vulkan ... vkspec.pdf

It is worth noting that Vulkan defines window system bindings itself (see, e.g., VK_KHR_xcb_surface, VK_KHR_xlib_surface, and VK_KHR_wayland_surface) and thus is independent of GLX or EGL. The Vulkan WSI extensions VK_KHR_display and VK_KHR_display_swapchain define how to present in the absense of a window system, which is interesting in the context of the following sections.

In 364.12, NVIDIA's Vulkan driver supports VK_KHR_xcb_surface and VK_KHR_xlib_surface, though not yet VK_KHR_wayland_surface or VK_KHR_display or VK_KHR_display_swapchain. Those are still in development.

Next, OpenGL Vendor-Neutral Dispatch (GLVND) is important for two major reasons:

(1) It redefines the Linux OpenGL ABI in such a way that multiple OpenGL implementations can cleanly coexist on the file system: over time, this should put an end to the age-old Linux libGL.so collision problems.

(2) It cleanly defines what symbols should be exported by each library, in order to use EGL with full OpenGL, rather than just EGL + OpenGL ES. Using EGL with full OpenGL on Linux isn't new, but the GLVND division of libOpenGL.so for OpenGL symbols, libGLX.so for GLX symbols, and libEGL.so for EGL symbols is nice. The sample code referenced below links against libEGL.so and libOpenGL.so.

Post Reply