Saner fallback path when RasterBuffer failed to create a GPU resource

Currently, in particular on Mac, CreateGpuMemoryBuffer can fail, in which case
we can't rasterize the corresponding tile in ZeroCopyRasterBufferImpl, and we
just create a GL texture without binding anything to it, which ends up showing
black when we display. This is somewhat problematic to emulate with SharedImage
where it is not a valid state (SharedImages must have well-defined dimensions
and format).
Instead, we handle the failure by not creating a texture at all, keeping a zero
mailbox, and falling back to OOM rendering mode (checkerboarding) for the
corresponding tile.

Bug: 882513, 554541
Change-Id: Iffd29a660f655c2dee8179fd90baa2a15ae42bf7
Reviewed-on: https://chromium-review.googlesource.com/c/1303393
Commit-Queue: Antoine Labour <piman@chromium.org>
Reviewed-by: Eric Karl <ericrk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603661}
8 files changed