Renewed Interest In Background, Parallel Shader Compilation For Mesa
Prolific Mesa contributor Ilia Mirkin has taken initial steps towards working on parallel shader compiles in Mesa.
Mirkin is hoping to achieve GLSL shader compilation to happen in the background and jives with the ARB_parallel_shader_compile process. He has begun implementing some code to take advantage of all available CPU cores and is working on making the compile and linking functions asynchronous.
This parallel shader compile work is still in its early stages with Ilia currently seeking feedback via this forum thread.
It was quickly pointed out that last year there was some work on Mesa for a multi-threaded GLSL compiler, but that work didn't end up being merged. One of the key issues then was ensuring the code was thread-safe and that there are likely many lingering issues out there since Mesa wasn't designed to be multi-threaded in the first place. Ilia had mentioned that likely he will pursue a design where only threading will be enabled when drivers set the ARB_parallel_shader_compile support and that initially will be off by default for users until all issues are worked out. This is going to be a big project, but given Mirkin's success with Mesa, will hopefully prove to be a worthwhile and beneficial endeavor.
Mirkin is hoping to achieve GLSL shader compilation to happen in the background and jives with the ARB_parallel_shader_compile process. He has begun implementing some code to take advantage of all available CPU cores and is working on making the compile and linking functions asynchronous.
This parallel shader compile work is still in its early stages with Ilia currently seeking feedback via this forum thread.
It was quickly pointed out that last year there was some work on Mesa for a multi-threaded GLSL compiler, but that work didn't end up being merged. One of the key issues then was ensuring the code was thread-safe and that there are likely many lingering issues out there since Mesa wasn't designed to be multi-threaded in the first place. Ilia had mentioned that likely he will pursue a design where only threading will be enabled when drivers set the ARB_parallel_shader_compile support and that initially will be off by default for users until all issues are worked out. This is going to be a big project, but given Mirkin's success with Mesa, will hopefully prove to be a worthwhile and beneficial endeavor.
12 Comments