]> git.cworth.org Git - cworth.org/blob - src/talks.mdwn
Convert prefix directives to new syntax.
[cworth.org] / src / talks.mdwn
1 [[!meta title="Talks presented by Carl Worth"]]
2
3 # [From click to pixel: A tour of the Linux graphics stack](lca_2009)
4
5 The Linux graphics stack can be a bewildering thing. What do all those
6 names actually mean (cairo? Mesa? Glucose? UXA? GEM?). How can an
7 application designer hope to debug a graphics performance problem?
8 This talk provides a simple overview of the 2D and 3D graphics stacks
9 for Linux with clear diagrams, and several recipes for debugging
10 graphics performance problems at several layers. We conclude with an
11 overview of where things are going in the short-term future.
12
13 Presented at [linux.conf.au 2009](http://linux.conf.au) in Hobart,
14 Tasmania, Australia on 2009-01-21.
15
16 # [X Acceleration that Finally Works](lca_2008)
17
18 Meaningful hardware acceleration within the X Window System is
19 becoming a reality. We present the recent state of the art of 2D
20 accelerated rendering with the Intel 965 graphics device showing
21 performance gains up to 900 times faster than software rendering.
22
23 Co-presented with Eric Anholt at [linux.conf.au
24 2008](http://linux.conf.au) in Melbourne, Australia on 2008-01-30.
25
26 # [Co-maintaining cairo: cool community, cool code](guadec_2007)
27
28 A retrospective on the development of the cairo code and community
29 over its 5 year history. Co-presented with Behdad Esfahbod at GUADEC
30 2007 in Birmingham, United Kingdom.
31
32 # [Designing a Library that's Easy to Use](/~cworth/papers/guadec_2006)
33
34 This is something of a case study on the design of the cairo graphics
35 library API with some hint on things to keep in mind or to avoid while
36 doing API design. Presented at GUADEC 2006 in Vilanova i la Geltru,
37 Spain.
38
39 # [An Insider's Guide to cairo](/~cworth/papers/cairo_ddc2005)
40
41 I present details of the internals of the cairo graphics library. The
42 algorithms and components presented include:
43
44   * Stroking a cubic Bézier spline with a circular pen,
45     (Minkowski sums and the convolution of polygonal tracings).
46
47   * Robust, (and efficient) tessellation in the face of
48     limited-precision arithmetic.
49
50   * Careful rasterization algorithms suitable for incremental
51     rendering with no seams, (describing our failed
52     coverage-calculating approach as well as our new point-sampling
53     approach).
54
55   * Compositing (why pre-multiplied alpha is the one true way).
56
57 Presented at the <a href="http://www.desktopcon.org/2005/">Desktop
58 Developers' Conference</a> on 2005-07-19.
59
60 # [Cairo: Making Graphics Easy to Print](/~cworth/papers/cairo_lca2005)
61
62 Free software operating systems have often been accused of having
63 pessimal printing support. Recent infrastructure improvements have
64 largely solved the plumbing problem. But adding print support to
65 applications is still painful. Generally, rendering code must be
66 duplicated which often leads to inconsistencies between display and
67 print output.
68
69 The cairo graphics library is designed to provide high-quality print
70 output with the same API used for rendering to a display. The initial
71 approach toward implementing printing support was to prioritize output
72 fidelity over memory or bandwidth requirements yielding an
73 implementation that achieves consistent print quality through reuse of
74 image-based rendering code. Or we were just lazy and it was easy that
75 way. Either way, it was a pig.
76
77 This paper will discuss recent progress in cairo's printing backends
78 as they develop into first-class citizens. Generating efficient,
79 high-quality print output is complicated because PostScript has an
80 imaging model fundamentally more limited than that of cairo. This and
81 other challenges will be presented along with our solutions.
82
83 Presented at <a href="http://lca2005.linux.org.au/">linux.conf.au
84 2005</a> on 2005-04-22.
85
86 # [On-demand Linux for Power-aware Embedded Sensors](/~cworth/papers/pasta_ols2004)
87
88 We introduce a distributed sensor architecture which enables
89 high-performance 32-bit Linux capabilities to be embedded in a sensor
90 which operates at the average power overhead of a small
91 microcontroller. Adapting Linux to this architecture places increased
92 emphasis on the performance of the Linux power-up/shutdown and
93 suspend/resume cycles.
94
95 Our reference hardware implementation is described in detail. An
96 acoustic beamforming application demonstrates a 4X power improvement
97 over a centralized architecture.
98
99 Presented at the <a href="http://www.linuxsymposium.org/2004">2004
100 Ottawa Linux Symposium</a> in July, 2004.
101
102 # [Cairo: Cross-device Rendering for Vector Graphics](/~cworth/papers/xr_ols2003)
103
104 Cairo provides a vector-based rendering API with output support for
105 the X Window System and local image buffers.  Cairo provides a
106 stateful user-level API with support for the PDF 1.4 imaging
107 model. Cairo provides operations including stroking and filling
108 B&#233;zier cubic splines, transforming and compositing translucent
109 images, and antialiased text rendering.  </p> <p> Cairo, (formerly
110 known as Xr), is available from <a
111 href="http://cairographics.org">http://cairographics.org</a>
112
113 Presented at the <a href="http://www.linuxsymposium.org/2003">2003
114 Ottawa Linux Symposium</a> in July, 2003.
115
116 # [xstroke: Full-screen Gesture Recognition for X](/~cworth/papers/xstroke)
117
118 Some of the challenges in developing a gesture recognition program
119 with a full-screen user-interface. xstroke has been incorporated into
120 the <a href="http://www.handhelds.org">handhelds.org</a> distribution.
121
122 Presented at the <a href="http://www.usenix.org/events/usenix03/">2003
123 Usenix Annual Technical Conference</a> in San Antonio, Texas, June
124 2003.
125
126 # [Synthesizing RTL Hardware from Java Byte Codes](/~cworth/papers/java_synthesis)
127
128 This paper came out of the work I did on my Master's thesis at <a
129 href="http://www.byu.edu">BYU</a>'s <a
130 href="http://splish.ee.byu.edu">Configurable Computing
131 Laboratory</a>. The implementation adds experimental support for
132 synthesis to <a href="http://www.jhdl.org">JHDL</a>.