No hardware acceleration with Xwayland and i915kms (was: Wayland on FreeBSD)
Frederic Chardon
chardon.frederic at gmail.com
Thu Apr 23 09:44:10 UTC 2020
Le jeu. 23 avr. 2020 à 11:36, Emmanuel Vadot <manu at bidouilliste.com> a écrit :
>
> On Thu, 23 Apr 2020 11:24:37 +0200
> Frederic Chardon <chardon.frederic at gmail.com> wrote:
>
> > Le jeu. 23 avr. 2020 à 00:35, Jan Beich <jbeich at freebsd.org> a écrit :
> > >
> > > Frederic Chardon <chardon.frederic at gmail.com> writes:
> > >
> > > > Le mer. 22 avr. 2020 à 16:51, Jan Beich <jbeich at freebsd.org> a écrit :
> > > >
> > > >>
> > > >> Frederic Chardon <chardon.frederic at gmail.com> writes:
> > > >>
> > > >> > Le lun. 20 avr. 2020 à 23:06, Jan Beich <jbeich at freebsd.org> a écrit :
> > > >> >
> > > >> >>
> > > >> >> Frederic Chardon <chardon.frederic at gmail.com> writes:
> > > >> >>
> > > >> >> >
> > > >> >> > The trace shows usage of llvmpipe after the failed ioctl on
> > > >> >> > /dev/dri/card0, so as I understand the lack of hardware acceleration
> > > >> >> > concerns only Xwayland, whereas wayland itself is accelerated ?
> > > >> >>
> > > >> >> Yep. Check which ioctls fail then try to reproduce outside of Mesa or
> > > >> >> hardcode the result. Overriding PCI ID via INTEL_DEVID_OVERRIDE is
> > > >> >> unlikely to help e.g.,
> > > >> >
> > > >> > All below failure occurs only in xwayland, X11 and wayland succeed.
> > > >> >
> > > >> > The first failure is with I915_PARAM_CHIPSET_ID. When I hardcode the
> > > >> > correct ID I get a failure with I915_PARAM_HAS_RELAXED_DATA. When I
> > > >> > force the result to be true (as with X11 and Wayland), the ioctl
> > > >> > DRM_I915_GEM_EXECBUFFER2_WR fails with errno EPERM.
> > > >>
> > > >> Thanks for investigating. Maybe either DRM_AUTH or DRM_RENDER_ALLOW fails.
> > > >> Does setuid bit on Xwayland binary help?
> > > > Yes, hardware acceleration works. eglinfo still complain about invalid
> > > > 0xffffffff PCI ID though
> > > >
> > > >> Does disabling render node help
> > > >> e.g., chmod 0000 /dev/dri/renderD128 ?
> > > > No
> > > >
> > > > What helps however is to mount the different linux filesystems after
> > > > i915kms is loaded.
> > > > eg I added "late" keyword to fstab as below
> > > > devfs /compat/linux/dev devfs rw,late 0 0
> > > > fdesc /compat/linux/dev/fd fdescfs rw,late,linrdlnk 0 0
> > > > linproc /compat/linux/proc linprocfs rw,late 0 0
> > > > linsys /compat/linux/sys linsysfs rw,late 0 0
> > > >
> > > > without the late keyword, acceleration works if devfs alone is
> > > > mounted. any other fs (with or without devfs) makes Xwayland use
> > > > software rendering.
> > > > As with setuid Xwayland, eglinfo complains about invalid PCI ID.
> > >
> > > manu@ fixed major/minor usage upstream. Can you try the following patch?
> >
> > No change. major are still different, minor doesn't have the 0x80 bit
> > set, and hw accel is disabled if I mount linux pseudofs before kldload
> > i915kms
>
> major/minor are irrelevent on FreeBSD, upstream code now don't care
> about them and should properly detect the node type.
> I haven't followed the whole thread as it's a typical mailing list
> thread that switched to troll and unreleated content. Can someone
> explain what is the problem that you have please ?
>
Yes, let's fork the thread
System is a recent -current (from last Sunday), intgegrated intel
HD4000 and drm-devel-kmod
Hardware acceleration works with X11 and native wayland, but not with Xwayland.
With help of Jan I found a weird workaround to mount devfs, fdescfs,
linprocfs and linsysfs under /compat/linux _after_ i915kms is loaded.
More information about the freebsd-x11
mailing list