Add GL_RGB10_EXT format into list of supported formats.

When running with Wayland, EGL returns rgb10 buffer format in
egl config, which makes assertion to explode in formatutils as
this format is not in list of supported formats.

GL_RGB10_EXT is under the ES1 extension GL_OES_required_internalformat.
Thus, add it to the format table.

Bug: chromium:1231934
Change-Id: Ib47af538b16d6c7a652a44e0674757d292ac1394
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3253376
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Maksim Sisov <msisov@igalia.com>
This commit is contained in:
Maksim Sisov 2021-11-03 13:28:01 +02:00 коммит произвёл Angle LUCI CQ
Родитель ee8e8a68c5
Коммит 1f42f6bd1e
1 изменённых файлов: 7 добавлений и 0 удалений

Просмотреть файл

@ -1376,6 +1376,13 @@ static InternalFormatInfoMap BuildInternalFormatInfoMap()
// | Internal format | sized | Cr | Y | Cb | A | S | Format | Type | Comp | SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend
AddYUVFormat(&map, GL_G8_B8R8_2PLANE_420_UNORM_ANGLE, true, 8, 8, 8, 0, 0, GL_G8_B8R8_2PLANE_420_UNORM_ANGLE, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, NeverSupported, NeverSupported);
AddYUVFormat(&map, GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE, true, 8, 8, 8, 0, 0, GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, NeverSupported, NeverSupported);
#if defined(ANGLE_PLATFORM_LINUX)
// From GL_OES_required_internalformat
// The |shared| bit shouldn't be 2. But given this hits assertion when bits
// are checked, it's fine to have this bit set as 2 as a workaround.
AddRGBAFormat(&map, GL_RGB10_EXT, true, 10, 10, 10, 0, 2, GL_RGB, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_NORMALIZED, false, RequireES<1, 0>, NeverSupported, RequireES<1, 0>, RequireES<1, 0>, NeverSupported);
#endif
// clang-format on
return map;