Current location

narf Source control manager Git

diff options
authorOlivier Mehani <>2018-01-26 12:22:28 +1100
committerOlivier Mehani <>2018-01-26 12:22:57 +1100
commitb05fd7d8dd8dab925c247037d7202afd41c9caa9 (patch)
parent51db8f9fefd6d193138ce9680ff35c9ed3b457ad (diff)
That should be it for LCN 2018
Signed-off-by: Olivier Mehani <>
1 files changed, 92 insertions, 1 deletions
diff --git a/2018lca/2018lca.tex b/2018lca/2018lca.tex
index 4bef89b..3ee2a62 100644
--- a/2018lca/2018lca.tex
+++ b/2018lca/2018lca.tex
@@ -1775,7 +1775,7 @@ Why would one need access to a bio hacking lab?
\item Kubernetes pod share PID and NET namespaces among all containers
\item Docker has sane default
- \end{itemize}<++>
+ \end{itemize}
\item Game: \url{}
\item container game to learn about container
@@ -1910,4 +1910,95 @@ Why would one need access to a bio hacking lab?
\subsection{Driving Virtual Reality from Linux --- Keith Packard}
+ \item Head-mounted displays (HMD)
+ \begin{itemize}
+ \item display 2k$\times$1k in VIVE headset
+ \item IMU for localisation and movement
+ \item Compute left and right buffers separately
+ \item Invert distortion from headset optics
+ \item OLED displays have different pixel intensity, needs to be adjusted
+ (VIVE has a hardware map of teh differences, and counteracts it)
+ \item Not a native desktop environment: can't just present a static image
+ easily (needs to be static in the world, not on the display)
+ \item Hardest real-time in the desktop: the slightest latency is sickness
+ inducing
+ \item Slowest rate: 90\,fps; can't miss frames
+ \item Screen freezing will make you lose balance
+ \end{itemize}
+ \item Integrating into the Linux desktop: options
+ \begin{itemize}
+ \item ICCCM conventions for hiding displays
+ \item RandR changes to hide display
+ \item Meta display server to manage outputs
+ \begin{itemize}
+ \item SPECTRE: context switches are even more expensive, need to avoid them
+ \end{itemize}<++>
+ \item Kernel changes to let apps borrow displays (fix latency, but needs X
+ and kernel changes)
+ \end{itemize}
+ \item Get X out of the picture
+ \begin{itemize}
+ \item No need for geometry management
+ \item No need for input multiplexing
+ \item Already have an FD-based rendering, with DRM
+ \item Mechanism to pull the display out of X and hands over to HMD; let X
+ recover from crashes
+ \item Allows application to bypass X's limitations
+ \end{itemize}
+ \item Notion of lease
+ \begin{itemize}
+ \item Contract between X and VR app naming a set of display resources
+ \item ``lessor'' (X server) controls all the resources, but promises to
+ leave them alone
+ \item ``lessee'' (VR app) free to set modes, DPMS on/off at will
+ \item When the lessee terminates, the lessor get the display back and
+ cleans up
+ \end{itemize}
+ \item Side issue: vblank API
+ \begin{itemize}
+ \item Current frame count, send event when count reached
+ \item 32-bit counter (wrap over a couple of years, can't count as unique;
+ some users ran their X application for 4 years), only ms resolution
+ \item 2 new IOCTLs: \verb#CRTC_GET_SEQUENCE# (get last vblank event
+ sequence and time), \verb#CTRC_QUEUE_SEQUENCE# (queue an event to be
+ delivered at a specifedsequence); 64-bit frame counter; ns resolution
+ \end{itemize}
+ \item Kernel patch sequence
+ \begin{itemize}
+ \item Change interal APIs (no functional change)
+ \item Add infrastructure (core of change)
+ \item Expose new functionality to user space (separate security from
+ implementation questions)
+ \end{itemize}
+ \item Trade-off simplicity and clarity for performance for ``rare'' events
+ \item New lease IOCTLs: DRM master/lease for some CRTCs/outputs (\ie, HMD)
+ \begin{itemize}
+ \item Once lease obtained, the rest of the DRM code works as before
+ \item Demo: get a lease from X, use it as a display from a new X server
+ (with user privilege)
+ \item Enables multiseat: all input was there, but not display yet
+ \end{itemize}
+ \item Prevent applications on the lessor from seeing the leased outputs:
+ pretend that it has been disconnected, and the CRTC is not able to do
+ anything useful (because X applications have come to rely on XRandR
+ resources not to come and go)
+ \item X fixups
+ \begin{itemize}
+ \item turn off cursors
+ \item fix up cursor
+ \item add a \verb#CONNECTOR_ID# for ?
+ \end{itemize}
+ \item VR coming to the Linux desktop very soon!
+\subsection{Wiggles Australia Day Concert}
+Prospective notes:
+ \item Lah Lah band support
+ \item Wiggling
+ \item Wren happy