Chair Person: Jean-Sébastien Pédron
The goal of this working group is about the Graphics stack.
It will address the following items:
Attendees are welcome to add their own topics to the agenda.
We will use this Etherpad to take notes:
https://etherpad.net/p/201510DevSummit_GraphicsStack)–
Around 20 people attended the working group. Allan Jude put in place a live stream on https://bsdnow.tv for people who could not be there;, thank you very much Allan! It was a very productive session with more people than Jean-Sébastien expected.
Jean-Sébastien gave an overview of the architecture of the graphics stack:
xf86-video-*) and Mesaxf86-input-*), evdev, libinputHere is a picture of the architecture sketched on the board: Architecture of the graphic stack
One important question was: why is the input stack considered part of the graphics stack? This is because the display servers (and toolkits above) integrate the input stack in the service they provide. Both the graphics and input stacks are the basis for offering an interactive session to the user.
This topic was in fact mostly covered by the “Recruiting contributors” working group by Deb Goodkin. Therefore, we skipped it in the Graphics stack session. That said, here is a summary:
Somes files, such as ktime.h are directly copied from Linux. They do not even retain the original license header. This is wrong and we can't use this in the default FreeBSD kernel and therefore in DRM.
Meny Yossefi from Mellanox will contact his employer's lawyers to audit the code again. The FreeBSD Foundation may do the same. In the meantime, Hans Petter and Jean-Sébastien are going to look at the DragonFly Linux shim (made private to DRM). François Tigeot said that it probably needs an audit too as the code comes from OFED too.
Jean-Sébastien started with a presentation of the current state in FreeBSD:
atkbdc(4) and ukbd(4)) are by default merged under kbdmux(4). Out-of-the-box, we can't have separate layout for each keyboard. Furthermore, programmable mices, which expose a keyboard, could cause troubles.psm(4) or ums(4). By default, moused(8) is started automatically for all ums(4), but not for psm(4). Configuring the X.Org server can be complicated. Support for touchpads is lagging behind; it can be even worse for other input pointing devices.kbdmux(4)) if the user wants to use them all in VT. With kbdmux(4) disabled, plugging a programmable mouse would render the VT unusable because the fake keyboard would become the active one.He then detailed what the Linux community is aiming at:
xf86-input-*.Jakub Klama made a port of evdev which is quite stable. We discussed this with him, he will put it in Phabricator as soon as he has spare time.
To address udev, we will continue the work on libdevq and add a wrapper above it to provide a udev API. This will be useful to libinput but other components such as Mesa. What we need with libdevq are:
Another requirement for libinput is Linux' timerfd API.