Skip to content

Fix race condition at GetPipelineExecutablePropertiesKHR

And more specifically at pipeline_collect_executable_data

We found this when using Fossilize with fossil files that include several shaders, and we ask for the pipeline stats (that is what the shader-db fossilize replay wrapper does). So for example:

$ fossilize-replay --enable-pipeline-stats out.tmp my_big_fossil_file.foz --num-threads 8

This happens because pipeline_collect_executable_data maps a bo that includes the qpu, disasm it, and unmaps it at the end. On a multithread environment, a crash can happens if one thread unmaps it, while other is still using it to disasm.

Merge request reports