mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
radeonsi: add support for importing PIPE_FD_TYPE_SYNCOBJ semaphores
Hook up importing semaphores of type PIPE_FD_TYPE_SYNCOBJ Signed-off-by: Andres Rodriguez <andresx7@gmail.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
cc9762d74d
commit
5b07b06d6b
1 changed files with 20 additions and 6 deletions
|
|
@ -305,18 +305,32 @@ static void si_create_fence_fd(struct pipe_context *ctx,
|
|||
struct radeon_winsys *ws = sscreen->ws;
|
||||
struct si_multi_fence *rfence;
|
||||
|
||||
assert(type == PIPE_FD_TYPE_NATIVE_SYNC);
|
||||
|
||||
*pfence = NULL;
|
||||
|
||||
if (!sscreen->info.has_fence_to_handle)
|
||||
return;
|
||||
|
||||
rfence = si_create_multi_fence();
|
||||
if (!rfence)
|
||||
return;
|
||||
|
||||
rfence->gfx = ws->fence_import_sync_file(ws, fd);
|
||||
switch (type) {
|
||||
case PIPE_FD_TYPE_NATIVE_SYNC:
|
||||
if (!sscreen->info.has_fence_to_handle)
|
||||
goto finish;
|
||||
|
||||
rfence->gfx = ws->fence_import_sync_file(ws, fd);
|
||||
break;
|
||||
|
||||
case PIPE_FD_TYPE_SYNCOBJ:
|
||||
if (!sscreen->info.has_syncobj)
|
||||
goto finish;
|
||||
|
||||
rfence->gfx = ws->fence_import_syncobj(ws, fd);
|
||||
break;
|
||||
|
||||
default:
|
||||
unreachable("bad fence fd type when importing");
|
||||
}
|
||||
|
||||
finish:
|
||||
if (!rfence->gfx) {
|
||||
FREE(rfence);
|
||||
return;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue