Use RGB10A2 surface with BT2020 PQ color space for HDR

Use RGB10A2 with BT2020 PQ color space (aka HDR10) for Chrome's
backbuffer.  This fixes the performance issues with fullscreen HDR that
are seen with RGBA FP16 backbuffer possibly because of a DWM or driver
bug when direct flip is engaged.

This requires the following changes and fixes:
1) Use BT2020 PQ color space by default and fallback to SCRGB linear if
   root render pass needs alpha blending with titlebar (taking into
   account SDR white level correctly).
2) Use R10G10B10A2_UNORM format for swap chain in direct composition
   root surface if color space is BT2020 PQ and R16G16B16A16_FLOAT with
   alpha blending if color space is SCRGB linear.
3) Add support for R10G10B10A2_UNORM textures in
   eglCreatePbufferFromClientBuffer in ANGLE.
   CL: https://chromium-review.googlesource.com/c/angle/angle/+/1565420
4) Add plumbing for HDR10 color space. Ensure that the blending and
   raster color space is correctly set similar to SCRGB linear.
   CL: https://chromium-review.googlesource.com/c/chromium/src/+/1573172
5) Fix incorrect has_transparent_background flag on color conversion
   render pass added by SurfaceAggregator.
6) Fix a null dereference bug in blink due to not checking that the
   output color space has a valid SkColorSpace.

Bug: 937108
Change-Id: I2427674651800bb026b7c9327ca1d2fb43d5175a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1565631
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Robert Liao <robliao@chromium.org>
Reviewed-by: Ahmed Fakhry <afakhry@chromium.org>
Reviewed-by: ccameron <ccameron@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#653896}
20 files changed