mesa/src/broadcom
Alejandro Piñeiro c1cb7506bb v3dv/pipeline: keep qpu_insts around if we expect them to be used later
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>
2022-10-17 10:06:23 +00:00
..
ci ci/broadcom: convert traces to new YAML format 2022-09-13 09:16:19 +00:00
cle broadcom: fix dependencies in static_library() calls 2022-09-14 09:38:28 +00:00
clif v3d/clif: add support for dumping GS shader state 2021-10-13 21:23:10 +00:00
common broadcom/compiler: increase V3D_MAX_BUFFE_RANGE to 2^30 bytes 2022-09-22 11:07:26 +00:00
compiler v3dv: expose VK_EXT_image_robustness 2022-09-27 09:08:29 +00:00
drm-shim Use proper types for meson objects 2022-04-18 13:03:08 +03:00
qpu broadcom/compiler: detect unifa write from signal 2022-09-20 06:56:28 +00:00
simulator broadcom/simulator: add a helper to get the amount of free heap memory 2022-09-09 11:14:03 +00:00
vulkan v3dv/pipeline: keep qpu_insts around if we expect them to be used later 2022-10-17 10:06:23 +00:00
.editorconfig broadcom: add editorconfig 2017-07-25 14:44:52 -07:00
meson.build meson: drop duplicate lib in lib name 2022-08-22 08:35:41 +00:00