this post was submitted on 15 Jun 2023
16 points (86.4% liked)

Linux Gaming

15251 readers
162 users here now

Discussions and news about gaming on the GNU/Linux family of operating systems (including the Steam Deck). Potentially a $HOME away from home for disgruntled /r/linux_gaming denizens of the redditarian demesne.

This page can be subscribed to via RSS.

Original /r/linux_gaming pengwing by uoou.

Resources

WWW:

Discord:

IRC:

Matrix:

Telegram:

founded 1 year ago
MODERATORS
 

As seen across many places in the Linux news (Phoronix, GamingOnLinux, other linux_gaming instances) is the new release from nVidia. For those not in the know, you most likely will want to wait for your distro's packagers to release this for your distro instead of going out and trying this installation manually.

Release highlights include the following changes from the previous beta driver:

  • Fixed a bug that caused modesets to fail in some Wayland configurations.
  • Fixed a bug that caused head-mounted displays (HMDs) to display black after a modeset.
  • Fixed a bug that prevented SLI Mosaic controls from being displayed in the nvidia-settings control panel when using GSP Firmware.
  • Fixed a bug that could cause image corruption when unbinding Vulkan sparse textures.
  • Fixed a bug that caused head-mounted displays (HMDs) to display black after a modeset.

As well as the following changes in the previous beta 535 driver:

  • Added support for the VK_EXT_memory_priority, and VK_EXT_pageable_device_memory extensions for Turing+ GPUs.
  • Improved the performance of Minecraft Java Edition on RTX 3000 series GPUs.
  • Fixed a memory leak in the NVIDIA GLX driver, as reported at: https://forums.developer.nvidia.com/t/222697
  • Added support for driving very high pixel clock mode timings such as 8K @ 60Hz. Please see the "MaxOneHardwareHead" X11 ModeValidation token in the README for details.
  • Extended Dynamic Boost support on notebooks to include older Renoir and Cezanne chipsets, in addition to Rembrandt and newer AMD chipsets.
  • Fixed a bug that caused Vulkan X11 swapchain creation to fail on GPUs without a display engine when the VK_KHR_present_id extension is used.
  • Fixed console restore on legacy VGA consoles when using the NVIDIA Open GPU Kernel Modules.
  • Added nvoptix.bin to the driver package. This data file is used by the OptiX ray tracing engine library, libnvoptix.so.1.
  • Removed libnvidia-compiler.so.VERSION from the driver package. This functionality is now provided by other driver libraries.
  • Added power usage and power limits information to nvidia-settings PowerMizer page.
  • Updated NV_CTRL_GPU_POWER_SOURCE NV-CONTROL API to report undersized power source.
  • Add support for version 4 of the linux-dmabuf wayland protocol.
  • Added NV-CONTROL attributes NV_CTRL_FRAMELOCK_MULTIPLY_DIVIDE_MODE and NV_CTRL_FRAMELOCK_MULTIPLY_DIVIDE_VALUE to allow syncing a Quadro Sync II card to different House Sync signal rates. This feature requires firmware version 2.18 or later; to download the latest firmware version, please visit: https://www.nvidia.com/en-us/drivers/firmware/quadro-sync-firmware-driver/
  • Added support for the VK_KHR_video_queue, VK_KHR_video_decode_queue, VK_KHR_video_decode_h264 and VK_KHR_video_decode_h265 extensions.
  • Added an application profile to avoid performance problems in Xfce 4 when the OpenGL compositor backend is enabled along with G-SYNC.
  • Added support for suspend and resume when using GSP firmware.
  • Moved the nvidia-settings application icon into the 'hicolor' icon theme, which allows it to be customized by other icon themes selected in the desktop environment.
  • Fixed a bug that prevented PRIME render offload from working for Wayland applications when running on a system with an AMD iGPU.
  • Fixed a bug that prevented nvidia-installer from recording kernel log output to the installer log in some module loading failure paths.
  • Changed nvidia-installer to no longer use the $XDG_DATA_DIRS environment variable. XDG data files are now installed to a path specified by the --xdg-data-dir option, or /usr/share if not specified.
  • This fixes a problem when Flatpak is installed that caused the installer to place the nvidia-settings.desktop file in /root/.local/share/flatpak/exports/share/applications.
  • Changed the behavior of glXGetRefreshRateSGI() for non-integer refresh rates to round to the nearest whole number rather than truncating.
  • Changed the compression format of the .run installer package from xz to zstd. This results in a smaller compressed package, and faster decompression performance. A fallback zstd decompressor is embedded into the installer package for systems which do not already have a zstd decompression program installed.
  • Fixed a bug that caused nvidia-installer to mistakenly unload some already loaded non-NVIDIA kernel modules.
  • Fixed a bug which caused incorrect reporting of presentation times when using the VK_NV_present_barrier Vulkan extension.
top 5 comments
sorted by: hot top controversial new old
[–] saucyloggins 3 points 1 year ago (1 children)

I'm not super sure what exactly causes the XWayland funkiness on Wayland with NVIDIA's driver. The Phoronix article mentions "DMA-BUF v4 Wayland protocol support"

Is that possible this would help with that?

[–] Shadywack 8 points 1 year ago* (last edited 1 year ago) (2 children)

This is the root cause for what you're experiencing, and isn't improved by any Wayland protocol support. It has entirely to do with the implicit sync stack that exists within Xwayland and nVidia's lack of support for implicit sync entirely. nVidia proposed an explicit sync method in another merge request that was shot down by the X devs as they "don't solve anything for the Mesa driver" by supporting explicit sync as a concept. Explicit sync is a concept that has less of a performance penalty, and other vendors support the notion of switching to it, but nVidia's hostile relationship with the X developers and FOSS as a whole has caused roadblocks at present where the projects don't wish to collaborate with nVidia's proposals.

So to summarize, this is exclusively an Xwayland issue, nVidia and the developers have disagreed as to how to proceed, and neither side shows any signs of flinching. nVidia is hard nosed about implicit sync and refuses to implement it in their driver for various reasons, and the Xwayland devs are being hard nosed and absolutely refuse to accept nVidia's merge requests for adding explicit sync support for reasons relating to what I can tell is basically "bad blood" between the groups. Even if the project accepts explicit sync, nVidia still has to add the feature to their release pipeline, which would put it past the 545 release some months down the road. Again, even if everyone agreed effective today, we still wouldn't see resolution on this until early 2024 at the soonest. Xwayland will remain broken for nVidia users basically for all time, at the present rate of development. Our applications will all be ported to Wayland before this gets fixed.

Sorry for the soapbox moment, but, it has been incredibly frustrating to see this all play out.

[–] saucyloggins 3 points 1 year ago

No, I'm grateful for the rant. It's been driving me nuts and with the apps I need to use for work not supporting Wayland whatsoever it basically makes me stuck on X, which sucks because Wayland feels much better for me other than XWayland.

It's a really bad issue for me, it makes XWayland completely unusable. Like, characters appear in different order as I'm typing. The cursor sometimes looks like it's a character behind. It's obnoxious that such a huge bug is stuck in politics.

[–] [email protected] 1 points 1 year ago (1 children)

Dang hearing this realllly makes me want to switch to an AMD GPU. I recently got a 3080 and have been happy with it on xorg but feel like I'm just waiting forever for nvidia to maybe implement the entire feature set needed for wayland. Feels bad because gaming, screen recording and streaming feels great on it with xorg but want to use wayland.

[–] Shadywack 0 points 1 year ago

To be fair, nVidia has implemented a complete featureset of the Wayland protocols. It's when we run XWayland that things go to shit. Developers need to port to Wayland natively, nVidia needs to implement implicit sync, or X devs need to implement explicit sync. We're stuck with a shit sandwich until then.