From: Carl Worth Date: Fri, 20 Feb 2009 00:28:15 +0000 (-0800) Subject: Add presentation materials from LCA 2009 talk X-Git-Url: https://git.cworth.org/git?p=cworth.org;a=commitdiff_plain;h=b96048fb57858c3c9323e20e86ce6a36a69fef73 Add presentation materials from LCA 2009 talk --- diff --git a/src/talks.mdwn b/src/talks.mdwn index a4779fe..d0d3bf2 100644 --- a/src/talks.mdwn +++ b/src/talks.mdwn @@ -1,5 +1,18 @@ [[meta title="Talks presented by Carl Worth"]] +# [From click to pixel: A tour of the Linux graphics stack](lca_2009) + +The Linux graphics stack can be a bewildering thing. What do all those +names actually mean (cairo? Mesa? Glucose? UXA? GEM?). How can an +application designer hope to debug a graphics performance problem? +This talk provides a simple overview of the 2D and 3D graphics stacks +for Linux with clear diagrams, and several recipes for debugging +graphics performance problems at several layers. We conclude with an +overview of where things are going in the short-term future. + +Presented at [linux.conf.au 2009](http://linux.conf.au) in Hobart, +Tasmania, Australia on 2009-01-21. + # [X Acceleration that Finally Works](lca_2008) Meaningful hardware acceleration within the X Window System is diff --git a/src/talks/lca_2009.mdwn b/src/talks/lca_2009.mdwn new file mode 100644 index 0000000..9f9fbba --- /dev/null +++ b/src/talks/lca_2009.mdwn @@ -0,0 +1,25 @@ +[[meta title="From Click to Pixel: A Tour of the Linux Graphics Stack"]] + +## Abstract + +The Linux graphics stack can be a bewildering thing. What do all those +names actually mean (cairo? Mesa? Glucose? UXA? GEM?). How can an +application designer hope to debug a graphics performance problem? +This talk provides a simple overview of the 2D and 3D graphics stacks +for Linux with clear diagrams, and several recipes for debugging +graphics performance problems at several layers. We conclude with an +overview of where things are going in the short-term future. + +## Presentation + + * [PDF slides](lca-2009.pdf) + * [HTML slides](html) (OK, so really just a bunch of images with links between them) + * [SVG slides](svg) + +The slides alone don't capture the material very completely. The talk +was recorded, so I do plan to add a link to the video here once I +receive one, (the last I heard the conference organizers were still +working on transcoding the video capture). Also, I could be convinced +to write an article with similar content as this presentation. Please +let me know, (email address below), if you would be interested in +reading that. diff --git a/src/talks/lca_2009/html/index.html b/src/talks/lca_2009/html/index.html new file mode 100644 index 0000000..a3f30bb --- /dev/null +++ b/src/talks/lca_2009/html/index.html @@ -0,0 +1,32 @@ + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + +

From Click to Pixel: A Tour of the Linux Graphics Stack

+

+

Overview +

Alphabet Soup +

Alphabet Soup +

Stack Overview +

2D Graphics Stack +

3D Graphics Stack +

Inspecting Layers +

Profile first +

Profile first +

Profile first +

Visually inspecting GTK+ updates +

Tracing cairo calls +

Inspecting Render protocol +

Finding software fallbacks in EXA +

Finding software fallbacks in xf86-video-intel +

Inspecting 3D state (for Intel) +

Inspecting GEM state +

Mixing things up +

Combined stack +

Software fallbacks +

Current/Future changes +

Everything through OpenGL? +

Direct-rendering with cairo (cairo-drm) + + diff --git a/src/talks/lca_2009/html/lca-2009-001.html b/src/talks/lca_2009/html/lca-2009-001.html new file mode 100644 index 0000000..a84069e --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-001.html @@ -0,0 +1,11 @@ + + + + + + + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-001.png b/src/talks/lca_2009/html/lca-2009-001.png new file mode 100644 index 0000000..7d1496e Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-001.png differ diff --git a/src/talks/lca_2009/html/lca-2009-002.html b/src/talks/lca_2009/html/lca-2009-002.html new file mode 100644 index 0000000..b885bf1 --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-002.html @@ -0,0 +1,12 @@ + + + Overview + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-002.png b/src/talks/lca_2009/html/lca-2009-002.png new file mode 100644 index 0000000..7d768e0 Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-002.png differ diff --git a/src/talks/lca_2009/html/lca-2009-003.html b/src/talks/lca_2009/html/lca-2009-003.html new file mode 100644 index 0000000..9a83ff2 --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-003.html @@ -0,0 +1,12 @@ + + + Alphabet Soup + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-003.png b/src/talks/lca_2009/html/lca-2009-003.png new file mode 100644 index 0000000..fb2b9d4 Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-003.png differ diff --git a/src/talks/lca_2009/html/lca-2009-004.html b/src/talks/lca_2009/html/lca-2009-004.html new file mode 100644 index 0000000..524904b --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-004.html @@ -0,0 +1,12 @@ + + + Alphabet Soup + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-004.png b/src/talks/lca_2009/html/lca-2009-004.png new file mode 100644 index 0000000..f5d969a Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-004.png differ diff --git a/src/talks/lca_2009/html/lca-2009-005.html b/src/talks/lca_2009/html/lca-2009-005.html new file mode 100644 index 0000000..ee0f1f8 --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-005.html @@ -0,0 +1,12 @@ + + + Stack Overview + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-005.png b/src/talks/lca_2009/html/lca-2009-005.png new file mode 100644 index 0000000..53f8324 Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-005.png differ diff --git a/src/talks/lca_2009/html/lca-2009-006.html b/src/talks/lca_2009/html/lca-2009-006.html new file mode 100644 index 0000000..13b4b11 --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-006.html @@ -0,0 +1,12 @@ + + + 2D Graphics Stack + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-006.png b/src/talks/lca_2009/html/lca-2009-006.png new file mode 100644 index 0000000..a6f48d9 Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-006.png differ diff --git a/src/talks/lca_2009/html/lca-2009-007.html b/src/talks/lca_2009/html/lca-2009-007.html new file mode 100644 index 0000000..adf5947 --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-007.html @@ -0,0 +1,12 @@ + + + 3D Graphics Stack + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-007.png b/src/talks/lca_2009/html/lca-2009-007.png new file mode 100644 index 0000000..8c23971 Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-007.png differ diff --git a/src/talks/lca_2009/html/lca-2009-008.html b/src/talks/lca_2009/html/lca-2009-008.html new file mode 100644 index 0000000..ebeb05a --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-008.html @@ -0,0 +1,12 @@ + + + Inspecting Layers + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-008.png b/src/talks/lca_2009/html/lca-2009-008.png new file mode 100644 index 0000000..f66a948 Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-008.png differ diff --git a/src/talks/lca_2009/html/lca-2009-009.html b/src/talks/lca_2009/html/lca-2009-009.html new file mode 100644 index 0000000..858c50c --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-009.html @@ -0,0 +1,12 @@ + + + Profile first + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-009.png b/src/talks/lca_2009/html/lca-2009-009.png new file mode 100644 index 0000000..f28860c Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-009.png differ diff --git a/src/talks/lca_2009/html/lca-2009-010.html b/src/talks/lca_2009/html/lca-2009-010.html new file mode 100644 index 0000000..4922366 --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-010.html @@ -0,0 +1,12 @@ + + + Profile first + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-010.png b/src/talks/lca_2009/html/lca-2009-010.png new file mode 100644 index 0000000..ba0a3aa Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-010.png differ diff --git a/src/talks/lca_2009/html/lca-2009-011.html b/src/talks/lca_2009/html/lca-2009-011.html new file mode 100644 index 0000000..d06247d --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-011.html @@ -0,0 +1,12 @@ + + + Profile first + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-011.png b/src/talks/lca_2009/html/lca-2009-011.png new file mode 100644 index 0000000..88b03d7 Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-011.png differ diff --git a/src/talks/lca_2009/html/lca-2009-012.html b/src/talks/lca_2009/html/lca-2009-012.html new file mode 100644 index 0000000..1cd3c9c --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-012.html @@ -0,0 +1,12 @@ + + + Visually inspecting GTK+ updates + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-012.png b/src/talks/lca_2009/html/lca-2009-012.png new file mode 100644 index 0000000..8ae259a Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-012.png differ diff --git a/src/talks/lca_2009/html/lca-2009-013.html b/src/talks/lca_2009/html/lca-2009-013.html new file mode 100644 index 0000000..3ad940d --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-013.html @@ -0,0 +1,12 @@ + + + Tracing cairo calls + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-013.png b/src/talks/lca_2009/html/lca-2009-013.png new file mode 100644 index 0000000..8a8d665 Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-013.png differ diff --git a/src/talks/lca_2009/html/lca-2009-014.html b/src/talks/lca_2009/html/lca-2009-014.html new file mode 100644 index 0000000..7507626 --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-014.html @@ -0,0 +1,12 @@ + + + Inspecting Render protocol + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-014.png b/src/talks/lca_2009/html/lca-2009-014.png new file mode 100644 index 0000000..d0aee59 Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-014.png differ diff --git a/src/talks/lca_2009/html/lca-2009-015.html b/src/talks/lca_2009/html/lca-2009-015.html new file mode 100644 index 0000000..7ff5ac5 --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-015.html @@ -0,0 +1,12 @@ + + + Finding software fallbacks in EXA + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-015.png b/src/talks/lca_2009/html/lca-2009-015.png new file mode 100644 index 0000000..79556e6 Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-015.png differ diff --git a/src/talks/lca_2009/html/lca-2009-016.html b/src/talks/lca_2009/html/lca-2009-016.html new file mode 100644 index 0000000..42e2094 --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-016.html @@ -0,0 +1,12 @@ + + + Finding software fallbacks in xf86-video-intel + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-016.png b/src/talks/lca_2009/html/lca-2009-016.png new file mode 100644 index 0000000..88635e4 Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-016.png differ diff --git a/src/talks/lca_2009/html/lca-2009-017.html b/src/talks/lca_2009/html/lca-2009-017.html new file mode 100644 index 0000000..5aff253 --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-017.html @@ -0,0 +1,12 @@ + + + Inspecting 3D state (for Intel) + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-017.png b/src/talks/lca_2009/html/lca-2009-017.png new file mode 100644 index 0000000..3aadd25 Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-017.png differ diff --git a/src/talks/lca_2009/html/lca-2009-018.html b/src/talks/lca_2009/html/lca-2009-018.html new file mode 100644 index 0000000..0d10d05 --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-018.html @@ -0,0 +1,12 @@ + + + Inspecting GEM state + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-018.png b/src/talks/lca_2009/html/lca-2009-018.png new file mode 100644 index 0000000..4141c2c Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-018.png differ diff --git a/src/talks/lca_2009/html/lca-2009-019.html b/src/talks/lca_2009/html/lca-2009-019.html new file mode 100644 index 0000000..c3ce908 --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-019.html @@ -0,0 +1,12 @@ + + + Mixing things up + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-019.png b/src/talks/lca_2009/html/lca-2009-019.png new file mode 100644 index 0000000..f291871 Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-019.png differ diff --git a/src/talks/lca_2009/html/lca-2009-020.html b/src/talks/lca_2009/html/lca-2009-020.html new file mode 100644 index 0000000..db76dea --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-020.html @@ -0,0 +1,12 @@ + + + Combined stack + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-020.png b/src/talks/lca_2009/html/lca-2009-020.png new file mode 100644 index 0000000..db9ab97 Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-020.png differ diff --git a/src/talks/lca_2009/html/lca-2009-021.html b/src/talks/lca_2009/html/lca-2009-021.html new file mode 100644 index 0000000..0ccbbf2 --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-021.html @@ -0,0 +1,12 @@ + + + Software fallbacks + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-021.png b/src/talks/lca_2009/html/lca-2009-021.png new file mode 100644 index 0000000..db3b7b7 Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-021.png differ diff --git a/src/talks/lca_2009/html/lca-2009-022.html b/src/talks/lca_2009/html/lca-2009-022.html new file mode 100644 index 0000000..e246e6f --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-022.html @@ -0,0 +1,12 @@ + + + Current/Future changes + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-022.png b/src/talks/lca_2009/html/lca-2009-022.png new file mode 100644 index 0000000..14d9d90 Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-022.png differ diff --git a/src/talks/lca_2009/html/lca-2009-023.html b/src/talks/lca_2009/html/lca-2009-023.html new file mode 100644 index 0000000..5f4f4a0 --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-023.html @@ -0,0 +1,12 @@ + + + Everything through OpenGL? + + + + prev + next + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-023.png b/src/talks/lca_2009/html/lca-2009-023.png new file mode 100644 index 0000000..3e330a1 Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-023.png differ diff --git a/src/talks/lca_2009/html/lca-2009-024.html b/src/talks/lca_2009/html/lca-2009-024.html new file mode 100644 index 0000000..1c5cf3c --- /dev/null +++ b/src/talks/lca_2009/html/lca-2009-024.html @@ -0,0 +1,11 @@ + + + Direct-rendering with cairo (cairo-drm) + + + + prev + index + + + diff --git a/src/talks/lca_2009/html/lca-2009-024.png b/src/talks/lca_2009/html/lca-2009-024.png new file mode 100644 index 0000000..a66982e Binary files /dev/null and b/src/talks/lca_2009/html/lca-2009-024.png differ diff --git a/src/talks/lca_2009/lca-2009.pdf b/src/talks/lca_2009/lca-2009.pdf new file mode 100644 index 0000000..e2bf66e Binary files /dev/null and b/src/talks/lca_2009/lca-2009.pdf differ diff --git a/src/talks/lca_2009/svg/lca-2009-001.svg b/src/talks/lca_2009/svg/lca-2009-001.svg new file mode 100644 index 0000000..65c1240 --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-001.svg @@ -0,0 +1,37 @@ + + + + + + • + + + + + + + + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + + Carl Worth + carl.d.worth@intel.com + + + + + + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-002.svg b/src/talks/lca_2009/svg/lca-2009-002.svg new file mode 100644 index 0000000..8d79fd7 --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-002.svg @@ -0,0 +1,48 @@ + + + + + + • + + + + + + + + + + + + + Overview + + + + + + + What the stacks looks like (2D and 3D) + + Tutorial: Inspecting rendering layer by layer + + What's changing now + + + + + + 1 + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-003.svg b/src/talks/lca_2009/svg/lca-2009-003.svg new file mode 100644 index 0000000..1350149 --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-003.svg @@ -0,0 +1,43 @@ + + + + + + • + + + + + + + + + + + + + Alphabet Soup + + + + + + + + + + + + 2 + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-004.svg b/src/talks/lca_2009/svg/lca-2009-004.svg new file mode 100644 index 0000000..ccfbdfe --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-004.svg @@ -0,0 +1,51 @@ + + + + + + • + + + + + + + + + + + + + Alphabet Soup + + + + + + + + + + Qt Arthur GTK+ Pango Cairo + OpenGL Mesa GLX AIGLX + Gallium Glitz Glucose + X XAA Render EXA UXA + DRI DRI2 DRM TTM GEM + + + + + + 3 + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-005.svg b/src/talks/lca_2009/svg/lca-2009-005.svg new file mode 100644 index 0000000..96181cd --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-005.svg @@ -0,0 +1,53 @@ + + + + + + • + + + + + + + + + + + + + + + + + + + + Stack Overview + Stack Overview + + + + + 4 + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + 4 + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-006.svg b/src/talks/lca_2009/svg/lca-2009-006.svg new file mode 100644 index 0000000..ace2fe7 --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-006.svg @@ -0,0 +1,410 @@ + + + + + + • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2D Graphics Stack + 2D Graphics Stack + + + + + 5 + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + 5 + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-007.svg b/src/talks/lca_2009/svg/lca-2009-007.svg new file mode 100644 index 0000000..aa903db --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-007.svg @@ -0,0 +1,342 @@ + + + + + + • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3D Graphics Stack + 3D Graphics Stack + + + + + 6 + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + 6 + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-008.svg b/src/talks/lca_2009/svg/lca-2009-008.svg new file mode 100644 index 0000000..1c7d1c9 --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-008.svg @@ -0,0 +1,53 @@ + + + + + + • + + + + + + + + + + + + + + + + + + + + Inspecting Layers + Inspecting Layers + + + + + 7 + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + 7 + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-009.svg b/src/talks/lca_2009/svg/lca-2009-009.svg new file mode 100644 index 0000000..6ac3e26 --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-009.svg @@ -0,0 +1,46 @@ + + + + + + • + + + + + + + + + + + + + Profile first + + + + + + + oprofile + + sysprof + + + + + + 8 + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-010.svg b/src/talks/lca_2009/svg/lca-2009-010.svg new file mode 100644 index 0000000..cb67ba7 --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-010.svg @@ -0,0 +1,49 @@ + + + + + + • + + + + + + + + + + + + + Profile first + + + + + + + oprofile + + sysprof + + + Use them. + + + + + + 9 + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-011.svg b/src/talks/lca_2009/svg/lca-2009-011.svg new file mode 100644 index 0000000..694a436 --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-011.svg @@ -0,0 +1,49 @@ + + + + + + • + + + + + + + + + + + + + Profile first + + + + + + + oprofile + + sysprof + + + Use them. First. + + + + + + 10 + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-012.svg b/src/talks/lca_2009/svg/lca-2009-012.svg new file mode 100644 index 0000000..dc30851 --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-012.svg @@ -0,0 +1,53 @@ + + + + + + • + + + + + + + + + + + + + Visually inspecting GTK+ updates + + + + + + + Useful for visually identifying excessive redraws + + Does require recompilation of GTK+ + + + HOWTO: + + ./configure --enable-debug=yes # for GTK+ + GTK_DEBUG=updates ./my-program + + + + + + + 11 + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-013.svg b/src/talks/lca_2009/svg/lca-2009-013.svg new file mode 100644 index 0000000..9a0237c --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-013.svg @@ -0,0 +1,57 @@ + + + + + + • + + + + + + + + + + + + + Tracing cairo calls + + + + + + + Most useful for debugging application + + Enables robust capture of all rendering + + Trace makes an ideal test case for cairo community + + No modifications to application or cairo required + + HOWTO: + + Install cairo 1.9 or later + cairo-trace ./my-program + See results in my-program.$PID.trace + + + + + + + 12 + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-014.svg b/src/talks/lca_2009/svg/lca-2009-014.svg new file mode 100644 index 0000000..9b311a7 --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-014.svg @@ -0,0 +1,53 @@ + + + + + + • + + + + + + + + + + + + + Inspecting Render protocol + + + + + + + Much lower-level than cairo-trace + + No recompilation required + + + HOWTO: + + xtrace -D :5 > my-program.xtrace + DISPLAY=:5 my-program + + + + + + + 13 + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-015.svg b/src/talks/lca_2009/svg/lca-2009-015.svg new file mode 100644 index 0000000..0502eef --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-015.svg @@ -0,0 +1,56 @@ + + + + + + • + + + + + + + + + + + + + Finding software fallbacks in EXA + + + + + + + Very useful for identifying unexpected slowness + + + HOWTO: + + + Edit xserver/exa/exa_priv.h: + #define DEBUG_TRACE_FALL 1 + + Recompile xserver + + Examine Xorg.0.log file + + + + + + + 14 + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-016.svg b/src/talks/lca_2009/svg/lca-2009-016.svg new file mode 100644 index 0000000..27196ae --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-016.svg @@ -0,0 +1,54 @@ + + + + + + • + + + + + + + + + + + + + Finding software fallbacks in xf86-video-intel + + + + + + + Very useful for identifying unexpected slowness + + + HOWTO: + + + In "device" section of xorg.conf: + Option "FallbackDebug" "true" + + Examine Xorg.0.log file + + + + + + + 15 + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-017.svg b/src/talks/lca_2009/svg/lca-2009-017.svg new file mode 100644 index 0000000..05bc434 --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-017.svg @@ -0,0 +1,69 @@ + + + + + + • + + + + + + + + + + + + + Inspecting 3D state (for Intel) + + + + + + + CPU is pegged? + + + Start with a profiler, then INTEL_DEBUG=fall + + + CPU is idle? + + + Buffer management has gone wrong + + + Chip is hanging? + + + State likely not getting re-emitted, INTEL_DEBUG=batch,sync + + + + HOWTO: + + INTEL_DEBUG=<comma-separated list of flags> + fall: Show software fallbacks + batch: Show decoded batchbuffers + sync: Wait for idle after each batchbuffer + (see intel_context.c debug_control[] for more) + + + + + + 16 + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-018.svg b/src/talks/lca_2009/svg/lca-2009-018.svg new file mode 100644 index 0000000..8141de0 --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-018.svg @@ -0,0 +1,53 @@ + + + + + + • + + + + + + + + + + + + + Inspecting GEM state + + + + + + + Useful for debugging graphics driver + + + HOWTO: + + + cat /proc/dri/0/gem_objects + + cat /proc/dri/0/i915_gem_interrupt + + + + + + + 17 + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-019.svg b/src/talks/lca_2009/svg/lca-2009-019.svg new file mode 100644 index 0000000..d18d494 --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-019.svg @@ -0,0 +1,53 @@ + + + + + + • + + + + + + + + + + + + + + + + + + + + Mixing things up + Mixing things up + + + + + 18 + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + 18 + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-020.svg b/src/talks/lca_2009/svg/lca-2009-020.svg new file mode 100644 index 0000000..bbf7b7b --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-020.svg @@ -0,0 +1,459 @@ + + + + + + • + + + + + + + + + + + + + Combined stack + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 19 + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-021.svg b/src/talks/lca_2009/svg/lca-2009-021.svg new file mode 100644 index 0000000..2d4f585 --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-021.svg @@ -0,0 +1,497 @@ + + + + + + • + + + + + + + + + + + + + Software fallbacks + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-022.svg b/src/talks/lca_2009/svg/lca-2009-022.svg new file mode 100644 index 0000000..151ebc5 --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-022.svg @@ -0,0 +1,560 @@ + + + + + + • + + + + + + + + + + + + + Current/Future changes + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Glucose + + + Glitz (or cairo-gl) + + + + + + cairo-drm + + + pixman-drm + + + + + + + + 21 + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-023.svg b/src/talks/lca_2009/svg/lca-2009-023.svg new file mode 100644 index 0000000..8d6df23 --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-023.svg @@ -0,0 +1,58 @@ + + + + + + • + + + + + + + + + + + + + Everything through OpenGL? + + + + + + + At which level? + + + Cairo? (see Glitz) + + X server? (see Glucose) + + + Potential problems + + + Quality concerns (overblown?) + + Missing operations (just add extensions?) + + + + + + + 22 + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + + diff --git a/src/talks/lca_2009/svg/lca-2009-024.svg b/src/talks/lca_2009/svg/lca-2009-024.svg new file mode 100644 index 0000000..0ce72f5 --- /dev/null +++ b/src/talks/lca_2009/svg/lca-2009-024.svg @@ -0,0 +1,60 @@ + + + + + + • + + + + + + + + + + + + + Direct-rendering with cairo (cairo-drm) + + + + + + + Chris Wilson has been playing around with this (on i915/i945) + + Results are already very promising + + + Gradients are 100 - 120x faster + + Some painting operations are 50x faster (why?) + + Text is 4x faster (needs more testing) + + + Brings XVideo and XRender together (using video as source) + + Some of the work can be folded back to X server 2D driver + + Longer-term makes more sense in pixman-drm + + + + + + 23 + + + + + From Click to Pixel: A Tour of the Linux Graphics Stack + + + + +