As most of you know, I've been working on the BSD DRM for a year or so
now.  I've been working on the code based on bsd-2-0-0-branch, which
uses C macros and ifdefs to deal with the differences between Linux and
FreeBSD.  To see the current state of the code checked into FreeBSD CVS
(it's close to trunk, but lacks i8x0 and sis are missing and gamma is 
outdated) you can take a look at
http://gladstone.uoregon.edu/~eanholt/dri/sysdrm-2002-05-13.tar.gz

Keeping up with the changes going on in the DRI CVS is a decent bit of
work for a student volunteer.  I would love to see BSD users be able to
test things like the mach64 branch and such, but I barely have time to
keep up with trunk (and I didn't even do that, as happened in the latest
X release).  However, importing the OS-templated code directly would be
terrible -- the diffs are around 400k and the last time I tested on
linux it didn't work.

I would like to see a form of OS-templated code get into CVS.  If the
rest of the DRI developers are interested in having this done, this is
what I would like to happen:

Step 1:
- repocopy most of linux/drm/kernel/ to shared/drm/kernel (see below)
- make the build symlink stuff in shared/drm/kernel to <os>/drm/kernel
- cvs rm the repocopied stuff from linux/drm/kernel
This would have to happen simultaneously in the branches to preserve
history.

Step 2:
In the bsd branch (bsd-3-0-0), create the drm_os_* headers and commit
the DRM_OS_ERR and DRM_OS_IOCTL changes.  These cover a large number of
the bytes of the diff.  Quickly test and merge it, as they should be
harmless.

Step 3:
Start applying the BSD changes to the bsd branch.  These will be tested
on Linux as they are applied.

Once that bsd branch is brought up to the point of being better than
FreeBSD's DRM, I would merge it back to FreeBSD and hopefully merge to
trunk.  Then I could work on adding the new stuff I've worked on
(PCIGART, i8x0) then work on new things (NetBSD, which looks like it
wouldn't be very difficult at all).

Most of the *.[ch] from linux/drm/kernel would be repocopied.  Currently
the BSD branch has its own drm_vm.h and drm_agpsupport.h, and does not
use drm_proc.h and drm_stub.h, (which would be left in
linux/drm/kernel).  Additionally I think we would split drm_fops.h for
the two OSes, because the shared code is so limited it makes reading the
file tough.

What do people think about the code, and if they like it, what about the
process for getting it into CVS?

-- 
Eric Anholt <[EMAIL PROTECTED]>
http://gladstone.uoregon.edu/~eanholt/dri/



_______________________________________________________________

Have big pipes? SourceForge.net is looking for download mirrors. We supply
the hardware. You get the recognition. Email Us: [EMAIL PROTECTED]
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to