some performance numbers from chrome://tracing, with a 1280x720 VP9 video 10bpc
CopyVideoFrameToGpuMemoryBuffers (XR30) - 0.641 ms avg wall duration
CopyVideoFrameToGpuMemoryBuffers Convert16To8 (I420) - 0.425 ms avg wall duration
VideoResourceUpdater::CreateForSoftwarePlanes (Half Float) - 1.306 ms Avg CPU duration
These 3 rows are mutually exclusive, i.e. they should be compared against each other.
This is on my z840 with a release Chromium build (crrev.com/c/881665 patched in)
Summary: support XB30 in Linux and use it for high bit depth video playback (was: support XR30 in Linux and use it for high bit depth video playback)
Changing subject to XB30 since that is the format being supported.
In a register XB30 is X2_B10_G10_R10 where R10 is in the low 10 bits.
https://github.com/torvalds/linux/blob/master/include/uapi/drm/drm_fourcc.h#L99
libyuv r1699 supports AB30 which is the alpha version of XB30
Theres also libyuv::AR30ToAB30() if you need to switch back and forth.
Comment 1 by bugdroid1@chromium.org
, Jan 27 2018