From 4cdb6f38f461da144dfa633fd45f9f1d395d29c6 Mon Sep 17 00:00:00 2001 From: Matt Housh Date: Tue, 21 Mar 2023 23:05:51 -0500 Subject: [PATCH] nvidia: egl/wayland fixes and tweaks, added NGX wine/proton DLLs and updater, GSP firmware --- nvidia/.footprint | 43 +++++++++++++++++++++++++++++++++++---- nvidia/.signature | 6 +++--- nvidia/Pkgfile | 51 +++++++++++++++++++++++++++++++++-------------- nvidia/README | 12 ++++++----- 4 files changed, 85 insertions(+), 27 deletions(-) diff --git a/nvidia/.footprint b/nvidia/.footprint index 100a33510..7fdfc57f6 100644 --- a/nvidia/.footprint +++ b/nvidia/.footprint @@ -4,10 +4,12 @@ drwxr-xr-x root/root etc/OpenCL/vendors/ -rw-r--r-- root/root etc/OpenCL/vendors/nvidia.icd drwxr-xr-x root/root etc/rc.d/ -rwxr-xr-x root/root etc/rc.d/nvidia-powerd -drwxr-xr-x root/root etc/vulkan/ -drwxr-xr-x root/root etc/vulkan/icd.d/ --rw-r--r-- root/root etc/vulkan/icd.d/nvidia_icd.json drwxr-xr-x root/root lib/ +drwxr-xr-x root/root lib/firmware/ +drwxr-xr-x root/root lib/firmware/nvidia/ +drwxr-xr-x root/root lib/firmware/nvidia/525.89.02/ +-rw-r--r-- root/root lib/firmware/nvidia/525.89.02/gsp_ad10x.bin +-rw-r--r-- root/root lib/firmware/nvidia/525.89.02/gsp_tu10x.bin drwxr-xr-x root/root lib/modules/ drwxr-xr-x root/root lib/modules// drwxr-xr-x root/root lib/modules//extra/ @@ -25,12 +27,15 @@ drwxr-xr-x root/root usr/bin/ -rwxr-xr-x root/root usr/bin/nvidia-cuda-mps-server -rwxr-xr-x root/root usr/bin/nvidia-debugdump -rwsr-xr-x root/root usr/bin/nvidia-modprobe +-rwxr-xr-x root/root usr/bin/nvidia-ngx-updater -rwxr-xr-x root/root usr/bin/nvidia-persistenced -rwxr-xr-x root/root usr/bin/nvidia-powerd -rwxr-xr-x root/root usr/bin/nvidia-settings -rwxr-xr-x root/root usr/bin/nvidia-smi -rwxr-xr-x root/root usr/bin/nvidia-xconfig drwxr-xr-x root/root usr/lib/ +drwxr-xr-x root/root usr/lib/gbm/ +lrwxrwxrwx root/root usr/lib/gbm/nvidia-drm_gbm.so -> libnvidia-allocator.so.525.89.02 lrwxrwxrwx root/root usr/lib/libEGL_nvidia.so.0 -> libEGL_nvidia.so.525.89.02 -rwxr-xr-x root/root usr/lib/libEGL_nvidia.so.525.89.02 lrwxrwxrwx root/root usr/lib/libGLESv1_CM_nvidia.so.1 -> libGLESv1_CM_nvidia.so.525.89.02 @@ -46,17 +51,38 @@ lrwxrwxrwx root/root usr/lib/libcuda.so.1 -> libcuda.so.525.89.02 lrwxrwxrwx root/root usr/lib/libcudadebugger.so -> libcudadebugger.so.525.89.02 lrwxrwxrwx root/root usr/lib/libcudadebugger.so.1 -> libcudadebugger.so.525.89.02 -rwxr-xr-x root/root usr/lib/libcudadebugger.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvcuvid.so -> libnvcuvid.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvcuvid.so.1 -> libnvcuvid.so.525.89.02 -rwxr-xr-x root/root usr/lib/libnvcuvid.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-allocator.so -> libnvidia-allocator.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-allocator.so.1 -> libnvidia-allocator.so.525.89.02 +-rwxr-xr-x root/root usr/lib/libnvidia-allocator.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-cfg.so -> libnvidia-cfg.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-cfg.so.1 -> libnvidia-cfg.so.525.89.02 -rwxr-xr-x root/root usr/lib/libnvidia-cfg.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-compiler.so -> libnvidia-compiler.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-compiler.so.1 -> libnvidia-compiler.so.525.89.02 -rwxr-xr-x root/root usr/lib/libnvidia-compiler.so.525.89.02 lrwxrwxrwx root/root usr/lib/libnvidia-egl-gbm.so -> libnvidia-egl-gbm.so.1.1.0 lrwxrwxrwx root/root usr/lib/libnvidia-egl-gbm.so.1 -> libnvidia-egl-gbm.so.1.1.0 -rwxr-xr-x root/root usr/lib/libnvidia-egl-gbm.so.1.1.0 +lrwxrwxrwx root/root usr/lib/libnvidia-eglcore.so -> libnvidia-eglcore.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-eglcore.so.1 -> libnvidia-eglcore.so.525.89.02 -rwxr-xr-x root/root usr/lib/libnvidia-eglcore.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-encode.so -> libnvidia-encode.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-encode.so.1 -> libnvidia-encode.so.525.89.02 -rwxr-xr-x root/root usr/lib/libnvidia-encode.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-fbc.so -> libnvidia-fbc.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-fbc.so.1 -> libnvidia-fbc.so.525.89.02 -rwxr-xr-x root/root usr/lib/libnvidia-fbc.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-glcore.so -> libnvidia-glcore.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-glcore.so.1 -> libnvidia-glcore.so.525.89.02 -rwxr-xr-x root/root usr/lib/libnvidia-glcore.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-glsi.so -> libnvidia-glsi.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-glsi.so.1 -> libnvidia-glsi.so.525.89.02 -rwxr-xr-x root/root usr/lib/libnvidia-glsi.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-glvkspirv.so -> libnvidia-glvkspirv.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-glvkspirv.so.1 -> libnvidia-glvkspirv.so.525.89.02 -rwxr-xr-x root/root usr/lib/libnvidia-glvkspirv.so.525.89.02 -rwxr-xr-x root/root usr/lib/libnvidia-gtk2.so.525.89.02 -rwxr-xr-x root/root usr/lib/libnvidia-gtk3.so.525.89.02 @@ -75,13 +101,17 @@ lrwxrwxrwx root/root usr/lib/libnvidia-opticalflow.so.1 -> libnvidia-opticalflow lrwxrwxrwx root/root usr/lib/libnvidia-ptxjitcompiler.so -> libnvidia-ptxjitcompiler.so.525.89.02 lrwxrwxrwx root/root usr/lib/libnvidia-ptxjitcompiler.so.1 -> libnvidia-ptxjitcompiler.so.525.89.02 -rwxr-xr-x root/root usr/lib/libnvidia-ptxjitcompiler.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-rtcore.so -> libnvidia-rtcore.so.525.89.02 +lrwxrwxrwx root/root usr/lib/libnvidia-rtcore.so.1 -> libnvidia-rtcore.so.525.89.02 -rwxr-xr-x root/root usr/lib/libnvidia-rtcore.so.525.89.02 -rwxr-xr-x root/root usr/lib/libnvidia-tls.so.525.89.02 lrwxrwxrwx root/root usr/lib/libnvoptix.so -> libnvoptix.so.525.89.02 lrwxrwxrwx root/root usr/lib/libnvoptix.so.1 -> libnvoptix.so.525.89.02 -rwxr-xr-x root/root usr/lib/libnvoptix.so.525.89.02 -lrwxrwxrwx root/root usr/lib/nvidia-drm_gbm.so -> libnvidia-allocator.so.525.89.02 drwxr-xr-x root/root usr/lib/nvidia/ +drwxr-xr-x root/root usr/lib/nvidia/wine/ +-rwxr-xr-x root/root usr/lib/nvidia/wine/_nvngx.dll +-rwxr-xr-x root/root usr/lib/nvidia/wine/nvngx.dll drwxr-xr-x root/root usr/lib/nvidia/xorg/ lrwxrwxrwx root/root usr/lib/nvidia/xorg/libglxserver_nvidia.so -> libglxserver_nvidia.so.525.89.02 lrwxrwxrwx root/root usr/lib/nvidia/xorg/libglxserver_nvidia.so.1 -> libglxserver_nvidia.so.525.89.02 @@ -112,3 +142,8 @@ drwxr-xr-x root/root usr/share/nvidia/ -rw-r--r-- root/root usr/share/nvidia/nvidia-application-profiles-525.89.02-rc drwxr-xr-x root/root usr/share/pixmaps/ -rw-r--r-- root/root usr/share/pixmaps/nvidia-settings.png +drwxr-xr-x root/root usr/share/vulkan/ +drwxr-xr-x root/root usr/share/vulkan/icd.d/ +-rw-r--r-- root/root usr/share/vulkan/icd.d/nvidia_icd.json +drwxr-xr-x root/root usr/share/vulkan/implicit_layer.d/ +-rw-r--r-- root/root usr/share/vulkan/implicit_layer.d/nvidia_layers.json diff --git a/nvidia/.signature b/nvidia/.signature index 89ab68190..a2cabd1e3 100644 --- a/nvidia/.signature +++ b/nvidia/.signature @@ -1,7 +1,7 @@ untrusted comment: verify with /etc/ports/opt.pub -RWSE3ohX2g5d/XUiTdFk2obH/wDOaqCRK4HnROiBXT62/fK3FtxgrH9K/sLRRmZWKFte88mUsyIRK753yQnfaUbq9iZGTixtKAg= -SHA256 (Pkgfile) = 7493bd971ecb9fc349d6cba99356d7f5f59ae58d03cc07d0c260121d66c20e71 -SHA256 (.footprint) = b1a3fc660fc513144d0d4b3a39fdb9be90b691d7f6c53f92d8d927f742c2514e +RWSE3ohX2g5d/UEcUXFZZJbgVWibCJwpDJ2oEDMjc1DMQf5QRnDFIfOZrVzDFYhcjENMbudZwuDqSz21aLvsU3CawPL6mdnEVgE= +SHA256 (Pkgfile) = c1e01622c45bbb4e8b4b9218d4e363f7cbabd7ff3282015c2b615024008c19b3 +SHA256 (.footprint) = c8249bbe8afe3a13f569c5ab64d40c888544c4d271aeff129dc64ee46c60c6fa SHA256 (NVIDIA-Linux-x86_64-525.89.02.run) = 0e412c88c5bd98f842a839a6f64614f20e4c0950ef7cffb12b158a71633593e9 SHA256 (90-nvidia-uvm.rules) = c35c61cebf5bf9a112ac06539bdc670a388afa4b50a7f8223a114fbeafedb140 SHA256 (10-nvidia-drm-outputclass.conf) = 4a72c70d7e348102f8c159b3f58973218bc740de1d86830f7cbee1c40744929c diff --git a/nvidia/Pkgfile b/nvidia/Pkgfile index 122bb90cb..d6fb0e997 100644 --- a/nvidia/Pkgfile +++ b/nvidia/Pkgfile @@ -5,7 +5,7 @@ name=nvidia version=525.89.02 -release=1 +release=2 source=(https://us.download.nvidia.com/XFree86/Linux-x86_64/$version/NVIDIA-Linux-x86_64-$version.run \ 90-nvidia-uvm.rules 10-nvidia-drm-outputclass.conf nvidia-powerd.rc) @@ -35,12 +35,15 @@ build() { ln -s libnvidia-egl-gbm.so.1.1.0 $PKG/usr/lib/libnvidia-egl-gbm.so.1 ln -s libnvidia-egl-gbm.so.1.1.0 $PKG/usr/lib/libnvidia-egl-gbm.so install -D -m 0644 15_nvidia_gbm.json $PKG/usr/share/egl/egl_external_platform.d/15_nvidia_gbm.json - ln -s libnvidia-allocator.so.$version $PKG/usr/lib/nvidia-drm_gbm.so + install -d -m 0755 $PKG/usr/lib/gbm + ln -s libnvidia-allocator.so.$version $PKG/usr/lib/gbm/nvidia-drm_gbm.so - # wayland EGL library and config - if [ $(prt-get isinst wayland > /dev/null) -ne 0 ]; then + # wayland config + if prt-get isinst wayland > /dev/null; then + # let egl-wayland handle the library + echo -e "\n\nINFO: wayland is installed; if nvidia eglstream support is desired/needed, install 'egl-wayland'!\n\n" + sleep 5 install -d $PKG/usr/share/egl/egl_external_platform.d - install -m 0755 libnvidia-egl-wayland.so.1.0.2 $PKG/usr/lib/ install -m 0644 10_nvidia_wayland.json $PKG/usr/share/egl/egl_external_platform.d/ fi @@ -51,17 +54,17 @@ build() { ln -s libEGL_nvidia.so.$version $PKG/usr/lib/libEGL_nvidia.so.0 # vulkan ICD config - install -d $PKG/etc/vulkan/icd.d - install -m 0644 nvidia_icd.json $PKG/etc/vulkan/icd.d/ + install -D -m 0644 nvidia_icd.json $PKG/usr/share/vulkan/icd.d/nvidia_icd.json + + # vulkan layer config + install -D -m 0644 nvidia_layers.json $PKG/usr/share/vulkan/implicit_layer.d/nvidia_layers.json # driver component libraries - install -m 0755 libnvidia-cfg.so.$version $PKG/usr/lib/ - install -m 0755 libnvidia-compiler.so.$version $PKG/usr/lib/ - install -m 0755 libnvidia-eglcore.so.$version $PKG/usr/lib/ - install -m 0755 libnvidia-glcore.so.$version $PKG/usr/lib/ - install -m 0755 libnvidia-glsi.so.$version $PKG/usr/lib/ - install -m 0755 libnvidia-glvkspirv.so.$version $PKG/usr/lib/ - install -m 0755 libnvidia-rtcore.so.$version $PKG/usr/lib/ + for C in cfg compiler {e,}glcore gl{si,vkspirv} rtcore allocator; do + install -m 0755 libnvidia-${C}.so.$version $PKG/usr/lib/ + ln -s libnvidia-${C}.so.$version $PKG/usr/lib/libnvidia-${C}.so.1 + ln -s libnvidia-${C}.so.$version $PKG/usr/lib/libnvidia-${C}.so + done # vendor VDPAU library install -D -m 0755 libvdpau_nvidia.so.$version $PKG/usr/lib/vdpau/libvdpau_nvidia.so.$version @@ -110,8 +113,14 @@ build() { # encoding/decoding libraries install -m 0755 libnvcuvid.so.$version $PKG/usr/lib/ + ln -s libnvcuvid.so.$version $PKG/usr/lib/libnvcuvid.so.1 + ln -s libnvcuvid.so.$version $PKG/usr/lib/libnvcuvid.so install -m 0755 libnvidia-encode.so.$version $PKG/usr/lib/ + ln -s libnvidia-encode.so.$version $PKG/usr/lib/libnvidia-encode.so.1 + ln -s libnvidia-encode.so.$version $PKG/usr/lib/libnvidia-encode.so install -m 0755 libnvidia-fbc.so.$version $PKG/usr/lib/ + ln -s libnvidia-fbc.so.$version $PKG/usr/lib/libnvidia-fbc.so.1 + ln -s libnvidia-fbc.so.$version $PKG/usr/lib/libnvidia-fbc.so # OptiX ray tracing engine install -m 0755 libnvoptix.so.$version $PKG/usr/lib/ @@ -123,10 +132,22 @@ build() { ln -s libnvidia-opticalflow.so.$version $PKG/usr/lib/libnvidia-opticalflow.so.1 ln -s libnvidia-opticalflow.so.$version $PKG/usr/lib/libnvidia-opticalflow.so - # NGX library + # NGX library and updater install -m 0755 libnvidia-ngx.so.$version $PKG/usr/lib/ ln -s libnvidia-ngx.so.$version $PKG/usr/lib/libnvidia-ngx.so.1 ln -s libnvidia-ngx.so.$version $PKG/usr/lib/libnvidia-ngx.so + install -m 0755 nvidia-ngx-updater $PKG/usr/bin/ + + # NGX for wine/proton + if prt-get listinst --regex '^wine' >/dev/null 2>&1; then + install -d $PKG/usr/lib/nvidia/wine + install -m 0755 nvngx.dll $PKG/usr/lib/nvidia/wine/ + install -m 0755 _nvngx.dll $PKG/usr/lib/nvidia/wine/ + fi + + # GSP firmware + install -d $PKG/lib/firmware/$name/$version + install -m 0644 firmware/gsp_*.bin $PKG/lib/firmware/$name/$version/ # X driver config install -D -m 0644 $SRC/10-nvidia-drm-outputclass.conf \ diff --git a/nvidia/README b/nvidia/README index 180ad697d..e240ff216 100644 --- a/nvidia/README +++ b/nvidia/README @@ -1,9 +1,11 @@ -README for nvidia 1xx.xx+ +NOTE about groups and device permissions: + +Add your user to the "video" group to be able to +use the nvidia devices required for 3D to function properly. +NOTE about wayland and eglstream: -*** NOTE for nvidia with udev *** - -If using udev, add your user to the "video" group to be able to -use the nvidia devices required for 3d to function properly. +If wayland is installed and eglstream support is desired/needed, +additionally install the 'egl-wayland' port.