Page MenuHomeFreeBSD

Haswell GPU Support for stable/10
AbandonedPublic

Authored by kami on Apr 5 2016, 10:59 AM.
Tags
Referenced Files
Unknown Object (File)
Wed, Dec 18, 10:05 PM
Unknown Object (File)
Wed, Dec 4, 11:09 PM
Unknown Object (File)
Sat, Nov 30, 5:25 AM
Unknown Object (File)
Nov 14 2024, 2:52 AM
Unknown Object (File)
Nov 6 2024, 12:43 PM
Unknown Object (File)
Nov 2 2024, 12:07 AM
Unknown Object (File)
Oct 17 2024, 6:36 PM
Unknown Object (File)
Oct 16 2024, 10:50 PM
Subscribers

Details

Reviewers
None
Summary

This diff is a port of the Haswell GPU support:
https://wiki.freebsd.org/Graphics/Update%20i915%20GPU%20driver%20to%20Linux%203.8

It is based on the work of Masachika ISHIZUKA who ported the state of the i915/drm2 support as of r297231 to FreeBSD 10.3:
http://www17.plala.or.jp/ish-org/i915-patch-r297231-for-10.x.tar.xz

This differential the result of applying the patch to stable/10 (svn patch was actually able to apply it cleanly with a bit of fiddling).

My positive test results are:

  • glxinfo confirms direct rendering
  • Opengl1 acceleration works (tested using ioquake3-devel)
  • Opengl2 acceleration works (tested using ioquake3-devel)
  • xrandr detects all outputs
  • xrandr detects screen sizes
  • xrandr --output FOO --auto does the right thing
  • Performance is amazing, after all those years with vesa/scfb

Inconveniences:

  • HDMI1 comes up with a Full-HD 50Hz interlaced mode, even though Full-HD progressive is the default mode as reported by xrandr and selected by xrandr --output HDMI1 --auto
  • xdpyinfo reports 96 DPI (everything is really, really, *REALLY* tiny), even though the screen size is detected correctly

Workarounds in the Xorg configuration:

  • Set Option "PreferredMode" "1920x1080" for the HDMI1 monitor section
  • Set DisplaySize for eDP1 (internal screen of the laptop), I use the values that are detected automatically

For reference, here is my /usr/local/etc/X11/xorg.conf.d/video.conf:

Section "Device"
        Identifier "video0"
        Option "XvMC"           "true"
        Option "Monitor-eDP1"   "monitor_eDP1"
        Option "Monitor-HDMI1"  "monitor_HDMI1"
EndSection

Section "Monitor"
        Identifier  "monitor_eDP1"
        DisplaySize 309 173         # In mm, used to calculate DPI
EndSection

Section "Monitor"
        Identifier "monitor_HDMI1"
        Option     "PreferredMode" "1920x1080"
EndSection
Test Plan

Just don't load the module in /boot/loader.conf, it causes the kernel to halt during boot. Loading in rc.conf using kld_list reportedly works fine.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

kami retitled this revision from to Haswell GPU Support for stable/10.
kami updated this object.
kami edited the test plan for this revision. (Show Details)
kami set the repository for this revision to rS FreeBSD src repository - subversion.
kami added a project: x11.
kami planned changes to this revision.Apr 7 2016, 8:40 AM

After some discussion on IRC, due to there being no current plans for a 10.4 release, the consent is that it would be more beneficial for 10.x users to have a solution in the ports tree.

Work on this is pending.

kami requested a review of this revision.May 29 2016, 7:34 PM

Seeing that there is still plenty of activity in stable/10, I think it's a good idea to MFC this after all.

Making a port on the other hand is bound to be painful, especially with the need to load a changed AGP module and making the kernel use it instead of its own.

Obsolete due to 11.0 release.