Date: Fri, 9 Apr 2010 09:31:54 -0700 From: David Shao <davshao@gmail.com> To: freebsd-x11@freebsd.org Subject: Parts of drm ported to DragonFlyBSD and a GSoC offer to help with GEM/KMS Message-ID: <s2yf44ed34d1004090931k284f2a7fob65a4247025d2db0@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
A big thanks to Robert Noland and an offer to help. Parts of the drm from current have been ported to DragonFlyBSD 2.7.0 development, x86_64, and are being tested in git branches. With the latest git versions of the X.org stack including Mesa and libdrm, the usual demos from Mesa can be run for r600. What has been specifically tested is a Radeon HD 4550 on a Shuttle SG45H7, Intel 64-bit. An evolving report can be seen at http://www.dragonflybsd.org/docs/developer/GEMdrmKMS/ I readily recognize that I hardly did much more than cut and paste of already existing FreeBSD code. I even used the kern_subr.c and hash.h code to have a hashtable implementation with hashdestroy(). I am a CS masters student at San Jose State who will be submitting a GSoC application to create a cross-BSD porting layer for GEM/KMS. I have an idea of preserving as much of the Linux code as possible so that it is easier to contribute back to the drm developers who have enough problems just finishing their code for Linux. >From what I can tell the next step is to basically reimplement some version of Linux's idr (small integer ID management) API using radix trees, or more simply just to see performance, to get any version of the API, brute force the searches using the current red-black tree. I welcome correction, but looking at the code what exists now is a partial solution using unrhdr where the smallest available integer is returned while what the idr API is being used for sometimes calls for the smallest available integer above a certain floor. This kind of problem appears in several aspects of kernel programming which is no doubt why Linux implemented this abstraction. And there is hardly a shortage of radix tree implementations available for the BSDs to use.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?s2yf44ed34d1004090931k284f2a7fob65a4247025d2db0>