pscnv is a fork of the nouveau kernel driver that uses a custom memory manager instead of TTM.
- 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
- 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.