mesa/src/broadcom
Iago Toral Quiroga bdf2a470d3 v3dv: fix job suspend with command buffer simultaneous use flag
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>
2024-04-03 13:35:54 +02:00
..
ci ci/deqp: backport fix for dEQP-VK.pipeline.*.render_to_image.*.huge.* 2024-04-02 19:49:09 +00:00
cle util: move gen_zipped_file into generic util and rename to gen_zipped_xml_file 2024-03-21 20:48:41 +00:00
clif broadcom: only support v42 and v71 2023-11-02 11:59:08 +01:00
common v3d/v3dv: move V3D_CSD definitions to a separate file 2023-12-14 16:43:13 +00:00
compiler broadcom/compiler: fix workaround for GFXH-1602 2024-04-01 09:22:39 +00:00
drm-shim broadcom/compiler: remove include of gallium headers from meson.build 2023-12-12 10:03:11 +00:00
qpu broadcom/compiler: add new SFU instructions in V3D 7.x 2024-01-31 10:06:06 +00:00
simulator v3d,v3d: use new simulator 2024-03-11 10:23:48 +00:00
vulkan v3dv: fix job suspend with command buffer simultaneous use flag 2024-04-03 13:35:54 +02:00
.editorconfig
meson.build broadcom/compiler: remove include of gallium headers from meson.build 2023-12-12 10:03:11 +00:00