According to libva document
Surfaces are bound to a context if passing them as an argument when
creating the context.
Seeing intel-vaapi-driver code, the surfaces are just stored in
A surface processed by
vaBeginPicture()-vaRenderPicture()-vaEndPicture() are specified in
It looks like a surface can be processed using a context by being
specified in vaBeginPicture(), even if it is not bound to the context.
Here, my questions are below.
What is the advantage of binding?
In what circumstances do we need to associate the context with surfaces?
In which scenarios passing surfaces to vaCreateContext is required,
and in which it is not?
I am wondering how to query which level a libva based driver supports
on video encoding.
For example, when I want to know a driver supports H264 level 4.2, how
do I know whether or not the driver does.
Ideally, there should be the vaQuery... API for it. However, as far as
look VA-API document and gstreamer-vaapi, seems like there is no API
Is there any API for it? If no, I think we should add an API for the purpose.
This CL in the i965 media driver complements the Gen8+ engine-reset
feature patch series aka Timeout Detection and Recovery (TDR)
that Michel Thierry submitted here: https://patchwork.freedesktop.org/series/21868/,
specifically the Watchdog timer feature of the original that is still not in
There are several pieces that are required in order to
get (TDR) Watchdog timer in upstream:
(1) having a proper IGT set of tests that can exercise the feature
(2) but more imporantly, having a qualified user space client such
as a media driver that can trigger the watchdog timer after submitting
GPU work that could reset the media engine after encountering a
hung engine for example.
This CL is to cover requirement (2) above.
More over, these changes have been tested under both Ubuntu OS and Chrome
The changes under Chrome OS can be found below:
Carlos Santa (1):
Watchdog i965 media driver changes
src/i965_drv_video.c | 14 +++++++++++++
src/i965_drv_video.h | 3 +++
src/intel_batchbuffer.c | 17 ++++++++++++----
src/intel_batchbuffer.h | 10 ++++++---
src/intel_driver.c | 45 +++++++++++++++++++++++++++++++++++++++++
src/intel_driver.h | 24 ++++++++++++++++++++++
6 files changed, 106 insertions(+), 7 deletions(-)