Update i915 GPU driver to Linux 3.8

Our kernel-side i915 GPU driver is old, and platforms beginning with Haswell are not yet supported. This initiative aims to change that.

The work-in-progress branch is available on GitHub

Goals

Current status (2016-01-09)

Piglit runs fine on a Core Duo based laptop.

I can reproduce the "BUG ON: obj->base.write_domain & ~I915_GEM_GPU_DOMAINS" panic quite easily with GNOME 3. This is caused by two concurrent/conflicting accesses to the same drm_i915_gem_object. I'm still searching what's wrong.

Testing Instructions / How To

Whether it works or not, I'm interested in the output of dmesg and, in case of a kernel crash, the corresponding /var/crash/core.txt.* files. Please send them to the freebsd-x11 mailing list.

At this time, we aren't providing user support. However, if you have patches, they are very much welcome!

Thank you for your help!

  1. Make sure you have everything setup to have kernel dumps:

    # In /etc/rc.conf
    dumpdev="AUTO"
    ddb_enable="YES"

    Additionally, it helps to have the following sysctl:

    # In /etc/sysctl.conf
    debug.debugger_on_panic=0
  2. Enable i915 debug messages:

    # In /boot/loader.conf
    drm.debug=3
  3. You need to clone the repository and switch to the drm-i915-update-38 branch:

    git clone -b drm-i915-update-38 \
     https://github.com/freebsd/freebsd-base-graphics.git
  4. Build and install a kernel from this clone; I suggest you install the kernel with a non-default name:

    cd freebsd-base-graphics
    sudo make kernel INSTKERNNAME=kernel.i915
  5. Select the new kernel for the next boot and reboot:

    sudo nextboot -k kernel.i915
    sudo reboot
  6. Try to load the new driver:

    sudo kldload i915kms
  7. Try to start an X.Org server and use it!
  8. Send feedback! Post on the freebsd-x11 mailing list

Known Issues with Haswell

Progress

This is a list of files needing review. Reviewing consists of comparing each file with Linux 3.8.13 and with FreeBSD HEAD, to make sure everything is ported and no FreeBSD-specific changes were lost.

Graphics/Update i915 GPU driver to Linux 3.8 (last edited 2016-01-10 16:28:49 by JeanSébastienPédron)