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.

Complete

jhb@

Allow VM objects to be mapped with non-default cache modes

"

"

In progress

alc@ / jhb@

Add a new OBJT_SG VM object to map arbitrary address ranges

"

"

In progress

jhb@

Allow mmap() to prefault mappings for OBJT_SG and possibly OBJT_DEVICE

"

"

In progress

alc@ / 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 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

Status, information etc

Downloads

NvidiaFeatureRequests (last edited 2009-06-17 14:34:09 by JohnBaldwin)