This fixes the vendor ICD load path to work with NixOS's opengl path. Previously, the only workaround to load ICD files was to manually override the load path at runtime using an environment variable. Tested against Intel and Nvidia drivers using the clinfo package: Before: ``` $ clinfo Number of platforms 0 ``` After: ``` $ clinfo Number of platforms 1 Platform Name NVIDIA CUDA Platform Vendor NVIDIA Corporation <...> ```
40 lines
793 B
Nix
40 lines
793 B
Nix
{ lib
|
|
, stdenv
|
|
, fetchFromGitHub
|
|
, ruby
|
|
, opencl-headers
|
|
, addOpenGLRunpath
|
|
, autoreconfHook
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "ocl-icd";
|
|
version = "2.3.1";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "OCL-dev";
|
|
repo = "ocl-icd";
|
|
rev = "v${version}";
|
|
sha256 = "1km2rqc9pw6xxkqp77a22pxfsb5kgw95w9zd15l5jgvyjb6rqqad";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
autoreconfHook
|
|
ruby
|
|
];
|
|
|
|
buildInputs = [ opencl-headers ];
|
|
|
|
configureFlags = [
|
|
"--enable-custom-vendordir=/run/opengl-driver/etc/OpenCL/vendors"
|
|
];
|
|
|
|
meta = with lib; {
|
|
description = "OpenCL ICD Loader for ${opencl-headers.name}";
|
|
homepage = "https://github.com/OCL-dev/ocl-icd";
|
|
license = licenses.bsd2;
|
|
platforms = platforms.unix;
|
|
maintainers = with maintainers; [ r-burns ];
|
|
};
|
|
}
|