Tools for people envious of nvidia's blob driver.
The canonical repo is at: https://github.com/envytools/envytools/. Pushing anywhere else will result in a de-facto fork!
Subdirectories:
docs: plain-text documentation of the GPUs, nVidia binary driver, and the tools (in-sync HTML version at https://envytools.readthedocs.io)envydis: Disassembler and assembler for various ISAs found on nvidia GPUsrnn: Tools and libraries for the rules-ng-ng XML register database formatrnndb: rnn database of nvidia MMIO registers, FIFO methods, and memory structures.nvbios: Tools to decode the card description structures found in nvidia VBIOSnva: Tools to directly access the GPU registersvstream: Tools to decode and encode raw video bitstreamsvdpow: A tool aiding in VP3 reverse engineeringeasm: Utility code dealing with assembly language parsing & printing.util: Misc utility code shared between envytools modules
Dependencies:
cmakelibxml2flexbisonpkg-config
Optional dependencies needed by hwtest:
libpciaccess
Optional dependencies needed by demmt:
libdrmlibseccomp
Optional dependencies needed by nva:
libpciaccesslibx11libxextpython3cython3
Optional dependencies needed by vdpow:
libpciaccesslibx11vdpau
Optional dependencies needed for ninja build (faster recompile times):
ninja
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 cython3
To build using ninja (recommended if you work on envytools):
$ cmake . -G Ninja $ ninja
If you prefer to stay with make, use
$ cmake . $ make
To install [which is optional], use
$ ninja install
or
$ 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 .
If you don't want to compile some parts of envytools, you can pass the following options to cmake:
- Hwtest:
-DDISABLE_HWTEST=ON - Nva:
-DDISABLE_NVA=ON - VDPOW:
-DDISABLE_VDPOW=ON