mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-05 11:10:10 +01:00
With the simultaneous use flag we can reuse the same command buffer multiple times. That means, for example, that we can have an instance of a job running in the GPU while we are submitting another one for execution to a queue. This scenario is problematic with dynamic rendering and job suspension because suspended jobs need to be patched with the resume address at queue submit time, and thus, if we have another instance of the same job currently executing in the GPU we could stomp its resume address, which could be different. To fix this, at queue submission time, when we detect a suspending job in a command buffer with the simultaneous use flag, we clone the job and create its own copy of the BCL so we can patch the resume address into it safely without conflicting with any other instance of the job that may be running. We need to flag these clones as having their own BCL since we would have to free it when the job is destroyed, unlike other clones that don't own any resources of their own. Also, because this job is created at queue submit time, it won't be in the execution list of the command buffer, so it won't be automatically destroyed with it, so we need to add it to the command buffer as a private object. Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28521> |
||
|---|---|---|
| .. | ||
| ci | ||
| cle | ||
| clif | ||
| common | ||
| compiler | ||
| drm-shim | ||
| qpu | ||
| simulator | ||
| vulkan | ||
| .editorconfig | ||
| meson.build | ||