Only intel-compute-runtime-legacy works but not compatible with intel-gmmlib required by intel-media-driver.

Debian_SuperUser

Active Member
Joined
Mar 18, 2024
Messages
161
Reaction score
41
Credits
1,949
So all this time I had been using libva-intel-driver and intel-compute-runtime-legacy with intel-gmmlib-legacy. I had intel-media-driver installed but that was even earlier when I wasn't needing OpenCL. I found out that it is newer, and supposedly works with my GPU (says it works on Broadwell and later, and I have Coffee Lake).

I can uninstall libva-intel-driver and install intel-media-driver with intel-gmmlib that is required. Video acceleration works. I can confirm with vainfo whether the i965 (libva-intel-driver) or the iHD (intel-media-driver) is being used.

Problem is with OpenCL support. Only intel-compute-runtime-legacy which requires intel-gmmlib-legacy seems to work, and hence uninstalling intel-media-driver because it requires intel-gmmlib and is incompatible with intel-gmmlib-legacy, and hence needing to use libva-intel-driver. If I install intel-compute-runtime and intel-gmmlib, no OpenCL programs work. They cannot find my GPU. Can verify with clinfo.

In short, the old stack is libva-intel-driver (which doesn't require any gmmlib) for VA-API and intel-compute-runtime-legacy + intel-gmmlib-legacy for OpenCL. The new stack has intel-media-driver + intel-gmmlib for VA-API and intel-compute-runtime + intel-gmmlib. intel-gmmlib is the dependency for both intel-media-driver and intel-compute-runtime but intel-compute-runtime is not working on my system and instead intel-compute-runtime-legacy which works requires intel-gmmlib-legacy which replaces intel-gmmlib and hence breaks dependency with intel-media-driver.

I tried both and didn't see any performance difference on video playback in YouTube on Firefox. But I would like to be on the newer software. Sad that Xe is a newer driver branch that is not supported on my platform. Is there any way I can get intel-media-driver and OpenCL running (whether that be fixing the problem with intel-compute-runtime or perhaps having intel-gmmlib and intel-gmmlib-legacy co-exist on my system which is complicated).

This is my clinfo with having intel-compute-runtime installed -
Number of platforms 1
Platform Name rusticl
Platform Vendor Mesa/X.org
Platform Version OpenCL 3.0
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_icd
Platform Extensions with Version cl_khr_icd 0x800000 (2.0.0)
Platform Numeric Version 0xc00000 (3.0.0)
Platform Extensions function suffix MESA
Platform Host timer resolution 1ns

Platform Name rusticl
Number of devices 0

NULL platform behavior
clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) rusticl
clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...) No devices found in platform [rusticl?]
clCreateContext(NULL, ...) [default] No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) No devices found in platform

ICD loader properties
ICD loader Name OpenCL ICD Loaderns
ICD loader Vendor OCL Icd free softwarens
ICD loader Version 2.3.4ns
ICD loader Profile OpenCL 3.0ns

I am on Arch Linux, in case you didn't see which sub-forum this was posted on.
 


Okay, let me break down what's happening and potential solutions:
The Problem:
You have Coffee Lake integrated graphics. The newer intel-compute-runtime (non-legacy) should theoretically support it, but clinfo shows "Number of devices 0" - meaning it's not detecting your GPU at all. You're stuck using the legacy stack to get OpenCL working, which forces you to use the older VA-API driver too.
Why the new compute runtime might not be working:

Missing kernel parameters or firmware - Sometimes the newer runtime needs specific kernel boot parameters or updated firmware
NEO runtime requirements - The non-legacy compute runtime has stricter requirements
Package conflicts or incomplete installation - Something might be missing

Things to try:

Check kernel boot parameters:

cat /proc/cmdline
You might need i915.enable_guc=2 or similar parameters for newer driver features.

Verify i915 driver is loaded with correct features:

dmesg | grep -i i915
lsmod | grep i915

Check what OpenCL runtimes are actually installed:

ls -la /etc/OpenCL/vendors/
Make sure only the Intel ICD file is there when testing.

Try installing the complete neo stack explicitly:

sudo pacman -S intel-compute-runtime intel-gmmlib intel-media-driver opencl-headers ocl-icd

Check permissions on the GPU device:

ls -la /dev/dri/
groups
Make sure you're in the video and render groups.
The co-existence question:
No, intel-gmmlib and intel-gmmlib-legacy cannot coexist - they're designed as replacements for each other and will conflict.
My suspicion:
Coffee Lake should work with the newer stack, but there might be a Mesa/driver version issue or missing configuration. What versions do you have?

pacman -Q intel-compute-runtime intel-gmmlib mesa

Also, what's your exact CPU model? (lscpu | grep "Model name")

The fact that rusticl shows up but finds no devices suggests the OpenCL infrastructure is there, but the Intel NEO runtime isn't properly exposing your GPU. This is often a configuration or compatibility issue rather than true hardware incompatibility.
 


Follow Linux.org

Members online


Top