b=1010371; Update ANGLE; r=upstream
authorVladimir Vukicevic <vladimir@pobox.com>
Fri, 04 Jul 2014 11:49:25 -0400
changeset 192449 72a70862ee28461fbfcda067f508862d9e22d0f3
parent 192448 0c408ede302a57efe82efa9c046389b5cc3ce106
child 192450 401bc7471c24cbc22e8d304679f15d693bd99b15
push id7612
push userttaubert@mozilla.com
push dateSun, 06 Jul 2014 16:17:15 +0000
treeherderfx-team@1dc6b294800d [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersupstream
bugs1010371
milestone33.0a1
b=1010371; Update ANGLE; r=upstream
gfx/angle/AUTHORS
gfx/angle/CONTRIBUTORS
gfx/angle/DEPS
gfx/angle/README.mozilla
gfx/angle/angle-build-case-sensitive.patch
gfx/angle/angle-build-d3dcompiler-list.patch
gfx/angle/angle-build-dedupe-debug-cpp-h.patch
gfx/angle/angle-build-dedupe-uniform-cpp-h.patch
gfx/angle/angle-build-khrplatform-h-path.patch
gfx/angle/angle-build-mingw.patch
gfx/angle/angle-build-stdcall-alias.patch
gfx/angle/angle-build-ttype.patch
gfx/angle/angle-build-unified.patch
gfx/angle/angle-d3dcc47.patch
gfx/angle/angle-default-clamp-strat.patch
gfx/angle/angle-faceforward-emu.patch
gfx/angle/angle-fix-issue-651.patch
gfx/angle/angle-fix-vc12.patch
gfx/angle/angle-long-ident-hash.patch
gfx/angle/angle-tex-pool-default.patch
gfx/angle/build/all.gyp
gfx/angle/build/common.gypi
gfx/angle/build/gyp_angle
gfx/angle/extensions/ANGLE_depth_texture.txt
gfx/angle/extensions/ANGLE_framebuffer_blit.txt
gfx/angle/extensions/ANGLE_framebuffer_multisample.txt
gfx/angle/extensions/ANGLE_instanced_arrays.txt
gfx/angle/extensions/ANGLE_pack_reverse_row_order.txt
gfx/angle/extensions/ANGLE_program_binary.txt
gfx/angle/extensions/ANGLE_texture_compression_dxt.txt
gfx/angle/extensions/ANGLE_texture_usage.txt
gfx/angle/extensions/ANGLE_timer_query.txt
gfx/angle/extensions/ANGLE_translated_shader_source.txt
gfx/angle/extensions/EGL_ANGLE_d3d_share_handle_client_buffer.txt
gfx/angle/extensions/EGL_ANGLE_direct3d_display.txt
gfx/angle/extensions/EGL_ANGLE_query_surface_pointer.txt
gfx/angle/extensions/EGL_ANGLE_software_display.txt
gfx/angle/extensions/EGL_ANGLE_surface_d3d_texture_2d_share_handle.txt
gfx/angle/extensions/EGL_EXT_create_context_robustness.txt
gfx/angle/extensions/EXT_draw_buffers.txt
gfx/angle/extensions/EXT_robustness.txt
gfx/angle/extensions/EXT_texture_storage.txt
gfx/angle/include/EGL/egl.h
gfx/angle/include/EGL/eglext.h
gfx/angle/include/EGL/eglplatform.h
gfx/angle/include/GLES2/gl2.h
gfx/angle/include/GLES2/gl2ext.h
gfx/angle/include/GLES3/gl3.h
gfx/angle/include/GLES3/gl3ext.h
gfx/angle/include/GLES3/gl3platform.h
gfx/angle/include/GLSLANG/ShaderLang.h
gfx/angle/include/KHR/khrplatform.h
gfx/angle/moz.build
gfx/angle/src/angle.gyp
gfx/angle/src/angle.gypi
gfx/angle/src/build_angle.gyp
gfx/angle/src/build_angle.gypi
gfx/angle/src/commit.h
gfx/angle/src/commit_id.bat
gfx/angle/src/commit_id.py
gfx/angle/src/common/RefCountObject.cpp
gfx/angle/src/common/RefCountObject.h
gfx/angle/src/common/angleutils.h
gfx/angle/src/common/blocklayout.cpp
gfx/angle/src/common/blocklayout.h
gfx/angle/src/common/debug.cpp
gfx/angle/src/common/debug.h
gfx/angle/src/common/event_tracer.cpp
gfx/angle/src/common/event_tracer.h
gfx/angle/src/common/mathutil.cpp
gfx/angle/src/common/mathutil.h
gfx/angle/src/common/shadervars.h
gfx/angle/src/common/system.h
gfx/angle/src/common/utilities.cpp
gfx/angle/src/common/utilities.h
gfx/angle/src/common/version.h
gfx/angle/src/compiler.gypi
gfx/angle/src/compiler/64bit-lexer-safety.patch
gfx/angle/src/compiler/BaseTypes.h
gfx/angle/src/compiler/BuiltInFunctionEmulator.cpp
gfx/angle/src/compiler/BuiltInFunctionEmulator.h
gfx/angle/src/compiler/CodeGenGLSL.cpp
gfx/angle/src/compiler/CodeGenHLSL.cpp
gfx/angle/src/compiler/Common.h
gfx/angle/src/compiler/Compiler.cpp
gfx/angle/src/compiler/CompilerUniform.cpp
gfx/angle/src/compiler/CompilerUniform.h
gfx/angle/src/compiler/ConstantUnion.h
gfx/angle/src/compiler/DetectCallDepth.cpp
gfx/angle/src/compiler/DetectCallDepth.h
gfx/angle/src/compiler/DetectDiscontinuity.cpp
gfx/angle/src/compiler/DetectDiscontinuity.h
gfx/angle/src/compiler/Diagnostics.cpp
gfx/angle/src/compiler/Diagnostics.h
gfx/angle/src/compiler/DirectiveHandler.cpp
gfx/angle/src/compiler/DirectiveHandler.h
gfx/angle/src/compiler/ExtensionBehavior.h
gfx/angle/src/compiler/ForLoopUnroll.cpp
gfx/angle/src/compiler/ForLoopUnroll.h
gfx/angle/src/compiler/HashNames.h
gfx/angle/src/compiler/InfoSink.cpp
gfx/angle/src/compiler/InfoSink.h
gfx/angle/src/compiler/Initialize.cpp
gfx/angle/src/compiler/Initialize.h
gfx/angle/src/compiler/InitializeDll.cpp
gfx/angle/src/compiler/InitializeDll.h
gfx/angle/src/compiler/InitializeGlobals.h
gfx/angle/src/compiler/InitializeParseContext.cpp
gfx/angle/src/compiler/InitializeParseContext.h
gfx/angle/src/compiler/IntermTraverse.cpp
gfx/angle/src/compiler/Intermediate.cpp
gfx/angle/src/compiler/MMap.h
gfx/angle/src/compiler/MapLongVariableNames.cpp
gfx/angle/src/compiler/MapLongVariableNames.h
gfx/angle/src/compiler/OutputESSL.cpp
gfx/angle/src/compiler/OutputESSL.h
gfx/angle/src/compiler/OutputGLSL.cpp
gfx/angle/src/compiler/OutputGLSL.h
gfx/angle/src/compiler/OutputGLSLBase.cpp
gfx/angle/src/compiler/OutputGLSLBase.h
gfx/angle/src/compiler/OutputHLSL.cpp
gfx/angle/src/compiler/OutputHLSL.h
gfx/angle/src/compiler/ParseHelper.cpp
gfx/angle/src/compiler/ParseHelper.h
gfx/angle/src/compiler/PoolAlloc.cpp
gfx/angle/src/compiler/PoolAlloc.h
gfx/angle/src/compiler/Pragma.h
gfx/angle/src/compiler/QualifierAlive.cpp
gfx/angle/src/compiler/QualifierAlive.h
gfx/angle/src/compiler/RemoveTree.cpp
gfx/angle/src/compiler/RemoveTree.h
gfx/angle/src/compiler/RenameFunction.h
gfx/angle/src/compiler/SearchSymbol.cpp
gfx/angle/src/compiler/SearchSymbol.h
gfx/angle/src/compiler/ShHandle.h
gfx/angle/src/compiler/ShaderLang.cpp
gfx/angle/src/compiler/SymbolTable.cpp
gfx/angle/src/compiler/SymbolTable.h
gfx/angle/src/compiler/TranslatorESSL.cpp
gfx/angle/src/compiler/TranslatorESSL.h
gfx/angle/src/compiler/TranslatorGLSL.cpp
gfx/angle/src/compiler/TranslatorGLSL.h
gfx/angle/src/compiler/TranslatorHLSL.cpp
gfx/angle/src/compiler/TranslatorHLSL.h
gfx/angle/src/compiler/Types.h
gfx/angle/src/compiler/UnfoldShortCircuit.cpp
gfx/angle/src/compiler/UnfoldShortCircuit.h
gfx/angle/src/compiler/ValidateLimitations.cpp
gfx/angle/src/compiler/ValidateLimitations.h
gfx/angle/src/compiler/VariableInfo.cpp
gfx/angle/src/compiler/VariableInfo.h
gfx/angle/src/compiler/VariablePacker.cpp
gfx/angle/src/compiler/VariablePacker.h
gfx/angle/src/compiler/VersionGLSL.cpp
gfx/angle/src/compiler/VersionGLSL.h
gfx/angle/src/compiler/compiler_debug.cpp
gfx/angle/src/compiler/compiler_debug.h
gfx/angle/src/compiler/depgraph/DependencyGraph.cpp
gfx/angle/src/compiler/depgraph/DependencyGraph.h
gfx/angle/src/compiler/depgraph/DependencyGraphBuilder.cpp
gfx/angle/src/compiler/depgraph/DependencyGraphBuilder.h
gfx/angle/src/compiler/depgraph/DependencyGraphOutput.cpp
gfx/angle/src/compiler/depgraph/DependencyGraphOutput.h
gfx/angle/src/compiler/depgraph/DependencyGraphTraverse.cpp
gfx/angle/src/compiler/generate_parser.sh
gfx/angle/src/compiler/glslang.h
gfx/angle/src/compiler/glslang.l
gfx/angle/src/compiler/glslang.y
gfx/angle/src/compiler/glslang_lex.cpp
gfx/angle/src/compiler/glslang_tab.cpp
gfx/angle/src/compiler/glslang_tab.h
gfx/angle/src/compiler/intermOut.cpp
gfx/angle/src/compiler/intermediate.h
gfx/angle/src/compiler/localintermediate.h
gfx/angle/src/compiler/osinclude.h
gfx/angle/src/compiler/ossource_posix.cpp
gfx/angle/src/compiler/ossource_win.cpp
gfx/angle/src/compiler/parseConst.cpp
gfx/angle/src/compiler/preprocessor/DiagnosticsBase.cpp
gfx/angle/src/compiler/preprocessor/DiagnosticsBase.h
gfx/angle/src/compiler/preprocessor/DirectiveHandlerBase.h
gfx/angle/src/compiler/preprocessor/DirectiveParser.cpp
gfx/angle/src/compiler/preprocessor/DirectiveParser.h
gfx/angle/src/compiler/preprocessor/ExpressionParser.cpp
gfx/angle/src/compiler/preprocessor/ExpressionParser.h
gfx/angle/src/compiler/preprocessor/ExpressionParser.y
gfx/angle/src/compiler/preprocessor/Input.cpp
gfx/angle/src/compiler/preprocessor/Input.h
gfx/angle/src/compiler/preprocessor/Lexer.h
gfx/angle/src/compiler/preprocessor/Macro.cpp
gfx/angle/src/compiler/preprocessor/Macro.h
gfx/angle/src/compiler/preprocessor/MacroExpander.cpp
gfx/angle/src/compiler/preprocessor/MacroExpander.h
gfx/angle/src/compiler/preprocessor/Preprocessor.cpp
gfx/angle/src/compiler/preprocessor/Preprocessor.h
gfx/angle/src/compiler/preprocessor/SourceLocation.h
gfx/angle/src/compiler/preprocessor/Token.cpp
gfx/angle/src/compiler/preprocessor/Token.h
gfx/angle/src/compiler/preprocessor/Tokenizer.cpp
gfx/angle/src/compiler/preprocessor/Tokenizer.h
gfx/angle/src/compiler/preprocessor/Tokenizer.l
gfx/angle/src/compiler/preprocessor/length_limits.h
gfx/angle/src/compiler/preprocessor/numeric_lex.h
gfx/angle/src/compiler/preprocessor/pp_utils.h
gfx/angle/src/compiler/preprocessor/preprocessor.vcxproj
gfx/angle/src/compiler/preprocessor/preprocessor.vcxproj.filters
gfx/angle/src/compiler/timing/RestrictFragmentShaderTiming.cpp
gfx/angle/src/compiler/timing/RestrictFragmentShaderTiming.h
gfx/angle/src/compiler/timing/RestrictVertexShaderTiming.cpp
gfx/angle/src/compiler/timing/RestrictVertexShaderTiming.h
gfx/angle/src/compiler/translator/64bit-lexer-safety.patch
gfx/angle/src/compiler/translator/BaseTypes.h
gfx/angle/src/compiler/translator/BuiltInFunctionEmulator.cpp
gfx/angle/src/compiler/translator/BuiltInFunctionEmulator.h
gfx/angle/src/compiler/translator/CodeGen.cpp
gfx/angle/src/compiler/translator/Common.h
gfx/angle/src/compiler/translator/Compiler.cpp
gfx/angle/src/compiler/translator/ConstantUnion.h
gfx/angle/src/compiler/translator/DetectCallDepth.cpp
gfx/angle/src/compiler/translator/DetectCallDepth.h
gfx/angle/src/compiler/translator/DetectDiscontinuity.cpp
gfx/angle/src/compiler/translator/DetectDiscontinuity.h
gfx/angle/src/compiler/translator/Diagnostics.cpp
gfx/angle/src/compiler/translator/Diagnostics.h
gfx/angle/src/compiler/translator/DirectiveHandler.cpp
gfx/angle/src/compiler/translator/DirectiveHandler.h
gfx/angle/src/compiler/translator/ExtensionBehavior.h
gfx/angle/src/compiler/translator/FlagStd140Structs.cpp
gfx/angle/src/compiler/translator/FlagStd140Structs.h
gfx/angle/src/compiler/translator/ForLoopUnroll.cpp
gfx/angle/src/compiler/translator/ForLoopUnroll.h
gfx/angle/src/compiler/translator/HashNames.h
gfx/angle/src/compiler/translator/InfoSink.cpp
gfx/angle/src/compiler/translator/InfoSink.h
gfx/angle/src/compiler/translator/Initialize.cpp
gfx/angle/src/compiler/translator/Initialize.h
gfx/angle/src/compiler/translator/InitializeDll.cpp
gfx/angle/src/compiler/translator/InitializeDll.h
gfx/angle/src/compiler/translator/InitializeGlobals.h
gfx/angle/src/compiler/translator/InitializeParseContext.cpp
gfx/angle/src/compiler/translator/InitializeParseContext.h
gfx/angle/src/compiler/translator/InitializeVariables.cpp
gfx/angle/src/compiler/translator/InitializeVariables.h
gfx/angle/src/compiler/translator/IntermTraverse.cpp
gfx/angle/src/compiler/translator/Intermediate.cpp
gfx/angle/src/compiler/translator/LoopInfo.cpp
gfx/angle/src/compiler/translator/LoopInfo.h
gfx/angle/src/compiler/translator/MMap.h
gfx/angle/src/compiler/translator/NodeSearch.h
gfx/angle/src/compiler/translator/OutputESSL.cpp
gfx/angle/src/compiler/translator/OutputESSL.h
gfx/angle/src/compiler/translator/OutputGLSL.cpp
gfx/angle/src/compiler/translator/OutputGLSL.h
gfx/angle/src/compiler/translator/OutputGLSLBase.cpp
gfx/angle/src/compiler/translator/OutputGLSLBase.h
gfx/angle/src/compiler/translator/OutputHLSL.cpp
gfx/angle/src/compiler/translator/OutputHLSL.h
gfx/angle/src/compiler/translator/ParseContext.cpp
gfx/angle/src/compiler/translator/ParseContext.h
gfx/angle/src/compiler/translator/PoolAlloc.cpp
gfx/angle/src/compiler/translator/PoolAlloc.h
gfx/angle/src/compiler/translator/Pragma.h
gfx/angle/src/compiler/translator/QualifierAlive.cpp
gfx/angle/src/compiler/translator/QualifierAlive.h
gfx/angle/src/compiler/translator/RemoveTree.cpp
gfx/angle/src/compiler/translator/RemoveTree.h
gfx/angle/src/compiler/translator/RenameFunction.h
gfx/angle/src/compiler/translator/RewriteElseBlocks.cpp
gfx/angle/src/compiler/translator/RewriteElseBlocks.h
gfx/angle/src/compiler/translator/SearchSymbol.cpp
gfx/angle/src/compiler/translator/SearchSymbol.h
gfx/angle/src/compiler/translator/ShHandle.h
gfx/angle/src/compiler/translator/ShaderLang.cpp
gfx/angle/src/compiler/translator/SymbolTable.cpp
gfx/angle/src/compiler/translator/SymbolTable.h
gfx/angle/src/compiler/translator/TranslatorESSL.cpp
gfx/angle/src/compiler/translator/TranslatorESSL.h
gfx/angle/src/compiler/translator/TranslatorGLSL.cpp
gfx/angle/src/compiler/translator/TranslatorGLSL.h
gfx/angle/src/compiler/translator/TranslatorHLSL.cpp
gfx/angle/src/compiler/translator/TranslatorHLSL.h
gfx/angle/src/compiler/translator/Types.cpp
gfx/angle/src/compiler/translator/Types.h
gfx/angle/src/compiler/translator/UnfoldShortCircuit.cpp
gfx/angle/src/compiler/translator/UnfoldShortCircuit.h
gfx/angle/src/compiler/translator/UnfoldShortCircuitAST.cpp
gfx/angle/src/compiler/translator/UnfoldShortCircuitAST.h
gfx/angle/src/compiler/translator/ValidateLimitations.cpp
gfx/angle/src/compiler/translator/ValidateLimitations.h
gfx/angle/src/compiler/translator/ValidateOutputs.cpp
gfx/angle/src/compiler/translator/ValidateOutputs.h
gfx/angle/src/compiler/translator/VariableInfo.cpp
gfx/angle/src/compiler/translator/VariableInfo.h
gfx/angle/src/compiler/translator/VariablePacker.cpp
gfx/angle/src/compiler/translator/VariablePacker.h
gfx/angle/src/compiler/translator/VersionGLSL.cpp
gfx/angle/src/compiler/translator/VersionGLSL.h
gfx/angle/src/compiler/translator/compilerdebug.cpp
gfx/angle/src/compiler/translator/compilerdebug.h
gfx/angle/src/compiler/translator/depgraph/DependencyGraph.cpp
gfx/angle/src/compiler/translator/depgraph/DependencyGraph.h
gfx/angle/src/compiler/translator/depgraph/DependencyGraphBuilder.cpp
gfx/angle/src/compiler/translator/depgraph/DependencyGraphBuilder.h
gfx/angle/src/compiler/translator/depgraph/DependencyGraphOutput.cpp
gfx/angle/src/compiler/translator/depgraph/DependencyGraphOutput.h
gfx/angle/src/compiler/translator/depgraph/DependencyGraphTraverse.cpp
gfx/angle/src/compiler/translator/generate_parser.sh
gfx/angle/src/compiler/translator/glslang.h
gfx/angle/src/compiler/translator/glslang.l
gfx/angle/src/compiler/translator/glslang.y
gfx/angle/src/compiler/translator/glslang_lex.cpp
gfx/angle/src/compiler/translator/glslang_tab.cpp
gfx/angle/src/compiler/translator/glslang_tab.h
gfx/angle/src/compiler/translator/intermOut.cpp
gfx/angle/src/compiler/translator/intermediate.h
gfx/angle/src/compiler/translator/length_limits.h
gfx/angle/src/compiler/translator/localintermediate.h
gfx/angle/src/compiler/translator/osinclude.h
gfx/angle/src/compiler/translator/ossource_posix.cpp
gfx/angle/src/compiler/translator/ossource_win.cpp
gfx/angle/src/compiler/translator/parseConst.cpp
gfx/angle/src/compiler/translator/timing/RestrictFragmentShaderTiming.cpp
gfx/angle/src/compiler/translator/timing/RestrictFragmentShaderTiming.h
gfx/angle/src/compiler/translator/timing/RestrictVertexShaderTiming.cpp
gfx/angle/src/compiler/translator/timing/RestrictVertexShaderTiming.h
gfx/angle/src/compiler/translator/util.cpp
gfx/angle/src/compiler/translator/util.h
gfx/angle/src/compiler/util.cpp
gfx/angle/src/compiler/util.h
gfx/angle/src/copy_compiler_dll.bat
gfx/angle/src/libEGL.gypi
gfx/angle/src/libEGL/Config.cpp
gfx/angle/src/libEGL/Display.cpp
gfx/angle/src/libEGL/Display.h
gfx/angle/src/libEGL/Makefile.in
gfx/angle/src/libEGL/Surface.cpp
gfx/angle/src/libEGL/Surface.h
gfx/angle/src/libEGL/libEGL.cpp
gfx/angle/src/libEGL/libEGL.rc
gfx/angle/src/libEGL/main.cpp
gfx/angle/src/libEGL/moz.build
gfx/angle/src/libGLESv2.gypi
gfx/angle/src/libGLESv2/BinaryStream.h
gfx/angle/src/libGLESv2/Buffer.cpp
gfx/angle/src/libGLESv2/Buffer.h
gfx/angle/src/libGLESv2/Constants.h
gfx/angle/src/libGLESv2/Context.cpp
gfx/angle/src/libGLESv2/Context.h
gfx/angle/src/libGLESv2/DynamicHLSL.cpp
gfx/angle/src/libGLESv2/DynamicHLSL.h
gfx/angle/src/libGLESv2/Fence.cpp
gfx/angle/src/libGLESv2/Fence.h
gfx/angle/src/libGLESv2/Framebuffer.cpp
gfx/angle/src/libGLESv2/Framebuffer.h
gfx/angle/src/libGLESv2/HandleAllocator.h
gfx/angle/src/libGLESv2/Makefile.in
gfx/angle/src/libGLESv2/Program.cpp
gfx/angle/src/libGLESv2/Program.h
gfx/angle/src/libGLESv2/ProgramBinary.cpp
gfx/angle/src/libGLESv2/ProgramBinary.h
gfx/angle/src/libGLESv2/Query.cpp
gfx/angle/src/libGLESv2/Query.h
gfx/angle/src/libGLESv2/Renderbuffer.cpp
gfx/angle/src/libGLESv2/Renderbuffer.h
gfx/angle/src/libGLESv2/RenderbufferProxySet.cpp
gfx/angle/src/libGLESv2/RenderbufferProxySet.h
gfx/angle/src/libGLESv2/ResourceManager.cpp
gfx/angle/src/libGLESv2/ResourceManager.h
gfx/angle/src/libGLESv2/Sampler.cpp
gfx/angle/src/libGLESv2/Sampler.h
gfx/angle/src/libGLESv2/Shader.cpp
gfx/angle/src/libGLESv2/Shader.h
gfx/angle/src/libGLESv2/Texture.cpp
gfx/angle/src/libGLESv2/Texture.h
gfx/angle/src/libGLESv2/TransformFeedback.cpp
gfx/angle/src/libGLESv2/TransformFeedback.h
gfx/angle/src/libGLESv2/Uniform.cpp
gfx/angle/src/libGLESv2/Uniform.h
gfx/angle/src/libGLESv2/VertexArray.cpp
gfx/angle/src/libGLESv2/VertexArray.h
gfx/angle/src/libGLESv2/VertexAttribute.h
gfx/angle/src/libGLESv2/angletypes.cpp
gfx/angle/src/libGLESv2/angletypes.h
gfx/angle/src/libGLESv2/formatutils.cpp
gfx/angle/src/libGLESv2/formatutils.h
gfx/angle/src/libGLESv2/libGLESv2.cpp
gfx/angle/src/libGLESv2/libGLESv2.def
gfx/angle/src/libGLESv2/libGLESv2.rc
gfx/angle/src/libGLESv2/main.cpp
gfx/angle/src/libGLESv2/main.h
gfx/angle/src/libGLESv2/mathutil.h
gfx/angle/src/libGLESv2/moz.build
gfx/angle/src/libGLESv2/precompiled.h
gfx/angle/src/libGLESv2/queryconversions.cpp
gfx/angle/src/libGLESv2/queryconversions.h
gfx/angle/src/libGLESv2/renderer/Blit.cpp
gfx/angle/src/libGLESv2/renderer/Blit.h
gfx/angle/src/libGLESv2/renderer/BufferStorage.cpp
gfx/angle/src/libGLESv2/renderer/BufferStorage.h
gfx/angle/src/libGLESv2/renderer/BufferStorage11.cpp
gfx/angle/src/libGLESv2/renderer/BufferStorage11.h
gfx/angle/src/libGLESv2/renderer/BufferStorage9.cpp
gfx/angle/src/libGLESv2/renderer/BufferStorage9.h
gfx/angle/src/libGLESv2/renderer/Fence11.cpp
gfx/angle/src/libGLESv2/renderer/Fence11.h
gfx/angle/src/libGLESv2/renderer/Fence9.cpp
gfx/angle/src/libGLESv2/renderer/Fence9.h
gfx/angle/src/libGLESv2/renderer/FenceImpl.h
gfx/angle/src/libGLESv2/renderer/Image.cpp
gfx/angle/src/libGLESv2/renderer/Image.h
gfx/angle/src/libGLESv2/renderer/Image11.cpp
gfx/angle/src/libGLESv2/renderer/Image11.h
gfx/angle/src/libGLESv2/renderer/Image9.cpp
gfx/angle/src/libGLESv2/renderer/Image9.h
gfx/angle/src/libGLESv2/renderer/ImageSSE2.cpp
gfx/angle/src/libGLESv2/renderer/IndexBuffer.cpp
gfx/angle/src/libGLESv2/renderer/IndexBuffer11.cpp
gfx/angle/src/libGLESv2/renderer/IndexBuffer11.h
gfx/angle/src/libGLESv2/renderer/IndexBuffer9.cpp
gfx/angle/src/libGLESv2/renderer/IndexBuffer9.h
gfx/angle/src/libGLESv2/renderer/IndexDataManager.cpp
gfx/angle/src/libGLESv2/renderer/IndexRangeCache.cpp
gfx/angle/src/libGLESv2/renderer/IndexRangeCache.h
gfx/angle/src/libGLESv2/renderer/InputLayoutCache.cpp
gfx/angle/src/libGLESv2/renderer/InputLayoutCache.h
gfx/angle/src/libGLESv2/renderer/Query11.cpp
gfx/angle/src/libGLESv2/renderer/Query11.h
gfx/angle/src/libGLESv2/renderer/Query9.cpp
gfx/angle/src/libGLESv2/renderer/Query9.h
gfx/angle/src/libGLESv2/renderer/QueryImpl.h
gfx/angle/src/libGLESv2/renderer/RenderStateCache.cpp
gfx/angle/src/libGLESv2/renderer/RenderStateCache.h
gfx/angle/src/libGLESv2/renderer/RenderTarget.h
gfx/angle/src/libGLESv2/renderer/RenderTarget11.cpp
gfx/angle/src/libGLESv2/renderer/RenderTarget11.h
gfx/angle/src/libGLESv2/renderer/RenderTarget9.cpp
gfx/angle/src/libGLESv2/renderer/RenderTarget9.h
gfx/angle/src/libGLESv2/renderer/Renderer.cpp
gfx/angle/src/libGLESv2/renderer/Renderer.h
gfx/angle/src/libGLESv2/renderer/Renderer11.cpp
gfx/angle/src/libGLESv2/renderer/Renderer11.h
gfx/angle/src/libGLESv2/renderer/Renderer9.cpp
gfx/angle/src/libGLESv2/renderer/Renderer9.h
gfx/angle/src/libGLESv2/renderer/ShaderCache.h
gfx/angle/src/libGLESv2/renderer/ShaderExecutable.h
gfx/angle/src/libGLESv2/renderer/ShaderExecutable11.cpp
gfx/angle/src/libGLESv2/renderer/ShaderExecutable11.h
gfx/angle/src/libGLESv2/renderer/ShaderExecutable9.cpp
gfx/angle/src/libGLESv2/renderer/ShaderExecutable9.h
gfx/angle/src/libGLESv2/renderer/SwapChain.h
gfx/angle/src/libGLESv2/renderer/SwapChain11.cpp
gfx/angle/src/libGLESv2/renderer/SwapChain11.h
gfx/angle/src/libGLESv2/renderer/SwapChain9.cpp
gfx/angle/src/libGLESv2/renderer/SwapChain9.h
gfx/angle/src/libGLESv2/renderer/TextureStorage.cpp
gfx/angle/src/libGLESv2/renderer/TextureStorage.h
gfx/angle/src/libGLESv2/renderer/TextureStorage11.cpp
gfx/angle/src/libGLESv2/renderer/TextureStorage11.h
gfx/angle/src/libGLESv2/renderer/TextureStorage9.cpp
gfx/angle/src/libGLESv2/renderer/TextureStorage9.h
gfx/angle/src/libGLESv2/renderer/VertexBuffer.cpp
gfx/angle/src/libGLESv2/renderer/VertexBuffer.h
gfx/angle/src/libGLESv2/renderer/VertexBuffer11.cpp
gfx/angle/src/libGLESv2/renderer/VertexBuffer11.h
gfx/angle/src/libGLESv2/renderer/VertexBuffer9.cpp
gfx/angle/src/libGLESv2/renderer/VertexBuffer9.h
gfx/angle/src/libGLESv2/renderer/VertexDataManager.cpp
gfx/angle/src/libGLESv2/renderer/VertexDataManager.h
gfx/angle/src/libGLESv2/renderer/VertexDeclarationCache.cpp
gfx/angle/src/libGLESv2/renderer/VertexDeclarationCache.h
gfx/angle/src/libGLESv2/renderer/copyimage.cpp
gfx/angle/src/libGLESv2/renderer/copyimage.h
gfx/angle/src/libGLESv2/renderer/copyvertex.h
gfx/angle/src/libGLESv2/renderer/d3d/HLSLCompiler.cpp
gfx/angle/src/libGLESv2/renderer/d3d/HLSLCompiler.h
gfx/angle/src/libGLESv2/renderer/d3d11/Blit11.cpp
gfx/angle/src/libGLESv2/renderer/d3d11/Blit11.h
gfx/angle/src/libGLESv2/renderer/d3d11/BufferStorage11.cpp
gfx/angle/src/libGLESv2/renderer/d3d11/BufferStorage11.h
gfx/angle/src/libGLESv2/renderer/d3d11/Clear11.cpp
gfx/angle/src/libGLESv2/renderer/d3d11/Clear11.h
gfx/angle/src/libGLESv2/renderer/d3d11/Fence11.cpp
gfx/angle/src/libGLESv2/renderer/d3d11/Fence11.h
gfx/angle/src/libGLESv2/renderer/d3d11/Image11.cpp
gfx/angle/src/libGLESv2/renderer/d3d11/Image11.h
gfx/angle/src/libGLESv2/renderer/d3d11/IndexBuffer11.cpp
gfx/angle/src/libGLESv2/renderer/d3d11/IndexBuffer11.h
gfx/angle/src/libGLESv2/renderer/d3d11/InputLayoutCache.cpp
gfx/angle/src/libGLESv2/renderer/d3d11/InputLayoutCache.h
gfx/angle/src/libGLESv2/renderer/d3d11/PixelTransfer11.cpp
gfx/angle/src/libGLESv2/renderer/d3d11/PixelTransfer11.h
gfx/angle/src/libGLESv2/renderer/d3d11/Query11.cpp
gfx/angle/src/libGLESv2/renderer/d3d11/Query11.h
gfx/angle/src/libGLESv2/renderer/d3d11/RenderStateCache.cpp
gfx/angle/src/libGLESv2/renderer/d3d11/RenderStateCache.h
gfx/angle/src/libGLESv2/renderer/d3d11/RenderTarget11.cpp
gfx/angle/src/libGLESv2/renderer/d3d11/RenderTarget11.h
gfx/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp
gfx/angle/src/libGLESv2/renderer/d3d11/Renderer11.h
gfx/angle/src/libGLESv2/renderer/d3d11/ShaderExecutable11.cpp
gfx/angle/src/libGLESv2/renderer/d3d11/ShaderExecutable11.h
gfx/angle/src/libGLESv2/renderer/d3d11/SwapChain11.cpp
gfx/angle/src/libGLESv2/renderer/d3d11/SwapChain11.h
gfx/angle/src/libGLESv2/renderer/d3d11/TextureStorage11.cpp
gfx/angle/src/libGLESv2/renderer/d3d11/TextureStorage11.h
gfx/angle/src/libGLESv2/renderer/d3d11/VertexBuffer11.cpp
gfx/angle/src/libGLESv2/renderer/d3d11/VertexBuffer11.h
gfx/angle/src/libGLESv2/renderer/d3d11/formatutils11.cpp
gfx/angle/src/libGLESv2/renderer/d3d11/formatutils11.h
gfx/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.cpp
gfx/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/BufferToTexture11.hlsl
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/Clear11.hlsl
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/Passthrough2D11.hlsl
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/Passthrough3D11.hlsl
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/Swizzle11.hlsl
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_gs.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_ps_4f.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_ps_4i.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_ps_4ui.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_vs.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/clearfloat11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/clearfloat11vs.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/clearsint11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/clearsint11vs.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/clearuint11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/clearuint11vs.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough2d11vs.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough3d11gs.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough3d11vs.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughdepth2d11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlum2d11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlum3d11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlumalpha2d11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlumalpha3d11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr2d11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr2di11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr2dui11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr3d11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr3di11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr3dui11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg2d11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg2di11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg2dui11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg3d11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg3di11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg3dui11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb2d11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb2di11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb2dui11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb3d11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb3di11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb3dui11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba2d11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba2di11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba2dui11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba3d11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba3di11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba3dui11ps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlef2darrayps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlef2dps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlef3dps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlei2darrayps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlei2dps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlei3dps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzleui2darrayps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzleui2dps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzleui3dps.h
gfx/angle/src/libGLESv2/renderer/d3d11/shaders/generate_shaders.bat
gfx/angle/src/libGLESv2/renderer/d3d9/Blit9.cpp
gfx/angle/src/libGLESv2/renderer/d3d9/Blit9.h
gfx/angle/src/libGLESv2/renderer/d3d9/BufferStorage9.cpp
gfx/angle/src/libGLESv2/renderer/d3d9/BufferStorage9.h
gfx/angle/src/libGLESv2/renderer/d3d9/Fence9.cpp
gfx/angle/src/libGLESv2/renderer/d3d9/Fence9.h
gfx/angle/src/libGLESv2/renderer/d3d9/Image9.cpp
gfx/angle/src/libGLESv2/renderer/d3d9/Image9.h
gfx/angle/src/libGLESv2/renderer/d3d9/IndexBuffer9.cpp
gfx/angle/src/libGLESv2/renderer/d3d9/IndexBuffer9.h
gfx/angle/src/libGLESv2/renderer/d3d9/Query9.cpp
gfx/angle/src/libGLESv2/renderer/d3d9/Query9.h
gfx/angle/src/libGLESv2/renderer/d3d9/RenderTarget9.cpp
gfx/angle/src/libGLESv2/renderer/d3d9/RenderTarget9.h
gfx/angle/src/libGLESv2/renderer/d3d9/Renderer9.cpp
gfx/angle/src/libGLESv2/renderer/d3d9/Renderer9.h
gfx/angle/src/libGLESv2/renderer/d3d9/ShaderCache.h
gfx/angle/src/libGLESv2/renderer/d3d9/ShaderExecutable9.cpp
gfx/angle/src/libGLESv2/renderer/d3d9/ShaderExecutable9.h
gfx/angle/src/libGLESv2/renderer/d3d9/SwapChain9.cpp
gfx/angle/src/libGLESv2/renderer/d3d9/SwapChain9.h
gfx/angle/src/libGLESv2/renderer/d3d9/TextureStorage9.cpp
gfx/angle/src/libGLESv2/renderer/d3d9/TextureStorage9.h
gfx/angle/src/libGLESv2/renderer/d3d9/VertexBuffer9.cpp
gfx/angle/src/libGLESv2/renderer/d3d9/VertexBuffer9.h
gfx/angle/src/libGLESv2/renderer/d3d9/VertexDeclarationCache.cpp
gfx/angle/src/libGLESv2/renderer/d3d9/VertexDeclarationCache.h
gfx/angle/src/libGLESv2/renderer/d3d9/formatutils9.cpp
gfx/angle/src/libGLESv2/renderer/d3d9/formatutils9.h
gfx/angle/src/libGLESv2/renderer/d3d9/renderer9_utils.cpp
gfx/angle/src/libGLESv2/renderer/d3d9/renderer9_utils.h
gfx/angle/src/libGLESv2/renderer/d3d9/shaders/Blit.ps
gfx/angle/src/libGLESv2/renderer/d3d9/shaders/Blit.vs
gfx/angle/src/libGLESv2/renderer/d3d9/shaders/compiled/componentmaskps.h
gfx/angle/src/libGLESv2/renderer/d3d9/shaders/compiled/flipyvs.h
gfx/angle/src/libGLESv2/renderer/d3d9/shaders/compiled/luminanceps.h
gfx/angle/src/libGLESv2/renderer/d3d9/shaders/compiled/passthroughps.h
gfx/angle/src/libGLESv2/renderer/d3d9/shaders/compiled/standardvs.h
gfx/angle/src/libGLESv2/renderer/d3d9/shaders/generate_shaders.bat
gfx/angle/src/libGLESv2/renderer/generatemip.h
gfx/angle/src/libGLESv2/renderer/imageformats.h
gfx/angle/src/libGLESv2/renderer/loadimage.cpp
gfx/angle/src/libGLESv2/renderer/loadimage.h
gfx/angle/src/libGLESv2/renderer/loadimageSSE2.cpp
gfx/angle/src/libGLESv2/renderer/renderer11_utils.cpp
gfx/angle/src/libGLESv2/renderer/renderer11_utils.h
gfx/angle/src/libGLESv2/renderer/renderer9_utils.cpp
gfx/angle/src/libGLESv2/renderer/renderer9_utils.h
gfx/angle/src/libGLESv2/renderer/shaders/Blit.ps
gfx/angle/src/libGLESv2/renderer/shaders/Blit.vs
gfx/angle/src/libGLESv2/renderer/shaders/Clear11.hlsl
gfx/angle/src/libGLESv2/renderer/shaders/Passthrough11.hlsl
gfx/angle/src/libGLESv2/renderer/shaders/compiled/clear11vs.h
gfx/angle/src/libGLESv2/renderer/shaders/compiled/clearmultiple11ps.h
gfx/angle/src/libGLESv2/renderer/shaders/compiled/clearsingle11ps.h
gfx/angle/src/libGLESv2/renderer/shaders/compiled/componentmaskps.h
gfx/angle/src/libGLESv2/renderer/shaders/compiled/flipyvs.h
gfx/angle/src/libGLESv2/renderer/shaders/compiled/luminanceps.h
gfx/angle/src/libGLESv2/renderer/shaders/compiled/passthrough11vs.h
gfx/angle/src/libGLESv2/renderer/shaders/compiled/passthroughlum11ps.h
gfx/angle/src/libGLESv2/renderer/shaders/compiled/passthroughlumalpha11ps.h
gfx/angle/src/libGLESv2/renderer/shaders/compiled/passthroughps.h
gfx/angle/src/libGLESv2/renderer/shaders/compiled/passthroughrgb11ps.h
gfx/angle/src/libGLESv2/renderer/shaders/compiled/passthroughrgba11ps.h
gfx/angle/src/libGLESv2/renderer/shaders/compiled/standardvs.h
gfx/angle/src/libGLESv2/renderer/shaders/generate_shaders.bat
gfx/angle/src/libGLESv2/utilities.cpp
gfx/angle/src/libGLESv2/utilities.h
gfx/angle/src/libGLESv2/validationES.cpp
gfx/angle/src/libGLESv2/validationES.h
gfx/angle/src/libGLESv2/validationES2.cpp
gfx/angle/src/libGLESv2/validationES2.h
gfx/angle/src/libGLESv2/validationES3.cpp
gfx/angle/src/libGLESv2/validationES3.h
gfx/angle/src/third_party/compiler/ArrayBoundsClamper.cpp
gfx/angle/src/third_party/compiler/ArrayBoundsClamper.h
gfx/angle/src/third_party/murmurhash/MurmurHash3.cpp
gfx/angle/src/third_party/murmurhash/MurmurHash3.h
gfx/angle/src/third_party/systeminfo/SystemInfo.cpp
gfx/angle/src/third_party/systeminfo/SystemInfo.h
gfx/angle/src/third_party/trace_event/trace_event.h
--- a/gfx/angle/AUTHORS
+++ b/gfx/angle/AUTHORS
@@ -8,16 +8,18 @@
 # Email addresses for individuals are tracked elsewhere to avoid spam.
 
 Google Inc.
 TransGaming Inc.
 3DLabs Inc. Ltd.
 
 Adobe Systems Inc.
 Autodesk, Inc.
+BlackBerry Limited
+Cable Television Laboratories, Inc.
 Cloud Party, Inc.
 Intel Corporation
 Mozilla Corporation
 Turbulenz
 Klarälvdalens Datakonsult AB
 
 Jacek Caban
 Mark Callow
--- a/gfx/angle/CONTRIBUTORS
+++ b/gfx/angle/CONTRIBUTORS
@@ -1,76 +1,77 @@
-# This is the official list of people who can contribute
-# (and who have contributed) code to the ANGLE project
-# repository.
-# The AUTHORS file lists the copyright holders; this file
-# lists people.  For example, Google employees are listed here
-# but not in AUTHORS, because Google holds the copyright.
-#
-
-TransGaming Inc.
- Nicolas Capens
- Daniel Koch
- Geoff Lang
- Andrew Lewycky
- Jamie Madill
- Gavriel State
- Shannon Woods
-
-Google Inc.
- Brent Austin
- Michael Bai
- John Bauman
- Peter Beverloo
- Steve Block
- Rachel Blum
- Eric Boren
- Henry Bridge
- Nat Duca
- Peter Kasting
- Vangelis Kokkevis
- Zhenyao Mo
- Daniel Nicoara
- Alastair Patrick
- Alok Priyadarshi
- Kenneth Russell
- Brian Salomon
- Gregg Tavares
- Jeff Timanus
- Ben Vanik
- Adrienne Walker
- thestig@chromium.org
- Justin Schuh
-
-Adobe Systems Inc.
- Alexandru Chiculita
- Steve Minns
- Max Vujovic
-
-Autodesk, Inc.
- Ranger Harke
-
-Cloud Party, Inc.
- Conor Dickinson
-
-Intel Corporation
- Jin Yang
- Andy Chen
- Josh Triplett
-
-Klarälvdalens Datakonsult AB
- Milian Wolff
-
-Mozilla Corp.
- Ehsan Akhgari
- Jeff Gilbert
- Mike Hommey
- Benoit Jacob
- Makoto Kato
- Vladimir Vukicevic
-
-Turbulenz
- Michael Braithwaite
-
-Ulrik Persson (ddefrostt)
-Mark Banner (standard8mbp)
-David Kilzer
-
+# This is the official list of people who can contribute
+# (and who have contributed) code to the ANGLE project
+# repository.
+# The AUTHORS file lists the copyright holders; this file
+# lists people.  For example, Google employees are listed here
+# but not in AUTHORS, because Google holds the copyright.
+#
+
+TransGaming Inc.
+ Nicolas Capens
+ Daniel Koch
+ Geoff Lang
+ Andrew Lewycky
+ Jamie Madill
+ Gavriel State
+ Shannon Woods
+
+Google Inc.
+ Brent Austin
+ Michael Bai
+ John Bauman
+ Peter Beverloo
+ Steve Block
+ Rachel Blum
+ Eric Boren
+ Henry Bridge
+ Nat Duca
+ Peter Kasting
+ Vangelis Kokkevis
+ Zhenyao Mo
+ Daniel Nicoara
+ Alastair Patrick
+ Alok Priyadarshi
+ Kenneth Russell
+ Brian Salomon
+ Gregg Tavares
+ Jeff Timanus
+ Ben Vanik
+ Adrienne Walker
+ thestig@chromium.org
+ Justin Schuh
+ Scott Graham
+
+Adobe Systems Inc.
+ Alexandru Chiculita
+ Steve Minns
+ Max Vujovic
+
+Autodesk, Inc.
+ Ranger Harke
+
+Cloud Party, Inc.
+ Conor Dickinson
+
+Intel Corporation
+ Jin Yang
+ Andy Chen
+ Josh Triplett
+
+Klarälvdalens Datakonsult AB
+ Milian Wolff
+
+Mozilla Corp.
+ Ehsan Akhgari
+ Jeff Gilbert
+ Mike Hommey
+ Benoit Jacob
+ Makoto Kato
+ Vladimir Vukicevic
+
+Turbulenz
+ Michael Braithwaite
+
+Ulrik Persson (ddefrostt)
+Mark Banner (standard8mbp)
+David Kilzer
+
--- a/gfx/angle/DEPS
+++ b/gfx/angle/DEPS
@@ -1,18 +1,18 @@
 deps = {
-  "trunk/third_party/gyp":
-      "http://gyp.googlecode.com/svn/trunk@1564",
+  "third_party/gyp":
+      "http://gyp.googlecode.com/svn/trunk@1806",
 
-  "trunk/third_party/googletest":
-      "http://googletest.googlecode.com/svn/trunk@573", #release 1.6.0
+  "tests/third_party/googletest":
+      "http://googletest.googlecode.com/svn/trunk@629",
 
-  "trunk/third_party/googlemock":
-      "http://googlemock.googlecode.com/svn/trunk@387", #release 1.6.0
+  "tests/third_party/googlemock":
+      "http://googlemock.googlecode.com/svn/trunk@410",
 }
 
 hooks = [
   {
     # A change to a .gyp, .gypi, or to GYP itself should run the generator.
     "pattern": ".",
-    "action": ["python", "trunk/build/gyp_angle"],
+    "action": ["python", "build/gyp_angle"],
   },
 ]
--- a/gfx/angle/README.mozilla
+++ b/gfx/angle/README.mozilla
@@ -1,217 +1,35 @@
-This is the ANGLE project, from http://code.google.com/p/angleproject/
-
-Current revision: f3fc6571dca9832876e09c63b0958d413737757b
-Date of revision: 2013-08-02
-
-== Applied local patches ==
-In this order:
-  angle-build-stdcall-alias.patch:
-    Fix an issue GCC has with linking to undecorated stdcalls.
+This is the ANGLE project, originally from https://chromium.googlesource.com/angle/angle 
 
-  angle-build-dedupe-debug-cpp-h.patch:
-    Rename: "src/compiler/debug.{cpp,h}"
-    To:     "src/compiler/compiler_debug.{cpp,h}"
-    Repair includes accordingly.
+The Mozilla upstream is the 'mozilla' branch from https://github.com/mozilla/angle, which
+includes Mozilla-specific patches on top of upstream.
 
-  angle-build-d3dcompiler-list.patch:
-    Move `ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES` define from make files to
-    Renderer.cpp, where it's used.
-
-  angle-build-khrplatform-h-path.patch:
-    Fix include path for khrplatform.h.
+=== How to upgrade ANGLE ===
 
-  angle-build-case-sensitive.patch
-    Fixes cross compilation on case sensitive OSes.
-
-  angle-build-dedupe-uniform-cpp-h.patch:
-    Rename: "src/compiler/Uniform.{cpp,h}"
-    To:     "src/compiler/CompilerUniform.{cpp,h}"
-    Repair includes accordingly.
-
-  angle-build-ttype.patch:
-    Remove bit-field markings for TType, since GCC4.7 emits a default
-    copy constructor which fails to compile.
+1. git clone https://github.com/mozilla/angle angle
 
-  angle-long-ident-hash.patch:
-    Use MurmurHash3 for long identifier hashing. See bug 676071, where we used
-    Spooky Hash, before ANGLE came with MurmurHash3.
+2. Go into the angle dir, and add the google upstream as a remote:
+     git remote add google https://chromium.googlesource.com/angle/angle
 
-  angle-faceforward-emu.patch:
-    Adds emulation for faceforward(float,float,float), which is needed to
-    prevent crashing on Mac+Intel. See bug 771406.
-
-  angle-default-clamp-strat.patch:
-    Fixes TCompiler::Init to treat `resources.ArrayIndexClampingStrategy`
-    as a request for the default strategy.
-
-  angle-tex-pool-default.patch:
-    Don't use D3DPOOL_MANAGED on D3D9. Just use D3DPOOL_DEFAULT.
+3. Fetch the new google upstream:
+     git fetch google
 
-  angle-build-unified.patch:
-    Fixes required to make angle compile in unified mode
-    Note that a different version of this patch was upstreamed, so the next time that
-    Angle is updated this patch can be discarded.  See:
-    https://chromium.googlesource.com/angle/angle/+/0dd3b3ff66cdc50882125d21e60112d5161279b4
-    https://chromium.googlesource.com/angle/angle/+/0685fbde65a3e90d8d4d4a6c72f2cc1771617fd0
-
-  angle-fix-vc12.patch:
-    Fixes angle to build on Visual Studio 2013
+4. Switch to the mozilla branch
+     git checkout mozilla
 
-  angle-d3dcc47.patch:
-    Tell ANGLE about d3dcompiler_47.dll from WinSDK 8.1.
-
-  angle-fix-issue-651.patch:
-    Fixes crash in TSymbolTableLevel::~TSymbolTableLevel with GCC 4.9
-
-In addition to these patches, the Makefile.in and moz.build build files are ours,
-they're not present in upsteam ANGLE. Therefore, changes made to the build files
-should not be stored in the local .patch files.
-
+5. Rebase the mozilla branch on top of the new google master.  Fix up patches along the way,
+   remove unneded commits.
+     git rebase -i google/master
 
-== How to do a clean-slate upgrade ==
-1.  Backup our moz-specific files:
-      README.mozilla
-      Makefile.in
-      moz.build
-      *.patch
-      src/libEGL/Makefile.in
-      src/libEGL/moz.build
-      src/libGLESv2/Makefile.in
-      src/libGLESv2/moz.build
+6. Re-generate moz.build files:
+     ./gyp_mozbuild
 
-2.  $ rm -rf gfx/angle
+7. nuke mozilla-central/gfx/angle directory
 
-3.  Copy the folder containing the angle rev you want onto gfx/angle.
-    $ svn export -r <rev> <src> <moz-central>/gfx/angle
-    Or:
-    $ git checkout-index --prefix <moz-central>/gfx/angle/ -a
-
-4.  Fold our moz-specific files into this new angle folder. (Makefiles, README)
-4a. Remove the unused files. (test/, samples/, msvc files)
+8. copy all the relevant files from the github checkout
+     cd mozilla-central
+     mkdir gfx/angle
+     cp -r /c/proj/angle/[A-Z]* /c/proj/angle/{include,src,moz.build} gfx/angle
 
-5.  Clear out the "Applied Local Patches" section above, since we're going to
-    repopulate it.
-
-6.  Re-apply the angle-build-*.patch files and record them above.
-
-7.  Update the Makefile.in files with the current deps from the .gyp(i) files.
-
-8.  Build. Fix things until it builds.
-
-9.  Reapply the rest of the .patch files and record them above.
+9.  Build. Fix things until it builds.
 
 10. Try runs and reviews!
-
-
-== Applying Diffs ==
-In general:
-$ patch -p1 -R < gfx/angle/angle-some-bug-fix.patch
-
-SVN diffs however can be iffy. They don't seem to be completely compatible
-with `patch`. Be aware that you'll likely get rejects whenever a file is
-removed.
-
-
-
-== How to do an incremental update ==
-Same general idea here, but instead of nuking the ANGLE dir, we're going to
-have to get a diff between revs from SVN, and deal with applying that. We
-also naturally have to peel off our local patches before we can apply a diff
-from upstream.
-
-1. Unapply patches
-
-Unapply them in reverse order, so iterate over the above list of applied patch
-starting from the bottom. You most likely want to record these patch-unapply
-operations as individual patches themselves, in order to re-apply patches later.
-
-$ cd /path/to/mozilla-central
-
-$ patch -p1 -R < gfx/angle/angle-some-bug-fix.patch
-$ hg qnew unapply-angle-some-bug-fix.patch
-
-2. Apply diff with new ANGLE version
-
-Check at the top of this file what ANGLE revision we currently have. Let's say it's
-r123. Check at the ANGLE Web site what recent revisions look like to figure what
-revision seems safe. Let's say we want r456.
-
-$ cd
-$ svn checkout http://angleproject.googlecode.com/svn/trunk/ angleproject
-$ cd angleproject
-$ svn diff -r 123:456 > ~/angle-diff-from-123-to-456
-$ cd /path/to/mozilla-central
-$ cd gfx/angle
-$ patch -p0 < ~/angle-diff-from-123-to-456
-$ cd ../..
-$ hg status
-# hg add any new ANGLE files under gfx/angle
-$ hg qnew angle-diff-from-123-to-456
-
-3. Reapply patches
-
-You may have to skip reapplying certain patches there, for example if they have
-been integrated into ANGLE since our last update. The short patch descriptions above
-in this file should help you make that decision.
-
-If you have recorded the individual patch unapply operations in step 1 as separate
-Mercurial patches, this will be easy, just apply the inverse patches now, in reverse
-order:
-
-$ patch -p1 -R < .hg/patches/unapply-angle-some-bug-fix.patch
-$ hg status
-# hg add any new ANGLE files under gfx/angle
-$ hg qnew angle-some-bug-fix.patch
-
-Note that here you need to proceed in the reverse order of what you did in step 1.
-
-4. Update our Makefiles
-
-Open your ANGLE diff file (~/angle-diff-from-123-to-456), search for GYP files
-(e.g. build_angle.gyp), it's easy-to-read JSON. It may list additions of new files,
-or removal of old files. You have to reflect this in our Makefiles:
-
-gfx/angle/Makefile.in
-gfx/angle/src/libEGL/Makefile.in
-gfx/angle/src/libGLESv2/Makefile.in
-
-The first one is our main Makefile. It has basically the ANGLE shader compiler.
-Changes there will typically have to be applied also to the two other Makefiles.
-These two other Makefiles are Windows-only and build the ANGLE GLES2-on-top-of-D3D
-implementation.
-
-5. Update patch files
-
-Something like:
-
-$ cp .hg/patches/angle-some-bug-fix.patch gfx/angle
-
-For each patch that you reapplied.
-
-If a patch was removed (not reapplied), remove the corresponding patch file.
-
-6. Update this README.mozilla
-
-You'll have to update at least the ANGLE revision number and probably the patch
-list as well.
-
-7. Push to Try
-
-Make sure to test both Windows and non-Windows, and enable mochitest-1 in your
-Try options. You may want reftest as well, as we have WebGL reftests.
-
-8. Get reviews.
-
-Typically, you would get review on your Makefiles patch, and any
-new patches that you need to add to get this update to work.
-
-You do not need a review for the ANGLE diff itself and for trivial updates of
-existing patches.
-
-
-== Visual Studio Solution Files ==
-Ignore these. We don't use them anymore. We use custom Makefiles.
-
-
-== Generated parser code==
-Don't bother about that anymore. The parser is now generated and included in the ANGLE svn repo.
deleted file mode 100644
--- a/gfx/angle/angle-build-case-sensitive.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Jeff Gilbert <jgilbert@mozilla.com>
-* * *
-Bug 840577 - Fix ANGLE cross compilation on case sensitive OSes, relanded
-
-diff --git a/gfx/angle/src/libGLESv2/precompiled.h b/gfx/angle/src/libGLESv2/precompiled.h
---- a/gfx/angle/src/libGLESv2/precompiled.h
-+++ b/gfx/angle/src/libGLESv2/precompiled.h
-@@ -30,13 +30,13 @@
- #include <sstream>
- #include <string>
- #include <unordered_map>
- #include <vector>
- 
- #include <d3d9.h>
- #include <D3D11.h>
- #include <dxgi.h>
--#include <D3Dcompiler.h>
-+#include <d3dcompiler.h>
- 
- #ifdef _MSC_VER
- #include <hash_map>
- #endif
deleted file mode 100644
--- a/gfx/angle/angle-build-d3dcompiler-list.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From: Jeff Gilbert <jgilbert@mozilla.com>
-
-diff --git a/gfx/angle/src/libGLESv2/renderer/Renderer.cpp b/gfx/angle/src/libGLESv2/renderer/Renderer.cpp
---- a/gfx/angle/src/libGLESv2/renderer/Renderer.cpp
-+++ b/gfx/angle/src/libGLESv2/renderer/Renderer.cpp
-@@ -15,16 +15,23 @@
- #include "libGLESv2/renderer/Renderer11.h"
- #include "libGLESv2/utilities.h"
- 
- #if !defined(ANGLE_ENABLE_D3D11)
- // Enables use of the Direct3D 11 API for a default display, when available
- #define ANGLE_ENABLE_D3D11 0
- #endif
- 
-+#define ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES \
-+    {                                            \
-+        TEXT("d3dcompiler_46.dll"),              \
-+        TEXT("d3dcompiler_43.dll")               \
-+    }
-+
-+
- namespace rx
- {
- 
- Renderer::Renderer(egl::Display *display) : mDisplay(display)
- {
-     mD3dCompilerModule = NULL;
-     mD3DCompileFunc = NULL;
- }
-@@ -212,9 +219,9 @@ rx::Renderer *glCreateRenderer(egl::Disp
-     return NULL;
- }
- 
- void glDestroyRenderer(rx::Renderer *renderer)
- {
-     delete renderer;
- }
- 
--}
-\ No newline at end of file
-+}
deleted file mode 100644
--- a/gfx/angle/angle-build-dedupe-debug-cpp-h.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-From: Jeff Gilbert <jgilbert@mozilla.com>
-
-diff --git a/gfx/angle/src/compiler/Diagnostics.cpp b/gfx/angle/src/compiler/Diagnostics.cpp
---- a/gfx/angle/src/compiler/Diagnostics.cpp
-+++ b/gfx/angle/src/compiler/Diagnostics.cpp
-@@ -1,17 +1,17 @@
- //
- // Copyright (c) 2012 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.
- //
- 
- #include "compiler/Diagnostics.h"
- 
--#include "compiler/debug.h"
-+#include "compiler/compiler_debug.h"
- #include "compiler/InfoSink.h"
- #include "compiler/preprocessor/SourceLocation.h"
- 
- TDiagnostics::TDiagnostics(TInfoSink& infoSink) :
-     mInfoSink(infoSink),
-     mNumErrors(0),
-     mNumWarnings(0)
- {
-diff --git a/gfx/angle/src/compiler/DirectiveHandler.cpp b/gfx/angle/src/compiler/DirectiveHandler.cpp
---- a/gfx/angle/src/compiler/DirectiveHandler.cpp
-+++ b/gfx/angle/src/compiler/DirectiveHandler.cpp
-@@ -3,17 +3,17 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- //
- 
- #include "compiler/DirectiveHandler.h"
- 
- #include <sstream>
- 
--#include "compiler/debug.h"
-+#include "compiler/compiler_debug.h"
- #include "compiler/Diagnostics.h"
- 
- static TBehavior getBehavior(const std::string& str)
- {
-     static const std::string kRequire("require");
-     static const std::string kEnable("enable");
-     static const std::string kDisable("disable");
-     static const std::string kWarn("warn");
-diff --git a/gfx/angle/src/compiler/OutputGLSLBase.cpp b/gfx/angle/src/compiler/OutputGLSLBase.cpp
---- a/gfx/angle/src/compiler/OutputGLSLBase.cpp
-+++ b/gfx/angle/src/compiler/OutputGLSLBase.cpp
-@@ -1,16 +1,16 @@
- //
- // Copyright (c) 2002-2011 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.
- //
- 
- #include "compiler/OutputGLSLBase.h"
--#include "compiler/debug.h"
-+#include "compiler/compiler_debug.h"
- 
- #include <cfloat>
- 
- namespace
- {
- TString arrayBrackets(const TType& type)
- {
-     ASSERT(type.isArray());
-diff --git a/gfx/angle/src/compiler/OutputHLSL.cpp b/gfx/angle/src/compiler/OutputHLSL.cpp
---- a/gfx/angle/src/compiler/OutputHLSL.cpp
-+++ b/gfx/angle/src/compiler/OutputHLSL.cpp
-@@ -2,17 +2,17 @@
- // Copyright (c) 2002-2013 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.
- //
- 
- #include "compiler/OutputHLSL.h"
- 
- #include "common/angleutils.h"
--#include "compiler/debug.h"
-+#include "compiler/compiler_debug.h"
- #include "compiler/DetectDiscontinuity.h"
- #include "compiler/InfoSink.h"
- #include "compiler/SearchSymbol.h"
- #include "compiler/UnfoldShortCircuit.h"
- 
- #include <algorithm>
- #include <cfloat>
- #include <stdio.h>
-diff --git a/gfx/angle/src/compiler/Types.h b/gfx/angle/src/compiler/Types.h
---- a/gfx/angle/src/compiler/Types.h
-+++ b/gfx/angle/src/compiler/Types.h
-@@ -6,17 +6,17 @@
- 
- #ifndef _TYPES_INCLUDED
- #define _TYPES_INCLUDED
- 
- #include "common/angleutils.h"
- 
- #include "compiler/BaseTypes.h"
- #include "compiler/Common.h"
--#include "compiler/debug.h"
-+#include "compiler/compiler_debug.h"
- 
- struct TPublicType;
- class TType;
- 
- class TField
- {
- public:
-     POOL_ALLOCATOR_NEW_DELETE();
-diff --git a/gfx/angle/src/compiler/debug.cpp b/gfx/angle/src/compiler/compiler_debug.cpp
-rename from gfx/angle/src/compiler/debug.cpp
-rename to gfx/angle/src/compiler/compiler_debug.cpp
---- a/gfx/angle/src/compiler/debug.cpp
-+++ b/gfx/angle/src/compiler/compiler_debug.cpp
-@@ -1,17 +1,17 @@
- //
- // Copyright (c) 2002-2010 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.
- //
- 
--// debug.cpp: Debugging utilities.
-+// compiler_debug.cpp: Debugging utilities.
- 
--#include "compiler/debug.h"
-+#include "compiler/compiler_debug.h"
- 
- #include <stdarg.h>
- #include <stdio.h>
- 
- #include "compiler/InitializeParseContext.h"
- #include "compiler/ParseHelper.h"
- 
- static const int kTraceBufferLen = 1024;
-diff --git a/gfx/angle/src/compiler/debug.h b/gfx/angle/src/compiler/compiler_debug.h
-rename from gfx/angle/src/compiler/debug.h
-rename to gfx/angle/src/compiler/compiler_debug.h
---- a/gfx/angle/src/compiler/debug.h
-+++ b/gfx/angle/src/compiler/compiler_debug.h
-@@ -1,15 +1,15 @@
- //
- // Copyright (c) 2002-2010 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.
- //
- 
--// debug.h: Debugging utilities.
-+// compiler_debug.h: Debugging utilities.
- 
- #ifndef COMPILER_DEBUG_H_
- #define COMPILER_DEBUG_H_
- 
- #include <assert.h>
- 
- #ifdef _DEBUG
- #define TRACE_ENABLED  // define to enable debug message tracing
-diff --git a/gfx/angle/src/compiler/osinclude.h b/gfx/angle/src/compiler/osinclude.h
---- a/gfx/angle/src/compiler/osinclude.h
-+++ b/gfx/angle/src/compiler/osinclude.h
-@@ -30,17 +30,17 @@
- #include <windows.h>
- #elif defined(ANGLE_OS_POSIX)
- #include <pthread.h>
- #include <semaphore.h>
- #include <errno.h>
- #endif  // ANGLE_OS_WIN
- 
- 
--#include "compiler/debug.h"
-+#include "compiler/compiler_debug.h"
- 
- //
- // Thread Local Storage Operations
- //
- #if defined(ANGLE_OS_WIN)
- typedef DWORD OS_TLSIndex;
- #define OS_INVALID_TLS_INDEX (TLS_OUT_OF_INDEXES)
- #elif defined(ANGLE_OS_POSIX)
deleted file mode 100644
--- a/gfx/angle/angle-build-dedupe-uniform-cpp-h.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From: Jeff Gilbert <jgilbert@mozilla.com>
-
-diff --git a/gfx/angle/src/compiler/Uniform.cpp b/gfx/angle/src/compiler/CompilerUniform.cpp
-rename from gfx/angle/src/compiler/Uniform.cpp
-rename to gfx/angle/src/compiler/CompilerUniform.cpp
---- a/gfx/angle/src/compiler/Uniform.cpp
-+++ b/gfx/angle/src/compiler/CompilerUniform.cpp
-@@ -1,15 +1,15 @@
- //
- // Copyright (c) 2013 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.
- //
- 
--#include "compiler/Uniform.h"
-+#include "CompilerUniform.h"
- 
- namespace sh
- {
- 
- Uniform::Uniform(GLenum type, GLenum precision, const char *name, int arraySize, int registerIndex)
- {
-     this->type = type;
-     this->precision = precision;
-diff --git a/gfx/angle/src/compiler/Uniform.h b/gfx/angle/src/compiler/CompilerUniform.h
-rename from gfx/angle/src/compiler/Uniform.h
-rename to gfx/angle/src/compiler/CompilerUniform.h
-diff --git a/gfx/angle/src/compiler/OutputHLSL.h b/gfx/angle/src/compiler/OutputHLSL.h
---- a/gfx/angle/src/compiler/OutputHLSL.h
-+++ b/gfx/angle/src/compiler/OutputHLSL.h
-@@ -11,17 +11,17 @@
- #include <set>
- #include <map>
- 
- #define GL_APICALL
- #include <GLES2/gl2.h>
- 
- #include "compiler/intermediate.h"
- #include "compiler/ParseHelper.h"
--#include "compiler/Uniform.h"
-+#include "compiler/CompilerUniform.h"
- 
- namespace sh
- {
- class UnfoldShortCircuit;
- 
- class OutputHLSL : public TIntermTraverser
- {
-   public:
-diff --git a/gfx/angle/src/compiler/TranslatorHLSL.h b/gfx/angle/src/compiler/TranslatorHLSL.h
---- a/gfx/angle/src/compiler/TranslatorHLSL.h
-+++ b/gfx/angle/src/compiler/TranslatorHLSL.h
-@@ -3,17 +3,17 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- //
- 
- #ifndef COMPILER_TRANSLATORHLSL_H_
- #define COMPILER_TRANSLATORHLSL_H_
- 
- #include "compiler/ShHandle.h"
--#include "compiler/Uniform.h"
-+#include "compiler/CompilerUniform.h"
- 
- class TranslatorHLSL : public TCompiler {
- public:
-     TranslatorHLSL(ShShaderType type, ShShaderSpec spec, ShShaderOutput output);
- 
-     virtual TranslatorHLSL *getAsTranslatorHLSL() { return this; }
-     const sh::ActiveUniforms &getUniforms() { return mActiveUniforms; }
- 
-diff --git a/gfx/angle/src/libGLESv2/Shader.h b/gfx/angle/src/libGLESv2/Shader.h
---- a/gfx/angle/src/libGLESv2/Shader.h
-+++ b/gfx/angle/src/libGLESv2/Shader.h
-@@ -13,17 +13,17 @@
- #define LIBGLESV2_SHADER_H_
- 
- #define GL_APICALL
- #include <GLES2/gl2.h>
- #include <string>
- #include <list>
- #include <vector>
- 
--#include "compiler/Uniform.h"
-+#include "compiler/CompilerUniform.h"
- #include "common/angleutils.h"
- 
- namespace rx
- {
- class Renderer;
- }
- 
- namespace gl
deleted file mode 100644
--- a/gfx/angle/angle-build-khrplatform-h-path.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: Jeff Gilbert <jgilbert@mozilla.com>
-
-diff --git a/gfx/angle/include/GLSLANG/ShaderLang.h b/gfx/angle/include/GLSLANG/ShaderLang.h
---- a/gfx/angle/include/GLSLANG/ShaderLang.h
-+++ b/gfx/angle/include/GLSLANG/ShaderLang.h
-@@ -18,17 +18,17 @@
- #else  // defined(WIN32)
- #define COMPILER_EXPORT __attribute__((visibility("default")))
- #endif
- 
- #else  // defined(COMPONENT_BUILD)
- #define COMPILER_EXPORT
- #endif
- 
--#include "KHR/khrplatform.h"
-+#include "khrplatform.h"
- #include <stddef.h>
- 
- //
- // This is the platform independent interface between an OGL driver
- // and the shading language compiler.
- //
- 
- #ifdef __cplusplus
deleted file mode 100644
--- a/gfx/angle/angle-build-mingw.patch
+++ /dev/null
@@ -1,201 +0,0 @@
-From: Jacek Caban <jacek@codeweavers.com>
-Bug 945292 - Fixed ANGLE compilation on mingw.
-
-
-diff --git a/gfx/angle/src/common/debug.h b/gfx/angle/src/common/debug.h
-index 23ee26d..060b727 100644
---- a/gfx/angle/src/common/debug.h
-+++ b/gfx/angle/src/common/debug.h
-@@ -94,18 +94,20 @@ namespace gl
- #define UNREACHABLE() do { \
-     ERR("\t! Unreachable reached: %s(%d)\n", __FUNCTION__, __LINE__); \
-     assert(false); \
-     } while(0)
- #else
-     #define UNREACHABLE() ERR("\t! Unreachable reached: %s(%d)\n", __FUNCTION__, __LINE__)
- #endif
- 
--// A macro that determines whether an object has a given runtime type.
--#if !defined(NDEBUG) && (!defined(_MSC_VER) || defined(_CPPRTTI))
-+// A macro that determines whether an object has a given runtime type. MSVC uses _CPPRTTI.
-+// GCC uses __GXX_RTTI, but the macro was introduced in version 4.3, so we assume that all older
-+// versions support RTTI.
-+#if !defined(NDEBUG) && (!defined(_MSC_VER) || defined(_CPPRTTI)) && (!defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || defined(__GXX_RTTI))
- #define HAS_DYNAMIC_TYPE(type, obj) (dynamic_cast<type >(obj) != NULL)
- #else
- #define HAS_DYNAMIC_TYPE(type, obj) true
- #endif
- 
- // A macro functioning as a compile-time assert to validate constant conditions
- #define META_ASSERT(condition) typedef int COMPILE_TIME_ASSERT_##__LINE__[static_cast<bool>(condition)?1:-1]
- 
-diff --git a/gfx/angle/src/libGLESv2/Constants.h b/gfx/angle/src/libGLESv2/Constants.h
-new file mode 100644
-index 0000000..9f24d66
---- /dev/null
-+++ b/gfx/angle/src/libGLESv2/Constants.h
-@@ -0,0 +1,34 @@
-+//
-+// Copyright (c) 2013 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.
-+//
-+
-+// Contants.h: Defines some implementation specific and gl constants
-+
-+#ifndef LIBGLESV2_CONSTANTS_H_
-+#define LIBGLESV2_CONSTANTS_H_
-+
-+namespace gl
-+{
-+
-+enum
-+{
-+    MAX_VERTEX_ATTRIBS = 16,
-+    MAX_TEXTURE_IMAGE_UNITS = 16,
-+
-+    // Implementation upper limits, real maximums depend on the hardware
-+    IMPLEMENTATION_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 16,
-+    IMPLEMENTATION_MAX_COMBINED_TEXTURE_IMAGE_UNITS = MAX_TEXTURE_IMAGE_UNITS + IMPLEMENTATION_MAX_VERTEX_TEXTURE_IMAGE_UNITS,    
-+
-+    IMPLEMENTATION_MAX_VARYING_VECTORS = 32,
-+    IMPLEMENTATION_MAX_DRAW_BUFFERS = 8
-+};
-+
-+const float ALIASED_LINE_WIDTH_RANGE_MIN = 1.0f;
-+const float ALIASED_LINE_WIDTH_RANGE_MAX = 1.0f;
-+const float ALIASED_POINT_SIZE_RANGE_MIN = 1.0f;
-+
-+}
-+
-+#endif // LIBGLESV2_CONSTANTS_H_
-diff --git a/gfx/angle/src/libGLESv2/Framebuffer.h b/gfx/angle/src/libGLESv2/Framebuffer.h
-index b54e008..50bfd4f 100644
---- a/gfx/angle/src/libGLESv2/Framebuffer.h
-+++ b/gfx/angle/src/libGLESv2/Framebuffer.h
-@@ -7,17 +7,17 @@
- // Framebuffer.h: Defines the gl::Framebuffer class. Implements GL framebuffer
- // objects and related functionality. [OpenGL ES 2.0.24] section 4.4 page 105.
- 
- #ifndef LIBGLESV2_FRAMEBUFFER_H_
- #define LIBGLESV2_FRAMEBUFFER_H_
- 
- #include "common/angleutils.h"
- #include "common/RefCountObject.h"
--#include "constants.h"
-+#include "Constants.h"
- 
- namespace rx
- {
- class Renderer;
- }
- 
- namespace gl
- {
-diff --git a/gfx/angle/src/libGLESv2/constants.h b/gfx/angle/src/libGLESv2/constants.h
-deleted file mode 100644
-index 9f24d66..0000000
---- a/gfx/angle/src/libGLESv2/constants.h
-+++ /dev/null
-@@ -1,34 +0,0 @@
--//
--// Copyright (c) 2013 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.
--//
--
--// Contants.h: Defines some implementation specific and gl constants
--
--#ifndef LIBGLESV2_CONSTANTS_H_
--#define LIBGLESV2_CONSTANTS_H_
--
--namespace gl
--{
--
--enum
--{
--    MAX_VERTEX_ATTRIBS = 16,
--    MAX_TEXTURE_IMAGE_UNITS = 16,
--
--    // Implementation upper limits, real maximums depend on the hardware
--    IMPLEMENTATION_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 16,
--    IMPLEMENTATION_MAX_COMBINED_TEXTURE_IMAGE_UNITS = MAX_TEXTURE_IMAGE_UNITS + IMPLEMENTATION_MAX_VERTEX_TEXTURE_IMAGE_UNITS,    
--
--    IMPLEMENTATION_MAX_VARYING_VECTORS = 32,
--    IMPLEMENTATION_MAX_DRAW_BUFFERS = 8
--};
--
--const float ALIASED_LINE_WIDTH_RANGE_MIN = 1.0f;
--const float ALIASED_LINE_WIDTH_RANGE_MAX = 1.0f;
--const float ALIASED_POINT_SIZE_RANGE_MIN = 1.0f;
--
--}
--
--#endif // LIBGLESV2_CONSTANTS_H_
-diff --git a/gfx/angle/src/libGLESv2/precompiled.h b/gfx/angle/src/libGLESv2/precompiled.h
-index f62e71b..58ad181 100644
---- a/gfx/angle/src/libGLESv2/precompiled.h
-+++ b/gfx/angle/src/libGLESv2/precompiled.h
-@@ -28,15 +28,15 @@
- #include <map>
- #include <set>
- #include <sstream>
- #include <string>
- #include <unordered_map>
- #include <vector>
- 
- #include <d3d9.h>
--#include <D3D11.h>
-+#include <d3d11.h>
- #include <dxgi.h>
- #include <d3dcompiler.h>
- 
- #ifdef _MSC_VER
- #include <hash_map>
- #endif
-diff --git a/gfx/angle/src/libGLESv2/renderer/Renderer11.cpp b/gfx/angle/src/libGLESv2/renderer/Renderer11.cpp
-index 774cd71..1f2b31d 100644
---- a/gfx/angle/src/libGLESv2/renderer/Renderer11.cpp
-+++ b/gfx/angle/src/libGLESv2/renderer/Renderer11.cpp
-@@ -7,17 +7,17 @@
- 
- // Renderer11.cpp: Implements a back-end specific class for the D3D11 renderer.
- 
- #include "libGLESv2/main.h"
- #include "libGLESv2/utilities.h"
- #include "libGLESv2/Buffer.h"
- #include "libGLESv2/ProgramBinary.h"
- #include "libGLESv2/Framebuffer.h"
--#include "libGLESv2/RenderBuffer.h"
-+#include "libGLESv2/Renderbuffer.h"
- #include "libGLESv2/renderer/Renderer11.h"
- #include "libGLESv2/renderer/RenderTarget11.h"
- #include "libGLESv2/renderer/renderer11_utils.h"
- #include "libGLESv2/renderer/ShaderExecutable11.h"
- #include "libGLESv2/renderer/SwapChain11.h"
- #include "libGLESv2/renderer/Image11.h"
- #include "libGLESv2/renderer/VertexBuffer11.h"
- #include "libGLESv2/renderer/IndexBuffer11.h"
-diff --git a/gfx/angle/src/libGLESv2/renderer/Renderer11.h b/gfx/angle/src/libGLESv2/renderer/Renderer11.h
-index f024855..90ef04d 100644
---- a/gfx/angle/src/libGLESv2/renderer/Renderer11.h
-+++ b/gfx/angle/src/libGLESv2/renderer/Renderer11.h
-@@ -230,17 +230,17 @@ class Renderer11 : public Renderer
-     bool mDepthTextureSupport;
- 
-     // Multisample format support
-     struct MultisampleSupportInfo
-     {
-         unsigned int qualityLevels[D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT];
-     };
- 
--    typedef std::unordered_map<DXGI_FORMAT, MultisampleSupportInfo> MultisampleSupportMap;
-+    typedef std::unordered_map<DXGI_FORMAT, MultisampleSupportInfo, std::hash<int> > MultisampleSupportMap;
-     MultisampleSupportMap mMultisampleSupportMap;
- 
-     unsigned int mMaxSupportedSamples;
- 
-     // current render target states
-     unsigned int mAppliedRenderTargetSerials[gl::IMPLEMENTATION_MAX_DRAW_BUFFERS];
-     unsigned int mAppliedDepthbufferSerial;
-     unsigned int mAppliedStencilbufferSerial;
deleted file mode 100644
--- a/gfx/angle/angle-build-stdcall-alias.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-From: Jeff Gilbert <jgilbert@mozilla.com>
-
-diff --git a/gfx/angle/src/libGLESv2/libGLESv2.def b/gfx/angle/src/libGLESv2/libGLESv2.def
---- a/gfx/angle/src/libGLESv2/libGLESv2.def
-+++ b/gfx/angle/src/libGLESv2/libGLESv2.def
-@@ -175,8 +175,13 @@ EXPORTS
- 
-     ; EGL dependencies
-     glCreateContext                 @144 NONAME
-     glDestroyContext                @145 NONAME
-     glMakeCurrent                   @146 NONAME
-     glGetCurrentContext             @147 NONAME
-     glGetProcAddress                @148 NONAME
-     glBindTexImage                  @158 NONAME
-+
-+    ; GCC has problems with linking to undecorated stdcall functions,
-+    ; so we explicitly add aliases for APIs used by EGL.
-+    glGetProcAddress@4=glGetProcAddress
-+    glBindTexImage@4=glBindTexImage
deleted file mode 100644
--- a/gfx/angle/angle-build-ttype.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From: Jeff Gilbert <jgilbert@mozilla.com>
-
-diff --git a/gfx/angle/src/compiler/Types.h b/gfx/angle/src/compiler/Types.h
---- a/gfx/angle/src/compiler/Types.h
-+++ b/gfx/angle/src/compiler/Types.h
-@@ -90,17 +90,17 @@ private:
- //
- // Base class for things that have a type.
- //
- class TType
- {
- public:
-     POOL_ALLOCATOR_NEW_DELETE();
-     TType() {}
--    TType(TBasicType t, TPrecision p, TQualifier q = EvqTemporary, int s = 1, bool m = false, bool a = false) :
-+    TType(TBasicType t, TPrecision p, TQualifier q = EvqTemporary, char s = 1, bool m = false, bool a = false) :
-             type(t), precision(p), qualifier(q), size(s), matrix(m), array(a), arraySize(0), structure(0)
-     {
-     }
-     explicit TType(const TPublicType &p);
-     TType(TStructure* userDef, TPrecision p = EbpUndefined) :
-             type(EbtStruct), precision(p), qualifier(EvqTemporary), size(1), matrix(false), array(false), arraySize(0), structure(userDef)
-     {
-     }
-@@ -229,22 +229,22 @@ public:
- 
-     bool isStructureContainingArrays() const {
-         return structure ? structure->containsArrays() : false;
-     }
- 
- private:
-     TString buildMangledName() const;
- 
--    TBasicType type      : 6;
-+    TBasicType type;
-     TPrecision precision;
--    TQualifier qualifier : 7;
--    int size             : 8; // size of vector or matrix, not size of array
--    unsigned int matrix  : 1;
--    unsigned int array   : 1;
-+    TQualifier qualifier;
-+    char size; // size of vector or matrix, not size of array
-+    bool matrix;
-+    bool array;
-     int arraySize;
- 
-     TStructure* structure;      // 0 unless this is a struct
- 
-     mutable TString mangled;
- };
- 
- //
deleted file mode 100644
--- a/gfx/angle/angle-build-unified.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From: Ehsan Akhagri <ehsan@mozilla.com>
-Subject: Bug 939588 - Fixes required to make angle compile in unified mode
-
-diff --git a/gfx/angle/src/compiler/ForLoopUnroll.h b/gfx/angle/src/compiler/ForLoopUnroll.h
-index e800e25..7e10d82 100644
---- a/gfx/angle/src/compiler/ForLoopUnroll.h
-+++ b/gfx/angle/src/compiler/ForLoopUnroll.h
-@@ -1,14 +1,17 @@
- //
- // Copyright (c) 2011 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.
- //
- 
-+#ifndef ForLoopUnroll_h
-+#define ForLoopUnroll_h
-+
- #include "compiler/intermediate.h"
- 
- struct TLoopIndexInfo {
-     int id;
-     int initValue;
-     int stopValue;
-     int incrementValue;
-     TOperator op;
-@@ -41,8 +44,9 @@ public:
- private:
-     int getLoopIncrement(TIntermLoop* node);
- 
-     int evaluateIntConstant(TIntermConstantUnion* node);
- 
-     TVector<TLoopIndexInfo> mLoopIndexStack;
- };
- 
-+#endif
-diff --git a/gfx/angle/src/compiler/preprocessor/DiagnosticsBase.h b/gfx/angle/src/compiler/preprocessor/DiagnosticsBase.h
-index 07bc411..e1829b0 100644
---- a/gfx/angle/src/compiler/preprocessor/DiagnosticsBase.h
-+++ b/gfx/angle/src/compiler/preprocessor/DiagnosticsBase.h
-@@ -4,16 +4,21 @@
- // found in the LICENSE file.
- //
- 
- #ifndef COMPILER_PREPROCESSOR_DIAGNOSTICS_H_
- #define COMPILER_PREPROCESSOR_DIAGNOSTICS_H_
- 
- #include <string>
- 
-+// Windows.h #defines ERROR.
-+#ifdef ERROR
-+#undef ERROR
-+#endif
-+
- namespace pp
- {
- 
- struct SourceLocation;
- 
- // Base class for reporting diagnostic messages.
- // Derived classes are responsible for formatting and printing the messages.
- class Diagnostics
deleted file mode 100644
--- a/gfx/angle/angle-d3dcc47.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From: Jeff Gilbert <jgilbert@mozilla.com>
-Bug 982973 - Tell ANGLE about d3dcompiler_47.dll. - r=vlad
-
-diff --git a/gfx/angle/src/libGLESv2/renderer/Renderer.cpp b/gfx/angle/src/libGLESv2/renderer/Renderer.cpp
---- a/gfx/angle/src/libGLESv2/renderer/Renderer.cpp
-+++ b/gfx/angle/src/libGLESv2/renderer/Renderer.cpp
-@@ -17,16 +17,17 @@
- 
- #if !defined(ANGLE_ENABLE_D3D11)
- // Enables use of the Direct3D 11 API for a default display, when available
- #define ANGLE_ENABLE_D3D11 0
- #endif
- 
- #define ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES \
-     {                                            \
-+        TEXT("d3dcompiler_47.dll"),              \
-         TEXT("d3dcompiler_46.dll"),              \
-         TEXT("d3dcompiler_43.dll")               \
-     }
- 
- 
- namespace rx
- {
- 
-@@ -173,23 +174,23 @@ ShaderBlob *Renderer::compileToBinary(gl
- 
- extern "C"
- {
- 
- rx::Renderer *glCreateRenderer(egl::Display *display, HDC hDc, EGLNativeDisplayType displayId)
- {
-     rx::Renderer *renderer = NULL;
-     EGLint status = EGL_BAD_ALLOC;
--    
-+
-     if (ANGLE_ENABLE_D3D11 ||
-         displayId == EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE ||
-         displayId == EGL_D3D11_ONLY_DISPLAY_ANGLE)
-     {
-         renderer = new rx::Renderer11(display, hDc);
--    
-+
-         if (renderer)
-         {
-             status = renderer->initialize();
-         }
- 
-         if (status == EGL_SUCCESS)
-         {
-             return renderer;
-@@ -200,17 +201,17 @@ rx::Renderer *glCreateRenderer(egl::Disp
-         }
- 
-         // Failed to create a D3D11 renderer, try creating a D3D9 renderer
-         delete renderer;
-     }
- 
-     bool softwareDevice = (displayId == EGL_SOFTWARE_DISPLAY_ANGLE);
-     renderer = new rx::Renderer9(display, hDc, softwareDevice);
--    
-+
-     if (renderer)
-     {
-         status = renderer->initialize();
-     }
- 
-     if (status == EGL_SUCCESS)
-     {
-         return renderer;
deleted file mode 100644
--- a/gfx/angle/angle-default-clamp-strat.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From: Jeff Gilbert <jgilbert@mozilla.com>
-
-diff --git a/gfx/angle/src/compiler/Compiler.cpp b/gfx/angle/src/compiler/Compiler.cpp
---- a/gfx/angle/src/compiler/Compiler.cpp
-+++ b/gfx/angle/src/compiler/Compiler.cpp
-@@ -130,18 +130,21 @@ bool TCompiler::Init(const ShBuiltInReso
-     TScopedPoolAllocator scopedAlloc(&allocator, false);
- 
-     // Generate built-in symbol table.
-     if (!InitBuiltInSymbolTable(resources))
-         return false;
-     InitExtensionBehavior(resources, extensionBehavior);
-     fragmentPrecisionHigh = resources.FragmentPrecisionHigh == 1;
- 
--    arrayBoundsClamper.SetClampingStrategy(resources.ArrayIndexClampingStrategy);
--    clampingStrategy = resources.ArrayIndexClampingStrategy;
-+    // ArrayIndexClampingStrategy's enum starts at 1, so 0 is 'default'.
-+    if (resources.ArrayIndexClampingStrategy) {
-+        clampingStrategy = resources.ArrayIndexClampingStrategy;
-+    }
-+    arrayBoundsClamper.SetClampingStrategy(clampingStrategy);
- 
-     hashFunction = resources.HashFunction;
- 
-     return true;
- }
- 
- bool TCompiler::compile(const char* const shaderStrings[],
-                         size_t numStrings,
-diff --git a/gfx/angle/src/third_party/compiler/ArrayBoundsClamper.cpp b/gfx/angle/src/third_party/compiler/ArrayBoundsClamper.cpp
---- a/gfx/angle/src/third_party/compiler/ArrayBoundsClamper.cpp
-+++ b/gfx/angle/src/third_party/compiler/ArrayBoundsClamper.cpp
-@@ -72,16 +72,19 @@ private:
- ArrayBoundsClamper::ArrayBoundsClamper()
-     : mClampingStrategy(SH_CLAMP_WITH_CLAMP_INTRINSIC)
-     , mArrayBoundsClampDefinitionNeeded(false)
- {
- }
- 
- void ArrayBoundsClamper::SetClampingStrategy(ShArrayIndexClampingStrategy clampingStrategy)
- {
-+    ASSERT(clampingStrategy == SH_CLAMP_WITH_CLAMP_INTRINSIC ||
-+           clampingStrategy == SH_CLAMP_WITH_USER_DEFINED_INT_CLAMP_FUNCTION);
-+
-     mClampingStrategy = clampingStrategy;
- }
- 
- void ArrayBoundsClamper::MarkIndirectArrayBoundsForClamping(TIntermNode* root)
- {
-     ASSERT(root);
- 
-     ArrayBoundsClamperMarker clamper;
deleted file mode 100644
--- a/gfx/angle/angle-faceforward-emu.patch
+++ /dev/null
@@ -1,314 +0,0 @@
-From: Jeff Gilbert <jgilbert@mozilla.com>
-Bug 771406 - Add emulation for GLSL faceforward() to ANGLE - r=bjacob
-
-diff --git a/gfx/angle/src/compiler/BuiltInFunctionEmulator.cpp b/gfx/angle/src/compiler/BuiltInFunctionEmulator.cpp
---- a/gfx/angle/src/compiler/BuiltInFunctionEmulator.cpp
-+++ b/gfx/angle/src/compiler/BuiltInFunctionEmulator.cpp
-@@ -26,16 +26,22 @@ const char* kFunctionEmulationVertexSour
-     "#error no emulation for distance(vec3, vec3)",
-     "#error no emulation for distance(vec4, vec4)",
- 
-     "#define webgl_dot_emu(x, y) ((x) * (y))",
-     "#error no emulation for dot(vec2, vec2)",
-     "#error no emulation for dot(vec3, vec3)",
-     "#error no emulation for dot(vec4, vec4)",
- 
-+    // |faceforward(N, I, Nref)| is |dot(NRef, I) < 0 ? N : -N|
-+    "#define webgl_faceforward_emu(N, I, Nref) (((Nref) * (I) < 0.0) ? (N) : -(N))",
-+    "#error no emulation for faceforward(vec2, vec2, vec2)",
-+    "#error no emulation for faceforward(vec3, vec3, vec3)",
-+    "#error no emulation for faceforward(vec4, vec4, vec4)",
-+
-     "#define webgl_length_emu(x) ((x) >= 0.0 ? (x) : -(x))",
-     "#error no emulation for length(vec2)",
-     "#error no emulation for length(vec3)",
-     "#error no emulation for length(vec4)",
- 
-     "#define webgl_normalize_emu(x) ((x) == 0.0 ? 0.0 : ((x) > 0.0 ? 1.0 : -1.0))",
-     "#error no emulation for normalize(vec2)",
-     "#error no emulation for normalize(vec3)",
-@@ -58,16 +64,22 @@ const char* kFunctionEmulationFragmentSo
-     "#error no emulation for distance(vec3, vec3)",
-     "#error no emulation for distance(vec4, vec4)",
- 
-     "#define webgl_dot_emu(x, y) ((x) * (y))",
-     "#error no emulation for dot(vec2, vec2)",
-     "#error no emulation for dot(vec3, vec3)",
-     "#error no emulation for dot(vec4, vec4)",
- 
-+    // |faceforward(N, I, Nref)| is |dot(NRef, I) < 0 ? N : -N|
-+    "#define webgl_faceforward_emu(N, I, Nref) (((Nref) * (I) < 0.0) ? (N) : -(N))",
-+    "#error no emulation for faceforward(vec2, vec2, vec2)",
-+    "#error no emulation for faceforward(vec3, vec3, vec3)",
-+    "#error no emulation for faceforward(vec4, vec4, vec4)",
-+
-     "#define webgl_length_emu(x) ((x) >= 0.0 ? (x) : -(x))",
-     "#error no emulation for length(vec2)",
-     "#error no emulation for length(vec3)",
-     "#error no emulation for length(vec4)",
- 
-     "#define webgl_normalize_emu(x) ((x) == 0.0 ? 0.0 : ((x) > 0.0 ? 1.0 : -1.0))",
-     "#error no emulation for normalize(vec2)",
-     "#error no emulation for normalize(vec3)",
-@@ -89,16 +101,20 @@ const bool kFunctionEmulationVertexMask[
-     true,  // TFunctionDistance1_1
-     false, // TFunctionDistance2_2
-     false, // TFunctionDistance3_3
-     false, // TFunctionDistance4_4
-     true,  // TFunctionDot1_1
-     false, // TFunctionDot2_2
-     false, // TFunctionDot3_3
-     false, // TFunctionDot4_4
-+    true,  // TFunctionFaceForward1_1_1
-+    false, // TFunctionFaceForward2_2_2
-+    false, // TFunctionFaceForward3_3_3
-+    false, // TFunctionFaceForward4_4_4
-     true,  // TFunctionLength1
-     false, // TFunctionLength2
-     false, // TFunctionLength3
-     false, // TFunctionLength4
-     true,  // TFunctionNormalize1
-     false, // TFunctionNormalize2
-     false, // TFunctionNormalize3
-     false, // TFunctionNormalize4
-@@ -115,16 +131,20 @@ const bool kFunctionEmulationVertexMask[
-     false, // TFunctionDistance1_1
-     false, // TFunctionDistance2_2
-     false, // TFunctionDistance3_3
-     false, // TFunctionDistance4_4
-     false, // TFunctionDot1_1
-     false, // TFunctionDot2_2
-     false, // TFunctionDot3_3
-     false, // TFunctionDot4_4
-+    false, // TFunctionFaceForward1_1_1
-+    false, // TFunctionFaceForward2_2_2
-+    false, // TFunctionFaceForward3_3_3
-+    false, // TFunctionFaceForward4_4_4
-     false, // TFunctionLength1
-     false, // TFunctionLength2
-     false, // TFunctionLength3
-     false, // TFunctionLength4
-     false, // TFunctionNormalize1
-     false, // TFunctionNormalize2
-     false, // TFunctionNormalize3
-     false, // TFunctionNormalize4
-@@ -146,16 +166,20 @@ const bool kFunctionEmulationFragmentMas
-     true,  // TFunctionDistance1_1
-     false, // TFunctionDistance2_2
-     false, // TFunctionDistance3_3
-     false, // TFunctionDistance4_4
-     true,  // TFunctionDot1_1
-     false, // TFunctionDot2_2
-     false, // TFunctionDot3_3
-     false, // TFunctionDot4_4
-+    true,  // TFunctionFaceForward1_1_1
-+    false, // TFunctionFaceForward2_2_2
-+    false, // TFunctionFaceForward3_3_3
-+    false, // TFunctionFaceForward4_4_4
-     true,  // TFunctionLength1
-     false, // TFunctionLength2
-     false, // TFunctionLength3
-     false, // TFunctionLength4
-     true,  // TFunctionNormalize1
-     false, // TFunctionNormalize2
-     false, // TFunctionNormalize3
-     false, // TFunctionNormalize4
-@@ -172,16 +196,20 @@ const bool kFunctionEmulationFragmentMas
-     false, // TFunctionDistance1_1
-     false, // TFunctionDistance2_2
-     false, // TFunctionDistance3_3
-     false, // TFunctionDistance4_4
-     false, // TFunctionDot1_1
-     false, // TFunctionDot2_2
-     false, // TFunctionDot3_3
-     false, // TFunctionDot4_4
-+    false, // TFunctionFaceForward1_1_1
-+    false, // TFunctionFaceForward2_2_2
-+    false, // TFunctionFaceForward3_3_3
-+    false, // TFunctionFaceForward4_4_4
-     false, // TFunctionLength1
-     false, // TFunctionLength2
-     false, // TFunctionLength3
-     false, // TFunctionLength4
-     false, // TFunctionNormalize1
-     false, // TFunctionNormalize2
-     false, // TFunctionNormalize3
-     false, // TFunctionNormalize4
-@@ -239,25 +267,37 @@ public:
-                 case EOpReflect:
-                 case EOpRefract:
-                 case EOpMul:
-                     break;
-                 default:
-                     return true;
-             };
-             const TIntermSequence& sequence = node->getSequence();
--            // Right now we only handle built-in functions with two parameters.
--            if (sequence.size() != 2)
-+            bool needToEmulate = false;
-+
-+            if (sequence.size() == 2) {
-+                TIntermTyped* param1 = sequence[0]->getAsTyped();
-+                TIntermTyped* param2 = sequence[1]->getAsTyped();
-+                if (!param1 || !param2)
-+                    return true;
-+                needToEmulate = mEmulator.SetFunctionCalled(
-+                    node->getOp(), param1->getType(), param2->getType());
-+            } else if (sequence.size() == 3) {
-+                TIntermTyped* param1 = sequence[0]->getAsTyped();
-+                TIntermTyped* param2 = sequence[1]->getAsTyped();
-+                TIntermTyped* param3 = sequence[2]->getAsTyped();
-+                if (!param1 || !param2 || !param3)
-+                    return true;
-+                needToEmulate = mEmulator.SetFunctionCalled(
-+                    node->getOp(), param1->getType(), param2->getType(), param3->getType());
-+            } else {
-                 return true;
--            TIntermTyped* param1 = sequence[0]->getAsTyped();
--            TIntermTyped* param2 = sequence[1]->getAsTyped();
--            if (!param1 || !param2)
--                return true;
--            bool needToEmulate = mEmulator.SetFunctionCalled(
--                node->getOp(), param1->getType(), param2->getType());
-+            }
-+
-             if (needToEmulate)
-                 node->setUseEmulatedFunction();
-         }
-         return true;
-     }
- 
- private:
-     BuiltInFunctionEmulator& mEmulator;
-@@ -286,16 +326,23 @@ bool BuiltInFunctionEmulator::SetFunctio
- bool BuiltInFunctionEmulator::SetFunctionCalled(
-     TOperator op, const TType& param1, const TType& param2)
- {
-     TBuiltInFunction function = IdentifyFunction(op, param1, param2);
-     return SetFunctionCalled(function);
- }
- 
- bool BuiltInFunctionEmulator::SetFunctionCalled(
-+    TOperator op, const TType& param1, const TType& param2, const TType& param3)
-+{
-+    TBuiltInFunction function = IdentifyFunction(op, param1, param2, param3);
-+    return SetFunctionCalled(function);
-+}
-+
-+bool BuiltInFunctionEmulator::SetFunctionCalled(
-     BuiltInFunctionEmulator::TBuiltInFunction function) {
-     if (function == TFunctionUnknown || mFunctionMask[function] == false)
-         return false;
-     for (size_t i = 0; i < mFunctions.size(); ++i) {
-         if (mFunctions[i] == function)
-             return true;
-     }
-     mFunctions.push_back(function);
-@@ -377,16 +424,44 @@ BuiltInFunctionEmulator::IdentifyFunctio
-     }
-     if (function == TFunctionUnknown)
-         return TFunctionUnknown;
-     if (param1.isVector())
-         function += param1.getNominalSize() - 1;
-     return static_cast<TBuiltInFunction>(function);
- }
- 
-+BuiltInFunctionEmulator::TBuiltInFunction
-+BuiltInFunctionEmulator::IdentifyFunction(
-+    TOperator op, const TType& param1, const TType& param2, const TType& param3)
-+{
-+    // Check that all params have the same type, length,
-+    // and that they're not too large.
-+    if (param1.isVector() != param2.isVector() ||
-+        param2.isVector() != param3.isVector() ||
-+        param1.getNominalSize() != param2.getNominalSize() ||
-+        param2.getNominalSize() != param3.getNominalSize() ||
-+        param1.getNominalSize() > 4)
-+        return TFunctionUnknown;
-+
-+    unsigned int function = TFunctionUnknown;
-+    switch (op) {
-+        case EOpFaceForward:
-+            function = TFunctionFaceForward1_1_1;
-+            break;
-+        default:
-+            break;
-+    }
-+    if (function == TFunctionUnknown)
-+        return TFunctionUnknown;
-+    if (param1.isVector())
-+        function += param1.getNominalSize() - 1;
-+    return static_cast<TBuiltInFunction>(function);
-+}
-+
- void BuiltInFunctionEmulator::MarkBuiltInFunctionsForEmulation(
-     TIntermNode* root)
- {
-     ASSERT(root);
- 
-     BuiltInFunctionEmulationMarker marker(*this);
-     root->traverse(&marker);
- }
-diff --git a/gfx/angle/src/compiler/BuiltInFunctionEmulator.h b/gfx/angle/src/compiler/BuiltInFunctionEmulator.h
---- a/gfx/angle/src/compiler/BuiltInFunctionEmulator.h
-+++ b/gfx/angle/src/compiler/BuiltInFunctionEmulator.h
-@@ -23,16 +23,18 @@ public:
-     // Records that a function is called by the shader and might needs to be
-     // emulated.  If the function's group is not in mFunctionGroupFilter, this
-     // becomes an no-op.
-     // Returns true if the function call needs to be replaced with an emulated
-     // one.
-     bool SetFunctionCalled(TOperator op, const TType& param);
-     bool SetFunctionCalled(
-         TOperator op, const TType& param1, const TType& param2);
-+    bool SetFunctionCalled(
-+        TOperator op, const TType& param1, const TType& param2, const TType& param3);
- 
-     // Output function emulation definition.  This should be before any other
-     // shader source.
-     void OutputEmulatedFunctionDefinition(TInfoSinkBase& out, bool withPrecision) const;
- 
-     void MarkBuiltInFunctionsForEmulation(TIntermNode* root);
- 
-     void Cleanup();
-@@ -55,16 +57,21 @@ private:
-         TFunctionDistance3_3,  // vec3 distance(vec3, vec3);
-         TFunctionDistance4_4,  // vec4 distance(vec4, vec4);
- 
-         TFunctionDot1_1,  // float dot(float, float);
-         TFunctionDot2_2,  // vec2 dot(vec2, vec2);
-         TFunctionDot3_3,  // vec3 dot(vec3, vec3);
-         TFunctionDot4_4,  // vec4 dot(vec4, vec4);
- 
-+        TFunctionFaceForward1_1_1,  // float faceforward(float, float, float);
-+        TFunctionFaceForward2_2_2,  // vec2 faceforward(vec2, vec2, vec2);
-+        TFunctionFaceForward3_3_3,  // vec3 faceforward(vec3, vec3, vec3);
-+        TFunctionFaceForward4_4_4,  // vec4 faceforward(vec4, vec4, vec4);
-+
-         TFunctionLength1,  // float length(float);
-         TFunctionLength2,  // float length(vec2);
-         TFunctionLength3,  // float length(vec3);
-         TFunctionLength4,  // float length(vec4);
- 
-         TFunctionNormalize1,  // float normalize(float);
-         TFunctionNormalize2,  // vec2 normalize(vec2);
-         TFunctionNormalize3,  // vec3 normalize(vec3);
-@@ -76,16 +83,18 @@ private:
-         TFunctionReflect4_4,  // vec4 reflect(vec4, vec4);
- 
-         TFunctionUnknown
-     };
- 
-     TBuiltInFunction IdentifyFunction(TOperator op, const TType& param);
-     TBuiltInFunction IdentifyFunction(
-         TOperator op, const TType& param1, const TType& param2);
-+    TBuiltInFunction IdentifyFunction(
-+        TOperator op, const TType& param1, const TType& param2, const TType& param3);
- 
-     bool SetFunctionCalled(TBuiltInFunction function);
- 
-     std::vector<TBuiltInFunction> mFunctions;
- 
-     const bool* mFunctionMask;  // a boolean flag for each function.
-     const char** mFunctionSource;
- };
deleted file mode 100644
--- a/gfx/angle/angle-fix-issue-651.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Fix for https://code.google.com/p/angleproject/issues/detail?id=651
-
-See https://bugzilla.mozilla.org/show_bug.cgi?id=1025576 for details.
-
-diff --git a/gfx/angle/src/compiler/SymbolTable.cpp b/gfx/angle/src/compiler/SymbolTable.cpp
---- a/gfx/angle/src/compiler/SymbolTable.cpp
-+++ b/gfx/angle/src/compiler/SymbolTable.cpp
-@@ -166,17 +166,18 @@ TFunction::~TFunction()
- }
- 
- //
- // Symbol table levels are a map of pointers to symbols that have to be deleted.
- //
- TSymbolTableLevel::~TSymbolTableLevel()
- {
-     for (tLevel::iterator it = level.begin(); it != level.end(); ++it)
--        delete (*it).second;
-+        if ((*it).first == (*it).second->getMangledName())
-+            delete (*it).second;
- }
- 
- //
- // Change all function entries in the table with the non-mangled name
- // to be related to the provided built-in operation.  This is a low
- // performance operation, and only intended for symbol tables that
- // live across a large number of compiles.
- //
deleted file mode 100644
--- a/gfx/angle/angle-fix-vc12.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-# HG changeset patch
-# Parent 4947d86b1f7b860e9c958a8a5eae03075c539f78
-# User Xavier Fung <xavier114fch@gmail.com>
-Fix Angle to build on Visual Studio 2013. r=?
-
-diff --git a/gfx/angle/src/compiler/Types.h b/gfx/angle/src/compiler/Types.h
---- a/gfx/angle/src/compiler/Types.h
-+++ b/gfx/angle/src/compiler/Types.h
-@@ -8,16 +8,18 @@
- #define _TYPES_INCLUDED
- 
- #include "common/angleutils.h"
- 
- #include "compiler/BaseTypes.h"
- #include "compiler/Common.h"
- #include "compiler/compiler_debug.h"
- 
-+#include <algorithm>
-+
- struct TPublicType;
- class TType;
- 
- class TField
- {
- public:
-     POOL_ALLOCATOR_NEW_DELETE();
-     TField(TType* type, TString* name) : mType(type), mName(name) {}
-diff --git a/gfx/angle/src/libEGL/Surface.cpp b/gfx/angle/src/libEGL/Surface.cpp
---- a/gfx/angle/src/libEGL/Surface.cpp
-+++ b/gfx/angle/src/libEGL/Surface.cpp
-@@ -15,16 +15,18 @@
- #include "common/debug.h"
- #include "libGLESv2/Texture.h"
- #include "libGLESv2/renderer/SwapChain.h"
- #include "libGLESv2/main.h"
- 
- #include "libEGL/main.h"
- #include "libEGL/Display.h"
- 
-+#include <algorithm>
-+
- namespace egl
- {
- 
- Surface::Surface(Display *display, const Config *config, HWND window, EGLint postSubBufferSupported) 
-     : mDisplay(display), mConfig(config), mWindow(window), mPostSubBufferSupported(postSubBufferSupported)
- {
-     mRenderer = mDisplay->getRenderer();
-     mSwapChain = NULL;
-diff --git a/gfx/angle/src/libGLESv2/Program.cpp b/gfx/angle/src/libGLESv2/Program.cpp
---- a/gfx/angle/src/libGLESv2/Program.cpp
-+++ b/gfx/angle/src/libGLESv2/Program.cpp
-@@ -7,16 +7,18 @@
- 
- // Program.cpp: Implements the gl::Program class. Implements GL program objects
- // and related functionality. [OpenGL ES 2.0.24] section 2.10.3 page 28.
- 
- #include "libGLESv2/Program.h"
- #include "libGLESv2/ProgramBinary.h"
- #include "libGLESv2/ResourceManager.h"
- 
-+#include <algorithm>
-+
- namespace gl
- {
- const char * const g_fakepath = "C:\\fakepath";
- 
- AttributeBindings::AttributeBindings()
- {
- }
- 
-diff --git a/gfx/angle/src/libGLESv2/ProgramBinary.cpp b/gfx/angle/src/libGLESv2/ProgramBinary.cpp
---- a/gfx/angle/src/libGLESv2/ProgramBinary.cpp
-+++ b/gfx/angle/src/libGLESv2/ProgramBinary.cpp
-@@ -17,16 +17,18 @@
- #include "utilities.h"
- 
- #include "libGLESv2/main.h"
- #include "libGLESv2/Shader.h"
- #include "libGLESv2/Program.h"
- #include "libGLESv2/renderer/Renderer.h"
- #include "libGLESv2/renderer/VertexDataManager.h"
- 
-+#include <algorithm>
-+
- #undef near
- #undef far
- 
- namespace gl
- {
- std::string str(int i)
- {
-     char buffer[20];
-diff --git a/gfx/angle/src/libGLESv2/Shader.cpp b/gfx/angle/src/libGLESv2/Shader.cpp
---- a/gfx/angle/src/libGLESv2/Shader.cpp
-+++ b/gfx/angle/src/libGLESv2/Shader.cpp
-@@ -6,16 +6,18 @@
- //
- 
- // Shader.cpp: Implements the gl::Shader class and its  derived classes
- // VertexShader and FragmentShader. Implements GL shader objects and related
- // functionality. [OpenGL ES 2.0.24] section 2.10 page 24 and section 3.8 page 84.
- 
- #include "libGLESv2/Shader.h"
- 
-+#include <algorithm>
-+
- #include "GLSLANG/ShaderLang.h"
- #include "libGLESv2/utilities.h"
- #include "libGLESv2/renderer/Renderer.h"
- #include "libGLESv2/Constants.h"
- #include "libGLESv2/ResourceManager.h"
- 
- namespace gl
- {
-diff --git a/gfx/angle/src/libGLESv2/libGLESv2.cpp b/gfx/angle/src/libGLESv2/libGLESv2.cpp
---- a/gfx/angle/src/libGLESv2/libGLESv2.cpp
-+++ b/gfx/angle/src/libGLESv2/libGLESv2.cpp
-@@ -4,16 +4,18 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- //
- 
- // libGLESv2.cpp: Implements the exported OpenGL ES 2.0 functions.
- 
- #include "common/version.h"
- 
-+#include <algorithm>
-+
- #include "libGLESv2/main.h"
- #include "libGLESv2/utilities.h"
- #include "libGLESv2/Buffer.h"
- #include "libGLESv2/Fence.h"
- #include "libGLESv2/Framebuffer.h"
- #include "libGLESv2/Renderbuffer.h"
- #include "libGLESv2/Program.h"
- #include "libGLESv2/ProgramBinary.h"
deleted file mode 100644
--- a/gfx/angle/angle-long-ident-hash.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-From: Jeff Gilbert <jgilbert@mozilla.com>
-
-diff --git a/gfx/angle/Makefile.in b/gfx/angle/Makefile.in
---- a/gfx/angle/Makefile.in
-+++ b/gfx/angle/Makefile.in
-@@ -32,16 +32,17 @@ LOCAL_INCLUDES += \
-   -I$(srcdir)/src
- 
- DEFINES += -DCOMPILER_IMPLEMENTATION
- 
- VPATH += $(srcdir)/src/compiler
- VPATH += $(srcdir)/src/compiler/depgraph
- VPATH += $(srcdir)/src/compiler/timing
- VPATH += $(srcdir)/src/third_party/compiler
-+VPATH += $(srcdir)/src/third_party/murmurhash
- 
- # Target: 'translator_glsl'
- #   Requires: 'translator_common'
- # src/compiler:
- ifdef MOZ_ANGLE_RENDERER
- 
- libs::
- ifdef MOZ_D3DCOMPILER_CAB
-diff --git a/gfx/angle/moz.build b/gfx/angle/moz.build
---- a/gfx/angle/moz.build
-+++ b/gfx/angle/moz.build
-@@ -83,16 +83,21 @@ CPP_SOURCES += [
-     'RestrictVertexShaderTiming.cpp',
- ]
- 
- # src/third_party/compiler:
- CPP_SOURCES += [
-     'ArrayBoundsClamper.cpp',
- ]
- 
-+# src/third_party/murmurhash:
-+CPP_SOURCES += [
-+    'MurmurHash3.cpp',
-+]
-+
- if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
-     CPP_SOURCES += [
-         'ossource_win.cpp',
-     ]
- else:
-     CPP_SOURCES += [
-         'ossource_posix.cpp',
-     ]
-diff --git a/gfx/angle/src/compiler/MapLongVariableNames.cpp b/gfx/angle/src/compiler/MapLongVariableNames.cpp
---- a/gfx/angle/src/compiler/MapLongVariableNames.cpp
-+++ b/gfx/angle/src/compiler/MapLongVariableNames.cpp
-@@ -1,29 +1,39 @@
- //
- // Copyright (c) 2002-2012 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.
- //
- 
- #include "compiler/MapLongVariableNames.h"
- 
-+#include "third_party/murmurhash/MurmurHash3.h"
-+
- namespace {
- 
- TString mapLongName(size_t id, const TString& name, bool isGlobal)
- {
-     ASSERT(name.size() > MAX_SHORTENED_IDENTIFIER_SIZE);
-     TStringStream stream;
--    stream << "webgl_";
--    if (isGlobal)
--        stream << "g";
--    stream << id;
--    if (name[0] != '_')
--        stream << "_";
--    stream << name.substr(0, MAX_SHORTENED_IDENTIFIER_SIZE - stream.str().size());
-+
-+    uint64_t hash[2] = {0, 0};
-+    MurmurHash3_x64_128(name.data(), name.length(), 0, hash);
-+
-+    // We want to avoid producing a string with a double underscore,
-+    // which would be an illegal GLSL identifier. We can assume that the
-+    // original identifier doesn't have a double underscore, otherwise
-+    // it's illegal anyway.
-+    stream << (name[0] == '_' ? "webgl" : "webgl_")
-+           << name.substr(0, 9)
-+           << (name[8] == '_' ? "" : "_")
-+           << std::hex
-+           << hash[0];
-+    ASSERT(stream.str().length() <= MAX_SHORTENED_IDENTIFIER_SIZE);
-+    ASSERT(stream.str().length() >= MAX_SHORTENED_IDENTIFIER_SIZE - 2);
-     return stream.str();
- }
- 
- LongNameMap* gLongNameMapInstance = NULL;
- 
- }  // anonymous namespace
- 
- LongNameMap::LongNameMap()
-diff --git a/gfx/angle/src/libGLESv2/moz.build b/gfx/angle/src/libGLESv2/moz.build
---- a/gfx/angle/src/libGLESv2/moz.build
-+++ b/gfx/angle/src/libGLESv2/moz.build
-@@ -71,16 +71,21 @@ CPP_SOURCES += [
-     'RestrictVertexShaderTiming.cpp',
- ]
- 
- # src/third_party/compiler:
- CPP_SOURCES += [
-     'ArrayBoundsClamper.cpp',
- ]
- 
-+# src/third_party/murmurhash:
-+CPP_SOURCES += [
-+    'MurmurHash3.cpp',
-+]
-+
- if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
-     CPP_SOURCES += [
-         'ossource_win.cpp',
-     ]
- else:
-     CPP_SOURCES += [
-         'ossource_posix.cpp',
-     ]
-@@ -165,13 +170,8 @@ CPP_SOURCES += [
-     'TextureStorage11.cpp',
-     'TextureStorage9.cpp',
-     'VertexBuffer.cpp',
-     'VertexBuffer9.cpp',
-     'VertexBuffer11.cpp',
-     'VertexDataManager.cpp',
-     'VertexDeclarationCache.cpp',
- ]
--
--# src/third_party/murmurhash:
--CPP_SOURCES += [
--    'MurmurHash3.cpp',
--]
deleted file mode 100644
--- a/gfx/angle/angle-tex-pool-default.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: Jeff Gilbert <jgilbert@mozilla.com>
-
-diff --git a/gfx/angle/src/libGLESv2/renderer/Renderer9.cpp b/gfx/angle/src/libGLESv2/renderer/Renderer9.cpp
---- a/gfx/angle/src/libGLESv2/renderer/Renderer9.cpp
-+++ b/gfx/angle/src/libGLESv2/renderer/Renderer9.cpp
-@@ -3128,17 +3128,17 @@ D3DPOOL Renderer9::getTexturePool(DWORD 
-     if (mD3d9Ex != NULL)
-     {
-         return D3DPOOL_DEFAULT;
-     }
-     else
-     {
-         if (!(usage & (D3DUSAGE_DEPTHSTENCIL | D3DUSAGE_RENDERTARGET)))
-         {
--            return D3DPOOL_MANAGED;
-+            return D3DPOOL_DEFAULT;
-         }
-     }
- 
-     return D3DPOOL_DEFAULT;
- }
- 
- bool Renderer9::copyToRenderTarget(IDirect3DSurface9 *dest, IDirect3DSurface9 *source, bool fromManaged)
- {
deleted file mode 100644
--- a/gfx/angle/build/all.gyp
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright (c) 2010 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'all',
-      'type': 'none',
-      'dependencies': [
-        # TODO(alokp): build_ prefix should be removed from the gyp files
-        # as soon as we can get rid of manually-maintained sln files.
-        # Otherwise auto-generated sln files will overwrite/conflict the
-        # manually maintained ones.
-        '../samples/build_samples.gyp:*',
-        '../src/build_angle.gyp:*',
-        '../tests/build_tests.gyp:*',
-      ],
-    },
-  ],
-}
-
-# Local Variables:
-# tab-width:2
-# indent-tabs-mode:nil
-# End:
-# vim: set expandtab tabstop=2 shiftwidth=2:
deleted file mode 100644
--- a/gfx/angle/build/common.gypi
+++ /dev/null
@@ -1,190 +0,0 @@
-# Copyright (c) 2010 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.
-
-{
-  'variables': {
-    'component%': 'static_library',
-    # angle_code is set to 1 for the core ANGLE targets defined in src/build_angle.gyp.
-    # angle_code is set to 0 for test code, sample code, and third party code.
-    # When angle_code is 1, we build with additional warning flags on Mac and Linux.
-    'angle_code%': 0,
-    'gcc_or_clang_warnings': [
-      '-Wall',
-      '-Wchar-subscripts',
-      '-Werror',
-      '-Wextra',
-      '-Wformat=2',
-      '-Winit-self',
-      '-Wno-sign-compare',
-      '-Wno-unused-function',
-      '-Wno-unused-parameter',
-      '-Wno-unknown-pragmas',
-      '-Wpacked',
-      '-Wpointer-arith',
-      '-Wundef',
-      '-Wwrite-strings',
-    ],
-  },
-  'target_defaults': {
-    'default_configuration': 'Debug',
-    'variables': {
-      'warn_as_error%': 1,
-    },
-    'target_conditions': [
-      ['warn_as_error == 1', {
-        'msvs_settings': {
-          'VCCLCompilerTool': {
-            'WarnAsError': 'true',
-          },
-        },
-      }],
-    ],
-    'configurations': {
-      'Common': {
-        'abstract': 1,
-        'msvs_configuration_attributes': {
-          'OutputDirectory': '$(SolutionDir)$(ConfigurationName)',
-          'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)',
-          'CharacterSet': '1',  # UNICODE
-        },
-        'msvs_configuration_platform': 'Win32',
-        'msvs_settings': {
-          'VCCLCompilerTool': {
-            'BufferSecurityCheck': 'true',
-            'DebugInformationFormat': '3',
-            # TODO(alokp): Disable exceptions before integrating with chromium.
-            #'ExceptionHandling': '0',
-            'EnableFunctionLevelLinking': 'true',
-            'MinimalRebuild': 'false',
-            'PreprocessorDefinitions': [
-              '_CRT_SECURE_NO_DEPRECATE',
-              '_HAS_EXCEPTIONS=0',
-              '_WIN32_WINNT=0x0600',
-              '_WINDOWS',
-              'NOMINMAX',
-              'WIN32',
-              'WIN32_LEAN_AND_MEAN',
-              'WINVER=0x0600',
-            ],
-            'RuntimeTypeInfo': 'false',
-            'WarningLevel': '4',
-            'DisableSpecificWarnings': [4100, 4127, 4189, 4239, 4244, 4245, 4512, 4702],
-          },
-          'VCLinkerTool': {
-            'FixedBaseAddress': '1',
-            'GenerateDebugInformation': 'true',
-            'ImportLibrary': '$(OutDir)\\lib\\$(TargetName).lib',
-            'MapFileName': '$(OutDir)\\$(TargetName).map',
-            # Most of the executables we'll ever create are tests
-            # and utilities with console output.
-            'SubSystem': '1',  # /SUBSYSTEM:CONSOLE
-            'AdditionalLibraryDirectories': [
-              '$(ProgramFiles)/Windows Kits/8.0/Lib/win8/um/x86',
-            ],
-          },
-          'VCLibrarianTool': {
-            'AdditionalLibraryDirectories': [
-              '$(ProgramFiles)/Windows Kits/8.0/Lib/win8/um/x86',
-            ],
-          },
-          'VCResourceCompilerTool': {
-            'Culture': '1033',
-          },
-        },
-        'msvs_system_include_dirs': [
-          '$(ProgramFiles)/Windows Kits/8.0/Include/shared',
-          '$(ProgramFiles)/Windows Kits/8.0/Include/um',
-        ],
-      },  # Common
-      'Debug': {
-        'inherit_from': ['Common'],
-        'msvs_settings': {
-          'VCCLCompilerTool': {
-            'Optimization': '0',  # /Od
-            'PreprocessorDefinitions': ['_DEBUG'],
-            'BasicRuntimeChecks': '3',
-            'RuntimeLibrary': '1',  # /MTd (debug static)
-          },
-          'VCLinkerTool': {
-            'LinkIncremental': '2',
-          },
-        },
-        'xcode_settings': {
-          'COPY_PHASE_STRIP': 'NO',
-          'GCC_OPTIMIZATION_LEVEL': '0',
-        },
-      },  # Debug
-      'Release': {
-        'inherit_from': ['Common'],
-        'msvs_settings': {
-          'VCCLCompilerTool': {
-            'Optimization': '2',  # /Os
-            'PreprocessorDefinitions': ['NDEBUG'],
-            'RuntimeLibrary': '0',  # /MT (static)
-          },
-          'VCLinkerTool': {
-            'LinkIncremental': '1',
-          },
-        },
-      },  # Release
-    },  # configurations
-    'conditions': [
-      ['component=="shared_library"', {
-        'defines': ['COMPONENT_BUILD'],
-      }],
-    ],
-  },  # target_defaults
-  'conditions': [
-    ['OS=="win"', {
-      'target_defaults': {
-        'msvs_cygwin_dirs': ['../third_party/cygwin'],
-      },
-    }],
-    ['OS!="win" and OS!="mac"', {
-      'target_defaults': {
-        'cflags': [
-          '-pthread',
-          '-fno-exceptions',
-        ],
-        'ldflags': [
-          '-pthread',
-        ],
-        'configurations': {
-          'Debug': {
-            'variables': {
-              'debug_optimize%': '0',
-            },
-            'defines': [
-              '_DEBUG',
-            ],
-            'cflags': [
-              '-O>(debug_optimize)',
-              '-g',
-            ],
-          }
-        },
-      },
-    }],
-    ['angle_code==1', {
-      'target_defaults': {
-        'conditions': [
-          ['OS=="mac"', {
-            'xcode_settings': {
-              'WARNING_CFLAGS': ['<@(gcc_or_clang_warnings)']
-            },
-          }],
-          ['OS!="win" and OS!="mac"', {
-            'cflags': ['<@(gcc_or_clang_warnings)']
-          }],
-        ]
-      }
-    }],
-  ],
-}
-
-# Local Variables:
-# tab-width:2
-# indent-tabs-mode:nil
-# End:
-# vim: set expandtab tabstop=2 shiftwidth=2:
deleted file mode 100644
--- a/gfx/angle/build/gyp_angle
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/python
-
-# Copyright (c) 2010 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.
-
-# This script is wrapper for ANGLE that adds some support for how GYP
-# is invoked by ANGLE beyond what can be done in the gclient hooks.
-
-import os
-import sys
-
-script_dir = os.path.dirname(__file__)
-angle_dir = os.path.normpath(os.path.join(script_dir, os.pardir))
-
-sys.path.append(os.path.join(angle_dir, 'third_party', 'gyp', 'pylib'))
-import gyp
-
-if __name__ == '__main__':
-  args = sys.argv[1:]
-
-  print 'Updating projects from gyp files...'
-  sys.stdout.flush()
-
-  # Set the depth to get the top-level Makefile generated into the
-  # correct directory. This only has an effect on Linux.
-  args.append('--depth');
-  args.append('./trunk');
-  # Add common.gypi to the include path.
-  args.append('-I' + os.path.join(script_dir, 'common.gypi'))
-  # Add all.gyp as the main gyp file to be generated.
-  args.append(os.path.join(script_dir, 'all.gyp'))
-  sys.exit(gyp.main(args))
deleted file mode 100644
--- a/gfx/angle/extensions/ANGLE_depth_texture.txt
+++ /dev/null
@@ -1,402 +0,0 @@
-Name
-
-    ANGLE_depth_texture
-
-Name Strings
-
-    GL_ANGLE_depth_texture
-
-Contributors
-
-    Nicolas Capens, TransGaming
-    Daniel Koch, TransGaming
-    Shannon Woods, TransGaming
-    Kenneth Russell, Google
-    Vangelis Kokkevis, Google
-    Gregg Tavares, Google
-    Contributors to OES_depth_texture
-    Contributors to OES_packed_depth_stencil
-
-Contact
-
-    Shannon Woods, TransGaming (shannon 'dot' woods 'at' transgaming.com)
-
-Status
-
-    Implemented in ANGLE.
-
-Version
-
-    Last Modified Date: February 25, 2013
-    Revision: #4
-
-Number
-
-    TBD
-
-Dependencies
-
-    OpenGL ES 2.0 is required.
-    This extension is written against the OpenGL ES 2.0.25 specification
-
-    OES_packed_depth_stencil affects the definition of this extension.
-
-    EXT_texture_storage affects the definition of this extension.
-
-Overview
-
-    This extension defines support for 2D depth and depth-stencil
-    textures in an OpenGL ES implementation.
-
-    This extension incorporates the depth texturing functionality of 
-    OES_depth_texture and OES_packed_depth_stencil, but does not 
-    provide the ability to load existing data via TexImage2D or
-    TexSubImage2D. This extension also allows implementation 
-    variability in which components from a sampled depth texture
-    contain the depth data. Depth textures created with this
-    extension only support 1 level.
-
-New Procedures and Functions
-
-    None
-
-New Tokens
-
-    Accepted by the <format> parameter of TexImage2D and TexSubImage2D and
-    <internalformat> parameter of TexImage2D:
-    
-        DEPTH_COMPONENT             0x1902
-        DEPTH_STENCIL_OES           0x84F9
-        
-    Accepted by the <type> parameter of TexImage2D, TexSubImage2D: 
-
-        UNSIGNED_SHORT              0x1403
-        UNSIGNED_INT                0x1405
-        UNSIGNED_INT_24_8_OES       0x84FA
-
-    Accepted by the <internalformat> parameter of TexStorage2DEXT:
-
-        DEPTH_COMPONENT16           0x81A5
-        DEPTH_COMPONENT32_OES       0x81A7
-        DEPTH24_STENCIL8_OES        0x88F0
-
-Additions to Chapter 2 of the OpenGL ES 2.0 Specification (OpenGL Operation)
-
-    Update Section 2.10.5 "Shader Execution" in the subsection titled 
-    "Texture Access" add a new paragraph before the last paragraph add
-    this line:
-
-    "The stencil index texture internal component is ignored if the base
-    internal format is DEPTH_STENCIL_OES.
-
-    If a vertex shader uses..."
-
-Additions to Chapter 3 of the OpenGL ES 2.0 specification (Rasterization)
-
-    Add the following rows to Table 3.2 (page 62):
-
-      type Parameter           GL Data Type    Special
-      ------------------------------------------------
-      ...                      ...              ...
-      UNSIGNED_SHORT           ushort           No
-      UNSIGNED_INT             uint             No
-      UNSIGNED_INT_24_8_OES    uint             Yes
-
-    Add the following rows to Table 3.3 (page 62):
-
-      Format Name       Element Meaning and Order      Target Buffer
-      ------------------------------------------------------------------
-      ...               ...                            ...
-      DEPTH_COMPONENT   Depth                          Depth
-      DEPTH_STENCIL_OES Depth and Stencil Index        Depth and Stencil
-      ...               ...                            ...
-
-    Add a row to Table 3.5 "Packed pixel formats" (page 64):
-
-      type Parameter               GL Type  Components  Pixel Formats
-      ------------------------------------------------------------------
-      ...                          ...      ...         ...
-      UNSIGNED_INT_24_8_OES        uint     2           DEPTH_STENCIL_OES
-
-    Add a new table after Table 3.6 (page 64):
-
-    UNSIGNED_INT_24_8_OES
-
-       31 30 29 28 27 26 ... 12 11 10 9 8 7 6 5 4 3 2 1 0
-      +----------------------------------+---------------+
-      |           1st Component          | 2nd Component |
-      +----------------------------------+---------------+
-
-      Table 3.6.B: UNSIGNED_INT formats
-
-    Add a row to Table 3.7 "Packed pixel field assignments" (page 65):
-
-      Format            |  1st     2nd     3rd     4th
-      ------------------+-------------------------------
-      ...               |  ...     ...     ...     ...
-      DEPTH_STENCIL_OES |  depth   stencil N/A     N/A
-
-    Add the following paragraph to the end of the section "Conversion to
-    floating-point" (page 65):
-
-    "For groups of components that contain both standard components and index
-    elements, such as DEPTH_STENCIL_OES, the index elements are not converted."
-
-    In section 3.7.1 "Texture Image Specification", update page 67 to
-    say:
-
-    "The selected groups are processed as described in section 3.6.2, stopping
-    just before final conversion.  Each R, G, B, A, or depth value so generated
-    is clamped to [0, 1], while the stencil index values are masked by 2^n-1,
-    where n is the number of stencil bits in the internal format resolution
-    (see below).
-
-    Components are then selected from the resulting R, G, B, A, depth, or
-    stencil index values to obtain a texture with the base internal format
-    specified by <internalformat>.  Table 3.8 summarizes the mapping of R, G,
-    B, A, depth, or stencil values to texture components, as a function of the
-    base internal format of the texture image.  <internalformat> may be
-    specified as one of the internal format symbolic constants listed in
-    table 3.8. Specifying a value for <internalformat> that is not one of the
-    above values generates the error INVALID_VALUE. If <internalformat> does
-    not match <format>, the error INVALID_OPERATION is generated.
-
-    Textures with a base internal format of DEPTH_COMPONENT or 
-    DEPTH_STENCIL_OES are supported by texture image specification commands
-    only if <target> is TEXTURE_2D.  Using these formats in conjunction with
-    any other <target> will result in an INVALID_OPERATION error.
-
-    Textures with a base internal format of DEPTH_COMPONENT or
-    DEPTH_STENCIL_OES only support one level of image data.  Specifying a
-    non-zero value for <level> will result in an INVALID_OPERATION error.
-
-    Textures with a base internal format of DEPTH_COMPONENT or DEPTH_STENCIL_OES
-    require either depth component data or depth/stencil component data.
-    Textures with other base internal formats require RGBA component data.  The
-    error INVALID_OPERATION is generated if the base internal format is
-    DEPTH_COMPONENT or DEPTH_STENCIL_OES and <format> is not DEPTH_COMPONENT or
-    DEPTH_STENCIL_OES, or if the base internal format is not DEPTH_COMPONENT or
-    DEPTH_STENCIL_OES and <format> is DEPTH_COMPONENT or DEPTH_STENCIL_OES.
-
-    Textures with a base internal format of DEPTH_COMPONENT or
-    DEPTH_STENCIL_OES do not support loading image data via the TexImage
-    commands. They can only have their contents specified by rendering
-    to them. The INVALID_OPERATION error is generated by the TexImage2D
-    command if <data> is not NULL for such textures."
-
-    Add a row to table 3.8 (page 68), and update the title of the
-    second column:
-
-      Base Internal Format  RGBA, Depth and Stencil Values  Internal Components
-      -------------------------------------------------------------------------
-      ...                   ...                             ...
-      DEPTH_COMPONENT       Depth                           D
-      DEPTH_STENCIL_OES     Depth,Stencil                   D,S
-      ...                   ...                             ...
-
-    Update the caption for table 3.8 (page 68)
-
-    "Table 3.8: Conversion from RGBA, depth, and stencil pixel components to
-    internal texture components.  Texture components R, G, B, A, and L are 
-    converted back to RGBA colors during filtering as shown in table 3.12.
-    Texture components D are converted to RGBA colors as described in 
-    section 3.7.8-1/2."
-
-    Add the following to section 3.7.2 "Alternate Texture Image Specification
-    Commands":
-
-    "CopyTexImage2D and CopyTexSubImage2D generate the INVALID_OPERATION 
-    error if the base internal format of the destination texture is 
-    DEPTH_COMPONENT or DEPTH_STENCIL_OES.
-
-    TexSubImage2D generates the INVALID_OPERATION error if the base internal
-    format of the texture is DEPTH_COMPONENT or DEPTH_STENCIL_OES."
-
-    Add a new section between sections 3.7.8 and 3.7.9:
-
-    "3.7.8-1/2 Depth/Stencil Textures
-
-    If the currently bound texture's base internal format is DEPTH_COMPONENT or
-    DEPTH_STENCIL_OES, then the output of the texture unit is as described
-    below. Otherwise, the texture unit operates in the normal manner.
-
-    Let <D_t> be the depth texture value, provided by the shader's texture lookup
-    function. Then the effective texture value is computed as follows:
-            <Tau> = <D_t>
-
-    If the texture image has a base internal format of DEPTH_STENCIL_OES, then
-    the stencil index texture component is ignored.  The texture value <Tau> does
-    not include a stencil index component, but includes only the depth
-    component.
-
-    The resulting <Tau> is assigned to <R_t>. In some implementations, <Tau> is
-    also assigned to <G_t>, <B_t>, or <A_t>. Thus in table 3.12, textures with
-    depth component data behave as if their base internal format is RGBA, with
-    values in <G_t>, <B_t>, and <A_t> being implementation dependent."
-
-    Add the following to section 3.7.11 "Mipmap Generation":
-
-    "If the level zero array contains depth or depth-stencil data, the
-     error INVALID_OPERATION is generated."
-
-    Insert a new paragraph after the first paragraph of the "Texture Access"
-    subsection of section 3.8.2 on page 87, which says:
-
-    "Texture lookups involving textures with depth component data generate
-    a texture source color by using depth data directly, as described in
-    section 3.7.8-1/2.  The stencil texture internal component is ignored
-    if the base internal format is DEPTH_STENCIL_OES."
-
-Additions to Chapter 4 of the OpenGL ES 2.0 specification (Per-Fragment
-Operations and the Framebuffer)
-
-    In section 4.4.5 "Framebuffer Completeness", replace the the 3rd
-    paragraph with the following text:
-
-     "* An internal format is color-renderable if it is one of the formats
-        from table 4.5 noted as color-renderable or if it is unsized format
-        RGBA or RGB. No other formats, including compressed internal formats,
-        are color-renderable.
-
-      * An internal format is depth-renderable if it is one of the sized
-        internal formats from table 4.5 noted as depth-renderable, if it
-        is the unsized format DEPTH_COMPONENT or if it is the internal 
-        format value of DEPTH24_STENCIL8_OES. No other formats are 
-        depth-renderable.
-
-      * An internal format is stencil-renderable if it is one of the sized 
-        internal formats from table 4.5 noted as stencil-renderable or if it
-        is DEPTH24_STENCIL8_OES. No other formats are stencil-renderable."
-
-Additions to Chapter 5 of the OpenGL ES 2.0 Specification (Special
-Functions)
-
-    None.
-
-Additions to Chapter 6 of the OpenGL ES 2.0 Specification (State and State
-Requests)
-
-    None.
-
-Interactions with OES_packed_depth_stencil
-
-    If OES_packed_depth_stencil is not supported, mentions of
-    DEPTH_STENCIL_OES and UNSIGNED_INT_24_8_OES as a format/type combinations
-    for TexImage2D and TexSubImage2D are omitted. Mentions of
-    the internal format DEPTH24_STENCIL8_OES are also omitted.
-
-Interactions with EXT_texture_storage
-
-    If EXT_texture_storage is supported the following internalformat
-    to format/type mappings are used:
-
-        <internalformat>       <format>           <type>
-        ----------------       --------           ------
-        DEPTH_COMPONENT16      DEPTH_COMPONENT    UNSIGNED_SHORT
-        DEPTH_COMPONENT32_OES  DEPTH_COMPONENT    UNSIGNED_INT
-        DEPTH24_STENCIL8_OES   DEPTH_STENCIL_OES  UNSIGNED_INT
-
-    Textures with the above <internalformats> only support one level of
-    image data. Specifying a value other than one for the <levels> parameter
-    to TexStorage2DEXT will result in an INVALID_OPERATION error.
-
-    If EXT_texture_storage is not supported, ignore any references
-    to TexStorage2DEXT. 
-
-Errors
-
-    The error INVALID_OPERATION is generated by TexImage2D if <format> and 
-    <internalformat> are DEPTH_COMPONENT and <type> is not UNSIGNED_SHORT,
-    or UNSIGNED_INT.
-
-    The error INVALID_OPERATION is generated by TexSubImage2D if <format> is 
-    DEPTH_COMPONENT and <type> is not UNSIGNED_SHORT, or UNSIGNED_INT.
-
-    The error INVALID_OPERATION is generated by TexImage2D if <format> and
-    <internalformat> are not DEPTH_COMPONENT and <type> is UNSIGNED_SHORT,
-    or UNSIGNED_INT.
-
-    The error INVALID_OPERATION is generated by TexSubImage2D if <format> is
-    not DEPTH_COMPONENT and <type> is UNSIGNED_SHORT, or UNSIGNED_INT.
-
-    The error INVALID_OPERATION is generated by TexImage2D if <format> and
-    <internalformat> are DEPTH_STENCIL_OES and <type> is not
-    UNSIGNED_INT_24_8_OES. 
-
-    The error INVALID_OPERATION is generated by TexSubImage2D if <format>
-    is DEPTH_STENCIL_OES and <type> is not UNSIGNED_INT_24_8_OES. 
-
-    The error INVALID_OPERATION is generated by TexImage2D if <format> and
-    <internalformat> is not DEPTH_STENCIL_OES and <type> is 
-    UNSIGNED_INT_24_8_OES.
-
-    The error INVALID_OPERATION is generated by TexSubImage2D if <format>
-    is not DEPTH_STENCIL_OES and <type> is UNSIGNED_INT_24_8_OES.
-
-    The error INVALID_OPERATION is generated in the following situations:
-    - TexImage2D is called with <format> and <internalformat> of
-      DEPTH_COMPONENT or DEPTH_STENCIL_OES and
-       - <target> is not TEXTURE_2D,
-       - <data> is not NULL, or
-       - <level> is not zero.
-    - TexSubImage2D is called with <format> of DEPTH_COMPONENT or 
-      DEPTH_STENCIL_OES.
-    - TexStorage2DEXT is called with <internalformat> of DEPTH_COMPONENT16,
-      DEPTH_COMPONENT32_OES, or DEPTH24_STENCIL8_OES, and 
-       - <target> is not TEXTURE_2D, or
-       - <levels> is not one.
-    - CopyTexImage2D is called with an <internalformat> that has a base
-      internal format of DEPTH_COMPONENT or DEPTH_STENCIL_OES.
-    - CopyTexSubImage2D is called with a target texture that has a base
-      internal format of DEPTH_COMPONENT or DEPTH_STENCIL_OES.
-    - GenerateMipmap is called on a texture that has a base internal format
-      of DEPTH_COMPONENT or DEPTH_STENCIL_OES.
-    
-New State
-
-    None.
-
-Issues
-
-    1) What are the differences between this extension and OES_depth_texture
-       and OES_packed_depth_stencil?
-    
-       RESOLVED: This extension:
-         - does not support loading pre-baked depth stencil data via 
-           TexImage2D or TexSubImage2D.
-         - allows variability in the y-, z-, and w-components of the sample
-           results from depth textures.
-         - only supports one level textures.
-         - explicitly lists the errors for unsupported functionality.
-           Since these were not clearly specified in the OES_depth_texture
-           extension there may be differences in error values between 
-           implementations of OES_depth_texture and ANGLE_depth_texture.
-       This specification was also rebased to apply against the OpenGL ES 2.0
-       specification instead of the OpenGL specification, making it more 
-       obvious what all the functionality changes are.
-
-    2) Why does TexSubImage2D accept the new format/type combinations even
-       though it does not actually support loading data?
-
-       RESOLVED: This was done to be more consistent with the OES_depth_texture
-       extension and to make it easier to add support for loading texture
-       data if it is possible to support in the future.
-
-    3) Why are only 1-level depth textures supported? 
-
-       RESOLVED: The only use for multiple levels of depth textures would
-       be for fitlered texturing. However since it is not possible to
-       render to non-zero-level texture levels in OpenGL ES 2.0, and since
-       this extension forbids loading existing data and GenerateMipmap on 
-       depth textures, it is impossible to initialize or specify contents
-       for non-zero levels of depth textures.
-
-Revision History
- 
-    02/25/2013  swoods  revise to allow texture lookup to guarantee depth values
-                        only in red channel of sample result.
-    06/04/2012  dgkoch  fix errors, disallow multi-level depth textures.
-    05/30/2012  dgkoch  minor updates and add issues.
-    05/23/2012  dgkoch  intial revision based on OES_depth_texture and 
-                        OES_packed_depth_stencil and rebased against the ES 2.0 spec
-
deleted file mode 100644
--- a/gfx/angle/extensions/ANGLE_framebuffer_blit.txt
+++ /dev/null
@@ -1,437 +0,0 @@
-Name
-
-    ANGLE_framebuffer_blit
-
-Name Strings
-
-    GL_ANGLE_framebuffer_blit
-
-Contributors
-
-    Contributors to EXT_framebuffer_blit
-    Daniel Koch, TransGaming Inc.
-    Shannon Woods, TransGaming Inc.
-    Kenneth Russell, Google Inc.
-    Vangelis Kokkevis, Google Inc.
-
-Contact
-
-    Daniel Koch, TransGaming Inc. (daniel 'at' transgaming 'dot' com)
-
-Status
-
-    Implemented in ANGLE ES2
-
-Version
-
-    Last Modified Date: Sept 22, 2012
-    Author Revision: 4
-
-Number
-
-    OpenGL ES Extension #83
-
-Dependencies
-
-    OpenGL ES 2.0 is required.
-
-    The extension is written against the OpenGL ES 2.0 specification.
-
-    OES_texture_3D affects the definition of this extension.
-
-Overview
-
-    This extension modifies framebuffer objects by splitting the
-    framebuffer object binding point into separate DRAW and READ
-    bindings.  This allows copying directly from one framebuffer to
-    another.  In addition, a new high performance blit function is
-    added to facilitate these blits and perform some data conversion
-    where allowed.
-
-IP Status
-
-    No known IP claims.
-
-New Procedures and Functions
-
-    void BlitFramebufferANGLE(int srcX0, int srcY0, int srcX1, int srcY1,
-                              int dstX0, int dstY0, int dstX1, int dstY1,
-                              bitfield mask, enum filter);
-
-New Tokens
-
-    Accepted by the <target> parameter of BindFramebuffer,
-    CheckFramebufferStatus, FramebufferTexture2D, FramebufferTexture3DOES,
-    FramebufferRenderbuffer, and
-    GetFramebufferAttachmentParameteriv:
-
-    // (reusing the tokens from EXT_framebuffer_blit)
-    READ_FRAMEBUFFER_ANGLE                0x8CA8
-    DRAW_FRAMEBUFFER_ANGLE                0x8CA9
-
-    Accepted by the <pname> parameters of GetIntegerv and GetFloatv:
-
-    // (reusing the tokens from EXT_framebuffer_blit)
-    DRAW_FRAMEBUFFER_BINDING_ANGLE        0x8CA6 // alias FRAMEBUFFER_BINDING
-    READ_FRAMEBUFFER_BINDING_ANGLE        0x8CAA
-
-
-Additions to Chapter 3 of the OpenGL ES 2.0 Specification (Rasterization)
-
-    Change the last paragraph of section 3.7.2 (Alternate Texture Image
-    Specification Commands) to:
-
-    "Calling CopyTexSubImage3DOES, CopyTexImage2D or CopyTexSubImage2D will
-    result in an INVALID_FRAMEBUFFER_OPERATION error if the object bound
-    to READ_FRAMEBUFFER_BINDING_ANGLE is not "framebuffer complete"
-    (section 4.4.4.2)."
-
-Additions to Chapter 4 of the OpenGL ES 2.0 Specification (Per-Fragment
-Operations and the Framebuffer)
-
-    Change the first word of Chapter 4 from "The" to "A".
-
-    Append to the introduction of Chapter 4:
-
-    "Conceptually, the GL has two active framebuffers; the draw
-    framebuffer is the destination for rendering operations, and the
-    read framebuffer is the source for readback operations.  The same
-    framebuffer may be used for both drawing and reading.  Section
-    4.4.1 describes the mechanism for controlling framebuffer usage."
-
-    Modify the first sentence of the last paragraph of section 4.1.1 as follows:
-
-    "While an application-created framebuffer object is bound to
-    DRAW_FRAMEBUFFER_ANGLE, the pixel ownership test always passes."
-
-    Add to 4.3.1 (Reading Pixels), right before the subsection titled
-    "Obtaining Pixels from the Framebuffer":
-
-    "Calling ReadPixels generates INVALID_FRAMEBUFFER_OPERATION if
-    the object bound to READ_FRAMEBUFFER_BINDING_ANGLE is not "framebuffer
-    complete" (section 4.4.4.2). GetIntegerv generates an INVALID_OPERATION
-    error if the object bound to READ_FRAMEBUFFER_BINDING_ANGLE is not
-    framebuffer complete, or if the GL is using a framebuffer object 
-    (i.e. READ_FRAMEBUFFER_BINDING_ANGLE is non-zero) and there is no color
-    attachment."
-
-    Insert a new section 4.3.2 titled "Copying Pixels" and renumber the
-    subsequent sections.  Add the following text:
-
-    "BlitFramebufferANGLE transfers a rectangle of pixel values from one
-    region of the read framebuffer to another in the draw framebuffer.
-
-    BlitFramebufferANGLE(int srcX0, int srcY0, int srcX1, int srcY1,
-                         int dstX0, int dstY0, int dstX1, int dstY1,
-                         bitfield mask, enum filter);
-
-    <mask> is the bitwise OR of a number of values indicating which
-    buffers are to be copied. The values are COLOR_BUFFER_BIT,
-    DEPTH_BUFFER_BIT, and STENCIL_BUFFER_BIT, which are described in
-    section 4.2.3.  The pixels corresponding to these buffers are
-    copied from the source rectangle, bound by the locations (srcX0,
-    srcY0) and (srcX1, srcY1), to the destination rectangle, bound by
-    the locations (dstX0, dstY0) and (dstX1, dstY1).  The lower bounds
-    of the rectangle are inclusive, while the upper bounds are
-    exclusive.
-
-    The actual region taken from the read framebuffer is limited to the
-    intersection of the source buffers being transferred, which may include
-    the color buffer, the depth buffer, and/or the stencil buffer depending on
-    <mask>. The actual region written to the draw framebuffer is limited to the
-    intersection of the destination buffers being written, which may include
-    the color buffer, the depth buffer, and/or the stencil buffer
-    depending on <mask>. Whether or not the source or destination regions are
-    altered due to these limits, the offset applied to pixels being transferred
-    is performed as though no such limits were present.
-
-    Stretching and scaling during a copy are not supported. If the source
-    and destination rectangle dimensions do not match, no copy is
-    performed and an INVALID_OPERATION error is generated.
-    Because stretching is not supported, <filter> must be NEAREST and
-    no filtering is applied. 
-
-    Flipping during a copy is not supported. If either the source or 
-    destination rectangle specifies a negative dimension, the error 
-    INVALID_OPERATION is generated. If both the source and 
-    destination rectangles specify a negative dimension for the same 
-    direction, no reversal is required and the operation is supported.
-
-    If the source and destination buffers are identical, and the
-    source and destination rectangles overlap, the result of the blit
-    operation is undefined.
-
-    The pixel copy bypasses the fragment pipeline.  The only fragment
-    operations which affect the blit are the pixel ownership test and
-    the scissor test.
-
-    If a buffer is specified in <mask> and does not exist in both the
-    read and draw framebuffers, the corresponding bit is silently
-    ignored.
-
-    Calling BlitFramebufferANGLE will result in an
-    INVALID_FRAMEBUFFER_OPERATION error if the objects bound to
-    DRAW_FRAMEBUFFER_BINDING_ANGLE and READ_FRAMEBUFFER_BINDING_ANGLE are
-    not "framebuffer complete" (section 4.4.4.2)."
-
-    Calling BlitFramebufferANGLE will result in an INVALID_OPERATION
-    error if <mask> includes COLOR_BUFFER_BIT and the source and 
-    destination color formats to not match.
-
-    Calling BlitFramebufferANGLE will result in an INVALID_OPERATION
-    error if <mask> includes DEPTH_BUFFER_BIT or STENCIL_BUFFER_BIT
-    and the source and destination depth and stencil buffer formats do
-    not match.
-
-    If <mask> includes DEPTH_BUFFER_BIT or STENCIL_BUFFER_BIT, only 
-    complete buffers can be copied.  If the source rectangle does not 
-    specify the complete source buffer or the destination rectangle 
-    (after factoring the scissor region, if applicable) does not specify 
-    the complete destination buffer, an INVALID_OPERATION
-    error is generated.
-
-    Modify the beginning of section 4.4.1 as follows:
-
-    "The default framebuffer for rendering and readback operations is
-    provided by the windowing system.  In addition, named framebuffer
-    objects can be created and operated upon.  The namespace for
-    framebuffer objects is the unsigned integers, with zero reserved
-    by the GL for the default framebuffer.
-
-    A framebuffer object is created by binding an unused name to
-    DRAW_FRAMEBUFFER_ANGLE or READ_FRAMEBUFFER_ANGLE.  The binding is
-    effected by calling
-
-        void BindFramebuffer(enum target, uint framebuffer);
-
-    with <target> set to the desired framebuffer target and
-    <framebuffer> set to the unused name.  The resulting framebuffer
-    object is a new state vector, comprising one set of the state values
-    listed in table 6.23 for each attachment point of the
-    framebuffer, set to the same initial values.  There is one
-    color attachment point, plus one each
-    for the depth and stencil attachment points.
-
-    BindFramebuffer may also be used to bind an existing
-    framebuffer object to DRAW_FRAMEBUFFER_ANGLE or
-    READ_FRAMEBUFFER_ANGLE.  If the bind is successful no change is made
-    to the state of the bound framebuffer object, and any previous
-    binding to <target> is broken.
-
-    If a framebuffer object is bound to DRAW_FRAMEBUFFER_ANGLE or
-    READ_FRAMEBUFFER_ANGLE, it becomes the target for rendering or
-    readback operations, respectively, until it is deleted or another
-    framebuffer is bound to the corresponding bind point.  Calling
-    BindFramebuffer with <target> set to FRAMEBUFFER binds the
-    framebuffer to both DRAW_FRAMEBUFFER_ANGLE and READ_FRAMEBUFFER_ANGLE.
-
-    While a framebuffer object is bound, GL operations on the target
-    to which it is bound affect the images attached to the bound
-    framebuffer object, and queries of the target to which it is bound
-    return state from the bound object.  Queries of the values
-    specified in table 6.20 (Implementation Dependent Pixel Depths)
-    and table 6.yy (Framebuffer Dependent Values) are
-    derived from the framebuffer object bound to DRAW_FRAMEBUFFER_ANGLE.
-
-    The initial state of DRAW_FRAMEBUFFER_ANGLE and READ_FRAMEBUFFER_ANGLE
-    refers to the default framebuffer provided by the windowing
-    system.  In order that access to the default framebuffer is not
-    lost, it is treated as a framebuffer object with the name of 0.
-    The default framebuffer is therefore rendered to and read from
-    while 0 is bound to the corresponding targets.  On some
-    implementations, the properties of the default framebuffer can
-    change over time (e.g., in response to windowing system events
-    such as attaching the context to a new windowing system drawable.)"
-
-    Change the description of DeleteFramebuffers as follows:
-
-    "<framebuffers> contains <n> names of framebuffer objects to be
-    deleted.  After a framebuffer object is deleted, it has no
-    attachments, and its name is again unused.  If a framebuffer that
-    is currently bound to one or more of the targets
-    DRAW_FRAMEBUFFER_ANGLE or READ_FRAMEBUFFER_ANGLE is deleted, it is as
-    though BindFramebuffer had been executed with the corresponding
-    <target> and <framebuffer> zero.  Unused names in <framebuffers>
-    are silently ignored, as is the value zero."
-
-
-    In section 4.4.3 (Renderbuffer Objects), modify the first two sentences
-    of the description of FramebufferRenderbuffer as follows:
-
-    "<target> must be DRAW_FRAMEBUFFER_ANGLE, READ_FRAMEBUFFER_ANGLE, or
-    FRAMEBUFFER.  If <target> is FRAMEBUFFER, it behaves as
-    though DRAW_FRAMEBUFFER_ANGLE was specified.  The INVALID_OPERATION 
-    error is generated if the value of the corresponding binding is zero."
-
-    In section 4.4.3 (Renderbuffer Objects), modify the first two sentences
-    of the description of FramebufferTexture2D as follows:
-
-    "<target> must be DRAW_FRAMEBUFFER_ANGLE,
-    READ_FRAMEBUFFER_ANGLE, or FRAMEBUFFER.  If <target> is
-    FRAMEBUFFER, it behaves as though DRAW_FRAMEBUFFER_ANGLE was
-    specified.  The INVALID_OPERATION error is generated if the value of the
-    corresponding binding is zero."
-
-    In section 4.4.5 (Framebuffer Completeness), modify the first sentence 
-    of the description of CheckFramebufferStatus as follows:
-
-    "If <target> is not DRAW_FRAMEBUFFER_ANGLE, READ_FRAMEBUFFER_ANGLE or
-    FRAMEBUFFER, the error INVALID_ENUM is generated.  If <target> is
-    FRAMEBUFFER, it behaves as though DRAW_FRAMEBUFFER_ANGLE was
-    specified."
-
-    Modify the first sentence of the subsection titled "Effects of Framebuffer
-    Completeness on Framebuffer Operations" to be:
-
-    "Attempting to render to or read from a framebuffer which is not
-    framebuffer complete will generate an
-    INVALID_FRAMEBUFFER_OPERATION error."
-    
-
-
-Additions to Chapter 6 of the OpenGL 1.5 Specification (State and State
-Requests)
-
-    In section 6.1.3, modify the first sentence of the description of
-    GetFramebufferAttachmentParameteriv as follows:
-
-    "<target> must be DRAW_FRAMEBUFFER_ANGLE, READ_FRAMEBUFFER_ANGLE or
-    FRAMEBUFFER.  If <target> is FRAMEBUFFER, it behaves as
-    though DRAW_FRAMEBUFFER_ANGLE was specified."
-
-    Modify the title of Table 6.23 (Framebuffer State) to be "Framebuffer 
-    (state per attachment point)". 
-
-
-Dependencies on OES_texture_3D
-
-    On an OpenGL ES implementation, in the absense of OES_texture_3D,
-    omit references to FramebufferTexture3DOES and CopyTexSubImage3DOES.
-
-Errors
-
-    The error INVALID_FRAMEBUFFER_OPERATION is generated if
-    BlitFramebufferANGLE is called while the
-    draw framebuffer is not framebuffer complete.
-
-    The error INVALID_FRAMEBUFFER_OPERATION is generated if
-    BlitFramebufferANGLE, ReadPixels, CopyTex{Sub}Image*, is called while the
-    read framebuffer is not framebuffer complete.
-
-    The error INVALID_OPERATION is generated if GetIntegerv is called
-    while the read framebuffer is not framebuffer complete, or if there
-    is no color attachment present on the read framebuffer object.
-
-    The error INVALID_VALUE is generated by BlitFramebufferANGLE if
-    <mask> has any bits set other than those named by
-    COLOR_BUFFER_BIT, DEPTH_BUFFER_BIT or STENCIL_BUFFER_BIT.
-
-    The error INVALID_OPERATION is generated if BlitFramebufferANGLE is
-    called and <mask> includes DEPTH_BUFFER_BIT or STENCIL_BUFFER_BIT
-    and the source and destination depth or stencil buffer formats do
-    not match.
-
-    The error INVALID_OPERATION is generated if BlitFramebufferANGLE is 
-    called and any of the following conditions are true:
-     - the source and destination rectangle dimensions do not match
-       (ie scaling or flipping is required).
-     - <mask> includes COLOR_BUFFER_BIT and the source and destination 
-       buffer formats do not match.
-     - <mask> includes DEPTH_BUFFER_BIT or STENCIL_BUFFER_BIT and the
-       source or destination rectangles do not specify the entire source
-       or destination buffer (after applying any scissor region).
-
-    The error INVALID_ENUM is generated by BlitFramebufferANGLE if
-    <filter> is not NEAREST.
-
-    The error INVALID_ENUM is generated if BindFramebuffer,
-    CheckFramebufferStatus, FramebufferTexture{2D|3DOES},
-    FramebufferRenderbuffer, or
-    GetFramebufferAttachmentParameteriv is called and <target> is
-    not DRAW_FRAMEBUFFER_ANGLE, READ_FRAMEBUFFER_ANGLE or FRAMEBUFFER.
-
-New State
-
-    (Add a new table 6.xx, "Framebuffer (state per framebuffer target binding point)")
-
-    Get Value                     Type   Get Command   Initial Value    Description               Section
-    ------------------------------  ----   -----------   --------------   -------------------       ------------
-    DRAW_FRAMEBUFFER_BINDING_ANGLE   Z+    GetIntegerv   0                framebuffer object bound  4.4.1
-                                                                          to DRAW_FRAMEBUFFER_ANGLE
-    READ_FRAMEBUFFER_BINDING_ANGLE   Z+    GetIntegerv   0                framebuffer object        4.4.1
-                                                                          to READ_FRAMEBUFFER_ANGLE
-
-    Remove reference to FRAMEBUFFER_BINDING from Table 6.23.
-
-    (Add a new table 6.yy, "Framebuffer Dependent Values") 
-
-    Get Value                     Type   Get Command   Initial Value    Description               Section
-    ----------------------------  ----   -----------   --------------   -------------------       ------------
-    SAMPLE_BUFFERS                 Z+    GetIntegerv   0                Number of multisample     3.2
-                                                                        buffers
-    SAMPLES                        Z+    GetIntegerv   0                Coverage mask size        3.2
-
-    Remove the references to SAMPLE_BUFFERS and SAMPLES from Table 6.17.
-
-
-Issues
-
-    1) What should we call this extension?
-  
-       Resolved: ANGLE_framebuffer_blit.  
-
-       This extension is a result of a collaboration between Google and 
-       TransGaming for the open-source ANGLE project. Typically one would
-       label a multi-vendor extension as EXT, but EXT_framebuffer_blit 
-       is already the name for this on Desktop GL.  Additionally this
-       isn't truely a multi-vendor extension because there is only one
-       implementation of this.  We'll follow the example of the open-source
-       MESA project which uses the project name for the vendor suffix.
-
-    2) Why is this done as a separate extension instead of just supporting
-       EXT_framebuffer_blit?
-
-       To date, EXT_framebuffer_blit has not had interactions with OpenGL ES
-       specified and, as far as we know, it has not previously been exposed on 
-       an ES 1.1 or ES 2.0 implementation. Because there are enough 
-       differences between Desktop GL and OpenGL ES, and since OpenGL ES 2.0 
-       has already subsumed the EXT_framebuffer_object functionality (with 
-       some changes) it was deemed a worthwhile exercise to fully specify the
-       interactions.  Additionally, some of the choices in exactly which 
-       functionality is supported by BlitFramebufferANGLE is dictated by
-       what is reasonable to support on a implementation which is 
-       layered on Direct3D9.  It is not expected that other implementations 
-       will necessary have the same set of restrictions or requirements. 
-
-    3) How does this extension differ from EXT_framebuffer_blit?
-
-       This extension is designed to be a pure subset of the 
-       EXT_framebuffer_blit functionality as applicable to OpenGL ES 2.0.
-
-       Functionality that is unchanged:
-        - the split DRAW and READ framebuffer attachment points and related sematics.
-        - the token values for the DRAW/READ_FRAMEBUFFER and DRAW/READ_FRAMBUFFER_BINDING
-        - the signature of the BlitFramebuffer entry-point.
-       
-       Additional restrictions imposed by BlitFramebufferANGLE:
-        - no color conversions are supported
-        - no scaling, stretching or flipping are supported
-        - no filtering is supported (a consequence of no stretching)
-        - only whole depth and/or stencil buffers can be copied
-
-Revision History
-
-    Revision 1, 2010/07/06
-      - copied from revision 15 of EXT_framebuffer_object
-      - removed language that was clearly not relevant to ES2
-      - rebased changes against the OpenGL ES 2.0 specification
-      - added ANGLE-specific restrictions
-    Revision 2, 2010/07/15
-      - clarifications of implicit clamping to buffer sizes (from ARB_fbo)
-      - clarify that D/S restricts apply after the scissor is applied
-      - improve some error language
-    Revision 3, 2010/08/06
-      - add additional contributors, update implementation status
-    Revision 4, 2012/09/22
-      - document errors for GetIntegerv.
-
deleted file mode 100644
--- a/gfx/angle/extensions/ANGLE_framebuffer_multisample.txt
+++ /dev/null
@@ -1,363 +0,0 @@
-Name
-
-    ANGLE_framebuffer_multisample
-
-Name Strings
-
-    GL_ANGLE_framebuffer_multisample
-
-Contributors
-
-    Contributors to EXT_framebuffer_multisample
-    Daniel Koch, TransGaming Inc.
-    Shannon Woods, TransGaming Inc.
-    Kenneth Russell, Google Inc.
-    Vangelis Kokkevis, Google Inc.
-
-Contacts
-
-    Daniel Koch, TransGaming Inc. (daniel 'at' transgaming 'dot' com)
-
-Status
-
-    Implemented in ANGLE ES2
-
-Version
-
-    Last Modified Date: Aug 6, 2010 
-    Author Revision: #3
-
-Number
-
-    OpenGL ES Extension #84
-
-Dependencies
-
-    Requires OpenGL ES 2.0.
-
-    Requires GL_ANGLE_framebuffer_blit (or equivalent functionality).
-
-    The extension is written against the OpenGL ES 2.0 specification. 
-
-    OES_texture_3D affects the definition of this extension.
-
-Overview
-
-    This extension extends the framebuffer object framework to
-    enable multisample rendering.
-
-    The new operation RenderbufferStorageMultisampleANGLE() allocates
-    storage for a renderbuffer object that can be used as a multisample
-    buffer.  A multisample render buffer image differs from a
-    single-sample render buffer image in that a multisample image has a
-    number of SAMPLES that is greater than zero.  No method is provided
-    for creating multisample texture images.
-
-    All of the framebuffer-attachable images attached to a framebuffer
-    object must have the same number of SAMPLES or else the framebuffer
-    object is not "framebuffer complete".  If a framebuffer object with
-    multisample attachments is "framebuffer complete", then the
-    framebuffer object behaves as if SAMPLE_BUFFERS is one.
-
-    The resolve operation is affected by calling 
-    BlitFramebufferANGLE (provided by the ANGLE_framebuffer_blit
-    extension) where the source is a multisample application-created
-    framebuffer object and the destination is a single-sample
-    framebuffer object (either application-created or window-system
-    provided).
-
-New Procedures and Functions
-
-    void RenderbufferStorageMultisampleANGLE(
-            enum target, sizei samples,
-            enum internalformat,
-            sizei width, sizei height);
-
-New Types
-
-    None.
-
-New Tokens
-
-    Accepted by the <pname> parameter of GetRenderbufferParameteriv:
-
-        RENDERBUFFER_SAMPLES_ANGLE                  0x8CAB
-
-    Returned by CheckFramebufferStatus:
-
-        FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE    0x8D56
-
-    Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
-    and GetFloatv:
-
-        MAX_SAMPLES_ANGLE                           0x8D57
-
-Additions to Chapter 2 of the OpenGL ES 2.0 Specification (OpenGL Operation)
-
-Additions to Chapter 3 of the OpenGL ES 2.0 Specification (Rasterization)
-
-    Add to the last paragraph of 3.7.2 (Alternate Texture Image Specification)
-    (as modified by ANGLE_framebuffer_blit) the following:
-
-    "Calling CopyTexSubImage3DOES, CopyTexImage2D or CopyTexSubImage2D will
-    result in INVALID_OPERATION being generated if the object bound to
-    READ_FRAMEBUFFER_BINDING_ANGLE is "framebuffer complete" and the value
-    of SAMPLE_BUFFERS is greater than zero."
-
-Additions to Chapter 4 of the OpenGL ES 2.0 Specification (Per-Fragment
-Operations and the Framebuffer)
-
-    Add to 4.3.1 (Reading Pixels), right before the subsection titled
-    "Obtaining Pixels from the Framebuffer":
-
-    "ReadPixels generates INVALID_OPERATION if READ_FRAMEBUFFER_BINDING_ANGLE
-    (section 4.4) is non-zero, the read framebuffer is framebuffer
-    complete, and the value of SAMPLE_BUFFERS for the read framebuffer
-    is greater than zero."
-
-    In 4.3.2 (Copying Pixels), add to the section describing BlitFramebuffer
-    that was added by ANGLE_framebuffer_blit.
-
-    "If SAMPLE_BUFFERS for the read framebuffer is greater than zero and
-    SAMPLE_BUFFERS for the draw framebuffer is zero, the samples
-    corresponding to each pixel location in the source are converted to
-    a single sample before being written to the destination.
-
-    If SAMPLE_BUFFERS for the draw framebuffer is greater than zero, 
-    no copy is performed and an INVALID_OPERATION error is generated.
-
-    If SAMPLE_BUFFERS for the read framebuffer is greater than zero and
-    <mask> includes DEPTH_BUFFER_BIT or STENCIL_BUFFER_BIT, no copy is 
-    performed and an INVALID_OPERATION error is generated.
-
-    If SAMPLE_BUFFERS for the read framebuffer is greater than zero and 
-    the format of the read and draw framebuffers are not identical, no
-    copy is performed and an INVALID_OPERATION error is generated.
-
-    If SAMPLE_BUFFERS for the read framebuffer is greater than zero, the
-    dimensions of the source and destination rectangles provided to 
-    BlitFramebufferANGLE must be identical and must specify the complete 
-    source and destination buffers, otherwise no copy is performed and 
-    an INVALID_OPERATION error is generated."
-
-    Modification to 4.4.3 (Renderbuffer Objects)
-
-    Add, just above the definition of RenderbufferStorage:
-
-    "The command
-
-        void RenderbufferStorageMultisampleANGLE(
-            enum target, sizei samples,
-            enum internalformat,
-            sizei width, sizei height);
-
-    establishes the data storage, format, dimensions, and number of
-    samples of a renderbuffer object's image.  <target> must be
-    RENDERBUFFER.  <internalformat> must be one of the color-renderable,
-    depth-renderable, or stencil-renderable formats described in table 4.5.
-    <width> and <height> are the dimensions in pixels of the renderbuffer.  If
-    either <width> or <height> is greater than the value of 
-    MAX_RENDERBUFFER_SIZE, or if <samples> is greater than MAX_SAMPLES_ANGLE, 
-    then the error INVALID_VALUE is generated. If OpenGL ES is unable to 
-    create a data store of the requested size, the error OUT_OF_MEMORY 
-    is generated.
-
-    Upon success, RenderbufferStorageMultisampleANGLE deletes any existing
-    data store for the renderbuffer image and the contents of the data
-    store after calling RenderbufferStorageMultisampleANGLE are undefined.
-    RENDERBUFFER_WIDTH is set to <width>, RENDERBUFFER_HEIGHT is
-    set to <height>, and RENDERBUFFER_INTERNAL_FORMAT is set to
-    <internalformat>.
-
-    If <samples> is zero, then RENDERBUFFER_SAMPLES_ANGLE is set to zero.
-    Otherwise <samples> represents a request for a desired minimum
-    number of samples. Since different implementations may support
-    different sample counts for multisampled rendering, the actual
-    number of samples allocated for the renderbuffer image is
-    implementation dependent.  However, the resulting value for
-    RENDERBUFFER_SAMPLES_ANGLE is guaranteed to be greater than or equal
-    to <samples> and no more than the next larger sample count supported
-    by the implementation.
-
-    An OpenGL ES implementation may vary its allocation of internal component
-    resolution based on any RenderbufferStorageMultisampleANGLE parameter (except
-    target), but the allocation and chosen internal format must not be a
-    function of any other state and cannot be changed once they are
-    established. The actual resolution in bits of each component of the 
-    allocated image can be queried with GetRenderbufferParameteriv."
-
-    Modify the definiton of RenderbufferStorage as follows:
-
-    "The command
-
-        void RenderbufferStorage(enum target, enum internalformat,
-                                    sizei width, sizei height);
-
-     is equivalent to calling RenderbufferStorageMultisampleANGLE with
-     <samples> equal to zero."
-
-    In section 4.4.5 (Framebuffer Completeness) in the subsection
-    titled "Framebuffer Completeness" add an entry to the bullet list:
-
-    * The value of RENDERBUFFER_SAMPLES_ANGLE is the same for all attached
-      images.
-      { FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE }
-
-    Also add a paragraph to the end of the section after the definition
-    of CheckFramebufferStatus:
-
-    "The values of SAMPLE_BUFFERS and SAMPLES are derived from the
-    attachments of the currently bound framebuffer object.  If the
-    current DRAW_FRAMEBUFFER_BINDING_ANGLE is not "framebuffer complete",
-    then both SAMPLE_BUFFERS and SAMPLES are undefined.  Otherwise,
-    SAMPLES is equal to the value of RENDERBUFFER_SAMPLES_ANGLE for the
-    attached images (which all must have the same value for
-    RENDERBUFFER_SAMPLES_ANGLE).  Further, SAMPLE_BUFFERS is one if
-    SAMPLES is non-zero.  Otherwise, SAMPLE_BUFFERS is zero.
-
-Additions to Chapter 5 of the OpenGL ES 2.0 Specification (Special Functions)
-
-
-Additions to Chapter 6 of the OpenGL ES 2.0 Specification (State and State
-Requests)
-
-    In section 6.1.3 (Enumeraged Queries), modify the third paragraph 
-    of the description of GetRenderbufferParameteriv as follows:
-
-    "Upon successful return from GetRenderbufferParameteriv, if
-    <pname> is RENDERBUFFER_WIDTH, RENDERBUFFER_HEIGHT,
-    RENDERBUFFER_INTERNAL_FORMAT, or RENDERBUFFER_SAMPLES_ANGLE, then <params> 
-    will contain the width in pixels, height in pixels, internal format, or 
-    number of samples, respectively, of the image of the renderbuffer 
-    currently bound to <target>."
-
-
-Dependencies on ANGLE_framebuffer_blit    
-
-    ANGLE_framebuffer_blit is required.  Technically, ANGLE_framebuffer_blit
-    would not be required to support multisampled rendering, except for
-    the fact that it provides the only method of doing a multisample
-    resovle from a multisample renderbuffer.
-
-Dependencies on OES_texture_3D
-
-    On an OpenGL ES implementation, in the absense of OES_texture_3D,
-    omit references to CopyTexSubImage3DOES.
-
-Errors
-
-    The error INVALID_OPERATION is generated if ReadPixels or 
-    CopyTex{Sub}Image* is called while READ_FRAMEBUFFER_BINDING_ANGLE
-    is non-zero, the read framebuffer is framebuffer complete, and the
-    value of SAMPLE_BUFFERS for the read framebuffer is greater than
-    zero.
-
-    If both the draw and read framebuffers are framebuffer complete and
-    the draw framebuffer has a value of SAMPLE_BUFFERS that is greater 
-    than zero, then the error INVALID_OPERATION is generated if 
-    BlitFramebufferANGLE is called.
-
-    If both the draw and read framebuffers are framebuffer complete and
-    the read framebuffer has a value of SAMPLE_BUFFERS that is greater
-    than zero, the error INVALID_OPERATION is generated if 
-    BlitFramebufferANGLE is called and any of the following conditions
-    are true:
-     - <mask> includes DEPTH_BUFFER_BIT or STENCIL_BUFFER_BIT.
-     - the source or destination rectangles do not specify the entire
-       source or destination buffer.
-
-    If both the draw and read framebuffers are framebuffer complete and
-    either has a value of SAMPLE_BUFFERS that is greater than zero, then
-    the error INVALID_OPERATION is generated if BlitFramebufferANGLE is
-    called and the formats of the draw and read framebuffers are not
-    identical.
-
-    If either the draw or read framebuffer is framebuffer complete and
-    has a value of SAMPLE_BUFFERS that is greater than zero, then the
-    error INVALID_OPERATION is generated if BlitFramebufferANGLE is called
-    and the specified source and destination dimensions are not
-    identical.
-
-    If RenderbufferStorageMultisampleANGLE is called with <target> not
-    equal to RENDERBUFFER, the error INVALID_ENUM is generated.
-
-    If RenderbufferStorageMultisampleANGLE is called with an 
-    <internalformat> that is not listed as one of the color-, depth- 
-    or stencil-renderable formats in Table 4.5, then the error
-    INVALID_ENUM is generated.
-
-    If RenderbufferStorageMultisampleANGLE is called with <width> or 
-    <height> greater than MAX_RENDERBUFFER_SIZE, then the error 
-    INVALID_VALUE is generated.
-
-    If RenderbufferStorageMultisampleANGLE is called with a value of
-    <samples> that is greater than MAX_SAMPLES_ANGLE or less than zero,
-    then the error INVALID_VALUE is generated.
-
-    The error OUT_OF_MEMORY is generated when
-    RenderbufferStorageMultisampleANGLE cannot create storage of the
-    specified size.
-
-New State
-
-    Add to table 6.22 (Renderbuffer State)
-
-    Get Value                          Type    Get Command                 Initial Value  Description             Section
-    -------------------------------    ------  --------------------------  -------------  --------------------    -------
-    RENDERBUFFER_SAMPLES_ANGLE         Z+      GetRenderbufferParameteriv  0              number of samples       4.4.3
-
-
-    Add to table 6.yy (Framebuffer Dependent Vaues) (added by 
-    ANGLE_framebuffer_blit), the following new framebuffer dependent state.
-
-    Get Value          Type  Get Command     Minimum Value    Description             Section
-    -----------------  ----  -----------     -------------    -------------------     -------
-    MAX_SAMPLES_ANGLE  Z+    GetIntegerv     1                Maximum number of       4.4.3
-                                                              samples supported
-                                                              for multisampling
-                                                            
-
-
-Issues
-    
-    Issues from EXT_framebuffer_multisample have been removed.
- 
-    1) What should we call this extension?
-
-       Resolved: ANGLE_framebuffer_blit.  
-
-       This extension is a result of a collaboration between Google and 
-       TransGaming for the open-source ANGLE project. Typically one would
-       label a multi-vendor extension as EXT, but EXT_framebuffer_mulitsample 
-       is already the name for this on Desktop GL.  Additionally this
-       isn't truely a multi-vendor extension because there is only one
-       implementation of this.  We'll follow the example of the open-source
-       MESA project which uses the project name for the vendor suffix.
- 
-    2) How does this extension differ from EXT_framebuffer_multisample?
-
-       This is designed to be a proper subset of EXT_framebuffer_multisample
-       functionality as applicable to OpenGL ES 2.0.
-
-       Functionality that is unchanged: 
-        - creation of multisample renderbuffers.
-        - whole buffer multi-sample->single-sample resolve.
-        - no format conversions, stretching or flipping supported on multisample blits.
-
-       Additional restrictions on BlitFramebufferANGLE:
-        - multisample resolve is only supported on color buffers.
-        - no blits to multisample destinations (no single->multi or multi-multi).
-        - only entire buffers can be resolved.
-         
-Revision History
-
-    Revision 1, 2010/07/08
-      - copied from revision 7 of EXT_framebuffer_multisample
-      - removed language that was not relevant to ES2 
-      - rebase changes against the Open GL ES 2.0 specification
-      - added ANGLE-specific restrictions
-    Revision 2, 2010/07/19
-      - fix missing error code
-    Revision 3, 2010/08/06
-      - add additional contributors, update implementation status
-      - disallow negative samples 
deleted file mode 100644
--- a/gfx/angle/extensions/ANGLE_instanced_arrays.txt
+++ /dev/null
@@ -1,359 +0,0 @@
-Name
-
-    ANGLE_instanced_arrays
-
-Name Strings
-
-    GL_ANGLE_instanced_arrays
-
-Contributors
-
-    Contributors to ARB_instanced_arrays
-    Nicolas Capens, TransGaming Inc.
-    James Helferty, TransGaming Inc.
-    Kenneth Russell, Google Inc.
-    Vangelis Kokkevis, Google Inc.
-
-Contact
-
-    Daniel Koch, TransGaming Inc. (daniel 'at' transgaming.com)
-
-Status
-
-    Implemented in ANGLE r976.
-
-Version
-
-    Last Modified Date: February 8, 2012
-    Author Revision: 3
-
-Number
-
-    OpenGL ES Extension #109
-
-Dependencies
-
-    OpenGL ES 2.0 is required.
-
-    This extension is written against the OpenGL ES 2.0 Specification.
-
-Overview
-
-    A common use case in GL for some applications is to be able to
-    draw the same object, or groups of similar objects that share
-    vertex data, primitive count and type, multiple times.  This 
-    extension provides a means of accelerating such use cases while 
-    restricting the number of API calls, and keeping the amount of 
-    duplicate data to a minimum.
-    
-    This extension introduces an array "divisor" for generic
-    vertex array attributes, which when non-zero specifies that the
-    attribute is "instanced."  An instanced attribute does not
-    advance per-vertex as usual, but rather after every <divisor>
-    conceptual draw calls.
-    
-    (Attributes which aren't instanced are repeated in their entirety
-    for every conceptual draw call.)
-    
-    By specifying transform data in an instanced attribute or series
-    of instanced attributes, vertex shaders can, in concert with the 
-    instancing draw calls, draw multiple instances of an object with 
-    one draw call.
-
-IP Status
-
-    No known IP claims.
-
-New Tokens
-
-    Accepted by the <pname> parameters of GetVertexAttribfv and 
-    GetVertexAttribiv:
-
-        VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE               0x88FE
-
-New Procedures and Functions
-
-    void DrawArraysInstancedANGLE(enum mode, int first, sizei count,
-            sizei primcount);
-
-    void DrawElementsInstancedANGLE(enum mode, sizei count, enum type,
-            const void *indices, sizei primcount);
-
-    void VertexAttribDivisorANGLE(uint index, uint divisor);
-
-Additions to Chapter 2 of the OpenGL ES 2.0 Specification
-(OpenGL ES Operation)
-
-    Modify section 2.8 (Vertex Arrays), p. 21
-
-    After description of EnableVertexAttribArray / DisableVertexAttribArray
-    add the following:
-
-    "The command
-
-        void VertexAttribDivisorANGLE(uint index, uint divisor);
-
-    modifies the rate at which generic vertex attributes advance when
-    rendering multiple instances of primitives in a single draw call
-    (see DrawArraysInstancedANGLE and DrawElementsInstancedANGLE below).
-    If <divisor> is zero, the attribute at slot <index> advances once
-    per vertex.  If <divisor> is non-zero, the attribute advances once
-    per <divisor> instances of the primitives being rendered.
-    An attribute is referred to as "instanced" if its <divisor> value is
-    non-zero."
-
-    Replace the text describing DrawArrays and DrawElements in the
-    "Transferring Array Elements" subsection of 2.8, from the second paragraph
-    through the end of the section with the following:
-
-    "The command
-
-        void DrawArraysOneInstance( enum mode, int first, sizei count, int instance );
-
-    does not exist in the GL, but is used to describe functionality in
-    the rest of this section.  This function constructs a sequence of
-    geometric primitives by transferring elements <first> through <first> +
-    <count> - 1 of each enabled non-instanced array to the GL. <mode>
-    specifies what kind of primitives are constructed, as defined in section
-    2.6.1.
-
-    If an enabled vertex attribute array is instanced (it has a non-zero
-    attribute <divisor> as specified by VertexAttribDivisorANGLE), the element
-    that is transferred to the GL is given by:
-
-        floor( <instance> / <divisor> ).
-
-    If an array corresponding to a generic attribute required by a vertex shader
-    is not enabled, then the corresponding element is taken from the current
-    generic attribute state (see section 2.7).
-
-    If an array corresponding to a generic attribute required by a vertex shader
-    is enabled, the corresponding current generic attribute value is unaffected 
-    by the execution of DrawArraysOneInstance.
-
-    Specifying <first> < 0 results in undefined behavior. Generating the error 
-    INVALID_VALUE is recommended in this case.
-
-    The command
-
-        void DrawArrays( enum mode, int first, sizei count );
-
-    is equivalent to the command sequence
-    
-        DrawArraysOneInstance(mode, first, count, 0);
-
-    The command
-
-        void DrawArraysInstancedANGLE(enum mode, int first, sizei count,
-                sizei primcount);
-
-    behaves identically to DrawArrays except that <primcount>
-    instances of the range of elements are executed, and the
-    <instance> advances for each iteration. Instanced attributes that
-    have <divisor> N, (where N > 0, as specified by
-    VertexAttribDivisorANGLE) advance once every N instances.
-    
-    It has the same effect as: 
-
-        if (mode, count, or primcount is invalid)
-            generate appropriate error
-        else {
-            for (i = 0; i < primcount; i++) {
-                DrawArraysOneInstance(mode, first, count, i);
-            }
-        }
-
-    The command
-
-       void DrawElementsOneInstance( enum mode, sizei count, enum type,
-            void *indices, int instance );
-
-    does not exist in the GL, but is used to describe functionality in
-    the rest of this section.  This command constructs a sequence of
-    geometric primitives by successively transferring the <count> elements
-    whose indices are stored in the currently bound element array buffer
-    (see section 2.9.2) at the offset defined by <indices> to the GL.
-    The <i>-th element transferred by DrawElementsOneInstance will be taken
-    from element <indices>[i] of each enabled non-instanced array.
-    <type> must be one of UNSIGNED_BYTE, UNSIGNED_SHORT, or UNSIGNED_INT, 
-    indicating that the index values are of GL type ubyte, ushort, or uint
-    respectively. <mode> specifies what kind of primitives are constructed,
-    as defined in section 2.6.1.
-
-    If an enabled vertex attribute array is instanced (it has a non-zero
-    attribute <divisor> as specified by VertexAttribDivisorANGLE), the element
-    that is transferred to the GL is given by:
-
-        floor( <instance> / <divisor> );
-
-    If an array corresponding to a generic attribute required by a vertex
-    shader is not enabled, then the corresponding element is taken from the 
-    current generic attribute state (see section 2.7). Otherwise, if an array
-    is enabled, the corresponding current generic attribute value is 
-    unaffected by the execution of DrawElementsOneInstance.
-
-    The command
-
-        void DrawElements( enum mode, sizei count, enum type,
-             const void *indices);
-
-    behaves identically to DrawElementsOneInstance with the <instance> 
-    parameter set to zero; the effect of calling
-
-        DrawElements(mode, count, type, indices);
-
-    is equivalent to the command sequence:
-
-       if (mode, count or type is invalid )
-            generate appropriate error
-        else
-            DrawElementsOneInstance(mode, count, type, indices, 0);
-
-    The command
-
-        void DrawElementsInstancedANGLE(enum mode, sizei count, enum type,
-                const void *indices, sizei primcount);
-
-    behaves identically to DrawElements except that <primcount>
-    instances of the set of elements are executed and the instance
-    advances between each set. Instanced attributes are advanced as they do
-    during the execution of DrawArraysInstancedANGLE. It has the same effect as:
-
-        if (mode, count, primcount, or type is invalid )
-            generate appropriate error
-        else {
-            for (int i = 0; i < primcount; i++) {
-                DrawElementsOneInstance(mode, count, type, indices, i);
-            }
-        }
-
-    If the number of supported generic vertex attributes (the value of 
-    MAX_VERTEX_ATTRIBS) is <n>, then the client state required to implement
-    vertex arrays consists of <n> boolean values, <n> memory pointers, <n>
-    integer stride values, <n> symbolic constants representing array types,
-    <n> integers representing values per element, <n> boolean values 
-    indicating normalization, and <n> integers representing vertex attribute
-    divisors. 
-
-    In the initial state, the boolean values are each false, the memory
-    pointers are each NULL, the strides are each zero, the array types are 
-    each FLOAT, the integers representing values per element are each four,
-    and the divisors are each zero."
-
-Additions to Chapter 3 of the OpenGL ES 2.0 Specification (Rasterization)
-
-    None
-
-Additions to Chapter 4 of the OpenGL ES 2.0 Specification (Per-Fragment
-Operations and the Framebuffer)
-
-    None
-
-Additions to Chapter 5 of the OpenGL ES 2.0 Specification (Special Functions)
-
-    None
-
-Additions to Chapter 6 of the OpenGL ES 2.0 Specification (State and State
-Requests)
-
-    In section 6.1.8, add VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE to the list of 
-    pnames accepted by GetVertexAttribfv and GetVertexAttribiv.
-
-Additions to the AGL/EGL/GLX/WGL Specifications
-
-    None
-
-Dependencies on OES_element_index_uint
-
-    If OES_element_index_uint is not supported, removed all references
-    to UNSIGNED_INT indices and the associated GL data type uint in 
-    the description of DrawElementsOneInstance.
-
-Errors
-
-    INVALID_VALUE is generated by VertexAttribDivisorANGLE if <index>
-    is greater than or equal to MAX_VERTEX_ATTRIBS.
-
-    INVALID_ENUM is generated by DrawElementsInstancedANGLE if <type> is
-    not one of UNSIGNED_BYTE, UNSIGNED_SHORT or UNSIGNED_INT.
-
-    INVALID_VALUE is generated by DrawArraysInstancedANGLE if <first>,
-    <count>, or <primcount> is less than zero.
-
-    INVALID_ENUM is generated by DrawArraysInstancedANGLE or 
-    DrawElementsInstancedANGLE if <mode> is not one of the modes described in
-    section 2.6.1.
-
-    INVALID_VALUE is generated by DrawElementsInstancedANGLE if <count> or
-    <primcount> is less than zero.
-
-    INVALID_OPERATION is generated by DrawArraysInstancedANGLE or 
-    DrawElementsInstancedANGLE if there is not at least one enabled
-    vertex attribute array that has a <divisor> of zero and is bound to an
-    active generic attribute value in the program used for the draw command.
-
-New State
-
-    Changes to table 6.7, p. 268 (Vertex Array Data)
-
-                                                               Initial
-    Get Value                          Type   Get Command      Value    Description       Sec.  
-    ---------                          -----  -----------      -------  -----------       ----
-    VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE  8*xZ+  GetVertexAttrib  0        Instance Divisor  2.8
-
-Issues
-
-    1) Should vertex attribute zero be instance-able?
-
-       Resolved: Yes. 
-       Discussion: In Direct3D 9 stream 0 must be specified as indexed data
-       and it cannot be instanced. In ANGLE we can work around this by
-       remapping any other stream that does have indexed data (ie a zero
-       attribute divisor) to stream 0 in D3D9. This works because the HLSL
-       vertex shader matches attributes against the stream by using the 
-       shader semantic index.
-
-    2) Can all vertex attributes be instanced simultaneously?
-
-       Resolved: No
-       Discussion: In rare cases it is possible for no attribute to have a 
-       divisor of 0, meaning that all attributes are instanced and none of
-       them are regularly indexed. This in turn means each instance can only
-       have a single position element, and so it only actually renders
-       something when rendering point primitives. This is not a very 
-       meaningful way of using instancing (which is likely why D3D restricts
-       stream 0 to be indexed regularly for position data in the first place).
-       We could implement it by drawing these points one at a time (essentially
-       emulating instancing), but it would not be very efficient and there
-       seems to be little-to-no value in doing so.
-
-       If all of the enabled vertex attribute arrays that are bound to active
-       generic attributes in the program have a non-zero divisor, the draw
-       call should return INVALID_OPERATION.
-
-    3) Direct3D 9 only supports instancing for DrawIndexedPrimitive which
-       corresponds to DrawElementsInstanced.  Should we support 
-       DrawArraysInstanced?
-
-       Resolved: Yes
-       Discussion: This can be supported easily enough by simply manufacturing
-       a linear index buffer of sufficient size and using that to do indexed
-       D3D9 drawing.
-
-    4) How much data is needed in a buffer for an instanced attribute?
-
-       Resolved: Where stride is the value passed to VertexAttribPointer:
-
-       if stride > 0
-         size = stride * ceil(primcount / divisor);
-       else
-         size = elementsize * ceil(primcount / divisor);
-
-Revision History
-
-    #3 February 8, 2012 dgkoch
-       - clarify Issue 3 and the error condition for no indexed attributes
-    #2 January 24, 2012 dgkoch
-       - fix typos, add clarifications, and more errors
-    #1 January 17, 2012 dgkoch
-       - initial GLES2 version from ARB_instanced_arrays
deleted file mode 100644
--- a/gfx/angle/extensions/ANGLE_pack_reverse_row_order.txt
+++ /dev/null
@@ -1,168 +0,0 @@
-Name
-
-    ANGLE_pack_reverse_row_order
-
-Name Strings
-
-    GL_ANGLE_pack_reverse_row_order
-
-Contact
-
-    Daniel Koch, TransGaming (daniel 'at' transgaming.com)
-
-Contributors
-
-    Brian Salomon
-    Daniel Koch
-
-Status
-
-    Implemented in ANGLE ES2
-
-Version
-
-    Last Modified Date: February 22, 2011
-    Author Revision: 22
-
-Number
-
-    OpenGL ES Extension #110
-
-Dependencies
-
-    OpenGL 1.5 or OpenGL ES 1.0 are required.
-
-    Some of the functionality of this extension is not supported
-    when implemented against OpenGL ES.
-
-    EXT_texture_rg interacts with this extension.
-
-    The extension is written against the OpenGL 3.2 Specification
-    (Core Profile).
-
-Overview
-
-    This extension introduces a mechanism to allow reversing the order
-    in which image rows are written into a pack destination. This
-    effectively allows an application to flip the results of a ReadPixels
-    in the y direction operation without having to render upside down.
-
-    The coordinate system of OpenGL is vertically reversed in comparison to a
-    number of other graphics systems such as native windowing APIs. Applications
-    that perform ReadPixels may have to either render to an intermediate color
-    buffer before calling ReadPixels or perform a flip in software after
-    ReadPixels. In some systems the GL can perform the row reversal during
-    ReadPixels without incurring additional cost.
-
-IP Status
-
-    No known IP claims.
-
-New Procedures and Functions
-
-    None
-
-New Types
-
-    None
-
-New Tokens
-
-    Accepted by the <pname> parameter of PixelStore{if}, GetIntegerv(),
-    GetBooleanv(), and GetFloatv():
-
-        PACK_REVERSE_ROW_ORDER_ANGLE    0x93A4
-
-Additions to Chapter 3 of the OpenGL 3.2 Specification (Rasterization)
-
-    In Section 4.3.1 (Reading Pixels) add a row to table 4.7:
-
-        +------------------------------+---------+---------------+-------------+
-        | Parameter Name               | Type    | Initial Value | Valid Range |
-        +------------------------------+---------+---------------+-------------+
-        | PACK_REVERSE_ROW_ORDER_ANGLE | boolean | FALSE         | TRUE/FALSE  |
-        +------------------------------+---------+---------------+-------------+
-
-    In Section 4.3.1 (Reading Pixels) modify the second paragraph of subsection 
-    "Placement in Pixel Pack Buffer or Client Memory" to read:
-
-        When PACK_REVERSE_ROW_ORDER_ANGLE is FALSE groups of elements are placed
-        in memory just as they are taken from memory when transferring pixel
-        rectangles to the GL. That is, the ith group of the jth row
-        (corresponding to the ith pixel in the jth row) is placed in memory just
-        where the ith group of the jth row would be taken from when transferring
-        pixels. See Unpacking under section 3.7.2. The only difference is that
-        the storage mode parameters whose names begin with PACK_ are used
-        instead of those whose names begin with UNPACK_. If the format is RED,
-        GREEN, BLUE, or ALPHA, only the corresponding single element is written.
-        Likewise if the format is RG, RGB, or BGR, only the corresponding two or
-        three elements are written. Otherwise all the elements of each group are
-        written. When PACK_REVERSE_ROW_ORDER_ANGLE is TRUE the order of the rows
-        of elements is reversed before the data is packed. That is, the element
-        corresponding to pixel (x, y + height - 1) becomes the first element
-        packed, followed by (x + 1, y + height - 1), etc. Otherwise, pixel data
-        is packed in the same manner as when PACK_REVERSE_ROW_ORDER_ANGLE is
-        FALSE.
-
-Additions to Chapter 6 of the OpenGL 3.2 Specification (State and State Requests)
-
-    In Section 6.1.4 add the following sentence to the fifth paragraph
-    (beginning with "For three-dimensional and two-dimensional array
-    textures..."):
-        When PACK_REVERSE_ROW_ORDER_ANGLE is TRUE the order of rows within
-        each image are reversed without reordering the images themselves.
-
-Dependencies on OpenGL ES
-
-    If implemented for OpenGL ES, this extension behaves as specified, except:
-
-    -Delete all references to formats RED, GREEN, BLUE, RG, and BGR.
-
-    -The language about image order in Section 6.1.4 does not apply as OpenGL ES
-     does not have GetTexImage.
-
-Dependencies on EXT_texture_rg
-
-    If EXT_texture_rg is present reinsert language about formats RED and RG
-    into the OpenGL ES 2.0 specification.
-
-Errors
-
-    None
-
-New State
-                                                           Initial
-    Get Value                       Type  Get Command      Value    Description                    Sec.
-    ---------                       ----  -----------      -------  -----------                    ----
-    PACK_REVERSE_ROW_ORDER_ANGLE    B     GetIntegerv      FALSE    Pixel pack row order reversal  4.3.1
-
-New Implementation Dependent State
-
-    None
-
-Issues
-
-    None
-
-Sample Code
-
-    /* Allocate space to hold the pixel data */
-    const GLvoid* pixels = malloc(width * height * 4);
-
-    /* Bind the framebuffer object to be read */
-    glBindFramebuffer(GL_READ_FRAMEBUFFER, framebuffer);
-
-    /* Enable row order reversal */
-    glPixelStore(GL_PACK_REVERSE_ROW_ORDER_ANGLE, TRUE);
-
-    /* The pixel data stored in pixels will be in top-down order, ready for
-     * use with a windowing system API that expects this order.
-     */
-    glReadPixels(x, y, width, height, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
-
-Revision History
-
-    Revision 1, 2011/11/22 (Brian Salomon)
-      - First version
-    Revision 2, 2012/02/22 (dgkoch)
-      - prepare for publishing
deleted file mode 100644
--- a/gfx/angle/extensions/ANGLE_program_binary.txt
+++ /dev/null
@@ -1,94 +0,0 @@
-Name
-
-    ANGLE_program_binary
-
-Name Strings
-
-    GL_ANGLE_program_binary
-
-Contributors
-
-    Alastair Patrick, Google Inc.
-    Daniel Koch, TransGaming Inc.
-
-Contact
-
-    Alastair Patrick, Google Inc. (apatrick 'at' google 'dot' com)
-
-Status
-
-    Under development.
-
-Version
-
-    Last Modifed Date: June 6, 2012
-    Revision: #1
-
-Number
-
-    TBD
-
-Dependencies
-
-    OpenGL ES 2.0 is required.
-    OES_get_program_binary is required.
-    This extension is written against the OpenGL ES 2.0.25 specification.
-
-Overview
-
-    This extension makes available a program binary format,
-    PROGRAM_BINARY_ANGLE. It enables retrieving and loading of pre-linked
-    ANGLE program objects.
-
-New Procedures and Functions
-
-    None
-
-New Tokens
-
-    Accepted by the <binaryFormat> parameter of ProgramBinaryOES:
-
-        PROGRAM_BINARY_ANGLE        0x93A6
-
-Additions to Chapter 2 of the OpenGL-ES 2.0 Specification (OpenGL Operation)
-
-    Add the following paragraph to the end of section 2.15.4, Program Binaries:
-    
-    "PROGRAM_BINARY_ANGLE, returned in the list of PROGRAM_BINARY_FORMATS_OES,
-    is a format that may be loaded into a program object via ProgramBinaryOES." 
-    
-Additions to Chapter 3 of the OpenGL ES 2.0 specification (Rasterizatoin)
-
-    None.
-
-Additions to Chapter 4 of the OpenGL ES 2.0 specification (Per-Fragment
-Operations and the Framebuffer)
-
-    None.
-
-Additions to Chapter 5 of the OpenGL ES 2.0 Specification (Special
-Functions)
-
-    None.
-
-Additions to Chapter 6 of the OpenGL ES 2.0 Specification (State and State
-Requests)
-
-    None.
-
-Errors
-
-    None
-
-New State
-
-    None.
-
-Issues
-
-    None
-
-Revision History
- 
-    06/06/2012  apatrick  intial revision
-
deleted file mode 100644
--- a/gfx/angle/extensions/ANGLE_texture_compression_dxt.txt
+++ /dev/null
@@ -1,163 +0,0 @@
-Name
-
-    ANGLE_texture_compression_dxt
-
-Name Strings
-
-    GL_ANGLE_texture_compression_dxt1
-    GL_ANGLE_texture_compression_dxt3
-    GL_ANGLE_texture_compression_dxt5
-
-Contributors
-
-    Gregg Tavares, Google Inc.
-    Daniel Koch, TransGaming Inc.
-    Al Patrick, Google Inc.
-
-Contacts
-
-    Gregg Tavares, Google Inc. (gman 'at' google 'dot' com)
-
-Status
-
-    Implemented in ANGLE ES2
-
-Version
-
-    Last Modified Date: Sept 22, 2012
-    Author Revision: 2
-
-Number
-
-    OpenGL ES Extension #111
-
-Dependencies
-
-    Requires OpenGL ES 1.0.
-
-    The extension is written against the OpenGL ES 2.0 specification.
-
-Overview
-
-    These extensions are exactly the same as EXT_texture_compression_dxt1
-    except they additionally expose the COMPRESSED_RGBA_S3TC_DXT3_ANGLE and
-    COMPRESSED_RGBA_S3TC_DXT5_ANGLE formats and have a size restrictions
-    such that the size must be a multiple of four (except for mip levels
-    where the dimensions are either 2 or 1).
-
-    See EXT_texture_compression_dxt1 for the full list of changes. Also
-    see EXT_texture_compression_s3tc for a description of the formats.
-
-IP Status
-
-    A license to the S3TC Intellectual Property may be necessary for 
-    implementation of this extension.  You should consult with your 
-    Attorney to determine the need for a license.
-
-New Procedures and Functions
-
-    None.
-
-New Types
-
-    None.
-
-New Tokens
-
-    Accepted by the <internalformat> parameter of CompressedTexImage2D
-    and the <format> parameter of CompressedTexSubImage2D:
-
-    COMPRESSED_RGB_S3TC_DXT1_ANGLE                    0x83F0
-    COMPRESSED_RGBA_S3TC_DXT1_ANGLE                   0x83F1
-    COMPRESSED_RGBA_S3TC_DXT3_ANGLE                   0x83F2
-    COMPRESSED_RGBA_S3TC_DXT5_ANGLE                   0x83F3
-
-Additions to Chapter 3 of the OpenGL ES 2.0 Specification (Rasterization)
-
-    Add the following to Section 3.7.3 (Compressed Texture Images)
-    (at the end of the description of the CompressedTexImage2D command):
-
-    Compressed Internal Format        Base Internal Format
-    ==========================        ====================
-    COMPRESSED_RGB_S3TC_DXT1_ANGLE    RGB
-    COMPRESSED_RGBA_S3TC_DXT1_ANGLE   RGBA
-    COMPRESSED_RGBA_S3TC_DXT3_ANGLE   RGBA
-    COMPRESSED_RGBA_S3TC_DXT5_ANGLE   RGBA
-
-    Table 3.x: Specific Compressed Internal Formats
-
-    If <internalformat> is one of the S3TC formats listed in Table 3.x,
-    the compressed texture is stored in the appropriate S3TC compressed
-    texture format (see Appendix). The GL and the S3TC texture compression
-    algorithm support only 2D images without borders.
-
-    CompressedTexImage2D will produce the INVALID_OPERATION error when
-    <internalformat> is one of the values from Table 3.x under the following
-    conditions: 
-
-      * <border> is non-zero.
-      * <width> is not one, two, or a multiple of four.
-      * <height> is not one, two, or a multiple of four.
-
-    Add the following to Section 3.7.3 (Compressed Texture Images)
-    (at the end of the description of the CompressedTexSubImage2D command):
-
-    If the internal format of the texture image being modified is listed
-    in Table 3.x, the texture is stored in the appropriate S3TC compressed
-    texture format (see Appendix). Since DXT/S3TC images are easily edited
-    along 4x4 texel boundaries, the limitations of CompressedTexSubImage2D
-    are relaxed. CompressedTexSubImage2D will result in an INVALID_OPERATION
-    error only if one of the following conditions occurs:
-
-      * <width> is not a multiple of four or equal to TEXTURE_WIDTH.
-      * <height> is not a multipls of four or equal to TEXTURE_HEIGHT.
-      * <xoffset> or <yoffset> is not a multiple of four.
-      * <format> does not match the internal format of the texture image
-        being modified.
-
-    The following restrictions at the end of section 3.7.3 do not apply
-    to S3TC DXT texture formats, since subimage modification is straightforward
-    as long as the subimage is properly aligned.
-
-Errors
-
-    INVALID_OPERATION is generated by CompressedTexImage2D if <internalformat>
-    is one of the compressed internal formats from Table 3.x and any of the 
-    following apply:
-      - <border> is not equal to zero.
-      - <width> is not one, two, or a multiple of four. 
-      - <height> is not one, two, or a multiple of four. 
-
-    INVALID_OPERATION is generated by TexImage2D and CopyTexImage2D if
-    <internalformat> is one of the compressed internal formats from
-    Table 3.x.
-
-    INVALID_OPERATION is generated by TexSubImage2D and CopyTexSubImage2D
-    if the internal format of the texture currently bound to <target> is
-    one of the compressed internal formats from Table 3.x.
-
-    INVALID_OPERATION is generated by CompressedTexSubImage2D if <format>
-    is one of the compressed interal formats from Table 3.x and any of the
-    following apply:
-      - <width> is not a multiple of four or equal to TEXTURE_WIDTH;
-      - <height> is not a multiple of four or equal to TEXTURE_HEIGHT;
-      - <xoffset> or <yoffset> is not a multiple of four;
-      - <format> does not match the internal format of the texture image
-      being modified.
-
-New State
-
-    None.
-
-Appendix: 
-
-    The format for the S3TC Compressed Texture Images Formats is documented
-    in the appendix of EXT_texture_compression_s3tc.
-
-Revision History
-
-    Revision 1, 2010/08/06 - gman
-      - Initial revision
-    Revision 2, 2012/09/22 - dgkoch
-      - Added DXT1 formats and documented multiple of 4 restriction.
-
deleted file mode 100644
--- a/gfx/angle/extensions/ANGLE_texture_usage.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-Name
-
-    ANGLE_texture_usage
-
-Name Strings
-
-    GL_ANGLE_texture_usage
-
-Contributors
-
-    Nicolas Capens, TransGaming
-    Daniel Koch, TransGaming
-
-Contact
-
-    Daniel Koch, TransGaming (daniel 'at' transgaming.com)
-
-Status
-
-    Complete
-
-Version
-
-    Last Modified Date:  November 10, 2011
-    Version:             2
-
-Number
-
-    OpenGL ES Extension #112 
-
-Dependencies
-
-    This extension is written against the OpenGL ES 2.0 Specification.
-
-Overview
-
-    In some implementations it is advantageous to know the expected
-    usage of a texture before the backing storage for it is allocated.  
-    This can help to inform the implementation's choice of format
-    and type of memory used for the allocation. If the usage is not
-    known in advance, the implementation essentially has to make a 
-    guess as to how it will be used.  If it is later proven wrong,
-    it may need to perform costly re-allocations and/or reformatting 
-    of the texture data, resulting in reduced performance.
-
-    This extension adds a texture usage flag that is specified via
-    the TEXTURE_USAGE_ANGLE TexParameter.  This can be used to 
-    indicate that the application knows that this texture will be 
-    used for rendering.
-
-IP Status
-
-    No known IP claims.
-
-New Procedures and Functions
-
-    None
-
-New Tokens
-
-    Accepted as a value for <pname> for the TexParameter{if} and 
-    TexParameter{if}v commands and for the <value> parameter of
-    GetTexParameter{if}v: 
-
-        TEXTURE_USAGE_ANGLE                     0x93A2
-
-    Accepted as a value to <param> for the TexParameter{if} and 
-    to <params> for the TexParameter{if}v commands with a <pname> of 
-    TEXTURE_USAGE_ANGLE; returned as possible values for <data> when 
-    GetTexParameter{if}v is queried with a <value> of TEXTURE_USAGE_ANGLE:
-
-        NONE                                    0x0000
-        FRAMEBUFFER_ATTACHMENT_ANGLE            0x93A3
-
-Additions to Chapter 2 of the OpenGL ES 2.0 Specification (OpenGL ES Operation)
-
-    None
-
-Additions to Chapter 3 of the OpenGL ES 2.0 Specification (Rasterization)
-
-    Add a new row to Table 3.10 (Texture parameters and their values):
-
-    Name                | Type | Legal Values 
-    ------------------------------------------------------------
-    TEXTURE_USAGE_ANGLE | enum | NONE, FRAMEBUFFER_ATTACHMENT_ANGLE
-
-    Add a new section 3.7.x (Texture Usage) before section 3.7.12 and 
-    renumber the subsequent sections: 
-
-    "3.7.x Texture Usage
-
-    Texture usage can be specified via the TEXTURE_USAGE_ANGLE value
-    for the <pname> argument to TexParameter{if}[v]. In order to take effect,
-    the texture usage must be specified before the texture contents are
-    defined either via TexImage2D or TexStorage2DEXT.
-
-    The usage values can impact the layout and type of memory used for the 
-    texture data. Specifying incorrect usage values may result in reduced
-    functionality and/or significantly degraded performance.
-
-    Possible values for <params> when <pname> is TEXTURE_USAGE_ANGLE are:
-
-    NONE - the default. No particular usage has been specified and it is
-        up to the implementation to determine the usage of the texture.
-        Leaving the usage unspecified means that the implementation may 
-        have to reallocate the texture data as the texture is used in 
-        various ways.
-
-    FRAMEBUFFER_ATTACHMENT_ANGLE - this texture will be attached to a 
-        framebuffer object and used as a desination for rendering or blits."
-
-    Modify section 3.7.12 (Texture State) and place the last 3 sentences
-    with the following:
-
-    "Next, there are the three sets of texture properties; each consists of
-    the selected minification and magnification filters, the wrap modes for
-    <s> and <t>, and the usage flags. In the initial state, the value assigned
-    to TEXTURE_MIN_FILTER is NEAREST_MIPMAP_LINEAR, and the value for 
-    TEXTURE_MAG_FILTER is LINEAR. <s> and <t> wrap modes are both set to
-    REPEAT. The initial value for TEXTURE_USAGE_ANGLE is NONE."
-
-
-Additions to Chapter 4 of the OpenGL ES 2.0 Specification (Per-Fragment
-Operations and the Framebuffer)
-
-    None
-
-Additions to Chapter 5 of the OpenGL ES 2.0 Specification (Special
-Functions):
-
-    None
-
-Additions to Chapter 6 of the OpenGL ES 2.0 Specification (State and
-State Requests)
-
-    None
-
-Dependencies on EXT_texture_storage
-
-    If EXT_texture_storage is not supported, omit any references to 
-    TexStorage2DEXT.
-
-Errors
-
-    If TexParameter{if} or TexParamter{if}v is called with a <pname>
-    of TEXTURE_USAGE_ANGLE and the value of <param> or <params> is not
-    NONE or FRAMEBUFFER_ATTACHMENT_ANGLE the error INVALID_VALUE is
-    generated.
-
-Usage Example
-
-    /* create and bind texture */
-    glGenTextures(1, &texture);
-    glActiveTexture(GL_TEXTURE0);
-    glBindTexture(GL_TEXTURE_2D, texture);
-
-    /* specify texture parameters */
-    glTexParameteri(GL_TEXTURE_2D, GL_*, ...);  /* as before */
-    
-    /* specify that we'll be rendering to the texture */
-    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_USAGE_ANGLE, GL_FRAMEBUFFER_ATTACHMENT_ANGLE);
-
-    glTexStorage2DEXT(GL_TEXTURE_2D, levels, ...); // Allocation
-    for(int level = 0; level < levels; ++level)
-        glTexSubImage2D(GL_TEXTURE_2D, level, ...); // Initialisation
-
-Issues
-
-    1. Should there be a dynamic usage value?
-   
-       DISCUSSION: We could accept a dynamic flag to indicate that a texture will
-       be updated frequently. We could map this to D3D9 dynamic textures. This would
-       allow us to avoid creating temporary surfaces when updating the texture.
-       However renderable textures cannot be dynamic in D3D9, which eliminates the 
-       primary use case for this.  Furthermore, the memory usage of dynamic textures
-       typically increases threefold when you lock it.
-
-    2. Should the texture usage be an enum or a bitfield?
-
-       UNRESOLVED.  Using a bitfield would allow combination of values to be specified.
-       On the other hand, if combinations are really required, additional <pnames>
-       could be added as necessary.  Querying a bitfield via the GetTexParameter command
-       feels a bit odd.
-
-    3. What should happen if TEXTURE_USAGE_ANGLE is set/changed after the texture
-