Intel Publishes More Haswell Graphics Driver Code
Two days ago I originally wrote about open-source Haswell graphics code appearing. The initial code was just a bit worrisome since it added in five Haswell PCI IDs for the graphics processor (two for desktop, two for mobile, and one mobile ultra-book), but none of them were for the much-rumored Haswell GT3 integrated graphics processor. The added IDs were just labelled GT1 and GT2. This initial code also classified Haswell as being a "Gen7" part like Ivy Bridge (and now Valleyview too), but not as "Gen8" hardware, which dampens some hopes of seeing any revolutionary changes over Ivy Bridge graphics.
Also appearing on Monday was a Haswell branch of Mesa to offer up the user-space side changes for Haswell to support OpenGL with this free software library. Those changes too were fairly basic for the "Gen7" Haswell and amounted to just a few dozen lines of code. The Haswell support in Mesa's "i965" DRI driver up to now has just been to add in the same PCI IDs, classify Haswell as being "Gen7", updating a few offsets and other bits, and disabling HiZ support temporarily.
What's hit the public lists this evening now is the most extensive set of graphics-related Haswell patches yet for Intel's open-source DRM (Direct Rendering Manager) Linux graphics kernel driver, like the other patches, they can be found on the intel-gfx list. "To contribute to everyones curiosity and further enrich Phoronix articles :), this is the initial Haswell enablement patchset for basic modesetting support over VGA."
Today's patches add over 800 lines of code as it builds upon the existing Intel Gen7 support within the kernel DRM driver. The 37 patches are being published under an "RFC" (Request For Comments) tag, but will hopefully be in a shape to get them merged for the Linux 3.4 kernel in the next two weeks while it's merge window is open. Otherwise the Haswell graphics could would need to wait around for a few more months before landing in the mainline Linux kernel tree for supporting next year's hardware from Intel.
Here's some comments on today's Intel Haswell open-source Linux graphics driver patches:
- The PCI IDs for the desktop integrated graphics: 0x0402 (GT1 desktop) and 0x0412 (GT2 desktop). The mobile integrated graphics: 0x0406 (GT1 mobile) and 0x0416 (GT2 mobile). These new patches also have the IDs for the server graphics: 0x0416 (GT1 server) and 0x041a (GT2 server). However, there's still no GT3 references with these patches. Haswell's SDV (Software Development Vehicle) has a PCI ID of 0x0c16.
- LynxPoint PCH support is worked on as part of this patch-set. Aside from the graphics, there's already been other Intel Lynx Point support work ongoing for the past few months in the Linux kernel.
- Haswell introduces new power wells. "Starting with Haswell, we have different power wells for different parts of the GPU. This attempts to enable them all."
- Haswell graphics feature Sideband Interface programming. "With Lynx Point, we need to use SBI to communicate with the display clock control."
- Like Ivy Bridge, Haswell will still have support for three pipes (see details on Ivy Bridge triple monitor support).
- The interrupt/IRQ support for Haswell is the same as Ivy Bridge, but different from Valleyview.
- RC6 support for Haswell is currently disabled due to causing system hangs.
Many of the Haswell driver enablement patches were authored by Eugeni Dodonov, one of the newer Intel OTC employees formerly from Mandriva. From some of the comments made publicly, it also seems they're already playing around with some early Haswell engineering hardware, compared to the Valleyview Atom SoC where it seems they're still waiting on silicon to arrive.
There isn't yet any xf86-video-intel DDX driver patches for Haswell, but those shouldn't be noteworthy at all with all of the interesting churn happening within the KMS/DRM driver and Mesa.
The timing of this Haswell push isn't surprising at all, since this successor to Ivy Bridge is due out in about one year's time. It was in April of 2011 when Intel began pushing out Ivy Bridge Linux graphics code and now with the launch being just days away, the IVB driver code is upstream in the kernel and can be found in major Linux distributions for what will hopefully be a pleasant "out of the box" experience.
Like Sandy Bridge and Ivy Bridge, expect the Haswell support to be refined a great deal in the coming months and as the support becomes more feature-complete. Mesa still needs to catch-up to supporting OpenGL 3.2 for Haswell (they're now nearing OpenGL 3.1 compliance), among other work.
However, there's already other performance improvements and other work that will make Ivy Bridge users excited to upgrade later on. When Ivy Bridge hardware is available, it will be tested under Linux on Phoronix. Aside from the graphics, there's also compiler optimizations to look forward to and other Linux features.