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 will be started soon. 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: TODO
– KMS: working for console and unaccelerated-X. Accelerated-X: WIP
See TODO for more details.