Wayland design and source code documentation

Jasper St. Pierre jstpierre at mecheye.net
Thu Dec 19 07:32:12 PST 2013

On Thu, Dec 19, 2013 at 10:13 AM, Artsiom Anikeyenka
<arty.anikey at gmail.com>wrote:

> That's absolutely right and I realize that very well. But you need to
> think of total newcomers (as I am). I like graphics and I decided to look
> around how that stuff works nowadays under the hood. To have a big picture,
> before I start implementing something on top of that. I don't know X11 and
> I don't want to know it (it's being replaced why learn it). And what
> wayland documentation provides is how wayland is going to replace X
> comparing both. This is good for olders but how am I (and other newcomers)
> supposed to get involved if I (they) want.
> That's why I asked.

I completely agree on the need for documentation for newcomers. That's why
I wrote my "The Linux Graphics Stack" post [0]. I've been working on a
"sequel" to that article with interactive demos since February, and I'm
slowly making progress.

However, the technologies we're trying to replace have evolved slowly over
30 years, and the problem space is big. It's entirely possible to come into
development knowing nothing, but I feel like picking a specialization or
task (for instance: I want to get my Wacom tablet to work on GIMP/Inkscape
under Wayland) is better for a beginner than trying to learn every facet of
the project from top to bottom (as I said, it's a huge endeavor: graphics,
direct rendering, software rendering, modesetting, window management,
input, devices, sessions, desktop components, and more), and then figure
out what to do.

Also, it might be throwing you into the deep end, but try idling on the
#wayland IRC channel on Freenode. A lot of development and discussion
happens in there, and you'll get a pretty good grasp of what we're working

Also, while Wayland is destined to replace X11, some knowledge of X11 is
somewhat expected if you want to be a full-stack engineer, since a lot of
us came from an X11 background, understand X11's strengths and weaknesses,
and are working on porting X11 applications, toolkits, and window
managers/compositors. It will come up a lot in discussion.

It's certainly not something you have to have up-front knowledge of, and
it's certainly something you can pick up on the side and ask questions
about when relevant. But don't expect to count X11 out entirely.

[0] http://blog.mecheye.net/2012/06/the-linux-graphics-stack/

Wayland is just another layer between subsystems. How does it communicate
> with them? A simple picture showing wayland as a node of the graph of
> subsystems (or just singly-linked list maybe) would be really-really
> helpful because it would give a lot of info on what it is and why it's
> there. With that in mind understanding the code would also be easier.

The architecture page on the website [1] has a very high-level diagram of
what's going on. Obviously, there's a lot more details, but this might get
you to understand what's going on.

[1] http://wayland.freedesktop.org/architecture.html

http://nouveau.freedesktop.org/wiki/IntroductoryCourse/ - this is a good
> example of getting people involved.
> Now I'm ready for starting to dig the code but it costed a lot of time.
> Have a great day all.
> On Wed, Dec 18, 2013 at 8:36 PM, Jasper St. Pierre <jstpierre at mecheye.net>wrote:
>> Wayland has a lot of components: the code generator, the protocol, the
>> client/server lib implementation, the design decisions we made to tie it
>> all together. Yes, we aren't the greatest at documentation and we know that
>> a lot is missing, but in general we assume experience with traditional
>> toolkits, compositors/WMs, and in some cases, leftover knowledge from X11.
>> There's also Weston, the de facto, most feature-complete, reference
>> compositor. That has input management, output management, rendering,
>> protocol implementations, clients, etc.
>>  In order for us to help you through the codebase and improve
>> documentation, we sort of need to know what pieces you're interested in,
>> and what you're having trouble understanding.
>> On Wed, Dec 18, 2013 at 3:57 AM, Artsiom Anikeyenka <
>> arty.anikey at gmail.com> wrote:
>>> Hmmm, thanks, but I've seen those. I though maybe there is something
>>> more. Ok I guess the good question will be:
>>> Do most of developers find it detailed and descriptive enough?
>>> I mean I'm still learning so maybe I just don't know enough to
>>> understand.
>>> Thanks, and have a very good day :)
>>> On Wed, Dec 18, 2013 at 2:02 AM, Bryce W. Harrington <
>>> b.harrington at samsung.com> wrote:
>>>> On Tue, Dec 17, 2013 at 11:32:09PM +0300, Artsiom Anikeyenka wrote:
>>>> > Hi guys,
>>>> >
>>>> > Is there a detailed documentation of wayland source code. Any good
>>>> > visualization of the design? Are there any plans on adding/creating
>>>> those?
>>>> >
>>>> > Thanks and be good.
>>>> http://wayland.freedesktop.org/architecture.html
>>>> http://wayland.freedesktop.org/docs/html/
>>>> The former includes a couple block diagrams.
>>>> The latter includes the client and server API's and the protocol
>>>> specification, which are generated from the wayland codebases.
>>>> Bryce
>>> _______________________________________________
>>> wayland-devel mailing list
>>> wayland-devel at lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>> --
>>   Jasper

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20131219/431a9f7a/attachment-0001.html>

More information about the wayland-devel mailing list