tech-x11 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Updated drm code


updated drm kernel code for NetBSD-current is available from

It matches freedesktop mesa/drm commit
85b9f737db0d2a845e4d7e2bbf9ad12ff9e2227c from 20090522, plus
all the radeon changes from r6xx-r7xx-support branch. So in
theory new Radeons should get some acceleration with this.

In order to use this, you will also need to apply this patch:

then replace contents of src/sys/external/bsd/drm/dist with the
contents of the tar, define DRM_EXTERNAL in your kernel config
and go.

Big caveats apply

 - The nbsddrm.patch removes check for negative offsets
   from mmap()! Use with caution!

   I did this, because I didn't want to redo the addr2handle
   hacks that exist in current NetBSD drm code.

 - I have only converted i915drm and radeondrm drivers to
   new code. However, changes to _drv.c files are quite small
   and mechanical, so they should be easy to do for other drivers.

 - I have tested succesfully only on i945GM. X works nicely with this,
   so the new code is not a complete bust.

 - Another card I tested is Radeon HD3870 (unsupported previously).

   The card does attach with the new code, and X does start up,
   but display is garbled. I'm not sure whether this particular
   card is even supposed to work or not with the experimental
   r6xx support.

   When killed, X does shutdown cleanly, and I get text console
   back, so even this is not a *complete* bust.

   I'm using modular-xorg-server (thanks to hasso@),
   libdrm-2.4.11 and xf86-video-ati 6.12.2.

Note that I didn't do any real work here: I mostly just mechanically
brought back the necessary #ifdefs that were removed by FreeBSD devs
from stock drm code. So kudos to the people who did the initial porting
of drm code to NetBSD.

I'm making this code available since I don't have any more time
to spend on it. I hope some NetBSD dev will clean this up, people
will test it, and NetBSD could then be updated to fresh drm code.

Home | Main Index | Thread Index | Old Index