Skip to content
This repository

PSCNV

pscnv is a fork of the nouveau kernel driver that uses a custom memory manager instead of TTM.

Why

  • Nouveau+ttm offers no security or memory protection of any kind: user programs can overwrite each others’ GPU memory freely
  • With ttm, buffer objects can move in memory at any time. This makes implementing OpenCL, CUDA, or any other API with GPU-side pointers impossible.
  • Nouveau does command submission and synchronization in kernel space as a result of its memory management – this causes a lot of kernel trips.
  • TTM is hard to port to other operating systems

Current status

  • Cards supported: NV50 family. Work on NVC0 is on the way. Pre-NV50 may be supported one day, but there are no plans.
  • Memory management: VRAM done, with a few small issues; GART not started
  • PFIFO/PGRAPH setup and command submission: done
  • PFIFO/PGRAPH error handling: WIP
  • KMS: working for console and unaccelerated-X. Accelerated-X: WIP
  • Power Management: WIP

See TODO for more details.

How to get involved?

First, please join us at #pathscale, on freenode(IRC).

You can also help us by testing some early code, see TestingWanted.

We have a wiki page targeted to you, please have a look at it: TODO for Newcomers.

If you are a developer, you can also have a look at the Introductory Course and then start hacking the non-implemented parts.

If you want something bigger than what is proposed on the TODO for Newcomers, you can have a look to our TODO and decide what task you want to tackle.

Contact us

See ContactUs.

Something went wrong with that request. Please try again.