1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

Intel Publishes Ivy Bridge Programming Documentation

Intel

Published on 23 June 2012 12:04 PM EDT
Written by Michael Larabel in Intel
27 Comments

Intel quietly pushed out their "Ivy Bridge" graphics programming documentation and register specifications on Friday. This Ivy Bridge graphics core programming documentation spans 17 files spread across three volumes and 2,468 pages of technical details concerning their latest-generation graphics.

While Intel has a large team of developers within their Open-Source Technology Center working on their open-source Linux graphics driver, they continue to produce very detailed programming documentation for the public. These documents cover the key registers for their hardware and other information to benefit anyone wishing to get into low-level graphics driver programming or just wanting to better understand how Intel's latest graphics core works.

Intel has put out documentation on their graphics chips for several generations now and they just did so for Ivy Bridge. The Ivy Bridge processors have been available since April, and the open-source Linux code for the graphics driver has been available for more than a year, but they finally received permission to do the public drop of their programming documentation.
This Intel HD Graphics Open Source Programmer’s Reference Manual (PRM) describes the architectural behavior and programming environment of the Ivy Bridge chipset family. The Graphics Controller (GC) contains an extensive set of registers and instructions for configuration, 2D, 3D, and video systems. The PRM describes the register, instruction, and memory interfaces, and the device behaviors as controlled and observed through those interfaces. The PRM also describes the registers and instructions, and provides detailed bit/field descriptions.
Intel continues to be the most open-source and Linux friendly hardware vendor -- see Linux Driver Support Still Leaves A Lot To Desire. Meanwhile, NVIDIA is the single worst Linux company, according to Linus Torvalds. As for AMD, they are working on their open-source Linux driver in tandem with their proprietary driver, but they still have yet to publish any extensive GPU documentation for their Radeon HD 7000 "Southern Islands" graphics processors that have been available for about a half-year.

There's been some ISA documentation and other bits out of other groups at AMD for GCN / S.I., but not the mode-setting docs and other GPU programming guides. AMD's been lagging behind in pushing out public programming documentation, with some of the documentation even for the "R600" era still sitting behind closed doors. NVIDIA remains the worst when it comes to being open-source friendly with either public documentation / specifications or open-source driver support, but that's beginning to lose them a great sum of money in losing out on at least one huge deal.

Anyhow, back onto Ivy Bridge: this documentation appears to be rather complete from the initial look through it this morning. There's just under 2,500 pages of information spanning 17 PDF files. The graphics core is covered including the MMIO registers, memory interface, render engine, blitter engine, and video codec engine command streamer. There's also coverage on the GT interface register, L3 cache and URB, 3D media pipeline, media and general purpose pipeline, multi-format transcoder, VGA registers, PCI registers, north/south display engines, message gateway, and execution unit ISA.

Intel Publishes Ivy Bridge Programming Documentation

It's nice to see that even the Ivy Bridge execution unit is covered with this documentation for doing general purpose computing (GPGPU). At this time that's one of the missing features of the open-source Intel Linux driver: no current OpenCL driver support on the graphics core.

Beyond that, Intel also continues documenting their video acceleration engine. This is one area where AMD has never publicly documented or provided code for since their long-standing concern has been that documenting the video encode/decode engine of their Radeon hardware could potentially compromise their Digital Rights Management mechanism under Microsoft Windows. Intel's open-source VA-API video acceleration is great.

Intel releases this "OpenSource HD Graphics Programmer's Reference Manual" documentation under the Creative Commons License. Intel's public documentation is available for unrestricted download from IntelLinuxGraphics.org.

Great job, Intel! For those curious about the Intel Ivy Bridge Linux performance (CPU and GPU) under Linux, see the many Phoronix articles. (More Ivy Bridge Linux benchmarks are on the horizon.) Overall it's in great shape with good performance and comparable features, but the key outstanding items include:

- No GPGPU/OpenCL support yet.
- The Linux driver only handles OpenGL 3.0 (the Intel Windows driver goes GL 4.0 and the Intel Linux developers don't even expect OpenGL 3.1 until 2013)
- The Intel Windows driver is much faster and there's talk of fundamental improvements coming to the Intel Windows driver this year.
- The Intel Linux developers are still working on some fundamental features like support for multi-sample anti-aliasing that Windows and Mac OS X users take for granted. S3 Texture Compression support also continues to not be available by default.

Thankfully they at least already have working open-source Linux graphics driver code for Haswell and Valley View. Once their 2013 Haswell platform is out and the next-gen Atom SoC, there will hopefully be another pleasant documentation / register specification drop.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. Intel Launches The Core i7 5960X, Mighty Powerful Haswell-E CPUs
  2. AMD Radeon R9 290: Gallium3D vs. Catalyst Drivers
  3. AMD Radeon R9 290 Open-Source Driver Works, But Has A Ways To Go
  4. Trying The Configurable 45 Watt TDP With AMD's A10-7800 / A6-7400K
Latest Linux Articles
  1. How Intel Graphics On Linux Compare To Open-Source AMD/NVIDIA Drivers
  2. The Fastest NVIDIA GPUs For Open-Source Nouveau With Steam Linux Gaming
  3. Testing For The Latest Linux Kernel Power Regression
  4. The Most Energy Efficient Radeon GPU For AMD Linux Gaming
Latest Linux News
  1. AMD, Wine & Valve Dominated August For Linux Users
  2. Linux 3.17-rc3 Kernel Released Back On Schedule
  3. Lennart Poettering Talks Up His New Linux Vision That Involves Btrfs
  4. Mesa 10.3 RC2 Arrives Via Its New Release Manager
  5. Ubuntu 14.10's Lack Of X.Org Server 1.16 Gets Blamed On AMD
  6. MSI Motherboard BIOS Updating Remains A Pain For Linux Users
  7. See How Your Linux System Performs Against The Latest Intel/AMD CPUs
  8. AMD Steppe Eagle Flys To Coreboot
  9. Intel Beignet Is Working Out Surprisingly Well For OpenCL On Linux
  10. Coreboot Adds Lenovo X220 With Native Sandy Bridge Support
Latest Forum Discussions
  1. SSD seems slow
  2. AMD Releases UVD Video Decode Support For R600 GPUs
  3. Is laptop with Intel CPU and AMD dGPU worth buying considering especially AMD Enduro?
  4. Btrfs Gets Talked Up, Googler Encourages You To Try Btrfs
  5. Radeon HD5670 and Ubuntu 14.04
  6. Updated graphics drivers for Ubuntu 12.04 Precise LTS
  7. Catalyst 14.201.1008
  8. It's Now Possible To Play Netflix Natively On Linux Without Wine Plug-Ins