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;
}

Reply via email to