Closed Bug 1215089 Opened 4 years ago Closed 2 years ago

Firefox displays VP9 profiles 1, 2 and 3 incorrectly

Categories

(Core :: Audio/Video: Playback, defect, P3)

defect

Tracking

()

RESOLVED FIXED
mozilla58
Tracking Status
firefox58 --- fixed

People

(Reporter: kagami, Assigned: jya)

References

(Depends on 2 open bugs, Blocks 2 open bugs)

Details

Attachments

(17 files, 1 obsolete file)

61.96 KB, video/webm
Details
69.43 KB, video/webm
Details
81.53 KB, video/webm
Details
88.93 KB, video/webm
Details
123.29 KB, video/webm
Details
173.67 KB, video/webm
Details
59 bytes, text/x-review-board-request
ajones
: review+
Details
59 bytes, text/x-review-board-request
mattwoodrow
: review+
Details
59 bytes, text/x-review-board-request
ajones
: review+
Details
59 bytes, text/x-review-board-request
mattwoodrow
: review+
Details
59 bytes, text/x-review-board-request
mattwoodrow
: review+
Details
59 bytes, text/x-review-board-request
mattwoodrow
: review+
Details
59 bytes, text/x-review-board-request
mattwoodrow
: review+
Details
59 bytes, text/x-review-board-request
mattwoodrow
: review+
Details
59 bytes, text/x-review-board-request
mattwoodrow
: review+
Details
59 bytes, text/x-review-board-request
jgilbert
: review+
Details
59 bytes, text/x-review-board-request
mattwoodrow
: review+
Details
User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:41.0) Gecko/20100101 Firefox/41.0
Build ID: 20151003161951

Steps to reproduce:

1. Generate VP9 WebMs with various profiles and chroma subsamplings.

Image source: https://commons.wikimedia.org/wiki/File:Wikipe-tan_frontview.png
Command: for f in yuv420p yuv422p yuv444p yuv420p10 yuv444p10 yuv444p12; do ffmpeg -r 1 -i wikipe.png -t 1 -c:v libvpx-vp9 -lossless 1 -pix_fmt "+$f" -y "$f.webm"; done


Actual results:

Only profile 0 (4:2:0 8bit) is displayed correctly.


Expected results:

All profiles should be correctly displayed. Note that >8bit webms cannot be displayed with libvpx decoder at all because you need to enable special flag on compilation (--enable-vp9-highbitdepth) for that. With ffmpeg decoders enabled (media.fragmented-mp4.ffmpeg.enabled/media.ffmpeg.enabled=true) they are displayed, but still incorrectly.
Attached video yuv420p.webm
Attached video yuv422p.webm
Attached video yuv444p.webm
Attached video yuv420p10.webm
Attached video yuv444p10.webm
Attached video yuv444p12.webm
(In reply to kagami from comment #0)
> User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:41.0) Gecko/20100101
> Firefox/41.0
> Build ID: 20151003161951

Are you sure this is what you were using to reproduce your tests?

> All profiles should be correctly displayed. Note that >8bit webms cannot be
> displayed with libvpx decoder at all because you need to enable special flag
> on compilation (--enable-vp9-highbitdepth) for that. With ffmpeg decoders
> enabled (media.fragmented-mp4.ffmpeg.enabled/media.ffmpeg.enabled=true) they
> are displayed, but still incorrectly.

because you need to run Nightly (44) to be able to use ffmpeg to decode VP8/VP9

In any case, this is likely a dup of 1190939 and 640073
>Are you sure this is what you were using to reproduce your tests?

You're right, I was using Mozilla/5.0 (X11; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0.

>a dup of 1190939 and 640073

Haven't found them with brief search, sorry. But these issues only about profile 1, mine also includes test cases for profile 2 and 3.
To make things clear. VP8 supports only yuv420p (and yuva420p, but that doesn't count). VP9 supports:

Profile 0: 8-bit 4:2:0 only.
Profile 1: 8-bit 4:4:4, 4:2:2, and 4:4:0.
Profile 2: 10-bit and 12-bit color only, with 4:2:0 sampling.
Profile 3: 10-bit and 12-bit color only, with 4:2:2/4:4:4/4:4:0

Reference: https://chromium.googlesource.com/webm/libvpx/+/5d5cc0d082910dcd15a46e3fc4297a7972f8d45c/vp9/common/vp9_enums.h#30

Firefox currently supports only 4:2:0 8-bit and there is issue for 4:4:4 8-bit from profile 1 but not for other subsamplings from that profile or for other profiles. It would be better if Firefox can either support all of them or at least not trying to show them wrongly.
Profile 1 WFM on Mac using nightly.
Depends on: 1190939
Anthony, I think that's because with HW acceleration enabled, Firefox passes Y'CbCr data to some other library which does Y'CbCr→RGB conversion correctly even for non-4:2:0 subsamplings? Like it was mentioned here: https://bugzilla.mozilla.org/show_bug.cgi?id=1190939#c1
Priority: -- → P2
Assignee: nobody → jyavenard
can add support on the decoder side, but we'll still need to support those in the compositor
Depends on: 1239510
Mass change P2 -> P3
Priority: P2 → P3
Depends on: 1175876
Duplicate of this bug: 1175876
Attached patch Bug 1215089: P4. more-WIP. (obsolete) — Splinter Review
This gets it working properly on OSX+ffmpeg.

Windows is partially done, but I haven't updated the shaders yet, so the colours will be all wrong (at least!).

The biggest thing missing is that we need code to convert to RGB in software, for the various paths that use that.
Attachment #8883178 - Attachment is obsolete: true
Depends on: 1305510
See Also: → 1379948
Comment on attachment 8882339 [details]
Bug 1215089 - P2: Add YUV422 support to ffmpeg decoder.

https://reviewboard.mozilla.org/r/153428/#review175674

Dropping review requests for now as these patches aren't complete, and I don't have time to do the D3D support pieces right now.
Attachment #8882339 - Flags: review?(matt.woodrow)
Attachment #8882340 - Flags: review?(matt.woodrow)
Attachment #8882341 - Flags: review?(matt.woodrow)
Attachment #8882342 - Flags: review?(matt.woodrow)
Attachment #8885878 - Flags: review?(matt.woodrow)
Matt, could you please review the partial implementation here? I'd like to use it to address a performance regression in the AV1 decoder which is always returning deep images now. Downconverting the images is a bit profile difference.

The AV1 demo is nightly-only and just making it work on macOS would be sufficient.
Blocks: 1394061
Attachment #8882340 - Flags: review?(matt.woodrow)
Attachment #8882342 - Flags: review?(matt.woodrow)
Attachment #8885878 - Flags: review?(matt.woodrow)
Comment on attachment 8882342 [details]
Bug 1215089 - P5: Convert 10/12 bits YUV image to 8 bits prior conversion to RGB.

https://reviewboard.mozilla.org/r/153434/#review185222

::: gfx/layers/opengl/OGLShaderProgram.cpp:432
(Diff revision 4)
>      fs << "  vec4 color;" << endl;
>      if (aConfig.mFeatures & ENABLE_TEXTURE_YCBCR ||
>          aConfig.mFeatures & ENABLE_TEXTURE_NV12) {
>        if (aConfig.mFeatures & ENABLE_TEXTURE_YCBCR) {
>          if (aConfig.mFeatures & ENABLE_TEXTURE_RECT) {
> +          if (aConfig.mMultiplier == 1.0f) {

This special case is probably unnecessary - a shader compiler is likely to remove this, and it's not very expensive anyway. (it could also be a uniform....)

::: gfx/layers/opengl/OGLShaderProgram.cpp:437
(Diff revision 4)
> +          if (aConfig.mMultiplier == 1.0f) {
> -          fs << "  COLOR_PRECISION float y = texture2D(uYTexture, coord * uTexCoordMultiplier).r;" << endl;
> +            fs << "  COLOR_PRECISION float y = texture2D(uYTexture, coord * uTexCoordMultiplier).r;" << endl;
> -          fs << "  COLOR_PRECISION float cb = texture2D(uCbTexture, coord * uCbCrTexCoordMultiplier).r;" << endl;
> +            fs << "  COLOR_PRECISION float cb = texture2D(uCbTexture, coord * uCbCrTexCoordMultiplier).r;" << endl;
> -          fs << "  COLOR_PRECISION float cr = texture2D(uCrTexture, coord * uCbCrTexCoordMultiplier).r;" << endl;
> +            fs << "  COLOR_PRECISION float cr = texture2D(uCrTexture, coord * uCbCrTexCoordMultiplier).r;" << endl;
> -        } else {
> +          } else {
> +            fs << "  COLOR_PRECISION float y = texture2D(uYTexture, coord * uTexCoordMultiplier).r * " << aConfig.mMultiplier << ".0;" << endl;

It would make more sense to convert to a vec3 first and do the multiply once.

::: gfx/layers/opengl/OGLShaderProgram.cpp:479
(Diff revision 4)
>        }
>  
>        fs << "  y = y - 0.06275;" << endl;
>        fs << "  cb = cb - 0.50196;" << endl;
>        fs << "  cr = cr - 0.50196;" << endl;
>        fs << "  vec3 yuv = vec3(y, cb, cr);" << endl;

i.e. do this sooner
Comment on attachment 8882339 [details]
Bug 1215089 - P2: Add YUV422 support to ffmpeg decoder.

https://reviewboard.mozilla.org/r/153428/#review189478

This patch adds 422 support. The patch description need to be updated reflect this.
Attachment #8882339 - Flags: review+
Attachment #8882340 - Flags: review?(matt.woodrow) → review?(dglastonbury)
Comment on attachment 8882341 [details]
Bug 1215089 - P4: Add support to 10 and 12 bits YUV images to FFmpeg decoder.

https://reviewboard.mozilla.org/r/153432/#review189480
Attachment #8882341 - Flags: review+
Jean-Yves - can you separate the D3D11 stuff out of patch 4 so we can review and land the GL bits?
Flags: needinfo?(jyavenard)
Comment on attachment 8882340 [details]
Bug 1215089 - P3: Add mBitDepth member to YCbCr data structure.

https://reviewboard.mozilla.org/r/153430/#review189926
Attachment #8882340 - Flags: review?(dglastonbury) → review+
Attachment #8882340 - Flags: review?(matt.woodrow)
(In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #35)
> Jean-Yves - can you separate the D3D11 stuff out of patch 4 so we can review
> and land the GL bits?

done.

now supports basic and ogl compositors.
Flags: needinfo?(jyavenard)
Comment on attachment 8882342 [details]
Bug 1215089 - P5: Convert 10/12 bits YUV image to 8 bits prior conversion to RGB.

https://reviewboard.mozilla.org/r/153434/#review190368

::: gfx/ycbcr/YCbCrUtils.cpp:110
(Diff revision 6)
> +  UniquePtr<uint8_t[]> yChannel;
> +  UniquePtr<uint8_t[]> cbChannel;
> +  UniquePtr<uint8_t[]> crChannel;
> +  layers::PlanarYCbCrData dstData;
> +
> +  if (aData.mDepth != 8) {

Can we assert that mDepth is in the 9 - 16 range?

Seems like the conversion will fall apart if it's anything else.

Wouldn't hurt to move all of the new code here into a helper, getting to be a long function.

::: gfx/ycbcr/YCbCrUtils.cpp:163
(Diff revision 6)
> +                          aData.mCbCrSize.width,
> +                          aData.mCbCrSize.height,
> +                          aData.mDepth);
> +  }
> +
> +  const layers::PlanarYCbCrData& srcData = aData.mDepth == 8 ? aData : dstData;

Move this above the if, and just use the existing if condition to change it to point to dstData.
Attachment #8882342 - Flags: review?(matt.woodrow) → review+
Comment on attachment 8885878 [details]
Bug 1215089 - P7: Add support for 10/12 bits YUV surface with basic compositor.

https://reviewboard.mozilla.org/r/156648/#review190370

::: gfx/layers/client/TextureClient.cpp:1768
(Diff revision 3)
>    MappedYCbCrTextureData srcData;
>    srcData.y.data = aData.mYChannel;
>    srcData.y.size = aData.mYSize;
>    srcData.y.stride = aData.mYStride;
>    srcData.y.skip = aData.mYSkip;
> +  srcData.y.bytesPerPixel = (aData.mDepth > 8) ? 2 : 1;

Assert that depth is within the range we expected.

::: gfx/layers/composite/TextureHost.h:441
(Diff revision 3)
>     */
>    virtual gfx::SurfaceFormat GetReadFormat() const { return GetFormat(); }
>  
>    virtual YUVColorSpace GetYUVColorSpace() const { return YUVColorSpace::UNKNOWN; }
>  
> +  virtual uint32_t GetDepth() const { return 8; }

Could use a comment here.

::: gfx/layers/ipc/SharedPlanarYCbCrImage.cpp:102
(Diff revision 3)
>  }
>  
>  // needs to be overriden because the parent class sets mBuffer which we
>  // do not want to happen.
>  uint8_t*
>  SharedPlanarYCbCrImage::AllocateAndGetNewBuffer(uint32_t aSize)

I can't see any callers for this..

Do you want to do precusor patch to just delete it (r=me), and then you don't need this need XXX comment.
Attachment #8885878 - Flags: review?(matt.woodrow) → review+
Comment on attachment 8913913 [details]
Bug 1215089 - P8: Only enable 10/12 bits videos with software compositor.

https://reviewboard.mozilla.org/r/185314/#review190372
Attachment #8913913 - Flags: review?(matt.woodrow) → review+
Comment on attachment 8913914 [details]
Bug 1215089 - P9: Add support for 10/12 bits YUV surface with OpenGL compositor.

https://reviewboard.mozilla.org/r/185316/#review190378

::: gfx/layers/opengl/CompositorOGL.cpp:841
(Diff revision 1)
>      config.SetYCbCr(true);
> +    EffectYCbCr* effectYCbCr =
> +      static_cast<EffectYCbCr*>(aEffect);
> +    uint32_t pixelBits = (8 * BytesPerPixel(SurfaceFormatForAlphaDepth(effectYCbCr->mDepth)));
> +    uint32_t paddingBits = pixelBits - effectYCbCr->mDepth;
> +    config.SetColorMultiplier(pow(2, paddingBits));

Comments for this would be good.
Attachment #8913914 - Flags: review?(matt.woodrow) → review+
Comment on attachment 8913915 [details]
Bug 1215089 - P10: Enable 10/12 bits video with OGL compositor.

https://reviewboard.mozilla.org/r/185318/#review190382
Attachment #8913915 - Flags: review?(matt.woodrow) → review+
Comment on attachment 8882342 [details]
Bug 1215089 - P5: Convert 10/12 bits YUV image to 8 bits prior conversion to RGB.

https://reviewboard.mozilla.org/r/153434/#review190368

> Move this above the if, and just use the existing if condition to change it to point to dstData.

but then I can no longer use a const reference.
I'm not sure i see the advantage in doing so.
Blocks: 1405530
Comment on attachment 8914993 [details]
Bug 1215089 - P6: Remove dead code.

https://reviewboard.mozilla.org/r/186254/#review191288
Attachment #8914993 - Flags: review?(matt.woodrow) → review+
Pushed by jyavenard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/7415ed519323
P1: Add YUV422 support to ffmpeg decoder. r=kentuckyfriedtakahe
https://hg.mozilla.org/integration/autoland/rev/3fc22c028eab
P2: Add mDepth member to YCbCr data structure. r=kamidphish
https://hg.mozilla.org/integration/autoland/rev/2fb3a9820103
P3: Add support to 10 and 12 bits YUV images to FFmpeg decoder. r=kentuckyfriedtakahe
https://hg.mozilla.org/integration/autoland/rev/9c974e493c3f
P4: Convert 10/12 bits YUV image to 8 bits prior conversion to RGB. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/2072826699d5
P5: Remove dead code. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/248c73a2c3b1
P6: Add support for 10/12 bits YUV surface with basic compositor. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/34396bd260e5
P7: Only enable 10/12 bits videos with software compositor. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/a2cfe189c828
P8: Add support for 10/12 bits YUV surface with OpenGL compositor. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/752c2be759b6
P9: Enable 10/12 bits video with OGL compositor. r=mattwoodrow
Backed out for failing mochitest gl's dom/canvas/test/webgl-mochitest/test_video_fastpath_theora.html | texImage2D should not generate any error here, at least on OS X and Linux:

https://hg.mozilla.org/integration/autoland/rev/1f226ca7340d59536c72c23dc8dda59c4aea290e
https://hg.mozilla.org/integration/autoland/rev/1e5d5bad2c7e0d7b20337a40753c2067a3d1886f
https://hg.mozilla.org/integration/autoland/rev/51e59665a172ddc0a5b47d5eb283790b3b1e7442
https://hg.mozilla.org/integration/autoland/rev/529b9534df94385455fd47da650a819c95011391
https://hg.mozilla.org/integration/autoland/rev/51e4be967a8fe12aa07871f9b53a7d98fbf1c65c
https://hg.mozilla.org/integration/autoland/rev/236fd812d1ce617cb7ed54321487be16a47558e6
https://hg.mozilla.org/integration/autoland/rev/ee5a9988ec6a213a9f2e561d53bd5c198f3bef79
https://hg.mozilla.org/integration/autoland/rev/c61dc45fa1fe0daa6f894585db673baf3c5b9979
https://hg.mozilla.org/integration/autoland/rev/d5827209821639a68494bd591aa6292a2f0a648f

Push which ran failing test on many plattforms: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=904d12098f33904e642bab4089c17700cd116e8c&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=usercancel&filter-resultStatus=runnable
Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=134906895&repo=autoland

[task 2017-10-04T14:15:09.418Z] 14:15:09     INFO - TEST-START | dom/canvas/test/webgl-mochitest/test_video_fastpath_theora.html
[task 2017-10-04T14:15:09.481Z] 14:15:09     INFO - GECKO(1353) | JavaScript warning: http://mochi.test:8888/tests/dom/canvas/test/webgl-mochitest/test_video_fastpath.js, line 13: Error: WebGL warning: Exceeded 16 live WebGL contexts for this principal, losing the least recently used one.
[task 2017-10-04T14:15:09.483Z] 14:15:09     INFO - GECKO(1353) | WebGL(0x7f9ad99e6800)::ForceLoseContext
[task 2017-10-04T14:15:09.541Z] 14:15:09     INFO - GECKO(1353) | [GFX1]: GuessDivisors failed:112,128, 64,64
[task 2017-10-04T14:15:09.543Z] 14:15:09     INFO - GECKO(1353) | JavaScript warning: http://mochi.test:8888/tests/dom/canvas/test/webgl-mochitest/test_video_fastpath.js, line 6: Error: WebGL warning: texImage2D: Failed to hit GPU-copy fast-path: likely bug: failed to blit (src type 0)
[task 2017-10-04T14:15:09.545Z] 14:15:09     INFO - TEST-INFO | started process screentopng
[task 2017-10-04T14:15:10.067Z] 14:15:10     INFO - TEST-INFO | screentopng: exit 0
[task 2017-10-04T14:15:10.067Z] 14:15:10     INFO - Buffered messages logged at 14:15:09
[task 2017-10-04T14:15:10.068Z] 14:15:10     INFO - TEST-PASS | dom/canvas/test/webgl-mochitest/test_video_fastpath_theora.html | MOZ_debug extenstion should exist 
[task 2017-10-04T14:15:10.068Z] 14:15:10     INFO - TEST-PASS | dom/canvas/test/webgl-mochitest/test_video_fastpath_theora.html | pixelStorei should not generate any error here. 
[task 2017-10-04T14:15:10.068Z] 14:15:10     INFO - Buffered messages finished
[task 2017-10-04T14:15:10.068Z] 14:15:10     INFO - TEST-UNEXPECTED-FAIL | dom/canvas/test/webgl-mochitest/test_video_fastpath_theora.html | texImage2D should not generate any error here. - got 1282, expected +0
[task 2017-10-04T14:15:10.069Z] 14:15:10     INFO -     SimpleTest.is@SimpleTest/SimpleTest.js:312:5
[task 2017-10-04T14:15:10.069Z] 14:15:10     INFO -     onPlayingTestVideo@dom/canvas/test/webgl-mochitest/test_video_fastpath.js:7:5
[task 2017-10-04T14:15:10.069Z] 14:15:10     INFO -     EventListener.handleEvent*startTest@dom/canvas/test/webgl-mochitest/test_video_fastpath.js:21:5
[task 2017-10-04T14:15:10.069Z] 14:15:10     INFO -     runTest@dom/canvas/test/webgl-mochitest/test_video_fastpath_theora.html:14:17

Please also have a look at these GuessDivisors assertions: https://treeherder.mozilla.org/logviewer.html#?job_id=134903665&repo=autoland
Flags: needinfo?(jyavenard)
Comment on attachment 8882340 [details]
Bug 1215089 - P3: Add mBitDepth member to YCbCr data structure.

https://reviewboard.mozilla.org/r/153430/#review191622
Attachment #8882340 - Flags: review?(matt.woodrow) → review+
Comment on attachment 8882340 [details]
Bug 1215089 - P3: Add mBitDepth member to YCbCr data structure.

https://reviewboard.mozilla.org/r/153430/#review191646

::: dom/media/MediaData.h:469
(Diff revision 7)
>        uint32_t mSkip;
>      };
>  
>      Plane mPlanes[3];
>      YUVColorSpace mYUVColorSpace = YUVColorSpace::BT601;
> +    uint32_t mDepth = 8;

mBitDepth, please!
Comment on attachment 8915355 [details]
Bug 1215089 - P1: Properly use frame dimensions to determine planes divisors.

https://reviewboard.mozilla.org/r/186548/#review191648

::: gfx/gl/GLBlitHelper.cpp:657
(Diff revision 2)
>                gfx::IntSize* const out_divisors)
>  {
>      const gfx::IntSize divisors((ySize.width  == uvSize.width ) ? 1 : 2,
>                                  (ySize.height == uvSize.height) ? 1 : 2);
>      if (uvSize.width  * divisors.width != ySize.width ||
> -        uvSize.height * divisors.height != ySize.height)
> +        uvSize.height * divisors.height != ySize.height) {

This is not the style of this code. Please revert.
Attachment #8915355 - Flags: review?(jgilbert) → review+
Comment on attachment 8915382 [details]
Bug 1215089 - P11. Correctly use stride parameter in place of width with webrender.

https://reviewboard.mozilla.org/r/186564/#review191658
Attachment #8915382 - Flags: review?(matt.woodrow) → review+
Pushed by jyavenard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/0e317864f85c
P1: Properly use frame dimensions to determine planes divisors. r=jgilbert
https://hg.mozilla.org/integration/autoland/rev/9dc83d91c336
P2: Add YUV422 support to ffmpeg decoder. r=kentuckyfriedtakahe
https://hg.mozilla.org/integration/autoland/rev/bcfc414429b6
P3: Add mBitDepth member to YCbCr data structure. r=kamidphish,mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/6a76cec689e2
P4: Add support to 10 and 12 bits YUV images to FFmpeg decoder. r=kentuckyfriedtakahe
https://hg.mozilla.org/integration/autoland/rev/daf9357023dc
P5: Convert 10/12 bits YUV image to 8 bits prior conversion to RGB. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/84bcd57f2404
P6: Remove dead code. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/b55e89b5df04
P7: Add support for 10/12 bits YUV surface with basic compositor. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/073ff4644573
P8: Only enable 10/12 bits videos with software compositor. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/6c08410e3a75
P9: Add support for 10/12 bits YUV surface with OpenGL compositor. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/7b28ae5ebc77
P10: Enable 10/12 bits video with OGL compositor. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/edb7fa9379c7
P11. Correctly use stride parameter in place of width with webrender. r=mattwoodrow
Flags: needinfo?(jyavenard)
You need to log in before you can comment on or make changes to this bug.