Update ANGLE
authorachristensen@apple.com <achristensen@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 2 Dec 2019 18:25:21 +0000 (18:25 +0000)
committerachristensen@apple.com <achristensen@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 2 Dec 2019 18:25:21 +0000 (18:25 +0000)
https://bugs.webkit.org/show_bug.cgi?id=204595

Patch by James Darpinian <jdarpinian@chromium.org> on 2019-12-02
Reviewed by Alex Christensen.

* ANGLE.plist: Updated commit hash.
* ANGLE.xcodeproj/project.pbxproj: Changes mirroring gn changes upstream.
* Compiler.cmake: Changes mirroring gn changes upstream.
* GLESv2.cmake: Changes mirroring gn changes upstream.
* CMakeLists.txt: Changes mirroring gn changes upstream.

* Many other files added/removed/changed from upstream.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252989 268f45cc-cd09-0410-ab3c-d52691b4dbfc

536 files changed:
Source/ThirdParty/ANGLE/.gitignore
Source/ThirdParty/ANGLE/.yapfignore [new file with mode: 0644]
Source/ThirdParty/ANGLE/ANGLE.plist
Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj
Source/ThirdParty/ANGLE/AUTHORS
Source/ThirdParty/ANGLE/BUILD.gn
Source/ThirdParty/ANGLE/CMakeLists.txt
Source/ThirdParty/ANGLE/CONTRIBUTORS
Source/ThirdParty/ANGLE/ChangeLog
Source/ThirdParty/ANGLE/Compiler.cmake
Source/ThirdParty/ANGLE/DEPS
Source/ThirdParty/ANGLE/GLESv2.cmake
Source/ThirdParty/ANGLE/PRESUBMIT.py
Source/ThirdParty/ANGLE/README.md
Source/ThirdParty/ANGLE/android/angle_apk.gni
Source/ThirdParty/ANGLE/build_overrides/angle.gni
Source/ThirdParty/ANGLE/build_overrides/build.gni
Source/ThirdParty/ANGLE/build_overrides/swiftshader.gni [new file with mode: 0644]
Source/ThirdParty/ANGLE/build_overrides/vulkan_headers.gni [new file with mode: 0644]
Source/ThirdParty/ANGLE/build_overrides/vulkan_loader.gni [new file with mode: 0644]
Source/ThirdParty/ANGLE/build_overrides/vulkan_tools.gni [new file with mode: 0644]
Source/ThirdParty/ANGLE/build_overrides/vulkan_validation_layers.gni [new file with mode: 0644]
Source/ThirdParty/ANGLE/codereview.settings
Source/ThirdParty/ANGLE/doc/CaptureAndReplay.md [new file with mode: 0644]
Source/ThirdParty/ANGLE/doc/dEQP.md
Source/ThirdParty/ANGLE/dotfile_settings.gni
Source/ThirdParty/ANGLE/extensions/ANGLE_base_vertex_base_instance.txt
Source/ThirdParty/ANGLE/extensions/ANGLE_get_image.txt [new file with mode: 0644]
Source/ThirdParty/ANGLE/extensions/ANGLE_request_extension.txt
Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_feature_control.txt
Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_ggp_stream_descriptor.txt [new file with mode: 0644]
Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_swap_with_frame_token.txt [new file with mode: 0644]
Source/ThirdParty/ANGLE/gni/angle.gni
Source/ThirdParty/ANGLE/include/EGL/eglext_angle.h
Source/ThirdParty/ANGLE/include/EGL/eglplatform.h
Source/ThirdParty/ANGLE/include/GLES/glext_explicit_context_autogen.inc
Source/ThirdParty/ANGLE/include/GLES2/gl2ext_angle.h
Source/ThirdParty/ANGLE/include/GLES2/gl2ext_explicit_context_autogen.inc
Source/ThirdParty/ANGLE/include/GLES3/gl32ext_explicit_context_autogen.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/include/GLSLANG/ShaderLang.h
Source/ThirdParty/ANGLE/include/angle_gl.h
Source/ThirdParty/ANGLE/include/platform/Feature.h
Source/ThirdParty/ANGLE/include/platform/FeaturesGL.h
Source/ThirdParty/ANGLE/include/platform/FeaturesMtl.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/include/platform/FeaturesVk.h
Source/ThirdParty/ANGLE/include/platform/Platform.h
Source/ThirdParty/ANGLE/infra/ANGLEWrangling.md
Source/ThirdParty/ANGLE/samples/BUILD.gn
Source/ThirdParty/ANGLE/samples/capture_replay/.gitignore [new file with mode: 0644]
Source/ThirdParty/ANGLE/samples/capture_replay/CaptureReplay.cpp [new file with mode: 0644]
Source/ThirdParty/ANGLE/samples/sample_util/SampleApplication.cpp
Source/ThirdParty/ANGLE/samples/sample_util/SampleApplication.h
Source/ThirdParty/ANGLE/samples/shader_translator/shader_translator.cpp
Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_format.json
Source/ThirdParty/ANGLE/scripts/code_generation_hashes/D3D11_format.json
Source/ThirdParty/ANGLE/scripts/code_generation_hashes/DXGI_format.json
Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_CTS_(dEQP)_build_files.json [new file with mode: 0644]
Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_WGL_loader.json
Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_entry_points.json
Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_format_map.json
Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GLenum_value_to_string_map.json
Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Metal_default_shaders.json [new file with mode: 0644]
Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Metal_format_table.json [new file with mode: 0644]
Source/ThirdParty/ANGLE/scripts/code_generation_hashes/OpenGL_dispatch_table.json
Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Static_builtins.json
Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_format.json
Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_internal_shader_programs.json
Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json
Source/ThirdParty/ANGLE/scripts/code_generation_hashes/proc_table.json
Source/ThirdParty/ANGLE/scripts/egl_angle_ext.xml
Source/ThirdParty/ANGLE/scripts/entry_point_packed_gl_enums.json
Source/ThirdParty/ANGLE/scripts/export_targets.py
Source/ThirdParty/ANGLE/scripts/gen_gl_enum_utils.py
Source/ThirdParty/ANGLE/scripts/gen_proc_table.py
Source/ThirdParty/ANGLE/scripts/gen_vk_gl_cts_build.py [new file with mode: 0644]
Source/ThirdParty/ANGLE/scripts/generate_entry_points.py
Source/ThirdParty/ANGLE/scripts/generate_stats.py
Source/ThirdParty/ANGLE/scripts/gl_angle_ext.xml
Source/ThirdParty/ANGLE/scripts/registry_xml.py
Source/ThirdParty/ANGLE/scripts/roll_deps.py [new file with mode: 0644]
Source/ThirdParty/ANGLE/scripts/run_code_generation.py
Source/ThirdParty/ANGLE/src/common/PackedEnums.cpp
Source/ThirdParty/ANGLE/src/common/PackedEnums.h
Source/ThirdParty/ANGLE/src/common/apple_platform_utils.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/common/debug.h
Source/ThirdParty/ANGLE/src/common/mathutil.h
Source/ThirdParty/ANGLE/src/common/platform.h
Source/ThirdParty/ANGLE/src/common/system_utils.cpp
Source/ThirdParty/ANGLE/src/common/system_utils.h
Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp
Source/ThirdParty/ANGLE/src/common/system_utils_unittest.cpp
Source/ThirdParty/ANGLE/src/common/system_utils_unittest_helper.cpp [deleted file]
Source/ThirdParty/ANGLE/src/common/system_utils_unittest_helper.h [deleted file]
Source/ThirdParty/ANGLE/src/common/system_utils_win.cpp
Source/ThirdParty/ANGLE/src/common/system_utils_winuwp.cpp
Source/ThirdParty/ANGLE/src/common/third_party/xxhash/xxhash.c
Source/ThirdParty/ANGLE/src/common/utilities.cpp
Source/ThirdParty/ANGLE/src/common/utilities.h
Source/ThirdParty/ANGLE/src/compiler.gni
Source/ThirdParty/ANGLE/src/compiler/preprocessor/DiagnosticsBase.cpp
Source/ThirdParty/ANGLE/src/compiler/preprocessor/DiagnosticsBase.h
Source/ThirdParty/ANGLE/src/compiler/preprocessor/DirectiveParser.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/BaseTypes.h
Source/ThirdParty/ANGLE/src/compiler/translator/CodeGen.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/CollectVariables.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/Compiler.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/ImmutableString_ESSL_autogen.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/ImmutableString_autogen.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/IntermNode.h
Source/ThirdParty/ANGLE/src/compiler/translator/OutputHLSL.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/OutputHLSL.h
Source/ThirdParty/ANGLE/src/compiler/translator/OutputVulkanGLSL.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/OutputVulkanGLSLForMetal.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/compiler/translator/OutputVulkanGLSLForMetal.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/compiler/translator/ParseContext.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/ParseContext_ESSL_autogen.h
Source/ThirdParty/ANGLE/src/compiler/translator/QualifierTypes.h
Source/ThirdParty/ANGLE/src/compiler/translator/ShaderLang.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/ShaderStorageBlockOutputHLSL.h
Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable.h
Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable_ESSL_autogen.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/SymbolTable_autogen.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorHLSL.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetal.cpp [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetal.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorVulkan.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorVulkan.h
Source/ThirdParty/ANGLE/src/compiler/translator/builtin_variables.json
Source/ThirdParty/ANGLE/src/compiler/translator/tree_ops/RemoveDynamicIndexing.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/tree_ops/RemoveDynamicIndexing.h
Source/ThirdParty/ANGLE/src/compiler/translator/tree_ops/RewriteCubeMapSamplersAs2DArray.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/tree_ops/RewriteRowMajorMatrices.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h
Source/ThirdParty/ANGLE/src/compiler/translator/tree_util/BuiltIn_complete_autogen.h
Source/ThirdParty/ANGLE/src/compiler/translator/tree_util/IntermNodePatternMatcher.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/tree_util/IntermNodePatternMatcher.h
Source/ThirdParty/ANGLE/src/compiler/translator/tree_util/IntermNode_util.h
Source/ThirdParty/ANGLE/src/compiler/translator/tree_util/IntermTraverse.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/tree_util/IntermTraverse.h
Source/ThirdParty/ANGLE/src/compiler/translator/tree_util/ReplaceShadowingVariables.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/util.cpp
Source/ThirdParty/ANGLE/src/compiler/translator/util.h
Source/ThirdParty/ANGLE/src/gpu_info_util/SystemInfo.cpp
Source/ThirdParty/ANGLE/src/gpu_info_util/SystemInfo.h
Source/ThirdParty/ANGLE/src/gpu_info_util/SystemInfo_macos.mm [moved from Source/ThirdParty/ANGLE/src/gpu_info_util/SystemInfo_macos.cpp with 93% similarity]
Source/ThirdParty/ANGLE/src/image_util/loadimage_etc.cpp
Source/ThirdParty/ANGLE/src/libANGLE/Caps.cpp
Source/ThirdParty/ANGLE/src/libANGLE/Caps.h
Source/ThirdParty/ANGLE/src/libANGLE/Compiler.cpp
Source/ThirdParty/ANGLE/src/libANGLE/Constants.h
Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp
Source/ThirdParty/ANGLE/src/libANGLE/Context.h
Source/ThirdParty/ANGLE/src/libANGLE/Context_gl.cpp
Source/ThirdParty/ANGLE/src/libANGLE/Context_gl_1_0_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/Context_gl_3_0_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/Context_gl_3_1_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/Context_gl_3_2_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/Context_gl_4_0_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/Context_gl_4_3_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/Context_gl_4_5_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/Context_gles_1_0.cpp
Source/ThirdParty/ANGLE/src/libANGLE/Context_gles_3_2_autogen.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/Context_gles_ext_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp
Source/ThirdParty/ANGLE/src/libANGLE/Display.h
Source/ThirdParty/ANGLE/src/libANGLE/ErrorStrings.h
Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture.cpp
Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture.h
Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.cpp
Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.h
Source/ThirdParty/ANGLE/src/libANGLE/Program.cpp
Source/ThirdParty/ANGLE/src/libANGLE/Program.h
Source/ThirdParty/ANGLE/src/libANGLE/ProgramLinkedResources.cpp
Source/ThirdParty/ANGLE/src/libANGLE/Renderbuffer.cpp
Source/ThirdParty/ANGLE/src/libANGLE/Renderbuffer.h
Source/ThirdParty/ANGLE/src/libANGLE/ResourceManager.h
Source/ThirdParty/ANGLE/src/libANGLE/Shader.cpp
Source/ThirdParty/ANGLE/src/libANGLE/State.cpp
Source/ThirdParty/ANGLE/src/libANGLE/State.h
Source/ThirdParty/ANGLE/src/libANGLE/Surface.cpp
Source/ThirdParty/ANGLE/src/libANGLE/Surface.h
Source/ThirdParty/ANGLE/src/libANGLE/Texture.cpp
Source/ThirdParty/ANGLE/src/libANGLE/Texture.h
Source/ThirdParty/ANGLE/src/libANGLE/TransformFeedback_unittest.cpp
Source/ThirdParty/ANGLE/src/libANGLE/angletypes.cpp
Source/ThirdParty/ANGLE/src/libANGLE/angletypes.h
Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_1_0_autogen.cpp
Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_1_0_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_1_0_params.cpp
Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_2_0_autogen.cpp
Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_2_0_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_2_0_params.cpp
Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_3_0_autogen.cpp
Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_3_0_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_3_0_params.cpp
Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_3_1_autogen.cpp
Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_3_1_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_3_1_params.cpp
Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_3_2_autogen.cpp [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_3_2_autogen.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_3_2_params.cpp [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_ext_autogen.cpp
Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_ext_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/capture_gles_ext_params.cpp
Source/ThirdParty/ANGLE/src/libANGLE/entry_points_enum_autogen.cpp
Source/ThirdParty/ANGLE/src/libANGLE/entry_points_enum_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/format_map_autogen.cpp
Source/ThirdParty/ANGLE/src/libANGLE/format_map_data.json
Source/ThirdParty/ANGLE/src/libANGLE/formatutils.cpp
Source/ThirdParty/ANGLE/src/libANGLE/formatutils.h
Source/ThirdParty/ANGLE/src/libANGLE/frame_capture_replay_autogen.cpp
Source/ThirdParty/ANGLE/src/libANGLE/gl_enum_utils.cpp [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/gl_enum_utils.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/gl_enum_utils_autogen.cpp
Source/ThirdParty/ANGLE/src/libANGLE/gl_enum_utils_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/queryutils.cpp
Source/ThirdParty/ANGLE/src/libANGLE/queryutils.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/ContextImpl.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/FormatID_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/Format_table_autogen.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/RenderbufferImpl.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/SurfaceImpl.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/SurfaceImpl.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/TextureImpl.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/TextureImpl.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/angle_format_data.json
Source/ThirdParty/ANGLE/src/libANGLE/renderer/angle_format_map.json
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/DynamicHLSL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ProgramD3D.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/RendererD3D.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ShaderD3D.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ShaderD3D.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/TextureD3D.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/TextureD3D.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/TextureStorage.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Clear11.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/PixelTransfer11.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Query11.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/ShaderExecutable11.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/texture_format_map.json
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/Blit9.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/Image9.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/SwapChain9.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/driver_utils.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/driver_utils.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/BlitGL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/DispatchTableGL_autogen.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/FramebufferGL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/FunctionsGL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/RendererGL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ShaderGL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/TextureGL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/DeviceCGL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/DisplayCGL.mm
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/RendererCGL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/egl/ContextEGL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/egl/ContextEGL.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/egl/android/NativeBufferImageSiblingAndroid.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/formatutilsgl.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/generate_gl_dispatch_table.py
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/glx/DisplayGLX.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/glx/FunctionsGLX.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/glx/WindowSurfaceGLX.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/glx/WindowSurfaceGLX.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/wgl/ContextWGL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/wgl/ContextWGL.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/wgl/DXGISwapChainWindowSurfaceWGL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/wgl/DisplayWGL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/wgl/WindowSurfaceWGL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/wgl/wgl_utils.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/glslang_wrapper_utils.cpp [moved from Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/GlslangWrapper.cpp with 85% similarity]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/glslang_wrapper_utils.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/BUILD.gn [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/BufferMtl.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/BufferMtl.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/CompilerMtl.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/CompilerMtl.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl_api.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/FrameBufferMtl.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/FrameBufferMtl.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ProgramMtl.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ProgramMtl.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/RenderBufferMtl.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/RenderBufferMtl.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/RenderTargetMtl.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/RenderTargetMtl.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ShaderMtl.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ShaderMtl.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/SurfaceMtl.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/SurfaceMtl.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/TextureMtl.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/TextureMtl.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/VertexArrayMtl.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/VertexArrayMtl.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/doc/PackedDepthStencilSupport.md [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/doc/TextureDataCompleteness.md [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/gen_mtl_format_table.py [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_buffer_pool.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_buffer_pool.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_command_buffer.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_command_buffer.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_common.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_common.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_format_map.json [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_format_table_autogen.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_format_utils.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_format_utils.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_glslang_utils.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_glslang_utils.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_render_utils.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_render_utils.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_resources.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_resources.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_state_cache.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_state_cache.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/shaders/blit.metal [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/shaders/clear.metal [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/shaders/common.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/shaders/compiled/mtl_default_shaders.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/shaders/gen_indices.metal [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/shaders/gen_mtl_internal_shaders.py [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/shaders/master_source.metal [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/renderer_utils.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/BUILD.gn [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/BufferVk.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandGraph.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DisplayVk.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DisplayVk.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/GlslangWrapperVk.cpp [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/GlslangWrapperVk.h [moved from Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/GlslangWrapper.h with 73% similarity]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ImageVk.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ProgramVk.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/README.md
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderTargetVk.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderTargetVk.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderbufferVk.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderbufferVk.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SamplerVk.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SamplerVk.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SurfaceVk.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SurfaceVk.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TextureVk.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TextureVk.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/UtilsVk.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/UtilsVk.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VertexArrayVk.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/android/DisplayVkAndroid.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/android/DisplayVkAndroid.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/android/WindowSurfaceVkAndroid.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/android/WindowSurfaceVkAndroid.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/FastOpenGLStateTransitions.md
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/FormatTablesAndEmulation.md
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/OpenGLLineSegmentRasterization.md
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/ShaderModuleCompilation.md
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/img/LineRasterHoles.jpg [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/img/LineRasterPixelExample.png
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/doc/img/VulkanShaderTranslation.svg
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/gen_vk_format_table.py
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ggp/DisplayVkGGP.cpp [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ggp/DisplayVkGGP.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ggp/WindowSurfaceVkGGP.cpp [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ggp/WindowSurfaceVkGGP.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000000.inc
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000001.inc
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000002.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000003.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000000.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000001.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndirectLineLoop.comp.00000000.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001A.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001B.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001C.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001D.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001E.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001F.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000020.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000021.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000022.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000023.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000024.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000025.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000026.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000027.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000028.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000029.inc [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndexIndirectLineLoop.comp [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndexIndirectLineLoop.comp.json [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndirectLineLoop.comp [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertIndirectLineLoop.comp.json [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp.json
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_caps_utils.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_ext_provoking_vertex.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_utils.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_utils.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.gni
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_mandatory_format_support_table_autogen.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/win32/DisplayVkWin32.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/win32/DisplayVkWin32.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/win32/WindowSurfaceVkWin32.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/win32/WindowSurfaceVkWin32.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/xcb/DisplayVkXcb.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/xcb/DisplayVkXcb.h
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/xcb/WindowSurfaceVkXcb.cpp
Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/xcb/WindowSurfaceVkXcb.h
Source/ThirdParty/ANGLE/src/libANGLE/validationEGL.cpp
Source/ThirdParty/ANGLE/src/libANGLE/validationEGL.h
Source/ThirdParty/ANGLE/src/libANGLE/validationES.cpp
Source/ThirdParty/ANGLE/src/libANGLE/validationES.h
Source/ThirdParty/ANGLE/src/libANGLE/validationES1.cpp
Source/ThirdParty/ANGLE/src/libANGLE/validationES1_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/validationES2.cpp
Source/ThirdParty/ANGLE/src/libANGLE/validationES2.h
Source/ThirdParty/ANGLE/src/libANGLE/validationES3.cpp
Source/ThirdParty/ANGLE/src/libANGLE/validationES31.cpp
Source/ThirdParty/ANGLE/src/libANGLE/validationES32.cpp [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/validationES32.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/validationES32_autogen.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/validationESEXT.cpp [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libANGLE/validationESEXT_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/validationGL1.cpp
Source/ThirdParty/ANGLE/src/libANGLE/validationGL1_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/validationGL3.cpp
Source/ThirdParty/ANGLE/src/libANGLE/validationGL31.cpp
Source/ThirdParty/ANGLE/src/libANGLE/validationGL31_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/validationGL32.cpp
Source/ThirdParty/ANGLE/src/libANGLE/validationGL32_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/validationGL33.cpp
Source/ThirdParty/ANGLE/src/libANGLE/validationGL33_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/validationGL3_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/validationGL4.cpp
Source/ThirdParty/ANGLE/src/libANGLE/validationGL43.cpp
Source/ThirdParty/ANGLE/src/libANGLE/validationGL43_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/validationGL45.cpp
Source/ThirdParty/ANGLE/src/libANGLE/validationGL45_autogen.h
Source/ThirdParty/ANGLE/src/libANGLE/validationGL4_autogen.h
Source/ThirdParty/ANGLE/src/libEGL/egl_loader_autogen.cpp
Source/ThirdParty/ANGLE/src/libEGL/egl_loader_autogen.h
Source/ThirdParty/ANGLE/src/libEGL/libEGL.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_1_0_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_1_1_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_1_2_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_1_3_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_1_4_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_1_5_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_2_0_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_2_1_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_3_0_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_3_1_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_3_2_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_3_3_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_4_0_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_4_1_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_4_2_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_4_3_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_4_4_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_4_5_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/entry_points_gl_4_6_autogen.cpp
Source/ThirdParty/ANGLE/src/libGL/libGL.rc
Source/ThirdParty/ANGLE/src/libGLESv1_CM/libGLESv1_CM.cpp
Source/ThirdParty/ANGLE/src/libGLESv2.gni
Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_egl_ext.cpp
Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_egl_ext.h
Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_1_0_autogen.cpp
Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_1_0_autogen.h
Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_2_0_autogen.cpp
Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_3_0_autogen.cpp
Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_3_1_autogen.cpp
Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_3_2_autogen.cpp [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_3_2_autogen.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_ext_autogen.cpp
Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_ext_autogen.h
Source/ThirdParty/ANGLE/src/libGLESv2/global_state.cpp
Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2.rc
Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_autogen.cpp
Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_autogen.def
Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_no_capture_autogen.def
Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_with_capture_autogen.def
Source/ThirdParty/ANGLE/src/libGLESv2/proc_table_autogen.cpp [deleted file]
Source/ThirdParty/ANGLE/src/libGLESv2/proc_table_egl_autogen.cpp
Source/ThirdParty/ANGLE/src/libGLESv2/proc_table_gles_autogen.cpp [deleted file]
Source/ThirdParty/ANGLE/src/libGLESv2/resource.h
Source/ThirdParty/ANGLE/src/tests/BUILD.gn
Source/ThirdParty/ANGLE/src/tests/angle_deqp_tests_main.cpp

index e1d5631..baba355 100644 (file)
 .cipd
 .gclient
 .gclient_entries
-/angle-internal
 /src/tests/third_party/gles_conformance_tests
 /testing
+/third_party/android_ndk
+/third_party/catapult
 /third_party/cherry
-/third_party/deqp/src
 /third_party/fuchsia-sdk
 /third_party/gles1_conform
 /third_party/glmark2/src
 /third_party/qemu-linux-x64
 /third_party/qemu-mac-x64
 /third_party/rapidjson/src
+/third_party/spirv-cross/src
 /third_party/spirv-headers/src
 /third_party/spirv-tools/src
 /third_party/SwiftShader
+/third_party/VK-GL-CTS/src
 /third_party/vulkan-headers/src
 /third_party/vulkan-loader/src
 /third_party/vulkan-tools/src
diff --git a/Source/ThirdParty/ANGLE/.yapfignore b/Source/ThirdParty/ANGLE/.yapfignore
new file mode 100644 (file)
index 0000000..4652b27
--- /dev/null
@@ -0,0 +1 @@
+scripts/export_targets.py
\ No newline at end of file
index ab15d22..639f724 100644 (file)
@@ -6,13 +6,13 @@
                <key>OpenSourceProject</key>
                <string>ANGLE</string>
                <key>OpenSourceVersion</key>
-               <string>c5e0ac757a112a24a0118d434e652fd7b558e6a8</string>
+               <string>e9b68f332a30f60ba722c511b7335a38da6fa009</string>
                <key>OpenSourceWebsiteURL</key>
                <string>http://code.google.com/p/angleproject/</string>
                <key>OpenSourceSCM</key>
-               <string>git clone https://chromium.googlesource.com/angle/angle &amp;&amp; cd angle &amp;&amp; git checkout c5e0ac757a112a24a0118d434e652fd7b558e6a8</string>
+               <string>git clone https://chromium.googlesource.com/angle/angle &amp;&amp; cd angle &amp;&amp; git checkout e9b68f332a30f60ba722c511b7335a38da6fa009</string>
                <key>OpenSourceImportDate</key>
-               <string>2019-10-09</string>
+               <string>2019-11-22</string>
                <key>OpenSourceLicense</key>
                <string>BSD</string>
                <key>OpenSourceLicenseFile</key>
index 7724a30..bfbaa19 100644 (file)
                315EBDF61FCE452D00AC7A89 /* VaryingPacking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 315EBDDF1FCE452C00AC7A89 /* VaryingPacking.cpp */; };
                315EBDF91FCE452D00AC7A89 /* ResourceMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 315EBDE21FCE452D00AC7A89 /* ResourceMap.h */; };
                315EBDFA1FCE452D00AC7A89 /* WorkerThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 315EBDE31FCE452D00AC7A89 /* WorkerThread.h */; };
-               315EBE051FCE456200AC7A89 /* entry_points_gles_3_0_autogen.h in Headers */ = {isa = PBXBuildFile; fileRef = 315EBDFD1FCE456100AC7A89 /* entry_points_gles_3_0_autogen.h */; settings = {ATTRIBUTES = (Public, ); }; };
-               315EBE061FCE456200AC7A89 /* entry_points_gles_2_0_autogen.h in Headers */ = {isa = PBXBuildFile; fileRef = 315EBDFE1FCE456100AC7A89 /* entry_points_gles_2_0_autogen.h */; settings = {ATTRIBUTES = (Public, ); }; };
-               315EBE071FCE456200AC7A89 /* entry_points_gles_3_1_autogen.h in Headers */ = {isa = PBXBuildFile; fileRef = 315EBDFF1FCE456100AC7A89 /* entry_points_gles_3_1_autogen.h */; };
-               315EBE081FCE456200AC7A89 /* entry_points_gles_3_0_autogen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 315EBE001FCE456100AC7A89 /* entry_points_gles_3_0_autogen.cpp */; };
-               315EBE091FCE456200AC7A89 /* entry_points_gles_3_1_autogen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 315EBE011FCE456100AC7A89 /* entry_points_gles_3_1_autogen.cpp */; };
-               315EBE0A1FCE456200AC7A89 /* entry_points_gles_2_0_autogen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 315EBE021FCE456200AC7A89 /* entry_points_gles_2_0_autogen.cpp */; };
                315EBE211FCE462A00AC7A89 /* safe_math.h in Headers */ = {isa = PBXBuildFile; fileRef = 315EBE1D1FCE462A00AC7A89 /* safe_math.h */; };
                315EBE221FCE462A00AC7A89 /* safe_conversions_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 315EBE1E1FCE462A00AC7A89 /* safe_conversions_impl.h */; };
                315EBE231FCE462A00AC7A89 /* safe_conversions.h in Headers */ = {isa = PBXBuildFile; fileRef = 315EBE1F1FCE462A00AC7A89 /* safe_conversions.h */; };
                5C55D70A22826CB300B5BA2C /* RunAtTheEndOfShader.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C55D6FA22826CB300B5BA2C /* RunAtTheEndOfShader.h */; };
                5C55D70D2282741400B5BA2C /* SymbolTable_autogen.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C55D70B2282741400B5BA2C /* SymbolTable_autogen.h */; };
                5C55D70E2282741400B5BA2C /* SymbolTable_autogen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C55D70C2282741400B5BA2C /* SymbolTable_autogen.cpp */; };
-               5C55D7202282747700B5BA2C /* system_utils_unittest_helper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C55D70F2282747500B5BA2C /* system_utils_unittest_helper.cpp */; };
                5C55D7212282747700B5BA2C /* aligned_memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C55D7102282747600B5BA2C /* aligned_memory.cpp */; };
                5C55D7222282747700B5BA2C /* PackedEGLEnums_autogen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C55D7112282747600B5BA2C /* PackedEGLEnums_autogen.cpp */; };
                5C55D7232282747700B5BA2C /* FastVector.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C55D7122282747600B5BA2C /* FastVector.h */; };
                5C55D7282282747700B5BA2C /* FixedVector.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C55D7172282747600B5BA2C /* FixedVector.h */; };
                5C55D7292282747700B5BA2C /* PackedGLEnums_autogen.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C55D7182282747600B5BA2C /* PackedGLEnums_autogen.h */; };
                5C55D72A2282747700B5BA2C /* PackedEnums.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C55D7192282747700B5BA2C /* PackedEnums.h */; };
-               5C55D72B2282747700B5BA2C /* system_utils_unittest_helper.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C55D71A2282747700B5BA2C /* system_utils_unittest_helper.h */; };
                5C55D72C2282747700B5BA2C /* hash_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C55D71B2282747700B5BA2C /* hash_utils.h */; };
                5C55D72D2282747700B5BA2C /* PackedEnums.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C55D71C2282747700B5BA2C /* PackedEnums.cpp */; };
                5C55D72E2282747700B5BA2C /* PackedGLEnums_autogen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C55D71D2282747700B5BA2C /* PackedGLEnums_autogen.cpp */; };
                5CCD59932284FC400018F2D8 /* imageformats.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CCD598B2284FC400018F2D8 /* imageformats.h */; };
                5CCD59942284FC400018F2D8 /* generatemip.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CCD598C2284FC400018F2D8 /* generatemip.h */; };
                5CCD59952284FC400018F2D8 /* loadimage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CCD598D2284FC400018F2D8 /* loadimage.cpp */; };
-               5CCD599A2284FC750018F2D8 /* SystemInfo_macos.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CCD59972284FC750018F2D8 /* SystemInfo_macos.cpp */; };
+               5CCD599A2284FC750018F2D8 /* SystemInfo_macos.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CCD59972284FC750018F2D8 /* SystemInfo_macos.mm */; };
                5CCD599B2284FC750018F2D8 /* SystemInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CCD59982284FC750018F2D8 /* SystemInfo.cpp */; };
                5CCD599C2284FC750018F2D8 /* SystemInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CCD59992284FC750018F2D8 /* SystemInfo.h */; };
-               5CCD599E2284FCDE0018F2D8 /* Context_gles_1_0.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CCD599D2284FCDD0018F2D8 /* Context_gles_1_0.cpp */; };
                5CCD81721DBFE999006066B8 /* Debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CCD815A1DBFE999006066B8 /* Debug.cpp */; };
                5CCD81731DBFE999006066B8 /* Debug.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CCD815B1DBFE999006066B8 /* Debug.h */; };
                5CCD81741DBFE999006066B8 /* HandleRangeAllocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CCD815C1DBFE999006066B8 /* HandleRangeAllocator.cpp */; };
                5CCD81B61DBFEA5C006066B8 /* QualifierTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CCD819F1DBFEA5C006066B8 /* QualifierTypes.h */; };
                6E31A0A3234EEED400C84784 /* DeviceCGL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E31A0A1234EEED400C84784 /* DeviceCGL.cpp */; };
                6E31A0A4234EEED400C84784 /* DeviceCGL.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E31A0A2234EEED400C84784 /* DeviceCGL.h */; };
-               6E344AB222BC35C3001DDB2C /* entry_points_gles_ext_autogen.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E344AAE22BC35C3001DDB2C /* entry_points_gles_ext_autogen.h */; settings = {ATTRIBUTES = (Public, ); }; };
-               6E344AB322BC35C3001DDB2C /* entry_points_gles_ext_autogen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E344AAF22BC35C3001DDB2C /* entry_points_gles_ext_autogen.cpp */; };
-               6E344AB622BC57C8001DDB2C /* entry_points_gles_1_0_autogen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E344AB422BC57C8001DDB2C /* entry_points_gles_1_0_autogen.cpp */; };
-               6E344AB722BC57C8001DDB2C /* entry_points_gles_1_0_autogen.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E344AB522BC57C8001DDB2C /* entry_points_gles_1_0_autogen.h */; };
                6EA0D69323515A5C00B8651F /* FrameCapture_mock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6EA0D69223515A5C00B8651F /* FrameCapture_mock.cpp */; };
                6ED70A0C22CD630E008688CE /* gl.h in Headers */ = {isa = PBXBuildFile; fileRef = 6ED70A0922CD630E008688CE /* gl.h */; settings = {ATTRIBUTES = (Public, ); }; };
                6ED70A0D22CD630E008688CE /* glext.h in Headers */ = {isa = PBXBuildFile; fileRef = 6ED70A0A22CD630E008688CE /* glext.h */; settings = {ATTRIBUTES = (Public, ); }; };
                A303079D23062565002DA972 /* driver_utils_mac.mm in Sources */ = {isa = PBXBuildFile; fileRef = A303079C23062564002DA972 /* driver_utils_mac.mm */; };
                A30307A0230625C6002DA972 /* android_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A303079E230625C6002DA972 /* android_util.cpp */; };
                A30307A1230625C6002DA972 /* android_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A303079F230625C6002DA972 /* android_util.h */; };
+               A30B57F7238CB09D0079FDDC /* validationESEXT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A30B57D9238CB09B0079FDDC /* validationESEXT.cpp */; };
+               A30B5803238CB09D0079FDDC /* validationES32.h in Headers */ = {isa = PBXBuildFile; fileRef = A30B57E5238CB09C0079FDDC /* validationES32.h */; };
+               A30B5804238CB09D0079FDDC /* validationES32_autogen.h in Headers */ = {isa = PBXBuildFile; fileRef = A30B57E6238CB09C0079FDDC /* validationES32_autogen.h */; };
+               A30B5806238CB09D0079FDDC /* validationES32.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A30B57E8238CB09C0079FDDC /* validationES32.cpp */; };
+               A30B5819238DF4BB0079FDDC /* entry_points_gles_2_0_autogen.h in Headers */ = {isa = PBXBuildFile; fileRef = A30B5815238DF4BA0079FDDC /* entry_points_gles_2_0_autogen.h */; };
+               A30B581A238DF4BB0079FDDC /* entry_points_gles_2_0_autogen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A30B5816238DF4BA0079FDDC /* entry_points_gles_2_0_autogen.cpp */; };
+               A30B581B238DF4BB0079FDDC /* entry_points_gles_3_0_autogen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A30B5817238DF4BA0079FDDC /* entry_points_gles_3_0_autogen.cpp */; };
+               A30B581C238DF4BB0079FDDC /* entry_points_gles_3_0_autogen.h in Headers */ = {isa = PBXBuildFile; fileRef = A30B5818238DF4BA0079FDDC /* entry_points_gles_3_0_autogen.h */; };
+               A30B5822238DF7500079FDDC /* entry_points_gles_1_0_autogen.h in Headers */ = {isa = PBXBuildFile; fileRef = A30B581D238DF74F0079FDDC /* entry_points_gles_1_0_autogen.h */; };
+               A30B5823238DF7500079FDDC /* entry_points_gles_1_0_autogen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A30B581E238DF74F0079FDDC /* entry_points_gles_1_0_autogen.cpp */; };
+               A30B5824238DF7500079FDDC /* entry_points_gles_ext_autogen.h in Headers */ = {isa = PBXBuildFile; fileRef = A30B581F238DF74F0079FDDC /* entry_points_gles_ext_autogen.h */; };
+               A30B5825238DF7500079FDDC /* entry_points_gles_ext_autogen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A30B5820238DF74F0079FDDC /* entry_points_gles_ext_autogen.cpp */; };
+               A30B5826238DF7500079FDDC /* entry_points_gles_3_1_autogen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A30B5821238DF74F0079FDDC /* entry_points_gles_3_1_autogen.cpp */; };
+               A30B5828238DF7870079FDDC /* Context_gles_1_0.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A30B5827238DF7870079FDDC /* Context_gles_1_0.cpp */; };
+               A30B582B238DF8260079FDDC /* entry_points_gles_3_2_autogen.h in Headers */ = {isa = PBXBuildFile; fileRef = A30B5829238DF8260079FDDC /* entry_points_gles_3_2_autogen.h */; };
+               A30B582C238DF8260079FDDC /* entry_points_gles_3_2_autogen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A30B582A238DF8260079FDDC /* entry_points_gles_3_2_autogen.cpp */; };
                A315988823299037000619B9 /* Overlay_autogen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A315988123299036000619B9 /* Overlay_autogen.cpp */; };
                A315988923299037000619B9 /* Overlay.h in Headers */ = {isa = PBXBuildFile; fileRef = A315988223299036000619B9 /* Overlay.h */; };
                A315988A23299037000619B9 /* Overlay_font_autogen.h in Headers */ = {isa = PBXBuildFile; fileRef = A315988323299037000619B9 /* Overlay_font_autogen.h */; };
                315EBDDF1FCE452C00AC7A89 /* VaryingPacking.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VaryingPacking.cpp; sourceTree = "<group>"; };
                315EBDE21FCE452D00AC7A89 /* ResourceMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceMap.h; sourceTree = "<group>"; };
                315EBDE31FCE452D00AC7A89 /* WorkerThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WorkerThread.h; sourceTree = "<group>"; };
-               315EBDFD1FCE456100AC7A89 /* entry_points_gles_3_0_autogen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = entry_points_gles_3_0_autogen.h; sourceTree = "<group>"; };
-               315EBDFE1FCE456100AC7A89 /* entry_points_gles_2_0_autogen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = entry_points_gles_2_0_autogen.h; sourceTree = "<group>"; };
-               315EBDFF1FCE456100AC7A89 /* entry_points_gles_3_1_autogen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = entry_points_gles_3_1_autogen.h; sourceTree = "<group>"; };
-               315EBE001FCE456100AC7A89 /* entry_points_gles_3_0_autogen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = entry_points_gles_3_0_autogen.cpp; sourceTree = "<group>"; };
-               315EBE011FCE456100AC7A89 /* entry_points_gles_3_1_autogen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = entry_points_gles_3_1_autogen.cpp; sourceTree = "<group>"; };
-               315EBE021FCE456200AC7A89 /* entry_points_gles_2_0_autogen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = entry_points_gles_2_0_autogen.cpp; sourceTree = "<group>"; };
                315EBE1D1FCE462A00AC7A89 /* safe_math.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = safe_math.h; sourceTree = "<group>"; };
                315EBE1E1FCE462A00AC7A89 /* safe_conversions_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = safe_conversions_impl.h; sourceTree = "<group>"; };
                315EBE1F1FCE462A00AC7A89 /* safe_conversions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = safe_conversions.h; sourceTree = "<group>"; };
                5C55D6FA22826CB300B5BA2C /* RunAtTheEndOfShader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RunAtTheEndOfShader.h; sourceTree = "<group>"; };
                5C55D70B2282741400B5BA2C /* SymbolTable_autogen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SymbolTable_autogen.h; sourceTree = "<group>"; };
                5C55D70C2282741400B5BA2C /* SymbolTable_autogen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SymbolTable_autogen.cpp; sourceTree = "<group>"; };
-               5C55D70F2282747500B5BA2C /* system_utils_unittest_helper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = system_utils_unittest_helper.cpp; sourceTree = "<group>"; };
                5C55D7102282747600B5BA2C /* aligned_memory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = aligned_memory.cpp; sourceTree = "<group>"; };
                5C55D7112282747600B5BA2C /* PackedEGLEnums_autogen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PackedEGLEnums_autogen.cpp; sourceTree = "<group>"; };
                5C55D7122282747600B5BA2C /* FastVector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FastVector.h; sourceTree = "<group>"; };
                5C55D7172282747600B5BA2C /* FixedVector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FixedVector.h; sourceTree = "<group>"; };
                5C55D7182282747600B5BA2C /* PackedGLEnums_autogen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PackedGLEnums_autogen.h; sourceTree = "<group>"; };
                5C55D7192282747700B5BA2C /* PackedEnums.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PackedEnums.h; sourceTree = "<group>"; };
-               5C55D71A2282747700B5BA2C /* system_utils_unittest_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = system_utils_unittest_helper.h; sourceTree = "<group>"; };
                5C55D71B2282747700B5BA2C /* hash_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hash_utils.h; sourceTree = "<group>"; };
                5C55D71C2282747700B5BA2C /* PackedEnums.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PackedEnums.cpp; sourceTree = "<group>"; };
                5C55D71D2282747700B5BA2C /* PackedGLEnums_autogen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PackedGLEnums_autogen.cpp; sourceTree = "<group>"; };
                5CCD598B2284FC400018F2D8 /* imageformats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = imageformats.h; sourceTree = "<group>"; };
                5CCD598C2284FC400018F2D8 /* generatemip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = generatemip.h; sourceTree = "<group>"; };
                5CCD598D2284FC400018F2D8 /* loadimage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loadimage.cpp; sourceTree = "<group>"; };
-               5CCD59972284FC750018F2D8 /* SystemInfo_macos.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SystemInfo_macos.cpp; sourceTree = "<group>"; };
+               5CCD59972284FC750018F2D8 /* SystemInfo_macos.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SystemInfo_macos.mm; sourceTree = "<group>"; };
                5CCD59982284FC750018F2D8 /* SystemInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SystemInfo.cpp; sourceTree = "<group>"; };
                5CCD59992284FC750018F2D8 /* SystemInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SystemInfo.h; sourceTree = "<group>"; };
-               5CCD599D2284FCDD0018F2D8 /* Context_gles_1_0.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Context_gles_1_0.cpp; sourceTree = "<group>"; };
                5CCD815A1DBFE999006066B8 /* Debug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Debug.cpp; sourceTree = "<group>"; };
                5CCD815B1DBFE999006066B8 /* Debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Debug.h; sourceTree = "<group>"; };
                5CCD815C1DBFE999006066B8 /* HandleRangeAllocator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HandleRangeAllocator.cpp; sourceTree = "<group>"; };
                5D7C59C71208C68B001C873E /* DebugRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = DebugRelease.xcconfig; sourceTree = "<group>"; };
                6E31A0A1234EEED400C84784 /* DeviceCGL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeviceCGL.cpp; sourceTree = "<group>"; };
                6E31A0A2234EEED400C84784 /* DeviceCGL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeviceCGL.h; sourceTree = "<group>"; };
-               6E344AAE22BC35C3001DDB2C /* entry_points_gles_ext_autogen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = entry_points_gles_ext_autogen.h; sourceTree = "<group>"; };
-               6E344AAF22BC35C3001DDB2C /* entry_points_gles_ext_autogen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = entry_points_gles_ext_autogen.cpp; sourceTree = "<group>"; };
-               6E344AB422BC57C8001DDB2C /* entry_points_gles_1_0_autogen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = entry_points_gles_1_0_autogen.cpp; sourceTree = "<group>"; };
-               6E344AB522BC57C8001DDB2C /* entry_points_gles_1_0_autogen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = entry_points_gles_1_0_autogen.h; sourceTree = "<group>"; };
                6EA0D69223515A5C00B8651F /* FrameCapture_mock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FrameCapture_mock.cpp; sourceTree = "<group>"; };
                6ED70A0922CD630E008688CE /* gl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gl.h; path = include/GLES/gl.h; sourceTree = "<group>"; };
                6ED70A0A22CD630E008688CE /* glext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = glext.h; path = include/GLES/glext.h; sourceTree = "<group>"; };
                A303079C23062564002DA972 /* driver_utils_mac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = driver_utils_mac.mm; sourceTree = "<group>"; };
                A303079E230625C6002DA972 /* android_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = android_util.cpp; sourceTree = "<group>"; };
                A303079F230625C6002DA972 /* android_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = android_util.h; sourceTree = "<group>"; };
+               A30B57D9238CB09B0079FDDC /* validationESEXT.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validationESEXT.cpp; sourceTree = "<group>"; };
+               A30B57E5238CB09C0079FDDC /* validationES32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validationES32.h; sourceTree = "<group>"; };
+               A30B57E6238CB09C0079FDDC /* validationES32_autogen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validationES32_autogen.h; sourceTree = "<group>"; };
+               A30B57E8238CB09C0079FDDC /* validationES32.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validationES32.cpp; sourceTree = "<group>"; };
+               A30B5815238DF4BA0079FDDC /* entry_points_gles_2_0_autogen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = entry_points_gles_2_0_autogen.h; sourceTree = "<group>"; };
+               A30B5816238DF4BA0079FDDC /* entry_points_gles_2_0_autogen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = entry_points_gles_2_0_autogen.cpp; sourceTree = "<group>"; };
+               A30B5817238DF4BA0079FDDC /* entry_points_gles_3_0_autogen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = entry_points_gles_3_0_autogen.cpp; sourceTree = "<group>"; };
+               A30B5818238DF4BA0079FDDC /* entry_points_gles_3_0_autogen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = entry_points_gles_3_0_autogen.h; sourceTree = "<group>"; };
+               A30B581D238DF74F0079FDDC /* entry_points_gles_1_0_autogen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = entry_points_gles_1_0_autogen.h; sourceTree = "<group>"; };
+               A30B581E238DF74F0079FDDC /* entry_points_gles_1_0_autogen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = entry_points_gles_1_0_autogen.cpp; sourceTree = "<group>"; };
+               A30B581F238DF74F0079FDDC /* entry_points_gles_ext_autogen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = entry_points_gles_ext_autogen.h; sourceTree = "<group>"; };
+               A30B5820238DF74F0079FDDC /* entry_points_gles_ext_autogen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = entry_points_gles_ext_autogen.cpp; sourceTree = "<group>"; };
+               A30B5821238DF74F0079FDDC /* entry_points_gles_3_1_autogen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = entry_points_gles_3_1_autogen.cpp; sourceTree = "<group>"; };
+               A30B5827238DF7870079FDDC /* Context_gles_1_0.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Context_gles_1_0.cpp; sourceTree = "<group>"; };
+               A30B5829238DF8260079FDDC /* entry_points_gles_3_2_autogen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = entry_points_gles_3_2_autogen.h; sourceTree = "<group>"; };
+               A30B582A238DF8260079FDDC /* entry_points_gles_3_2_autogen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = entry_points_gles_3_2_autogen.cpp; sourceTree = "<group>"; };
                A315988123299036000619B9 /* Overlay_autogen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Overlay_autogen.cpp; sourceTree = "<group>"; };
                A315988223299036000619B9 /* Overlay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Overlay.h; sourceTree = "<group>"; };
                A315988323299037000619B9 /* Overlay_font_autogen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Overlay_font_autogen.h; sourceTree = "<group>"; };
                                5C1DBC581B0438D200235552 /* Context.h */,
                                A303071B2305F7C4002DA972 /* Context.inl.h */,
                                A30307182305F7C3002DA972 /* Context_gl.cpp */,
-                               5CCD599D2284FCDD0018F2D8 /* Context_gles_1_0.cpp */,
+                               A30B5827238DF7870079FDDC /* Context_gles_1_0.cpp */,
                                5CCD815A1DBFE999006066B8 /* Debug.cpp */,
                                5CCD815B1DBFE999006066B8 /* Debug.h */,
                                5C1DBC5B1B0438D200235552 /* Device.cpp */,
                                5CCD816A1DBFE999006066B8 /* validationES31.cpp */,
                                5CCD816B1DBFE999006066B8 /* validationES31.h */,
                                A303073E2305F89B002DA972 /* validationES31_autogen.h */,
+                               A30B57E8238CB09C0079FDDC /* validationES32.cpp */,
+                               A30B57E5238CB09C0079FDDC /* validationES32.h */,
+                               A30B57E6238CB09C0079FDDC /* validationES32_autogen.h */,
                                A30307442305F89C002DA972 /* validationES3_autogen.h */,
+                               A30B57D9238CB09B0079FDDC /* validationESEXT.cpp */,
                                5CCD595F2284F7960018F2D8 /* validationESEXT.h */,
                                A30307352305F899002DA972 /* validationESEXT_autogen.h */,
                                A303072F2305F898002DA972 /* validationGL1.cpp */,
                                5CB300BE1DE39E7500D2C405 /* entry_points_egl.h */,
                                5CB300BB1DE39E7500D2C405 /* entry_points_egl_ext.cpp */,
                                5CB300BC1DE39E7500D2C405 /* entry_points_egl_ext.h */,
-                               6E344AB422BC57C8001DDB2C /* entry_points_gles_1_0_autogen.cpp */,
-                               6E344AB522BC57C8001DDB2C /* entry_points_gles_1_0_autogen.h */,
-                               315EBE021FCE456200AC7A89 /* entry_points_gles_2_0_autogen.cpp */,
-                               315EBDFE1FCE456100AC7A89 /* entry_points_gles_2_0_autogen.h */,
-                               315EBE001FCE456100AC7A89 /* entry_points_gles_3_0_autogen.cpp */,
-                               315EBDFD1FCE456100AC7A89 /* entry_points_gles_3_0_autogen.h */,
-                               315EBE011FCE456100AC7A89 /* entry_points_gles_3_1_autogen.cpp */,
-                               315EBDFF1FCE456100AC7A89 /* entry_points_gles_3_1_autogen.h */,
-                               6E344AAF22BC35C3001DDB2C /* entry_points_gles_ext_autogen.cpp */,
-                               6E344AAE22BC35C3001DDB2C /* entry_points_gles_ext_autogen.h */,
+                               A30B581E238DF74F0079FDDC /* entry_points_gles_1_0_autogen.cpp */,
+                               A30B581D238DF74F0079FDDC /* entry_points_gles_1_0_autogen.h */,
+                               A30B5816238DF4BA0079FDDC /* entry_points_gles_2_0_autogen.cpp */,
+                               A30B5815238DF4BA0079FDDC /* entry_points_gles_2_0_autogen.h */,
+                               A30B5817238DF4BA0079FDDC /* entry_points_gles_3_0_autogen.cpp */,
+                               A30B5818238DF4BA0079FDDC /* entry_points_gles_3_0_autogen.h */,
+                               A30B5821238DF74F0079FDDC /* entry_points_gles_3_1_autogen.cpp */,
+                               A30B582A238DF8260079FDDC /* entry_points_gles_3_2_autogen.cpp */,
+                               A30B5829238DF8260079FDDC /* entry_points_gles_3_2_autogen.h */,
+                               A30B5820238DF74F0079FDDC /* entry_points_gles_ext_autogen.cpp */,
+                               A30B581F238DF74F0079FDDC /* entry_points_gles_ext_autogen.h */,
                                5CB300C71DE39E7500D2C405 /* global_state.cpp */,
                                5CB300C81DE39E7500D2C405 /* global_state.h */,
                                A30307902305F959002DA972 /* proc_table_egl.h */,
                                31A331C41EA5ED5F00FD2203 /* system_utils.h */,
                                31A331C31EA5ED5F00FD2203 /* system_utils_mac.cpp */,
                                5C55D71F2282747700B5BA2C /* system_utils_posix.cpp */,
-                               5C55D70F2282747500B5BA2C /* system_utils_unittest_helper.cpp */,
-                               5C55D71A2282747700B5BA2C /* system_utils_unittest_helper.h */,
                                5C1DBBED1B0436EC00235552 /* tls.cpp */,
                                5C1DBBEE1B0436EC00235552 /* tls.h */,
                                315EBD3E1FCE43BD00AC7A89 /* uniform_type_info_autogen.cpp */,
                                5CCD59992284FC750018F2D8 /* SystemInfo.h */,
                                31B15721236B803300CAA4FD /* SystemInfo_internal.h */,
                                31B1571F236B7FAE00CAA4FD /* SystemInfo_ios.cpp */,
-                               5CCD59972284FC750018F2D8 /* SystemInfo_macos.cpp */,
+                               5CCD59972284FC750018F2D8 /* SystemInfo_macos.mm */,
                        );
                        name = gpuinfoutil;
                        path = gpu_info_util;
                                5CB304981DE4157B00D2C405 /* entry_points_egl.h in Headers */,
                                5CB304961DE4157B00D2C405 /* entry_points_egl_ext.h in Headers */,
                                A30307262305F7C4002DA972 /* entry_points_enum_autogen.h in Headers */,
-                               6E344AB722BC57C8001DDB2C /* entry_points_gles_1_0_autogen.h in Headers */,
-                               315EBE061FCE456200AC7A89 /* entry_points_gles_2_0_autogen.h in Headers */,
-                               315EBE051FCE456200AC7A89 /* entry_points_gles_3_0_autogen.h in Headers */,
-                               315EBE071FCE456200AC7A89 /* entry_points_gles_3_1_autogen.h in Headers */,
-                               6E344AB222BC35C3001DDB2C /* entry_points_gles_ext_autogen.h in Headers */,
+                               A30B5822238DF7500079FDDC /* entry_points_gles_1_0_autogen.h in Headers */,
+                               A30B5819238DF4BB0079FDDC /* entry_points_gles_2_0_autogen.h in Headers */,
+                               A30B581C238DF4BB0079FDDC /* entry_points_gles_3_0_autogen.h in Headers */,
+                               A30B582B238DF8260079FDDC /* entry_points_gles_3_2_autogen.h in Headers */,
+                               A30B5824238DF7500079FDDC /* entry_points_gles_ext_autogen.h in Headers */,
                                A30307252305F7C4002DA972 /* entry_points_utils.h in Headers */,
                                5C1DBDEB1B0438D300235552 /* Error.h in Headers */,
                                315EBDE91FCE452D00AC7A89 /* ErrorStrings.h in Headers */,
                                315EBDB91FCE44BF00AC7A89 /* SyncGL.h in Headers */,
                                315EBDCB1FCE44E400AC7A89 /* SyncImpl.h in Headers */,
                                31A331C71EA5ED5F00FD2203 /* system_utils.h in Headers */,
-                               5C55D72B2282747700B5BA2C /* system_utils_unittest_helper.h in Headers */,
                                5CCD599C2284FC750018F2D8 /* SystemInfo.h in Headers */,
                                31B15722236B803300CAA4FD /* SystemInfo_internal.h in Headers */,
                                5C1DBF311B0438D300235552 /* Texture.h in Headers */,
                                5C1DBF3E1B0438D300235552 /* validationES3.h in Headers */,
                                5CCD81831DBFE999006066B8 /* validationES31.h in Headers */,
                                A303076A2305F89F002DA972 /* validationES31_autogen.h in Headers */,
+                               A30B5803238CB09D0079FDDC /* validationES32.h in Headers */,
+                               A30B5804238CB09D0079FDDC /* validationES32_autogen.h in Headers */,
                                A30307702305F89F002DA972 /* validationES3_autogen.h in Headers */,
                                5CCD596D2284F7960018F2D8 /* validationESEXT.h in Headers */,
                                A30307612305F89F002DA972 /* validationESEXT_autogen.h in Headers */,
                                5CCD81B01DBFEA5C006066B8 /* ConstantUnion.cpp in Sources */,
                                5C1DBDE21B0438D300235552 /* Context.cpp in Sources */,
                                A30307242305F7C4002DA972 /* Context_gl.cpp in Sources */,
-                               5CCD599E2284FCDE0018F2D8 /* Context_gles_1_0.cpp in Sources */,
+                               A30B5828238DF7870079FDDC /* Context_gles_1_0.cpp in Sources */,
                                5CCD59782284FA830018F2D8 /* ContextCGL.cpp in Sources */,
                                313BCE582361133A00FC39E5 /* ContextEAGL.cpp in Sources */,
                                5CB3011C1DE39F1A00D2C405 /* ContextGL.cpp in Sources */,
                                5C1BAAB51DFB6F54002906BB /* entry_points_egl.cpp in Sources */,
                                5C1BAAB61DFB6F58002906BB /* entry_points_egl_ext.cpp in Sources */,
                                A30307222305F7C4002DA972 /* entry_points_enum_autogen.cpp in Sources */,
-                               6E344AB622BC57C8001DDB2C /* entry_points_gles_1_0_autogen.cpp in Sources */,
-                               315EBE0A1FCE456200AC7A89 /* entry_points_gles_2_0_autogen.cpp in Sources */,
-                               315EBE081FCE456200AC7A89 /* entry_points_gles_3_0_autogen.cpp in Sources */,
-                               315EBE091FCE456200AC7A89 /* entry_points_gles_3_1_autogen.cpp in Sources */,
-                               6E344AB322BC35C3001DDB2C /* entry_points_gles_ext_autogen.cpp in Sources */,
+                               A30B5823238DF7500079FDDC /* entry_points_gles_1_0_autogen.cpp in Sources */,
+                               A30B581A238DF4BB0079FDDC /* entry_points_gles_2_0_autogen.cpp in Sources */,
+                               A30B581B238DF4BB0079FDDC /* entry_points_gles_3_0_autogen.cpp in Sources */,
+                               A30B5826238DF7500079FDDC /* entry_points_gles_3_1_autogen.cpp in Sources */,
+                               A30B582C238DF8260079FDDC /* entry_points_gles_3_2_autogen.cpp in Sources */,
+                               A30B5825238DF7500079FDDC /* entry_points_gles_ext_autogen.cpp in Sources */,
                                5C1DBDEA1B0438D300235552 /* Error.cpp in Sources */,
                                315EBDEF1FCE452D00AC7A89 /* es3_copy_conversion_table_autogen.cpp in Sources */,
                                5CC7D47019102621000B8C1F /* event_tracer.cpp in Sources */,
                                315EBDC01FCE44BF00AC7A89 /* SyncGL.cpp in Sources */,
                                31A331C61EA5ED5F00FD2203 /* system_utils_mac.cpp in Sources */,
                                5C55D7302282747700B5BA2C /* system_utils_posix.cpp in Sources */,
-                               5C55D7202282747700B5BA2C /* system_utils_unittest_helper.cpp in Sources */,
                                5CCD599B2284FC750018F2D8 /* SystemInfo.cpp in Sources */,
                                31B15720236B7FAF00CAA4FD /* SystemInfo_ios.cpp in Sources */,
-                               5CCD599A2284FC750018F2D8 /* SystemInfo_macos.cpp in Sources */,
+                               5CCD599A2284FC750018F2D8 /* SystemInfo_macos.mm in Sources */,
                                5C1DBF301B0438D300235552 /* Texture.cpp in Sources */,
                                315EBD991FCE443600AC7A89 /* TextureFunctionHLSL.cpp in Sources */,
                                5CB301411DE39F1A00D2C405 /* TextureGL.cpp in Sources */,
                                5C1DBF3B1B0438D300235552 /* validationES2.cpp in Sources */,
                                5C1DBF3D1B0438D300235552 /* validationES3.cpp in Sources */,
                                5CCD81821DBFE999006066B8 /* validationES31.cpp in Sources */,
+                               A30B5806238CB09D0079FDDC /* validationES32.cpp in Sources */,
+                               A30B57F7238CB09D0079FDDC /* validationESEXT.cpp in Sources */,
                                A303075B2305F89F002DA972 /* validationGL1.cpp in Sources */,
                                A30307782305F89F002DA972 /* validationGL11.cpp in Sources */,
                                A303077E2305F89F002DA972 /* validationGL12.cpp in Sources */,
index 7a0f3b3..f85cc80 100644 (file)
@@ -59,3 +59,5 @@ Thomas Miller
 Till Rathmann
 Nick Shaforostov
 Jaime Bernardo
+Le Hoang Quyen
+Ethan Lee
index 0eccb92..9ac1612 100644 (file)
@@ -20,7 +20,7 @@ if (angle_has_build) {
 declare_args() {
   # Use the PCI lib to collect GPU information on Linux.
   use_libpci = is_linux && (!is_chromecast || is_cast_desktop_build) &&
-               (use_x11 || use_ozone)
+               (angle_use_x11 || use_ozone)
 
   # Link in system libGL, to work with apitrace.  See doc/DebuggingTips.md.
   angle_link_glx = false
@@ -106,6 +106,19 @@ config("internal_config") {
   if (angle_enable_trace) {
     defines += [ "ANGLE_ENABLE_DEBUG_TRACE=1" ]
   }
+
+  if (is_chromeos) {
+    defines += [ "ANGLE_PLATFORM_CHROMEOS" ]
+  }
+}
+
+config("constructor_and_destructor_warnings") {
+  if (is_clang) {
+    cflags = [
+      "-Wexit-time-destructors",
+      "-Wglobal-constructors",
+    ]
+  }
 }
 
 config("extra_warnings") {
@@ -124,11 +137,16 @@ config("extra_warnings") {
   }
   if (is_clang) {
     cflags += [
-      "-Wexit-time-destructors",
+      "-Wconditional-uninitialized",
       "-Wextra-semi-stmt",
       "-Wfloat-conversion",
-      "-Wglobal-constructors",
+      "-Winconsistent-missing-destructor-override",
+      "-Wmissing-field-initializers",
       "-Wnon-virtual-dtor",
+      "-Wredundant-parens",
+      "-Wshadow-field",
+      "-Wtautological-type-limit-compare",
+      "-Wundefined-reinterpret-cast",
       "-Wunneeded-internal-declaration",
 
       # The below warnings are used by WebKit. We enable them to make rolling
@@ -255,7 +273,6 @@ angle_source_set("angle_system_utils") {
 
 angle_source_set("xxhash") {
   sources = xxhash_sources
-  configs -= [ "${angle_root}:extra_warnings" ]
 }
 
 if (angle_has_build) {
@@ -287,9 +304,8 @@ angle_static_library("angle_common") {
     ":includes",
   ]
   public_configs += [ ":angle_common_config" ]
-  all_dependent_configs = [ ":angle_release_asserts_config" ]
   if (angle_has_build && use_fuzzing_engine) {
-    all_dependent_configs += [ ":angle_disable_pool_alloc" ]
+    all_dependent_configs = [ ":angle_disable_pool_alloc" ]
   }
 }
 
@@ -364,7 +380,7 @@ angle_static_library("angle_gpu_info_util") {
   if (is_linux || is_fuchsia) {
     sources += libangle_gpu_info_util_linux_sources
 
-    if (use_x11) {
+    if (angle_use_x11) {
       sources += libangle_gpu_info_util_x11_sources
       deps += [ "src/third_party/libXNVCtrl:libXNVCtrl" ]
       defines += [ "GPU_INFO_USE_X11" ]
@@ -419,11 +435,20 @@ angle_static_library("translator") {
     defines += [ "ANGLE_ENABLE_HLSL" ]
   }
 
-  if (angle_enable_vulkan || use_fuzzing_engine) {
+  if (angle_enable_vulkan || use_fuzzing_engine || angle_enable_metal) {
+    # This translator is needed by metal backend also.
     sources += angle_translator_lib_vulkan_sources
+  }
+
+  if (angle_enable_vulkan || use_fuzzing_engine) {
     defines += [ "ANGLE_ENABLE_VULKAN" ]
   }
 
+  if (angle_enable_metal) {
+    sources += angle_translator_lib_metal_sources
+    defines += [ "ANGLE_ENABLE_METAL" ]
+  }
+
   public_configs += [ ":external_config" ]
 
   deps = [
@@ -524,6 +549,10 @@ config("angle_backend_config") {
     defines += [ "ANGLE_ENABLE_NULL" ]
   }
 
+  if (angle_enable_metal) {
+    configs = [ "src/libANGLE/renderer/metal:angle_metal_backend_config" ]
+  }
+
   if (angle_enable_vulkan) {
     configs = [ "src/libANGLE/renderer/vulkan:angle_vulkan_backend_config" ]
   }
@@ -553,7 +582,7 @@ config("libANGLE_config") {
     }
   }
 
-  if (use_x11) {
+  if (angle_use_x11) {
     defines += [ "ANGLE_USE_X11" ]
   }
 }
@@ -566,6 +595,21 @@ angle_source_set("libANGLE_headers") {
   ]
 }
 
+# Don't even try to build glslang if Metal and Vulkan are disabled.
+if (angle_enable_vulkan || angle_enable_metal) {
+  angle_source_set("angle_glslang_wrapper") {
+    sources = [
+      "src/libANGLE/renderer/glslang_wrapper_utils.cpp",
+      "src/libANGLE/renderer/glslang_wrapper_utils.h",
+    ]
+    deps = [
+      ":libANGLE_headers",
+      "${angle_glslang_dir}:glslang_default_resource_limits_sources",
+      "${angle_glslang_dir}:glslang_sources",
+    ]
+  }
+}
+
 angle_source_set("libANGLE_base") {
   sources = libangle_sources
 
@@ -588,12 +632,26 @@ angle_source_set("libANGLE_base") {
     ":includes",
   ]
 
+  if (is_win) {
+    if (angle_enable_d3d9) {
+      libs += [ "delayimp.lib" ]
+    }
+    libs += [
+      "gdi32.lib",
+      "user32.lib",
+    ]
+  }
+
   if (angle_enable_vulkan) {
     public_deps += [ "src/libANGLE/renderer/vulkan:angle_vulkan_backend" ]
   }
 
+  if (angle_enable_metal) {
+    public_deps += [ "src/libANGLE/renderer/metal:angle_metal_backend" ]
+  }
+
   # Enable extra Chromium style warnings for libANGLE.
-  if (is_clang) {
+  if (is_clang && angle_has_build) {
     suppressed_configs -= [ "//build/config/clang:find_bad_constructs" ]
   }
 
@@ -633,7 +691,7 @@ angle_source_set("libANGLE_base") {
     if (is_win) {
       sources += libangle_gl_wgl_sources
     }
-    if (use_x11) {
+    if (angle_use_x11) {
       sources += libangle_gl_glx_sources
       deps += [ "src/third_party/libXNVCtrl:libXNVCtrl" ]
       libs += [
@@ -716,7 +774,10 @@ angle_source_set("libANGLE") {
 
   # gl_enum_utils defaults included in with_capture build
   if (angle_enable_trace || is_debug) {
-    sources += [ "src/libANGLE/gl_enum_utils_autogen.cpp" ]
+    sources += [
+      "src/libANGLE/gl_enum_utils.cpp",
+      "src/libANGLE/gl_enum_utils_autogen.cpp",
+    ]
   }
 }
 
@@ -1003,7 +1064,7 @@ angle_source_set("angle_util_loader") {
 
 config("angle_util_config") {
   include_dirs = [ "." ]
-  if (is_linux && use_x11) {
+  if (is_linux && angle_use_x11) {
     libs = [ "X11" ]
   }
 }
@@ -1053,7 +1114,7 @@ foreach(is_shared_library,
       ]
     }
 
-    if (use_x11) {
+    if (angle_use_x11) {
       sources += util_x11_sources
     }
 
@@ -1075,7 +1136,6 @@ foreach(is_shared_library,
       sources += util_fuchsia_sources
       public_deps += [
         "$angle_root/src/common/fuchsia_egl",
-        "src/libANGLE/renderer/vulkan:angle_vulkan",
         "//third_party/fuchsia-sdk/sdk:async_loop_cpp",
         "//third_party/fuchsia-sdk/sdk:async_loop_default",
         "//third_party/fuchsia-sdk/sdk:fdio",
@@ -1221,7 +1281,7 @@ if (!is_component_build && is_android && symbol_level != 0) {
   }
 }
 
-if (!is_component_build && is_android &&
+if (build_with_chromium && !is_component_build && is_android &&
     current_toolchain == default_toolchain) {
   # Package ANGLE libraries
   angle_apk("angle_chromium_apk") {
index 43fddf8..2c88368 100644 (file)
@@ -88,7 +88,9 @@ if (USE_ANGLE_EGL)
     add_library(ANGLE STATIC
         ${ANGLE_SOURCES}
         ${libangle_sources}
+        ${libangle_headers}
         ${libangle_image_util_sources}
+        ${libangle_image_util_headers}
         ${xxhash_sources}
     )
     target_include_directories(ANGLE PRIVATE ${ANGLE_PRIVATE_INCLUDE_DIRECTORIES})
index caad859..c4edc87 100644 (file)
@@ -90,6 +90,7 @@ Mozilla Corp.
  Benoit Jacob
  Makoto Kato
  Vladimir Vukicevic
+ Josh Matthews
 
 Turbulenz
  Michael Braithwaite
@@ -156,6 +157,7 @@ Samsung Electronics, Inc.
  Hyunseok Ko
  Jaedon Lee
  Jeff Vigil
+ Kevin Jung
  Kyeongmin Kim
  Minkyu Jeong
  Mohan Maiya
@@ -163,3 +165,5 @@ Samsung Electronics, Inc.
 
 Arm Ltd.
  Fei Yang
+ Xinyi He
+ Sunny Sun
index c5a302d..7f2f338 100644 (file)
@@ -1,3 +1,19 @@
+2019-12-02  James Darpinian  <jdarpinian@chromium.org>
+
+        Update ANGLE
+        https://bugs.webkit.org/show_bug.cgi?id=204595
+
+        Reviewed by Alex Christensen.
+
+        * ANGLE.plist: Updated commit hash.
+        * ANGLE.xcodeproj/project.pbxproj: Changes mirroring gn changes upstream.
+        * Compiler.cmake: Changes mirroring gn changes upstream.
+        * GLESv2.cmake: Changes mirroring gn changes upstream.
+        * CMakeLists.txt: Changes mirroring gn changes upstream.
+
+        * Many other files added/removed/changed from upstream.
+
+
 2019-11-20  ChangSeok Oh  <changseok@webkit.org>
 
         [GTK] Add ANGLE backend to GTK port
index 61ecb7e..f5570c6 100644 (file)
@@ -14,8 +14,6 @@ set(angle_translator_sources
     include/GLES3/gl3platform.h
     include/GLES3/gl31.h
     include/GLES3/gl32.h
-    include/GLSLANG/ShaderLang.h
-    include/GLSLANG/ShaderVars.h
     include/KHR/khrplatform.h
     include/angle_gl.h
     src/compiler/translator/BaseTypes.h
@@ -103,7 +101,6 @@ set(angle_translator_sources
     src/compiler/translator/VariablePacker.cpp
     src/compiler/translator/VariablePacker.h
     src/compiler/translator/blocklayout.cpp
-    src/compiler/translator/blocklayout.h
     src/compiler/translator/glslang.h
     src/compiler/translator/glslang_lex.cpp
     src/compiler/translator/glslang_tab.cpp
@@ -149,6 +146,8 @@ set(angle_translator_sources
     src/compiler/translator/tree_ops/RegenerateStructNames.h
     src/compiler/translator/tree_ops/RemoveArrayLengthMethod.cpp
     src/compiler/translator/tree_ops/RemoveArrayLengthMethod.h
+    src/compiler/translator/tree_ops/RemoveDynamicIndexing.cpp
+    src/compiler/translator/tree_ops/RemoveDynamicIndexing.h
     src/compiler/translator/tree_ops/RemoveInvariantDeclaration.cpp
     src/compiler/translator/tree_ops/RemoveInvariantDeclaration.h
     src/compiler/translator/tree_ops/RemovePow.cpp
@@ -222,7 +221,6 @@ set(angle_translator_sources
     # Added by conditional statement later in compiler.gni
     src/compiler/translator/ImmutableString_autogen.cpp
     src/compiler/translator/SymbolTable_autogen.cpp
-
 )
 
 set(angle_translator_essl_sources
@@ -235,6 +233,8 @@ set(angle_translator_essl_sources
 set(angle_translator_glsl_sources
     src/compiler/translator/BuiltInFunctionEmulatorGLSL.cpp
     src/compiler/translator/BuiltInFunctionEmulatorGLSL.h
+    src/compiler/translator/BuiltinsWorkaroundGLSL.cpp
+    src/compiler/translator/BuiltinsWorkaroundGLSL.h
     src/compiler/translator/ExtensionGLSL.cpp
     src/compiler/translator/ExtensionGLSL.h
     src/compiler/translator/OutputGLSL.cpp
@@ -253,7 +253,6 @@ set(angle_translator_hlsl_sources
     src/compiler/translator/AtomicCounterFunctionHLSL.cpp
     src/compiler/translator/AtomicCounterFunctionHLSL.h
     src/compiler/translator/blocklayoutHLSL.cpp
-    src/compiler/translator/blocklayoutHLSL.h
     src/compiler/translator/BuiltInFunctionEmulatorHLSL.cpp
     src/compiler/translator/BuiltInFunctionEmulatorHLSL.h
     src/compiler/translator/OutputHLSL.cpp
@@ -279,8 +278,6 @@ set(angle_translator_hlsl_sources
     src/compiler/translator/tree_ops/AddDefaultReturnStatements.h
     src/compiler/translator/tree_ops/ArrayReturnValueToOutParameter.cpp
     src/compiler/translator/tree_ops/ArrayReturnValueToOutParameter.h
-    src/compiler/translator/tree_ops/RemoveDynamicIndexing.cpp
-    src/compiler/translator/tree_ops/RemoveDynamicIndexing.h
     src/compiler/translator/tree_ops/RemoveSwitchFallThrough.cpp
     src/compiler/translator/tree_ops/RemoveSwitchFallThrough.h
     src/compiler/translator/tree_ops/RewriteElseBlocks.cpp
@@ -330,4 +327,3 @@ set(angle_preprocessor_sources
     src/compiler/preprocessor/Tokenizer.h
     src/compiler/preprocessor/numeric_lex.h
 )
-
index 0c20ff2..f324591 100644 (file)
 # used by gclient to determine what version of each dependency to check out, and
 # where.
 
+# Avoids the need for a custom root variable.
+use_relative_paths = True
+use_relative_hooks = True
+
 vars = {
   'android_git': 'https://android.googlesource.com',
   'chromium_git': 'https://chromium.googlesource.com',
+  'chrome_internal_git': 'https://chrome-internal.googlesource.com',
   'swiftshader_git': 'https://swiftshader.googlesource.com',
 
-  # This variable is set on the Chrome infra for compatiblity with gclient.
-  'angle_root': '.',
-
   # This variable is overrided in Chromium's DEPS file.
   'build_with_chromium': False,
 
-  # By default, do not check out angle-internal. This can be overridden e.g. with custom_vars.
-  # We overload Chromium's 'src-internal' for infra simplicity.
+  # Only check out public sources by default. This can be overridden with custom_vars.
+  # We overload Chromium's 'src-internal' for simplicity.
+  # TOOD(ynovikov): Use checkout_angle_internal custom variable instead.
   'checkout_src_internal': False,
 
-  # Current revision of dEQP.
-  'deqp_revision': 'd3eef28e67ce6795ba3a2124aaa977819729d45f',
+  # Version of Chromium our Chromium-based DEPS are mirrored from.
+  'chromium_revision': '5fe256ab5e5eb3d73d23ab52c69ba113145d921b',
+
+  # Current revision of VK-GL-CTS (a.k.a dEQP).
+  'vk_gl_cts_revision': '54ec6f2b1390bf33ea10424dca610f8bcbfefa06',
 
   # Current revision of glslang, the Khronos SPIRV compiler.
-  'glslang_revision': '4b97a1108114107a8082a55e9e0721a40f9536d3',
+  'glslang_revision': '43fe7bafb14e6e455310ca67134ab914242116b3',
+
+  # Current revision of googletest.
+  # Note: this dep cannot be auto-rolled b/c of nesting.
+  'googletest_revision': 'f2fb48c3b3d79a75a88a99fba6576b25d42ec528',
+
+  # Current revision of jsoncpp.
+  # Note: this dep cannot be auto-rolled b/c of nesting.
+  'jsoncpp_revision': '645250b6690785be60ab6780ce4b58698d884d11',
+
+  # Current revision of patched-yasm.
+  # Note: this dep cannot be auto-rolled b/c of nesting.
+  'patched_yasm_revision': '720b70524a4424b15fc57e82263568c8ba0496ad',
+
+  # Current revision of spirv-cross, the Khronos SPIRV cross compiler.
+  'spirv_cross_revision': 'd253f41e17e27285756d031d8ba43bf370264e1f',
 
   # Current revision fo the SPIRV-Headers Vulkan support library.
-  'spirv_headers_revision': '842ec90674627ed2ffef609e3cd79d1562eded01',
+  'spirv_headers_revision': 'af64a9e826bf5bb5fcd2434dd71be1e41e922563',
 
   # Current revision of SPIRV-Tools for Vulkan.
-  'spirv_tools_revision': '3c7ff8d4f0a1c0f27328871fe64879170a4f0930',
+  'spirv_tools_revision': '45dde9ad6dde133db9bd6942c46df692ca539186',
 
   # Current revision of Khronos Vulkan-Headers.
-  'vulkan_headers_revision': '5b44df19e040fca0048ab30c553a8c2d2cb9623e',
+  'vulkan_headers_revision': '24347673152e093a48efbf65dfd3b06026b6ed33',
 
   # Current revision of Khronos Vulkan-Loader.
-  'vulkan_loader_revision': 'b5a0995324fa9fb2a6152197b442400e7d7be5b6',
+  'vulkan_loader_revision': '79e03670c2a328bea3c1a3f80ea913f296a487e6',
 
   # Current revision of Khronos Vulkan-Tools.
-  'vulkan_tools_revision': '40cd2166a44647a4283517e31af4589410c654eb',
+  'vulkan_tools_revision': '39b3005ba560da72e2c71cab9c793af2c2bed511',
 
   # Current revision of Khronos Vulkan-ValidationLayers.
-  'vulkan_validation_revision': '9fba37afae13a11bd49ae942bf82e5bf1098e381',
+  'vulkan_validation_revision': '5efc3922e3e863cc69fb487b040c1d1e563de1bc',
+
+  # Three lines of non-changing comments so that
+  # the commit queue can handle CLs rolling catapult
+  # and whatever else without interference from each other.
+  'catapult_revision': '1b3fb455bf1849f1e6187e1eaeaef32b9f30d3c5',
 }
 
 deps = {
 
-  '{angle_root}/angle-internal': {
-    'url': 'https://chrome-internal.googlesource.com/angle/angle-internal.git@f682552d8131422e91f45661a7af83e885ff70ce',
-    'condition': 'checkout_src_internal',
-  },
-
-  '{angle_root}/build': {
-    'url': '{chromium_git}/chromium/src/build.git@fd0d28db8039e2aaf9fa35e53e3af6dc9ead8055',
+  'build': {
+    'url': '{chromium_git}/chromium/src/build.git@258e22bc612da7425c3a64d733041683a9d123f1',
     'condition': 'not build_with_chromium',
   },
 
-  '{angle_root}/buildtools': {
+  'buildtools': {
     'url': '{chromium_git}/chromium/src/buildtools.git@cf454b247c611167388742c7a31ef138a6031172',
     'condition': 'not build_with_chromium',
   },
 
-  '{angle_root}/testing': {
-    'url': '{chromium_git}/chromium/src/testing@9d2d0dad367ac7e98e64cc6881044c482e1c7eb8',
+  'testing': {
+    'url': '{chromium_git}/chromium/src/testing@85152663b9e65c5372e8eb080d936e1b6fbd3b6b',
     'condition': 'not build_with_chromium',
   },
 
-  # Cherry is a dEQP management GUI written in Go. We use it for viewing test results.
-  '{angle_root}/third_party/cherry': {
+  # Cherry is a dEQP/VK-GL-CTS management GUI written in Go. We use it for viewing test results.
+  'third_party/cherry': {
     'url': '{android_git}/platform/external/cherry@4f8fb08d33ca5ff05a1c638f04c85bbb8d8b52cc',
     'condition': 'not build_with_chromium',
   },
 
-  '{angle_root}/third_party/deqp/src': {
-    'url': '{chromium_git}/external/deqp@{deqp_revision}',
+  'third_party/VK-GL-CTS/src': {
+    'url': '{chromium_git}/external/github.com/KhronosGroup/VK-GL-CTS@{vk_gl_cts_revision}',
   },
 
-  '{angle_root}/third_party/fuchsia-sdk': {
-    'url': '{chromium_git}/chromium/src/third_party/fuchsia-sdk.git@5fd29151cf35c0813c33cc368a7c78389e3f5caa',
+  'third_party/fuchsia-sdk': {
+    'url': '{chromium_git}/chromium/src/third_party/fuchsia-sdk.git@1785f0ac8e1fe81cb25e260acbe7de8f62fa3e44',
     'condition': 'checkout_fuchsia and not build_with_chromium',
   },
 
+  # Closed-source OpenGL ES 1.1 Conformance tests.
+  'third_party/gles1_conform': {
+    'url': '{chrome_internal_git}/angle/es-cts.git@dc9f502f709c9cd88d7f8d3974f1c77aa246958e',
+    'condition': 'checkout_src_internal',
+  },
+
   # glmark2 is a GPL3-licensed OpenGL ES 2.0 benchmark. We use it for testing.
-  '{angle_root}/third_party/glmark2/src': {
+  'third_party/glmark2/src': {
     'url': '{chromium_git}/external/github.com/glmark2/glmark2@9e01aef1a786b28aca73135a5b00f85c357e8f5e',
   },
 
-  '{angle_root}/third_party/glslang/src': {
+  'third_party/glslang/src': {
     'url': '{chromium_git}/external/github.com/KhronosGroup/glslang@{glslang_revision}',
     'condition': 'not build_with_chromium',
   },
 
-  '{angle_root}/third_party/googletest': {
-    'url': '{chromium_git}/chromium/src/third_party/googletest@c721b68ddecc18bbc6b763b2fe8ab802c22f228a',
-    'condition': 'not build_with_chromium',
-  },
-
-  '{angle_root}/third_party/googletest/src': {
-    'url': '{chromium_git}/external/github.com/google/googletest.git@cd17fa2abda2a2e4111cdabd62a87aea16835014',
+  'third_party/googletest': {
+    'url': '{chromium_git}/chromium/src/third_party/googletest@60616473f7d8414aeb7575b487beecc7369fd52f',
     'condition': 'not build_with_chromium',
   },
 
   # libjpeg_turbo is used by glmark2.
-  '{angle_root}/third_party/libjpeg_turbo': {
-    'url': '{chromium_git}/chromium/deps/libjpeg_turbo@6dcdade8828297e306cabfdae80f3510f3f3eea2',
+  'third_party/libjpeg_turbo': {
+    'url': '{chromium_git}/chromium/deps/libjpeg_turbo.git@bc13578529255ec75005ffc98aae151666122892',
     'condition': 'not build_with_chromium',
   },
 
-  '{angle_root}/third_party/libpng/src': {
+  'third_party/libpng/src': {
     'url': '{android_git}/platform/external/libpng@094e181e79a3d6c23fd005679025058b7df1ad6c',
     'condition': 'not build_with_chromium',
   },
 
-  '{angle_root}/third_party/jsoncpp': {
-    'url': '{chromium_git}/chromium/src/third_party/jsoncpp@48246a099549ab325c01f69f24a34fc72e5c42e4',
+  'third_party/jsoncpp': {
+    'url': '{chromium_git}/chromium/src/third_party/jsoncpp@1cfec065ed4cd9a01fa8e351baa3e714a5868522',
     'condition': 'not build_with_chromium',
    },
 
-  '{angle_root}/third_party/jsoncpp/source': {
-    'url' : '{chromium_git}/external/github.com/open-source-parsers/jsoncpp@645250b6690785be60ab6780ce4b58698d884d11',
-    'condition': 'not build_with_chromium',
-   },
-
-  '{angle_root}/third_party/Python-Markdown': {
+  'third_party/Python-Markdown': {
     'url': '{chromium_git}/chromium/src/third_party/Python-Markdown@36657c103ce5964733bbbb29377085e9cc1a9472',
     'condition': 'not build_with_chromium',
   },
 
-  '{angle_root}/third_party/qemu-linux-x64': {
+  'third_party/qemu-linux-x64': {
       'packages': [
           {
               'package': 'fuchsia/qemu/linux-amd64',
@@ -136,7 +153,7 @@ deps = {
       'dep_type': 'cipd',
   },
 
-  '{angle_root}/third_party/qemu-mac-x64': {
+  'third_party/qemu-mac-x64': {
       'packages': [
           {
               'package': 'fuchsia/qemu/mac-amd64',
@@ -147,70 +164,91 @@ deps = {
       'dep_type': 'cipd',
   },
 
-  '{angle_root}/third_party/rapidjson/src': {
+  'third_party/rapidjson/src': {
     'url': '{chromium_git}/external/github.com/Tencent/rapidjson@7484e06c589873e1ed80382d262087e4fa80fb63',
   },
 
-  '{angle_root}/third_party/spirv-headers/src': {
+  'third_party/spirv-cross/src': {
+    'url': '{chromium_git}/external/github.com/KhronosGroup/SPIRV-Cross@{spirv_cross_revision}',
+    'condition': 'not build_with_chromium',
+  },
+
+  'third_party/spirv-headers/src': {
     'url': '{chromium_git}/external/github.com/KhronosGroup/SPIRV-Headers@{spirv_headers_revision}',
     'condition': 'not build_with_chromium',
   },
 
-  '{angle_root}/third_party/spirv-tools/src': {
+  'third_party/spirv-tools/src': {
     'url': '{chromium_git}/external/github.com/KhronosGroup/SPIRV-Tools@{spirv_tools_revision}',
     'condition': 'not build_with_chromium',
   },
 
-  '{angle_root}/third_party/SwiftShader': {
-    'url': '{swiftshader_git}/SwiftShader@036463457e5f11a9257553fadb5e8c193bec6f7e',
+  'third_party/SwiftShader': {
+    'url': '{swiftshader_git}/SwiftShader@131a1ba8d06a669ac48fb792b76c78d20f9e2e74',
     'condition': 'not build_with_chromium',
   },
 
-  '{angle_root}/third_party/vulkan-headers/src': {
+  'third_party/vulkan-headers/src': {
     'url': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-Headers@{vulkan_headers_revision}',
   },
 
-  '{angle_root}/third_party/vulkan-loader/src': {
+  'third_party/vulkan-loader/src': {
     'url': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-Loader@{vulkan_loader_revision}',
   },
 
-  '{angle_root}/third_party/vulkan-tools/src': {
+  'third_party/vulkan-tools/src': {
     'url': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-Tools@{vulkan_tools_revision}',
   },
 
-  '{angle_root}/third_party/vulkan-validation-layers/src': {
+  'third_party/vulkan-validation-layers/src': {
     'url': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-ValidationLayers@{vulkan_validation_revision}',
   },
 
-  '{angle_root}/third_party/yasm': {
-    'url': '{chromium_git}/chromium/src/third_party/yasm@cc10bc0f1d96a4bae0e775f2ac2b6ac5b08078c6',
+  'third_party/yasm': {
+    'url': '{chromium_git}/chromium/src/third_party/yasm@02a8d2167f476660411ea7e1ee6fbd21dda44e96',
     'condition': 'not build_with_chromium',
   },
 
-  '{angle_root}/third_party/yasm/source/patched-yasm': {
-    'url': '{chromium_git}/chromium/deps/yasm/patched-yasm.git@720b70524a4424b15fc57e82263568c8ba0496ad',
+  'third_party/zlib': {
+    'url': '{chromium_git}/chromium/src/third_party/zlib@403ca5ad3a324530113a89a20fcabcea92242721',
     'condition': 'not build_with_chromium',
   },
 
-  '{angle_root}/third_party/zlib': {
-    'url': '{chromium_git}/chromium/src/third_party/zlib@ddebad26cfadeb4ecdfe3da8beb396a85cf90c91',
+  'tools/clang': {
+    'url': '{chromium_git}/chromium/src/tools/clang.git@662cbb8d60f813b110f637f38adf60d9b2c57418',
     'condition': 'not build_with_chromium',
   },
 
-  '{angle_root}/tools/clang': {
-    'url': '{chromium_git}/chromium/src/tools/clang.git@6bc727d9d80f2c3a97587676bb38c5472afe7e60',
-    'condition': 'not build_with_chromium',
+  'tools/clang/dsymutil': {
+    'packages': [
+      {
+        'package': 'chromium/llvm-build-tools/dsymutil',
+        'version': 'M56jPzDv1620Rnm__jTMYS62Zi8rxHVq7yw0qeBFEgkC',
+      }
+    ],
+    'condition': 'checkout_mac and not build_with_chromium',
+    'dep_type': 'cipd',
   },
 
-  '{angle_root}/tools/md_browser': {
+  'tools/md_browser': {
     'url': '{chromium_git}/chromium/src/tools/md_browser@0bfd826f8566a99923e64a782908faca72bc457c',
     'condition': 'not build_with_chromium',
   },
 
-  '{angle_root}/tools/memory': {
+  'tools/memory': {
     'url': '{chromium_git}/chromium/src/tools/memory@89552acb6e60f528fe3c98eac7b445d4c34183ee',
     'condition': 'not build_with_chromium',
   },
+
+  'third_party/catapult': {
+    'url': '{chromium_git}/catapult.git@{catapult_revision}',
+    'condition': 'not build_with_chromium',
+  },
+
+  'third_party/android_ndk': {
+    'url': '{chromium_git}/android_ndk.git@27c0a8d090c666a50e40fceb4ee5b40b1a2d3f87',
+    'condition': 'not build_with_chromium',
+  },
 }
 
 hooks = [
@@ -224,7 +262,7 @@ hooks = [
                 '--platform=win32',
                 '--no_auth',
                 '--bucket', 'chromium-clang-format',
-                '-s', '{angle_root}/buildtools/win/clang-format.exe.sha1',
+                '-s', 'buildtools/win/clang-format.exe.sha1',
     ],
   },
   {
@@ -236,7 +274,7 @@ hooks = [
                 '--platform=darwin',
                 '--no_auth',
                 '--bucket', 'chromium-clang-format',
-                '-s', '{angle_root}/buildtools/mac/clang-format.sha1',
+                '-s', 'buildtools/mac/clang-format.sha1',
     ],
   },
   {
@@ -248,21 +286,21 @@ hooks = [
                 '--platform=linux*',
                 '--no_auth',
                 '--bucket', 'chromium-clang-format',
-                '-s', '{angle_root}/buildtools/linux64/clang-format.sha1',
+                '-s', 'buildtools/linux64/clang-format.sha1',
     ],
   },
   {
     'name': 'sysroot_x86',
     'pattern': '.',
     'condition': 'checkout_linux and ((checkout_x86 or checkout_x64) and not build_with_chromium)',
-    'action': ['python', '{angle_root}/build/linux/sysroot_scripts/install-sysroot.py',
+    'action': ['python', 'build/linux/sysroot_scripts/install-sysroot.py',
                '--arch=x86'],
   },
   {
     'name': 'sysroot_x64',
     'pattern': '.',
     'condition': 'checkout_linux and (checkout_x64 and not build_with_chromium)',
-    'action': ['python', '{angle_root}/build/linux/sysroot_scripts/install-sysroot.py',
+    'action': ['python', 'build/linux/sysroot_scripts/install-sysroot.py',
                '--arch=x64'],
   },
   {
@@ -270,21 +308,21 @@ hooks = [
     'name': 'win_toolchain',
     'pattern': '.',
     'condition': 'checkout_win and not build_with_chromium',
-    'action': ['python', '{angle_root}/build/vs_toolchain.py', 'update', '--force'],
+    'action': ['python', 'build/vs_toolchain.py', 'update', '--force'],
   },
   {
     # Update the Mac toolchain if necessary.
     'name': 'mac_toolchain',
     'pattern': '.',
     'condition': 'checkout_mac and not build_with_chromium',
-    'action': ['python', '{angle_root}/build/mac_toolchain.py'],
+    'action': ['python', 'build/mac_toolchain.py'],
   },
 
   {
     # Note: On Win, this should run after win_toolchain, as it may use it.
     'name': 'clang',
     'pattern': '.',
-    'action': ['python', '{angle_root}/tools/clang/scripts/update.py'],
+    'action': ['python', 'tools/clang/scripts/update.py'],
     'condition': 'not build_with_chromium',
   },
 
@@ -293,8 +331,8 @@ hooks = [
     'name': 'lastchange',
     'pattern': '.',
     'condition': 'not build_with_chromium',
-    'action': ['python', '{angle_root}/build/util/lastchange.py',
-               '-o', '{angle_root}/build/util/LASTCHANGE'],
+    'action': ['python', 'build/util/lastchange.py',
+               '-o', 'build/util/LASTCHANGE'],
   },
 
   # Pull rc binaries using checked-in hashes.
@@ -306,7 +344,7 @@ hooks = [
                 '--no_resume',
                 '--no_auth',
                 '--bucket', 'chromium-browser-clang/rc',
-                '-s', '{angle_root}/build/toolchain/win/rc/win/rc.exe.sha1',
+                '-s', 'build/toolchain/win/rc/win/rc.exe.sha1',
     ],
   },
 
@@ -316,7 +354,7 @@ hooks = [
     'condition': 'checkout_fuchsia and not build_with_chromium',
     'action': [
       'python',
-      '{angle_root}/build/fuchsia/update_sdk.py',
+      'build/fuchsia/update_sdk.py',
     ],
   },
 
@@ -330,7 +368,7 @@ hooks = [
                 '--platform=linux*',
                 '--no_auth',
                 '--bucket', 'angle-glslang-validator',
-                '-s', '{angle_root}/tools/glslang/glslang_validator.sha1',
+                '-s', 'tools/glslang/glslang_validator.sha1',
     ],
   },
 
@@ -344,15 +382,15 @@ hooks = [
                 '--platform=win32*',
                 '--no_auth',
                 '--bucket', 'angle-glslang-validator',
-                '-s', '{angle_root}/tools/glslang/glslang_validator.exe.sha1',
+                '-s', 'tools/glslang/glslang_validator.exe.sha1',
     ],
   },
 ]
 
 recursedeps = [
-  # angle-internal has its own DEPS file to pull additional internal repos
-  '{angle_root}/angle-internal',
-
   # buildtools provides clang_format.
-  '{angle_root}/buildtools',
+  'buildtools',
+  'third_party/googletest',
+  'third_party/jsoncpp',
+  'third_party/yasm',
 ]
index aa5cc3c..18950e5 100644 (file)
@@ -26,6 +26,7 @@ set(libangle_common_sources
     src/common/android_util.h
     src/common/angleutils.cpp
     src/common/angleutils.h
+    src/common/apple_platform_utils.h
     src/common/bitset_utils.h
     src/common/debug.cpp
     src/common/debug.h
@@ -87,17 +88,20 @@ set(angle_system_utils_sources_android
 
 # end modification
 
-set(libangle_image_util_sources
-    src/image_util/copyimage.cpp
+set(libangle_image_util_headers
     src/image_util/copyimage.h
     src/image_util/copyimage.inc
     src/image_util/generatemip.h
     src/image_util/generatemip.inc
-    src/image_util/imageformats.cpp
     src/image_util/imageformats.h
-    src/image_util/loadimage.cpp
     src/image_util/loadimage.h
     src/image_util/loadimage.inc
+)
+
+set(libangle_image_util_sources
+    src/image_util/copyimage.cpp
+    src/image_util/imageformats.cpp
+    src/image_util/loadimage.cpp
     src/image_util/loadimage_etc.cpp
 )
 
@@ -115,7 +119,8 @@ set(libangle_gpu_info_util_libpci_sources src/gpu_info_util/SystemInfo_libpci.cp
 
 set(libangle_gpu_info_util_x11_sources src/gpu_info_util/SystemInfo_x11.cpp)
 
-set(libangle_gpu_info_util_mac_sources src/gpu_info_util/SystemInfo_mac.mm)
+set(libangle_gpu_info_util_mac_sources src/gpu_info_util/SystemInfo_macos.mm)
+
 
 set(libangle_includes
     include/angle_gl.h
@@ -140,36 +145,29 @@ set(libangle_includes
     include/GLES3/gl31.h
     include/GLES3/gl31ext_explicit_context_autogen.inc
     include/GLES3/gl32.h
-    include/GLSLANG/ShaderLang.h
-    include/GLSLANG/ShaderVars.h
+    include/GLES3/gl32ext_explicit_context_autogen.inc
     include/KHR/khrplatform.h
     include/WGL/wgl.h
     include/platform/Feature.h
     include/platform/FeaturesD3D.h
     include/platform/FeaturesGL.h
+    include/platform/FeaturesMtl.h
     include/platform/FeaturesVk.h
     include/platform/FrontendFeatures.h
     include/platform/Platform.h
 )
 
-set(libangle_sources
-    src/libANGLE/AttributeMap.cpp
+set(libangle_headers
     src/libANGLE/AttributeMap.h
     src/libANGLE/BinaryStream.h
-    src/libANGLE/BlobCache.cpp
     src/libANGLE/BlobCache.h
-    src/libANGLE/Buffer.cpp
     src/libANGLE/Buffer.h
-    src/libANGLE/Caps.cpp
     src/libANGLE/Caps.h
-    src/libANGLE/Compiler.cpp
     src/libANGLE/Compiler.h
-    src/libANGLE/Config.cpp
     src/libANGLE/Config.h
     src/libANGLE/Constants.h
-    src/libANGLE/Context.cpp
-    src/libANGLE/Context_gl.cpp
-    src/libANGLE/Context_gles_1_0.cpp
+    src/libANGLE/Context.h
+    src/libANGLE/Context.inl.h
     src/libANGLE/Context_gl_1_0_autogen.h
     src/libANGLE/Context_gl_1_1_autogen.h
     src/libANGLE/Context_gl_1_2_autogen.h
@@ -193,49 +191,29 @@ set(libangle_sources
     src/libANGLE/Context_gles_2_0_autogen.h
     src/libANGLE/Context_gles_3_0_autogen.h
     src/libANGLE/Context_gles_3_1_autogen.h
+    src/libANGLE/Context_gles_3_2_autogen.h
     src/libANGLE/Context_gles_ext_autogen.h
-    src/libANGLE/Context.h
-    src/libANGLE/Context.inl.h
-    src/libANGLE/Debug.cpp
     src/libANGLE/Debug.h
-    src/libANGLE/Device.cpp
     src/libANGLE/Device.h
-    src/libANGLE/Display.cpp
     src/libANGLE/Display.h
-    src/libANGLE/EGLSync.cpp
     src/libANGLE/EGLSync.h
-    src/libANGLE/Error.cpp
     src/libANGLE/Error.h
     src/libANGLE/Error.inc
     src/libANGLE/ErrorStrings.h
-    src/libANGLE/Fence.cpp
     src/libANGLE/Fence.h
-    src/libANGLE/Framebuffer.cpp
     src/libANGLE/Framebuffer.h
-    src/libANGLE/FramebufferAttachment.cpp
     src/libANGLE/FramebufferAttachment.h
-    src/libANGLE/GLES1Renderer.cpp
     src/libANGLE/GLES1Renderer.h
     src/libANGLE/GLES1Shaders.inc
-    src/libANGLE/GLES1State.cpp
     src/libANGLE/GLES1State.h
-    src/libANGLE/HandleAllocator.cpp
     src/libANGLE/HandleAllocator.h
     src/libANGLE/HandleRangeAllocator.h
-    src/libANGLE/HandleRangeAllocator.cpp
     src/libANGLE/Image.h
-    src/libANGLE/Image.cpp
     src/libANGLE/ImageIndex.h
-    src/libANGLE/ImageIndex.cpp
-    src/libANGLE/IndexRangeCache.cpp
     src/libANGLE/IndexRangeCache.h
-    src/libANGLE/LoggingAnnotator.cpp
     src/libANGLE/LoggingAnnotator.h
-    src/libANGLE/MemoryObject.cpp
     src/libANGLE/MemoryObject.h
-    src/libANGLE/MemoryProgramCache.cpp
     src/libANGLE/MemoryProgramCache.h
-    src/libANGLE/Observer.cpp
     src/libANGLE/Observer.h
     src/libANGLE/Overlay.cpp
     src/libANGLE/Overlay.h
@@ -245,175 +223,211 @@ set(libangle_sources
     src/libANGLE/Overlay_font_autogen.cpp
     src/libANGLE/Overlay_font_autogen.h
     src/libANGLE/Path.h
-    src/libANGLE/Path.cpp
-    src/libANGLE/Platform.cpp
-    src/libANGLE/Program.cpp
     src/libANGLE/Program.h
-    src/libANGLE/ProgramLinkedResources.cpp
     src/libANGLE/ProgramLinkedResources.h
-    src/libANGLE/ProgramPipeline.cpp
     src/libANGLE/ProgramPipeline.h
-    src/libANGLE/Query.cpp
     src/libANGLE/Query.h
     src/libANGLE/RefCountObject.h
-    src/libANGLE/Renderbuffer.cpp
     src/libANGLE/Renderbuffer.h
-    src/libANGLE/ResourceManager.cpp
     src/libANGLE/ResourceManager.h
     src/libANGLE/ResourceMap.h
-    src/libANGLE/Sampler.cpp
     src/libANGLE/Sampler.h
-    src/libANGLE/Semaphore.cpp
     src/libANGLE/Semaphore.h
-    src/libANGLE/Shader.cpp
     src/libANGLE/Shader.h
     src/libANGLE/SizedMRUCache.h
-    src/libANGLE/State.cpp
     src/libANGLE/State.h
-    src/libANGLE/Stream.cpp
     src/libANGLE/Stream.h
-    src/libANGLE/Surface.cpp
     src/libANGLE/Surface.h
-    src/libANGLE/Texture.cpp
     src/libANGLE/Texture.h
-    src/libANGLE/Thread.cpp
     src/libANGLE/Thread.h
-    src/libANGLE/TransformFeedback.cpp
     src/libANGLE/TransformFeedback.h
-    src/libANGLE/Uniform.cpp
     src/libANGLE/Uniform.h
-    src/libANGLE/VaryingPacking.cpp
     src/libANGLE/VaryingPacking.h
     src/libANGLE/Version.h
     src/libANGLE/Version.inc
-    src/libANGLE/VertexArray.cpp
     src/libANGLE/VertexArray.h
-    src/libANGLE/VertexAttribute.cpp
     src/libANGLE/VertexAttribute.h
     src/libANGLE/VertexAttribute.inc
-    src/libANGLE/WorkerThread.cpp
     src/libANGLE/WorkerThread.h
-    src/libANGLE/angletypes.cpp
     src/libANGLE/angletypes.h
     src/libANGLE/angletypes.inc
-    src/libANGLE/entry_points_enum_autogen.cpp
     src/libANGLE/entry_points_enum_autogen.h
     src/libANGLE/entry_points_utils.h
-    src/libANGLE/es3_copy_conversion_table_autogen.cpp
     src/libANGLE/features.h
-    src/libANGLE/format_map_autogen.cpp
-    src/libANGLE/format_map_desktop.cpp
-    src/libANGLE/formatutils.cpp
     src/libANGLE/formatutils.h
     src/libANGLE/histogram_macros.h
-    src/libANGLE/queryconversions.cpp
     src/libANGLE/queryconversions.h
-    src/libANGLE/queryutils.cpp
     src/libANGLE/queryutils.h
     src/libANGLE/trace.h
     src/libANGLE/renderer/BufferImpl.h
     src/libANGLE/renderer/CompilerImpl.h
-    src/libANGLE/renderer/ContextImpl.cpp
     src/libANGLE/renderer/ContextImpl.h
-    src/libANGLE/renderer/driver_utils.cpp
     src/libANGLE/renderer/driver_utils.h
-    src/libANGLE/renderer/DeviceImpl.cpp
     src/libANGLE/renderer/DeviceImpl.h
-    src/libANGLE/renderer/DisplayImpl.cpp
     src/libANGLE/renderer/DisplayImpl.h
     src/libANGLE/renderer/EGLImplFactory.h
     src/libANGLE/renderer/EGLSyncImpl.h
     src/libANGLE/renderer/FenceNVImpl.h
     src/libANGLE/renderer/FormatID_autogen.h
-    src/libANGLE/renderer/Format_table_autogen.cpp
     src/libANGLE/renderer/Format.h
     src/libANGLE/renderer/FramebufferAttachmentObjectImpl.h
     src/libANGLE/renderer/FramebufferImpl.h
     src/libANGLE/renderer/GLImplFactory.h
     src/libANGLE/renderer/ImageImpl.h
     src/libANGLE/renderer/MemoryObjectImpl.h
+    src/libANGLE/renderer/OverlayImpl.h
     src/libANGLE/renderer/PathImpl.h
     src/libANGLE/renderer/ProgramImpl.h
     src/libANGLE/renderer/ProgramPipelineImpl.h
-    src/libANGLE/renderer/QueryImpl.cpp
     src/libANGLE/renderer/QueryImpl.h
     src/libANGLE/renderer/RenderbufferImpl.h
     src/libANGLE/renderer/RenderTargetCache.h
     src/libANGLE/renderer/SamplerImpl.h
     src/libANGLE/renderer/SemaphoreImpl.h
-    src/libANGLE/renderer/ShaderImpl.cpp
     src/libANGLE/renderer/ShaderImpl.h
     src/libANGLE/renderer/StreamProducerImpl.h
-    src/libANGLE/renderer/SurfaceImpl.cpp
     src/libANGLE/renderer/SurfaceImpl.h
     src/libANGLE/renderer/SyncImpl.h
-    src/libANGLE/renderer/TextureImpl.cpp
     src/libANGLE/renderer/TextureImpl.h
     src/libANGLE/renderer/TransformFeedbackImpl.h
     src/libANGLE/renderer/VertexArrayImpl.h
     src/libANGLE/renderer/copyvertex.h
     src/libANGLE/renderer/copyvertex.inc.h
     src/libANGLE/renderer/load_functions_table.h
-    src/libANGLE/renderer/load_functions_table_autogen.cpp
-    src/libANGLE/renderer/renderer_utils.cpp
     src/libANGLE/renderer/renderer_utils.h
-    src/libANGLE/validationEGL.cpp
     src/libANGLE/validationEGL.h
-    src/libANGLE/validationES.cpp
     src/libANGLE/validationES.h
-    src/libANGLE/validationES1.cpp
-    src/libANGLE/validationES1_autogen.h
     src/libANGLE/validationES1.h
-    src/libANGLE/validationES2.cpp
-    src/libANGLE/validationES2_autogen.h
+    src/libANGLE/validationES1_autogen.h
     src/libANGLE/validationES2.h
-    src/libANGLE/validationES3.cpp
-    src/libANGLE/validationES31.cpp
-    src/libANGLE/validationES31_autogen.h
+    src/libANGLE/validationES2_autogen.h
+    src/libANGLE/validationES3.h
     src/libANGLE/validationES31.h
+    src/libANGLE/validationES31_autogen.h
+    src/libANGLE/validationES32.h
+    src/libANGLE/validationES32_autogen.h
     src/libANGLE/validationES3_autogen.h
-    src/libANGLE/validationES3.h
-    src/libANGLE/validationESEXT_autogen.h
     src/libANGLE/validationESEXT.h
-    src/libANGLE/validationGL1.cpp
+    src/libANGLE/validationESEXT_autogen.h
+    src/libANGLE/validationGL11_autogen.h
+    src/libANGLE/validationGL12_autogen.h
+    src/libANGLE/validationGL13_autogen.h
+    src/libANGLE/validationGL14_autogen.h
+    src/libANGLE/validationGL15_autogen.h
     src/libANGLE/validationGL1_autogen.h
-    src/libANGLE/validationGL2.cpp
+    src/libANGLE/validationGL21_autogen.h
     src/libANGLE/validationGL2_autogen.h
-    src/libANGLE/validationGL3.cpp
+    src/libANGLE/validationGL31_autogen.h
+    src/libANGLE/validationGL32_autogen.h
+    src/libANGLE/validationGL33_autogen.h
     src/libANGLE/validationGL3_autogen.h
-    src/libANGLE/validationGL4.cpp
+    src/libANGLE/validationGL41_autogen.h
+    src/libANGLE/validationGL42_autogen.h
+    src/libANGLE/validationGL43_autogen.h
+    src/libANGLE/validationGL44_autogen.h
+    src/libANGLE/validationGL45_autogen.h
+    src/libANGLE/validationGL46_autogen.h
     src/libANGLE/validationGL4_autogen.h
+    src/third_party/trace_event/trace_event.h
+)
+
+set(libangle_sources
+    src/libANGLE/AttributeMap.cpp
+    src/libANGLE/BlobCache.cpp
+    src/libANGLE/Buffer.cpp
+    src/libANGLE/Caps.cpp
+    src/libANGLE/Compiler.cpp
+    src/libANGLE/Config.cpp
+    src/libANGLE/Context.cpp
+    src/libANGLE/Context_gl.cpp
+    src/libANGLE/Context_gles_1_0.cpp
+    src/libANGLE/Debug.cpp
+    src/libANGLE/Device.cpp
+    src/libANGLE/Display.cpp
+    src/libANGLE/EGLSync.cpp
+    src/libANGLE/Error.cpp
+    src/libANGLE/Fence.cpp
+    src/libANGLE/Framebuffer.cpp
+    src/libANGLE/FramebufferAttachment.cpp
+    src/libANGLE/GLES1Renderer.cpp
+    src/libANGLE/GLES1State.cpp
+    src/libANGLE/HandleAllocator.cpp
+    src/libANGLE/HandleRangeAllocator.cpp
+    src/libANGLE/Image.cpp
+    src/libANGLE/ImageIndex.cpp
+    src/libANGLE/IndexRangeCache.cpp
+    src/libANGLE/LoggingAnnotator.cpp
+    src/libANGLE/MemoryObject.cpp
+    src/libANGLE/MemoryProgramCache.cpp
+    src/libANGLE/Observer.cpp
+    src/libANGLE/Path.cpp
+    src/libANGLE/Platform.cpp
+    src/libANGLE/Program.cpp
+    src/libANGLE/ProgramLinkedResources.cpp
+    src/libANGLE/ProgramPipeline.cpp
+    src/libANGLE/Query.cpp
+    src/libANGLE/Renderbuffer.cpp
+    src/libANGLE/ResourceManager.cpp
+    src/libANGLE/Sampler.cpp
+    src/libANGLE/Semaphore.cpp
+    src/libANGLE/Shader.cpp
+    src/libANGLE/State.cpp
+    src/libANGLE/Stream.cpp
+    src/libANGLE/Surface.cpp
+    src/libANGLE/Texture.cpp
+    src/libANGLE/Thread.cpp
+    src/libANGLE/TransformFeedback.cpp
+    src/libANGLE/Uniform.cpp
+    src/libANGLE/VaryingPacking.cpp
+    src/libANGLE/VertexArray.cpp
+    src/libANGLE/VertexAttribute.cpp
+    src/libANGLE/WorkerThread.cpp
+    src/libANGLE/angletypes.cpp
+    src/libANGLE/entry_points_enum_autogen.cpp
+    src/libANGLE/es3_copy_conversion_table_autogen.cpp
+    src/libANGLE/format_map_autogen.cpp
+    src/libANGLE/format_map_desktop.cpp
+    src/libANGLE/formatutils.cpp
+    src/libANGLE/queryconversions.cpp
+    src/libANGLE/queryutils.cpp
+    src/libANGLE/renderer/ContextImpl.cpp
+    src/libANGLE/renderer/driver_utils.cpp
+    src/libANGLE/renderer/DeviceImpl.cpp
+    src/libANGLE/renderer/DisplayImpl.cpp
+    src/libANGLE/renderer/Format_table_autogen.cpp
+    src/libANGLE/renderer/QueryImpl.cpp
+    src/libANGLE/renderer/ShaderImpl.cpp
+    src/libANGLE/renderer/SurfaceImpl.cpp
+    src/libANGLE/renderer/TextureImpl.cpp
+    src/libANGLE/renderer/load_functions_table_autogen.cpp
+    src/libANGLE/renderer/renderer_utils.cpp
+    src/libANGLE/validationEGL.cpp
+    src/libANGLE/validationES.cpp
+    src/libANGLE/validationES1.cpp
+    src/libANGLE/validationES2.cpp
+    src/libANGLE/validationES3.cpp
+    src/libANGLE/validationES31.cpp
+    src/libANGLE/validationES32.cpp
+    src/libANGLE/validationESEXT.cpp
+    src/libANGLE/validationGL1.cpp
+    src/libANGLE/validationGL2.cpp
+    src/libANGLE/validationGL3.cpp
+    src/libANGLE/validationGL4.cpp
     src/libANGLE/validationGL11.cpp
-    src/libANGLE/validationGL11_autogen.h
     src/libANGLE/validationGL12.cpp
-    src/libANGLE/validationGL12_autogen.h
-    src/libANGLE/validationGL13.cpp
-    src/libANGLE/validationGL13_autogen.h
     src/libANGLE/validationGL14.cpp
-    src/libANGLE/validationGL14_autogen.h
     src/libANGLE/validationGL15.cpp
-    src/libANGLE/validationGL15_autogen.h
+    src/libANGLE/validationGL13.cpp
     src/libANGLE/validationGL21.cpp
-    src/libANGLE/validationGL21_autogen.h
     src/libANGLE/validationGL31.cpp
-    src/libANGLE/validationGL31_autogen.h
     src/libANGLE/validationGL32.cpp
-    src/libANGLE/validationGL32_autogen.h
     src/libANGLE/validationGL33.cpp
-    src/libANGLE/validationGL33_autogen.h
     src/libANGLE/validationGL41.cpp
-    src/libANGLE/validationGL41_autogen.h
     src/libANGLE/validationGL42.cpp
-    src/libANGLE/validationGL42_autogen.h
     src/libANGLE/validationGL43.cpp
-    src/libANGLE/validationGL43_autogen.h
     src/libANGLE/validationGL44.cpp
-    src/libANGLE/validationGL44_autogen.h
     src/libANGLE/validationGL45.cpp
-    src/libANGLE/validationGL45_autogen.h
     src/libANGLE/validationGL46.cpp
-    src/libANGLE/validationGL46_autogen.h
-    src/third_party/trace_event/trace_event.h
     # Added lower in libGLESv2.gni
     src/libANGLE/FrameCapture.h
     src/libANGLE/capture_gles_1_0_autogen.h
@@ -671,7 +685,7 @@ set(libangle_d3d11_win32_sources
     src/third_party/systeminfo/SystemInfo.h
 )
 
-set(libangle_d3d11_winrt_sources
+set(libangle_d3d11_winuwp_sources
     src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp
     src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h
     src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp
@@ -814,7 +828,6 @@ set(libangle_gl_egl_sources
     src/libANGLE/renderer/gl/egl/WindowSurfaceEGL.cpp
     src/libANGLE/renderer/gl/egl/WindowSurfaceEGL.h
 )
-
 set(libangle_gl_egl_dl_sources
     src/libANGLE/renderer/gl/egl/FunctionsEGLDL.cpp
     src/libANGLE/renderer/gl/egl/FunctionsEGLDL.h
@@ -841,11 +854,11 @@ set(libangle_gl_cgl_sources
     src/libANGLE/renderer/gl/cgl/DeviceCGL.h
     src/libANGLE/renderer/gl/cgl/DisplayCGL.mm
     src/libANGLE/renderer/gl/cgl/DisplayCGL.h
-    src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.mm
+    src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp
     src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.h
-    src/libANGLE/renderer/gl/cgl/RendererCGL.mm
+    src/libANGLE/renderer/gl/cgl/RendererCGL.cpp
     src/libANGLE/renderer/gl/cgl/RendererCGL.h
-    src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.mm
+    src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.cpp
     src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.h
     src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm
     src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.h
@@ -853,79 +866,6 @@ set(libangle_gl_cgl_sources
 
 set(libangle_mac_sources src/libANGLE/renderer/driver_utils_mac.mm)
 
-set(libangle_vulkan_sources
-    src/libANGLE/renderer/vulkan/BufferVk.cpp
-    src/libANGLE/renderer/vulkan/BufferVk.h
-    src/libANGLE/renderer/vulkan/CommandGraph.cpp
-    src/libANGLE/renderer/vulkan/CommandGraph.h
-    src/libANGLE/renderer/vulkan/CompilerVk.cpp
-    src/libANGLE/renderer/vulkan/CompilerVk.h
-    src/libANGLE/renderer/vulkan/ContextVk.cpp
-    src/libANGLE/renderer/vulkan/ContextVk.h
-    src/libANGLE/renderer/vulkan/DeviceVk.cpp
-    src/libANGLE/renderer/vulkan/DeviceVk.h
-    src/libANGLE/renderer/vulkan/DisplayVk.cpp
-    src/libANGLE/renderer/vulkan/DisplayVk.h
-    src/libANGLE/renderer/vulkan/FenceNVVk.cpp
-    src/libANGLE/renderer/vulkan/FenceNVVk.h
-    src/libANGLE/renderer/vulkan/FramebufferVk.cpp
-    src/libANGLE/renderer/vulkan/FramebufferVk.h
-    src/libANGLE/renderer/vulkan/GlslangWrapper.cpp
-    src/libANGLE/renderer/vulkan/GlslangWrapper.h
-    src/libANGLE/renderer/vulkan/ImageVk.cpp
-    src/libANGLE/renderer/vulkan/ImageVk.h
-    src/libANGLE/renderer/vulkan/MemoryObjectVk.cpp
-    src/libANGLE/renderer/vulkan/MemoryObjectVk.h
-    src/libANGLE/renderer/vulkan/PersistentCommandPool.cpp
-    src/libANGLE/renderer/vulkan/PersistentCommandPool.h
-    src/libANGLE/renderer/vulkan/ProgramVk.cpp
-    src/libANGLE/renderer/vulkan/ProgramVk.h
-    src/libANGLE/renderer/vulkan/ProgramPipelineVk.cpp
-    src/libANGLE/renderer/vulkan/ProgramPipelineVk.h
-    src/libANGLE/renderer/vulkan/QueryVk.cpp
-    src/libANGLE/renderer/vulkan/QueryVk.h
-    src/libANGLE/renderer/vulkan/RenderbufferVk.cpp
-    src/libANGLE/renderer/vulkan/RenderbufferVk.h
-    src/libANGLE/renderer/vulkan/RendererVk.cpp
-    src/libANGLE/renderer/vulkan/RendererVk.h
-    src/libANGLE/renderer/vulkan/RenderTargetVk.cpp
-    src/libANGLE/renderer/vulkan/RenderTargetVk.h
-    src/libANGLE/renderer/vulkan/SamplerVk.cpp
-    src/libANGLE/renderer/vulkan/SamplerVk.h
-    src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.cpp
-    src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.h
-    src/libANGLE/renderer/vulkan/SemaphoreVk.cpp
-    src/libANGLE/renderer/vulkan/SemaphoreVk.h
-    src/libANGLE/renderer/vulkan/ShaderVk.cpp
-    src/libANGLE/renderer/vulkan/ShaderVk.h
-    src/libANGLE/renderer/vulkan/SurfaceVk.cpp
-    src/libANGLE/renderer/vulkan/SurfaceVk.h
-    src/libANGLE/renderer/vulkan/SyncVk.cpp
-    src/libANGLE/renderer/vulkan/SyncVk.h
-    src/libANGLE/renderer/vulkan/TextureVk.cpp
-    src/libANGLE/renderer/vulkan/TextureVk.h
-    src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp
-    src/libANGLE/renderer/vulkan/TransformFeedbackVk.h
-    src/libANGLE/renderer/vulkan/UtilsVk.cpp
-    src/libANGLE/renderer/vulkan/UtilsVk.h
-    src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
-    src/libANGLE/renderer/vulkan/VertexArrayVk.h
-    src/libANGLE/renderer/vulkan/vk_cache_utils.cpp
-    src/libANGLE/renderer/vulkan/vk_cache_utils.h
-    src/libANGLE/renderer/vulkan/vk_caps_utils.cpp
-    src/libANGLE/renderer/vulkan/vk_caps_utils.h
-    src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp
-    src/libANGLE/renderer/vulkan/vk_format_utils.h
-    src/libANGLE/renderer/vulkan/vk_format_utils.cpp
-    src/libANGLE/renderer/vulkan/vk_helpers.cpp
-    src/libANGLE/renderer/vulkan/vk_helpers.h
-    src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h
-    src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp
-    src/libANGLE/renderer/vulkan/vk_mandatory_format_support_table_autogen.cpp
-    src/libANGLE/renderer/vulkan/vk_utils.cpp
-    src/libANGLE/renderer/vulkan/vk_utils.h
-    src/libANGLE/renderer/vulkan/vk_wrapper.h
-)
 
 set(libangle_capture_sources
     # If frame capture support is desired, uncomment this, comment out
@@ -941,42 +881,16 @@ set(libangle_capture_sources
     src/libANGLE/capture_gles_3_0_params.cpp
     src/libANGLE/capture_gles_3_1_autogen.cpp
     src/libANGLE/capture_gles_3_1_params.cpp
+    src/libANGLE/capture_gles_3_2_autogen.cpp
+    src/libANGLE/capture_gles_3_2_params.cpp
     src/libANGLE/capture_gles_ext_autogen.cpp
     src/libANGLE/capture_gles_ext_params.cpp
+    src/libANGLE/frame_capture_replay_autogen.cpp
     src/libANGLE/frame_capture_utils_autogen.cpp
+    src/libANGLE/gl_enum_utils.cpp
     src/libANGLE/gl_enum_utils_autogen.cpp
 )
 
-set(libangle_vulkan_android_sources
-    src/libANGLE/renderer/vulkan/android/DisplayVkAndroid.cpp
-    src/libANGLE/renderer/vulkan/android/DisplayVkAndroid.h
-    src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.cpp
-    src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.h
-    src/libANGLE/renderer/vulkan/android/WindowSurfaceVkAndroid.cpp
-    src/libANGLE/renderer/vulkan/android/WindowSurfaceVkAndroid.h
-)
-
-set(libangle_vulkan_win32_sources
-    src/libANGLE/renderer/vulkan/win32/DisplayVkWin32.cpp
-    src/libANGLE/renderer/vulkan/win32/DisplayVkWin32.h
-    src/libANGLE/renderer/vulkan/win32/WindowSurfaceVkWin32.cpp
-    src/libANGLE/renderer/vulkan/win32/WindowSurfaceVkWin32.h
-)
-
-set(libangle_vulkan_xcb_sources
-    src/libANGLE/renderer/vulkan/xcb/DisplayVkXcb.cpp
-    src/libANGLE/renderer/vulkan/xcb/DisplayVkXcb.h
-    src/libANGLE/renderer/vulkan/xcb/WindowSurfaceVkXcb.cpp
-    src/libANGLE/renderer/vulkan/xcb/WindowSurfaceVkXcb.h
-)
-
-set(libangle_vulkan_fuchsia_sources
-    src/libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.cpp
-    src/libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.h
-    src/libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.cpp
-    src/libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.h
-)
-
 set(libangle_null_sources
     src/libANGLE/renderer/null/BufferNULL.cpp
     src/libANGLE/renderer/null/BufferNULL.h
@@ -1023,8 +937,6 @@ set(libangle_null_sources
 set(libgl_sources
     src/common/angleutils.h
     src/common/debug.h
-    src/libGLESv2/global_state.cpp
-    src/libGLESv2/global_state.h
     src/libGL/entry_points_gl_1_0_autogen.cpp
     src/libGL/entry_points_gl_1_0_autogen.h
     src/libGL/entry_points_gl_1_1_autogen.cpp
@@ -1070,7 +982,9 @@ set(libgl_sources
     src/libGL/libGL.rc
     src/libGL/proc_table_wgl.h
     src/libGL/proc_table_wgl_autogen.cpp
-    src/libGL/resource.h
+    src/libGLESv2/global_state.cpp
+    src/libGLESv2/global_state.h
+    src/libGLESv2/resource.h
 )
 
 set(libglesv2_sources
@@ -1090,6 +1004,8 @@ set(libglesv2_sources
     src/libGLESv2/entry_points_gles_3_0_autogen.h
     src/libGLESv2/entry_points_gles_3_1_autogen.cpp
     src/libGLESv2/entry_points_gles_3_1_autogen.h
+    src/libGLESv2/entry_points_gles_3_2_autogen.cpp
+    src/libGLESv2/entry_points_gles_3_2_autogen.h
     src/libGLESv2/entry_points_gles_ext_autogen.cpp
     src/libGLESv2/entry_points_gles_ext_autogen.h
     src/libGLESv2/global_state.cpp
index 25b7d87..70902a5 100644 (file)
@@ -32,8 +32,9 @@ def _CheckChangeHasBugField(input_api, output_api):
     bugs = input_api.change.BugsFromDescription()
     if not bugs:
         return [
-            output_api.PresubmitError(
-                'If this change has an associated bug, add Bug: angleproject:[bug number].')
+            output_api.PresubmitError('Please ensure that your description contains:\n'
+                                      '"Bug: angleproject:[bug number]"\n'
+                                      'directly above the Change-Id tag.')
         ]
     elif not all([' ' not in bug for bug in bugs]):
         return [
index aed11cd..21d7c88 100644 (file)
@@ -8,23 +8,24 @@ underway, and future plans include compute shader support (ES 3.1) and MacOS sup
 
 ### Level of OpenGL ES support via backing renderers
 
-|                |  Direct3D 9   |  Direct3D 11     |   Desktop GL   |    GL ES      |    Vulkan     |
-|----------------|:-------------:|:----------------:|:--------------:|:-------------:|:-------------:|
-| OpenGL ES 2.0  |    complete   |    complete      |    complete    |   complete    |    complete   |
-| OpenGL ES 3.0  |               |    complete      |    complete    |   complete    |  in progress  |
-| OpenGL ES 3.1  |               |   in progress    |    complete    |   complete    |  in progress  |
-| OpenGL ES 3.2  |               |                  |    planned     |    planned    |    planned    |
+|                |  Direct3D 9   |  Direct3D 11     |   Desktop GL   |    GL ES      |    Vulkan     |    Metal      |
+|----------------|:-------------:|:----------------:|:--------------:|:-------------:|:-------------:|:-------------:|
+| OpenGL ES 2.0  |    complete   |    complete      |    complete    |   complete    |    complete   |  in progress  |
+| OpenGL ES 3.0  |               |    complete      |    complete    |   complete    |  in progress  |               |
+| OpenGL ES 3.1  |               |   in progress    |    complete    |   complete    |  in progress  |               |
+| OpenGL ES 3.2  |               |                  |    planned     |    planned    |    planned    |               |
 
 ### Platform support via backing renderers
 
-|             |    Direct3D 9  |   Direct3D 11  |   Desktop GL  |    GL ES    |   Vulkan    |
-|------------:|:--------------:|:--------------:|:-------------:|:-----------:|:-----------:|
-| Windows     |    complete    |    complete    |   complete    |   complete  |   complete  |
-| Linux       |                |                |   complete    |             |   complete  |
-| Mac OS X    |                |                |   complete    |             |             |
-| Chrome OS   |                |                |               |   complete  |   planned   |
-| Android     |                |                |               |   complete  |   complete  |
-| Fuchsia     |                |                |               |             | in progress |
+|             |    Direct3D 9  |   Direct3D 11  |   Desktop GL  |    GL ES    |   Vulkan    |    Metal    |
+|------------:|:--------------:|:--------------:|:-------------:|:-----------:|:-----------:|:-----------:|
+| Windows     |    complete    |    complete    |   complete    |   complete  |   complete  |             |
+| Linux       |                |                |   complete    |             |   complete  |             |
+| Mac OS X    |                |                |   complete    |             |             | in progress |
+| iOS         |                |                |               |             |             |   planned   |
+| Chrome OS   |                |                |               |   complete  |   planned   |             |
+| Android     |                |                |               |   complete  |   complete  |             |
+| Fuchsia     |                |                |               |             | in progress |             |
 
 ANGLE v1.0.772 was certified compliant by passing the ES 2.0.3 conformance tests in October 2011.
 ANGLE also provides an implementation of the EGL 1.4 specification.
index c561c40..5b9bf20 100644 (file)
@@ -3,7 +3,7 @@
 # found in the LICENSE file.
 
 import("//build/config/android/rules.gni")
-import("//third_party/angle/gni/angle.gni")
+import("../gni/angle.gni")
 
 vulkan_validation_layers = [ "VkLayer_khronos_validation" ]
 
@@ -14,95 +14,100 @@ angle_libraries = [
   "libfeature_support",
 ]
 
-template("angle_apk") {
-  manifest_target_name = "${target_name}__manifest"
-  manifest_path = "${target_gen_dir}/${target_name}/android/AndroidManifest.xml"
+if (enable_java_templates) {
+  template("angle_apk") {
+    manifest_target_name = "${target_name}__manifest"
+    manifest_path =
+        "${target_gen_dir}/${target_name}/android/AndroidManifest.xml"
 
-  jinja_template(manifest_target_name) {
-    input = "//third_party/angle/android/AndroidManifest.xml.jinja2"
-    output = manifest_path
-    variables = [ "manifest_package=${invoker.package_name}" ]
-  }
+    jinja_template(manifest_target_name) {
+      input = "//third_party/angle/android/AndroidManifest.xml.jinja2"
+      output = manifest_path
+      variables = [ "manifest_package=${invoker.package_name}" ]
+    }
 
-  android_assets("${invoker.package_name}_assets") {
-    disable_compression = true
-    sources = [
-      "src/feature_support_util/a4a_rules.json",
-    ]
-  }
+    android_assets("${invoker.package_name}_assets") {
+      disable_compression = true
+      sources = [
+        "src/feature_support_util/a4a_rules.json",
+      ]
+    }
 
-  android_apk(target_name) {
-    forward_variables_from(invoker, "*")
-    android_manifest = manifest_path
-    android_manifest_dep = ":$manifest_target_name"
-    min_sdk_version = 26
-    target_sdk_version = 28
-    deps = [
-      ":${invoker.package_name}_assets",
-    ]
-    if (symbol_level != 0) {
-      deps += [ ":compressed_symbols" ]
-      if (build_apk_secondary_abi && android_64bit_target_cpu) {
-        deps += [ ":compressed_symbols($android_secondary_abi_toolchain)" ]
+    android_apk(target_name) {
+      forward_variables_from(invoker, "*")
+      android_manifest = manifest_path
+      android_manifest_dep = ":$manifest_target_name"
+      min_sdk_version = 26
+      target_sdk_version = 28
+      deps = [
+        ":${invoker.package_name}_assets",
+      ]
+      if (symbol_level != 0) {
+        deps += [ ":compressed_symbols" ]
+        if (build_apk_secondary_abi && android_64bit_target_cpu) {
+          deps += [ ":compressed_symbols($android_secondary_abi_toolchain)" ]
+        }
       }
-    }
 
-    uncompress_shared_libraries = true
+      uncompress_shared_libraries = true
+
+      if (build_apk_secondary_abi && android_64bit_target_cpu) {
+        if (symbol_level == 0) {
+          secondary_abi_shared_libraries = []
+          foreach(_library, angle_libraries) {
+            secondary_abi_shared_libraries +=
+                [ "$angle_root:${_library}($android_secondary_abi_toolchain)" ]
+          }
+          if (angle_enable_vulkan_validation_layers) {
+            foreach(_layer, vulkan_validation_layers) {
+              secondary_abi_shared_libraries += [
+                "$angle_root/third_party/vulkan-validation-layers:${_layer}" +
+                    "($android_secondary_abi_toolchain)",
+              ]
+            }
+          }
+        } else {
+          _secondary_out_dir = get_label_info(
+                  ":compressed_symbols($android_secondary_abi_toolchain)",
+                  "root_out_dir")
+          secondary_abi_loadable_modules = []
+          foreach(_library, angle_libraries) {
+            secondary_abi_loadable_modules += [ "$_secondary_out_dir/lib.compressed/${_library}${angle_libs_suffix}.so" ]
+          }
+          if (angle_enable_vulkan_validation_layers) {
+            foreach(_layer, vulkan_validation_layers) {
+              secondary_abi_loadable_modules +=
+                  [ "${_secondary_out_dir}/lib.compressed/lib${_layer}.so" ]
+            }
+          }
+        }
+      }
 
-    if (build_apk_secondary_abi && android_64bit_target_cpu) {
       if (symbol_level == 0) {
-        secondary_abi_shared_libraries = []
+        shared_libraries = []
         foreach(_library, angle_libraries) {
-          secondary_abi_shared_libraries +=
-              [ "$angle_root:${_library}($android_secondary_abi_toolchain)" ]
+          shared_libraries += [ "$angle_root:$_library" ]
         }
         if (angle_enable_vulkan_validation_layers) {
           foreach(_layer, vulkan_validation_layers) {
-            secondary_abi_shared_libraries +=
-                [ "$angle_root/third_party/vulkan-validation-layers:${_layer}" +
-                  "($android_secondary_abi_toolchain)" ]
+            shared_libraries +=
+                [ "$angle_root/third_party/vulkan-validation-layers:${_layer}" ]
           }
         }
       } else {
-        _secondary_out_dir = get_label_info(
-                ":compressed_symbols($android_secondary_abi_toolchain)",
-                "root_out_dir")
-        secondary_abi_loadable_modules = []
+        loadable_modules = []
         foreach(_library, angle_libraries) {
-          secondary_abi_loadable_modules += [ "$_secondary_out_dir/lib.compressed/${_library}${angle_libs_suffix}.so" ]
+          loadable_modules += [
+            "$root_out_dir/lib.compressed/${_library}${angle_libs_suffix}.so",
+          ]
         }
         if (angle_enable_vulkan_validation_layers) {
           foreach(_layer, vulkan_validation_layers) {
-            secondary_abi_loadable_modules +=
-                [ "${_secondary_out_dir}/lib.compressed/lib${_layer}.so" ]
+            loadable_modules +=
+                [ "$root_out_dir/lib.compressed/lib${_layer}.so" ]
           }
         }
       }
     }
-
-    if (symbol_level == 0) {
-      shared_libraries = []
-      foreach(_library, angle_libraries) {
-        shared_libraries += [ "$angle_root:$_library" ]
-      }
-      if (angle_enable_vulkan_validation_layers) {
-        foreach(_layer, vulkan_validation_layers) {
-          shared_libraries +=
-              [ "$angle_root/third_party/vulkan-validation-layers:${_layer}" ]
-        }
-      }
-    } else {
-      loadable_modules = []
-      foreach(_library, angle_libraries) {
-        loadable_modules += [
-          "$root_out_dir/lib.compressed/${_library}${angle_libs_suffix}.so",
-        ]
-      }
-      if (angle_enable_vulkan_validation_layers) {
-        foreach(_layer, vulkan_validation_layers) {
-          loadable_modules += [ "$root_out_dir/lib.compressed/lib${_layer}.so" ]
-        }
-      }
-    }
   }
 }
index 5bf1aa2..dbaf832 100644 (file)
@@ -14,4 +14,5 @@ angle_googletest_dir = "//third_party/googletest/src"
 angle_libjpeg_turbo_dir = "//third_party/libjpeg_turbo"
 angle_jsoncpp_dir = "//third_party/jsoncpp"
 angle_libpng_dir = "//third_party/libpng"
+angle_spirv_cross_dir = "//third_party/spirv-cross/src"
 angle_spirv_tools_dir = "//third_party/spirv-tools/src"
index 2351138..268e62f 100644 (file)
@@ -24,3 +24,6 @@ if (host_os == "mac" && use_system_xcode == "") {
 
   use_system_xcode = _result != 1
 }
+
+# ANGLE standalone builds don't currently support java templates or APK generation
+enable_java_templates = build_with_chromium
diff --git a/Source/ThirdParty/ANGLE/build_overrides/swiftshader.gni b/Source/ThirdParty/ANGLE/build_overrides/swiftshader.gni
new file mode 100644 (file)
index 0000000..a11c387
--- /dev/null
@@ -0,0 +1,12 @@
+# Copyright 2019 The ANGLE Project Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# We are building SwiftShader in ANGLE
+swiftshader_standalone = false
+
+# Path to SwiftShader
+swiftshader_dir = "//third_party/SwiftShader"
+
+# Paths to SwiftShader dependencies
+swiftshader_spirv_tools_dir = "//third_party/spirv-tools/src"
diff --git a/Source/ThirdParty/ANGLE/build_overrides/vulkan_headers.gni b/Source/ThirdParty/ANGLE/build_overrides/vulkan_headers.gni
new file mode 100644 (file)
index 0000000..202900f
--- /dev/null
@@ -0,0 +1,7 @@
+# Copyright 2019 The ANGLE Project Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//gni/angle.gni")
+
+vulkan_use_x11 = angle_use_x11
diff --git a/Source/ThirdParty/ANGLE/build_overrides/vulkan_loader.gni b/Source/ThirdParty/ANGLE/build_overrides/vulkan_loader.gni
new file mode 100644 (file)
index 0000000..580eda1
--- /dev/null
@@ -0,0 +1,10 @@
+# Copyright 2019 The ANGLE Project Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//gni/angle.gni")
+
+vulkan_headers_dir = "//third_party/vulkan-headers/src"
+
+vulkan_gen_subdir = "angle/vulkan"
+vulkan_loader_shared = angle_shared_libvulkan
diff --git a/Source/ThirdParty/ANGLE/build_overrides/vulkan_tools.gni b/Source/ThirdParty/ANGLE/build_overrides/vulkan_tools.gni
new file mode 100644 (file)
index 0000000..4691eae
--- /dev/null
@@ -0,0 +1,10 @@
+# Copyright 2019 The ANGLE Project Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//gni/angle.gni")
+
+vulkan_headers_dir = "//third_party/vulkan-headers/src"
+
+vulkan_data_subdir = angle_data_dir
+vulkan_gen_subdir = "angle/vulkan"
diff --git a/Source/ThirdParty/ANGLE/build_overrides/vulkan_validation_layers.gni b/Source/ThirdParty/ANGLE/build_overrides/vulkan_validation_layers.gni
new file mode 100644 (file)
index 0000000..5d691b9
--- /dev/null
@@ -0,0 +1,12 @@
+# Copyright 2019 The ANGLE Project Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//gni/angle.gni")
+
+vulkan_headers_dir = "//third_party/vulkan-headers/src"
+vvl_spirv_tools_dir = "//third_party/spirv-tools/src"
+vvl_glslang_dir = "//third_party/glslang/src"
+
+vulkan_data_subdir = angle_data_dir
+vulkan_gen_subdir = "angle/vulkan"
index 43978d7..e44c9dd 100644 (file)
@@ -3,3 +3,4 @@ CODE_REVIEW_SERVER: https://chromium-review.googlesource.com
 GERRIT_HOST: True
 TRYSERVER_GERRIT_URL: https://chromium-review.googlesource.com
 GERRIT_SQUASH_UPLOADS: False
+FORMAT_FULL_BY_DEFAULT: True
diff --git a/Source/ThirdParty/ANGLE/doc/CaptureAndReplay.md b/Source/ThirdParty/ANGLE/doc/CaptureAndReplay.md
new file mode 100644 (file)
index 0000000..25eae75
--- /dev/null
@@ -0,0 +1,133 @@
+# ANGLE OpenGL Frame Capture and Replay
+
+ANGLE currently supports a limited OpenGL capture and replay framework.
+
+Limitations:
+
+ * GLES capture has many unimplemented functions.
+ * EGL capture and replay is not yet supported.
+ * Mid-execution capture is supported with the Vulkan back-end.
+ * Mid-execution capture has many unimplemented features.
+ * Capture and replay is currently only tested on desktop platforms.
+ * Binary replay is unimplemented. CPP replay is supported.
+
+## Capturing and replaying an application
+
+To build ANGLE with capture and replay enabled update your GN args:
+
+```
+angle_with_capture_by_default = true
+```
+
+Once built ANGLE will capture the OpenGL ES calls to CPP replay files. By default the replay will be
+stored in the current working directory. The capture files will be named according to the pattern
+`angle_capture_context{id}_frame{n}.cpp`. Each GL Context currently has its own replay sources.
+ANGLE will write out data binary blobs for large Texture or Buffer contents to
+`angle_capture_context{id}_frame{n}.angledata`. Replay programs must be able to load data from the
+corresponding `angledata` files.
+
+## Controlling Frame Capture
+
+Some simple environment variables control frame capture:
+
+ * `ANGLE_CAPTURE_ENABLED`:
+   * Set to `0` to disable capture entirely. Default is `1`.
+ * `ANGLE_CAPTURE_OUT_DIR=<path>`:
+   * Can specify an alternate replay output directory.
+   * Example: `ANGLE_CAPTURE_OUT_DIR=samples/capture_replay`. Default is the CWD.
+ * `ANGLE_CAPTURE_FRAME_START=<n>`:
+   * Uses mid-execution capture to write "Setup" functions that starts a Context at frame `n`.
+   * Example: `ANGLE_CAPTURE_FRAME_START=2`. Default is `0`.
+ * `ANGLE_CAPTURE_FRAME_END=<n>`:
+   * By default ANGLE will capture the first ten frames. This variable can override the default.
+   * Example: `ANGLE_CAPTURE_FRAME_END=4`. Default is `10`.
+
+A good way to test out the capture is to use environment variables in conjunction with the sample
+template. For example:
+
+```
+$ ANGLE_CAPTURE_FRAME_END=4 ANGLE_CAPTURE_OUT_DIR=samples/capture_replay out/Debug/simple_texture_2d
+```
+
+## Running a CPP replay
+
+To run a CPP replay you can use a template located in
+[samples/capture_replay](../samples/capture_replay). First run your capture and ensure all capture
+files are written to `samples/capture_replay`. You can conveniently use `ANGLE_CAPTURE_OUT_DIR`.
+Then enable the `capture_replay_sample` via `gn args`:
+
+```
+angle_build_capture_replay_sample = true
+```
+
+See [samples/BUILD.gn](../samples/BUILD.gn) for details. Then build and run your replay sample:
+
+```
+$ autoninja -C out/Debug capture_replay_sample
+$ ANGLE_CAPTURE_ENABLED=0 out/Debug/capture_replay_sample
+```
+
+Note that we specify `ANGLE_CAPTURE_ENABLED=0` to prevent re-capturing when running the replay.
+
+## Capturing an Android application
+
+In order to capture on Android, the following additional steps must be taken. These steps
+presume you've built and installed the ANGLE APK with capture enabled, and selected ANGLE
+as the GLES driver for your application.
+
+1. Create the output directory
+
+    Determine your package name:
+    ```
+    export PACKAGE_NAME com.android.gl2jni
+    ```
+    Then create an output directory that it can write to:
+    ```
+    $ adb shell mkdir -p /sdcard/Android/data/$PACKAGE_NAME/angle_capture
+    ```
+
+2. Set properties to use for environment variable
+
+    On Android, it is difficult to set an environment variable before starting native code.
+    To work around this, ANGLE will read debug system properties before starting the capture
+    and use them to prime environment variables used by the capture code.
+
+    Note: Mid-execution capture doesn't work for Android just yet, so frame_start must be
+    zero, which is the default. This it is sufficient to only set the end frame.
+    ```
+    $ adb shell setprop debug.angle.capture.frame_end 200
+    ```
+
+    There are other properties that can be set that match 1:1 with the env vars, but
+    they are not required for capture:
+    ```
+    # Optional
+    $ adb shell setprop debug.angle.capture.enabled 0
+    $ adb shell setprop debug.angle.capture.out_dir foo
+    $ adb shell setprop debug.angle.capture.frame_start 0
+    ```
+
+3.  Run the application, then pull the files to the capture_replay directory
+    ```
+    $ cd samples/capture_replay
+    $ adb pull /sdcard/Android/data/$PACKAGE_NAME/angle_capture replay_files
+    $ cp replay_files/* .
+    ```
+
+4. Update your GN args to specifiy which context will be replayed.
+
+    By default Context ID 1 will be replayed. On Android, Context ID 2 is more typical, some apps
+    we've run go as high as ID 6.
+    Note: this solution is temporary until EGL capture is in place.
+    ```
+    angle_capture_replay_sample_context_id = 2
+    ```
+
+5. Replay the capture on desktop
+
+    Until we have samples building for Android, the replay sample must be run on desktop.
+    We will also be plumbing replay files into perf and correctness tests which will run on Android.
+    ```
+    $ autoninja -C out/Release capture_replay_sample
+    $ out/Release/capture_replay_sample
+    ```
\ No newline at end of file
index 80d2170..0d04869 100644 (file)
@@ -29,7 +29,7 @@ The `gtest` targets support wildcards via the `--gtest_filter` argument,
 but have different test names.
 
 The tests lists are sourced from the Android CTS masters in
-`third_party/deqp/src/android/cts/master`. See `gles2-master.txt`,
+`third_party/VK-GL-CTS/src/android/cts/master`. See `gles2-master.txt`,
 `gles3-master.txt`, `gles31-master.txt` and `egl-master.txt`.
 
 If you're running a full test suite, it might take very long time. Running in
@@ -47,6 +47,7 @@ To specify the exact platform for ANGLE + dEQP, use the arguments:
   * `--deqp-egl-display-type=angle-gl` for OpenGL Desktop (OSX, Linux and Windows)
   * `--deqp-egl-display-type=angle-gles` for OpenGL ES (Android/ChromeOS, some Windows platforms)
   * `--deqp-egl-display-type=angle-vulkan` for Vulkan (Android, Linux, Windows)
+  * `--deqp-egl-display-type=angle-swiftshader` for Vulkan with SwiftShader as driver (Android, Linux, Windows)
 
 The flag `--use-angle=X` has the same effect as `--deqp-egl-display-type=angle-X`.
 
index baf6e60..d42beef 100644 (file)
@@ -6,12 +6,5 @@
 # to make it easier to roll new versions of ANGLE in.
 
 angle_dotfile_settings = {
-  exec_script_whitelist = [
-    get_path_info("BUILD.gn", "abspath"),
-    get_path_info("third_party/vulkan-headers/src/BUILD.gn", "abspath"),
-    get_path_info("third_party/vulkan-loader/src/BUILD.gn", "abspath"),
-    get_path_info("third_party/vulkan-tools/src/BUILD.gn", "abspath"),
-    get_path_info("third_party/vulkan-validation-layers/src/BUILD.gn",
-                  "abspath"),
-  ]
+  exec_script_whitelist = [ get_path_info("BUILD.gn", "abspath") ]
 }
index ea0909c..3aa4478 100644 (file)
@@ -92,20 +92,20 @@ New Procedures and Functions
                                                         GLuint baseInstance);
 
     void MultiDrawArraysInstancedBaseInstanceANGLE(enum mode,
-                                                const GLsizei drawcount,
+                                                const GLint* firsts,
                                                 const GLsizei* counts,
                                                 const GLsizei* instanceCounts,
-                                                const GLint* firsts,
-                                                const GLint* baseInstances);
+                                                const GLint* baseInstances,
+                                                const GLsizei drawcount);
 
     void MultiDrawElementsInstancedBaseVertexBaseInstanceANGLE(enum mode,
-                                                const GLsizei drawcount,
                                                 const GLint* counts,
                                                 GLenum type,
                                                 const GLvoid* const* indices,
                                                 const GLsizei* instanceCounts,
                                                 const GLint* baseVertices,
-                                                const GLint* baseInstances);
+                                                const GLint* baseInstances,
+                                                const GLsizei drawcount);
 
 New Tokens
 
@@ -132,11 +132,11 @@ Additions to Chapter 10 of the OpenGL ES 3.2 Specification
     The command
 
     void MultiDrawArraysInstancedBaseInstanceANGLE(GLenum mode,
-        GLsizei drawcount,
+        const GLint* firsts,
         const GLsizei* counts,
         const GLsizei* instanceCounts,
-        const GLint* firsts,
-        const GLuint* baseInstances);
+        const GLuint* baseInstances,
+        GLsizei drawcount);
 
     Behaves identically to DrawArraysInstancedBaseInstanceANGLE except that a
     list of arrays is specified instead. The number of lists is specified in
@@ -177,14 +177,14 @@ Additions to Chapter 10 of the OpenGL ES 3.2 Specification
 
     The command
 
-    void MultiDrawElementsInstancedBaseVertexBaseInstanceANGL(GLenum mode,
-        GLenum type,
-        GLsizei drawcount,
+    void MultiDrawElementsInstancedBaseVertexBaseInstanceANGLE(GLenum mode,
         const GLsizei* counts,
-        const GLsizei* instanceCounts,
+        GLenum type,
         const GLvoid* const* indices,
+        const GLsizei* instanceCounts,
         const GLint* baseVertices,
-        const GLuint* baseInstances);
+        const GLuint* baseInstances,
+        GLsizei drawcount);
 
     Behaves identically to DrawElementsInstancedBaseVertexBaseInstanceANGLE
     except that a list of arrays is specified instead. The number of lists is
diff --git a/Source/ThirdParty/ANGLE/extensions/ANGLE_get_image.txt b/Source/ThirdParty/ANGLE/extensions/ANGLE_get_image.txt
new file mode 100644 (file)
index 0000000..444e2eb
--- /dev/null
@@ -0,0 +1,212 @@
+Name
+
+    ANGLE_get_image
+
+Name Strings
+
+    GL_ANGLE_get_image
+
+Contributors
+
+    Jamie Madill
+
+Contact
+
+    Jamie Madill (jmadill 'at' google.com)
+
+Notice
+
+    Copyright (c) 2019 The Khronos Group Inc. Copyright terms at
+        http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+    Draft
+
+Version
+
+    Version 1, October 21, 2019
+
+Number
+
+    OpenGL ES Extension #??
+
+Dependencies
+
+    Requires OpenGL ES 2.0
+
+    Written against the OpenGL ES 3.2 specification.
+
+Overview
+
+    This extension allows the OpenGL application to query and read back Texture
+    and Renderbuffer pixel data. The OpenGL context exposes new queries for the
+    implementation pixel format and type similar to glReadPixels. The context
+    also exposes new commands to read back pixel data with these parameters.
+
+New Procedures and Functions
+
+    void GetTexImageANGLE(GLenum target, GLint level, GLenum format, GLenum type,
+                          void *pixels);
+
+    void GetRenderbufferImageANGLE(GLenum target, GLint level, GLenum format,
+                                   GLenum type, void *pixels);
+
+New Tokens
+
+    None
+
+Additions to the OpenGL ES Specification
+
+    Update section 8.11.2 "Texture Parameter Queries":
+
+    Change "<pname> must be one of IMAGE_FORMAT_COMPATIBILITY_TYPE, TEXTURE_-
+    IMMUTABLE_FORMAT, TEXTURE_IMMUTABLE_LEVELS, or one of the symbolic
+    values in table 8.19." to "<pname> must be one of IMAGE_FORMAT_COMPATIBILITY_-
+    TYPE, TEXTURE_IMMUTABLE_FORMAT, TEXTURE_IMMUTABLE_LEVELS, IMPLEMENTATION_-
+    COLOR_READ_TYPE, IMPLEMENTATION_COLOR_READ_FORMAT or one of the symbolic
+    values in table 8.19.".
+
+    Add a paragrah: "Querying <pname> with IMPLEMENTATION_COLOR_READ_TYPE or
+    IMPLEMENTATION_COLOR_READ_FORMAT returns the implementation-dependent read
+    format and type for use with GetTexImageANGLE."
+
+    Update section 9.2.6 "Renderbuffer Object Queries":
+
+    Add a paragraph: "If <pname> is IMPLEMENTATION_COLOR_READ_TYPE or
+    IMPLEMENTATION_COLOR_READ_FORMAT then <params> will contain the
+    implementation-dependent read format and type for use with
+    GetRenderbufferImageANGLE."
+
+    Add a section "Texture and Renderbuffer Image Queries":
+
+    Texture and Renderbuffer images may be obtained from a Texture or
+    Renderbuffer with the commands
+
+    void GetTexImageANGLE(GLenum target, GLint level, GLenum format, GLenum type,
+                          void *pixels);
+
+    void GetRenderbufferImageANGLE(GLenum target, GLenum format, GLenum type,
+                                   void *pixels);
+
+    For GetTexImageANGLE, <target> specifies the target to which the texture
+    object is bound. target must be one of TEXTURE_2D, TEXTURE_3D,
+    TEXTURE_2D_ARRAY, TEXTURE_CUBE_MAP_ARRAY, indicating a two- or three-
+    dimensional, two-dimensional array, cube map array respectively. <target>
+    may also be one of the targets from table 8.20, indicating the
+    corresponding face of a cube map texture.
+
+    For GetRenderbufferImageANGLE, <target> must be RENDERBUFFER.
+
+    <level> is a level-of-detail number, <format> is a pixel format from table 8.5,
+    and <type> is a pixel type from table 8.4.
+
+    These commands obtain component groups from a texture or renderbuffer image
+    with the indicated level-of-detail. If <format> is a color format then the
+    components are assigned among R, G, B, and A, starting with the first group
+    in the first row, and continuing by obtaining groups in order from each row
+    and proceeding from the first row to the last, and from the first image to
+    the last for three-dimensional textures. Two-dimensional array and cube map
+    array textures are treated as three-dimensional images, where the layers are
+    treated as rows or images. Cube map textures are treated as three-dimensional
+    images with a depth of 6, where the cube map faces are ordered as image layers
+    as shown in table 8.24.
+
+    If <format> is DEPTH_COMPONENT, DEPTH_STENCIL, or STENCIL_INDEX, then
+    each depth component and/or stencil index is assigned with the same ordering of
+    rows and images.
+
+    These groups are then packed and placed in client or pixel buffer object memory.
+    If a pixel pack buffer is bound (as indicated by a non-zero value of PIXEL_-
+    PACK_BUFFER_BINDING), <pixels> is an offset into the pixel pack buffer;
+    otherwise, <pixels> is a pointer to client memory. Pixel storage modes that are
+    applicable to ReadPixels are applied, as described in table 16.1 and section
+    16.1.2.
+
+    For three-dimensional, two-dimensional array, cube map array, and cube map
+    textures pixel storage operations are applied as if the image were two-
+    dimensional, except that the additional pixel storage state values
+    PACK_IMAGE_HEIGHT and PACK_SKIP_IMAGES are applied. The correspondence of texels
+    to memory locations is as defined for TexImage3D in section 8.5.
+
+    The row length, number of rows, image depth, and number of images are determined
+    by the size of the texture or renderbuffer image (including any borders).
+
+    Errors:
+
+    An INVALID_ENUM error is generated by GetTexImage if <target> is
+    not one of TEXTURE_2D, TEXTURE_3D, TEXTURE_2D_ARRAY, TEXTURE_CUBE_MAP_ARRAY,
+    or one of the targets from table 8.20.
+
+    An INVALID_ENUM error is generated by GetRenderbufferImage is <target> is not
+    RENDERBUFFER.
+
+    An INVALID_VALUE error is generated if <level> is negative or larger than
+    the maximum allowable level.
+
+    An INVALID_OPERATION error is generated if any of the following mismatches
+    between <format> and the internal format of the texture or renderbuffer image
+    exist:
+
+      * <format> is a color format (one of the formats in table 8.3 whose target is
+        the color buffer) and the base internal format of the texture or renderbuffer
+        image is not a color format.
+
+      * <format> is DEPTH_COMPONENT and the base internal format is not
+        DEPTH_COMPONENT or DEPTH_STENCIL.
+
+      * <format> is DEPTH_STENCIL and the base internal format is not DEPTH_-
+        STENCIL.
+
+      * <format> is STENCIL_INDEX and the base internal format is not
+        STENCIL_INDEX or DEPTH_STENCIL.
+
+      * <format> is one of the integer formats in table 8.5 and the internal format
+        of the texture or renderbuffer image is not integer, or <format> is not one
+        of the integer formats in table 8.5 and the internal format is integer.
+
+    An INVALID_OPERATION error is generated if a pixel pack buffer object
+    is bound and packing the texture or renderbuffer image into the buffer’s
+    memory would exceed the size of the buffer.
+
+    An INVALID_OPERATION error is generated if a pixel pack buffer object
+    is bound and <pixels> is not evenly divisible by the number of basic machine
+    units needed to store in memory the GL data type corresponding to type (see
+    table 8.4).
+
+Dependencies on ARB_texture_rectangle
+
+    TEXTURE_RECTANGLE is accepted by GetTexImageANGLE and GetRenderbufferImageANGLE.
+
+    An INVALID_VALUE error is generated if <level> is non-zero and the effective
+    <target> is TEXTURE_RECTANGLE.
+
+New State
+
+    Add to table 21.10 "Textures (state per texture object)":
+
+    Get Value                         Type  Get Command            Initial Value   Description                  Section
+    --------------------------------  ----  -----------            -------------   ---------------------------  -------
+    IMPLEMENTATION_COLOR_READ_FORMAT  E     GetTextureParameteriv  empty           Implementation pixel format  8.11.2
+    IMPLEMENTATION_COLOR_READ_TYPE    E     GetTextureParameteriv  empty           Implementation pixel type    8.11.2
+
+    Add to table 21.17 "Renderbuffer (state per renderbuffer object)":
+
+    Get Value                         Type  Get Command                 Initial Value   Description                  Section
+    --------------------------------  ----  -----------                 -------------   ---------------------------  -------
+    IMPLEMENTATION_COLOR_READ_FORMAT  E     GetRenderbufferParameteriv  empty           Implementation pixel format  9.2.6
+    IMPLEMENTATION_COLOR_READ_TYPE    E     GetRenderbufferParameteriv  empty           Implementation pixel type    9.2.6
+
+Issues
+
+    1) Should GetTexImageANGLE/GetRenderbufferImageANGLE only accept IMPLEMENTATION-
+       _COLOR_READ_FORMAT/TYPE or should they behave the same as GetTexImage in GL?
+
+       Resolved: Keep the spec wording closer to the desktop GL version. It should
+       not involve much additional implementation work except for validation.
+
+Revision History
+
+    Rev.    Date         Author                 Changes
+    ----  -------------  ---------              ----------------------------------------
+      1   Oct 24, 2019   jmadill                Initial version
index 6536035..88d3422 100644 (file)
@@ -9,6 +9,7 @@ Name Strings
 Contributors
 
     Geoff Lang
+    James Darpinian
 
 Contact
 
@@ -25,7 +26,7 @@ Status
 
 Version
 
-    Version 1, November 28, 2016
+    Version 2, October 4, 2019
 
 Number
 
@@ -40,12 +41,14 @@ Dependencies
 Overview
 
     This extension allows the client to query extensions that can be enabled and
-    explicitly request than an extension be enabled.
+    explicitly request that an extension be enabled or disabled.
 
 New Procedures and Functions
 
     void RequestExtension(const char *name)
 
+    void DisableExtension(const char *name)
+
 New Tokens
 
     Accepted by the <name> parameter of GetString and GetStringi:
@@ -74,12 +77,15 @@ Additions to the OpenGL ES 3.0 Specification
     + extension should be returned. <index> may range from zero to the value of
     + NUM_EXTENSIONS and NUM_REQUESTABLE_EXTENSIONS_ANGLE minus one"
 
-    The command
+    The commands
 
        void RequestExtension(const char *name)
+       void DisableExtension(const char *name)
 
-    enables the requestable OpenGL ES extension named <name>. If the extension
-    was not requestable, INVALID_OPERATION is generated.
+    enable or disable the requestable OpenGL ES extension named <name>. If the
+    requested extension was not requestable or disablable, INVALID_OPERATION is
+    generated. Not all requestable extensions can be disabled. There is
+    currently no query for disablable extensions.
 
 New State
 
@@ -114,3 +120,4 @@ Revision History
     Rev.    Date         Author     Changes
     ----  -------------  ---------  ----------------------------------------
       1    Nov 28, 2016  geofflang  Initial version
+      2    Oct 4, 2019   jdarpinian Add DisableExtension
index ee86d79..39dba5a 100644 (file)
@@ -85,15 +85,22 @@ New Tokens
 
         EGL_FEATURE_OVERRIDES_ENABLED_ANGLE   0x3466
         EGL_FEATURE_OVERRIDES_DISABLED_ANGLE  0x3467
+        EGL_FEATURE_ALL_DISABLED_ANGLE  0x3469
 
 New Behavior
 
+        EGLDisplay eglGetPlatformDisplay(EGLenum platform, void
+            *native_display, const EGLAttrib *attrib_list);
+
     The attribute following EGL_FEATURE_OVERRIDES_ENABLED_ANGLE or
     EGL_FEATURE_OVERRIDES_DISABLED_ANGLE should be of type char**,
     which should contain a null-terminated array of C strings naming
     the features to be enabled or disabled upon display creation.
     Any features unspecified in one of these arrays will be
     initialized with an internal heuristic.
+    The attribute following EGL_FEATURE_ALL_DISABLED_ANGLE should be
+    either EGL_TRUE to disable all features that are not overridden,
+    or EGL_FALSE to let ANGLE determine which features to enable.
 
 Add the following to the end of section 3.3 "EGL Queries":
 
diff --git a/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_ggp_stream_descriptor.txt b/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_ggp_stream_descriptor.txt
new file mode 100644 (file)
index 0000000..843d9b2
--- /dev/null
@@ -0,0 +1,73 @@
+Name
+
+    ANGLE_ggp_stream_descriptor
+
+Name Strings
+
+    EGL_ANGLE_ggp_stream_descriptor
+
+Contributors
+
+    Jamie Madill
+
+Contacts
+
+    Jamie Madill, Google Inc. (jmadill 'at' google.com)
+
+Status
+
+    Draft
+
+Version
+
+    Version 1, November 3, 2019
+
+Number
+
+    EGL Extension #??
+
+Dependencies
+
+    This extension is written against the wording of the EGL 1.5
+    Specification.
+
+Overview
+
+    This extension allows initializing an EGL Window surface backed by a
+    VkSurfaceKHR with a Google Games Platform GgpStreamDescriptor.
+
+    It is based on the Vulkan extension VK_GGP_stream_descriptor_surface.
+
+New Types
+
+    None
+
+New Procedures and Functions
+
+    None
+
+New Tokens
+
+    Accepted as an attribute name in the <attrib_list> argument to
+    eglCreateSurfaceKHR:
+
+        EGL_GGP_STREAM_DESCRIPTOR_ANGLE  0x348B
+
+Additions to the EGL 1.5 Specification
+
+    Add the following to section 3.5.1 "Creating On-Screen Rendering Surfaces":
+
+    EGL_GGP_STREAM_DESCRIPTOR_ANGLE indicates a GgpStreamDescriptor referring
+    to the GGP stream descriptor to associate with the surface. If
+    EGL_GGP_STREAM_DESCRIPTOR_ANGLE is not specified a default stream
+    descriptor will be used.
+
+Issues
+
+    None yet.
+
+Revision History
+
+    Rev.    Date         Author     Changes
+    ----  -------------  ---------  ----------------------------------------
+      1   Nov 3, 2019    jmadill    Initial version
diff --git a/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_swap_with_frame_token.txt b/Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_swap_with_frame_token.txt
new file mode 100644 (file)
index 0000000..f58b7c7
--- /dev/null
@@ -0,0 +1,83 @@
+Name
+
+    ANGLE_swap_with_frame_token
+
+Name Strings
+
+    EGL_ANGLE_swap_with_frame_token
+
+Contributors
+
+    Jamie Madill
+
+Contacts
+
+    Jamie Madill, Google Inc. (jmadill 'at' google.com)
+
+Status
+
+    Draft
+
+Version
+
+    Version 1, November 3, 2019
+
+Number
+
+    EGL Extension #??
+
+Dependencies
+
+    This extension is written against the wording of the EGL 1.5
+    Specification.
+
+Overview
+
+    This extension allows an application that uses a Google Games
+    Platform surface to associate a Google Games Platform frame token
+    with an eglSwapBuffers operation.
+
+    It is based on the Vulkan extension VK_GGP_frame_token.
+
+New Types
+
+    This is a 64-bit unsigned type that represents a GGP frame token.
+
+    typedef khronos_uint64_t EGLFrameTokenANGLE;
+
+New Procedures and Functions
+
+    EGLBoolean eglSwapBuffersWithFrameTokenANGLE(
+        EGLDisplay dpy,
+        EGLSurface surface,
+        EGLFrameTokenANGLE frametoken);
+
+New Tokens
+
+    None
+
+Additions to the EGL 1.5 Specification
+
+    Add the following to section 3.10.1 "Posting to a Window":
+
+    A Google Games Platform frame token can be specified when posting a color
+    buffer to a window by calling
+
+        EGLBoolean eglSwapBuffersWithFrameTokenANGLE(
+            EGLDisplay dpy,
+            EGLSurface surface,
+            EGLFrameTokenANGLE frametoken);
+
+    The behaviour of eglSwapBuffersWithFrameTokenANGLE is identical to that
+    of eglSwapBuffers except that the behaviour is undefined when <frametoken>
+    is not a valid GgpFrameToken.
+
+Issues
+
+    None yet.
+
+Revision History
+
+    Rev.    Date         Author     Changes
+    ----  -------------  ---------  ----------------------------------------
+      1   Nov 3, 2019    jmadill    Initial version
index e0ca7aa..642860e 100644 (file)
@@ -4,6 +4,10 @@
 
 import("//build_overrides/angle.gni")
 
+declare_args() {
+  is_ggp = false
+}
+
 if (angle_has_build) {
   import("//build/config/dcheck_always_on.gni")
   import("//build/config/sanitizers/sanitizers.gni")
@@ -17,6 +21,8 @@ if (angle_has_build) {
   if (is_win) {
     import("//build/config/win/visual_studio_version.gni")
   }
+
+  angle_use_x11 = use_x11 && !is_ggp
 } else {
   declare_args() {
     is_ubsan = false
@@ -24,7 +30,7 @@ if (angle_has_build) {
     is_asan = false
     build_with_chromium = false
     dcheck_always_on = false
-    use_x11 = is_linux
+    angle_use_x11 = is_linux && !is_ggp
     use_ozone = false
     use_fuzzing_engine = false
   }
@@ -80,19 +86,23 @@ declare_args() {
   angle_enable_d3d9 = is_win && !angle_is_winuwp
   angle_enable_d3d11 = is_win
   angle_enable_gl =
-      (ozone_platform_gbm || !is_linux || (use_x11 && !is_chromeos)) &&
-      !is_fuchsia && !angle_is_winuwp
+      (ozone_platform_gbm || !is_linux || (angle_use_x11 && !is_chromeos)) &&
+      !is_fuchsia && !angle_is_winuwp && !is_ggp
 
   # ANGLE Vulkan backend on Android requires API level 26, i.e. Oreo, due to
   # Vulkan Validation Layers compatibility issues, see http://crrev/c/1405714.
   # Otherwise, API level 24 would have been enough.
   angle_enable_vulkan =
       angle_has_build &&
-      ((is_win && !angle_is_winuwp) || (is_linux && use_x11 && !is_chromeos) ||
-       (is_android && ndk_api_level_at_least_26) || is_fuchsia)
+      ((is_win && !angle_is_winuwp) ||
+       (is_linux && angle_use_x11 && !is_chromeos) ||
+       (is_android && ndk_api_level_at_least_26) || is_fuchsia || is_ggp)
   angle_enable_null = true
   angle_enable_essl = true
   angle_enable_glsl = true
+
+  # http://anglebug.com/2634
+  angle_enable_metal = is_mac
 }
 
 declare_args() {
@@ -110,7 +120,9 @@ declare_args() {
 }
 
 angle_common_configs = [
+  angle_root + ":angle_release_asserts_config",
   angle_root + ":better_linux_stack_traces",
+  angle_root + ":constructor_and_destructor_warnings",
   angle_root + ":extra_warnings",
   angle_root + ":internal_config",
 ]
@@ -128,7 +140,13 @@ if (angle_has_build && is_clang) {
 
   # Disabled to enable better stack traces.
   if (angle_better_stack_traces) {
-    angle_remove_configs += [ "//build/config/gcc:symbol_visibility_hidden" ]
+    # This line causes in-class-inline-functions in glslang to be weak symbols.  The KHR dEQP tests
+    # link against glslang as well as libGLESv2.so, resulting in angle_deqp_khr_gles*_tests to link
+    # those weak symbols.  Due to glslang's usage of a global variable in InitializeDll.cpp, a bug
+    # is created where ANGLE sometimes calls into its own copy of glslang and sometimes the KHR
+    # dEQP's version, with the two copies of the global variable being inconsistent.
+    # Commented out until the underlying issue is resolved.  http://anglebug.com/4123
+    # angle_remove_configs += [ "//build/config/gcc:symbol_visibility_hidden" ]
   }
 }
 
@@ -169,6 +187,14 @@ set_defaults("angle_test") {
   if (build_with_chromium) {
     suppressed_configs -= [ "//build/config/compiler:default_include_dirs" ]
   }
+
+  if (is_android) {
+    if (build_with_chromium) {
+      use_native_activity = true
+    } else {
+      use_raw_android_executable = true
+    }
+  }
 }
 
 template("angle_executable") {
@@ -277,6 +303,7 @@ template("angle_test") {
 
     configs += invoker.configs
     configs -= invoker.suppressed_configs
+    configs -= [ angle_root + ":constructor_and_destructor_warnings" ]
     configs -= [ angle_root + ":extra_warnings" ]
 
     if (is_linux && !is_component_build) {
@@ -286,7 +313,9 @@ template("angle_test") {
 
     if (is_android) {
       configs += [ angle_root + ":build_id_config" ]
-      configs -= [ "//build/config/android:hide_all_but_jni" ]
+      if (build_with_chromium) {
+        configs -= [ "//build/config/android:hide_all_but_jni" ]
+      }
     }
 
     deps += _googletest_deps + [
index d3dd23d..2c3ba6b 100644 (file)
@@ -235,6 +235,7 @@ EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncValuesCHROMIUM(EGLDisplay dpy,
 #define EGL_FEATURE_OVERRIDES_ENABLED_ANGLE 0x3466
 #define EGL_FEATURE_OVERRIDES_DISABLED_ANGLE 0x3467
 #define EGL_FEATURE_CONDITION_ANGLE 0x3468
+#define EGL_FEATURE_ALL_DISABLED_ANGLE 0x3469
 typedef const char *(EGLAPIENTRYP PFNEGLQUERYSTRINGIANGLEPROC) (EGLDisplay dpy, EGLint name, EGLint index);
 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBANGLEPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
 #ifdef EGL_EGLEXT_PROTOTYPES
@@ -259,6 +260,20 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribANGLE(EGLDisplay dpy, EGLint
 #define EGL_CGL_PIXEL_FORMAT_ANGLE 0x3486
 #endif
 
+#ifndef EGL_ANGLE_ggp_stream_descriptor
+#define EGL_ANGLE_ggp_stream_descriptor 1
+#define EGL_GGP_STREAM_DESCRIPTOR_ANGLE 0x348B
+#endif /* EGL_ANGLE_ggp_stream_descriptor */
+
+#ifndef EGL_ANGLE_swap_with_frame_token
+#define EGL_ANGLE_swap_with_frame_token 1
+typedef khronos_uint64_t EGLFrameTokenANGLE;
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHFRAMETOKENANGLEPROC)(EGLDisplay dpy, EGLSurface surface, EGLFrameTokenANGLE frametoken);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithFrameTokenANGLE(EGLDisplay dpy, EGLSurface surface, EGLFrameTokenANGLE frametoken);
+#endif
+#endif /* EGL_ANGLE_swap_with_frame_token */
+
 #ifndef EGL_ANGLE_device_eagl
 #define EGL_ANGLE_device_eagl 1
 #define EGL_EAGL_CONTEXT_ANGLE 0x3487
index bfd9bd6..d1cae17 100644 (file)
@@ -116,6 +116,12 @@ typedef intptr_t EGLNativeDisplayType;
 typedef intptr_t EGLNativePixmapType;
 typedef intptr_t EGLNativeWindowType;
 
+#elif defined(__ggp__)
+
+typedef intptr_t EGLNativeDisplayType;
+typedef intptr_t EGLNativePixmapType;
+typedef intptr_t EGLNativeWindowType;
+
 #elif defined(__unix__) || defined(USE_X11)
 
 /* X11 (tentative)  */
index c1f0c21..c4ffa00 100644 (file)
@@ -35,7 +35,6 @@ typedef void (GL_APIENTRYP PFNGLGETLIGHTFVCONTEXTANGLEPROC)(GLeglContext ctx, GL
 typedef void (GL_APIENTRYP PFNGLGETLIGHTXVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum light, GLenum pname, GLfixed *params);
 typedef void (GL_APIENTRYP PFNGLGETMATERIALFVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum face, GLenum pname, GLfloat *params);
 typedef void (GL_APIENTRYP PFNGLGETMATERIALXVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum face, GLenum pname, GLfixed *params);
-typedef void (GL_APIENTRYP PFNGLGETPOINTERVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, void **params);
 typedef void (GL_APIENTRYP PFNGLGETTEXENVFVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLfloat *params);
 typedef void (GL_APIENTRYP PFNGLGETTEXENVIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLint *params);
 typedef void (GL_APIENTRYP PFNGLGETTEXENVXVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLfixed *params);
@@ -160,7 +159,6 @@ GL_API void GL_APIENTRY glGetLightfvContextANGLE(GLeglContext ctx, GLenum light,
 GL_API void GL_APIENTRY glGetLightxvContextANGLE(GLeglContext ctx, GLenum light, GLenum pname, GLfixed *params);
 GL_API void GL_APIENTRY glGetMaterialfvContextANGLE(GLeglContext ctx, GLenum face, GLenum pname, GLfloat *params);
 GL_API void GL_APIENTRY glGetMaterialxvContextANGLE(GLeglContext ctx, GLenum face, GLenum pname, GLfixed *params);
-GL_API void GL_APIENTRY glGetPointervContextANGLE(GLeglContext ctx, GLenum pname, void **params);
 GL_API void GL_APIENTRY glGetTexEnvfvContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLfloat *params);
 GL_API void GL_APIENTRY glGetTexEnvivContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint *params);
 GL_API void GL_APIENTRY glGetTexEnvxvContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLfixed *params);
index 8a2c942..815c278 100644 (file)
@@ -22,6 +22,7 @@
 #define GL_REQUESTABLE_EXTENSIONS_ANGLE   0x93A8
 #define GL_NUM_REQUESTABLE_EXTENSIONS_ANGLE 0x93A9
 typedef void (GL_APIENTRYP PFNGLREQUESTEXTENSIONANGLEPROC) (const GLchar *name);
+typedef void (GL_APIENTRYP PFNGLDISABLEEXTENSIONANGLEPROC) (const GLchar *name);
 #ifdef GL_GLEXT_PROTOTYPES
 GL_APICALL void GL_APIENTRY glRequestExtensionANGLE (const GLchar *name);
 #endif
@@ -636,6 +637,8 @@ typedef void *GLeglContext;
 #include "gl2ext_explicit_context_autogen.inc"
 #include "../GLES3/gl3ext_explicit_context_autogen.inc"
 #include "../GLES3/gl31ext_explicit_context_autogen.inc"
+#include "../GLES3/gl32.h"
+#include "../GLES3/gl32ext_explicit_context_autogen.inc"
 #endif /* GL_ANGLE_explicit_context */
 
 #ifndef GL_ANGLE_multi_draw
@@ -656,13 +659,13 @@ GL_APICALL void GL_APIENTRY glMultiDrawElementsInstancedANGLE (GLenum mode, cons
 #define GL_ANGLE_base_vertex_base_instance 1
 typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instanceCount, GLuint baseInstance);
 typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instanceCount, GLint baseVertex, GLuint baseInstance);
-typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSINSTANCEDBASEINSTANCEANGLEPROC) (GLenum mode, GLsizei drawCount, const GLsizei *counts, const GLsizei *instanceCounts, const GLsizei *firsts, const GLuint *baseInstances);
-typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEANGLEPROC) (GLenum mode, GLenum type, GLsizei drawCount, const GLsizei *counts, const GLsizei *instanceCounts, const GLvoid* const *indices, const GLint *baseVertices, const GLuint *baseInstances);
+typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSINSTANCEDBASEINSTANCEANGLEPROC) (GLenum mode, const GLsizei *firsts, const GLsizei *counts, const GLsizei *instanceCounts, const GLuint *baseInstances, GLsizei drawCount);
+typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEANGLEPROC) (GLenum mode, const GLsizei *counts, GLenum type, const GLvoid* const *indices, const GLsizei *instanceCounts, const GLint *baseVertices, const GLuint *baseInstances, GLsizei drawCount);
 #ifdef GL_GLEXT_PROTOTYPES
 GL_APICALL void GL_APIENTRY glDrawArraysInstancedBaseInstanceANGLE (GLenum mode, GLint first, GLsizei count, GLsizei instanceCount, GLuint baseInstance);
 GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexBaseInstanceANGLE (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instanceCount, GLint baseVertex, GLuint baseInstance);
-GL_APICALL void GL_APIENTRY glMultiDrawArraysInstancedBaseInstanceANGLE (GLenum mode, GLsizei drawCount, const GLsizei *counts, const GLsizei *instanceCounts, const GLsizei *firsts, const GLuint *baseInstances);
-GL_APICALL void GL_APIENTRY glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE (GLenum mode, GLenum type, GLsizei drawCount, const GLsizei *counts, const GLsizei *instanceCounts, const GLvoid* const *indices, const GLint *baseVertices, const GLuint *baseInstances);
+GL_APICALL void GL_APIENTRY glMultiDrawArraysInstancedBaseInstanceANGLE (GLenum mode, const GLsizei *firsts, const GLsizei *counts, const GLsizei *instanceCounts, const GLuint *baseInstances, GLsizei drawCount);
+GL_APICALL void GL_APIENTRY glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE (GLenum mode, const GLsizei *counts, GLenum type, const GLvoid* const *indices, const GLsizei *instanceCounts, const GLint *baseVertices, const GLuint *baseInstances, GLsizei drawCount);
 #endif
 #endif
 
@@ -694,6 +697,16 @@ GL_APICALL void GL_APIENTRY glInvalidateTextureANGLE (GLenum target);
 #endif
 #endif /* GL_ANGLE_texture_external_update */
 
+#ifndef GL_ANGLE_get_image
+#define GL_ANGLE_get_image
+typedef void (GL_APIENTRYP PFNGLGETTEXIMAGEANGLEPROC) (GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
+typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERIMAGEANGLEPROC) (GLenum target, GLenum format, GLenum type, void *pixels);
+#ifdef GL_GLEXT_PROTOTYPES
+GL_APICALL void GL_APIENTRY glGetTexImageANGLE (GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
+GL_APICALL void GL_APIENTRY glGetRenderbufferImageANGLE (GLenum target, GLenum format, GLenum type, void *pixels);
+#endif
+#endif /* GL_ANGLE_texture_external_update */
+
 // clang-format on
 
 #endif  // INCLUDE_GLES2_GL2EXT_ANGLE_H_
index 4947872..75f663a 100644 (file)
@@ -289,6 +289,7 @@ typedef void (GL_APIENTRYP PFNGLCOPYTEXTURECHROMIUMCONTEXTANGLEPROC)(GLeglContex
 typedef void (GL_APIENTRYP PFNGLCOPYSUBTEXTURECHROMIUMCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sourceId, GLint sourceLevel, GLenum destTarget, GLuint destId, GLint destLevel, GLint xoffset, GLint yoffset, GLint x, GLint y, GLint width, GLint height, GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha);
 typedef void (GL_APIENTRYP PFNGLCOMPRESSEDCOPYTEXTURECHROMIUMCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sourceId, GLuint destId);
 typedef void (GL_APIENTRYP PFNGLREQUESTEXTENSIONANGLECONTEXTANGLEPROC)(GLeglContext ctx, const GLchar * name);
+typedef void (GL_APIENTRYP PFNGLDISABLEEXTENSIONANGLECONTEXTANGLEPROC)(GLeglContext ctx, const GLchar * name);
 typedef void (GL_APIENTRYP PFNGLGETBOOLEANVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLsizei bufSize, GLsizei * length, GLboolean * params);
 typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params);
 typedef void (GL_APIENTRYP PFNGLGETFLOATVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLsizei bufSize, GLsizei * length, GLfloat * params);
@@ -364,14 +365,16 @@ typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSANGLECONTEXTANGLEPROC)(GLeglCon
 typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSINSTANCEDANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, const GLsizei *counts, GLenum type, const GLvoid *const*indices, const GLsizei*instanceCounts, GLsizei drawcount);
 typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLint first, GLsizei count, GLsizei instanceCount, GLuint baseInstance);
 typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instanceCounts, GLint baseVertex, GLuint baseInstance);
-typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSINSTANCEDBASEINSTANCEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLsizei drawcount, const GLsizei *counts, const GLsizei *instanceCounts, const GLint *firsts, const GLuint *baseInstances);
-typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLenum type, GLsizei drawcount, const GLsizei *counts, const GLsizei *instanceCounts, const GLvoid *const*indices, const GLint *baseVertices, const GLuint *baseInstances);
+typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSINSTANCEDBASEINSTANCEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, const GLint *firsts, const GLsizei *counts, const GLsizei *instanceCounts, const GLuint *baseInstances, GLsizei drawcount);
+typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, const GLsizei *counts, GLenum type, const GLvoid *const*indices, const GLsizei *instanceCounts, const GLint *baseVertices, const GLuint *baseInstances, GLsizei drawcount);
 typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLuint index, GLfloat * val);
 typedef void (GL_APIENTRYP PFNGLSAMPLEMASKIANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint maskNumber, GLbitfield mask);
 typedef void (GL_APIENTRYP PFNGLPROVOKINGVERTEXANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode);
 typedef void (GL_APIENTRYP PFNGLLOSECONTEXTCHROMIUMCONTEXTANGLEPROC)(GLeglContext ctx, GLenum current, GLenum other);
 typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DEXTERNALANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type);
 typedef void (GL_APIENTRYP PFNGLINVALIDATETEXTUREANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target);
+typedef void (GL_APIENTRYP PFNGLGETTEXIMAGEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
+typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERIMAGEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum format, GLenum type, void *pixels);
 #ifdef GL_GLEXT_PROTOTYPES
 GL_APICALL void GL_APIENTRY glActiveTextureContextANGLE(GLeglContext ctx, GLenum texture);
 GL_APICALL void GL_APIENTRY glAttachShaderContextANGLE(GLeglContext ctx, GLuint program, GLuint shader);
@@ -654,6 +657,7 @@ GL_APICALL void GL_APIENTRY glCopyTextureCHROMIUMContextANGLE(GLeglContext ctx,
 GL_APICALL void GL_APIENTRY glCopySubTextureCHROMIUMContextANGLE(GLeglContext ctx, GLuint sourceId, GLint sourceLevel, GLenum destTarget, GLuint destId, GLint destLevel, GLint xoffset, GLint yoffset, GLint x, GLint y, GLint width, GLint height, GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha);
 GL_APICALL void GL_APIENTRY glCompressedCopyTextureCHROMIUMContextANGLE(GLeglContext ctx, GLuint sourceId, GLuint destId);
 GL_APICALL void GL_APIENTRY glRequestExtensionANGLEContextANGLE(GLeglContext ctx, const GLchar * name);
+GL_APICALL void GL_APIENTRY glDisableExtensionANGLEContextANGLE(GLeglContext ctx, const GLchar * name);
 GL_APICALL void GL_APIENTRY glGetBooleanvRobustANGLEContextANGLE(GLeglContext ctx, GLenum pname, GLsizei bufSize, GLsizei * length, GLboolean * params);
 GL_APICALL void GL_APIENTRY glGetBufferParameterivRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params);
 GL_APICALL void GL_APIENTRY glGetFloatvRobustANGLEContextANGLE(GLeglContext ctx, GLenum pname, GLsizei bufSize, GLsizei * length, GLfloat * params);
@@ -729,12 +733,14 @@ GL_APICALL void GL_APIENTRY glMultiDrawElementsANGLEContextANGLE(GLeglContext ct
 GL_APICALL void GL_APIENTRY glMultiDrawElementsInstancedANGLEContextANGLE(GLeglContext ctx, GLenum mode, const GLsizei *counts, GLenum type, const GLvoid *const*indices, const GLsizei*instanceCounts, GLsizei drawcount);
 GL_APICALL void GL_APIENTRY glDrawArraysInstancedBaseInstanceANGLEContextANGLE(GLeglContext ctx, GLenum mode, GLint first, GLsizei count, GLsizei instanceCount, GLuint baseInstance);
 GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instanceCounts, GLint baseVertex, GLuint baseInstance);
-GL_APICALL void GL_APIENTRY glMultiDrawArraysInstancedBaseInstanceANGLEContextANGLE(GLeglContext ctx, GLenum mode, GLsizei drawcount, const GLsizei *counts, const GLsizei *instanceCounts, const GLint *firsts, const GLuint *baseInstances);
-GL_APICALL void GL_APIENTRY glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE(GLeglContext ctx, GLenum mode, GLenum type, GLsizei drawcount, const GLsizei *counts, const GLsizei *instanceCounts, const GLvoid *const*indices, const GLint *baseVertices, const GLuint *baseInstances);
+GL_APICALL void GL_APIENTRY glMultiDrawArraysInstancedBaseInstanceANGLEContextANGLE(GLeglContext ctx, GLenum mode, const GLint *firsts, const GLsizei *counts, const GLsizei *instanceCounts, const GLuint *baseInstances, GLsizei drawcount);
+GL_APICALL void GL_APIENTRY glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE(GLeglContext ctx, GLenum mode, const GLsizei *counts, GLenum type, const GLvoid *const*indices, const GLsizei *instanceCounts, const GLint *baseVertices, const GLuint *baseInstances, GLsizei drawcount);
 GL_APICALL void GL_APIENTRY glGetMultisamplefvANGLEContextANGLE(GLeglContext ctx, GLenum pname, GLuint index, GLfloat * val);
 GL_APICALL void GL_APIENTRY glSampleMaskiANGLEContextANGLE(GLeglContext ctx, GLuint maskNumber, GLbitfield mask);
 GL_APICALL void GL_APIENTRY glProvokingVertexANGLEContextANGLE(GLeglContext ctx, GLenum mode);
 GL_APICALL void GL_APIENTRY glLoseContextCHROMIUMContextANGLE(GLeglContext ctx, GLenum current, GLenum other);
 GL_APICALL void GL_APIENTRY glTexImage2DExternalANGLEContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type);
 GL_APICALL void GL_APIENTRY glInvalidateTextureANGLEContextANGLE(GLeglContext ctx, GLenum target);
+GL_APICALL void GL_APIENTRY glGetTexImageANGLEContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
+GL_APICALL void GL_APIENTRY glGetRenderbufferImageANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum format, GLenum type, void *pixels);
 #endif
diff --git a/Source/ThirdParty/ANGLE/include/GLES3/gl32ext_explicit_context_autogen.inc b/Source/ThirdParty/ANGLE/include/GLES3/gl32ext_explicit_context_autogen.inc
new file mode 100644 (file)
index 0000000..cf77977
--- /dev/null
@@ -0,0 +1,100 @@
+// GENERATED FILE - DO NOT EDIT.
+// Generated by generate_entry_points.py using data from gl.xml and gl_angle_ext.xml.
+//
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// gl32ext_explicit_context_autogen.inc:
+//   Function declarations for the EGL_ANGLE_explicit_context extension
+
+typedef void (GL_APIENTRYP PFNGLBLENDBARRIERCONTEXTANGLEPROC)(GLeglContext ctx);
+typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEICONTEXTANGLEPROC)(GLeglContext ctx, GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONICONTEXTANGLEPROC)(GLeglContext ctx, GLuint buf, GLenum mode);
+typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEICONTEXTANGLEPROC)(GLeglContext ctx, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+typedef void (GL_APIENTRYP PFNGLBLENDFUNCICONTEXTANGLEPROC)(GLeglContext ctx, GLuint buf, GLenum src, GLenum dst);
+typedef void (GL_APIENTRYP PFNGLCOLORMASKICONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATACONTEXTANGLEPROC)(GLeglContext ctx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKCONTEXTANGLEPROC)(GLeglContext ctx, GLDEBUGPROC callback, const void *userParam);
+typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLCONTEXTANGLEPROC)(GLeglContext ctx, GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
+typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
+typedef void (GL_APIENTRYP PFNGLDISABLEICONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index);
+typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
+typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
+typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
+typedef void (GL_APIENTRYP PFNGLENABLEICONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index);
+typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level);
+typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGCONTEXTANGLEPROC)(GLeglContext ctx, GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
+typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSCONTEXTANGLEPROC)(GLeglContext ctx);
+typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELCONTEXTANGLEPROC)(GLeglContext ctx, GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
+typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELCONTEXTANGLEPROC)(GLeglContext ctx, const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
+typedef void (GL_APIENTRYP PFNGLGETPOINTERVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, void **params);
+typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLint *params);
+typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLuint *params);
+typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLint *params);
+typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLuint *params);
+typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
+typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLint *params);
+typedef void (GL_APIENTRYP PFNGLGETNUNIFORMUIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLuint *params);
+typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDICONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index);
+typedef void (GL_APIENTRYP PFNGLMINSAMPLESHADINGCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat value);
+typedef void (GL_APIENTRYP PFNGLOBJECTLABELCONTEXTANGLEPROC)(GLeglContext ctx, GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
+typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELCONTEXTANGLEPROC)(GLeglContext ctx, const void *ptr, GLsizei length, const GLchar *label);
+typedef void (GL_APIENTRYP PFNGLPATCHPARAMETERICONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLint value);
+typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPCONTEXTANGLEPROC)(GLeglContext ctx);
+typedef void (GL_APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
+typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPCONTEXTANGLEPROC)(GLeglContext ctx, GLenum source, GLuint id, GLsizei length, const GLchar *message);
+typedef void (GL_APIENTRYP PFNGLREADNPIXELSCONTEXTANGLEPROC)(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
+typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, const GLint *param);
+typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, const GLuint *param);
+typedef void (GL_APIENTRYP PFNGLTEXBUFFERCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum internalformat, GLuint buffer);
+typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, const GLint *params);
+typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, const GLuint *params);
+typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+#ifdef GL_GLEXT_PROTOTYPES
+GL_APICALL void GL_APIENTRY glBlendBarrierContextANGLE(GLeglContext ctx);
+GL_APICALL void GL_APIENTRY glBlendEquationSeparateiContextANGLE(GLeglContext ctx, GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+GL_APICALL void GL_APIENTRY glBlendEquationiContextANGLE(GLeglContext ctx, GLuint buf, GLenum mode);
+GL_APICALL void GL_APIENTRY glBlendFuncSeparateiContextANGLE(GLeglContext ctx, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+GL_APICALL void GL_APIENTRY glBlendFunciContextANGLE(GLeglContext ctx, GLuint buf, GLenum src, GLenum dst);
+GL_APICALL void GL_APIENTRY glColorMaskiContextANGLE(GLeglContext ctx, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+GL_APICALL void GL_APIENTRY glCopyImageSubDataContextANGLE(GLeglContext ctx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+GL_APICALL void GL_APIENTRY glDebugMessageCallbackContextANGLE(GLeglContext ctx, GLDEBUGPROC callback, const void *userParam);
+GL_APICALL void GL_APIENTRY glDebugMessageControlContextANGLE(GLeglContext ctx, GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
+GL_APICALL void GL_APIENTRY glDebugMessageInsertContextANGLE(GLeglContext ctx, GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
+GL_APICALL void GL_APIENTRY glDisableiContextANGLE(GLeglContext ctx, GLenum target, GLuint index);
+GL_APICALL void GL_APIENTRY glDrawElementsBaseVertexContextANGLE(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
+GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexContextANGLE(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
+GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertexContextANGLE(GLeglContext ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
+GL_APICALL void GL_APIENTRY glEnableiContextANGLE(GLeglContext ctx, GLenum target, GLuint index);
+GL_APICALL void GL_APIENTRY glFramebufferTextureContextANGLE(GLeglContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level);
+GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLogContextANGLE(GLeglContext ctx, GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
+GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusContextANGLE(GLeglContext ctx);
+GL_APICALL void GL_APIENTRY glGetObjectLabelContextANGLE(GLeglContext ctx, GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
+GL_APICALL void GL_APIENTRY glGetObjectPtrLabelContextANGLE(GLeglContext ctx, const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
+GL_APICALL void GL_APIENTRY glGetPointervContextANGLE(GLeglContext ctx, GLenum pname, void **params);
+GL_APICALL void GL_APIENTRY glGetSamplerParameterIivContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLint *params);
+GL_APICALL void GL_APIENTRY glGetSamplerParameterIuivContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLuint *params);
+GL_APICALL void GL_APIENTRY glGetTexParameterIivContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint *params);
+GL_APICALL void GL_APIENTRY glGetTexParameterIuivContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLuint *params);
+GL_APICALL void GL_APIENTRY glGetnUniformfvContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
+GL_APICALL void GL_APIENTRY glGetnUniformivContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLint *params);
+GL_APICALL void GL_APIENTRY glGetnUniformuivContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLuint *params);
+GL_APICALL GLboolean GL_APIENTRY glIsEnablediContextANGLE(GLeglContext ctx, GLenum target, GLuint index);
+GL_APICALL void GL_APIENTRY glMinSampleShadingContextANGLE(GLeglContext ctx, GLfloat value);
+GL_APICALL void GL_APIENTRY glObjectLabelContextANGLE(GLeglContext ctx, GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
+GL_APICALL void GL_APIENTRY glObjectPtrLabelContextANGLE(GLeglContext ctx, const void *ptr, GLsizei length, const GLchar *label);
+GL_APICALL void GL_APIENTRY glPatchParameteriContextANGLE(GLeglContext ctx, GLenum pname, GLint value);
+GL_APICALL void GL_APIENTRY glPopDebugGroupContextANGLE(GLeglContext ctx);
+GL_APICALL void GL_APIENTRY glPrimitiveBoundingBoxContextANGLE(GLeglContext ctx, GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
+GL_APICALL void GL_APIENTRY glPushDebugGroupContextANGLE(GLeglContext ctx, GLenum source, GLuint id, GLsizei length, const GLchar *message);
+GL_APICALL void GL_APIENTRY glReadnPixelsContextANGLE(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
+GL_APICALL void GL_APIENTRY glSamplerParameterIivContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, const GLint *param);
+GL_APICALL void GL_APIENTRY glSamplerParameterIuivContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, const GLuint *param);
+GL_APICALL void GL_APIENTRY glTexBufferContextANGLE(GLeglContext ctx, GLenum target, GLenum internalformat, GLuint buffer);
+GL_APICALL void GL_APIENTRY glTexBufferRangeContextANGLE(GLeglContext ctx, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+GL_APICALL void GL_APIENTRY glTexParameterIivContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, const GLint *params);
+GL_APICALL void GL_APIENTRY glTexParameterIuivContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, const GLuint *params);
+GL_APICALL void GL_APIENTRY glTexStorage3DMultisampleContextANGLE(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+#endif
index 7bfee11..964e937 100644 (file)
@@ -26,7 +26,7 @@
 
 // Version number for shader translation API.
 // It is incremented every time the API changes.
-#define ANGLE_SH_VERSION 216
+#define ANGLE_SH_VERSION 218
 
 enum ShShaderSpec
 {
@@ -69,6 +69,10 @@ enum ShShaderOutput
 
     // Output specialized GLSL to be fed to glslang for Vulkan SPIR.
     SH_GLSL_VULKAN_OUTPUT = 0x8B4B,
+
+    // Output specialized GLSL to be fed to glslang for Vulkan SPIR to be cross compiled to Metal
+    // later.
+    SH_GLSL_METAL_OUTPUT = 0x8B4C,
 };
 
 // Compile options.
@@ -304,6 +308,9 @@ const ShCompileOptions SH_USE_OLD_REWRITE_STRUCT_SAMPLERS = UINT64_C(1) << 47;
 // when angle_BaseVertex is available.
 const ShCompileOptions SH_ADD_BASE_VERTEX_TO_VERTEX_ID = UINT64_C(1) << 48;
 
+// This works around the dynamic lvalue indexing of swizzled vectors on various platforms.
+const ShCompileOptions SH_REMOVE_DYNAMIC_INDEXING_OF_SWIZZLED_VECTOR = UINT64_C(1) << 49;
+
 // Defines alternate strategies for implementing array index clamping.
 enum ShArrayIndexClampingStrategy
 {
@@ -497,6 +504,9 @@ struct ShBuiltInResources
     int MaxGeometryShaderStorageBlocks;
     int MaxGeometryShaderInvocations;
     int MaxGeometryImageUniforms;
+
+    // Subpixel bits used in rasterization.
+    int SubPixelBits;
 };
 
 //
index 06eb3f1..4ff294b 100644 (file)
 #include "GLES3/gl31.h"
 #include "GLES3/gl32.h"
 
+// TODO(http://anglebug.com/3730): Autogenerate these enums from gl.xml
+// HACK: Defines for queries that are not in GLES
+#define GL_CONTEXT_PROFILE_MASK 0x9126
+#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
+#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001
+
 #endif  // ANGLEGL_H_
index 31a7c04..7af4174 100644 (file)
 #include <string>
 #include <vector>
 
-#define ANGLE_FEATURE_CONDITION(set, feature, cond) \
-    set->feature.enabled   = cond;                  \
-    set->feature.condition = ANGLE_STRINGIFY(cond);
+#define ANGLE_FEATURE_CONDITION(set, feature, cond)     \
+    do                                                  \
+    {                                                   \
+        set->feature.enabled   = cond;                  \
+        set->feature.condition = ANGLE_STRINGIFY(cond); \
+    } while (0)
 
 namespace angle
 {
@@ -28,6 +31,7 @@ enum class FeatureCategory
     D3DCompilerWorkarounds,
     VulkanWorkarounds,
     VulkanFeatures,
+    MetalFeatures,
 };
 
 constexpr char kFeatureCategoryFrontendWorkarounds[]    = "Frontend workarounds";
@@ -36,6 +40,7 @@ constexpr char kFeatureCategoryD3DWorkarounds[]         = "D3D workarounds";
 constexpr char kFeatureCategoryD3DCompilerWorkarounds[] = "D3D compiler workarounds";
 constexpr char kFeatureCategoryVulkanWorkarounds[]      = "Vulkan workarounds";
 constexpr char kFeatureCategoryVulkanFeatures[]         = "Vulkan features";
+constexpr char kFeatureCategoryMetalFeatures[]          = "Metal features";
 constexpr char kFeatureCategoryUnknown[]                = "Unknown";
 
 inline const char *FeatureCategoryToString(const FeatureCategory &fc)
@@ -66,6 +71,10 @@ inline const char *FeatureCategoryToString(const FeatureCategory &fc)
             return kFeatureCategoryVulkanFeatures;
             break;
 
+        case FeatureCategory::MetalFeatures:
+            return kFeatureCategoryMetalFeatures;
+            break;
+
         default:
             return kFeatureCategoryUnknown;
             break;
index caf5ef8..ec70c79 100644 (file)
@@ -55,7 +55,8 @@ struct FeaturesGL : FeatureSetBase
     // Work around this by rewriting the do-while to use another GLSL construct (block + while)
     Feature doWhileGLSLCausesGPUHang = {
         "do_while_glsl_causes_gpu_hang", FeatureCategory::OpenGLWorkarounds,
-        "Some GLSL constructs involving do-while loops cause GPU hangs", &members};
+        "Some GLSL constructs involving do-while loops cause GPU hangs", &members,
+        "http://crbug.com/644669"};
 
     // On Mac AMD GPU gl_VertexID in GLSL vertex shader doesn't include base vertex value,
     // Work aronud this by replace gl_VertexID with (gl_VertexID - angle_BaseVertex) when
@@ -104,7 +105,7 @@ struct FeaturesGL : FeatureSetBase
     // Emulate abs(i) with i * sign(i).
     Feature emulateAbsIntFunction = {"emulate_abs_int_function", FeatureCategory::OpenGLWorkarounds,
                                      "abs(i) where i is an integer returns unexpected result",
-                                     &members};
+                                     &members, "http://crbug.com/642227"};
 
     // On Intel Mac, calculation of loop conditions in for and while loop has bug.
     // Add "&& true" to the end of the condition expression to work around the bug.
@@ -212,7 +213,8 @@ struct FeaturesGL : FeatureSetBase
     // On some Android devices for loops used to initialize variables hit native GLSL compiler bugs.
     Feature dontUseLoopsToInitializeVariables = {
         "dont_use_loops_to_initialize_variables", FeatureCategory::OpenGLWorkarounds,
-        "For loops used to initialize variables hit native GLSL compiler bugs", &members};
+        "For loops used to initialize variables hit native GLSL compiler bugs", &members,
+        "http://crbug.com/809422"};
 
     // On some NVIDIA drivers gl_FragDepth is not clamped correctly when rendering to a floating
     // point depth buffer. Clamp it in the translated shader to fix this.
@@ -355,6 +357,35 @@ struct FeaturesGL : FeatureSetBase
         "Mac incorrectly executes both sides of && and || expressions when they should "
         "short-circuit.",
         &members, "http://anglebug.com/482"};
+
+    Feature emulatePrimitiveRestartFixedIndex = {
+        "emulate_primitive_restart_fixed_index", FeatureCategory::OpenGLWorkarounds,
+        "When GL_PRIMITIVE_RESTART_FIXED_INDEX is not available, emulate it with "
+        "GL_PRIMITIVE_RESTART and glPrimitiveRestartIndex.",
+        &members, "http://anglebug.com/3997"};
+
+    // Dynamic indexing of swizzled l-values doesn't work correctly on various platforms.
+    Feature removeDynamicIndexingOfSwizzledVector = {
+        "remove_dynamic_indexing_of_swizzled_vector", FeatureCategory::OpenGLWorkarounds,
+        "Dynamic indexing of swizzled l-values doesn't work correctly on various platforms.",
+        &members, "http://crbug.com/709351"};
+
+    // Intel Mac drivers does not treat texelFetchOffset() correctly.
+    Feature preAddTexelFetchOffsets = {
+        "pre_add_texel_fetch_offsets", FeatureCategory::OpenGLWorkarounds,
+        "Intel Mac drivers mistakenly consider the parameter position of nagative vaule as invalid "
+        "even if the sum of position and offset is in range, so we need to add workarounds by "
+        "rewriting texelFetchOffset(sampler, position, lod, offset) into texelFetch(sampler, "
+        "position + offset, lod).",
+        &members, "http://crbug.com/642605"};
+
+    // All Mac drivers do not handle struct scopes correctly. This workaround overwrites a struct
+    // name with a unique prefix
+    Feature regenerateStructNames = {
+        "regenerate_struct_names", FeatureCategory::OpenGLWorkarounds,
+        "All Mac drivers do not handle struct scopes correctly. This workaround overwrites a struct"
+        "name with a unique prefix.",
+        &members, "http://crbug.com/403957"};
 };
 
 inline FeaturesGL::FeaturesGL()  = default;
diff --git a/Source/ThirdParty/ANGLE/include/platform/FeaturesMtl.h b/Source/ThirdParty/ANGLE/include/platform/FeaturesMtl.h
new file mode 100644 (file)
index 0000000..198937f
--- /dev/null
@@ -0,0 +1,42 @@
+//
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// FeaturesMtl.h: Optional features for the Metal renderer.
+//
+
+#ifndef ANGLE_PLATFORM_FEATURESMTL_H_
+#define ANGLE_PLATFORM_FEATURESMTL_H_
+
+#include "platform/Feature.h"
+
+namespace angle
+{
+
+struct FeaturesMtl : FeatureSetBase
+{
+    // BaseVertex/Instanced draw support:
+    Feature hasBaseVertexInstancedDraw = {
+        "has_base_vertex_instanced_draw", FeatureCategory::MetalFeatures,
+        "The renderer supports base vertex instanced draw", &members};
+    // Non-uniform compute shader dispatch support, i.e. Group size is not necessarily to be fixed:
+    Feature hasNonUniformDispatch = {
+        "has_non_uniform_dispatch", FeatureCategory::MetalFeatures,
+        "The renderer supports non uniform compute shader dispatch's group size", &members};
+    // Texture swizzle support:
+    Feature hasTextureSwizzle = {"has_texture_swizzle", FeatureCategory::MetalFeatures,
+                                 "The renderer supports texture swizzle", &members};
+
+    // On macos, separate depth & stencil buffers are not supproted. However, on iOS devices,
+    // they are supproted:
+    Feature allowSeparatedDepthStencilBuffers = {
+        "allow_separate_depth_stencil_buffers", FeatureCategory::MetalFeatures,
+        "Some Apple platforms such as iOS allows separate depth & stencil buffers, "
+        "whereas others such as macOS don't",
+        &members};
+};
+
+}  // namespace angle
+
+#endif  // ANGLE_PLATFORM_FEATURESMTL_H_
index 80c4f41..febbe54 100644 (file)
@@ -29,6 +29,18 @@ struct FeaturesVk : FeatureSetBase
         "rasterization rules",
         &members};
 
+    // If the VK_EXT_line_rasterization extension is available we'll use it to get
+    // Bresenham line rasterization.
+    Feature bresenhamLineRasterization = {
+        "bresenham_line_rasterization", FeatureCategory::VulkanFeatures,
+        "Enable Bresenham line rasterization via VK_EXT_line_rasterization extension", &members};
+
+    // If the VK_EXT_provoking_vertex extension is available, we'll use it to set
+    // the provoking vertex mode
+    Feature provokingVertex = {"provoking_vertex", FeatureCategory::VulkanFeatures,
+                               "Enable provoking vertex mode via VK_EXT_provoking_vertex extension",
+                               &members};
+
     // Flips the viewport to render upside-down. This has the effect to render the same way as
     // OpenGL. If this feature gets enabled, we enable the KHR_MAINTENANCE_1 extension to allow
     // negative viewports. We inverse rendering to the backbuffer by reversing the height of the
@@ -143,14 +155,6 @@ struct FeaturesVk : FeatureSetBase
         "Gaps in bound descriptor set indices causes the post-gap sets to misbehave", &members,
         "http://anglebug.com/2727"};
 
-    // When the scissor is (0,0,0,0) on Windows Intel, the driver acts as if the scissor was
-    // disabled.  Work-around this by setting the scissor to just outside of the render area
-    // (e.g. (renderArea.x, renderArea.y, 1, 1)). http://anglebug.com/3407
-    Feature forceNonZeroScissor = {
-        "force_non_zero_scissor", FeatureCategory::VulkanWorkarounds,
-        "When the scissor is (0,0,0,0), the driver acts as if the scissor was disabled", &members,
-        "http://anglebug.com/3407"};
-
     // OES_depth_texture is a commonly expected feature on Android. However it
     // requires that D16_UNORM support texture filtering
     // (e.g. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT) and some devices
@@ -194,7 +198,7 @@ struct FeaturesVk : FeatureSetBase
         "Seamful cube map emulation misbehaves on some drivers, so it's disallowed", &members,
         "http://anglebug.com/3243"};
 
-    // Qualcomm shader compiler doesn't support sampler arrays as parameters, so
+    // Qualcomm and SwiftShader shader compiler doesn't support sampler arrays as parameters, so
     // revert to old RewriteStructSamplers behavior, which produces fewer.
     Feature forceOldRewriteStructSamplers = {
         "force_old_rewrite_struct_samplers", FeatureCategory::VulkanWorkarounds,
index cea6070..09505a3 100644 (file)
@@ -37,6 +37,7 @@ namespace angle
 {
 struct FeaturesD3D;
 struct FeaturesVk;
+struct FeaturesMtl;
 using TraceEventHandle = uint64_t;
 using EGLDisplayType   = void *;
 struct PlatformMethods;
@@ -225,6 +226,11 @@ using OverrideFeaturesVkFunc = void (*)(PlatformMethods *platform,
 inline void DefaultOverrideFeaturesVk(PlatformMethods *platform, angle::FeaturesVk *featuresVulkan)
 {}
 
+using OverrideFeaturesMtlFunc = void (*)(PlatformMethods *platform,
+                                         angle::FeaturesMtl *featuresMetal);
+inline void DefaultOverrideFeaturesMtl(PlatformMethods *platform, angle::FeaturesMtl *featuresMetal)
+{}
+
 // Callback on a successful program link with the program binary. Can be used to store
 // shaders to disk. Keys are a 160-bit SHA-1 hash.
 using ProgramKeyType   = std::array<uint8_t, 20>;
@@ -254,7 +260,8 @@ inline void DefaultCacheProgram(PlatformMethods *platform,
     OP(histogramBoolean, HistogramBoolean)                       \
     OP(overrideWorkaroundsD3D, OverrideWorkaroundsD3D)           \
     OP(overrideFeaturesVk, OverrideFeaturesVk)                   \
-    OP(cacheProgram, CacheProgram)
+    OP(cacheProgram, CacheProgram)                               \
+    OP(overrideFeaturesMtl, OverrideFeaturesMtl)
 
 #define ANGLE_PLATFORM_METHOD_DEF(Name, CapsName) CapsName##Func Name = Default##CapsName;
 
index fec5d75..4088fab 100644 (file)
@@ -77,11 +77,16 @@ Chrome with the latest ANGLE changes.
 
 We also use additional auto-rollers to roll third party libraries into ANGLE once per day:
 
- * [SPIRV-Headers into ANGLE](https://autoroll.skia.org/r/spirv-headers-angle-autoroll),
- * [SPIRV-Tools into ANGLE](https://autoroll.skia.org/r/spirv-tools-angle-autoroll) and
+ * [SPIRV-Tools into ANGLE](https://autoroll.skia.org/r/spirv-tools-angle-autoroll)
  * [glslang into ANGLE](https://autoroll.skia.org/r/glslang-angle-autoroll)
-
-Please ensure these rollers are also healthy and unblocked.
+ * [SwiftShader into ANGLE](https://autoroll.skia.org/r/swiftshader-angle-autoroll)
+ * [Vulkan-Tools into ANGLE](https://autoroll.skia.org/r/vulkan-tools-angle-autoroll)
+ * [Vulkan-Loader into ANGLE](https://autoroll.skia.org/r/vulkan-loader-angle-autoroll)
+ * [Vulkan-Headers into ANGLE](https://autoroll.skia.org/r/vulkan-headers-angle-autoroll)
+ * [Vulkan-ValidationLayers into ANGLE](https://autoroll.skia.org/r/vulkan-validation-layers-angle-autoroll)
+
+Please ensure these rollers are also healthy and unblocked. You can trigger manual rolls using the dashboards
+to land high-priority changes.
 
 ## Task 4: ANGLE Standalone Testing
 
index faac6f3..3e65a09 100644 (file)
@@ -4,6 +4,14 @@
 
 import("../gni/angle.gni")
 
+declare_args() {
+  # Determines if we build the capture_replay sample. Off by default.
+  angle_build_capture_replay_sample = false
+
+  # Decide which context to replay, starting with desktop default
+  angle_capture_replay_sample_context_id = 1
+}
+
 angle_executable("shader_translator") {
   sources = [
     "shader_translator/shader_translator.cpp",
@@ -55,13 +63,22 @@ template("angle_sample") {
   }
 
   angle_executable(target_name) {
+    forward_variables_from(invoker,
+                           [
+                             "cflags",
+                             "defines",
+                             "sources",
+                           ])
     deps = [
       ":sample_util",
     ]
     if (defined(invoker.data)) {
       deps += [ ":${target_name}_data" ]
     }
-    sources = invoker.sources
+
+    if (defined(invoker.suppressed_configs)) {
+      suppressed_configs += invoker.suppressed_configs
+    }
   }
 }
 
@@ -209,6 +226,35 @@ angle_sample("gles1_draw_texture") {
   ]
 }
 
+if (angle_build_capture_replay_sample) {
+  # The capture_replay sample is set up to work with a single Context.
+  # To use the capture replay sample first move your capture sources into
+  # the capture_replay folder and enable the gn arg above.
+  angle_sample("capture_replay_sample") {
+    _contextid = angle_capture_replay_sample_context_id
+    sources =
+        rebase_path(
+            read_file(
+                "capture_replay/angle_capture_context${_contextid}_files.txt",
+                "list lines"),
+            ".",
+            "capture_replay") +
+        [
+          "capture_replay/CaptureReplay.cpp",
+          "capture_replay/angle_capture_context${_contextid}.cpp",
+          "capture_replay/angle_capture_context${_contextid}.h",
+        ]
+
+    _data_path = rebase_path("capture_replay", root_out_dir)
+    defines = [
+      "ANGLE_CAPTURE_REPLAY_SAMPLE_DATA_DIR=\"${_data_path}\"",
+      "ANGLE_CAPTURE_REPLAY_SAMPLE_CONTEXT_ID=${_contextid}",
+      "ANGLE_CAPTURE_REPLAY_SAMPLE_HEADER=angle_capture_context${_contextid}.h",
+    ]
+    suppressed_configs = [ "$angle_root:constructor_and_destructor_warnings" ]
+  }
+}
+
 group("all") {
   testonly = true
   deps = [
diff --git a/Source/ThirdParty/ANGLE/samples/capture_replay/.gitignore b/Source/ThirdParty/ANGLE/samples/capture_replay/.gitignore
new file mode 100644 (file)
index 0000000..b149c68
--- /dev/null
@@ -0,0 +1 @@
+angle_capture_context*
\ No newline at end of file
diff --git a/Source/ThirdParty/ANGLE/samples/capture_replay/CaptureReplay.cpp b/Source/ThirdParty/ANGLE/samples/capture_replay/CaptureReplay.cpp
new file mode 100644 (file)
index 0000000..c282476
--- /dev/null
@@ -0,0 +1,68 @@
+//
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// CaptureReplay: Template for replaying a frame capture with ANGLE.
+
+#include "SampleApplication.h"
+
+#include <functional>
+
+#define ANGLE_MACRO_STRINGIZE_AUX(a) #a
+#define ANGLE_MACRO_STRINGIZE(a) ANGLE_MACRO_STRINGIZE_AUX(a)
+#define ANGLE_MACRO_CONCAT_AUX(a, b) a##b
+#define ANGLE_MACRO_CONCAT(a, b) ANGLE_MACRO_CONCAT_AUX(a, b)
+
+// Build the right context header based on replay ID
+// This will expand to "angle_capture_context<#>.h"
+#include ANGLE_MACRO_STRINGIZE(ANGLE_CAPTURE_REPLAY_SAMPLE_HEADER)
+
+// Assign the context numbered functions based on GN arg selecting replay ID
+std::function<void()> SetupContextReplay = reinterpret_cast<void (*)()>(
+    ANGLE_MACRO_CONCAT(SetupContext,
+                       ANGLE_MACRO_CONCAT(ANGLE_CAPTURE_REPLAY_SAMPLE_CONTEXT_ID, Replay)));
+std::function<void(int)> ReplayContextFrame = reinterpret_cast<void (*)(int)>(
+    ANGLE_MACRO_CONCAT(ReplayContext,
+                       ANGLE_MACRO_CONCAT(ANGLE_CAPTURE_REPLAY_SAMPLE_CONTEXT_ID, Frame)));
+
+class CaptureReplaySample : public SampleApplication
+{
+  public:
+    CaptureReplaySample(int argc, char **argv)
+        : SampleApplication("CaptureReplaySample", argc, argv, 3, 0)
+    {}
+
+    bool initialize() override
+    {
+        // Set CWD to executable directory.
+        std::string exeDir = angle::GetExecutableDirectory();
+        if (!angle::SetCWD(exeDir.c_str()))
+            return false;
+        SetBinaryDataDir(ANGLE_CAPTURE_REPLAY_SAMPLE_DATA_DIR);
+        SetupContextReplay();
+
+        eglSwapInterval(getDisplay(), 1);
+        return true;
+    }
+
+    void destroy() override {}
+
+    void draw() override
+    {
+        // Compute the current frame, looping from kReplayFrameStart to kReplayFrameEnd.
+        uint32_t frame =
+            kReplayFrameStart + (mCurrentFrame % (kReplayFrameEnd - kReplayFrameStart));
+        ReplayContextFrame(frame);
+        mCurrentFrame++;
+    }
+
+  private:
+    uint32_t mCurrentFrame = 0;
+};
+
+int main(int argc, char **argv)
+{
+    CaptureReplaySample app(argc, argv);
+    return app.run();
+}
index 1a5d29f..17b245d 100644 (file)
@@ -191,9 +191,19 @@ int SampleApplication::run()
         while (popEvent(&event))
         {
             // If the application did not catch a close event, close now
-            if (event.Type == Event::EVENT_CLOSED)
+            switch (event.Type)
             {
-                exit();
+                case Event::EVENT_CLOSED:
+                    exit();
+                    break;
+                case Event::EVENT_KEY_RELEASED:
+                    onKeyUp(event.Key);
+                    break;
+                case Event::EVENT_KEY_PRESSED:
+                    onKeyDown(event.Key);
+                    break;
+                default:
+                    break;
             }
         }
 
@@ -226,3 +236,13 @@ bool SampleApplication::popEvent(Event *event)
 {
     return mOSWindow->popEvent(event);
 }
+
+void SampleApplication::onKeyUp(const Event::KeyEvent &keyEvent)
+{
+    // Default no-op.
+}
+
+void SampleApplication::onKeyDown(const Event::KeyEvent &keyEvent)
+{
+    // Default no-op.
+}
index a8a8af3..9206f15 100644 (file)
@@ -45,18 +45,21 @@ class SampleApplication
 
     virtual void swap();
 
+    virtual void onKeyUp(const Event::KeyEvent &keyEvent);
+    virtual void onKeyDown(const Event::KeyEvent &keyEvent);
+
     OSWindow *getWindow() const;
     EGLConfig getConfig() const;
     EGLDisplay getDisplay() const;
     EGLSurface getSurface() const;
     EGLContext getContext() const;
 
-    bool popEvent(Event *event);
-
     int run();
     void exit();
 
   private:
+    bool popEvent(Event *event);
+
     std::string mName;
     uint32_t mWidth;
     uint32_t mHeight;
index 1b3793a..3af7ebc 100644 (file)
@@ -146,6 +146,16 @@ int main(int argc, char *argv[])
                                     resources.FragmentPrecisionHigh = 1;
                                 }
                                 break;
+                            case 'd':
+                                if (argv[0][4] == 'c')
+                                {
+                                    spec = SH_GL_COMPATIBILITY_SPEC;
+                                }
+                                else
+                                {
+                                    spec = SH_GL_CORE_SPEC;
+                                }
+                                break;
                             default:
                                 failCode = EFailUsage;
                         }
@@ -171,6 +181,10 @@ int main(int argc, char *argv[])
                                 }
                                 compileOptions |= SH_INITIALIZE_UNINITIALIZED_LOCALS;
                                 break;
+                            case 'v':
+                                output = SH_GLSL_VULKAN_OUTPUT;
+                                compileOptions |= SH_INITIALIZE_UNINITIALIZED_LOCALS;
+                                break;
                             case 'h':
                                 if (argv[0][4] == '1' && argv[0][5] == '1')
                                 {
@@ -378,10 +392,13 @@ void usage()
         "       -s=w     : use WebGL 1.0 spec\n"
         "       -s=wn    : use WebGL 1.0 spec with no highp support in fragment shaders\n"
         "       -s=w2    : use WebGL 2.0 spec\n"
+        "       -s=d     : use Desktop Core spec (in development)\n"
+        "       -s=dc    : use Desktop Compatibility spec (in development)\n"
         "       -b=e     : output GLSL ES code (this is by default)\n"
         "       -b=g     : output GLSL code (compatibility profile)\n"
         "       -b=g[NUM]: output GLSL code (NUM can be 130, 140, 150, 330, 400, 410, 420, 430, "
         "440, 450)\n"
+        "       -b=v     : output Vulkan GLSL code\n"
         "       -b=h9    : output HLSL9 code\n"
         "       -b=h11   : output HLSL11 code\n"
         "       -x=i     : enable GL_OES_EGL_image_external\n"
index 102cdf3..bd491a2 100644 (file)
@@ -1,14 +1,14 @@
 {
   "src/libANGLE/renderer/FormatID_autogen.h":
-    "0e45fa793ccf180d7f608dbe2d9927a5",
+    "6df4632c2908751635396a073c206da6",
   "src/libANGLE/renderer/Format_table_autogen.cpp":
-    "808c9476e937a1d79d41451c84622541",
+    "69d5325f5a71af4d7a5017b0a85743a4",
   "src/libANGLE/renderer/angle_format.py":
     "32ba71942c0fd00e6807104f1bb80a3c",
   "src/libANGLE/renderer/angle_format_data.json":
-    "e39704d451d108335e737c39ad423113",
+    "b0c39827c36941a283f679345fea6d3e",
   "src/libANGLE/renderer/angle_format_map.json":
-    "7c89f37c637323a34f4ec46ca11a6078",
+    "bca5e686001f6dd0af306af234a36677",
   "src/libANGLE/renderer/gen_angle_format_table.py":
     "8e349a643e81a028ebb54bde3756f9f7"
 }
\ No newline at end of file