Add a GEM implementation project
authorftigeot <ftigeot@web>
Wed, 6 Mar 2013 20:32:42 +0000 (12:32 -0800)
committerCharlie Root <root@leaf.dragonflybsd.org>
Wed, 6 Mar 2013 20:32:42 +0000 (12:32 -0800)
docs/developer/gsocprojectspage/index.mdwn

index 00c48dd..8646ee4 100644 (file)
@@ -22,6 +22,45 @@ Legend:
 
 ---
 
 
 ---
 
+##### Implement GEM for the DragonFly kernel
+
+The Graphics Execution Manager is a memory management system dedicated
+to Intel graphics chipsets. Along with KMS, it is a requirement of
+2010 and more recent Intel Xorg drivers.
+
+The dports third-party application collection already contains all the userland bits needed to use the new drivers, provided WITH_NEW_XORG and WITH_KMS options are used in make.conf
+
+Background GEM information:
+
+* http://en.wikipedia.org/wiki/Graphics_Execution_Manager
+* http://lwn.net/Articles/283798/
+* http://blog.ffwll.ch/2012/10/i915gem-crashcourse.html
+
+Some kernel work has already been done in this domain by FreeBSD and could probably be adapted:
+
+* https://wiki.freebsd.org/Intel_GPU
+
+Related work has also been done previously by David Shao during a 2010 GSoC project:
+
+* http://www.dragonflybsd.org/docs/developer/GEMdrmKMS/
+* https://github.com/davshao/dflygsocdrm
+
+The dflygsocdrm branch is kept up-to-date but sadly seems to only be working on i386 DragonFly systems, and with ~2010 era Intel chipsets.
+
+An experimental port of the FreeBSD i915/kms code is also available, albeit non-working due to the missing GEM support.
+
+Adding PAT (Page Attribute Table) support to the kernel seems to be a required first step:
+
+* http://lwn.net/Articles/278994/
+
+Meta information:
+
+* Prerequisites: C, x86 architecture and paging knowledge
+* Difficulty: Moderate to difficult
+* Contact point: kernel@crater.dragonflybsd.org, #dragonfly irc channel
+
+---
+
 ##### Implement Linux compatibility for the x86_64 DragonFly kernel
 * Add a syscall table which translates Linux system calls to DragonFly ones
 * Add support for ELF binary detection.
 ##### Implement Linux compatibility for the x86_64 DragonFly kernel
 * Add a syscall table which translates Linux system calls to DragonFly ones
 * Add support for ELF binary detection.