RADV Driver Gets Faster Shader LLVM Compilation

Written by Michael Larabel in Radeon on 9 July 2018 at 07:22 PM EDT. 6 Comments
It's an exciting day in RADV land as in addition to work on the new Vulkan 1.1.80 extensions, David Airlie landed a patch he's been baking for speeding up the shader compilation performance for this open-source Radeon Vulkan driver within Mesa.

The change is using thread-local storage (TLS) to store LLVM related information to avoid some fixed overhead costs. Airlie explained, "This uses the common compiler passes abstraction to help radv avoid fixed cost compiler overheads. This uses a linked list per thread stored in thread local storage, with an entry in the list for each target machine. This should remove all the fixed overheads setup costs of creating the pass manager each time."

The benefits should be noticeable with a Vulkan demo application dropping its shader compilation time from 1.7 seconds to 1.0 seconds. Or the start-up time on uncached shaders from Rise of the Tomb Raider dropped from 12 minutes, 24 seconds down to 11 minutes, 35 seconds.

This patch also adds a nothreadllvm RADV debug option for disabling the behavior. Details in this commit now within Mesa 18.2-dev.
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