@@ -15,7 +15,7 @@ nvidiaVersionFile ? null,
15
15
enable32bits ? true
16
16
, writeTextFile , shellcheck , pcre , runCommand , linuxPackages
17
17
, fetchurl , lib , runtimeShell , bumblebee , libglvnd , vulkan-validation-layers
18
- , mesa , libvdpau-va-gl , intel-media-driver , vaapiIntel , pkgsi686Linux , driversi686Linux
18
+ , mesa , libvdpau-va-gl , intel-media-driver , pkgsi686Linux , driversi686Linux
19
19
, zlib , libdrm , xorg , wayland , gcc } :
20
20
21
21
let
36
36
done
37
37
'' ;
38
38
} ;
39
+
40
+ writeNixGL = name : vadrivers : writeExecutable {
41
+ inherit name ;
42
+ # add the 32 bits drivers if needed
43
+ text = let
44
+ mesa-drivers = [ mesa . drivers ]
45
+ ++ lib . optional enable32bits pkgsi686Linux . mesa . drivers ;
46
+ libvdpau = [ libvdpau-va-gl ]
47
+ ++ lib . optional enable32bits pkgsi686Linux . libvdpau-va-gl ;
48
+ glxindirect = runCommand "mesa_glxindirect" { } ( ''
49
+ mkdir -p $out/lib
50
+ ln -s ${ mesa . drivers } /lib/libGLX_mesa.so.0 $out/lib/libGLX_indirect.so.0
51
+ '' ) ;
52
+ in ''
53
+ #!${ runtimeShell }
54
+ export LIBGL_DRIVERS_PATH=${ lib . makeSearchPathOutput "lib" "lib/dri" mesa-drivers }
55
+ export LIBVA_DRIVERS_PATH=${ lib . makeSearchPathOutput "out" "lib/dri" ( mesa-drivers ++ vadrivers ) }
56
+ ${ ''export __EGL_VENDOR_LIBRARY_FILENAMES=${ mesa . drivers } /share/glvnd/egl_vendor.d/50_mesa.json${
57
+ lib . optionalString enable32bits
58
+ ":${ pkgsi686Linux . mesa . drivers } /share/glvnd/egl_vendor.d/50_mesa.json"
59
+ } "'' ${__EGL_VENDOR_LIBRARY_FILENAMES:+:$__EGL_VENDOR_LIBRARY_FILENAMES}"''
60
+ }
61
+ export LD_LIBRARY_PATH=${ lib . makeLibraryPath mesa-drivers } :${ lib . makeSearchPathOutput "lib" "lib/vdpau" libvdpau } :${ glxindirect } /lib:${ lib . makeLibraryPath [ libglvnd ] } "'' ${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
62
+ exec "$@"
63
+ '' ;
64
+ } ;
39
65
top = rec {
40
66
/*
41
67
It contains the builder for different nvidia configuration, parametrized by
@@ -127,36 +153,14 @@ let
127
153
nixVulkanNvidia = nixNvidiaWrapper "Vulkan" ;
128
154
} ;
129
155
130
- nixGLIntel = writeExecutable {
131
- name = "nixGLIntel" ;
132
- # add the 32 bits drivers if needed
133
- text = let
134
- mesa-drivers = [ mesa . drivers ]
135
- ++ lib . optional enable32bits pkgsi686Linux . mesa . drivers ;
136
- intel-driver = [ intel-media-driver vaapiIntel ]
137
- # Note: intel-media-driver is disabled for i686 until https://github.com/NixOS/nixpkgs/issues/140471 is fixed
138
- ++ lib . optionals enable32bits [ /* pkgsi686Linux.intel-media-driver */ driversi686Linux . vaapiIntel ] ;
139
- libvdpau = [ libvdpau-va-gl ]
140
- ++ lib . optional enable32bits pkgsi686Linux . libvdpau-va-gl ;
141
- glxindirect = runCommand "mesa_glxindirect" { } ( ''
142
- mkdir -p $out/lib
143
- ln -s ${ mesa . drivers } /lib/libGLX_mesa.so.0 $out/lib/libGLX_indirect.so.0
144
- '' ) ;
145
- in ''
146
- #!${ runtimeShell }
147
- export LIBGL_DRIVERS_PATH=${ lib . makeSearchPathOutput "lib" "lib/dri" mesa-drivers }
148
- export LIBVA_DRIVERS_PATH=${ lib . makeSearchPathOutput "out" "lib/dri" intel-driver }
149
- ${ ''export __EGL_VENDOR_LIBRARY_FILENAMES=${ mesa . drivers } /share/glvnd/egl_vendor.d/50_mesa.json${
150
- lib . optionalString enable32bits
151
- ":${ pkgsi686Linux . mesa . drivers } /share/glvnd/egl_vendor.d/50_mesa.json"
152
- } "'' ${__EGL_VENDOR_LIBRARY_FILENAMES:+:$__EGL_VENDOR_LIBRARY_FILENAMES}"''
153
- }
154
- export LD_LIBRARY_PATH=${ lib . makeLibraryPath mesa-drivers } :${ lib . makeSearchPathOutput "lib" "lib/vdpau" libvdpau } :${ glxindirect } /lib:${ lib . makeLibraryPath [ libglvnd ] } "'' ${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
155
- exec "$@"
156
- '' ;
157
- } ;
158
156
159
- nixVulkanIntel = writeExecutable {
157
+ nixGLMesa = writeNixGL "nixGLMesa" [ ] ;
158
+
159
+ nixGLIntel = writeNixGL "nixGLIntel"
160
+ ( [ intel-media-driver ]
161
+ ++ lib . optionals enable32bits [ pkgsi686Linux . intel-media-driver ] ) ;
162
+
163
+ nixVulkanMesa = writeExecutable {
160
164
name = "nixVulkanIntel" ;
161
165
text = let
162
166
# generate a file with the listing of all the icd files
194
198
'' ;
195
199
} ;
196
200
201
+ nixVulkanIntel = nixVulkanMesa ;
202
+
197
203
nixGLCommon = nixGL :
198
204
runCommand "nixGL" { } ''
199
205
mkdir -p "$out/bin"
0 commit comments