descriptionTools for people envious of nvidia's blob driver
homepage URLhttps://envytools.readthedocs.io/
repository URLhttps://github.com/envytools/envytools.git
ownerrepo@saper.info
last changeThu, 26 Oct 2023 10:42:54 +0000 (26 13:42 +0300)
last refreshWed, 24 Apr 2024 07:45:18 +0000 (24 09:45 +0200)
content tags
add:
README.rst
=========
envytools
=========
*Tools for people envious of nvidia's blob driver.*

.. image:: https://travis-ci.org/envytools/envytools.svg?branch=master
       :target: https://travis-ci.org/envytools/envytools

.. image:: https://readthedocs.org/projects/envytools/badge/?version=latest
       :target: https://envytools.readthedocs.io

The canonical repo is at: https://github.com/envytools/envytools/. Pushing
anywhere else will result in a de-facto fork!

Contents
========

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 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
====================

Dependencies:

- ``cmake``
- ``libxml2``
- ``flex``
- ``bison``
- ``pkg-config``

Optional dependencies needed by hwtest:

- ``libpciaccess``

Optional dependencies needed by demmt:

- ``libdrm``
- ``libseccomp``

Optional dependencies needed by nva:

- ``libpciaccess``
- ``libx11``
- ``libxext``
- ``python3``
- ``cython3``

Optional dependencies needed by vdpow:

- ``libpciaccess``
- ``libx11``
- ``vdpau``

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 .

Cmake options
-------------

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``
shortlog
2023-10-26 Martin Roukala... Merge pull request #218 from saper/build-fixesmaster
2023-10-26 Martin Roukala... Merge pull request #222 from eiln/h264-ref-mod
2023-10-26 Eileen Yoonvstream: fix h264 ref reorder list print error
2022-12-07 Marcin Cieślakdemmt: Use POSIX basename(3)
2022-12-07 Marcin Cieślakcmake: autodetect X11 header location
2022-12-07 Marcin Cieślakcgen: nva needs position independent code
2022-04-30 Marcelina Kościelnickafix standalone docs build
2021-05-24 Marcelina Kościelnickanvhw/sfu_tab: documentation fix
2021-03-09 Ilia Mirkinfix variants to use GM204 as the limit rather than...
2021-03-09 Ilia Mirkinrnndb: add reduction mode to tsc, fix anisotropy enum
2021-03-04 Rodrigo Locattienvydis/gm107: add missing negation bit to dsetp
2021-03-01 Ilia Mirkindocs/g80: fix surface tiling layout pseudocode
2021-02-27 Rodrigo Locattienvydis/gm107: add ldg variant with predicate
2021-02-22 hexkyzenvydis/falcon: add missing indirect crypt opcodes
2021-02-22 hexkyzenvydis/falcon: add new v6 opcodes and sprs
2021-02-22 hexkyzenvydis/falcon: name all missing v5 opcodes
...
heads
5 months ago master
3 years ago revert-201-fcommon-fix
7 years ago more_tables
8 years ago wwa-gm107-wip
11 years ago ed2