IntroductoryCourse

Introductory Course

1. Introduction

Hello there. You would like to help Nouveau and maybe even become a developer. You have hung out on #nouveau IRC channel at Freenode, but you might not understand much about what the people are saying there. Maybe you do not have much of a background with graphics systems, but you would like to learn things before trying to jump in.

This page is for you. Here are gathered links to other documents in a comprehensible order. You can start reading the first ones to get a bigger picture of what the graphics world looks like and learn some acronyms. Going further down the list, the documents get more demanding, technical and specific. We recommend maintaining the rough order while reading through these.

If you know good documents that should be linked here, go ahead and add them.

2. The big picture - lots of acronyms

  1. The State of Linux Graphics by Jon Smirl, 2005

    • A lengthy description about everything. (You do not need to know everything in this article, but you need to know what XRENDER and EXA are.)
  2. Introduction to the Direct Rendering Infrastructure by Brian Paul, 2000

    • General introduction to what DRI is all about. (If you are interested in 3d, be sure to read section 5, DRI Components.)

  3. DRI Explanation - the previous article covers the same and has better description however.

3. A peek inside

  1. How Videocards Work, article in X.org wiki.

    • The parts that make a videocard, mostly from an Ati/Radeon point of view.
  2. GraphicStackOverview by Sylvain Bertrand

    • Has lots of links to design documents and status info. If you don't know TMDS, LVDS and so on, have a look here.
  3. IrcChatLogs, primarily the links to The Irregular Nouveau Development Companions

    • If you want to know some Nouveau history, these are the stories. Skip if you wish.
  4. Accelerated Graphics Port, article in Wikipedia.

    • Only needed if you are working on AGP-specific issues. The article fails to mention that transfer speed from graphics card back to system RAM is a lot worse than from system RAM to the card.
  5. Introduction to Gallium3D by José Fonseca.

    • This is the future of accelerated 3D graphics, the driver architecture used by e.g. Nouveau.

4. How stuff really works

  1. HonzaHavlicek - Honza describes how to drive the Nvidia hardware: PFIFO, PGRATH, RAMIN, RAMFC, RAMHT, GPU context switching.

    • If you want to understand HOW the hardware works, this is what you have to read.
  2. riva128.txt

    • Old document about a very old graphics card, but gives an idea how things used to work.
  3. ContextSwitching What is context switching, why is it important, how does it work...

  4. New DRI Memory Manager (PDF) by Keith Whitwell and Thomas Hellstrom, 2006

    • Introduction slides about Translation Table Maps, TTM.
  5. ArthurHuillet (Information about XVideo and other topics)

  6. XVideo slides (if you want to work on Xvideo)

  7. NV40 Architecture, article at digit-life.com.

    • What is inside and around a fairly modern GPU, but does not tell anything about programming it.
  8. GL_NV_fence extension - Explains what is fencing.

5. Obsolete documents (from the viewpoint of Nouveau since we use Gallium for 3D)

  1. DRI data flow diagram (Quick view of DRI data flows)

  2. DRI control flow diagram (Quick view of DRI control flows)

6. Getting to work

Pick your area of interest or read our ToDo, come to our IRC channel and subscribe to our mailing list, if you have not already done so and get involved.