neutrinolabs / xorgxrdp

Xorg drivers for xrdp
Other
428 stars 108 forks source link

xorgxrdp crashes when using AMD GPU related Xorg config #223

Closed gamelaster closed 1 year ago

gamelaster commented 2 years ago

xrdp: 0.9.19 (AUR) xorgxrdp: 0.2.18 (AUR xorgxrdp-glamor)

This is highly related to https://github.com/neutrinolabs/xrdp/issues/2010 and https://github.com/neutrinolabs/xrdp/issues/1550 . I had exact same issues, dev tty access, etc. etc. After removing this Xorg config, xorgxrdp works absolutely fine:

Section "Device"
  Identifier    "AMDgpu"
  Driver        "amdgpu"
  Screen        0
  BusID         "PCI:6:0:0"
EndSection

I'm using this Xorg config to force Xorg to use specific GPU (due I have multi GPU setup). I know there is a workaround to not load Load Xorg configs, but firstly, why this doesn't work, as xorgxrdp should support AMD GPU (I built it with glamor support)? Also, if this will ever not work, is there any easy way of just ignore that specific .conf file?

Thank you very much.

seflerZ commented 1 year ago

xrdp has it's own xorg.conf(/etc/X11/xrdp/xorg.conf) and it will be loaded by xrdp-sesman when starting xorg session. It's not recommended to change it. If you want to use specified GPU, it's better to do it in Mesa configurations. Try use this env: MESA_D3D12_DEFAULT_ADAPTER_NAME. You can have more details here and you can use glxinfo -B | grep OpenGL to check if it works

timtas commented 1 year ago

I think you should change the xorg.conf, and add

Option "AutoAddGPU" "off"

instead of "AutoAddDevices"

I had a similar problem with my intel gpu and as I also run a real display server, was not willing to delete the intel bit.

If you however add the above to /etc/X11/xrdp/xorg.conf, xordxrdp will leave the hardware stuff, but the other X server can still use it.

gamelaster commented 1 year ago

@timtas Thanks! This sounds like it can help. Since I don't use xorgxrdp at the moment, I can't test it, so I will close the issue, and will re-open it if your solution will not help me. (or if it will be not working for someone else).