On Sat, 26 Oct 2024 22:08:14 -0400
Qingyao Sun <sunqingyao19970...@icloud.com> wrote:

>         failed to open /dev/dri/card1: Permission denied

xenodm allows card0 but not card1.  /etc/X11/xenodm/GiveConsole
and /etc/X11/xenodm/TakeConsole have the lines

    chown $USER:$GROUP /dev/dri/card0
    chown $USER:$GROUP /dev/dri/renderD128
    chown root:wheel /dev/dri/card0
    chown root:wheel /dev/dri/renderD128

Might need to be /dev/dri/card* and /dev/dri/renderD* to allow more
than 1 card.  You have 2 cards (drm1 at amdgpu0, drm0 at inteldrm0).
I would "ls -l /dev/dri" to check owners, and try some chown commands
as root, before editing GiveConsole and TakeConsole.

Most OpenBSD users have only 1 card.  I don't know whether 2 cards
works on OpenBSD.  I can see both cards in your Xorg.0.log,

>         [    15.465] (--) PCI:*(0@0:2:0) 8086:5912:1028:07a1 rev 4, Mem @ 
> 0xee000000/16777216, 0xc0000000/268435456, I/O @ 0x0000f000/64
>         [    15.465] (--) PCI: (3@0:0:0) 1002:743f:1028:0041 rev 195, Mem @ 
> 0xd0000000/268435456, 0xe0000000/2097152, 0xef000000/1048576, I/O @ 
> 0x0000e000/256

but Xorg takes only 1 card, then "xrandr --listproviders" has only 1.
This line stood out,

>         [    15.462] (==) Not automatically adding GPU devices

This seems to be Xorg refusing to add more than 1 GPU
(cd /usr/xenocara/xserver && grep -R autoAddGPU).  The default seems
to add more GPUs on Linux, and use only 1 GPU on other systems like
OpenBSD, so maybe multiple GPUs only works on Linux.

I guess 2 ways for /etc/X11/xorg.conf to try multiple GPUs on OpenBSD.
These might not work, I don't have xorg.conf on my own systems.

The automatic way would be xorg.conf with no Device sections and

Section "ServerFlags"
        Option "AutoAddGPU" "on"
EndSection

The manual way would have no AutoAddGPU and 2 Device sections (1 for
each card).  You have it for amdgpu0,

>         Section "Device"
>             Identifier "AMDgpu"
>             Driver "amdgpu"
>             BusID "PCI:3:0:0"
>         EndSection

I don't know it for inteldrm0.  Your Xorg.0.log had modesetting claim
0@0:2:0, so I guess,

Section "Device"
        Identifier "Intel"
        Driver "modesetting"
        BusID "PCI:0:2:0"
EndSection

(The Identifier doesn't need to be "Intel", but does need to be
 different from the other device's Identifier.  I don't know whether
 the Driver line is needed.)

If either way works, then "xrandr --listproviders" would list both
cards.
--gkoehler

Reply via email to