gallium: pipe: add get_decoder_fence vfunc

Add a get_decoder_fence vfunc that can be used to query the status
of the previous decode job denoted by 'fence' given 'timeout'.

A pointer to a fence pointer can be  passed to the codecs before the
end_frame vfunc and the codec should then be responsible for allocating
a fence on command stream submission.

Signed-off-by: Daniel Almeida <daniel.almeida@collabora.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20133>
This commit is contained in:
Daniel Almeida
2022-12-04 09:12:09 -03:00
committed by Marge Bot
parent 1b8bed38eb
commit 9d583719e9
2 changed files with 16 additions and 0 deletions

View File

@@ -119,6 +119,20 @@ struct pipe_video_codec
* get encoder feedback
*/
void (*get_feedback)(struct pipe_video_codec *codec, void *feedback, unsigned *size);
/**
* Get decoder fence.
*
* Can be used to query the status of the previous decode job denoted by
* 'fence' given 'timeout'.
*
* A pointer to a fence pointer can be passed to the codecs before the
* end_frame vfunc and the codec should then be responsible for allocating a
* fence on command stream submission.
*/
int (*get_decoder_fence)(struct pipe_video_codec *codec,
struct pipe_fence_handle *fence,
uint64_t timeout);
};
/**

View File

@@ -166,6 +166,8 @@ struct pipe_picture_desc
uint32_t key_size;
enum pipe_format input_format;
enum pipe_format output_format;
/* A fence used on PIPE_VIDEO_ENTRYPOINT_DECODE to signal job completion */
struct pipe_fence_handle **fence;
};
struct pipe_quant_matrix