Hash :
c0aa6108
Author :
Date :
2021-09-17T16:22:55
Add new GL_RGBX8_ANGLEX format
Currently, IOSurface objects using {GL_RGB, GL_UNSIGNED_BYTE}
are natively represented with GL_BGRX8_ANGLEX, which we use
instead of other RGBA formats in order to avoid issues when
a canvas uses 'no alpha':
https://source.chromium.org/chromium/chromium/src/+/main:third_party/swiftshader/third_party/angle/angle/src/libANGLE/renderer/vulkan/mac/IOSurfaceSurfaceVkMac.mm;l=44
This unfortunately causes some other issues because of the
implicit RGB <-> BGR conversion like type mismatches in
subresource updates. This CL adds a new type, RGBX8, which
will be usable by IOSurface objects and which behaves exactly
like the BGRX8 format with the B and R channels flipped.
Bug: chromium:1209250
Change-Id: I345eadc8addd05a0964cae30d89c20005479e37b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3188910
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
{
"src/libANGLE/renderer/angle_format.py":
"74d6c9842128293118ccf128aeae896a",
"src/libANGLE/renderer/angle_format_map.json":
"947527a1b07dd14da6179eb98d7883c0",
"src/libANGLE/renderer/metal/gen_mtl_format_table.py":
"4b9bc5e4c59175d30de4a42fd110c3b5",
"src/libANGLE/renderer/metal/mtl_format_map.json":
"9ece5385adebf0ea86e9d3f3d96e7645",
"src/libANGLE/renderer/metal/mtl_format_table_autogen.mm":
"ff5572b5db8d8e6206697faf7354aef2"
}