Intel Graphics Compiler Changes For Gen12 - Biggest Changes To The ISA Since i965
Now that the Intel open-source developers have begun preparing the changes for their graphics compiler back-end for Xe/Gen12 initially with Tigerlake processors, the major architectural changes are beginning to show compared to Icelake "Gen11" graphics and older. The patches show that the Gen12 graphics ISA is one of the biggest reworks ever to the Intel EU ISA since the original i965 graphics a decade ago.
Nearly every instruction field, opcode, and register type is updated and there are other big changes like removing the hardware register scoreboard logic that leaves it up to the compiler now for ensuring data coherency between register reads and writes and a new sync hardware instruction.
The Intel Gen12 graphics compiler code in its current form is touching around five thousand lines of code on top of the existing open-source Linux graphics code. The compiler back-end bring-up isn't complete with various debugging and performance bits still not yet implemented among other tasks ahead. Certainly over the months ahead prior to Gen12 graphics hardware appearing will continue to be a lot more features and optimizations added.
The graphics compiler back-end is just one piece of the puzzle for enabling the OpenGL and Vulkan driver support in user-space. With Gen12 is the first generation where the OpenGL support will just be implemented on their modern Iris Gallium3D driver as opposed to their "classic" i965 OpenGL Mesa driver. The Vulkan support will come atop their existing "ANV" open-source driver.
It's certainly exciting to see more of these Gen12/Xe changes coming up. Stay tuned for more details on Phoronix with our close monitoring of the development of these open-source drivers. If all goes well with this continued Gen12 / Xe bring-up, the open-source Linux graphics driver stack should be supporting this hardware nicely in time for the first chips shipping later in 2020. The real question will be on the timing of the hardware launch and when the "experimental" flag is lifted from the driver as to whether the 2020 Linux distributions will be supporting this hardware out-of-the-box or if some hoops will need to be jumped through for early adopters. Historically though Intel is quite good on their release cadence for ensuring the support aligns with the major Linux distributions at launch.