Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Tools for people envious of nvidia's blob driver.
C Python Perl CMake Yacc Shell Other
Branch: master
Failed to load latest commit information.
cupti_trace add cupti_trace, a new tool for REing performance counters
demmt demmt: add support for new variant of memory ioctl
docs split include/nvhw.h
easm Fix license text everywhere.
envydis gk104/gk110: add "out" flag for al2p, fix gk104 immediate size
hwtest split include/nvhw.h
include split include/nvhw.h
nva split include/nvhw.h
nvbios nvbios/perf: set pcie speed index 3 to speed 2.5 GT/s
ptxgen ptxgen: add simple cubin fuzzer (cuobjfuzz.c); use CUDA 6 by default;…
rnn split include/nvhw.h
rnndb rnndb: access can't be specified on a bitfield
util demmt: let -l option accept compressed files
vdpow vdpow: update dumpstruct to handle mpeg4 correctly
vstream vstream: shut up an invalid compiler warning
.gitignore gitorious: add *~
CMakeLists.txt add cupti_trace, a new tool for REing performance counters
COPYING put the repo under the MIT license as it was agreed on
README.rst add python3-dev for ubuntu
bftool GK110: WIP atom-related decoding bug, bftool: allow mixed 32/64 bit i…


envytools - Tools for people envious of nvidia's blob driver.

The canonical repo is at: Pushing anywhere else will result in a de-facto fork!



  • docs: plain-text documentation of the GPUs, nVidia binary driver, and the tools (in-sync HTML version at
  • envydis: Disassembler and assembler for various ISAs found on nvidia GPUs
  • rnn: Tools and libraries for the rules-ng-ng XML register database format
  • rnndb: rnn database of nvidia MMIO registers, FIFO methods, and memory structures.
  • nvbios: Tools to decode the card description structures found in nvidia VBIOS
  • nva: Tools to directly access the GPU registers
  • vstream: Tools to decode and encode raw video bitstreams
  • vdpow: A tool aiding in VP3 reverse engineering
  • easm: Utility code dealing with assembly language parsing & printing.
  • util: Misc utility code shared between envytools modules

Building, installing


  • cmake
  • libxml2
  • flex
  • bison
  • pkg-config

Optional dependencies needed by nva:

  • libpciaccess

Optional dependencies needed by vdpow:

  • vdpau
  • libx11

If your distribution has -dev or -devel packages, you'll also need ones corresponding to the dependencies above.

On ubuntu it can be done like this:

apt-get install cmake flex libpciaccess-dev bison libx11-dev libxext-dev libxml2-dev libvdpau-dev python3-dev

To build, use

$ cmake .
$ make

To install [which is optional], use

$ make install

If you want to install to a non-default directory, you'll also need to pass it as an option to cmake before building, eg.:

$ cmake -D CMAKE_INSTALL_PREFIX:PATH=/usr/local .

Cmake options

If you don't want to compile some parts of envytools, you can pass the following options to cmake:

Something went wrong with that request. Please try again.