Tools
Tools that help the driver writing process:
- EnvyTools - hardware register database, documentation and collection of RE tools (nvapeek, nvapoke, nvbios, envydis, etc.)
- MmioTrace - traces memory mapped I/O access within kernel. Used to record how a driver module uses MMIO reads and writes.
- Valgrind-mmt - modification of Valgrind which intercepts all traffic to the driver
- Nouveau-PM
REnouveau (CVS) - dumps the modifications in the command fifo and user-mapped registers when a process emits rendering commands. Obsolete:
RulesNG - hardware register database (obsoleted by envytools).
- Nouveau CVS repo - other tools and scripts (e.g. crashdump and createdump).
Debugging tools
- OProfile is a useful statistical profiler, for a system wide performance overview.
Documentation/Available source code
Documentation about how nvidia hardware works
- EnvyTools - hardware register database, documentation and collection of RE tools (nvapeek, nvapoke, nvbios, envydis, etc.)
- NvHardwareDocs all documented nv registers, hardware protocols, articles, and miscellaneous hardware info about nv vid cards
Introduction and API docs
- IntroductoryCourse - selected links and documents as a course material
- DRI, DDX, DRM, GLX... how it works together
- How to write a Mesa driver
- The DRI documentation page
- A locking mechanism for the DRI
- Graphics Stack Overview
- A simple git guide
- GalliumHowto
- How to build and install a full graphics stack from git without overwriting your distribution provided X.
- ?KernelModeSetting
- The State of Linux Graphics (2005)
- Sharpening the Intel Driver Focus (2009)
- The Linux Graphics Stack (2012)
- i915 GEM crashcourse (driver-specific GPU buffers) (2012)
Presentations
- Marcheu's talk about Xorg Myths (FOSDEM 2007)
- Marcheu's talk about Nouveau (FOSDEM 2007)
- The FOSDEM 2006 presentation
- David Airlied's LCA 2007 talk
Video Hardware docs
Other nVidia drivers
- pscnv, a redesigned fork of nouveau for NV50+ cards, driven by ?PathScale.
- The DirectFB nVidia driver New address of DirectFB git repo
- The BeOS/Haiku nVidia driver (svn header; svn driver)
- Utah-GLX
- The xfree 3.3.3 nvidia driver just after obfuscation
Misc
- Graphics stack diagram
- Mesa diagram
- Another HOWTO compile mesa
- mostly outdated ToDo
- Games - how games use graphics
- List of all CodeNames for NVIDIA cards
- openChrome Project - open source device drivers for VIA S3 (has updated XvMC with MPEG-4 acceleration support)
- intellinuxgraphics.org open source Linux Graphics Device Drivers from Intel (with XvMC for MPEG-2 acceleration support)
- R300 DRI (Direct Rendering Infrastructure) - open source device drivers development for AMD/ATI R300 chipset
- NouveauDemo a test suite
- DumpingVideoBios
- NouveauTerms
- BlobTrace
- DDC
- Dithering
- HwIntroduction
- PowerManagementDumps
- HangDiagnosis
- MultiMonitorDesktop
- REnouveauDumps
