From 9dccfd1ef3f0d20b4ec4ca62703e3aa618f09596 Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Thu, 16 Jan 2020 17:44:51 +0200 Subject: [PATCH] doc: output management sequence diagrams When we were designing the libweston output API, I wrote a design document as a Phabricator wiki page. Phabricator is no longer accessible so that information needs to be migrated to a new place. Here I am converting most of it into libweston Sphinx documentation, particularly pulling in the sequence diagrams I drew. This should help people understand how libweston output configuration works. The diagrams are committed as both MSC source files and rendered PNG files. I did not bother tinkering with the build to run mscgen automatically and then with the CI images to install the tool. The Sphinx configuration need numref explicitly enabled so that figures are automatically numbered and can be referenced by their number rather than their whole caption text(!). The document structure is changed a little better flowing with Output Management being the overview page and the Heads and Outputs being the API pages. First I wrote the struct weston_output and weston_head descriptions in Doxygen comments in libweston.h, but then in the API page that text would have been buried somewhere towards the end of the page. So I put that text in ReST instead where it comes as first on the pages as it should. The doc for the structs only contain a link to the top of the page. Yes, the comment style in libweston.h is a little broken. If I left the asterisk there it would show up as a bullet point in Sphinx. OTOH putting everything from \rst in a single line did not produce anything. Because Sphinx cannot look in two places, the images need to be copied into the build dir too. mscgen: http://www.mcternan.me.uk/mscgen/ Fixes: https://gitlab.freedesktop.org/wayland/weston/issues/25 Signed-off-by: Pekka Paalanen --- doc/sphinx/conf.py.in | 3 + doc/sphinx/toc/libweston.rst | 3 +- doc/sphinx/toc/libweston/head.rst | 40 +++++-- .../toc/libweston/images/create_output.msc | 31 ++++++ .../toc/libweston/images/create_output.png | Bin 0 -> 39923 bytes .../toc/libweston/images/destroy-output.msc | 29 +++++ .../toc/libweston/images/destroy-output.png | Bin 0 -> 30249 bytes .../toc/libweston/images/head-destroyed.msc | 26 +++++ .../toc/libweston/images/head-destroyed.png | Bin 0 -> 28457 bytes .../toc/libweston/images/initial-heads.msc | 35 ++++++ .../toc/libweston/images/initial-heads.png | Bin 0 -> 37770 bytes doc/sphinx/toc/libweston/images/meson.build | 13 +++ .../images/react-to-heads-changed.msc | 24 ++++ .../images/react-to-heads-changed.png | Bin 0 -> 27241 bytes doc/sphinx/toc/libweston/meson.build | 10 +- .../toc/libweston/output-management.rst | 104 ++++++++++++++++++ doc/sphinx/toc/libweston/output.rst | 22 +++- include/libweston/libweston.h | 11 +- 18 files changed, 330 insertions(+), 21 deletions(-) create mode 100644 doc/sphinx/toc/libweston/images/create_output.msc create mode 100644 doc/sphinx/toc/libweston/images/create_output.png create mode 100644 doc/sphinx/toc/libweston/images/destroy-output.msc create mode 100644 doc/sphinx/toc/libweston/images/destroy-output.png create mode 100644 doc/sphinx/toc/libweston/images/head-destroyed.msc create mode 100644 doc/sphinx/toc/libweston/images/head-destroyed.png create mode 100644 doc/sphinx/toc/libweston/images/initial-heads.msc create mode 100644 doc/sphinx/toc/libweston/images/initial-heads.png create mode 100644 doc/sphinx/toc/libweston/images/meson.build create mode 100644 doc/sphinx/toc/libweston/images/react-to-heads-changed.msc create mode 100644 doc/sphinx/toc/libweston/images/react-to-heads-changed.png create mode 100644 doc/sphinx/toc/libweston/output-management.rst diff --git a/doc/sphinx/conf.py.in b/doc/sphinx/conf.py.in index 6ec48e0f..ab8f9bf1 100644 --- a/doc/sphinx/conf.py.in +++ b/doc/sphinx/conf.py.in @@ -84,6 +84,9 @@ pygments_style = None # default domain primary_domain = 'cpp' +# To automatically number figures, tables, etc. and be able to reference them. +numfig = True + # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for diff --git a/doc/sphinx/toc/libweston.rst b/doc/sphinx/toc/libweston.rst index c339d2b5..c8a2e62d 100644 --- a/doc/sphinx/toc/libweston.rst +++ b/doc/sphinx/toc/libweston.rst @@ -6,8 +6,7 @@ Libweston :caption: Contents: libweston/compositor.rst - libweston/head.rst - libweston/output.rst + libweston/output-management.rst libweston/log.rst `Libweston` is an effort to separate the re-usable parts of Weston into a diff --git a/doc/sphinx/toc/libweston/head.rst b/doc/sphinx/toc/libweston/head.rst index 14686ffe..7bcd5e4a 100644 --- a/doc/sphinx/toc/libweston/head.rst +++ b/doc/sphinx/toc/libweston/head.rst @@ -1,24 +1,44 @@ -Head -==== +.. _libweston-head: -A head usually refers to a monitor, but it can also refer to an output window -in case of a nested compositor. A :type:`weston_output` is responsible for -driving a :type:`weston_head`. :type:`weston_head` should be initialized using -:func:`weston_head_init`, and shall be released using -:func:`weston_head_release`. +Heads +===== + +A head is represented by a :type:`weston_head` object. + +A head refers to a monitor when driving hardware, but it can also be a window +in another window system, or a virtual concept. Essentially a head is a place +where you could present an image. The image will be produced by a weston_output +where the head is attached to. + +In display hardware, a head represents a display connector in a computer +system, not the actual monitor connected to the connector. A head carries +monitor information, if present, like make and model, EDID and possible video +modes. Other properties are DPMS mode and backlight control. + +In terms of Wayland protocol, a head corresponds to a wl_output. If one +:type:`weston_output` has several heads, meaning that the heads are cloned, +each head is represented as a separate wl_output global in wl_registry. Only +the heads of an enabled output are exposed as wl_outputs. + +Heads can appear and disappear dynamically, mainly because of DisplayPort +Multi-Stream Transport where connecting a new monitor may expose new +connectors. Window and virtual outputs are often dynamic as well. + +Heads are always owned by libweston which dictates their lifetimes. Some +backends may offer specific API to create and destroy heads, but hardware +backends like DRM-backend create and destroy heads on their own. .. note:: :func:`weston_head_init` and :func:`weston_head_release` belong to the private/internal backend API and should be moved accordingly once that - section has been created. + section has been created. There are many other functions as well that are + intended only for backends. A :type:`weston_head` must be attached/detached from a :type:`weston_output`. To that purpose you can use :func:`weston_output_attach_head`, respectively :func:`weston_head_detach`. -Head API --------- .. doxygengroup:: head :content-only: diff --git a/doc/sphinx/toc/libweston/images/create_output.msc b/doc/sphinx/toc/libweston/images/create_output.msc new file mode 100644 index 00000000..f20cdb4e --- /dev/null +++ b/doc/sphinx/toc/libweston/images/create_output.msc @@ -0,0 +1,31 @@ +#!/usr/bin/mscgen -Tpng + +msc { + hscale="1.5"; + + c [label = "compositor"], w [label = "libweston core"], + b [label = "backend"]; + + |||; + + --- [label = "Compositor creates an output for a head"]; + + c box c [label = "Have an existing head to process."]; + c => w [label = "weston_compositor_create_output_with_head()"]; + w => b [label = "weston_backend::create_output()"]; + w << b [label = "an empty output, no hw resources"]; + w => b [label = "weston_output::attach_head()"]; + w << b [label = "success"]; + c << w [label = "success"]; + + c abox c [label = "optionally more heads with weston_output_attach_head() for hardware clone mode."]; + + c :> w [label = "weston_output_set_scale()"]; + c :> w [label = "weston_output_set_transform()"]; + c :> b [label = "backend specific settings via plugin API"]; + c => w [label = "weston_output_enable()"]; + w => b [label = "weston_output::enable()"]; + b box b [label = "hw resource allocation"]; + w << b [label = "success"]; + c << w [label = "success"]; +} diff --git a/doc/sphinx/toc/libweston/images/create_output.png b/doc/sphinx/toc/libweston/images/create_output.png new file mode 100644 index 0000000000000000000000000000000000000000..1573072d659c961a6db09548012a71a220949259 GIT binary patch literal 39923 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 VK{k#Tf8gmz+S~Lra@4Jk{4dBxUhx0` literal 0 HcmV?d00001 diff --git a/doc/sphinx/toc/libweston/images/destroy-output.msc b/doc/sphinx/toc/libweston/images/destroy-output.msc new file mode 100644 index 00000000..fc477fff --- /dev/null +++ b/doc/sphinx/toc/libweston/images/destroy-output.msc @@ -0,0 +1,29 @@ +#!/usr/bin/mscgen -Tpng + +msc { + hscale="1.5"; + + c [label = "compositor"], w [label = "libweston core"], + b [label = "backend"]; + + |||; + + --- [label = "Compositor destroys an output for a head"]; + + c box c [label = "A head is found disconnected, is being destroyed, or something else needs it disabled."]; + + c => w [label = "weston_head_get_output()"]; + c << w [label = "weston_output"]; + + c box c [label = "decide the output needs to be destroyed"]; + + c => w [label = "weston_output_destroy()"]; + w => b [label = "weston_output::destroy()"]; + w <= b [label = "weston_output_release()"]; + w <= w [label = "weston_head_detach()"]; + w :> b [label = "weston_output::detach_head()"]; + w >> b [label = "release return"]; + b box b [label = "free(output)"]; + w << b; + c << w; +} diff --git a/doc/sphinx/toc/libweston/images/destroy-output.png b/doc/sphinx/toc/libweston/images/destroy-output.png new file mode 100644 index 0000000000000000000000000000000000000000..6b6bfe50d42c990656acfb5084c8016327095fd5 GIT binary patch literal 30249 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 literal 0 HcmV?d00001 diff --git a/doc/sphinx/toc/libweston/images/head-destroyed.msc b/doc/sphinx/toc/libweston/images/head-destroyed.msc new file mode 100644 index 00000000..ab261650 --- /dev/null +++ b/doc/sphinx/toc/libweston/images/head-destroyed.msc @@ -0,0 +1,26 @@ +#!/usr/bin/mscgen -Tpng + +msc { + hscale="1.5"; + + c [label = "compositor"], w [label = "libweston core"], + b [label = "backend"]; + + |||; + + --- [label = "Head is destroyed for an enabled output"]; + + b box b [label = "A head disappears, e.g. MST connector is removed, not just disconnected"]; + + w <= b [label = "weston_head_release()"]; + c x- w [label = "head->destroy_signal"]; + w => w [label = "weston_head_detach()"]; + w :> b [label = "weston_output::detach_head()"]; + w note w [label = "No heads left in the output."]; + w => w [label = "weston_output_disable()"]; + w :> b [label = "weston_output::disable()"]; + w >> b [label = "release return"]; + b box b [label = "free(head)"]; + + --- [label = "The output is left disabled."]; +} diff --git a/doc/sphinx/toc/libweston/images/head-destroyed.png b/doc/sphinx/toc/libweston/images/head-destroyed.png new file mode 100644 index 0000000000000000000000000000000000000000..053c1eaed8b56da06c7f59e049e792c849177586 GIT binary patch literal 28457 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 Mx&}JwWXjq90<2YKZ~y=R literal 0 HcmV?d00001 diff --git a/doc/sphinx/toc/libweston/images/initial-heads.msc b/doc/sphinx/toc/libweston/images/initial-heads.msc new file mode 100644 index 00000000..45d47914 --- /dev/null +++ b/doc/sphinx/toc/libweston/images/initial-heads.msc @@ -0,0 +1,35 @@ +#!/usr/bin/mscgen -Tpng + +msc { + hscale="1.5"; + + c [label = "compositor"], w [label = "libweston core"], + b [label = "backend"]; + + |||; + + c => w [label = "weston_compositor_load_backend()"]; + w => b [label = "init"]; + + --- [label = "Create initial heads"]; + b box b [label = "Backend discovers an entity to create a head for."]; + + w <: b [label = "weston_head_init()"]; + b box b [label = "assign hw resource to head"]; + w <: b [label = "weston_head_set_monitor_strings()"]; + w <: b [label = "weston_head_set_physical_size()"]; + w <: b [label = "weston_head_set_subpixel()"]; + w <: b [label = "weston_head_set_connection_status()"]; + w <= b [label = "weston_compositor_add_head()"]; + w <= w [label = "schedule heads_changed"]; + w << b [label = "init success"]; + c << w [label = "load success"]; + + |||; + + --- [label = "Compositor start-up"]; + + c => w [label = "weston_compositor_flush_heads_changed()"]; + c <<= w [label = "heads_changed callback"]; + +} diff --git a/doc/sphinx/toc/libweston/images/initial-heads.png b/doc/sphinx/toc/libweston/images/initial-heads.png new file mode 100644 index 0000000000000000000000000000000000000000..96b551522489c61eeae45788c0548460c7f85333 GIT binary patch literal 37770 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 w [label = "weston_head_is_connected()"]; + c << w [label = "bool"]; + c => w [label = "weston_head_is_enabled()"]; + c << w [label = "bool"]; + c => w [label = "weston_head_is_device_changed()"]; + c << w [label = "bool"]; + c abox c [label = "If the head needs enabling, create an output."]; + c abox c [label = "If the head needs disabling, disable the output or destroy the output."]; + c >> w; +} diff --git a/doc/sphinx/toc/libweston/images/react-to-heads-changed.png b/doc/sphinx/toc/libweston/images/react-to-heads-changed.png new file mode 100644 index 0000000000000000000000000000000000000000..ba1b8132b82bc609283cbe8a8c35bdbfc090fe03 GIT binary patch literal 27241 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