Open fransking opened 4 years ago
I got rid of the corruption while still having GPU acceleration by replacing this line in xrdpdev.c
if (glamor_init(pScreen, GLAMOR_USE_EGL_SCREEN | GLAMOR_NO_DRI3))
with
if (glamor_init(pScreen, GLAMOR_USE_EGL_SCREEN))
Fascinating, I didn't think of this use case. I've only tested on x86 architectures. One trick I do to make sure you are in a glamor session is look at the output of xvinfo. As for removing GLAMOR_NO_DRI3, that is just so we can init DRI3 later. We of course need DRI3. I'll have to see what's going on here. Can you share an sd image? I have a RPi3 but not RPi4.
I also noticed in the logs this
[ 12721.123] (EE) glamor0: GL error: GL_INVALID_OPERATION in glGetUniformLocation(program not linked)
This needs to be fixed. The shaders in rdpEGL.c need to be modified so they compile.
Can you share an sd image? I have a RPi3 but not RPi4.
If you can install docker on the Pi3 this script should give a perfectly re-producable (but working as it does on the Pi3) container
https://github.com/fransking/docker-dosbox/blob/master/Dockerfile
This issue also happens on Raspberry Pi 5, using Raspberry Pi OS version Bookworm 12 (Debian). See https://forums.raspberrypi.com/viewtopic.php?t=323471&start=25. ~/..xorgxrdp.10.log shows me the same error with glamor0.
The only solution to get graphics working in things like webbrowsers when using Xrdp is to basically to disable hardware acceleration so that the really slow llvmpipe software rendering is used (which I just check with glxgears -info
).
I am not really expert with OpenGL though.
And I also tested with the newer Xrdp version from the backports (sudo apt install -t stable-backports xrdp
), but that doesn't change anything to the problem either.
Hi,
After reading #1029 I built a docker image to run headless RDP on a Raspberry PI, compiling XRPD and XORGXRDP from source. Everything is working as expected on the Pi 3 once I do a horrendous hack and sudo chmod 777 /dev/dri/* on the docker host.
Pi3 - glxgears screenshot Pi3 - xorgxrdp log Pi3 - glxinfo output
On the PI4 however although DRI seems to working the graphic output of any opengl app is corrupted.
Pi4 - glxgears screenshot Pi4 - xorgxrdp log Pi4 - glxinfo output
however when launching X within the container and connecting using VNC:
su - dosbox
startx & x11vnc
the graphics are not corrupt on the PI4
Pi4 - xorgxrdp log Pi4 - glxinfo output
Has anyone experienced the same? Is the v3d driver supported?
Thanks,
Frans