doc: Add documentation about target structure/architecture

This commit is contained in:
Ryan Pavlik authored and Jakob Bornecrantz committed 2020-05-26 19:36:28 +00:00
1 parent 16d3020ae8
commit e1e9503cd1
6 files changed
+82

No files matched your search

+1
View File
@@ -0,0 +1 @@
<mxfile host="Electron" modified="2020-05-20T18:53:11.229Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/12.4.2 Chrome/78.0.3904.130 Electron/7.1.4 Safari/537.36" etag="fGAGY7edic5DwCvLpX5O" version="12.4.2" type="device" pages="1"><diagram id="i7RjRSwkiHJf6eIeykeo" name="Page-1">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</diagram></mxfile>
+3
View File
@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="776px" height="744px" viewBox="-0.5 -0.5 776 744" content="&lt;mxfile host=&quot;Electron&quot; modified=&quot;2020-05-26T16:51:32.335Z&quot; agent=&quot;Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/12.4.2 Chrome/78.0.3904.130 Electron/7.1.4 Safari/537.36&quot; etag=&quot;9Ci-sfcZoMfu0ecC0X-b&quot; version=&quot;12.4.2&quot; type=&quot;device&quot; pages=&quot;1&quot;&gt;&lt;diagram id=&quot;i7RjRSwkiHJf6eIeykeo&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs><clipPath id="mx-clip-144-641-422-26-0"><rect x="144" y="641" width="422" height="26"/></clipPath><clipPath id="mx-clip-144-667-422-26-0"><rect x="144" y="667" width="422" height="26"/></clipPath><clipPath id="mx-clip-144-693-422-26-0"><rect x="144" y="693" width="422" height="26"/></clipPath><clipPath id="mx-clip-144-719-422-26-0"><rect x="144" y="719" width="422" height="26"/></clipPath></defs><g><path d="M 355 380 L 355 463.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 355 468.88 L 351.5 461.88 L 355 463.63 L 358.5 461.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(324.5,419.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="61" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">then creates</div></div></foreignObject><text x="31" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">then creates</text></switch></g><path d="M 277 367 L 277 400 L 90 400 L 90 413.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 90 418.88 L 86.5 411.88 L 90 413.63 L 93.5 411.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(156.5,391.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="24" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); lLine truncated

After

Width:  |  Height:  |  Size: 14 KiB

+1
View File
@@ -0,0 +1 @@
<mxfile host="Electron" modified="2020-05-20T18:52:18.900Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/12.4.2 Chrome/78.0.3904.130 Electron/7.1.4 Safari/537.36" etag="vozdiOYTyxx8yI9X8aCE" version="12.4.2" type="device" pages="1"><diagram id="i7RjRSwkiHJf6eIeykeo" name="Page-1">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</diagram></mxfile>
+3
View File
@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1031px" height="814px" viewBox="-0.5 -0.5 1031 814" content="&lt;mxfile host=&quot;Electron&quot; modified=&quot;2020-05-26T16:51:55.732Z&quot; agent=&quot;Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/12.4.2 Chrome/78.0.3904.130 Electron/7.1.4 Safari/537.36&quot; etag=&quot;AL0VMCm1bAciMm2DO9xB&quot; version=&quot;12.4.2&quot; type=&quot;device&quot; pages=&quot;1&quot;&gt;&lt;diagram id=&quot;i7RjRSwkiHJf6eIeykeo&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs><clipPath id="mx-clip-604-711-422-26-0"><rect x="604" y="711" width="422" height="26"/></clipPath><clipPath id="mx-clip-604-737-422-26-0"><rect x="604" y="737" width="422" height="26"/></clipPath><clipPath id="mx-clip-604-763-422-26-0"><rect x="604" y="763" width="422" height="26"/></clipPath><clipPath id="mx-clip-604-789-422-26-0"><rect x="604" y="789" width="422" height="26"/></clipPath><clipPath id="mx-clip-4-711-422-26-0"><rect x="4" y="711" width="422" height="26"/></clipPath><clipPath id="mx-clip-4-737-422-26-0"><rect x="4" y="737" width="422" height="26"/></clipPath><clipPath id="mx-clip-4-763-422-26-0"><rect x="4" y="763" width="422" height="26"/></clipPath><clipPath id="mx-clip-4-789-422-26-0"><rect x="4" y="789" width="422" height="26"/></clipPath></defs><g><path d="M 815 375 L 815 573.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 815 578.88 L 811.5 571.88 L 815 573.63 L 818.5 571.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(784.5,472.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="61" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherLine truncated

After

Width:  |  Height:  |  Size: 24 KiB

+1
View File
@@ -9,6 +9,7 @@ getting started information and general documentation.
* @ref md_CHANGELOG - If this is the web version of the docs, the changelog
also includes a section for changes that have not yet been in a tagged
release.
* @ref md_targets
* @ref md_writing-a-new-driver (**not complete**)
## Source layout
+73
View File
@@ -0,0 +1,73 @@
# Understanding and Writing Targets
Monado is designed to be a collection of related but independent modules. The
final build product that brings all the desired components together, potentially
with additional code, is called the "target". There are several targets included
in the Monado source tree (in `src/xrt/targets/`) including:
- `cli` - builds `monado-cli` executable
- `openxr` - builds `libopenxr-monado.so` OpenXR runtime shared object
- `gui` - builds `monado-gui` executable
- `service` - builds `monado-service` executable (if `XRT_FEATURE_SERVICE` is
enabled)
There is also a directory `common` which builds two static libraries. Because
the "target" is responsible for pulling in all the desired drivers, etc. it can
lead to some repetition if multiple targets want the same driver collection. For
this reason, the "all drivers" code shared between many targets is located here,
though you could consider it a part of the individual targets.
## Requirements of a Target
A target must first provide the entry point desired: `int main()` if it's an
executable, or the well-known symbol name if it's a shared library. In some
cases, the entry point might be provided by one of the modules being combined to
form the target. For instance, an OpenXR runtime must expose
`xrNegotiateLoaderRuntimeInterface`: this function is provided by the OpenXR
state tracker `st_oxr`, so the OpenXR runtime target just has to link the state
tracker in and ensure it is present in the final build product.
Then, the target must provide access to the collection of devices desired. The
code is currently (26-May-2020) in the middle of a transition, from a
"prober"-centric interface to an "instance"-centric interface.
- Target device access was historically done by implementing
`xrt_prober_create`, typically through a call to
`xrt_prober_create_with_lists`, often passing the target list defined in the
common `target_lists.c` shared file. This is currently still somewhat-required
but not as central as before, and will be removed soon.
- Target device access is now provided by implementing the `xrt_instance`
interface in your target and providing a definition of `xrt_instance_create`
that instantiates your implementation.
All methods of `xrt_instance` are required, though the `get_prober` method may
output a null pointer if the instance is not using a prober. For more detailed
information on this interface, see the documentation for @ref xrt_instance
## Sample Call Trees
For clarity, call trees are included below for the OpenXR runtime in two general
cases: `XRT_FEATURE_SERVICE` disabled, and `XRT_FEATURE_SERVICE` enabled. Note
that even with `XRT_FEATURE_SERVICE` enabled, the other targets (cli, gui) more
closely resembler the `XRT_FEATURE_SERVICE` disabled diagram: they contain the
device drivers internally rather than contacting the service.
### XRT_FEATURE_SERVICE disabled
This is the simplest architecture. It is also the architecture used by the
various extra targets like `monado-cli` even when building with
`XRT_FEATURE_SERVICE` enabled.
![In-process OpenXR runtime diagram](images/in-process.svg)
### XRT_FEATURE_SERVICE enabled
Note that in this case, there are two processes involved, which have different
`xrt_instance` implementations.
- The runtime has a "stub" or "client proxy" implementation that delegates to
the service over the IPC.
- The service has a normal or complete instance implementation that actually
provides access to devices, etc.
![Out-of-process OpenXR runtime diagram](images/out-of-proc.svg)