Source/ThirdParty/ANGLE/ChangeLog

 12020-09-21 Kimmo Kinnunen <kkinnunen@apple.com>
 2
 3 REGRESSION: Textures Fail to Render in WebGL from HLS Stream [iOS 14]
 4 https://bugs.webkit.org/show_bug.cgi?id=215908
 5 <rdar://problem/68000962>
 6
 7 Reviewed by NOBODY (OOPS!).
 8
 9 Disable ANGLE workers until EAGL implementation is more complete.
 10 Current implementation fails to compile any shader, since the
 11 compilation happens in the worker thread and worker EAGL context
 12 which does not use the same sharegroup as the main context.
 13 The shader objects are created in the main context but the shader
 14 source setting and compilation happens in the worker context.
 15 EAGL needs a flush between state changes, and adding that
 16 correctly is a bigger change to be done later.
 17
 18 Use sized formats when calling [EAGLContext -texImageIOSurface]
 19 from EGL_ANGLE_iosurface_client_buffer code. The texImageIOSurface
 20 accepts parameters with glTexImage2D logic. On ES3, some of the
 21 internal formats must be sized formats. The EAGLContext instantiated
 22 by ANGLE is ES3, even if the ANGLE context would be ES2.
 23
 24 No tests added since this should be caught with the many video
 25 related tests. It's unclear why this is not the case -- at
 26 least on real hw. This is to be investigated later, too.
 27
 28 * src/libANGLE/renderer/driver_utils.h:
 29 (rx::IsIOS):
 30 * src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm:
 31 * src/libANGLE/renderer/gl/renderergl_utils.cpp:
 32 (rx::nativegl_gl::InitializeFeatures):
 33
1342020-09-11 James Darpinian <jdarpinian@chromium.org>
235
336 [WebGL2] Support EXT_color_buffer_half_float on WebGL 2.0 contexts

Source/ThirdParty/ANGLE/src/libANGLE/renderer/driver_utils.h

@@inline bool IsFuchsia()
164164#endif
165165}
166166
 167inline bool IsIOS()
 168{
 169#if defined(ANGLE_PLATFORM_IOS)
 170 return true;
 171#else
 172 return false;
 173#endif
 174}
167175struct OSVersion
168176{
169177 OSVersion();

Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm

@@struct IOSurfaceFormatInfo
4848// clang-format off
4949
5050static const IOSurfaceFormatInfo kIOSurfaceFormats[] = {
51  {GL_RED, GL_UNSIGNED_BYTE, 1, GL_RED, GL_RED, GL_UNSIGNED_BYTE },
52  {GL_R16UI, GL_UNSIGNED_SHORT, 2, GL_RED, GL_RED, GL_UNSIGNED_SHORT},
53  {GL_RG, GL_UNSIGNED_BYTE, 2, GL_RG, GL_RG, GL_UNSIGNED_BYTE },
 51 {GL_RED, GL_UNSIGNED_BYTE, 1, GL_R8, GL_RED, GL_UNSIGNED_BYTE },
 52 {GL_R16UI, GL_UNSIGNED_SHORT, 2, GL_R16UI, GL_RED_INTEGER, GL_UNSIGNED_SHORT},
 53 {GL_RG, GL_UNSIGNED_BYTE, 2, GL_RG8, GL_RG, GL_UNSIGNED_BYTE },
5454 {GL_RGB, GL_UNSIGNED_BYTE, 4, GL_RGBA, GL_BGRA, GL_UNSIGNED_BYTE },
5555 {GL_BGRA_EXT, GL_UNSIGNED_BYTE, 4, GL_RGBA, GL_BGRA, GL_UNSIGNED_BYTE },
5656 {GL_RGBA, GL_HALF_FLOAT, 8, GL_RGBA, GL_RGBA, GL_HALF_FLOAT },

Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cpp

@@void InitializeFeatures(const FunctionsGL *functions, angle::FeaturesGL *feature
16611661 // anglebug.com/3031
16621662 // crbug.com/922936
16631663 ANGLE_FEATURE_CONDITION(features, disableWorkerContexts,
1664  (IsWindows() && (isIntel || isAMD)) || (IsLinux() && isNvidia));
 1664 (IsWindows() && (isIntel || isAMD)) || (IsLinux() && isNvidia) || IsIOS());
16651665
16661666 bool limitMaxTextureSize = isIntel && IsLinux() && GetLinuxOSVersion() < OSVersion(5, 0, 0);
16671667 ANGLE_FEATURE_CONDITION(features, limitMaxTextureSizeTo4096,