anholt/linux

v3d: dumb_create missing

scpcom opened this issue · 2 comments

On RPi2/RPi3 I use a customized xorg video driver (which is a combination of well known fbturbo and armsoc driver).
http://seafile.servator.de/sbc/raspberrypi/build/xserver-xorg-video-fbturbo-gt-1.20190407.tar.gz
http://seafile.servator.de/sbc/raspberrypi/fbturbo/xserver-xorg-video-fbturbo-rpi-buster-armhf.zip
It uses dumb buffers and calls dumb_create via ioctl.
On RPi2/RPi3 it works fine, on RPi4 I get an "not implemented" error.

The reason why I still use a custom xorg video driver? With modesetting driver the desktop performance is still bad. Things like rdp (xfreerdp) are unusable. For example the animated login screen of the remote desktop shows up in slow motion with modesetting driver, on fbturbo it is less detailed (skipped frames) but fast.

The vc4 does have dumb_create and related code:
https://github.com/anholt/linux/blob/for-next/drivers/gpu/drm/vc4/vc4_drv.c#L210
On v3d it is missing:
https://github.com/anholt/linux/blob/for-next/drivers/gpu/drm/v3d/v3d_drv.c#L205

Is there a plan to add this in future versions?

v3d is not a display driver, and thus doesn't expose the dumb ioctls. For pi4, you do display on the vc4 drm node, and use that node with Mesa so that the kmsro opens up the v3d drm node and moves buffers between the two.