Bug 1613364 [Wayland] Update SurfaceDescriptorDMABuf to export YUV surfaces, r=sotaro
authorMartin Stransky <stransky@redhat.com>
Wed, 12 Feb 2020 22:34:20 +0000
changeset 513632 640f0fc81c1f3f485b9b4748946611038eeb1e52
parent 513631 33b7e55476b41a5c39b59f8f23980deca50ffa37
child 513633 6ea8ea6e6216fedd3d8f0896a72587df936c1003
push id37118
push userrmaries@mozilla.com
push dateThu, 13 Feb 2020 03:57:45 +0000
treeherdermozilla-central@2f6870dd1b99 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerssotaro
bugs1613364
milestone75.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1613364 [Wayland] Update SurfaceDescriptorDMABuf to export YUV surfaces, r=sotaro We need to export more planes in SurfaceDescriptorDMABuf and also YUV color space. Differential Revision: https://phabricator.services.mozilla.com/D62000
gfx/layers/ipc/LayersSurfaces.ipdlh
--- a/gfx/layers/ipc/LayersSurfaces.ipdlh
+++ b/gfx/layers/ipc/LayersSurfaces.ipdlh
@@ -55,25 +55,26 @@ struct SurfaceDescriptorDXGIYCbCr {
 struct SurfaceDescriptorMacIOSurface {
   uint32_t surfaceId;
   double scaleFactor;
   bool isOpaque;
   YUVColorSpace yUVColorSpace;
 };
 
 struct SurfaceDescriptorDMABuf {
-  uint32_t width;
-  uint32_t height;
-  uint32_t format;
+  uint32_t bufferType;
   uint64_t modifier;
   uint32_t flags;
-  uint32_t numFds;
   FileDescriptor[] fds;
+  uint32_t[] width;
+  uint32_t[] height;
+  uint32_t[] format;
   uint32_t[] strides;
   uint32_t[] offsets;
+  YUVColorSpace yUVColorSpace;
 };
 
 struct SurfaceTextureDescriptor {
   uint64_t handle;
   IntSize size;
   SurfaceFormat format;
   bool continuous;
   bool ignoreTransform;
@@ -93,16 +94,17 @@ struct SurfaceDescriptorSharedGLTexture 
   IntSize size;
   bool hasAlpha;
 };
 
 
 union RemoteDecoderVideoSubDescriptor {
   SurfaceDescriptorD3D10;
   SurfaceDescriptorDXGIYCbCr;
+  SurfaceDescriptorDMABuf;
   null_t;
 };
 
 struct SurfaceDescriptorRemoteDecoder {
   uint64_t handle;
   RemoteDecoderVideoSubDescriptor subdesc;
   MaybeVideoBridgeSource source;
 };