Descriptiongpu: Add YCbCr 420v extension.
On Mac we currently support textures backed by GpuMemoryBuffer
with UYVY_422 format when GL_APPLE_ycbcr_422 is available.
This allows both to use the backing IOSurface as CALayers and to
bind the IOSurface to a GL texture for sampling.
420v IOSurfaces, while being more efficient when used as a CALayer,
don't support being sampled from GL.
This CL adds a CHROMIUM extension, that when available, allows users
of CHROMIUM command buffer to use a 420v IOSurface from GL as an RGB
texture.
This is achieved converting the IOSurface from YUV to RGB when it's
bound to a texture on the service side.
This will allow to use 420v for video playback using VideoLayerImpl
(promoted to CALayer) and from SkCanvasVideoRenderer when needed (WebGL,
Canvas & co.)
BUG=524582
Committed: https://crrev.com/f0b514cca449dee0c89b3c3477ee567e9bb110f1
Cr-Commit-Position: refs/heads/master@{#363148}
Patch Set 1 #Patch Set 2 : Add gl_helper. Restore GL state. #Patch Set 3 : Actually add gl_image_io_surface_unittest.cc. #Patch Set 4 : Clean-ups. #
Total comments: 22
Patch Set 5 : Address first round of comments. #Patch Set 6 : Rebase on master. Add gl/gfx namespace qualifiers. #
Total comments: 32
Patch Set 7 : Set origin to crrev.com/1408753003. #
Total comments: 42
Patch Set 8 : Address reveman's comments. #
Total comments: 5
Patch Set 9 : DeleteTextures and BGRA/RGBA tests. #Patch Set 10 : Move yuv_textures to image GL state. #
Total comments: 10
Patch Set 11 : Remove trailing whitespaces. #
Total comments: 13
Patch Set 12 : Address piman's comments. #
Total comments: 6
Patch Set 13 : Rebase on master. #Patch Set 14 : Restore old array buffer binding. #Patch Set 15 : ScopedCapability. Add TODO. #
Total comments: 2
Patch Set 16 : Actually enable/disable capabilities. Typo. #
Messages
Total messages: 43 (13 generated)
|