-
Notifications
You must be signed in to change notification settings - Fork 78
Enable zero buffer copy method for wayland VDA. #260
Conversation
ptal, thanks! |
Package libva and its driver supports vaLockBuffer & vaUnlockBuffer on Tizen IVI, while the two APIs are not included in Chromium libva ATM. intel/ozone-wayland#260 requires the APIs to get vaimage buffer handle so as to create EGL image. This CL add these API in Chromium libva.
Package libva and its driver supports vaLockBuffer & vaUnlockBuffer on Tizen IVI, while the two APIs are not included in Chromium libva ATM. intel/ozone-wayland#260 requires the APIs to get vaimage buffer handle so as to create EGL image. This CL add these API in Chromium libva.
cc @ds-hwang |
crosswalk-project/chromium-crosswalk#183 mentions this patch requires custom changes to Chromium's libva, so it won't work on oz-wl by default with a vanilla Chromium? |
It's cool. However, afaik IVI with oz-wl will use its own vaapi_wrapper.cc impl inside oz-wl project. @tiagovignatti , am I right? |
amazing work @shaochangbin. I'll be reviewing this today still. Thanks. |
hi back. I've tested the changes here but something is wrong, possibly with my setup. Xwalk crashes here with an output like this:
It might be that the problem is not even in Chromium side. I've tried to isolate it and checked that even libva putsurface doesn't seem to be outputting correctly. It keeps dumping a repeatedly line like this:
I tried it using libva 1.3.1 and on top of that I applied myself the following commits (that I've stolen from review.tizen.org):
|
thanks for trying this:) Looks the libva version is quite new, whereas on Tizen IVI its version is 1.2.1. |
where are the sources for these packages? as I said previously, I'm not using Tizen to test it. |
The source code could be found in libva & libva-intel-driver packages from http://download.tizen.org/releases/daily/tizen/ivi/ivi/latest/repos/atom/source/, |
if (!va_wrapper_->PutSurfaceIntoImage(surface, &va_image_)) { | ||
DVLOG(1) << "Failed to put va surface to image"; | ||
if (egl_image_ != EGL_NO_IMAGE_KHR) | ||
DestroyEGLImage(egl_display_, egl_image_); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why destroy egl_image_, if it's already null? What's the case that it falls in this conditional?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
EGL_NO_IMAGE_KHR equals NULL here. There is GL mapping of eglCreateImageKHR and eglDestroyImageKHR, so release an EGL image first before create a new one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fine. thanks.
just for the record: I could get the environment up and running after all. All looks great at first -- very nice! Anyhow, I had a offline talk with @shaochangbin and we agreed to talk with libva maintainers first whether we should be using the 'staging' branch of the project, and the Acquire/Release buffer approach instead. |
@shaochangbin @tiagovignatti Can one of you please update the Readme with how to set up the environment for taking advantage of HWA decoding. (i.e. Vappi setup and Chromium compiling and run time flags.) |
@shaochangbin I realize these changes depend on libva packages in Tizen. Is their a way to determine if the needed support is available or not during run time and if not available use existing code path ? |
@kalyankondapally thanks a lot for your suggestion, I will add the libva dependency check in the following change. |
45f6768
to
e87d301
Compare
@kalyankondapally @tiagovignatti , I've updated patch to add vaLockBuffer check. please take a look, thank you. |
@shaochangbin Looks better. Can you please rebase the patch to latest master TOT ? |
e87d301
to
f4fb54f
Compare
Patch is rebased, ptal, thanks. |
hi, Kalyan & Tiago, any review comments? |
No comments from my side really. I defer now this to @kalyankondapally |
@shaochangbin so changes in third_party/libva/va/va.h are needed to get this compiled ? |
@kalyankondapally yes, i think so. To get this compiled, we need to include the declarations in va.h, like crosswalk-project/chromium-crosswalk#183. The long term goal would be make those declarations landed in Chromium upstream, after the libva and its driver side change are finished. |
@shaochangbin Can you please include those changes as a patch here. See patches/ folder in oz-wl |
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived.
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived.
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived.
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived.
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived.
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived.
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived.
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived.
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived.
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived.
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived.
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
Reason that add this change: 1080p video playback on Tizen is quite unsmooth on VTC-1010, with only 15 render fps and ~70% CPU usage. Ozone-wl landed a workaround solution that enables a zero buffer copy method that uses libva vaLockBuffer APIs which gains much better performance than previous method. intel/ozone-wayland#260 In order to make the change also benifit Crosswalk/Tizen, we should add the vaLockBuffer API declarations inside Chromium Crosswalk to compile the code successfully. The long term goal of our work would be landing those API declarations inside Chromium upstream, after the API implementations are landed in libva and libva-driver upstream. Therefore, this CL is a temporary solution. It would be reverted after the long term goal is achived. [This is ozone-wayland's 0006-Introduce-vaLockBuffer-APIs-in-libva.patch]
1080p video playback is quite unsmooth on VTC-1010, with only 15 render fps
and ~70% CPU usage. Root cause is current code spend too much time to
put output vasurface to GL texture for more than 25ms for each
frame, due to buffer copy between driver and user space. As a result,
GPU swap buffer operations are not executed timely and then blocks
render side composting.
This CL enables a zero buffer copy solution that will put vasurface to
CL texture inside GPU process. It creates an EGL image through
EGL_DRM_BUFFER_MESA target, then binds the EGL image to GL texture.
Local test result shows it gets 31 render fps and ~25% CPU usage for 1080p playback.
It also benefits other resolution video playback.
BUG = XWALK-2069