"Soft" FP64/INT64 Implementations Merged To Mesa, Intel Driver Already Making Use

Written by Michael Larabel in Mesa on 10 January 2019 at 05:33 AM EST. 19 Comments
For those with older graphics processors, rejoice as with the upcoming Mesa 19.0 driver release it might now be possible to have OpenGL 4.0 thanks to software-based implementations of ARB_gpu_shader_int64 and ARB_gpu_shader_fp64 finally being merged to mainline. The FP64 one is most notable with that being a requirement for OpenGL 4.0 but some older GPUs lacking that capability for bumping past OpenGL 3.3.

Going back to the summer of 2016 was a Google Summer of Code project by Elie Tournier to implement "soft" FP64 support using GLSL to help out older GPUs that otherwise couldn't expose OpenGL 4.0 due to not supporting ARB_gpu_shader_fp64. Elie Tournier has since gone on to work for Collabora but getting this code merged has taken quite some time.

Since that GSoC 2016 project, there's been slow work by both the Intel and Radeon driver teams to implement the support and various patches while finally overnight the work was merged in time for next week's Mesa 19.0 feature freeze.

This contains all of Tournier's GLSL code plus various NIR changes for lowering these 64-bit data types. Rounding out the work are the necessary Intel compiler back-end tweaks followed by enabling the FP64 software routines and then finally enabling the FP64 and INT64 OpenGL extensions unconditionally now that it will work everywhere regardless of actual hardware support.

On the Intel side, this work is beneficial for Sandy Bridge (and older) while Ivy Bridge tapped OpenGL 4.2 in 2017 and obviously newer generations are up-to-spec. Of course, most (all?) games don't need FP64, but it's a requirement of meeting OpenGL 4.0.

As of writing, the Radeon R600g driver side changes haven't landed to expose this soft FP64/INT64 support but we'll see if that still happens in time for Mesa 19.0. This work is particularly beneficial on the Radeon side for discrete GPUs like the Radeon HD 6800 series and others that have a fair amount of performance potential for older games but still only expose OpenGL 3.3 due to lacking FP64. It's only the Radeon HD 6900 and HD 5800 series with R600g that have working ARB_gpu_shader_fp64 and thus GL4 support already.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week