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?
We are seeing an issue in Kabylake Chrome systems where during a 6hrs google hangout test, we see a system reboot due to GPU hang after some hours.
I see the below error in console ramops during the gpu hang.
[drm] GPU HANG: ecode 9:2:0xa8dfbffd, in chrome
According to Chris Wilson in https://bugs.freedesktop.org/show_bug.cgi?id=103920,
"The first thing to do is check libva/intel-driver. The error state indicates a userspace error."
A segfault is also observed during the issue.
Watchdog: segfault at 0 ip 00005c2fd3761a97 sp 00007ae71f305a00 error 6 in chrome[5c2fcf86b000+8601000]
Kindly suggest how to interpret the error GPU HANG: ecode 9:2:0xa8dfbffd.