Not long after the recent developer-focused 440.66.17 Vulkan Beta, NVIDIA have released the 450.51 Linux Beta Driver in their mainline series that's for us consumers to jump in with.
This adds in a number of new features like support for Vulkan direct-to-display on DisplayPort displays which are connected via DisplayPort Multi-Stream Transport (DP-MST). NVIDIA added support in this Linux driver for NVIDIA NGX which appears to include DLSS, their deep learning powered technology stack. It also now has HEVC 10/12 bit "decode only" support for NVIDIA VDPAU, support for Image Sharpening in OpenGL and Vulkan applications, support to create 16-bit video surfaces in the NVIDIA VDPAU driver and more VDPAU additions.
Even PRIME support was expanded to allow PRIME Synchronization when using displays driven by the x86-video-amdgpu driver as PRIME display offload sinks and support for displays connected to NVIDIA GPUs to act as PRIME display offload sinks, also known as "Reverse PRIME". A fallback presentation path for PRIME Render Offload configurations where the DRI3 and/or Present extension are unavailable was added too.
There's also now extended dynamic runtime power management, to support shutting off power to video memory under certain conditions. Documentation saw a little improvement too, with a new file supported-gpus.json, which gives a machine-readable list of supported GPUs and their features.
NVIDIA also added an implementation of glNamedBufferPageCommitmentARB, which they said was actually missing from the driver's support for the GL_ARB_sparse_buffer extension.
When it comes to bug fixes, there's plenty of them too. A bug preventing X11 EGL displays from being reinitialized was solved, a bug where rendering in a separate user namespace (unshare -U) would show black window and produce Xid 13 errors was squashed, Vulkan applications should no longer leak file descriptors when destroying Vulkan instances, the Plasma desktop from KDE should no longer see the panel freeze when compositing is disabled (hooray!) and the Plasma session should hopefully no longer crash when running under Wayland.
See the 450.51 release page here.
They didn't stop there either. The 'Long Lived' driver was also updated to 440.100, bringing in new GPU support and it adds a workaround for some Pascal based notebooks, where the GPU could fall off the bus when idle.
Even the legacy driver 390.138 was released for older GPUs, fixing a bunch of Linux kernel 5.6 issues and it adds PRIME Synchronization support for Linux kernel 5.4 and newer.
Even PRIME support was expanded to allow PRIME Synchronization when using displays driven by the x86-video-amdgpu driver as PRIME display offload sinksSo they noticed more and more laptops sold with AMD APU and Nvidia dGPUs. Good.
support for displays connected to NVIDIA GPUs to act as PRIME display offload sinks, also known as "Reverse PRIME"Does that mean Reverse Prime in On-Demand mode? As in HDMI ports will now work in On Demand mode and not require a restart? That would be amazing!
* Their driver interacts badly with kwin. (My onboard intel hd4000 is snappier than my gtx1060)
* Power consumption is still a joke (windows driver needs way less time to go to lower power states)
* VT switch corrupts textures, so you cannot play on a dedicated X server and do other things into the other.
* High resolution and fullscreen consoles are missing
* kmsgrab via ffmpeg is not supported
* Wayland?
* Basically, things that require tight integration with the Linux ecosystem (the cool things!) is often workarounded or broken.
...considering the time they takes to fix things, maybe in 5 (10?) years they will have addressed those issues.
Last edited by kokoko3k on 24 June 2020 at 4:05 pm UTC
Yep waiting for this since last year, I just tested on my laptop and I can switch between sway(wayland tty1 with the apu amdgpu) to openbox(xorg tty2 with nvidia - nvidia-xrun) and run any game with prime sync now. There is a small gain in performance: loading unigine heaven I went from using prime offload score of 2348 to prime sync score of 2437, not much but every frame counts. Also in theory when using only the amdgpu now that there is no process (xorg) using the nvidia driver as in prime offload there should be a reduction on watts usage, maybe, I have to test.Even PRIME support was expanded to allow PRIME Synchronization when using displays driven by the x86-video-amdgpu driver as PRIME display offload sinksSo they noticed more and more laptops sold with AMD APU and Nvidia dGPUs. Good.
Is `VK_EXT_extended_dynamic_state` already included (from 440.66.17)? If not, is this version suitable for RDR2 (like 440.66.15)?
Last edited by jens on 24 June 2020 at 4:52 pm UTC
I would love to know which version of the Vulkan branch got merged into this one.
Is `VK_EXT_extended_dynamic_state` already included (from 440.66.17)? If not, is this version suitable for RDR2 (like 440.66.15)?
according nvidia json file lastest driver stay a bit outdated compared vulkan beta driver:
450.51
"file_format_version" : "1.0.0",
"ICD": {
"library_path": "libGLX_nvidia.so.0",
"api_version" : "1.2.133"
440.66.17
"file_format_version" : "1.0.0",
"ICD": {
"library_path": "libGLX_nvidia.so.0",
"api_version" : "1.2.145"
Thanks nvidia, but not yet.
* Wayland?
What is it?
Image Sharpening
The __GL_SHARPEN_ENABLE environment variable can be used to enable image sharpening for OpenGL and Vulkan applications. Setting __GL_SHARPEN_ENABLE=1 enables image sharpening, while setting __GL_SHARPEN_ENABLE=0 (default) disables image sharpening. The amount of sharpening can be controlled by setting the __GL_SHARPEN_VALUE environment variable to a value between 0 and 100, with 0 being no sharpening, 100 being maximum sharpening, and 50 being the default. The amount of denoising done on the sharpened image can be controlled with the __GL_SHARPEN_IGNORE_FILM_GRAIN environment variable, with 0 being no denoising, 100 being maximum denoising, and 17 being the default.
Last edited by Xpander on 24 June 2020 at 7:33 pm UTC
support for displays connected to NVIDIA GPUs to act as PRIME display offload sinks, also known as "Reverse PRIME"Does that mean Reverse Prime in On-Demand mode? As in HDMI ports will now work in On Demand mode and not require a restart? That would be amazing!
Sounds like it. I heart skipped a beat when I read that. Anyone have a guide to this type of thing?
support for displays connected to NVIDIA GPUs to act as PRIME display offload sinks, also known as "Reverse PRIME"Does that mean Reverse Prime in On-Demand mode? As in HDMI ports will now work in On Demand mode and not require a restart? That would be amazing!
Sounds like it. I heart skipped a beat when I read that. Anyone have a guide to this type of thing?
Apparently works just by plugging in? I mean that's what I did and it works... But, I can't run my ultrawide at full resolution or it gets that old "your sync rate is completely out" look.
EDIT: also some weird stuff going on with the screens, it acts as if the external and internal screens are one big screen.
Last edited by Luke_Nukem on 24 June 2020 at 10:57 pm UTC
# This xorg.conf.d configuration snippet configures the X server to
# automatically load the nvidia X driver when it detects a device driven by the
# nvidia-drm.ko kernel module. Please note that this only works on Linux kernels
# version 3.9 or higher with CONFIG_DRM enabled, and only if the nvidia-drm.ko
# kernel module is loaded before the X server is started.
Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
EndSection
If you follow this guide, then you lose powersaving and may as well just run regular PRIME mode since the driver is loaded when X starts (and also needs a screen plugged in unless you add `AllowEmptyInitialConfiguration`.
For whatever reason, `Inactive "nvidia"` isn't working for me, and the gpu-manager stuff in /usr/share/X11/xorg.conf.d must be removed.
I wonder how long it will take for this one to reach Ubuntu 20.04 via their official PPA? As the current newest available driver is the 440.64. Very odd since Ubuntu 19.10 has the .82 for a long time already.
I can't speak for Ubuntu's NVidia packages, but at least with Pop!_OS, they only support stable drivers. Beta drivers never get pushed to the Pop!_OS GFX ppa.
I can't speak for Ubuntu's NVidia packages, but at least with Pop!_OS, they only support stable drivers. Beta drivers never get pushed to the Pop!_OS GFX ppa.
Ah damn it's just another beta. Right. I just saw "mainline" and thought it was a new stable. Thanks.
Anyone curious about reverse prime - it works, but not well. The relevant topic is here in the Nvidia forums.
I'm not sure I even got what it's about. :)
Prime: Plug cable into Computer display output while using the dedicted GPU,
Reverse Prime: Plug cable into GPU output while using the graphics unit of the CPU
- is that it?
Anyone curious about reverse prime - it works, but not well. The relevant topic is here in the Nvidia forums.
I'm not sure I even got what it's about. :)
Prime: Plug cable into Computer display output while using the dedicted GPU,
Reverse Prime: Plug cable into GPU output while using the graphics unit of the CPU
- is that it?
Yes. It's to enable hotplugging external displays to discrete GPU while the iGPU is primary. It's a huge step towards Windows style behaviour for Optimus laptops.
like on the 450.36.06 beta cuda drivers, this driver has the image sharpening built in :)
Image Sharpening
The __GL_SHARPEN_ENABLE environment variable can be used to enable image sharpening for OpenGL and Vulkan applications. Setting __GL_SHARPEN_ENABLE=1 enables image sharpening, while setting __GL_SHARPEN_ENABLE=0 (default) disables image sharpening. The amount of sharpening can be controlled by setting the __GL_SHARPEN_VALUE environment variable to a value between 0 and 100, with 0 being no sharpening, 100 being maximum sharpening, and 50 being the default. The amount of denoising done on the sharpened image can be controlled with the __GL_SHARPEN_IGNORE_FILM_GRAIN environment variable, with 0 being no denoising, 100 being maximum denoising, and 17 being the default.
Thank you, had a very hard time finding out how to use this, its very buggy tho but I guess its since its beta drivers.
See more from me