mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-15 05:10:18 +01:00
If the pipeline was created with the creation flags VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR or VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR it is really likely that methods from VK_KHR_pipeline_executable_properties that would require having access to the qpu insts around will be called. Instead of getting those back from the BO where we upload them, we just keep them around. This could require more host memory, but would allow us to avoid needing to handle map/unmap the BO when needed (so needing the host memory in any case). This can be tricky if those methods are being called from different threads (so we can avoid adding a mutex there). In the same way, if the pipeline was not created with those flags, we skip collecting data that requires the QPU. Only GetPipelineExecutableProperties is allowed to be called without any of those flags, and doesn't require that info. This fixes a race condition crash at GetPipelineExecutableProperties when using fossilize-replay with some fossils with several shaders, and using several threads, as some thread would be unmapping the bo before other thread stopped to use it. Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18859> |
||
|---|---|---|
| .. | ||
| ci | ||
| cle | ||
| clif | ||
| common | ||
| compiler | ||
| drm-shim | ||
| qpu | ||
| simulator | ||
| vulkan | ||
| .editorconfig | ||
| meson.build | ||