bug: vulkan segfaults (non-nixos-gpu)
bugtriage
### Are you following the right branch?
- [x] My Nixpkgs and Home Manager versions are in sync
### Is there an existing issue for this?
- [x] I have searched the existing issues
### Issue description
programs that depend on vulkan libs return a segfault when running under the `targets.genericLinux.gpu` drivers.
i first encountered this with `programs.zed-editor`, and running `vulkaninfo --summary` from a nix-shell gave the same result:
<details>
<summary>$ coredumpctl info</summary>
<pre>
PID: 342209 (vulkaninfo)
UID: 1000 (mainuser)
GID: 1000 (mainuser)
Signal: 11 (SEGV)
Timestamp: Wed 2026-07-01 13:39:20 BST (4s ago)
Command Line: vulkaninfo --summary
Executable: /nix/store/0gic378xc25n8a0j88fniw77w5c7mjss-vulkan-tools-1.4.328.0/bin/vulkaninfo
Control Group: /user.slice/user-1000.slice/user@1000.service/app.slice/kitty-337396-0.scope
Unit: user@1000.service
User Unit: kitty-337396-0.scope
Slice: user-1000.slice
Owner UID: 1000 (mainuser)
Boot ID: d5ef03d3a1a94bf9b12d22ceab30097a
Machine ID: 28ba87b2504b40a889e28bab1c3ceded
Hostname: fedora
Storage: /var/lib/systemd/coredump/core.vulkaninfo.1000.d5ef03d3a1a94bf9b12d22ceab30097a.342209.1782909560000000>
Size on Disk: 1.9M
Message: Process 342209 (vulkaninfo) of user 1000 dumped core.
Module libxcb-glx.so.0 without build-id.
Module libXext.so.6 without build-id.
Module libexpat.so.1 without build-id.
Module libdisplay-info.so.3 without build-id.
Module libxcb-keysyms.so.1 without build-id.
Module libxshmfence.so.1 without build-id.
Module libxcb-shm.so.0 without build-id.
Module libxcb-randr.so.0 without build-id.
Module libxcb-sync.so.1 without build-id.
Module libxcb-xfixes.so.0 without build-id.
Module libxcb-present.so.0 without build-id.
Module libxcb-dri3.so.0 without build-id.
Module libX11-xcb.so.1 without build-id.
Module libzstd.so.1 without build-id.
Module libdrm.so.2 without build-id.
Module libvulkan.so.1 without build-id.
Module libffi.so.8 without build-id.
Module libXdmcp.so.6 without build-id.
Module libXau.so.6 without build-id.
Module libgcc_s.so.1 without build-id.
Module libstdc++.so.6 without build-id.
Module libX11.so.6 without build-id.
Module libxcb.so.1 without build-id.
Module vulkaninfo without build-id.
Stack trace of thread 342209:
#0 0x00007fb5aa97eda1 __memcpy_avx_unaligned_erms (libc.so.6 + 0x17eda1)
#1 0x00007fb5a1be9c64 n/a (libnvidia-glcore.so.595.71.05 + 0x9e9c64)
#2 0x00007fb5a1ecb1b8 n/a (libnvidia-glcore.so.595.71.05 + 0xccb1b8)
#3 0x00007fb5a1c43faa n/a (libnvidia-glcore.so.595.71.05 + 0xa43faa)
#4 0x00007fb5a4759f4e n/a (libGLX_nvidia.so.0 + 0x84f4e)
#5 0x00007fb5a4726a5b n/a (libGLX_nvidia.so.0 + 0x51a5b)
#6 0x00007fb5a4782582 n/a (libGLX_nvidia.so.0 + 0xad582)
#7 0x00007fb5a4726013 n/a (libGLX_nvidia.so.0 + 0x51013)
#8 0x00007fb5ab05e82d _dl_init (ld-linux-x86-64.so.2 + 0x482d)
#9 0x00007fb5ab05b5e2 _dl_catch_exception (ld-linux-x86-64.so.2 + 0x15e2)
#10 0x00007fb5ab065a94 dl_open_worker (ld-linux-x86-64.so.2 + 0xba94)
#11 0x00007fb5ab05b543 _dl_catch_exception (ld-linux-x86-64.so.2 + 0x1543)
#12 0x00007fb5ab065e44 _dl_open (ld-linux-x86-64.so.2 + 0xbe44)
#13 0x00007fb5aa896764 dlopen_doit (libc.so.6 + 0x96764)
#14 0x00007fb5ab05b543 _dl_catch_exception (ld-linux-x86-64.so.2 + 0x1543)
#15 0x00007fb5ab05b699 _dl_catch_error (ld-linux-x86-64.so.2 + 0x1699)
#16 0x00007fb5aa8961e3 _dlerror_run (libc.so.6 + 0x961e3)
#17 0x00007fb5aa89682f dlopen@GLIBC_2.2.5 (libc.so.6 + 0x9682f)
#18 0x00007fb5aaaab775 loader_scanned_icd_add (libvulkan.so.1 + 0x33775)
#19 0x00007fb5aaaafc69 loader_icd_scan.constprop.0 (libvulkan.so.1 + 0x37c69)
#20 0x00007fb5aaab15c4 terminator_EnumerateInstanceExtensionProperties (libvulkan.so.1 + 0x395c4)
#21 0x00007fb5aaabd4d0 vkEnumerateInstanceExtensionProperties (libvulkan.so.1 + 0x454d0)
#22 0x00005591e1dcf4cc _Z13GetVectorInitI21VkExtensionPropertiesRPF8VkResultPKcPjPS0_EJRS3_EESt6vectorI>
#23 0x00005591e1dd28b9 _ZN11AppInstanceC2Ev (vulkaninfo + 0xca8b9)
#24 0x00005591e1d2829b main (vulkaninfo + 0x2029b)
#25 0x00007fb5aa82a4d8 __libc_start_call_main (libc.so.6 + 0x2a4d8)
#26 0x00007fb5aa82a59b __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x2a59b)
#27 0x00005591e1d29125 _start (vulkaninfo + 0x21125)
ELF object binary architecture: AMD x86-64
</pre>
</details>
here's the result from my system's vulkaninfo (rpm) for comparison:
<details>
<summary>$ vulkaninfo --summary</summary>
<pre>
WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Received return code -9 from call to vkCreateInstance in ICD /usr/lib64/libvulkan_dzn.so. Skipping this driver.
WARNING: [Loader Message] Code 0 : ICD for selected physical device does not export vkGetPhysicalDeviceDisplayPlanePropertiesKHR!
WARNING: [Loader Message] Code 0 : ICD for selected physical device does not export vkGetPhysicalDeviceDisplayPropertiesKHR!
==========
VULKANINFO
==========
Vulkan Instance Version: 1.4.341
Instance Extensions: count = 27
-------------------------------
VK_EXT_acquire_drm_display : extension revision 1
VK_EXT_acquire_xlib_display : extension revision 1
VK_EXT_debug_report : extension revision 10
VK_EXT_debug_utils : extension revision 2
VK_EXT_direct_mode_display : extension revision 1
VK_EXT_display_surface_counter : extension revision 1
VK_EXT_headless_surface : extension revision 1
VK_EXT_layer_settings : extension revision 2
VK_EXT_surface_maintenance1 : extension revision 1
VK_EXT_swapchain_colorspace : extension revision 5
VK_KHR_device_group_creation : extension revision 1
VK_KHR_display : extension revision 23
VK_KHR_external_fence_capabilities : extension revision 1
VK_KHR_external_memory_capabilities : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_display_properties2 : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 2
VK_KHR_get_surface_capabilities2 : extension revision 1
VK_KHR_portability_enumeration : extension revision 1
VK_KHR_surface : extension revision 25
VK_KHR_surface_maintenance1 : extension revision 1
VK_KHR_surface_protected_capabilities : extension revision 1
VK_KHR_wayland_surface : extension revision 6
VK_KHR_xcb_surface : extension revision 6
VK_KHR_xlib_surface : extension revision 6
VK_LUNARG_direct_driver_loading : extension revision 1
VK_NV_display_stereo : extension revision 1
Instance Layers: count = 9
--------------------------
VK_LAYER_FROG_gamescope_wsi_x86_64 Gamescope WSI (XWayland Bypass) Layer (x86_64) 1.3.221 version 1
VK_LAYER_MESA_device_select Linux device selection layer 1.4.303 version 1
VK_LAYER_NV_optimus NVIDIA Optimus layer 1.4.329 version 1
VK_LAYER_NV_present NVIDIA Presentation Layer 1.4.329 version 1
VK_LAYER_VALVE_steam_fossilize_32 Steam Pipeline Caching Layer 1.3.207 version 1
VK_LAYER_VALVE_steam_fossilize_64 Steam Pipeline Caching Layer 1.3.207 version 1
VK_LAYER_VALVE_steam_overlay_32 Steam Overlay Layer 1.3.207 version 1
VK_LAYER_VALVE_steam_overlay_64 Steam Overlay Layer 1.3.207 version 1
VK_LAYER_hdr_wsi WSI HDR Layer (x86_64) 1.3.221 version 1
Devices:
========
GPU0:
apiVersion = 1.4.329
driverVersion = 595.71.5.0
vendorID = 0x10de
deviceID = 0x2504
deviceType = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
deviceName = NVIDIA GeForce RTX 3060
driverID = DRIVER_ID_NVIDIA_PROPRIETARY
driverName = NVIDIA
driverInfo = 595.71.05
conformanceVersion = 1.4.3.3
deviceUUID = bd3be51a-efec-43a4-8f67-51dcff93313b
driverUUID = eec1eba6-4484-5d12-ab32-1ef922507ba0
GPU1:
apiVersion = 1.4.335
driverVersion = 26.0.8
vendorID = 0x10005
deviceID = 0x0000
deviceType = PHYSICAL_DEVICE_TYPE_CPU
deviceName = llvmpipe (LLVM 22.1.5, 256 bits)
driverID = DRIVER_ID_MESA_LLVMPIPE
driverName = llvmpipe
driverInfo = Mesa 26.0.8 (LLVM 22.1.5)
conformanceVersion = 1.3.1.1
deviceUUID = 6d657361-3236-2e30-2e38-000000000000
driverUUID = 6c6c766d-7069-7065-5555-494400000000
</pre>
</details>
i didn't encounter this issue when using zed wrapped by nixGL, and openGL programs have been working fine since #9551 got merged, so i can probably maybe potentially fix this by setting `VK_LAYER_PATH` (or one of the others) as is done [here](https://github.com/nix-community/nixGL/blob/b6105297e6f0cd041670c3e8628394d4ee247ed5/nixGL.nix#L185).
### Maintainer CC
@exzombie
### System information
```markdown
- system: `"x86_64-linux"`
- host os: `Linux 7.0.10-201.fc44.x86_64, Fedora Linux, 44 (KDE Plasma Desktop Edition), nobuild`
- multi-user?: `yes`
- sandbox: `yes`
- version: `nix-env (Nix) 2.32.2`
- channels(root): `"nixpkgs"`
- nixpkgs: `/nix/store/dpyfd9m5acas0vl3sl2bbvq626lik1n3-nixpkgs/nixpkgs`
```
3 条评论