This is an old revision of the document!
Nvidia Feature Requests
Nvidia currently supports the FreeBSD/i386 platform, which essentially means that anyone can download their binary driver and get hardware accellerated OpenGL support (yes, you can actually play and enjoy games like Doom3 and Quake4 on FreeBSD. Awesome, isn't it?). Nvidia has lately been looking at possible ways to (a) improve their current driver for the FreeBSD/i386 platform and (b) create a new driver for the FreeBSD/amd64 platform. This has transformed into several kernel feature requests, which are necessary in order to achieve (a) and (b). This page tries to document each feature request and its current status (in FreeBSD-8).
List of tasks
| Task | Why? | Priority | Status | Responsible |
|---|---|---|---|---|
| Implement pmap_mapdev_attr() on FreeBSD/i386 and on FreeBSD/amd64. | Allows reliable creation of kernel mappings of I/O memory with specific cache attributes (with per-page granularity). | Needed for FreeBSD/amd64. | Complete | alc@ |
| Design/implement better mmap(2) mechanism for mapping memory to user space (context information, cache attributes). | Allows reliable creation of user mappings of DMA and I/O memory and support for systems with more than 4GB of RAM. | PCI-E performance improvements, SLI support, FreeBSD/amd64 support. | Not started | jhb@ |
| Implement pmap_change_attr() on FreeBSD/i386 and on FreeBSD/amd64. | Allows prevention of cache coherency problems. | Needed for FreeBSD/amd64. | Complete | alc@ |
| Implement vmap()-like kernel interface. | Allows creation of contiguous kernel mappings of parts of or complete non-contiguous DMA/system memory allocations. | Support for systems with >4GB RAM. | The PCBSD guys started, see https://trac.pcbsd.org/browser/freebsd-projects/nvidia-work/vmap_like_interface doesn't seem to be much progress lately. | jhb@ |
| Implement mechanism to allow character drivers to maintain per-open instance data (e.g. like the Linux kernel's 'struct file *'). | Allows per thread NVIDIA notification delivery; also reduces CPU overhead for notification delivery from the NVIDIA kernel module to the X driver and to OpenGL. The FreeBSD kernel provides some support for this via cloning devices; the NVIDIA FreeBSD graphics driver used this interface for a while, but bugs/limitations and differences between kernel versions made it necessary to revert to regular device nodes. | Improved X/OpenGL performance. | Complete | kib@ |
Contact
- czander (at nvidiadotcom) if you'd like to work on something on this list.
Status, information etc
- [2006-06-29] http://lists.freebsd.org/pipermail/freebsd-hackers/2006-June/016995.html (check out the whole thread for more replies)
Downloads
- http://www.nvidia.com/object/unix.html (Get the official driver from Nvidia)
- http://www.freshports.org/x11/nvidia-driver/ (The Nvidia driver at FreshPorts)