mesa/src/broadcom
Iago Toral Quiroga 1f7d2b4994 v3dv: implement external semaphore/fence extensions
This provides most of the implementation, but there are some
things we cannot enable until we improve of kernel submit
interface, namely:

We don't expose capacity to export SYNC_FD, although we do
have the implementation in place. This requires that we
improve our kernel interface and event wait implementation
first so we can cover the corner case where the application
submits a command buffer that includes a VkCmdWaitForEvents
and tries to export a SYNC_FD from its signal semaphores or
fence before it the event is signaled and the command buffer
is sent to the kernel for execution in full.

Likewise, we can't currently import semaphores. This is because
our current kernel submit interface can only take one syncobj.
We have been working around this so far by waiting on the last
syncobj produced from the device whenever we had to wait on any
semaphores (which is obviously suboptimal already), but this
won't work as soon as we allow importing external semaphores,
as those could (and would typically) be produced from a
different device.

Once we address the kernel bits, we should come back and enable
SYNC_FD exports as well as semaphore imports.

Relevant CTS tests:
dEQP-VK.api.external.fence.*
dEQP-VK.api.external.semaphore.*
dEQP-VK.synchronization.cross_instance.*

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11105>
2021-06-02 09:58:47 +00:00
..
ci v3dv: don't keep an open file descriptor for imported fences/semaphores 2021-06-02 09:58:47 +00:00
cle intel: Rename gen_10 to ver_10 2021-04-20 20:06:34 +00:00
clif v3dv: clif format dumping support 2020-10-13 21:21:26 +00:00
common v3dv: define V3D_MAX_BUFFER_RANGE 2021-05-26 07:18:19 +00:00
compiler broadcom/compiler: use proper type field for atomic operations 2021-06-01 12:22:22 +02:00
drm-shim vc4: add drm-shim 2021-01-28 16:14:06 +00:00
qpu broadcom/qpu: rename from VC5 to V3D 2021-04-29 11:22:12 +02:00
simulator v3d/simulator: use BFC/RFC registers to wait for bin/render to complete 2021-06-01 12:22:28 +02:00
vulkan v3dv: implement external semaphore/fence extensions 2021-06-02 09:58:47 +00:00
.editorconfig broadcom: add editorconfig 2017-07-25 14:44:52 -07:00
Android.cle.mk android: broadcom/cle: export the broadcom top level path headers 2018-09-15 09:14:46 +02:00
Android.genxml.mk android: broadcom/genxml: fix collision with intel/genxml header-gen macro 2018-09-15 09:14:33 +02:00
Android.mk broadcom/genxml: Introduce a V3D packet/struct decoder. 2017-07-25 14:44:52 -07:00
Makefile.sources v3d: Add a lowering pass for line smoothing 2020-07-06 21:59:16 +00:00
meson.build broadcom/common: move CSD supergroup sizing to a common helper 2021-05-04 15:53:23 +00:00