Skip to content

Commit f93d2b8

Browse files
committed
[Decode] Add media common function to set and get fences
Signed-off-by: Xu, Zhengguo <[email protected]>
1 parent 13ec454 commit f93d2b8

File tree

3 files changed

+30
-2
lines changed

3 files changed

+30
-2
lines changed

media_driver/linux/common/ddi/media_libva.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4087,7 +4087,7 @@ VAStatus DdiMedia_EndPicture2 (
40874087
VAStatus vaStatus = VA_STATUS_SUCCESS;
40884088

40894089
DdiMediaUtil_LockMutex(&mediaCtx->SyncFenceMutex);
4090-
//todo: vaStatus = DdiMedia_SetSyncFences(ctx, context, fences, count);
4090+
vaStatus = DdiMedia_SetSyncFences(ctx, context, fences, count);
40914091
//todo: add fences[1...count] into bufmgr->fences[...]
40924092

40934093
switch (ctxType)
@@ -4106,7 +4106,7 @@ VAStatus DdiMedia_EndPicture2 (
41064106
vaStatus = VA_STATUS_ERROR_INVALID_CONTEXT;
41074107
}
41084108

4109-
//todo: vaStatus = DdiMedia_GetSyncFenceOut(ctx, context, &fences[0]);
4109+
vaStatus = DdiMedia_GetSyncFenceOut(ctx, context, &fences[0]);
41104110
//todo: get fence out from bufmgr->fence[0]
41114111
DdiMediaUtil_UnLockMutex(&mediaCtx->SyncFenceMutex);
41124112

media_driver/linux/common/ddi/media_libva_common.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,3 +475,21 @@ void MovePriorityBufferIdToEnd (VABufferID *buffers, int32_t priorityIndexInBuf,
475475
}
476476
}
477477

478+
VAStatus DdiMedia_SetSyncFences(VADriverContextP ctx, VAContextID context, int32_t *fences, int32_t count)
479+
{
480+
VAStatus vaStatus = VA_STATUS_SUCCESS;
481+
//todo: get bufmgr
482+
//todo: struct mos_exec_fences exec_fences = {.fences = fences, .count = count};
483+
//todo: int ret = mos_bufmgr_set_fences(bufmgr, &exec_fences);
484+
485+
return vaStatus;
486+
}
487+
488+
VAStatus DdiMedia_GetSyncFenceOut(VADriverContextP ctx, VAContextID context, int32_t *fence_out)
489+
{
490+
VAStatus vaStatus = VA_STATUS_SUCCESS;
491+
//todo: get bufmgr
492+
//todo: int ret = mos_bufmgr_get_fence(bufmgr, fence_out);
493+
494+
return vaStatus;
495+
}

media_driver/linux/common/ddi/media_libva_common.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,4 +273,14 @@ int32_t DdiMedia_GetGpuPriority (VADriverContextP ctx, VABufferID *buffers, int3
273273
//!
274274
void MovePriorityBufferIdToEnd (VABufferID *buffers, int32_t priorityIndexInBuf, int32_t numBuffers);
275275

276+
//!
277+
//! \brief Add fence fds into bufmgr for execution sync
278+
//!
279+
VAStatus DdiMedia_SetSyncFences(VADriverContextP ctx, VAContextID context, int32_t *fences, int32_t count);
280+
281+
//!
282+
//! \brief Get fence out from current execution submission
283+
//!
284+
VAStatus DdiMedia_GetSyncFenceOut(VADriverContextP ctx, VAContextID context, int32_t *fence_out);
285+
276286
#endif

0 commit comments

Comments
 (0)