Skip to content
This repository

Home 

mupuf edited this page · 8 revisions

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.

If you are a developer, you can also have a look at the Introductory Course and then start hacking the non-implemented parts. See TODO and decide what task you want to tackle.

Something went wrong with that request. Please try again.