On Tue, Jul 01, 2025 at 06:32:08PM +0200, Alberto Garcia wrote:
> > OpenGL vendor string: NVIDIA Corporation
> > OpenGL renderer string: Quadro 410/PCIe/SSE2
>
> > $ LANG=C && liferea
> > glGetString(GL_VENDOR) returned 'Mesa'
> > NVIDIA card not detected
> Oh, so glxinfo returns 'NVIDIA Corporation' but WebKit sees 'Mesa'
> instead.
>
> Thanks, it seems that we need to update the patch to detect NVIDIA
> cards.
Hi Thorsten, if you are still having this issue with liferea (or other
WebKit-based apps) I would like to try something else.
Can you build and run the attached program and paste the output?
It should be something like this:
$ gcc -o drmdriver -I/usr/include/libdrm drmdriver.c -ldrm
$ ./drmdriver
/dev/dri/renderD128: 'i915'
Also, if you can confirm what version of Debian you're using (trixie,
testing, sid, ...) and the exact versions of the webkit packages I can
maybe prepare a test build with a possible workaround.
Thanks!
Berto
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <xf86drm.h>
static void print_driver(const char *node)
{
int fd = open(node, O_RDWR);
if (fd < 0) {
perror(node);
return;
}
drmVersionPtr v = drmGetVersion(fd);
if (v) {
printf("%s: '%s'\n", node, v->name ?: "(null)");
drmFreeVersion(v);
} else {
fprintf(stderr, "%s: drmGetVersion failed\n", node);
}
close(fd);
}
int main(int argc, char *argv[])
{
drmDevicePtr devices[16];
int n = drmGetDevices2(0, devices, 16);
if (n < 0) {
fprintf(stderr, "drmGetDevices2 failed\n");
return 1;
}
for (int i = 0; i < n; i++) {
const char *node = NULL;
if (devices[i]->available_nodes & (1 << DRM_NODE_RENDER))
node = devices[i]->nodes[DRM_NODE_RENDER];
else if (devices[i]->available_nodes & (1 << DRM_NODE_PRIMARY))
node = devices[i]->nodes[DRM_NODE_PRIMARY];
if (node)
print_driver(node);
}
drmFreeDevices(devices, n);
return 0;
}