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