mirror of
https://gitee.com/openharmony/third_party_mesa3d
synced 2024-11-27 09:31:03 +00:00
v3dv: Enable sync_fd importing/exporting on Android
vk_common_AcquireImageANDROID and vk_common_QueueSignalReleaseImageANDROID
expect sync_fd import/export to be enabled, otherwise they crashes
while trying to ImportSemaphoreFdKHR() / GetSemaphoreFdKHR().
Features was disabled on Linux to skip sync_fd CTS tests, which is using
late vkEvent signalling which causes deadlock / dEQP timeout on v3dv.
One of the options was implementing blocking v3dv-specific
AcquireImageANDROID / QueueSignalReleaseImageANDROID to avoid importing
/ exporting sync_fd, but since these features are also required by CDD
for Vulkan 1.1 and above, it was decided to enable the extensions for
Android in exchange of a few failed dEQP tests (which should not cause
any issues in non-dEQP scenarious).
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6977
Fixes: 316728a55b
("v3dv: Switch to the common submit framework")
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18047>
(cherry picked from commit 5e32e8c962da237772c78df7654897acfd4787f7)
This commit is contained in:
parent
f73dd21d45
commit
7b2dc8e779
@ -256,7 +256,7 @@
|
||||
"description": "v3dv: Enable sync_fd importing/exporting on Android",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "316728a55bc8fe398be1ac2796a22f8c91fb886c"
|
||||
},
|
||||
|
@ -863,6 +863,7 @@ physical_device_init(struct v3dv_physical_device *device,
|
||||
*/
|
||||
device->drm_syncobj_type.features &= ~VK_SYNC_FEATURE_TIMELINE;
|
||||
|
||||
#ifndef ANDROID
|
||||
/* Sync file export is incompatible with the current model of execution
|
||||
* where some jobs may run on the CPU. There are CTS tests which do the
|
||||
* following:
|
||||
@ -888,6 +889,7 @@ physical_device_init(struct v3dv_physical_device *device,
|
||||
*/
|
||||
device->drm_syncobj_type.import_sync_file = NULL;
|
||||
device->drm_syncobj_type.export_sync_file = NULL;
|
||||
#endif
|
||||
|
||||
/* Multiwait is required for emulated timeline semaphores and is supported
|
||||
* by the v3d kernel interface.
|
||||
|
Loading…
Reference in New Issue
Block a user